@ultraviolet/plus 0.25.3 → 0.25.5
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.
|
@@ -42,7 +42,7 @@ const RelativeDiv = /* @__PURE__ */ _styled__default.default("div", process.env.
|
|
|
42
42
|
styles: "position:relative"
|
|
43
43
|
} : {
|
|
44
44
|
name: "bjn8wh",
|
|
45
|
-
styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
45
|
+
styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
46
46
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
47
47
|
});
|
|
48
48
|
const StyledPinIconOutline = /* @__PURE__ */ _styled__default.default(icons.PinOutlineIcon, process.env.NODE_ENV === "production" ? {
|
|
@@ -61,7 +61,7 @@ const StyledPinIconOutline = /* @__PURE__ */ _styled__default.default(icons.PinO
|
|
|
61
61
|
}) => theme.colors.neutral.backgroundWeakHover, ";", ({
|
|
62
62
|
active,
|
|
63
63
|
theme
|
|
64
|
-
}) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Ed0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
64
|
+
}) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Ed0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
65
65
|
const StyledUnpinIcon = StyledPinIconOutline.withComponent(icons.UnpinIcon, process.env.NODE_ENV === "production" ? {
|
|
66
66
|
target: "e134hokc15"
|
|
67
67
|
} : {
|
|
@@ -73,7 +73,7 @@ const NeutralButtonLink = process.env.NODE_ENV === "production" ? {
|
|
|
73
73
|
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left"
|
|
74
74
|
} : {
|
|
75
75
|
name: "1kb8ns1-NeutralButtonLink",
|
|
76
|
-
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
76
|
+
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
77
77
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
78
78
|
};
|
|
79
79
|
const LocalExpandButton = /* @__PURE__ */ _styled__default.default(ui.Button, process.env.NODE_ENV === "production" ? {
|
|
@@ -86,7 +86,7 @@ const LocalExpandButton = /* @__PURE__ */ _styled__default.default(ui.Button, pr
|
|
|
86
86
|
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}"
|
|
87
87
|
} : {
|
|
88
88
|
name: "9hkyle",
|
|
89
|
-
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
89
|
+
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
90
90
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
91
91
|
});
|
|
92
92
|
const PinnedButton = LocalExpandButton.withComponent("div", process.env.NODE_ENV === "production" ? {
|
|
@@ -102,13 +102,13 @@ const GrabIcon = /* @__PURE__ */ _styled__default.default(icons.DragIcon, proces
|
|
|
102
102
|
label: "GrabIcon"
|
|
103
103
|
})("opacity:0;margin:0 ", ({
|
|
104
104
|
theme
|
|
105
|
-
}) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
105
|
+
}) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
106
106
|
const StyledBadge = /* @__PURE__ */ _styled__default.default(ui.Badge, process.env.NODE_ENV === "production" ? {
|
|
107
107
|
target: "e134hokc10"
|
|
108
108
|
} : {
|
|
109
109
|
target: "e134hokc10",
|
|
110
110
|
label: "StyledBadge"
|
|
111
|
-
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */");
|
|
111
|
+
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */");
|
|
112
112
|
const StyledMenuItem = /* @__PURE__ */ _styled__default.default(ui.MenuV2.Item, process.env.NODE_ENV === "production" ? {
|
|
113
113
|
shouldForwardProp: (prop) => !["isPinnable"].includes(prop),
|
|
114
114
|
target: "e134hokc9"
|
|
@@ -118,7 +118,7 @@ const StyledMenuItem = /* @__PURE__ */ _styled__default.default(ui.MenuV2.Item,
|
|
|
118
118
|
label: "StyledMenuItem"
|
|
119
119
|
})("text-align:left;&:hover,&:focus,&:active{", PinnedButton, "{opacity:1;}", StyledBadge, "{opacity:", ({
|
|
120
120
|
isPinnable
|
|
121
|
-
}) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQge1xuICBBcnJvd0Rvd25JY29uLFxuICBBcnJvd1JpZ2h0SWNvbixcbiAgRHJhZ0ljb24sXG4gIE9wZW5Jbk5ld0ljb24sXG4gIFBpbk91dGxpbmVJY29uLFxuICBVbnBpbkljb24sXG59IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCAqIGFzIENhdGVnb3J5SWNvbiBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDb25zb2xlQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZFBpbkljb25PdXRsaW5lID0gc3R5bGVkKFBpbk91dGxpbmVJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRVbnBpbkljb24gPSBTdHlsZWRQaW5JY29uT3V0bGluZS53aXRoQ29tcG9uZW50KFVucGluSWNvbilcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChEcmFnSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChPcGVuSW5OZXdJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IFN0YWNrSWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXg8XG4gICAga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvbixcbiAgICAnQ2F0ZWdvcnlJY29uJ1xuICA+XG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczxcbiAgICAodHlwZW9mIENhdGVnb3J5SWNvbilbJ0JhcmVtZXRhbENhdGVnb3J5SWNvbiddXG4gID5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgdGFyZ2V0LFxuICAgIHJlbCxcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgaXRlbVByb3ZpZGVyID0gdXNlQ29udGV4dChJdGVtQ29udGV4dClcbiAgICBjb25zdCBoYXNQYXJlbnRzID0gISFpdGVtUHJvdmlkZXJcblxuICAgIGNvbnN0IHtcbiAgICAgIGV4cGFuZGVkLFxuICAgICAgbG9jYWxlcyxcbiAgICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgICBwaW5JdGVtLFxuICAgICAgdW5waW5JdGVtLFxuICAgICAgcGlubmVkSXRlbXMsXG4gICAgICBwaW5MaW1pdCxcbiAgICAgIGFuaW1hdGlvbixcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICAgIHNob3VsZEFuaW1hdGUsXG4gICAgICBhbmltYXRpb25UeXBlLFxuICAgIH0gPSBjb250ZXh0XG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgICApXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICAgKSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgICBbY29udGFpbmVyVGFnXSxcbiAgICApXG5cbiAgICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgICA/IENhdGVnb3J5SWNvbltcbiAgICAgICAgICBgJHtcbiAgICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICAgIH1DYXRlZ29yeUljb25gIGFzIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb25cbiAgICAgICAgXVxuICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBBcnJvd0ljb24gPSBpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uXG4gICAgY29uc3QgUGluVW5waW5JY29uID0gaXNJdGVtUGlubmVkID8gU3R5bGVkVW5waW5JY29uIDogU3R5bGVkUGluSWNvbk91dGxpbmVcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxTdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8U3RhY2tJY29uIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dJY29uIHNlbnRpbWVudD1cIm5ldXRyYWxcIiBwcm9taW5lbmNlPVwid2Vha1wiIC8+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1N0YWNrSWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj57Y2hpbGRyZW59PC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gICAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uIHNlbnRpbWVudD1cIm5ldXRyYWxcIiBwcm9taW5lbmNlPVwid2Vha1wiIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
121
|
+
}) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQge1xuICBBcnJvd0Rvd25JY29uLFxuICBBcnJvd1JpZ2h0SWNvbixcbiAgRHJhZ0ljb24sXG4gIE9wZW5Jbk5ld0ljb24sXG4gIFBpbk91dGxpbmVJY29uLFxuICBVbnBpbkljb24sXG59IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCAqIGFzIENhdGVnb3J5SWNvbiBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDb25zb2xlQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZFBpbkljb25PdXRsaW5lID0gc3R5bGVkKFBpbk91dGxpbmVJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRVbnBpbkljb24gPSBTdHlsZWRQaW5JY29uT3V0bGluZS53aXRoQ29tcG9uZW50KFVucGluSWNvbilcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChEcmFnSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChPcGVuSW5OZXdJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IFN0YWNrSWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXg8XG4gICAga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvbixcbiAgICAnQ2F0ZWdvcnlJY29uJ1xuICA+XG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczxcbiAgICAodHlwZW9mIENhdGVnb3J5SWNvbilbJ0JhcmVtZXRhbENhdGVnb3J5SWNvbiddXG4gID5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgdGFyZ2V0LFxuICAgIHJlbCxcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgaXRlbVByb3ZpZGVyID0gdXNlQ29udGV4dChJdGVtQ29udGV4dClcbiAgICBjb25zdCBoYXNQYXJlbnRzID0gISFpdGVtUHJvdmlkZXJcblxuICAgIGNvbnN0IHtcbiAgICAgIGV4cGFuZGVkLFxuICAgICAgbG9jYWxlcyxcbiAgICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgICBwaW5JdGVtLFxuICAgICAgdW5waW5JdGVtLFxuICAgICAgcGlubmVkSXRlbXMsXG4gICAgICBwaW5MaW1pdCxcbiAgICAgIGFuaW1hdGlvbixcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICAgIHNob3VsZEFuaW1hdGUsXG4gICAgICBhbmltYXRpb25UeXBlLFxuICAgIH0gPSBjb250ZXh0XG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgICApXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICAgKSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgICBbY29udGFpbmVyVGFnXSxcbiAgICApXG5cbiAgICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgICA/IENhdGVnb3J5SWNvbltcbiAgICAgICAgICBgJHtcbiAgICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICAgIH1DYXRlZ29yeUljb25gIGFzIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb25cbiAgICAgICAgXVxuICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBBcnJvd0ljb24gPSBpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uXG4gICAgY29uc3QgUGluVW5waW5JY29uID0gaXNJdGVtUGlubmVkID8gU3R5bGVkVW5waW5JY29uIDogU3R5bGVkUGluSWNvbk91dGxpbmVcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1pcy1hY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdGFydFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdG9wVHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
122
122
|
const StyledMenu = /* @__PURE__ */ _styled__default.default(ui.MenuV2, process.env.NODE_ENV === "production" ? {
|
|
123
123
|
target: "e134hokc8"
|
|
124
124
|
} : {
|
|
@@ -129,7 +129,7 @@ const StyledMenu = /* @__PURE__ */ _styled__default.default(ui.MenuV2, process.e
|
|
|
129
129
|
styles: "width:180px"
|
|
130
130
|
} : {
|
|
131
131
|
name: "educr3",
|
|
132
|
-
styles: "width:180px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
132
|
+
styles: "width:180px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
133
133
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
134
134
|
});
|
|
135
135
|
const PaddingStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
@@ -142,7 +142,7 @@ const PaddingStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.
|
|
|
142
142
|
styles: "padding-left:28px"
|
|
143
143
|
} : {
|
|
144
144
|
name: "13feash",
|
|
145
|
-
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThIa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
145
|
+
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThIa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
146
146
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
147
147
|
});
|
|
148
148
|
const AnimatedIcon = /* @__PURE__ */ _styled__default.default(icons.OpenInNewIcon, process.env.NODE_ENV === "production" ? {
|
|
@@ -150,7 +150,7 @@ const AnimatedIcon = /* @__PURE__ */ _styled__default.default(icons.OpenInNewIco
|
|
|
150
150
|
} : {
|
|
151
151
|
target: "e134hokc6",
|
|
152
152
|
label: "AnimatedIcon"
|
|
153
|
-
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtJMEMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */");
|
|
153
|
+
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtJMEMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */");
|
|
154
154
|
const WrapText = /* @__PURE__ */ _styled__default.default(ui.Text, process.env.NODE_ENV === "production" ? {
|
|
155
155
|
shouldForwardProp: (prop) => !["animation", "subLabel", "textProminence"].includes(prop),
|
|
156
156
|
target: "e134hokc5"
|
|
@@ -160,7 +160,7 @@ const WrapText = /* @__PURE__ */ _styled__default.default(ui.Text, process.env.N
|
|
|
160
160
|
label: "WrapText"
|
|
161
161
|
})("overflow-wrap:", ({
|
|
162
162
|
animation
|
|
163
|
-
}) => animation ? "normal" : "anywhere", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBJRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQge1xuICBBcnJvd0Rvd25JY29uLFxuICBBcnJvd1JpZ2h0SWNvbixcbiAgRHJhZ0ljb24sXG4gIE9wZW5Jbk5ld0ljb24sXG4gIFBpbk91dGxpbmVJY29uLFxuICBVbnBpbkljb24sXG59IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCAqIGFzIENhdGVnb3J5SWNvbiBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDb25zb2xlQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZFBpbkljb25PdXRsaW5lID0gc3R5bGVkKFBpbk91dGxpbmVJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRVbnBpbkljb24gPSBTdHlsZWRQaW5JY29uT3V0bGluZS53aXRoQ29tcG9uZW50KFVucGluSWNvbilcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChEcmFnSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChPcGVuSW5OZXdJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IFN0YWNrSWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXg8XG4gICAga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvbixcbiAgICAnQ2F0ZWdvcnlJY29uJ1xuICA+XG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczxcbiAgICAodHlwZW9mIENhdGVnb3J5SWNvbilbJ0JhcmVtZXRhbENhdGVnb3J5SWNvbiddXG4gID5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgdGFyZ2V0LFxuICAgIHJlbCxcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgaXRlbVByb3ZpZGVyID0gdXNlQ29udGV4dChJdGVtQ29udGV4dClcbiAgICBjb25zdCBoYXNQYXJlbnRzID0gISFpdGVtUHJvdmlkZXJcblxuICAgIGNvbnN0IHtcbiAgICAgIGV4cGFuZGVkLFxuICAgICAgbG9jYWxlcyxcbiAgICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgICBwaW5JdGVtLFxuICAgICAgdW5waW5JdGVtLFxuICAgICAgcGlubmVkSXRlbXMsXG4gICAgICBwaW5MaW1pdCxcbiAgICAgIGFuaW1hdGlvbixcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICAgIHNob3VsZEFuaW1hdGUsXG4gICAgICBhbmltYXRpb25UeXBlLFxuICAgIH0gPSBjb250ZXh0XG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgICApXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICAgKSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgICBbY29udGFpbmVyVGFnXSxcbiAgICApXG5cbiAgICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgICA/IENhdGVnb3J5SWNvbltcbiAgICAgICAgICBgJHtcbiAgICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICAgIH1DYXRlZ29yeUljb25gIGFzIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb25cbiAgICAgICAgXVxuICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBBcnJvd0ljb24gPSBpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uXG4gICAgY29uc3QgUGluVW5waW5JY29uID0gaXNJdGVtUGlubmVkID8gU3R5bGVkVW5waW5JY29uIDogU3R5bGVkUGluSWNvbk91dGxpbmVcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxTdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8U3RhY2tJY29uIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dJY29uIHNlbnRpbWVudD1cIm5ldXRyYWxcIiBwcm9taW5lbmNlPVwid2Vha1wiIC8+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1N0YWNrSWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj57Y2hpbGRyZW59PC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gICAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uIHNlbnRpbWVudD1cIm5ldXRyYWxcIiBwcm9taW5lbmNlPVwid2Vha1wiIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
163
|
+
}) => animation ? "normal" : "anywhere", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBJRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQge1xuICBBcnJvd0Rvd25JY29uLFxuICBBcnJvd1JpZ2h0SWNvbixcbiAgRHJhZ0ljb24sXG4gIE9wZW5Jbk5ld0ljb24sXG4gIFBpbk91dGxpbmVJY29uLFxuICBVbnBpbkljb24sXG59IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCAqIGFzIENhdGVnb3J5SWNvbiBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDb25zb2xlQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZFBpbkljb25PdXRsaW5lID0gc3R5bGVkKFBpbk91dGxpbmVJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRVbnBpbkljb24gPSBTdHlsZWRQaW5JY29uT3V0bGluZS53aXRoQ29tcG9uZW50KFVucGluSWNvbilcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChEcmFnSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChPcGVuSW5OZXdJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IFN0YWNrSWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXg8XG4gICAga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvbixcbiAgICAnQ2F0ZWdvcnlJY29uJ1xuICA+XG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczxcbiAgICAodHlwZW9mIENhdGVnb3J5SWNvbilbJ0JhcmVtZXRhbENhdGVnb3J5SWNvbiddXG4gID5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgdGFyZ2V0LFxuICAgIHJlbCxcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgaXRlbVByb3ZpZGVyID0gdXNlQ29udGV4dChJdGVtQ29udGV4dClcbiAgICBjb25zdCBoYXNQYXJlbnRzID0gISFpdGVtUHJvdmlkZXJcblxuICAgIGNvbnN0IHtcbiAgICAgIGV4cGFuZGVkLFxuICAgICAgbG9jYWxlcyxcbiAgICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgICBwaW5JdGVtLFxuICAgICAgdW5waW5JdGVtLFxuICAgICAgcGlubmVkSXRlbXMsXG4gICAgICBwaW5MaW1pdCxcbiAgICAgIGFuaW1hdGlvbixcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICAgIHNob3VsZEFuaW1hdGUsXG4gICAgICBhbmltYXRpb25UeXBlLFxuICAgIH0gPSBjb250ZXh0XG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgICApXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICAgKSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgICBbY29udGFpbmVyVGFnXSxcbiAgICApXG5cbiAgICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgICA/IENhdGVnb3J5SWNvbltcbiAgICAgICAgICBgJHtcbiAgICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICAgIH1DYXRlZ29yeUljb25gIGFzIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb25cbiAgICAgICAgXVxuICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBBcnJvd0ljb24gPSBpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uXG4gICAgY29uc3QgUGluVW5waW5JY29uID0gaXNJdGVtUGlubmVkID8gU3R5bGVkVW5waW5JY29uIDogU3R5bGVkUGluSWNvbk91dGxpbmVcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1pcy1hY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdGFydFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdG9wVHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
164
164
|
const StyledStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
165
165
|
target: "e134hokc4"
|
|
166
166
|
} : {
|
|
@@ -171,7 +171,7 @@ const StyledStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.e
|
|
|
171
171
|
styles: "padding-left:28px"
|
|
172
172
|
} : {
|
|
173
173
|
name: "13feash",
|
|
174
|
-
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtKaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
174
|
+
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtKaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
175
175
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
176
176
|
});
|
|
177
177
|
const StyledContainer = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
@@ -203,7 +203,7 @@ const StyledContainer = /* @__PURE__ */ _styled__default.default(ui.Stack, proce
|
|
|
203
203
|
theme
|
|
204
204
|
}) => theme.colors.primary.backgroundHover, ";}}&[disabled]{cursor:not-allowed;background-color:unset;", WrapText, "{color:", ({
|
|
205
205
|
theme
|
|
206
|
-
}) => theme.colors.neutral.textWeakDisabled, ';}}&[data-animation="collapse"][data-animation-type="complex"]{animation:', constants.shrinkHeight, " ", constants.ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", ui.fadeIn, " ", constants.ANIMATION_DURATION, 'ms ease-in-out reverse;}}&[data-animation="expand"][data-animation-type="complex"]{animation:', constants.shrinkHeight, " ", constants.ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", ui.fadeIn, " ", constants.ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNKcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
206
|
+
}) => theme.colors.neutral.textWeakDisabled, ';}}&[data-animation="collapse"][data-animation-type="complex"]{animation:', constants.shrinkHeight, " ", constants.ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", ui.fadeIn, " ", constants.ANIMATION_DURATION, 'ms ease-in-out reverse;}}&[data-animation="expand"][data-animation-type="complex"]{animation:', constants.shrinkHeight, " ", constants.ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", ui.fadeIn, " ", constants.ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNKcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
207
207
|
const MenuStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
208
208
|
target: "e134hokc2"
|
|
209
209
|
} : {
|
|
@@ -213,7 +213,7 @@ const MenuStack = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env
|
|
|
213
213
|
theme
|
|
214
214
|
}) => `0 ${theme.space["2"]}`, ";margin-top:", ({
|
|
215
215
|
theme
|
|
216
|
-
}) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
216
|
+
}) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
217
217
|
const StackIcon = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
218
218
|
target: "e134hokc1"
|
|
219
219
|
} : {
|
|
@@ -221,7 +221,7 @@ const StackIcon = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env
|
|
|
221
221
|
label: "StackIcon"
|
|
222
222
|
})("padding-top:", ({
|
|
223
223
|
theme
|
|
224
|
-
}) => theme.space["0.5"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
|
|
224
|
+
}) => theme.space["0.5"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
225
225
|
const ContainerCategoryIcon = /* @__PURE__ */ _styled__default.default(ui.Stack, process.env.NODE_ENV === "production" ? {
|
|
226
226
|
target: "e134hokc0"
|
|
227
227
|
} : {
|
|
@@ -232,7 +232,7 @@ const ContainerCategoryIcon = /* @__PURE__ */ _styled__default.default(ui.Stack,
|
|
|
232
232
|
styles: "min-width:20px"
|
|
233
233
|
} : {
|
|
234
234
|
name: "d47oax",
|
|
235
|
-
styles: "min-width:20px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBRMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRHJhZ0VuZD17KGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImZsZXgtc3RhcnRcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntjaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gICAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiB3aGl0ZVNwYWNlPVwicHJlLXdyYXBcIj5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgcHJvbWluZW5jZT1cIndlYWtcIiAvPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
|
|
235
|
+
styles: "min-width:20px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBRMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBQYXNjYWxUb0NhbWVsQ2FzZVdpdGhvdXRTdWZmaXggfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBJdGVtQ29udGV4dCwgSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9JdGVtUHJvdmlkZXInXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogSFRNTEFuY2hvckVsZW1lbnRbJ2hyZWYnXVxuICB0YXJnZXQ/OiBIVE1MQW5jaG9yRWxlbWVudFsndGFyZ2V0J11cbiAgcmVsPzogSFRNTEFuY2hvckVsZW1lbnRbJ3JlbCddXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBjYXRlZ29yeUljb25WYXJpYW50LFxuICAgIGxhYmVsLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gaW50ZXJuYWxFeHBhbmRlZCA/IEFycm93RG93bkljb24gOiBBcnJvd1JpZ2h0SWNvblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lXG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gICAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICAgIH1cblxuICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICAgIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gICAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgICAvLyBBdm9pZCBhbmltYXRpb24gb2YgYWxsIGV4cGVuZGFibGUgSXRlbSBkdXJpbmcgY29sbGFwc2UsIGV4cGVuZCBvZiB0aGUgTmF2aWdhdGlvblxuICAgICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gMFxuICAgIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FyaWFFeHBhbmRlZH1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja0ljb24gZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0ljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2tJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbEV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e2NoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57Y2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgICAgcmVsPXtyZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gc2VudGltZW50PVwibmV1dHJhbFwiIHByb21pbmVuY2U9XCJ3ZWFrXCIgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */",
|
|
236
236
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
237
237
|
});
|
|
238
238
|
const onDragStopTrigger = (event) => {
|
|
@@ -376,8 +376,8 @@ const Item = react.memo(({
|
|
|
376
376
|
}, [animation, shouldAnimate, animationType]);
|
|
377
377
|
if (expanded || !expanded && animation === "expand") {
|
|
378
378
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
379
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Container, { gap: 1, direction: "row", alignItems: "flex-start", justifyContent: "space-between", "data-has-sub-label": !!subLabel, onClick: triggerToggle, "aria-expanded": ariaExpanded, href, target, rel, "data-is-pinnable": shouldShowPinnedButton, "data-is-active": active, "data-animation": shouldAnimate ? animation : void 0, "data-animation-type": animationType, "data-has-children": !!children, "data-has-active-children": hasActiveChildren, "data-has-no-expand": noExpand, disabled, draggable: type === "pinned" && expanded, onDragStart: (event) => expanded ? onDragStartTrigger(event) : void 0, onDragEnd: (event) => expanded ? onDragStopTrigger(event) : void 0, id, "data-testid": dataTestId, children: [
|
|
380
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { direction: "row", gap: 1, alignItems: "flex-start", justifyContent: "center", children: [
|
|
379
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Container, { gap: 1, direction: "row", alignItems: categoryIcon ? "flex-start" : "center", justifyContent: "space-between", "data-has-sub-label": !!subLabel, onClick: triggerToggle, "aria-expanded": ariaExpanded, href, target, rel, "data-is-pinnable": shouldShowPinnedButton, "data-is-active": active, "data-animation": shouldAnimate ? animation : void 0, "data-animation-type": animationType, "data-has-children": !!children, "data-has-active-children": hasActiveChildren, "data-has-no-expand": noExpand, disabled, draggable: type === "pinned" && expanded, onDragStart: (event) => expanded ? onDragStartTrigger(event) : void 0, onDragEnd: (event) => expanded ? onDragStopTrigger(event) : void 0, id, "data-testid": dataTestId, children: [
|
|
380
|
+
/* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { direction: "row", gap: 1, alignItems: categoryIcon ? "flex-start" : "center", justifyContent: "center", children: [
|
|
381
381
|
CategoryIconUsed ? /* @__PURE__ */ jsxRuntime.jsx(ContainerCategoryIcon, { alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(CategoryIconUsed, { variant: active ? "primary" : categoryIconVariant, disabled }) }) : null,
|
|
382
382
|
type === "pinned" && expanded ? /* @__PURE__ */ jsxRuntime.jsx(GrabIcon, { sentiment: "neutral", prominence: "weak", size: "small", disabled }) : null,
|
|
383
383
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Stack, { children: [
|