@getopenpay/openpay-js-react 0.5.26-alpha.153f26b → 0.5.26-alpha.9401a5a
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{Resource-BGoGzezJ-D6AGhJvO.js → Resource-CQk3bJUg-h8XRKHYu.js} +2 -2
- package/dist/{SimpleSpanProcessor-EUrRvOxD-Cx0ByL0E.js → SimpleSpanProcessor-B0XTcM06-B95Efvoq.js} +7 -7
- package/dist/{detect-resources-CeCsS5c2-T4BVBhqT.js → detect-resources-CJLmk0Pz-DLybWxl1.js} +6 -6
- package/dist/diag-api-CRtCrpMP-D1Grm78J.js +6 -0
- package/dist/{index-Dgbfu9zy.js → index-B6kPUr8C.js} +1113 -1093
- package/dist/{index-Db8m-dbQ-DT_iOm2i.js → index-BCr1mF0L-b1JRs4mx.js} +2 -2
- package/dist/{index-DkTmkVoN-DmchP8Pf.js → index-BXqTsJbc-CYMGaCi-.js} +2 -2
- package/dist/{index-0F1by-jA-BqILNNkT.js → index-Bw3vTCsH-BPE-pjsd.js} +6 -6
- package/dist/{index-DKqJssii-Cw5XWpWg.js → index-BxDit4jO-BgKgeJs3.js} +3 -3
- package/dist/{index-DkMLIoAy-CDGaA3KQ.js → index-CAACLbdG-ls7LhHD4.js} +5 -5
- package/dist/{index-3_JD_UJB-DRHt9Q6d.js → index-D2_mwXyg-DvgjTmvH.js} +2 -2
- package/dist/{index-RQ76L6S5-BXvE5isJ.js → index-D8L_kQO5-P5OVnnzF.js} +5 -5
- package/dist/{index-CfXib0tt-DXx3V2OH.js → index-DmxTUvIX-DSAfnhZS.js} +2 -2
- package/dist/{index-l5J9XaMl-CQcTnQqW.js → index-k9MLkfau-DCO-ohaA.js} +5 -5
- package/dist/index.js +2 -2
- package/dist/{metrics-api-CWasuQP9-CCSb8OHf.js → metrics-api-D2MKmNct-h_Z7lpWr.js} +10 -10
- package/dist/{suppress-tracing-BOJu4Nwm-CtrfuoLj.js → suppress-tracing-6_YGv_1k-D6PXlSAc.js} +2 -2
- package/dist/{url-DlMm-vrv-1uvNj_ep.js → url-77LdbwoZ-C85teA7s.js} +29 -29
- package/dist/{utils-CRXyxzkZ-C5WXE8kl.js → utils-K5CKjpWD-D-ycNhps.js} +4 -4
- package/dist/{utils-TP7isLKj-Cxp1nWtV.js → utils-OlDmQX58-L1V79qYf.js} +2 -2
- package/package.json +1 -1
- package/dist/diag-api-b72ohECP-DeE8Ubm6.js +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as h } from "./diag-api-
|
|
1
|
+
import { r as h } from "./diag-api-CRtCrpMP-D1Grm78J.js";
|
|
2
2
|
import { j as m, bl as y, m as p, Y as v, f as d } from "./sdk-info-ChuKu8zW-BkU0NT3O.js";
|
|
3
3
|
function g() {
|
|
4
4
|
return "unknown_service";
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
g as E,
|
|
174
174
|
j as R
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiUmVzb3VyY2UtQkdvR3plekotIX57MDAyfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLWI3Mm9oRUNQLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGogYXMgal8sIGJsIGFzIFRBLCBtIGFzIG1TLCBZIGFzIFlTLCBmIGFzIGRTIH0gZnJvbSAnLi9zZGstaW5mby1DaHVLdTh6Vy0hfnswMGp9fi5qcyc7XG5cbmZ1bmN0aW9uIEUoKSB7XG4gIHJldHVybiBcInVua25vd25fc2VydmljZVwiO1xufVxudmFyIGYgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGYgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHUpIHtcbiAgICBmb3IgKHZhciBuLCBlID0gMSwgcyA9IGFyZ3VtZW50cy5sZW5ndGg7IGUgPCBzOyBlKyspIHtcbiAgICAgIG4gPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciBpIGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBpKSAmJiAodVtpXSA9IG5baV0pO1xuICAgIH1cbiAgICByZXR1cm4gdTtcbiAgfSwgZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSwgbSA9IGZ1bmN0aW9uKHUsIG4sIGUsIHMpIHtcbiAgZnVuY3Rpb24gaSh0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBhKSB7XG4gICAgZnVuY3Rpb24gbyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICByKHMubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChiKSB7XG4gICAgICAgIGEoYik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcihzLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGIpIHtcbiAgICAgICAgYShiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcihjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogaShjLnZhbHVlKS50aGVuKG8sIGwpO1xuICAgIH1cbiAgICByKChzID0gcy5hcHBseSh1LCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgUyA9IGZ1bmN0aW9uKHUsIG4pIHtcbiAgdmFyIGUgPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHtcbiAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07XG4gICAgcmV0dXJuIHRbMV07XG4gIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIHMsIGksIHQsIGE7XG4gIHJldHVybiBhID0geyBuZXh0OiBvKDApLCB0aHJvdzogbygxKSwgcmV0dXJuOiBvKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIChhW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSksIGE7XG4gIGZ1bmN0aW9uIG8ocikge1xuICAgIHJldHVybiBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gbChbciwgY10pO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbChyKSB7XG4gICAgaWYgKHMpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgIGZvciAoOyBlOyApIHRyeSB7XG4gICAgICBpZiAocyA9IDEsIGkgJiYgKHQgPSByWzBdICYgMiA/IGkucmV0dXJuIDogclswXSA/IGkudGhyb3cgfHwgKCh0ID0gaS5yZXR1cm4pICYmIHQuY2FsbChpKSwgMCkgOiBpLm5leHQpICYmICEodCA9IHQuY2FsbChpLCByWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICBzd2l0Y2ggKGkgPSAwLCB0ICYmIChyID0gW3JbMF0gJiAyLCB0LnZhbHVlXSksIHJbMF0pIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgdCA9IHI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gZS5sYWJlbCsrLCB7IHZhbHVlOiByWzFdLCBkb25lOiAhMSB9O1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgZS5sYWJlbCsrLCBpID0gclsxXSwgciA9IFswXTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHIgPSBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICh0ID0gZS50cnlzLCAhKHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAoclswXSA9PT0gNiB8fCByWzBdID09PSAyKSkge1xuICAgICAgICAgICAgZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDMgJiYgKCF0IHx8IHJbMV0gPiB0WzBdICYmIHJbMV0gPCB0WzNdKSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHJbMV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDYgJiYgZS5sYWJlbCA8IHRbMV0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzFdLCB0ID0gcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodCAmJiBlLmxhYmVsIDwgdFsyXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMl0sIGUub3BzLnB1c2gocik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdFsyXSAmJiBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgciA9IG4uY2FsbCh1LCBlKTtcbiAgICB9IGNhdGNoIChjKSB7XG4gICAgICByID0gWzYsIGNdLCBpID0gMDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcyA9IHQgPSAwO1xuICAgIH1cbiAgICBpZiAoclswXSAmIDUpIHRocm93IHJbMV07XG4gICAgcmV0dXJuIHsgdmFsdWU6IHJbMF0gPyByWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn0sIGcgPSBmdW5jdGlvbih1LCBuKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgdVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiB1O1xuICB2YXIgcyA9IGUuY2FsbCh1KSwgaSwgdCA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEoaSA9IHMubmV4dCgpKS5kb25lOyApIHQucHVzaChpLnZhbHVlKTtcbiAgfSBjYXRjaCAobykge1xuICAgIGEgPSB7IGVycm9yOiBvIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IHMucmV0dXJuKSAmJiBlLmNhbGwocyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHUobiwgZSkge1xuICAgICAgdmFyIHMgPSB0aGlzLCBpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG4sIHRoaXMuYXN5bmNBdHRyaWJ1dGVzUGVuZGluZyA9IGUgIT0gbnVsbCwgdGhpcy5fc3luY0F0dHJpYnV0ZXMgPSAoaSA9IHRoaXMuX2F0dHJpYnV0ZXMpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiB7fSwgdGhpcy5fYXN5bmNBdHRyaWJ1dGVzUHJvbWlzZSA9IGU/LnRoZW4oZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gcy5fYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHMuX2F0dHJpYnV0ZXMsIHQpLCBzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgPSBmYWxzZSwgdDtcbiAgICAgIH0sIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgcmV0dXJuIHIuZGVidWcoXCJhIHJlc291cmNlJ3MgYXN5bmMgYXR0cmlidXRlcyBwcm9taXNlIHJlamVjdGVkOiAlc1wiLCB0KSwgcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID0gZmFsc2UsIHt9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1LmVtcHR5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdS5FTVBUWTtcbiAgICB9LCB1LmRlZmF1bHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBuO1xuICAgICAgcmV0dXJuIG5ldyB1KChuID0ge30sIG5bal9dID0gRSgpLCBuW21TXSA9IFRBW21TXSwgbltZU10gPSBUQVtZU10sIG5bZFNdID0gVEFbZFNdLCBuKSk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHUucHJvdG90eXBlLCBcImF0dHJpYnV0ZXNcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG47XG4gICAgICAgIHJldHVybiB0aGlzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgci5lcnJvcihcIkFjY2Vzc2luZyByZXNvdXJjZSBhdHRyaWJ1dGVzIGJlZm9yZSBhc3luYyBhdHRyaWJ1dGVzIHNldHRsZWRcIiksIChuID0gdGhpcy5fYXR0cmlidXRlcykgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IHt9O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHUucHJvdG90eXBlLndhaXRGb3JBc3luY0F0dHJpYnV0ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBtKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFModGhpcywgZnVuY3Rpb24obikge1xuICAgICAgICAgIHN3aXRjaCAobi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID8gWzQsIHRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2VdIDogWzMsIDJdO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICBuLnNlbnQoKSwgbi5sYWJlbCA9IDI7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgIC8qcmV0dXJuKi9cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgdS5wcm90b3R5cGUubWVyZ2UgPSBmdW5jdGlvbihuKSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIHM7XG4gICAgICBpZiAoIW4pXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgdmFyIGkgPSBmKGYoe30sIHRoaXMuX3N5bmNBdHRyaWJ1dGVzKSwgKHMgPSBuLl9zeW5jQXR0cmlidXRlcykgIT09IG51bGwgJiYgcyAhPT0gdm9pZCAwID8gcyA6IG4uYXR0cmlidXRlcyk7XG4gICAgICBpZiAoIXRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2UgJiYgIW4uX2FzeW5jQXR0cmlidXRlc1Byb21pc2UpXG4gICAgICAgIHJldHVybiBuZXcgdShpKTtcbiAgICAgIHZhciB0ID0gUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlLFxuICAgICAgICBuLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlXG4gICAgICBdKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgdmFyIG8sIGwgPSBnKGEsIDIpLCByID0gbFswXSwgYyA9IGxbMV07XG4gICAgICAgIHJldHVybiBmKGYoZihmKHt9LCBlLl9zeW5jQXR0cmlidXRlcyksIHIpLCAobyA9IG4uX3N5bmNBdHRyaWJ1dGVzKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbi5hdHRyaWJ1dGVzKSwgYyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgdShpLCB0KTtcbiAgICB9LCB1LkVNUFRZID0gbmV3IHUoe30pLCB1O1xuICB9KSgpXG4pO1xuXG5leHBvcnQgeyBFLCBSIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSSxNQUFNQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBRTdELFNBQVNDLElBQUk7QUFDWCxTQUFPO0FBQ1Q7QUFDQSxJQUFJQyxJQUFJLFdBQVc7QUFDakIsU0FBT0EsSUFBSSxPQUFPLFVBQVUsU0FBU0MsR0FBRztBQUN0QyxhQUFTQyxHQUFHQyxJQUFJLEdBQUdDLElBQUksVUFBVSxRQUFRRCxJQUFJQyxHQUFHRCxLQUFLO0FBQ25ELE1BQUFELElBQUksVUFBVUMsQ0FBQztBQUNmLGVBQVMsS0FBS0QsRUFBRyxRQUFPLFVBQVUsZUFBZSxLQUFLQSxHQUFHLENBQUMsTUFBTUQsRUFBRSxDQUFDLElBQUlDLEVBQUUsQ0FBQztBQUFBLElBQzVFO0FBQ0EsV0FBT0Q7QUFBQSxFQUNULEdBQUdELEVBQUUsTUFBTSxNQUFNLFNBQVM7QUFDNUIsR0FBR0ssSUFBSSxTQUFTSixHQUFHQyxHQUFHQyxHQUFHQyxHQUFHO0FBQzFCLFdBQVMsRUFBRSxHQUFHO0FBQ1osV0FBTyxhQUFhRCxJQUFJLElBQUksSUFBSUEsRUFBRSxTQUFTRyxHQUFHO0FBQzVDLE1BQUFBLEVBQUUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFDQSxT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QUc7QUFDbEIsWUFBSUMsR0FBR0UsSUFBSUUsRUFBRUwsR0FBRyxDQUFDLEdBQUcsSUFBSUcsRUFBRSxDQUFDLEdBQUdELElBQUlDLEVBQUUsQ0FBQztBQUNyQyxlQUFPVCxFQUFFQSxFQUFFQSxFQUFFQSxFQUFFLENBQUMsR0FBR0csRUFBRSxlQUFlLEdBQUcsQ0FBQyxJQUFJSSxJQUFJTCxFQUFFLHFCQUFxQixRQUFRSyxNQUFNLFNBQVNBLElBQUlMLEVBQUUsVUFBVSxHQUFHTSxDQUFDO0FBQUEsTUFDcEgsQ0FBQztBQUNELGFBQU8sSUFBSVAsRUFBRSxHQUFHLENBQUM7QUFBQSxJQUNuQixHQUFHQSxFQUFFLFFBQVEsSUFBSUEsRUFBRSxDQUFDLENBQUMsR0FBR0E7QUFBQSxFQUMxQixHQUFHO0FBQUE7IiwKICAibmFtZXMiOiBbInIiLCAial8iLCAiVEEiLCAibVMiLCAiWVMiLCAiZFMiLCAiRSIsICJmIiwgInUiLCAibiIsICJlIiwgInMiLCAibSIsICJhIiwgIm8iLCAiYyIsICJsIiwgIlMiLCAiZyIsICJSIl0KfQo=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiUmVzb3VyY2UtQ1FrM2JKVWctIX57MDAyfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUNSdENycE1QLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGogYXMgal8sIGJsIGFzIFRBLCBtIGFzIG1TLCBZIGFzIFlTLCBmIGFzIGRTIH0gZnJvbSAnLi9zZGstaW5mby1DaHVLdTh6Vy0hfnswMGp9fi5qcyc7XG5cbmZ1bmN0aW9uIEUoKSB7XG4gIHJldHVybiBcInVua25vd25fc2VydmljZVwiO1xufVxudmFyIGYgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGYgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHUpIHtcbiAgICBmb3IgKHZhciBuLCBlID0gMSwgcyA9IGFyZ3VtZW50cy5sZW5ndGg7IGUgPCBzOyBlKyspIHtcbiAgICAgIG4gPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciBpIGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBpKSAmJiAodVtpXSA9IG5baV0pO1xuICAgIH1cbiAgICByZXR1cm4gdTtcbiAgfSwgZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSwgbSA9IGZ1bmN0aW9uKHUsIG4sIGUsIHMpIHtcbiAgZnVuY3Rpb24gaSh0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBhKSB7XG4gICAgZnVuY3Rpb24gbyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICByKHMubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChiKSB7XG4gICAgICAgIGEoYik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcihzLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGIpIHtcbiAgICAgICAgYShiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcihjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogaShjLnZhbHVlKS50aGVuKG8sIGwpO1xuICAgIH1cbiAgICByKChzID0gcy5hcHBseSh1LCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgUyA9IGZ1bmN0aW9uKHUsIG4pIHtcbiAgdmFyIGUgPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHtcbiAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07XG4gICAgcmV0dXJuIHRbMV07XG4gIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIHMsIGksIHQsIGE7XG4gIHJldHVybiBhID0geyBuZXh0OiBvKDApLCB0aHJvdzogbygxKSwgcmV0dXJuOiBvKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIChhW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSksIGE7XG4gIGZ1bmN0aW9uIG8ocikge1xuICAgIHJldHVybiBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gbChbciwgY10pO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbChyKSB7XG4gICAgaWYgKHMpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgIGZvciAoOyBlOyApIHRyeSB7XG4gICAgICBpZiAocyA9IDEsIGkgJiYgKHQgPSByWzBdICYgMiA/IGkucmV0dXJuIDogclswXSA/IGkudGhyb3cgfHwgKCh0ID0gaS5yZXR1cm4pICYmIHQuY2FsbChpKSwgMCkgOiBpLm5leHQpICYmICEodCA9IHQuY2FsbChpLCByWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICBzd2l0Y2ggKGkgPSAwLCB0ICYmIChyID0gW3JbMF0gJiAyLCB0LnZhbHVlXSksIHJbMF0pIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgdCA9IHI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gZS5sYWJlbCsrLCB7IHZhbHVlOiByWzFdLCBkb25lOiAhMSB9O1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgZS5sYWJlbCsrLCBpID0gclsxXSwgciA9IFswXTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHIgPSBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICh0ID0gZS50cnlzLCAhKHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAoclswXSA9PT0gNiB8fCByWzBdID09PSAyKSkge1xuICAgICAgICAgICAgZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDMgJiYgKCF0IHx8IHJbMV0gPiB0WzBdICYmIHJbMV0gPCB0WzNdKSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHJbMV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDYgJiYgZS5sYWJlbCA8IHRbMV0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzFdLCB0ID0gcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodCAmJiBlLmxhYmVsIDwgdFsyXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMl0sIGUub3BzLnB1c2gocik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdFsyXSAmJiBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgciA9IG4uY2FsbCh1LCBlKTtcbiAgICB9IGNhdGNoIChjKSB7XG4gICAgICByID0gWzYsIGNdLCBpID0gMDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcyA9IHQgPSAwO1xuICAgIH1cbiAgICBpZiAoclswXSAmIDUpIHRocm93IHJbMV07XG4gICAgcmV0dXJuIHsgdmFsdWU6IHJbMF0gPyByWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn0sIGcgPSBmdW5jdGlvbih1LCBuKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgdVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiB1O1xuICB2YXIgcyA9IGUuY2FsbCh1KSwgaSwgdCA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEoaSA9IHMubmV4dCgpKS5kb25lOyApIHQucHVzaChpLnZhbHVlKTtcbiAgfSBjYXRjaCAobykge1xuICAgIGEgPSB7IGVycm9yOiBvIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IHMucmV0dXJuKSAmJiBlLmNhbGwocyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHUobiwgZSkge1xuICAgICAgdmFyIHMgPSB0aGlzLCBpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG4sIHRoaXMuYXN5bmNBdHRyaWJ1dGVzUGVuZGluZyA9IGUgIT0gbnVsbCwgdGhpcy5fc3luY0F0dHJpYnV0ZXMgPSAoaSA9IHRoaXMuX2F0dHJpYnV0ZXMpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiB7fSwgdGhpcy5fYXN5bmNBdHRyaWJ1dGVzUHJvbWlzZSA9IGU/LnRoZW4oZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gcy5fYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHMuX2F0dHJpYnV0ZXMsIHQpLCBzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgPSBmYWxzZSwgdDtcbiAgICAgIH0sIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgcmV0dXJuIHIuZGVidWcoXCJhIHJlc291cmNlJ3MgYXN5bmMgYXR0cmlidXRlcyBwcm9taXNlIHJlamVjdGVkOiAlc1wiLCB0KSwgcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID0gZmFsc2UsIHt9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1LmVtcHR5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdS5FTVBUWTtcbiAgICB9LCB1LmRlZmF1bHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBuO1xuICAgICAgcmV0dXJuIG5ldyB1KChuID0ge30sIG5bal9dID0gRSgpLCBuW21TXSA9IFRBW21TXSwgbltZU10gPSBUQVtZU10sIG5bZFNdID0gVEFbZFNdLCBuKSk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHUucHJvdG90eXBlLCBcImF0dHJpYnV0ZXNcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG47XG4gICAgICAgIHJldHVybiB0aGlzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgci5lcnJvcihcIkFjY2Vzc2luZyByZXNvdXJjZSBhdHRyaWJ1dGVzIGJlZm9yZSBhc3luYyBhdHRyaWJ1dGVzIHNldHRsZWRcIiksIChuID0gdGhpcy5fYXR0cmlidXRlcykgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IHt9O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHUucHJvdG90eXBlLndhaXRGb3JBc3luY0F0dHJpYnV0ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBtKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFModGhpcywgZnVuY3Rpb24obikge1xuICAgICAgICAgIHN3aXRjaCAobi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID8gWzQsIHRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2VdIDogWzMsIDJdO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICBuLnNlbnQoKSwgbi5sYWJlbCA9IDI7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgIC8qcmV0dXJuKi9cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgdS5wcm90b3R5cGUubWVyZ2UgPSBmdW5jdGlvbihuKSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIHM7XG4gICAgICBpZiAoIW4pXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgdmFyIGkgPSBmKGYoe30sIHRoaXMuX3N5bmNBdHRyaWJ1dGVzKSwgKHMgPSBuLl9zeW5jQXR0cmlidXRlcykgIT09IG51bGwgJiYgcyAhPT0gdm9pZCAwID8gcyA6IG4uYXR0cmlidXRlcyk7XG4gICAgICBpZiAoIXRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2UgJiYgIW4uX2FzeW5jQXR0cmlidXRlc1Byb21pc2UpXG4gICAgICAgIHJldHVybiBuZXcgdShpKTtcbiAgICAgIHZhciB0ID0gUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlLFxuICAgICAgICBuLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlXG4gICAgICBdKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgdmFyIG8sIGwgPSBnKGEsIDIpLCByID0gbFswXSwgYyA9IGxbMV07XG4gICAgICAgIHJldHVybiBmKGYoZihmKHt9LCBlLl9zeW5jQXR0cmlidXRlcyksIHIpLCAobyA9IG4uX3N5bmNBdHRyaWJ1dGVzKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbi5hdHRyaWJ1dGVzKSwgYyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgdShpLCB0KTtcbiAgICB9LCB1LkVNUFRZID0gbmV3IHUoe30pLCB1O1xuICB9KSgpXG4pO1xuXG5leHBvcnQgeyBFLCBSIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSSxNQUFNQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBRTdELFNBQVNDLElBQUk7QUFDWCxTQUFPO0FBQ1Q7QUFDQSxJQUFJQyxJQUFJLFdBQVc7QUFDakIsU0FBT0EsSUFBSSxPQUFPLFVBQVUsU0FBU0MsR0FBRztBQUN0QyxhQUFTQyxHQUFHQyxJQUFJLEdBQUdDLElBQUksVUFBVSxRQUFRRCxJQUFJQyxHQUFHRCxLQUFLO0FBQ25ELE1BQUFELElBQUksVUFBVUMsQ0FBQztBQUNmLGVBQVMsS0FBS0QsRUFBRyxRQUFPLFVBQVUsZUFBZSxLQUFLQSxHQUFHLENBQUMsTUFBTUQsRUFBRSxDQUFDLElBQUlDLEVBQUUsQ0FBQztBQUFBLElBQzVFO0FBQ0EsV0FBT0Q7QUFBQSxFQUNULEdBQUdELEVBQUUsTUFBTSxNQUFNLFNBQVM7QUFDNUIsR0FBR0ssSUFBSSxTQUFTSixHQUFHQyxHQUFHQyxHQUFHQyxHQUFHO0FBQzFCLFdBQVMsRUFBRSxHQUFHO0FBQ1osV0FBTyxhQUFhRCxJQUFJLElBQUksSUFBSUEsRUFBRSxTQUFTRyxHQUFHO0FBQzVDLE1BQUFBLEVBQUUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFDQSxT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QUc7QUFDbEIsWUFBSUMsR0FBR0UsSUFBSUUsRUFBRUwsR0FBRyxDQUFDLEdBQUcsSUFBSUcsRUFBRSxDQUFDLEdBQUdELElBQUlDLEVBQUUsQ0FBQztBQUNyQyxlQUFPVCxFQUFFQSxFQUFFQSxFQUFFQSxFQUFFLENBQUMsR0FBR0csRUFBRSxlQUFlLEdBQUcsQ0FBQyxJQUFJSSxJQUFJTCxFQUFFLHFCQUFxQixRQUFRSyxNQUFNLFNBQVNBLElBQUlMLEVBQUUsVUFBVSxHQUFHTSxDQUFDO0FBQUEsTUFDcEgsQ0FBQztBQUNELGFBQU8sSUFBSVAsRUFBRSxHQUFHLENBQUM7QUFBQSxJQUNuQixHQUFHQSxFQUFFLFFBQVEsSUFBSUEsRUFBRSxDQUFDLENBQUMsR0FBR0E7QUFBQSxFQUMxQixHQUFHO0FBQUE7IiwKICAibmFtZXMiOiBbInIiLCAial8iLCAiVEEiLCAibVMiLCAiWVMiLCAiZFMiLCAiRSIsICJmIiwgInUiLCAibiIsICJlIiwgInMiLCAibSIsICJhIiwgIm8iLCAiYyIsICJsIiwgIlMiLCAiZyIsICJSIl0KfQo=
|
package/dist/{SimpleSpanProcessor-EUrRvOxD-Cx0ByL0E.js → SimpleSpanProcessor-B0XTcM06-B95Efvoq.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { m as b, z as _, G as E,
|
|
2
|
-
import { r as l } from "./diag-api-
|
|
3
|
-
import { dD as j, y as ut, dE as V, dF as ct, dG as I, p as pt, O as x, dH as lt, dI as ht, at as N, av as M, dJ as dt, au as ft } from "./url-
|
|
4
|
-
import { E as f, O as P, v as _t, V as mt, Z as vt, f as Y, S as St, n as yt, Q as C, l as H, c as gt, d as Et, p as Tt, a as bt, b as v, e as Lt } from "./index-
|
|
5
|
-
import { u as Pt, a as wt } from "./suppress-tracing-
|
|
6
|
-
import { R as Q } from "./Resource-
|
|
1
|
+
import { m as b, z as _, G as E, O as nt, d as ot, k as it, H as st, V as at } from "./index-B6kPUr8C.js";
|
|
2
|
+
import { r as l } from "./diag-api-CRtCrpMP-D1Grm78J.js";
|
|
3
|
+
import { dD as j, y as ut, dE as V, dF as ct, dG as I, p as pt, O as x, dH as lt, dI as ht, at as N, av as M, dJ as dt, au as ft } from "./url-77LdbwoZ-C85teA7s.js";
|
|
4
|
+
import { E as f, O as P, v as _t, V as mt, Z as vt, f as Y, S as St, n as yt, Q as C, l as H, c as gt, d as Et, p as Tt, a as bt, b as v, e as Lt } from "./index-CAACLbdG-ls7LhHD4.js";
|
|
5
|
+
import { u as Pt, a as wt } from "./suppress-tracing-6_YGv_1k-D6PXlSAc.js";
|
|
6
|
+
import { R as Q } from "./Resource-CQk3bJUg-h8XRKHYu.js";
|
|
7
7
|
import { a as U } from "./ExportResult-BacsqwKA-wgTHEn_9.js";
|
|
8
8
|
var xt = "exception", B = function() {
|
|
9
9
|
return B = Object.assign || function(e) {
|
|
@@ -907,4 +907,4 @@ export {
|
|
|
907
907
|
Ct as x,
|
|
908
908
|
zt as z
|
|
909
909
|
};
|
|
910
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiU2ltcGxlU3BhblByb2Nlc3Nvci1FVXJSdk94RC0hfnswMDR9fi5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgbSBhcyBtciwgeiBhcyB6ZSwgRyBhcyBHZSwgVSBhcyBVcywgZCBhcyBkdCwgayBhcyBrZSwgSCBhcyBIbiwgViBhcyBWcyB9IGZyb20gJy4vaW5kZXgtIX57MDA3fX4uanMnO1xuaW1wb3J0IHsgciB9IGZyb20gJy4vZGlhZy1hcGktYjcyb2hFQ1AtIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgZEQgYXMgamUsIHkgYXMgeV8sIGRFIGFzIHFlLCBkRiBhcyBYZSwgZEcgYXMgUiQyLCBwIGFzIHBfLCBPIGFzIE8kMSwgZEggYXMgTl8sIGRJIGFzIGJfLCBhdCBhcyBOQSwgYXYgYXMgTUEsIGRKIGFzIHJfLCBhdSBhcyBlQSB9IGZyb20gJy4vdXJsLURsTW0tdnJ2LSF+ezAwYn1+LmpzJztcbmltcG9ydCB7IEUgYXMgRXIsIE8gYXMgT2UsIHYgYXMgdmUsIFYgYXMgVmUsIFogYXMgWnIsIGYgYXMgZnQsIFMgYXMgU2UsIG4gYXMgbnQsIFEgYXMgUXIsIGwsIGMgYXMgY2UsIGQsIHAsIGEgYXMgYXIsIGIgYXMgdiwgZSBhcyBPdCQxIH0gZnJvbSAnLi9pbmRleC1Ea01MSW9BeS0hfnswMGl9fi5qcyc7XG5pbXBvcnQgeyB1LCBhIGFzIGEkMSB9IGZyb20gJy4vc3VwcHJlc3MtdHJhY2luZy1CT0p1NE53bS0hfnswMG59fi5qcyc7XG5pbXBvcnQgeyBSIGFzIFIkMSB9IGZyb20gJy4vUmVzb3VyY2UtQkdvR3plekotIX57MDAyfX4uanMnO1xuaW1wb3J0IHsgYSB9IGZyb20gJy4vRXhwb3J0UmVzdWx0LUJhY3Nxd0tBLSF+ezAwbH1+LmpzJztcblxudmFyIHd0ID0gXCJleGNlcHRpb25cIiwgRCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gRCA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24ocikge1xuICAgIGZvciAodmFyIHQsIGUgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgZSA8IG47IGUrKykge1xuICAgICAgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIG8gaW4gdCkgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIG8pICYmIChyW29dID0gdFtvXSk7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9LCBELmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59LCBDdCA9IGZ1bmN0aW9uKHIpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIGUgPSB0ICYmIHJbdF0sIG4gPSAwO1xuICBpZiAoZSkgcmV0dXJuIGUuY2FsbChyKTtcbiAgaWYgKHIgJiYgdHlwZW9mIHIubGVuZ3RoID09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gciAmJiBuID49IHIubGVuZ3RoICYmIChyID0gdm9pZCAwKSwgeyB2YWx1ZTogciAmJiByW24rK10sIGRvbmU6ICFyIH07XG4gICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHQgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59LCBYID0gZnVuY3Rpb24ociwgdCkge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gcjtcbiAgdmFyIG4gPSBlLmNhbGwociksIG8sIGkgPSBbXSwgYTtcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHQgPT09IHZvaWQgMCB8fCB0LS0gPiAwKSAmJiAhKG8gPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKHMpIHtcbiAgICBhID0geyBlcnJvcjogcyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYSkgdGhyb3cgYS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBPdCA9IGZ1bmN0aW9uKHIsIHQsIGUpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBvID0gdC5sZW5ndGgsIGk7IG4gPCBvOyBuKyspXG4gICAgKGkgfHwgIShuIGluIHQpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsIDAsIG4pKSwgaVtuXSA9IHRbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSk7XG59LCB4dCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQsIGUsIG4sIG8sIGksIGEsIHMsIGwsIHUsIHApIHtcbiAgICAgIHMgPT09IHZvaWQgMCAmJiAocyA9IFtdKSwgdGhpcy5hdHRyaWJ1dGVzID0ge30sIHRoaXMubGlua3MgPSBbXSwgdGhpcy5ldmVudHMgPSBbXSwgdGhpcy5fZHJvcHBlZEF0dHJpYnV0ZXNDb3VudCA9IDAsIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA9IDAsIHRoaXMuX2Ryb3BwZWRMaW5rc0NvdW50ID0gMCwgdGhpcy5zdGF0dXMgPSB7XG4gICAgICAgIGNvZGU6IGtlLlVOU0VUXG4gICAgICB9LCB0aGlzLmVuZFRpbWUgPSBbMCwgMF0sIHRoaXMuX2VuZGVkID0gZmFsc2UsIHRoaXMuX2R1cmF0aW9uID0gWy0xLCAtMV0sIHRoaXMubmFtZSA9IG4sIHRoaXMuX3NwYW5Db250ZXh0ID0gbywgdGhpcy5wYXJlbnRTcGFuSWQgPSBhLCB0aGlzLmtpbmQgPSBpLCB0aGlzLmxpbmtzID0gcztcbiAgICAgIHZhciBjID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuX3BlcmZvcm1hbmNlU3RhcnRUaW1lID0gUiQyLm5vdygpLCB0aGlzLl9wZXJmb3JtYW5jZU9mZnNldCA9IGMgLSAodGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWUgKyByXygpKSwgdGhpcy5fc3RhcnRUaW1lUHJvdmlkZWQgPSBsICE9IG51bGwsIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5fZ2V0VGltZShsID8/IGMpLCB0aGlzLnJlc291cmNlID0gdC5yZXNvdXJjZSwgdGhpcy5pbnN0cnVtZW50YXRpb25MaWJyYXJ5ID0gdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LCB0aGlzLl9zcGFuTGltaXRzID0gdC5nZXRTcGFuTGltaXRzKCksIHRoaXMuX2F0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQgPSB0aGlzLl9zcGFuTGltaXRzLmF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQgfHwgMCwgcCAhPSBudWxsICYmIHRoaXMuc2V0QXR0cmlidXRlcyhwKSwgdGhpcy5fc3BhblByb2Nlc3NvciA9IHQuZ2V0QWN0aXZlU3BhblByb2Nlc3NvcigpLCB0aGlzLl9zcGFuUHJvY2Vzc29yLm9uU3RhcnQodGhpcywgZSk7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLnNwYW5Db250ZXh0ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3BhbkNvbnRleHQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gZSA9PSBudWxsIHx8IHRoaXMuX2lzU3BhbkVuZGVkKCkgPyB0aGlzIDogdC5sZW5ndGggPT09IDAgPyAoci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUga2V5OiBcIiArIHQpLCB0aGlzKSA6IGFyKGUpID8gT2JqZWN0LmtleXModGhpcy5hdHRyaWJ1dGVzKS5sZW5ndGggPj0gdGhpcy5fc3BhbkxpbWl0cy5hdHRyaWJ1dGVDb3VudExpbWl0ICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCB0KSA/ICh0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50KyssIHRoaXMpIDogKHRoaXMuYXR0cmlidXRlc1t0XSA9IHRoaXMuX3RydW5jYXRlVG9TaXplKGUpLCB0aGlzKSA6IChyLndhcm4oXCJJbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSBzZXQgZm9yIGtleTogXCIgKyB0KSwgdGhpcyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVzID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUsIG47XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBvID0gQ3QoT2JqZWN0LmVudHJpZXModCkpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gWChpLnZhbHVlLCAyKSwgcyA9IGFbMF0sIGwgPSBhWzFdO1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKHMsIGwpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoICh1KSB7XG4gICAgICAgIGUgPSB7IGVycm9yOiB1IH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAobiA9IG8ucmV0dXJuKSAmJiBuLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuYWRkRXZlbnQgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICBpZiAodGhpcy5faXNTcGFuRW5kZWQoKSlcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICBpZiAodGhpcy5fc3BhbkxpbWl0cy5ldmVudENvdW50TGltaXQgPT09IDApXG4gICAgICAgIHJldHVybiByLndhcm4oXCJObyBldmVudHMgYWxsb3dlZC5cIiksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCsrLCB0aGlzO1xuICAgICAgdGhpcy5ldmVudHMubGVuZ3RoID49IHRoaXMuX3NwYW5MaW1pdHMuZXZlbnRDb3VudExpbWl0ICYmICh0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgPT09IDAgJiYgci5kZWJ1ZyhcIkRyb3BwaW5nIGV4dHJhIGV2ZW50cy5cIiksIHRoaXMuZXZlbnRzLnNoaWZ0KCksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCsrKSwgcWUoZSkgJiYgKHFlKG4pIHx8IChuID0gZSksIGUgPSB2b2lkIDApO1xuICAgICAgdmFyIG8gPSBRcihlKTtcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5wdXNoKHtcbiAgICAgICAgbmFtZTogdCxcbiAgICAgICAgYXR0cmlidXRlczogbyxcbiAgICAgICAgdGltZTogdGhpcy5fZ2V0VGltZShuKSxcbiAgICAgICAgZHJvcHBlZEF0dHJpYnV0ZXNDb3VudDogMFxuICAgICAgfSksIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRMaW5rID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHRoaXMubGlua3MucHVzaCh0KSwgdGhpcztcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZExpbmtzID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4gKGUgPSB0aGlzLmxpbmtzKS5wdXNoLmFwcGx5KGUsIE90KFtdLCBYKHQpLCBmYWxzZSkpLCB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc2V0U3RhdHVzID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lzU3BhbkVuZGVkKCkgPyB0aGlzIDogKHRoaXMuc3RhdHVzID0gRCh7fSwgdCksIHRoaXMuc3RhdHVzLm1lc3NhZ2UgIT0gbnVsbCAmJiB0eXBlb2YgdC5tZXNzYWdlICE9IFwic3RyaW5nXCIgJiYgKHIud2FybihcIkRyb3BwaW5nIGludmFsaWQgc3RhdHVzLm1lc3NhZ2Ugb2YgdHlwZSAnXCIgKyB0eXBlb2YgdC5tZXNzYWdlICsgXCInLCBleHBlY3RlZCAnc3RyaW5nJ1wiKSwgZGVsZXRlIHRoaXMuc3RhdHVzLm1lc3NhZ2UpLCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLnVwZGF0ZU5hbWUgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiAodGhpcy5uYW1lID0gdCwgdGhpcyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodGhpcy5faXNTcGFuRW5kZWQoKSkge1xuICAgICAgICByLmVycm9yKHRoaXMubmFtZSArIFwiIFwiICsgdGhpcy5fc3BhbkNvbnRleHQudHJhY2VJZCArIFwiLVwiICsgdGhpcy5fc3BhbkNvbnRleHQuc3BhbklkICsgXCIgLSBZb3UgY2FuIG9ubHkgY2FsbCBlbmQoKSBvbiBhIHNwYW4gb25jZS5cIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2VuZGVkID0gdHJ1ZSwgdGhpcy5lbmRUaW1lID0gdGhpcy5fZ2V0VGltZSh0KSwgdGhpcy5fZHVyYXRpb24gPSBYZSh0aGlzLnN0YXJ0VGltZSwgdGhpcy5lbmRUaW1lKSwgdGhpcy5fZHVyYXRpb25bMF0gPCAwICYmIChyLndhcm4oXCJJbmNvbnNpc3RlbnQgc3RhcnQgYW5kIGVuZCB0aW1lLCBzdGFydFRpbWUgPiBlbmRUaW1lLiBTZXR0aW5nIHNwYW4gZHVyYXRpb24gdG8gMG1zLlwiLCB0aGlzLnN0YXJ0VGltZSwgdGhpcy5lbmRUaW1lKSwgdGhpcy5lbmRUaW1lID0gdGhpcy5zdGFydFRpbWUuc2xpY2UoKSwgdGhpcy5fZHVyYXRpb24gPSBbMCwgMF0pLCB0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgPiAwICYmIHIud2FybihcIkRyb3BwZWQgXCIgKyB0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgKyBcIiBldmVudHMgYmVjYXVzZSBldmVudENvdW50TGltaXQgcmVhY2hlZFwiKSwgdGhpcy5fc3BhblByb2Nlc3Nvci5vbkVuZCh0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRUaW1lID0gZnVuY3Rpb24odCkge1xuICAgICAgaWYgKHR5cGVvZiB0ID09IFwibnVtYmVyXCIgJiYgdCA8PSBSJDIubm93KCkpXG4gICAgICAgIHJldHVybiBwXyh0ICsgdGhpcy5fcGVyZm9ybWFuY2VPZmZzZXQpO1xuICAgICAgaWYgKHR5cGVvZiB0ID09IFwibnVtYmVyXCIpXG4gICAgICAgIHJldHVybiBPJDEodCk7XG4gICAgICBpZiAodCBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgIHJldHVybiBPJDEodC5nZXRUaW1lKCkpO1xuICAgICAgaWYgKE5fKHQpKVxuICAgICAgICByZXR1cm4gdDtcbiAgICAgIGlmICh0aGlzLl9zdGFydFRpbWVQcm92aWRlZClcbiAgICAgICAgcmV0dXJuIE8kMShEYXRlLm5vdygpKTtcbiAgICAgIHZhciBlID0gUiQyLm5vdygpIC0gdGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWU7XG4gICAgICByZXR1cm4gYl8odGhpcy5zdGFydFRpbWUsIE8kMShlKSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5pc1JlY29yZGluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkID09PSBmYWxzZTtcbiAgICB9LCByJDEucHJvdG90eXBlLnJlY29yZEV4Y2VwdGlvbiA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuID0ge307XG4gICAgICB0eXBlb2YgdCA9PSBcInN0cmluZ1wiID8gbltNQV0gPSB0IDogdCAmJiAodC5jb2RlID8gbltOQV0gPSB0LmNvZGUudG9TdHJpbmcoKSA6IHQubmFtZSAmJiAobltOQV0gPSB0Lm5hbWUpLCB0Lm1lc3NhZ2UgJiYgKG5bTUFdID0gdC5tZXNzYWdlKSwgdC5zdGFjayAmJiAobltlQV0gPSB0LnN0YWNrKSksIG5bTkFdIHx8IG5bTUFdID8gdGhpcy5hZGRFdmVudCh3dCwgbiwgZSkgOiByLndhcm4oXCJGYWlsZWQgdG8gcmVjb3JkIGFuIGV4Y2VwdGlvbiBcIiArIHQpO1xuICAgIH0sIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImR1cmF0aW9uXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kdXJhdGlvbjtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJlbmRlZFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwiZHJvcHBlZEF0dHJpYnV0ZXNDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZEF0dHJpYnV0ZXNDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkRXZlbnRzQ291bnRcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkTGlua3NDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZExpbmtzQ291bnQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgciQxLnByb3RvdHlwZS5faXNTcGFuRW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9lbmRlZCAmJiByLndhcm4oXCJDYW4gbm90IGV4ZWN1dGUgdGhlIG9wZXJhdGlvbiBvbiBlbmRlZCBTcGFuIHt0cmFjZUlkOiBcIiArIHRoaXMuX3NwYW5Db250ZXh0LnRyYWNlSWQgKyBcIiwgc3BhbklkOiBcIiArIHRoaXMuX3NwYW5Db250ZXh0LnNwYW5JZCArIFwifVwiKSwgdGhpcy5fZW5kZWQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fdHJ1bmNhdGVUb0xpbWl0VXRpbCA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHJldHVybiB0Lmxlbmd0aCA8PSBlID8gdCA6IHQuc3Vic3RyaW5nKDAsIGUpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX3RydW5jYXRlVG9TaXplID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuID0gdGhpcy5fYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdDtcbiAgICAgIHJldHVybiBuIDw9IDAgPyAoci53YXJuKFwiQXR0cmlidXRlIHZhbHVlIGxpbWl0IG11c3QgYmUgcG9zaXRpdmUsIGdvdCBcIiArIG4pLCB0KSA6IHR5cGVvZiB0ID09IFwic3RyaW5nXCIgPyB0aGlzLl90cnVuY2F0ZVRvTGltaXRVdGlsKHQsIG4pIDogQXJyYXkuaXNBcnJheSh0KSA/IHQubWFwKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvID09IFwic3RyaW5nXCIgPyBlLl90cnVuY2F0ZVRvTGltaXRVdGlsKG8sIG4pIDogbztcbiAgICAgIH0pIDogdDtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIFA7XG4oZnVuY3Rpb24ocikge1xuICByW3IuTk9UX1JFQ09SRCA9IDBdID0gXCJOT1RfUkVDT1JEXCIsIHJbci5SRUNPUkQgPSAxXSA9IFwiUkVDT1JEXCIsIHJbci5SRUNPUkRfQU5EX1NBTVBMRUQgPSAyXSA9IFwiUkVDT1JEX0FORF9TQU1QTEVEXCI7XG59KShQIHx8IChQID0ge30pKTtcbnZhciBSID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogUC5OT1RfUkVDT1JEXG4gICAgICB9O1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJBbHdheXNPZmZTYW1wbGVyXCI7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IFAuUkVDT1JEX0FORF9TQU1QTEVEXG4gICAgICB9O1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJBbHdheXNPblNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBCID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKHQpIHtcbiAgICAgIHZhciBlLCBuLCBvLCBpO1xuICAgICAgdGhpcy5fcm9vdCA9IHQucm9vdCwgdGhpcy5fcm9vdCB8fCAoRXIobmV3IEVycm9yKFwiUGFyZW50QmFzZWRTYW1wbGVyIG11c3QgaGF2ZSBhIHJvb3Qgc2FtcGxlciBjb25maWd1cmVkXCIpKSwgdGhpcy5fcm9vdCA9IG5ldyBnKCkpLCB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkID0gKGUgPSB0LnJlbW90ZVBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiBuZXcgZygpLCB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkID0gKG4gPSB0LnJlbW90ZVBhcmVudE5vdFNhbXBsZWQpICE9PSBudWxsICYmIG4gIT09IHZvaWQgMCA/IG4gOiBuZXcgUigpLCB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQgPSAobyA9IHQubG9jYWxQYXJlbnRTYW1wbGVkKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbmV3IGcoKSwgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkID0gKGkgPSB0LmxvY2FsUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IG5ldyBSKCk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbih0LCBlLCBuLCBvLCBpLCBhKSB7XG4gICAgICB2YXIgcyA9IHplLmdldFNwYW5Db250ZXh0KHQpO1xuICAgICAgcmV0dXJuICFzIHx8ICFIbihzKSA/IHRoaXMuX3Jvb3Quc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogcy5pc1JlbW90ZSA/IHMudHJhY2VGbGFncyAmIG1yLlNBTVBMRUQgPyB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogcy50cmFjZUZsYWdzICYgbXIuU0FNUExFRCA/IHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZC5zaG91bGRTYW1wbGUodCwgZSwgbiwgbywgaSwgYSkgOiB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpO1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJQYXJlbnRCYXNlZHtyb290PVwiICsgdGhpcy5fcm9vdC50b1N0cmluZygpICsgXCIsIHJlbW90ZVBhcmVudFNhbXBsZWQ9XCIgKyB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgcmVtb3RlUGFyZW50Tm90U2FtcGxlZD1cIiArIHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCBsb2NhbFBhcmVudFNhbXBsZWQ9XCIgKyB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCBsb2NhbFBhcmVudE5vdFNhbXBsZWQ9XCIgKyB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQudG9TdHJpbmcoKSArIFwifVwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIFcgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0gMCksIHRoaXMuX3JhdGlvID0gdCwgdGhpcy5fcmF0aW8gPSB0aGlzLl9ub3JtYWxpemUodCksIHRoaXMuX3VwcGVyQm91bmQgPSBNYXRoLmZsb29yKHRoaXMuX3JhdGlvICogNDI5NDk2NzI5NSk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogVnMoZSkgJiYgdGhpcy5fYWNjdW11bGF0ZShlKSA8IHRoaXMuX3VwcGVyQm91bmQgPyBQLlJFQ09SRF9BTkRfU0FNUExFRCA6IFAuTk9UX1JFQ09SRFxuICAgICAgfTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiVHJhY2VJZFJhdGlvQmFzZWR7XCIgKyB0aGlzLl9yYXRpbyArIFwifVwiO1xuICAgIH0sIHIucHJvdG90eXBlLl9ub3JtYWxpemUgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHQgIT0gXCJudW1iZXJcIiB8fCBpc05hTih0KSA/IDAgOiB0ID49IDEgPyAxIDogdCA8PSAwID8gMCA6IHQ7XG4gICAgfSwgci5wcm90b3R5cGUuX2FjY3VtdWxhdGUgPSBmdW5jdGlvbih0KSB7XG4gICAgICBmb3IgKHZhciBlID0gMCwgbiA9IDA7IG4gPCB0Lmxlbmd0aCAvIDg7IG4rKykge1xuICAgICAgICB2YXIgbyA9IG4gKiA4LCBpID0gcGFyc2VJbnQodC5zbGljZShvLCBvICsgOCksIDE2KTtcbiAgICAgICAgZSA9IChlIF4gaSkgPj4+IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBSdCA9IHYuQWx3YXlzT24sIEUgPSAxO1xuZnVuY3Rpb24gSigpIHtcbiAgdmFyIHIgPSBPZSgpO1xuICByZXR1cm4ge1xuICAgIHNhbXBsZXI6ICQociksXG4gICAgZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXM6IDNlNCxcbiAgICBnZW5lcmFsTGltaXRzOiB7XG4gICAgICBhdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0OiByLk9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCxcbiAgICAgIGF0dHJpYnV0ZUNvdW50TGltaXQ6IHIuT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVRcbiAgICB9LFxuICAgIHNwYW5MaW1pdHM6IHtcbiAgICAgIGF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVDb3VudExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVQsXG4gICAgICBsaW5rQ291bnRMaW1pdDogci5PVEVMX1NQQU5fTElOS19DT1VOVF9MSU1JVCxcbiAgICAgIGV2ZW50Q291bnRMaW1pdDogci5PVEVMX1NQQU5fRVZFTlRfQ09VTlRfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVQZXJFdmVudENvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9QRVJfRVZFTlRfQ09VTlRfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVQZXJMaW5rQ291bnRMaW1pdDogci5PVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlUXG4gICAgfSxcbiAgICBtZXJnZVJlc291cmNlV2l0aERlZmF1bHRzOiB0cnVlXG4gIH07XG59XG5mdW5jdGlvbiAkKHIkMSkge1xuICBzd2l0Y2ggKHIkMSA9PT0gdm9pZCAwICYmIChyJDEgPSBPZSgpKSwgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVIpIHtcbiAgICBjYXNlIHYuQWx3YXlzT246XG4gICAgICByZXR1cm4gbmV3IGcoKTtcbiAgICBjYXNlIHYuQWx3YXlzT2ZmOlxuICAgICAgcmV0dXJuIG5ldyBSKCk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkQWx3YXlzT246XG4gICAgICByZXR1cm4gbmV3IEIoe1xuICAgICAgICByb290OiBuZXcgZygpXG4gICAgICB9KTtcbiAgICBjYXNlIHYuUGFyZW50QmFzZWRBbHdheXNPZmY6XG4gICAgICByZXR1cm4gbmV3IEIoe1xuICAgICAgICByb290OiBuZXcgUigpXG4gICAgICB9KTtcbiAgICBjYXNlIHYuVHJhY2VJZFJhdGlvOlxuICAgICAgcmV0dXJuIG5ldyBXKFkociQxKSk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkVHJhY2VJZFJhdGlvOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IFcoWShyJDEpKVxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiByLmVycm9yKCdPVEVMX1RSQUNFU19TQU1QTEVSIHZhbHVlIFwiJyArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSICsgXCIgaW52YWxpZCwgZGVmYXVsdGluZyB0byBcIiArIFJ0ICsgJ1wiLicpLCBuZXcgZygpO1xuICB9XG59XG5mdW5jdGlvbiBZKHIkMSkge1xuICBpZiAociQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHID09PSB2b2lkIDAgfHwgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHID09PSBcIlwiKVxuICAgIHJldHVybiByLmVycm9yKFwiT1RFTF9UUkFDRVNfU0FNUExFUl9BUkcgaXMgYmxhbmssIGRlZmF1bHRpbmcgdG8gXCIgKyBFICsgXCIuXCIpLCBFO1xuICB2YXIgdCA9IE51bWJlcihyJDEuT1RFTF9UUkFDRVNfU0FNUExFUl9BUkcpO1xuICByZXR1cm4gaXNOYU4odCkgPyAoci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHPVwiICsgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHICsgXCIgd2FzIGdpdmVuLCBidXQgaXQgaXMgaW52YWxpZCwgZGVmYXVsdGluZyB0byBcIiArIEUgKyBcIi5cIiksIEUpIDogdCA8IDAgfHwgdCA+IDEgPyAoci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHPVwiICsgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHICsgXCIgd2FzIGdpdmVuLCBidXQgaXQgaXMgb3V0IG9mIHJhbmdlIChbMC4uMV0pLCBkZWZhdWx0aW5nIHRvIFwiICsgRSArIFwiLlwiKSwgRSkgOiB0O1xufVxuZnVuY3Rpb24gSXQocikge1xuICB2YXIgdCA9IHtcbiAgICBzYW1wbGVyOiAkKClcbiAgfSwgZSA9IEooKSwgbiA9IE9iamVjdC5hc3NpZ24oe30sIGUsIHQsIHIpO1xuICByZXR1cm4gbi5nZW5lcmFsTGltaXRzID0gT2JqZWN0LmFzc2lnbih7fSwgZS5nZW5lcmFsTGltaXRzLCByLmdlbmVyYWxMaW1pdHMgfHwge30pLCBuLnNwYW5MaW1pdHMgPSBPYmplY3QuYXNzaWduKHt9LCBlLnNwYW5MaW1pdHMsIHIuc3BhbkxpbWl0cyB8fCB7fSksIG47XG59XG5mdW5jdGlvbiBOdChyKSB7XG4gIHZhciB0LCBlLCBuLCBvLCBpLCBhLCBzLCBsLCB1LCBwJDEsIGMsIGYsIHkgPSBPYmplY3QuYXNzaWduKHt9LCByLnNwYW5MaW1pdHMpLCBtID0gY2UoKTtcbiAgcmV0dXJuIHkuYXR0cmlidXRlQ291bnRMaW1pdCA9IChhID0gKGkgPSAobyA9IChlID0gKHQgPSByLnNwYW5MaW1pdHMpID09PSBudWxsIHx8IHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHQuYXR0cmlidXRlQ291bnRMaW1pdCkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IChuID0gci5nZW5lcmFsTGltaXRzKSA9PT0gbnVsbCB8fCBuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuLmF0dHJpYnV0ZUNvdW50TGltaXQpICE9PSBudWxsICYmIG8gIT09IHZvaWQgMCA/IG8gOiBtLk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVQpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiBtLk9URUxfQVRUUklCVVRFX0NPVU5UX0xJTUlUKSAhPT0gbnVsbCAmJiBhICE9PSB2b2lkIDAgPyBhIDogZCwgeS5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0ID0gKGYgPSAoYyA9IChwJDEgPSAobCA9IChzID0gci5zcGFuTGltaXRzKSA9PT0gbnVsbCB8fCBzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzLmF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiAodSA9IHIuZ2VuZXJhbExpbWl0cykgPT09IG51bGwgfHwgdSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdS5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0KSAhPT0gbnVsbCAmJiBwJDEgIT09IHZvaWQgMCA/IHAkMSA6IG0uT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQpICE9PSBudWxsICYmIGMgIT09IHZvaWQgMCA/IGMgOiBtLk9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCkgIT09IG51bGwgJiYgZiAhPT0gdm9pZCAwID8gZiA6IHAsIE9iamVjdC5hc3NpZ24oe30sIHIsIHsgc3BhbkxpbWl0czogeSB9KTtcbn1cbnZhciBNdCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQsIGUpIHtcbiAgICAgIHRoaXMuX2V4cG9ydGVyID0gdCwgdGhpcy5faXNFeHBvcnRpbmcgPSBmYWxzZSwgdGhpcy5fZmluaXNoZWRTcGFucyA9IFtdLCB0aGlzLl9kcm9wcGVkU3BhbnNDb3VudCA9IDA7XG4gICAgICB2YXIgbiA9IE9lKCk7XG4gICAgICB0aGlzLl9tYXhFeHBvcnRCYXRjaFNpemUgPSB0eXBlb2YgZT8ubWF4RXhwb3J0QmF0Y2hTaXplID09IFwibnVtYmVyXCIgPyBlLm1heEV4cG9ydEJhdGNoU2l6ZSA6IG4uT1RFTF9CU1BfTUFYX0VYUE9SVF9CQVRDSF9TSVpFLCB0aGlzLl9tYXhRdWV1ZVNpemUgPSB0eXBlb2YgZT8ubWF4UXVldWVTaXplID09IFwibnVtYmVyXCIgPyBlLm1heFF1ZXVlU2l6ZSA6IG4uT1RFTF9CU1BfTUFYX1FVRVVFX1NJWkUsIHRoaXMuX3NjaGVkdWxlZERlbGF5TWlsbGlzID0gdHlwZW9mIGU/LnNjaGVkdWxlZERlbGF5TWlsbGlzID09IFwibnVtYmVyXCIgPyBlLnNjaGVkdWxlZERlbGF5TWlsbGlzIDogbi5PVEVMX0JTUF9TQ0hFRFVMRV9ERUxBWSwgdGhpcy5fZXhwb3J0VGltZW91dE1pbGxpcyA9IHR5cGVvZiBlPy5leHBvcnRUaW1lb3V0TWlsbGlzID09IFwibnVtYmVyXCIgPyBlLmV4cG9ydFRpbWVvdXRNaWxsaXMgOiBuLk9URUxfQlNQX0VYUE9SVF9USU1FT1VULCB0aGlzLl9zaHV0ZG93bk9uY2UgPSBuZXcgZnQodGhpcy5fc2h1dGRvd24sIHRoaXMpLCB0aGlzLl9tYXhFeHBvcnRCYXRjaFNpemUgPiB0aGlzLl9tYXhRdWV1ZVNpemUgJiYgKHIud2FybihcIkJhdGNoU3BhblByb2Nlc3NvcjogbWF4RXhwb3J0QmF0Y2hTaXplIG11c3QgYmUgc21hbGxlciBvciBlcXVhbCB0byBtYXhRdWV1ZVNpemUsIHNldHRpbmcgbWF4RXhwb3J0QmF0Y2hTaXplIHRvIG1hdGNoIG1heFF1ZXVlU2l6ZVwiKSwgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID0gdGhpcy5fbWF4UXVldWVTaXplKTtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NodXRkb3duT25jZS5pc0NhbGxlZCA/IHRoaXMuX3NodXRkb3duT25jZS5wcm9taXNlIDogdGhpcy5fZmx1c2hBbGwoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLm9uU3RhcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgfSwgciQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX3NodXRkb3duT25jZS5pc0NhbGxlZCB8fCAodC5zcGFuQ29udGV4dCgpLnRyYWNlRmxhZ3MgJiBtci5TQU1QTEVEKSAhPT0gMCAmJiB0aGlzLl9hZGRUb0J1ZmZlcih0KTtcbiAgICB9LCByJDEucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Lm9uU2h1dGRvd24oKTtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Ll9mbHVzaEFsbCgpO1xuICAgICAgfSkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHQuX2V4cG9ydGVyLnNodXRkb3duKCk7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9hZGRUb0J1ZmZlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIGlmICh0aGlzLl9maW5pc2hlZFNwYW5zLmxlbmd0aCA+PSB0aGlzLl9tYXhRdWV1ZVNpemUpIHtcbiAgICAgICAgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPT09IDAgJiYgci5kZWJ1ZyhcIm1heFF1ZXVlU2l6ZSByZWFjaGVkLCBkcm9wcGluZyBzcGFuc1wiKSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQrKztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPiAwICYmIChyLndhcm4oXCJEcm9wcGVkIFwiICsgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgKyBcIiBzcGFucyBiZWNhdXNlIG1heFF1ZXVlU2l6ZSByZWFjaGVkXCIpLCB0aGlzLl9kcm9wcGVkU3BhbnNDb3VudCA9IDApLCB0aGlzLl9maW5pc2hlZFNwYW5zLnB1c2godCksIHRoaXMuX21heWJlU3RhcnRUaW1lcigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2ZsdXNoQWxsID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCA9IHRoaXM7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSwgbikge1xuICAgICAgICBmb3IgKHZhciBvID0gW10sIGkgPSBNYXRoLmNlaWwodC5fZmluaXNoZWRTcGFucy5sZW5ndGggLyB0Ll9tYXhFeHBvcnRCYXRjaFNpemUpLCBhID0gMCwgcyA9IGk7IGEgPCBzOyBhKyspXG4gICAgICAgICAgby5wdXNoKHQuX2ZsdXNoT25lQmF0Y2goKSk7XG4gICAgICAgIFByb21pc2UuYWxsKG8pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgZSgpO1xuICAgICAgICB9KS5jYXRjaChuKTtcbiAgICAgIH0pO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2ZsdXNoT25lQmF0Y2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIHJldHVybiB0aGlzLl9jbGVhclRpbWVyKCksIHRoaXMuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoID09PSAwID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLCBuKSB7XG4gICAgICAgIHZhciBvID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICBuKG5ldyBFcnJvcihcIlRpbWVvdXRcIikpO1xuICAgICAgICB9LCB0Ll9leHBvcnRUaW1lb3V0TWlsbGlzKTtcbiAgICAgICAgR2Uud2l0aCh1KEdlLmFjdGl2ZSgpKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGk7XG4gICAgICAgICAgdC5fZmluaXNoZWRTcGFucy5sZW5ndGggPD0gdC5fbWF4RXhwb3J0QmF0Y2hTaXplID8gKGkgPSB0Ll9maW5pc2hlZFNwYW5zLCB0Ll9maW5pc2hlZFNwYW5zID0gW10pIDogaSA9IHQuX2ZpbmlzaGVkU3BhbnMuc3BsaWNlKDAsIHQuX21heEV4cG9ydEJhdGNoU2l6ZSk7XG4gICAgICAgICAgZm9yICh2YXIgYSQxID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5fZXhwb3J0ZXIuZXhwb3J0KGksIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgdmFyIGY7XG4gICAgICAgICAgICAgIGNsZWFyVGltZW91dChvKSwgYy5jb2RlID09PSBhLlNVQ0NFU1MgPyBlKCkgOiBuKChmID0gYy5lcnJvcikgIT09IG51bGwgJiYgZiAhPT0gdm9pZCAwID8gZiA6IG5ldyBFcnJvcihcIkJhdGNoU3BhblByb2Nlc3Nvcjogc3BhbiBleHBvcnQgZmFpbGVkXCIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIHMgPSBudWxsLCBsID0gMCwgdSA9IGkubGVuZ3RoOyBsIDwgdTsgbCsrKSB7XG4gICAgICAgICAgICB2YXIgcCA9IGlbbF07XG4gICAgICAgICAgICBwLnJlc291cmNlLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgcC5yZXNvdXJjZS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzICYmIChzID8/IChzID0gW10pLCBzLnB1c2gocC5yZXNvdXJjZS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcyA9PT0gbnVsbCA/IGEkMSgpIDogUHJvbWlzZS5hbGwocykudGhlbihhJDEsIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgIEVyKGMpLCBuKGMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX21heWJlU3RhcnRUaW1lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgaWYgKCF0aGlzLl9pc0V4cG9ydGluZykge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHQuX2lzRXhwb3J0aW5nID0gdHJ1ZSwgdC5fZmx1c2hPbmVCYXRjaCgpLmZpbmFsbHkoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IGZhbHNlLCB0Ll9maW5pc2hlZFNwYW5zLmxlbmd0aCA+IDAgJiYgKHQuX2NsZWFyVGltZXIoKSwgdC5fbWF5YmVTdGFydFRpbWVyKCkpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHQuX2lzRXhwb3J0aW5nID0gZmFsc2UsIEVyKG4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5fZmluaXNoZWRTcGFucy5sZW5ndGggPj0gdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplKVxuICAgICAgICAgIHJldHVybiBlKCk7XG4gICAgICAgIHRoaXMuX3RpbWVyID09PSB2b2lkIDAgJiYgKHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gZSgpO1xuICAgICAgICB9LCB0aGlzLl9zY2hlZHVsZWREZWxheU1pbGxpcyksIFNlKHRoaXMuX3RpbWVyKSk7XG4gICAgICB9XG4gICAgfSwgciQxLnByb3RvdHlwZS5fY2xlYXJUaW1lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5fdGltZXIgIT09IHZvaWQgMCAmJiAoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSwgdGhpcy5fdGltZXIgPSB2b2lkIDApO1xuICAgIH0sIHIkMTtcbiAgfSkoKVxuKSwgQnQgPSAvKiBAX19QVVJFX18gKi8gKGZ1bmN0aW9uKCkge1xuICB2YXIgciA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICByZXR1cm4gciA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKG4sIG8pIHtcbiAgICAgIG4uX19wcm90b19fID0gbztcbiAgICB9IHx8IGZ1bmN0aW9uKG4sIG8pIHtcbiAgICAgIGZvciAodmFyIGkgaW4gbykgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGkpICYmIChuW2ldID0gb1tpXSk7XG4gICAgfSwgcih0LCBlKTtcbiAgfTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQsIGUpIHtcbiAgICBpZiAodHlwZW9mIGUgIT0gXCJmdW5jdGlvblwiICYmIGUgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhlKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgcih0LCBlKTtcbiAgICBmdW5jdGlvbiBuKCkge1xuICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IHQ7XG4gICAgfVxuICAgIHQucHJvdG90eXBlID0gZSA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoZSkgOiAobi5wcm90b3R5cGUgPSBlLnByb3RvdHlwZSwgbmV3IG4oKSk7XG4gIH07XG59KSgpLCBEdCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24ocikge1xuICAgIEJ0KHQsIHIpO1xuICAgIGZ1bmN0aW9uIHQoZSwgbikge1xuICAgICAgdmFyIG8gPSByLmNhbGwodGhpcywgZSwgbikgfHwgdGhpcztcbiAgICAgIHJldHVybiBvLm9uSW5pdChuKSwgbztcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLm9uSW5pdCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciBuID0gdGhpcztcbiAgICAgIGU/LmRpc2FibGVBdXRvRmx1c2hPbkRvY3VtZW50SGlkZSAhPT0gdHJ1ZSAmJiB0eXBlb2YgZG9jdW1lbnQgPCBcInVcIiAmJiAodGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gXCJoaWRkZW5cIiAmJiBuLmZvcmNlRmx1c2goKS5jYXRjaChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgRXIobyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgdGhpcy5fcGFnZUhpZGVMaXN0ZW5lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBuLmZvcmNlRmx1c2goKS5jYXRjaChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgRXIobyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIiwgdGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKSwgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5vblNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICB0eXBlb2YgZG9jdW1lbnQgPCBcInVcIiAmJiAodGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciksIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIgJiYgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIpKTtcbiAgICB9LCB0O1xuICB9KShNdClcbiksIFV0ID0gOCwgRnQgPSAxNiwgR3QgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZVRyYWNlSWQgPSBxKEZ0KSwgdGhpcy5nZW5lcmF0ZVNwYW5JZCA9IHEoVXQpO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfSkoKVxuKSwgQyA9IEFycmF5KDMyKTtcbmZ1bmN0aW9uIHEocikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgZSA9IDA7IGUgPCByICogMjsgZSsrKVxuICAgICAgQ1tlXSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KSArIDQ4LCBDW2VdID49IDU4ICYmIChDW2VdICs9IDM5KTtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBDLnNsaWNlKDAsIHIgKiAyKSk7XG4gIH07XG59XG52YXIgenQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMSh0LCBlLCBuKSB7XG4gICAgICB0aGlzLl90cmFjZXJQcm92aWRlciA9IG47XG4gICAgICB2YXIgbyA9IEl0KGUpO1xuICAgICAgdGhpcy5fc2FtcGxlciA9IG8uc2FtcGxlciwgdGhpcy5fZ2VuZXJhbExpbWl0cyA9IG8uZ2VuZXJhbExpbWl0cywgdGhpcy5fc3BhbkxpbWl0cyA9IG8uc3BhbkxpbWl0cywgdGhpcy5faWRHZW5lcmF0b3IgPSBlLmlkR2VuZXJhdG9yIHx8IG5ldyBHdCgpLCB0aGlzLnJlc291cmNlID0gbi5yZXNvdXJjZSwgdGhpcy5pbnN0cnVtZW50YXRpb25MaWJyYXJ5ID0gdDtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuc3RhcnRTcGFuID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIG8sIGksIGE7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSksIG4gPT09IHZvaWQgMCAmJiAobiA9IEdlLmFjdGl2ZSgpKSwgZS5yb290ICYmIChuID0gemUuZGVsZXRlU3BhbihuKSk7XG4gICAgICB2YXIgcyA9IHplLmdldFNwYW4obik7XG4gICAgICBpZiAoYSQxKG4pKSB7XG4gICAgICAgIHIuZGVidWcoXCJJbnN0cnVtZW50YXRpb24gc3VwcHJlc3NlZCwgcmV0dXJuaW5nIE5vb3AgU3BhblwiKTtcbiAgICAgICAgdmFyIGwkMSA9IHplLndyYXBTcGFuQ29udGV4dChVcyk7XG4gICAgICAgIHJldHVybiBsJDE7XG4gICAgICB9XG4gICAgICB2YXIgdSA9IHM/LnNwYW5Db250ZXh0KCksIHAgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVNwYW5JZCgpLCBjLCBmLCB5O1xuICAgICAgIXUgfHwgIXplLmlzU3BhbkNvbnRleHRWYWxpZCh1KSA/IGMgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVRyYWNlSWQoKSA6IChjID0gdS50cmFjZUlkLCBmID0gdS50cmFjZVN0YXRlLCB5ID0gdS5zcGFuSWQpO1xuICAgICAgdmFyIG0gPSAobyA9IGUua2luZCkgIT09IG51bGwgJiYgbyAhPT0gdm9pZCAwID8gbyA6IGR0LklOVEVSTkFMLCBGID0gKChpID0gZS5saW5rcykgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IFtdKS5tYXAoZnVuY3Rpb24oaikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRleHQ6IGouY29udGV4dCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBRcihqLmF0dHJpYnV0ZXMpXG4gICAgICAgIH07XG4gICAgICB9KSwgRyA9IFFyKGUuYXR0cmlidXRlcyksIGIgPSB0aGlzLl9zYW1wbGVyLnNob3VsZFNhbXBsZShuLCBjLCB0LCBtLCBHLCBGKTtcbiAgICAgIGYgPSAoYSA9IGIudHJhY2VTdGF0ZSkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGY7XG4gICAgICB2YXIgdHQgPSBiLmRlY2lzaW9uID09PSBsLlJFQ09SRF9BTkRfU0FNUExFRCA/IG1yLlNBTVBMRUQgOiBtci5OT05FLCB6ID0geyB0cmFjZUlkOiBjLCBzcGFuSWQ6IHAsIHRyYWNlRmxhZ3M6IHR0LCB0cmFjZVN0YXRlOiBmIH07XG4gICAgICBpZiAoYi5kZWNpc2lvbiA9PT0gbC5OT1RfUkVDT1JEKSB7XG4gICAgICAgIHIuZGVidWcoXCJSZWNvcmRpbmcgaXMgb2ZmLCBwcm9wYWdhdGluZyBjb250ZXh0IGluIGEgbm9uLXJlY29yZGluZyBzcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gemUud3JhcFNwYW5Db250ZXh0KHopO1xuICAgICAgICByZXR1cm4gbCQxO1xuICAgICAgfVxuICAgICAgdmFyIGV0ID0gUXIoT2JqZWN0LmFzc2lnbihHLCBiLmF0dHJpYnV0ZXMpKSwgcnQgPSBuZXcgeHQodGhpcywgbiwgdCwgeiwgbSwgeSwgRiwgZS5zdGFydFRpbWUsIHZvaWQgMCwgZXQpO1xuICAgICAgcmV0dXJuIHJ0O1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc3RhcnRBY3RpdmVTcGFuID0gZnVuY3Rpb24odCwgZSwgbiwgbykge1xuICAgICAgdmFyIGksIGEsIHM7XG4gICAgICBpZiAoIShhcmd1bWVudHMubGVuZ3RoIDwgMikpIHtcbiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMiA/IHMgPSBlIDogYXJndW1lbnRzLmxlbmd0aCA9PT0gMyA/IChpID0gZSwgcyA9IG4pIDogKGkgPSBlLCBhID0gbiwgcyA9IG8pO1xuICAgICAgICB2YXIgbCA9IGEgPz8gR2UuYWN0aXZlKCksIHUgPSB0aGlzLnN0YXJ0U3Bhbih0LCBpLCBsKSwgcCA9IHplLnNldFNwYW4obCwgdSk7XG4gICAgICAgIHJldHVybiBHZS53aXRoKHAsIHMsIHZvaWQgMCwgdSk7XG4gICAgICB9XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRHZW5lcmFsTGltaXRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2VuZXJhbExpbWl0cztcbiAgICB9LCByJDEucHJvdG90eXBlLmdldFNwYW5MaW1pdHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zcGFuTGltaXRzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZ2V0QWN0aXZlU3BhblByb2Nlc3NvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYWNlclByb3ZpZGVyLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IoKTtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIE8gPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgSyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9zcGFuUHJvY2Vzc29ycyA9IHQ7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5mb3JjZUZsdXNoID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCwgZSwgbiA9IFtdO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgbyA9IE8odGhpcy5fc3BhblByb2Nlc3NvcnMpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gaS52YWx1ZTtcbiAgICAgICAgICBuLnB1c2goYS5mb3JjZUZsdXNoKCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIHQgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IG8ucmV0dXJuKSAmJiBlLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKHQpIHRocm93IHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzKSB7XG4gICAgICAgIFByb21pc2UuYWxsKG4pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcygpO1xuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihsKSB7XG4gICAgICAgICAgRXIobCB8fCBuZXcgRXJyb3IoXCJNdWx0aVNwYW5Qcm9jZXNzb3I6IGZvcmNlRmx1c2ggZmFpbGVkXCIpKSwgcygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIHIucHJvdG90eXBlLm9uU3RhcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICB2YXIgbiwgbztcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIGkgPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgYSA9IGkubmV4dCgpOyAhYS5kb25lOyBhID0gaS5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgcyA9IGEudmFsdWU7XG4gICAgICAgICAgcy5vblN0YXJ0KHQsIGUpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChsKSB7XG4gICAgICAgIG4gPSB7IGVycm9yOiBsIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGEgJiYgIWEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHZhciBlLCBuO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgbyA9IE8odGhpcy5fc3BhblByb2Nlc3NvcnMpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gaS52YWx1ZTtcbiAgICAgICAgICBhLm9uRW5kKHQpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIGUgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAobiA9IG8ucmV0dXJuKSAmJiBuLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQsIGUsIG4gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgbi5wdXNoKGEuc2h1dGRvd24oKSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHMpIHtcbiAgICAgICAgdCA9IHsgZXJyb3I6IHMgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaSAmJiAhaS5kb25lICYmIChlID0gby5yZXR1cm4pICYmIGUuY2FsbChvKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAodCkgdGhyb3cgdC5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsIGwpIHtcbiAgICAgICAgUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICBzKCk7XG4gICAgICAgIH0sIGwpO1xuICAgICAgfSk7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwganQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIGt0ID0gZnVuY3Rpb24ociwgdCkge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gcjtcbiAgdmFyIG4gPSBlLmNhbGwociksIG8sIGkgPSBbXSwgYTtcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHQgPT09IHZvaWQgMCB8fCB0LS0gPiAwKSAmJiAhKG8gPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKHMpIHtcbiAgICBhID0geyBlcnJvcjogcyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYSkgdGhyb3cgYS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBWdCA9IGZ1bmN0aW9uKHIsIHQsIGUpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBvID0gdC5sZW5ndGgsIGk7IG4gPCBvOyBuKyspXG4gICAgKGkgfHwgIShuIGluIHQpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsIDAsIG4pKSwgaVtuXSA9IHRbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSk7XG59LCBTO1xuKGZ1bmN0aW9uKHIpIHtcbiAgcltyLnJlc29sdmVkID0gMF0gPSBcInJlc29sdmVkXCIsIHJbci50aW1lb3V0ID0gMV0gPSBcInRpbWVvdXRcIiwgcltyLmVycm9yID0gMl0gPSBcImVycm9yXCIsIHJbci51bnJlc29sdmVkID0gM10gPSBcInVucmVzb2x2ZWRcIjtcbn0pKFMgfHwgKFMgPSB7fSkpO1xudmFyIHRlID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCkge1xuICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0ge30pO1xuICAgICAgdmFyIGUsIG47XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMgPSBbXSwgdGhpcy5fdHJhY2VycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICB2YXIgbyA9IG50KHt9LCBKKCksIE50KHQpKTtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlID0gKGUgPSBvLnJlc291cmNlKSAhPT0gbnVsbCAmJiBlICE9PSB2b2lkIDAgPyBlIDogUiQxLmVtcHR5KCksIG8ubWVyZ2VSZXNvdXJjZVdpdGhEZWZhdWx0cyAmJiAodGhpcy5yZXNvdXJjZSA9IFIkMS5kZWZhdWx0KCkubWVyZ2UodGhpcy5yZXNvdXJjZSkpLCB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBvLCB7XG4gICAgICAgIHJlc291cmNlOiB0aGlzLnJlc291cmNlXG4gICAgICB9KSwgISgobiA9IHQuc3BhblByb2Nlc3NvcnMpID09PSBudWxsIHx8IG4gPT09IHZvaWQgMCkgJiYgbi5sZW5ndGgpXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyZWRTcGFuUHJvY2Vzc29ycyA9IFZ0KFtdLCBrdCh0LnNwYW5Qcm9jZXNzb3JzKSwgZmFsc2UpLCB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBuZXcgSyh0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBpID0gdGhpcy5fYnVpbGRFeHBvcnRlckZyb21FbnYoKTtcbiAgICAgICAgaWYgKGkgIT09IHZvaWQgMCkge1xuICAgICAgICAgIHZhciBhID0gbmV3IER0KGkpO1xuICAgICAgICAgIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IGE7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IG5ldyBqdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gciQxLnByb3RvdHlwZS5nZXRUcmFjZXIgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICB2YXIgbyA9IHQgKyBcIkBcIiArIChlIHx8IFwiXCIpICsgXCI6XCIgKyAobj8uc2NoZW1hVXJsIHx8IFwiXCIpO1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYWNlcnMuaGFzKG8pIHx8IHRoaXMuX3RyYWNlcnMuc2V0KG8sIG5ldyB6dCh7IG5hbWU6IHQsIHZlcnNpb246IGUsIHNjaGVtYVVybDogbj8uc2NoZW1hVXJsIH0sIHRoaXMuX2NvbmZpZywgdGhpcykpLCB0aGlzLl90cmFjZXJzLmdldChvKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZFNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpLmNhdGNoKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgcmV0dXJuIHIuZXJyb3IoXCJFcnJvciB3aGlsZSB0cnlpbmcgdG8gc2h1dGRvd24gY3VycmVudCBzcGFuIHByb2Nlc3NvclwiLCBlKTtcbiAgICAgIH0pLCB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMucHVzaCh0KSwgdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yID0gbmV3IEsodGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3I7XG4gICAgfSwgciQxLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IHt9KSwgemUuc2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIodGhpcyksIHQucHJvcGFnYXRvciA9PT0gdm9pZCAwICYmICh0LnByb3BhZ2F0b3IgPSB0aGlzLl9idWlsZFByb3BhZ2F0b3JGcm9tRW52KCkpLCB0LmNvbnRleHRNYW5hZ2VyICYmIEdlLnNldEdsb2JhbENvbnRleHRNYW5hZ2VyKHQuY29udGV4dE1hbmFnZXIpLCB0LnByb3BhZ2F0b3IgJiYgeV8uc2V0R2xvYmFsUHJvcGFnYXRvcih0LnByb3BhZ2F0b3IpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLl9jb25maWcuZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXMsIGUgPSB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgICB2YXIgaSwgYSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBvKG5ldyBFcnJvcihcIlNwYW4gcHJvY2Vzc29yIGRpZCBub3QgY29tcGxldGVkIHdpdGhpbiB0aW1lb3V0IHBlcmlvZCBvZiBcIiArIHQgKyBcIiBtc1wiKSksIGkgPSBTLnRpbWVvdXQ7XG4gICAgICAgICAgfSwgdCk7XG4gICAgICAgICAgbi5mb3JjZUZsdXNoKCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChhKSwgaSAhPT0gUy50aW1lb3V0ICYmIChpID0gUy5yZXNvbHZlZCwgbyhpKSk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGEpLCBpID0gUy5lcnJvciwgbyhzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLCBvKSB7XG4gICAgICAgIFByb21pc2UuYWxsKGUpLnRoZW4oZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHZhciBhID0gaS5maWx0ZXIoZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgcmV0dXJuIHMgIT09IFMucmVzb2x2ZWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYS5sZW5ndGggPiAwID8gbyhhKSA6IG4oKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHJldHVybiBvKFtpXSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFByb3BhZ2F0b3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRQcm9wYWdhdG9ycy5nZXQodCkpID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRTcGFuRXhwb3J0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRFeHBvcnRlcnMuZ2V0KHQpKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRQcm9wYWdhdG9yRnJvbUVudiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLCBlID0gQXJyYXkuZnJvbShuZXcgU2V0KE9lKCkuT1RFTF9QUk9QQUdBVE9SUykpLCBuID0gZS5tYXAoZnVuY3Rpb24oaSkge1xuICAgICAgICB2YXIgYSA9IHQuX2dldFByb3BhZ2F0b3IoaSk7XG4gICAgICAgIHJldHVybiBhIHx8IHIud2FybignUHJvcGFnYXRvciBcIicgKyBpICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBhO1xuICAgICAgfSksIG8gPSBuLnJlZHVjZShmdW5jdGlvbihpLCBhKSB7XG4gICAgICAgIHJldHVybiBhICYmIGkucHVzaChhKSwgaTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIGlmIChvLmxlbmd0aCAhPT0gMClcbiAgICAgICAgcmV0dXJuIGUubGVuZ3RoID09PSAxID8gb1swXSA6IG5ldyB2ZSh7XG4gICAgICAgICAgcHJvcGFnYXRvcnM6IG9cbiAgICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRFeHBvcnRlckZyb21FbnYgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gT2UoKS5PVEVMX1RSQUNFU19FWFBPUlRFUjtcbiAgICAgIGlmICghKHQgPT09IFwibm9uZVwiIHx8IHQgPT09IFwiXCIpKSB7XG4gICAgICAgIHZhciBlID0gdGhpcy5fZ2V0U3BhbkV4cG9ydGVyKHQpO1xuICAgICAgICByZXR1cm4gZSB8fCByLmVycm9yKCdFeHBvcnRlciBcIicgKyB0ICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBlO1xuICAgICAgfVxuICAgIH0sIHIkMS5fcmVnaXN0ZXJlZFByb3BhZ2F0b3JzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICAgICAgW1widHJhY2Vjb250ZXh0XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZlKCk7XG4gICAgICB9XSxcbiAgICAgIFtcImJhZ2dhZ2VcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBuZXcgWnIoKTtcbiAgICAgIH1dXG4gICAgXSksIHIkMS5fcmVnaXN0ZXJlZEV4cG9ydGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHIkMTtcbiAgfSkoKVxuKSwgSHQgPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgZWUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5leHBvcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKHQsIGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKFtdKSwgdGhpcy5mb3JjZUZsdXNoKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLl9leHBvcnRJbmZvID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IHQucmVzb3VyY2UuYXR0cmlidXRlc1xuICAgICAgICB9LFxuICAgICAgICBpbnN0cnVtZW50YXRpb25TY29wZTogdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LFxuICAgICAgICB0cmFjZUlkOiB0LnNwYW5Db250ZXh0KCkudHJhY2VJZCxcbiAgICAgICAgcGFyZW50SWQ6IHQucGFyZW50U3BhbklkLFxuICAgICAgICB0cmFjZVN0YXRlOiAoZSA9IHQuc3BhbkNvbnRleHQoKS50cmFjZVN0YXRlKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnNlcmlhbGl6ZSgpLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGlkOiB0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgICBraW5kOiB0LmtpbmQsXG4gICAgICAgIHRpbWVzdGFtcDogamUodC5zdGFydFRpbWUpLFxuICAgICAgICBkdXJhdGlvbjogamUodC5kdXJhdGlvbiksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHQuYXR0cmlidXRlcyxcbiAgICAgICAgc3RhdHVzOiB0LnN0YXR1cyxcbiAgICAgICAgZXZlbnRzOiB0LmV2ZW50cyxcbiAgICAgICAgbGlua3M6IHQubGlua3NcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUuX3NlbmRTcGFucyA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuLCBvO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgaSA9IEh0KHQpLCBhJDEgPSBpLm5leHQoKTsgIWEkMS5kb25lOyBhJDEgPSBpLm5leHQoKSkge1xuICAgICAgICAgIHZhciBzID0gYSQxLnZhbHVlO1xuICAgICAgICAgIGNvbnNvbGUuZGlyKHRoaXMuX2V4cG9ydEluZm8ocyksIHsgZGVwdGg6IDMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGwpIHtcbiAgICAgICAgbiA9IHsgZXJyb3I6IGwgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYSQxICYmICFhJDEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlKVxuICAgICAgICByZXR1cm4gZSh7IGNvZGU6IGEuU1VDQ0VTUyB9KTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBRdCA9IGZ1bmN0aW9uKHIsIHQsIGUsIG4pIHtcbiAgZnVuY3Rpb24gbyhpKSB7XG4gICAgcmV0dXJuIGkgaW5zdGFuY2VvZiBlID8gaSA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEoaSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbihpLCBhKSB7XG4gICAgZnVuY3Rpb24gcyhwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KG4ubmV4dChwKSk7XG4gICAgICB9IGNhdGNoIChjKSB7XG4gICAgICAgIGEoYyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwocCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShuLnRocm93KHApKTtcbiAgICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgICAgYShjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShwKSB7XG4gICAgICBwLmRvbmUgPyBpKHAudmFsdWUpIDogbyhwLnZhbHVlKS50aGVuKHMsIGwpO1xuICAgIH1cbiAgICB1KChuID0gbi5hcHBseShyLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgWHQgPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKGlbMF0gJiAxKSB0aHJvdyBpWzFdO1xuICAgIHJldHVybiBpWzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBuLCBvLCBpLCBhO1xuICByZXR1cm4gYSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoYVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBhO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24ocCkge1xuICAgICAgcmV0dXJuIGwoW3UsIHBdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGwodSkge1xuICAgIGlmIChuKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKG4gPSAxLCBvICYmIChpID0gdVswXSAmIDIgPyBvLnJldHVybiA6IHVbMF0gPyBvLnRocm93IHx8ICgoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyksIDApIDogby5uZXh0KSAmJiAhKGkgPSBpLmNhbGwobywgdVsxXSkpLmRvbmUpIHJldHVybiBpO1xuICAgICAgc3dpdGNoIChvID0gMCwgaSAmJiAodSA9IFt1WzBdICYgMiwgaS52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGkgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbyA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaSA9IGUudHJ5cywgIShpID0gaS5sZW5ndGggPiAwICYmIGlbaS5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghaSB8fCB1WzFdID4gaVswXSAmJiB1WzFdIDwgaVszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCBpWzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gaVsxXSwgaSA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgJiYgZS5sYWJlbCA8IGlbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSBpWzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSB0LmNhbGwociwgZSk7XG4gICAgfSBjYXRjaCAocCkge1xuICAgICAgdSA9IFs2LCBwXSwgbyA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG4gPSBpID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59LCByZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX3NodXRkb3duT25jZSA9IG5ldyBmdCh0aGlzLl9zaHV0ZG93biwgdGhpcyksIHRoaXMuX3VucmVzb2x2ZWRFeHBvcnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBRdCh0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBYdCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgc3dpdGNoICh0LmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0aGlzLl91bnJlc29sdmVkRXhwb3J0cykpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHQuc2VudCgpLCB0aGlzLl9leHBvcnRlci5mb3JjZUZsdXNoID8gWzQsIHRoaXMuX2V4cG9ydGVyLmZvcmNlRmx1c2goKV0gOiBbMywgM107XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHQuc2VudCgpLCB0LmxhYmVsID0gMztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuLCBvO1xuICAgICAgaWYgKCF0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgJiYgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgbXIuU0FNUExFRCkgIT09IDApIHtcbiAgICAgICAgdmFyIGkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gT3QkMS5fZXhwb3J0KGUuX2V4cG9ydGVyLCBbdF0pLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgdmFyIGw7XG4gICAgICAgICAgICBzLmNvZGUgIT09IGEuU1VDQ0VTUyAmJiBFcigobCA9IHMuZXJyb3IpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiBuZXcgRXJyb3IoXCJTaW1wbGVTcGFuUHJvY2Vzc29yOiBzcGFuIGV4cG9ydCBmYWlsZWQgKHN0YXR1cyBcIiArIHMgKyBcIilcIikpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIEVyKHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nKSB7XG4gICAgICAgICAgdmFyIGEkMSA9IChvID0gKG4gPSB0LnJlc291cmNlKS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKSA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvLmNhbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBhJDEgIT0gbnVsbCAmJiBlLl91bnJlc29sdmVkRXhwb3J0cy5kZWxldGUoYSQxKSwgaSgpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIHJldHVybiBFcihzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhJDEgIT0gbnVsbCAmJiB0aGlzLl91bnJlc29sdmVkRXhwb3J0cy5hZGQoYSQxKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgaSgpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5cbmV4cG9ydCB7IEIsIER0IGFzIEQsIEd0IGFzIEcsIFAsIFIsIFMsIFcsIGVlIGFzIGUsIGcsIGp0IGFzIGosIHJlIGFzIHIsIHRlIGFzIHQsIHh0IGFzIHgsIHp0IGFzIHogfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUN2RixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxNQUFNQyxHQUFJLEtBQUtDLElBQUksTUFB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QUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVNJLEdBQUc7QUFDckQsZ0JBQUloQjtBQUNKLFlBQUFnQixFQUFFLFNBQVNQLEVBQUUsV0FBV2xCLEdBQUlTLElBQUlnQixFQUFFLFdBQVcsUUFBUWhCLE1BQU0sU0FBU0EsSUFBSSxJQUFJLE1BQU0scURBQXFEZ0IsSUFBSSxHQUFHLENBQUM7QUFBQSxVQUNqSixDQUFDLEVBQUUsTUFBTSxTQUFTQSxHQUFHO0FBQ25CLFlBQUF6QixFQUFHeUIsQ0FBQztBQUFBLFVBQ04sQ0FBQztBQUFBLFFBQ0g7QUFDQSxZQUFJLEVBQUUsU0FBUyx3QkFBd0I7QUFDckMsY0FBSVQsS0FBT00sS0FBSyxJQUFJLEVBQUUsVUFBVSw0QkFBNEIsUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxXQUFXO0FBQ3BILG1CQUFPTixLQUFPLFFBQVFLLEVBQUUsbUJBQW1CLE9BQU9MLENBQUcsR0FBR1EsRUFBRTtBQUFBLFVBQzVELEdBQUcsU0FBU0MsR0FBRztBQUNiLG1CQUFPekIsRUFBR3lCLENBQUM7QUFBQSxVQUNiLENBQUM7QUFDRCxVQUFBVCxLQUFPLFFBQVEsS0FBSyxtQkFBbUIsSUFBSUEsQ0FBRztBQUFBLFFBQ2hEO0FBQ0UsVUFBQVEsRUFBRTtBQUFBLE1BQ047QUFBQSxJQUNGLEdBQUd0QyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sS0FBSyxjQUFjLEtBQUs7QUFBQSxJQUNqQyxHQUFHQSxFQUFFLFVBQVUsWUFBWSxXQUFXO0FBQ3BDLGFBQU8sS0FBSyxVQUFVLFNBQVM7QUFBQSxJQUNqQyxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBOyIsCiAgIm5hbWVzIjogWyJtciIsICJ6ZSIsICJHZSIsICJVcyIsICJkdCIsICJrZSIsICJIbiIsICJWcyIsICJyIiwgImplIiwgInlfIiwgInFlIiwgIlhlIiwgIlIkMiIsICJwXyIsICJPJDEiLCAiTl8iLCAiYl8iLCAiTkEiLCAiTUEiLCAicl8iLCAiZUEiLCAiRXIiLCAiT2UiLCAidmUiLCAiVmUiLCAiWnIiLCAiZnQiLCAiU2UiLCAibnQiLCAiUXIiLCAibCIsICJjZSIsICJkIiwgInAiLCAiYXIiLCAiT3QkMSIsICJ1IiwgImEkMSIsICJSJDEiLCAiYSIsICJ3dCIsICJEIiwgImUiLCAibyIsICJDdCIsICJpIiwgInMiLCAieHQiLCAiciQxIiwgImMiLCAiUCIsICJnIiwgIkIiLCAiVyIsICJFIiwgIlkiLCAicCQxIiwgImYiLCAiQnQiLCAiRHQiLCAiR3QiLCAicSIsICJDIiwgImwkMSIsICJqIiwgIkciLCAiYiIsICJLIiwgImp0IiwgImt0Il0KfQo=
|
|
910
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiU2ltcGxlU3BhblByb2Nlc3Nvci1CMFhUY00wNi0hfnswMDR9fi5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgbSBhcyBtciwgeiBhcyB6ZSwgRyBhcyBHZSwgTyBhcyBPcywgZCBhcyBkdCwgayBhcyBrZSwgSCBhcyBIbiwgViBhcyBWcyB9IGZyb20gJy4vaW5kZXgtIX57MDA3fX4uanMnO1xuaW1wb3J0IHsgciB9IGZyb20gJy4vZGlhZy1hcGktQ1J0Q3JwTVAtIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgZEQgYXMgamUsIHkgYXMgeV8sIGRFIGFzIHFlLCBkRiBhcyBYZSwgZEcgYXMgUiQyLCBwIGFzIHBfLCBPIGFzIE8kMSwgZEggYXMgTl8sIGRJIGFzIGJfLCBhdCBhcyBOQSwgYXYgYXMgTUEsIGRKIGFzIHJfLCBhdSBhcyBlQSB9IGZyb20gJy4vdXJsLTc3TGRid29aLSF+ezAwYn1+LmpzJztcbmltcG9ydCB7IEUgYXMgRXIsIE8gYXMgT2UsIHYgYXMgdmUsIFYgYXMgVmUsIFogYXMgWnIsIGYgYXMgZnQsIFMgYXMgU2UsIG4gYXMgbnQsIFEgYXMgUXIsIGwsIGMgYXMgY2UsIGQsIHAsIGEgYXMgYXIsIGIgYXMgdiwgZSBhcyBPdCQxIH0gZnJvbSAnLi9pbmRleC1DQUFDTGJkRy0hfnswMGl9fi5qcyc7XG5pbXBvcnQgeyB1LCBhIGFzIGEkMSB9IGZyb20gJy4vc3VwcHJlc3MtdHJhY2luZy02X1lHdl8xay0hfnswMG59fi5qcyc7XG5pbXBvcnQgeyBSIGFzIFIkMSB9IGZyb20gJy4vUmVzb3VyY2UtQ1FrM2JKVWctIX57MDAyfX4uanMnO1xuaW1wb3J0IHsgYSB9IGZyb20gJy4vRXhwb3J0UmVzdWx0LUJhY3Nxd0tBLSF+ezAwbH1+LmpzJztcblxudmFyIHd0ID0gXCJleGNlcHRpb25cIiwgRCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gRCA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24ocikge1xuICAgIGZvciAodmFyIHQsIGUgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgZSA8IG47IGUrKykge1xuICAgICAgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIG8gaW4gdCkgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIG8pICYmIChyW29dID0gdFtvXSk7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9LCBELmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59LCBDdCA9IGZ1bmN0aW9uKHIpIHtcbiAgdmFyIHQgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIGUgPSB0ICYmIHJbdF0sIG4gPSAwO1xuICBpZiAoZSkgcmV0dXJuIGUuY2FsbChyKTtcbiAgaWYgKHIgJiYgdHlwZW9mIHIubGVuZ3RoID09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gciAmJiBuID49IHIubGVuZ3RoICYmIChyID0gdm9pZCAwKSwgeyB2YWx1ZTogciAmJiByW24rK10sIGRvbmU6ICFyIH07XG4gICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHQgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59LCBYID0gZnVuY3Rpb24ociwgdCkge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gcjtcbiAgdmFyIG4gPSBlLmNhbGwociksIG8sIGkgPSBbXSwgYTtcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHQgPT09IHZvaWQgMCB8fCB0LS0gPiAwKSAmJiAhKG8gPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKHMpIHtcbiAgICBhID0geyBlcnJvcjogcyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYSkgdGhyb3cgYS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBPdCA9IGZ1bmN0aW9uKHIsIHQsIGUpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBvID0gdC5sZW5ndGgsIGk7IG4gPCBvOyBuKyspXG4gICAgKGkgfHwgIShuIGluIHQpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsIDAsIG4pKSwgaVtuXSA9IHRbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSk7XG59LCB4dCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQsIGUsIG4sIG8sIGksIGEsIHMsIGwsIHUsIHApIHtcbiAgICAgIHMgPT09IHZvaWQgMCAmJiAocyA9IFtdKSwgdGhpcy5hdHRyaWJ1dGVzID0ge30sIHRoaXMubGlua3MgPSBbXSwgdGhpcy5ldmVudHMgPSBbXSwgdGhpcy5fZHJvcHBlZEF0dHJpYnV0ZXNDb3VudCA9IDAsIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA9IDAsIHRoaXMuX2Ryb3BwZWRMaW5rc0NvdW50ID0gMCwgdGhpcy5zdGF0dXMgPSB7XG4gICAgICAgIGNvZGU6IGtlLlVOU0VUXG4gICAgICB9LCB0aGlzLmVuZFRpbWUgPSBbMCwgMF0sIHRoaXMuX2VuZGVkID0gZmFsc2UsIHRoaXMuX2R1cmF0aW9uID0gWy0xLCAtMV0sIHRoaXMubmFtZSA9IG4sIHRoaXMuX3NwYW5Db250ZXh0ID0gbywgdGhpcy5wYXJlbnRTcGFuSWQgPSBhLCB0aGlzLmtpbmQgPSBpLCB0aGlzLmxpbmtzID0gcztcbiAgICAgIHZhciBjID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuX3BlcmZvcm1hbmNlU3RhcnRUaW1lID0gUiQyLm5vdygpLCB0aGlzLl9wZXJmb3JtYW5jZU9mZnNldCA9IGMgLSAodGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWUgKyByXygpKSwgdGhpcy5fc3RhcnRUaW1lUHJvdmlkZWQgPSBsICE9IG51bGwsIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5fZ2V0VGltZShsID8/IGMpLCB0aGlzLnJlc291cmNlID0gdC5yZXNvdXJjZSwgdGhpcy5pbnN0cnVtZW50YXRpb25MaWJyYXJ5ID0gdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LCB0aGlzLl9zcGFuTGltaXRzID0gdC5nZXRTcGFuTGltaXRzKCksIHRoaXMuX2F0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQgPSB0aGlzLl9zcGFuTGltaXRzLmF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQgfHwgMCwgcCAhPSBudWxsICYmIHRoaXMuc2V0QXR0cmlidXRlcyhwKSwgdGhpcy5fc3BhblByb2Nlc3NvciA9IHQuZ2V0QWN0aXZlU3BhblByb2Nlc3NvcigpLCB0aGlzLl9zcGFuUHJvY2Vzc29yLm9uU3RhcnQodGhpcywgZSk7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLnNwYW5Db250ZXh0ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3BhbkNvbnRleHQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gZSA9PSBudWxsIHx8IHRoaXMuX2lzU3BhbkVuZGVkKCkgPyB0aGlzIDogdC5sZW5ndGggPT09IDAgPyAoci53YXJuKFwiSW52YWxpZCBhdHRyaWJ1dGUga2V5OiBcIiArIHQpLCB0aGlzKSA6IGFyKGUpID8gT2JqZWN0LmtleXModGhpcy5hdHRyaWJ1dGVzKS5sZW5ndGggPj0gdGhpcy5fc3BhbkxpbWl0cy5hdHRyaWJ1dGVDb3VudExpbWl0ICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCB0KSA/ICh0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50KyssIHRoaXMpIDogKHRoaXMuYXR0cmlidXRlc1t0XSA9IHRoaXMuX3RydW5jYXRlVG9TaXplKGUpLCB0aGlzKSA6IChyLndhcm4oXCJJbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSBzZXQgZm9yIGtleTogXCIgKyB0KSwgdGhpcyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVzID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUsIG47XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBvID0gQ3QoT2JqZWN0LmVudHJpZXModCkpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gWChpLnZhbHVlLCAyKSwgcyA9IGFbMF0sIGwgPSBhWzFdO1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKHMsIGwpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoICh1KSB7XG4gICAgICAgIGUgPSB7IGVycm9yOiB1IH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAobiA9IG8ucmV0dXJuKSAmJiBuLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuYWRkRXZlbnQgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICBpZiAodGhpcy5faXNTcGFuRW5kZWQoKSlcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICBpZiAodGhpcy5fc3BhbkxpbWl0cy5ldmVudENvdW50TGltaXQgPT09IDApXG4gICAgICAgIHJldHVybiByLndhcm4oXCJObyBldmVudHMgYWxsb3dlZC5cIiksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCsrLCB0aGlzO1xuICAgICAgdGhpcy5ldmVudHMubGVuZ3RoID49IHRoaXMuX3NwYW5MaW1pdHMuZXZlbnRDb3VudExpbWl0ICYmICh0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgPT09IDAgJiYgci5kZWJ1ZyhcIkRyb3BwaW5nIGV4dHJhIGV2ZW50cy5cIiksIHRoaXMuZXZlbnRzLnNoaWZ0KCksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCsrKSwgcWUoZSkgJiYgKHFlKG4pIHx8IChuID0gZSksIGUgPSB2b2lkIDApO1xuICAgICAgdmFyIG8gPSBRcihlKTtcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5wdXNoKHtcbiAgICAgICAgbmFtZTogdCxcbiAgICAgICAgYXR0cmlidXRlczogbyxcbiAgICAgICAgdGltZTogdGhpcy5fZ2V0VGltZShuKSxcbiAgICAgICAgZHJvcHBlZEF0dHJpYnV0ZXNDb3VudDogMFxuICAgICAgfSksIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRMaW5rID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHRoaXMubGlua3MucHVzaCh0KSwgdGhpcztcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZExpbmtzID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4gKGUgPSB0aGlzLmxpbmtzKS5wdXNoLmFwcGx5KGUsIE90KFtdLCBYKHQpLCBmYWxzZSkpLCB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc2V0U3RhdHVzID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lzU3BhbkVuZGVkKCkgPyB0aGlzIDogKHRoaXMuc3RhdHVzID0gRCh7fSwgdCksIHRoaXMuc3RhdHVzLm1lc3NhZ2UgIT0gbnVsbCAmJiB0eXBlb2YgdC5tZXNzYWdlICE9IFwic3RyaW5nXCIgJiYgKHIud2FybihcIkRyb3BwaW5nIGludmFsaWQgc3RhdHVzLm1lc3NhZ2Ugb2YgdHlwZSAnXCIgKyB0eXBlb2YgdC5tZXNzYWdlICsgXCInLCBleHBlY3RlZCAnc3RyaW5nJ1wiKSwgZGVsZXRlIHRoaXMuc3RhdHVzLm1lc3NhZ2UpLCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLnVwZGF0ZU5hbWUgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiAodGhpcy5uYW1lID0gdCwgdGhpcyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodGhpcy5faXNTcGFuRW5kZWQoKSkge1xuICAgICAgICByLmVycm9yKHRoaXMubmFtZSArIFwiIFwiICsgdGhpcy5fc3BhbkNvbnRleHQudHJhY2VJZCArIFwiLVwiICsgdGhpcy5fc3BhbkNvbnRleHQuc3BhbklkICsgXCIgLSBZb3UgY2FuIG9ubHkgY2FsbCBlbmQoKSBvbiBhIHNwYW4gb25jZS5cIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2VuZGVkID0gdHJ1ZSwgdGhpcy5lbmRUaW1lID0gdGhpcy5fZ2V0VGltZSh0KSwgdGhpcy5fZHVyYXRpb24gPSBYZSh0aGlzLnN0YXJ0VGltZSwgdGhpcy5lbmRUaW1lKSwgdGhpcy5fZHVyYXRpb25bMF0gPCAwICYmIChyLndhcm4oXCJJbmNvbnNpc3RlbnQgc3RhcnQgYW5kIGVuZCB0aW1lLCBzdGFydFRpbWUgPiBlbmRUaW1lLiBTZXR0aW5nIHNwYW4gZHVyYXRpb24gdG8gMG1zLlwiLCB0aGlzLnN0YXJ0VGltZSwgdGhpcy5lbmRUaW1lKSwgdGhpcy5lbmRUaW1lID0gdGhpcy5zdGFydFRpbWUuc2xpY2UoKSwgdGhpcy5fZHVyYXRpb24gPSBbMCwgMF0pLCB0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgPiAwICYmIHIud2FybihcIkRyb3BwZWQgXCIgKyB0aGlzLl9kcm9wcGVkRXZlbnRzQ291bnQgKyBcIiBldmVudHMgYmVjYXVzZSBldmVudENvdW50TGltaXQgcmVhY2hlZFwiKSwgdGhpcy5fc3BhblByb2Nlc3Nvci5vbkVuZCh0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRUaW1lID0gZnVuY3Rpb24odCkge1xuICAgICAgaWYgKHR5cGVvZiB0ID09IFwibnVtYmVyXCIgJiYgdCA8PSBSJDIubm93KCkpXG4gICAgICAgIHJldHVybiBwXyh0ICsgdGhpcy5fcGVyZm9ybWFuY2VPZmZzZXQpO1xuICAgICAgaWYgKHR5cGVvZiB0ID09IFwibnVtYmVyXCIpXG4gICAgICAgIHJldHVybiBPJDEodCk7XG4gICAgICBpZiAodCBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgIHJldHVybiBPJDEodC5nZXRUaW1lKCkpO1xuICAgICAgaWYgKE5fKHQpKVxuICAgICAgICByZXR1cm4gdDtcbiAgICAgIGlmICh0aGlzLl9zdGFydFRpbWVQcm92aWRlZClcbiAgICAgICAgcmV0dXJuIE8kMShEYXRlLm5vdygpKTtcbiAgICAgIHZhciBlID0gUiQyLm5vdygpIC0gdGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWU7XG4gICAgICByZXR1cm4gYl8odGhpcy5zdGFydFRpbWUsIE8kMShlKSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5pc1JlY29yZGluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkID09PSBmYWxzZTtcbiAgICB9LCByJDEucHJvdG90eXBlLnJlY29yZEV4Y2VwdGlvbiA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuID0ge307XG4gICAgICB0eXBlb2YgdCA9PSBcInN0cmluZ1wiID8gbltNQV0gPSB0IDogdCAmJiAodC5jb2RlID8gbltOQV0gPSB0LmNvZGUudG9TdHJpbmcoKSA6IHQubmFtZSAmJiAobltOQV0gPSB0Lm5hbWUpLCB0Lm1lc3NhZ2UgJiYgKG5bTUFdID0gdC5tZXNzYWdlKSwgdC5zdGFjayAmJiAobltlQV0gPSB0LnN0YWNrKSksIG5bTkFdIHx8IG5bTUFdID8gdGhpcy5hZGRFdmVudCh3dCwgbiwgZSkgOiByLndhcm4oXCJGYWlsZWQgdG8gcmVjb3JkIGFuIGV4Y2VwdGlvbiBcIiArIHQpO1xuICAgIH0sIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImR1cmF0aW9uXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kdXJhdGlvbjtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJlbmRlZFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwiZHJvcHBlZEF0dHJpYnV0ZXNDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZEF0dHJpYnV0ZXNDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkRXZlbnRzQ291bnRcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkTGlua3NDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZExpbmtzQ291bnQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgciQxLnByb3RvdHlwZS5faXNTcGFuRW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9lbmRlZCAmJiByLndhcm4oXCJDYW4gbm90IGV4ZWN1dGUgdGhlIG9wZXJhdGlvbiBvbiBlbmRlZCBTcGFuIHt0cmFjZUlkOiBcIiArIHRoaXMuX3NwYW5Db250ZXh0LnRyYWNlSWQgKyBcIiwgc3BhbklkOiBcIiArIHRoaXMuX3NwYW5Db250ZXh0LnNwYW5JZCArIFwifVwiKSwgdGhpcy5fZW5kZWQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fdHJ1bmNhdGVUb0xpbWl0VXRpbCA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHJldHVybiB0Lmxlbmd0aCA8PSBlID8gdCA6IHQuc3Vic3RyaW5nKDAsIGUpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX3RydW5jYXRlVG9TaXplID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuID0gdGhpcy5fYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdDtcbiAgICAgIHJldHVybiBuIDw9IDAgPyAoci53YXJuKFwiQXR0cmlidXRlIHZhbHVlIGxpbWl0IG11c3QgYmUgcG9zaXRpdmUsIGdvdCBcIiArIG4pLCB0KSA6IHR5cGVvZiB0ID09IFwic3RyaW5nXCIgPyB0aGlzLl90cnVuY2F0ZVRvTGltaXRVdGlsKHQsIG4pIDogQXJyYXkuaXNBcnJheSh0KSA/IHQubWFwKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvID09IFwic3RyaW5nXCIgPyBlLl90cnVuY2F0ZVRvTGltaXRVdGlsKG8sIG4pIDogbztcbiAgICAgIH0pIDogdDtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIFA7XG4oZnVuY3Rpb24ocikge1xuICByW3IuTk9UX1JFQ09SRCA9IDBdID0gXCJOT1RfUkVDT1JEXCIsIHJbci5SRUNPUkQgPSAxXSA9IFwiUkVDT1JEXCIsIHJbci5SRUNPUkRfQU5EX1NBTVBMRUQgPSAyXSA9IFwiUkVDT1JEX0FORF9TQU1QTEVEXCI7XG59KShQIHx8IChQID0ge30pKTtcbnZhciBSID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogUC5OT1RfUkVDT1JEXG4gICAgICB9O1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJBbHdheXNPZmZTYW1wbGVyXCI7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IFAuUkVDT1JEX0FORF9TQU1QTEVEXG4gICAgICB9O1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJBbHdheXNPblNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBCID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKHQpIHtcbiAgICAgIHZhciBlLCBuLCBvLCBpO1xuICAgICAgdGhpcy5fcm9vdCA9IHQucm9vdCwgdGhpcy5fcm9vdCB8fCAoRXIobmV3IEVycm9yKFwiUGFyZW50QmFzZWRTYW1wbGVyIG11c3QgaGF2ZSBhIHJvb3Qgc2FtcGxlciBjb25maWd1cmVkXCIpKSwgdGhpcy5fcm9vdCA9IG5ldyBnKCkpLCB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkID0gKGUgPSB0LnJlbW90ZVBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiBuZXcgZygpLCB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkID0gKG4gPSB0LnJlbW90ZVBhcmVudE5vdFNhbXBsZWQpICE9PSBudWxsICYmIG4gIT09IHZvaWQgMCA/IG4gOiBuZXcgUigpLCB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQgPSAobyA9IHQubG9jYWxQYXJlbnRTYW1wbGVkKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbmV3IGcoKSwgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkID0gKGkgPSB0LmxvY2FsUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IG5ldyBSKCk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbih0LCBlLCBuLCBvLCBpLCBhKSB7XG4gICAgICB2YXIgcyA9IHplLmdldFNwYW5Db250ZXh0KHQpO1xuICAgICAgcmV0dXJuICFzIHx8ICFIbihzKSA/IHRoaXMuX3Jvb3Quc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogcy5pc1JlbW90ZSA/IHMudHJhY2VGbGFncyAmIG1yLlNBTVBMRUQgPyB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogcy50cmFjZUZsYWdzICYgbXIuU0FNUExFRCA/IHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZC5zaG91bGRTYW1wbGUodCwgZSwgbiwgbywgaSwgYSkgOiB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpO1xuICAgIH0sIHIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJQYXJlbnRCYXNlZHtyb290PVwiICsgdGhpcy5fcm9vdC50b1N0cmluZygpICsgXCIsIHJlbW90ZVBhcmVudFNhbXBsZWQ9XCIgKyB0aGlzLl9yZW1vdGVQYXJlbnRTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgcmVtb3RlUGFyZW50Tm90U2FtcGxlZD1cIiArIHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCBsb2NhbFBhcmVudFNhbXBsZWQ9XCIgKyB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCBsb2NhbFBhcmVudE5vdFNhbXBsZWQ9XCIgKyB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQudG9TdHJpbmcoKSArIFwifVwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIFcgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0gMCksIHRoaXMuX3JhdGlvID0gdCwgdGhpcy5fcmF0aW8gPSB0aGlzLl9ub3JtYWxpemUodCksIHRoaXMuX3VwcGVyQm91bmQgPSBNYXRoLmZsb29yKHRoaXMuX3JhdGlvICogNDI5NDk2NzI5NSk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogVnMoZSkgJiYgdGhpcy5fYWNjdW11bGF0ZShlKSA8IHRoaXMuX3VwcGVyQm91bmQgPyBQLlJFQ09SRF9BTkRfU0FNUExFRCA6IFAuTk9UX1JFQ09SRFxuICAgICAgfTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiVHJhY2VJZFJhdGlvQmFzZWR7XCIgKyB0aGlzLl9yYXRpbyArIFwifVwiO1xuICAgIH0sIHIucHJvdG90eXBlLl9ub3JtYWxpemUgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHQgIT0gXCJudW1iZXJcIiB8fCBpc05hTih0KSA/IDAgOiB0ID49IDEgPyAxIDogdCA8PSAwID8gMCA6IHQ7XG4gICAgfSwgci5wcm90b3R5cGUuX2FjY3VtdWxhdGUgPSBmdW5jdGlvbih0KSB7XG4gICAgICBmb3IgKHZhciBlID0gMCwgbiA9IDA7IG4gPCB0Lmxlbmd0aCAvIDg7IG4rKykge1xuICAgICAgICB2YXIgbyA9IG4gKiA4LCBpID0gcGFyc2VJbnQodC5zbGljZShvLCBvICsgOCksIDE2KTtcbiAgICAgICAgZSA9IChlIF4gaSkgPj4+IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBSdCA9IHYuQWx3YXlzT24sIEUgPSAxO1xuZnVuY3Rpb24gSigpIHtcbiAgdmFyIHIgPSBPZSgpO1xuICByZXR1cm4ge1xuICAgIHNhbXBsZXI6ICQociksXG4gICAgZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXM6IDNlNCxcbiAgICBnZW5lcmFsTGltaXRzOiB7XG4gICAgICBhdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0OiByLk9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCxcbiAgICAgIGF0dHJpYnV0ZUNvdW50TGltaXQ6IHIuT1RFTF9BVFRSSUJVVEVfQ09VTlRfTElNSVRcbiAgICB9LFxuICAgIHNwYW5MaW1pdHM6IHtcbiAgICAgIGF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVDb3VudExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVQsXG4gICAgICBsaW5rQ291bnRMaW1pdDogci5PVEVMX1NQQU5fTElOS19DT1VOVF9MSU1JVCxcbiAgICAgIGV2ZW50Q291bnRMaW1pdDogci5PVEVMX1NQQU5fRVZFTlRfQ09VTlRfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVQZXJFdmVudENvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9QRVJfRVZFTlRfQ09VTlRfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVQZXJMaW5rQ291bnRMaW1pdDogci5PVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlUXG4gICAgfSxcbiAgICBtZXJnZVJlc291cmNlV2l0aERlZmF1bHRzOiB0cnVlXG4gIH07XG59XG5mdW5jdGlvbiAkKHIkMSkge1xuICBzd2l0Y2ggKHIkMSA9PT0gdm9pZCAwICYmIChyJDEgPSBPZSgpKSwgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVIpIHtcbiAgICBjYXNlIHYuQWx3YXlzT246XG4gICAgICByZXR1cm4gbmV3IGcoKTtcbiAgICBjYXNlIHYuQWx3YXlzT2ZmOlxuICAgICAgcmV0dXJuIG5ldyBSKCk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkQWx3YXlzT246XG4gICAgICByZXR1cm4gbmV3IEIoe1xuICAgICAgICByb290OiBuZXcgZygpXG4gICAgICB9KTtcbiAgICBjYXNlIHYuUGFyZW50QmFzZWRBbHdheXNPZmY6XG4gICAgICByZXR1cm4gbmV3IEIoe1xuICAgICAgICByb290OiBuZXcgUigpXG4gICAgICB9KTtcbiAgICBjYXNlIHYuVHJhY2VJZFJhdGlvOlxuICAgICAgcmV0dXJuIG5ldyBXKFkociQxKSk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkVHJhY2VJZFJhdGlvOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IFcoWShyJDEpKVxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiByLmVycm9yKCdPVEVMX1RSQUNFU19TQU1QTEVSIHZhbHVlIFwiJyArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSICsgXCIgaW52YWxpZCwgZGVmYXVsdGluZyB0byBcIiArIFJ0ICsgJ1wiLicpLCBuZXcgZygpO1xuICB9XG59XG5mdW5jdGlvbiBZKHIkMSkge1xuICBpZiAociQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHID09PSB2b2lkIDAgfHwgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHID09PSBcIlwiKVxuICAgIHJldHVybiByLmVycm9yKFwiT1RFTF9UUkFDRVNfU0FNUExFUl9BUkcgaXMgYmxhbmssIGRlZmF1bHRpbmcgdG8gXCIgKyBFICsgXCIuXCIpLCBFO1xuICB2YXIgdCA9IE51bWJlcihyJDEuT1RFTF9UUkFDRVNfU0FNUExFUl9BUkcpO1xuICByZXR1cm4gaXNOYU4odCkgPyAoci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHPVwiICsgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHICsgXCIgd2FzIGdpdmVuLCBidXQgaXQgaXMgaW52YWxpZCwgZGVmYXVsdGluZyB0byBcIiArIEUgKyBcIi5cIiksIEUpIDogdCA8IDAgfHwgdCA+IDEgPyAoci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHPVwiICsgciQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHICsgXCIgd2FzIGdpdmVuLCBidXQgaXQgaXMgb3V0IG9mIHJhbmdlIChbMC4uMV0pLCBkZWZhdWx0aW5nIHRvIFwiICsgRSArIFwiLlwiKSwgRSkgOiB0O1xufVxuZnVuY3Rpb24gSXQocikge1xuICB2YXIgdCA9IHtcbiAgICBzYW1wbGVyOiAkKClcbiAgfSwgZSA9IEooKSwgbiA9IE9iamVjdC5hc3NpZ24oe30sIGUsIHQsIHIpO1xuICByZXR1cm4gbi5nZW5lcmFsTGltaXRzID0gT2JqZWN0LmFzc2lnbih7fSwgZS5nZW5lcmFsTGltaXRzLCByLmdlbmVyYWxMaW1pdHMgfHwge30pLCBuLnNwYW5MaW1pdHMgPSBPYmplY3QuYXNzaWduKHt9LCBlLnNwYW5MaW1pdHMsIHIuc3BhbkxpbWl0cyB8fCB7fSksIG47XG59XG5mdW5jdGlvbiBOdChyKSB7XG4gIHZhciB0LCBlLCBuLCBvLCBpLCBhLCBzLCBsLCB1LCBwJDEsIGMsIGYsIHkgPSBPYmplY3QuYXNzaWduKHt9LCByLnNwYW5MaW1pdHMpLCBtID0gY2UoKTtcbiAgcmV0dXJuIHkuYXR0cmlidXRlQ291bnRMaW1pdCA9IChhID0gKGkgPSAobyA9IChlID0gKHQgPSByLnNwYW5MaW1pdHMpID09PSBudWxsIHx8IHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHQuYXR0cmlidXRlQ291bnRMaW1pdCkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IChuID0gci5nZW5lcmFsTGltaXRzKSA9PT0gbnVsbCB8fCBuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuLmF0dHJpYnV0ZUNvdW50TGltaXQpICE9PSBudWxsICYmIG8gIT09IHZvaWQgMCA/IG8gOiBtLk9URUxfU1BBTl9BVFRSSUJVVEVfQ09VTlRfTElNSVQpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiBtLk9URUxfQVRUUklCVVRFX0NPVU5UX0xJTUlUKSAhPT0gbnVsbCAmJiBhICE9PSB2b2lkIDAgPyBhIDogZCwgeS5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0ID0gKGYgPSAoYyA9IChwJDEgPSAobCA9IChzID0gci5zcGFuTGltaXRzKSA9PT0gbnVsbCB8fCBzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzLmF0dHJpYnV0ZVZhbHVlTGVuZ3RoTGltaXQpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiAodSA9IHIuZ2VuZXJhbExpbWl0cykgPT09IG51bGwgfHwgdSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdS5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0KSAhPT0gbnVsbCAmJiBwJDEgIT09IHZvaWQgMCA/IHAkMSA6IG0uT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQpICE9PSBudWxsICYmIGMgIT09IHZvaWQgMCA/IGMgOiBtLk9URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCkgIT09IG51bGwgJiYgZiAhPT0gdm9pZCAwID8gZiA6IHAsIE9iamVjdC5hc3NpZ24oe30sIHIsIHsgc3BhbkxpbWl0czogeSB9KTtcbn1cbnZhciBNdCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQsIGUpIHtcbiAgICAgIHRoaXMuX2V4cG9ydGVyID0gdCwgdGhpcy5faXNFeHBvcnRpbmcgPSBmYWxzZSwgdGhpcy5fZmluaXNoZWRTcGFucyA9IFtdLCB0aGlzLl9kcm9wcGVkU3BhbnNDb3VudCA9IDA7XG4gICAgICB2YXIgbiA9IE9lKCk7XG4gICAgICB0aGlzLl9tYXhFeHBvcnRCYXRjaFNpemUgPSB0eXBlb2YgZT8ubWF4RXhwb3J0QmF0Y2hTaXplID09IFwibnVtYmVyXCIgPyBlLm1heEV4cG9ydEJhdGNoU2l6ZSA6IG4uT1RFTF9CU1BfTUFYX0VYUE9SVF9CQVRDSF9TSVpFLCB0aGlzLl9tYXhRdWV1ZVNpemUgPSB0eXBlb2YgZT8ubWF4UXVldWVTaXplID09IFwibnVtYmVyXCIgPyBlLm1heFF1ZXVlU2l6ZSA6IG4uT1RFTF9CU1BfTUFYX1FVRVVFX1NJWkUsIHRoaXMuX3NjaGVkdWxlZERlbGF5TWlsbGlzID0gdHlwZW9mIGU/LnNjaGVkdWxlZERlbGF5TWlsbGlzID09IFwibnVtYmVyXCIgPyBlLnNjaGVkdWxlZERlbGF5TWlsbGlzIDogbi5PVEVMX0JTUF9TQ0hFRFVMRV9ERUxBWSwgdGhpcy5fZXhwb3J0VGltZW91dE1pbGxpcyA9IHR5cGVvZiBlPy5leHBvcnRUaW1lb3V0TWlsbGlzID09IFwibnVtYmVyXCIgPyBlLmV4cG9ydFRpbWVvdXRNaWxsaXMgOiBuLk9URUxfQlNQX0VYUE9SVF9USU1FT1VULCB0aGlzLl9zaHV0ZG93bk9uY2UgPSBuZXcgZnQodGhpcy5fc2h1dGRvd24sIHRoaXMpLCB0aGlzLl9tYXhFeHBvcnRCYXRjaFNpemUgPiB0aGlzLl9tYXhRdWV1ZVNpemUgJiYgKHIud2FybihcIkJhdGNoU3BhblByb2Nlc3NvcjogbWF4RXhwb3J0QmF0Y2hTaXplIG11c3QgYmUgc21hbGxlciBvciBlcXVhbCB0byBtYXhRdWV1ZVNpemUsIHNldHRpbmcgbWF4RXhwb3J0QmF0Y2hTaXplIHRvIG1hdGNoIG1heFF1ZXVlU2l6ZVwiKSwgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID0gdGhpcy5fbWF4UXVldWVTaXplKTtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NodXRkb3duT25jZS5pc0NhbGxlZCA/IHRoaXMuX3NodXRkb3duT25jZS5wcm9taXNlIDogdGhpcy5fZmx1c2hBbGwoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLm9uU3RhcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgfSwgciQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX3NodXRkb3duT25jZS5pc0NhbGxlZCB8fCAodC5zcGFuQ29udGV4dCgpLnRyYWNlRmxhZ3MgJiBtci5TQU1QTEVEKSAhPT0gMCAmJiB0aGlzLl9hZGRUb0J1ZmZlcih0KTtcbiAgICB9LCByJDEucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Lm9uU2h1dGRvd24oKTtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Ll9mbHVzaEFsbCgpO1xuICAgICAgfSkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHQuX2V4cG9ydGVyLnNodXRkb3duKCk7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9hZGRUb0J1ZmZlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIGlmICh0aGlzLl9maW5pc2hlZFNwYW5zLmxlbmd0aCA+PSB0aGlzLl9tYXhRdWV1ZVNpemUpIHtcbiAgICAgICAgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPT09IDAgJiYgci5kZWJ1ZyhcIm1heFF1ZXVlU2l6ZSByZWFjaGVkLCBkcm9wcGluZyBzcGFuc1wiKSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQrKztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPiAwICYmIChyLndhcm4oXCJEcm9wcGVkIFwiICsgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgKyBcIiBzcGFucyBiZWNhdXNlIG1heFF1ZXVlU2l6ZSByZWFjaGVkXCIpLCB0aGlzLl9kcm9wcGVkU3BhbnNDb3VudCA9IDApLCB0aGlzLl9maW5pc2hlZFNwYW5zLnB1c2godCksIHRoaXMuX21heWJlU3RhcnRUaW1lcigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2ZsdXNoQWxsID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCA9IHRoaXM7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSwgbikge1xuICAgICAgICBmb3IgKHZhciBvID0gW10sIGkgPSBNYXRoLmNlaWwodC5fZmluaXNoZWRTcGFucy5sZW5ndGggLyB0Ll9tYXhFeHBvcnRCYXRjaFNpemUpLCBhID0gMCwgcyA9IGk7IGEgPCBzOyBhKyspXG4gICAgICAgICAgby5wdXNoKHQuX2ZsdXNoT25lQmF0Y2goKSk7XG4gICAgICAgIFByb21pc2UuYWxsKG8pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgZSgpO1xuICAgICAgICB9KS5jYXRjaChuKTtcbiAgICAgIH0pO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2ZsdXNoT25lQmF0Y2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIHJldHVybiB0aGlzLl9jbGVhclRpbWVyKCksIHRoaXMuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoID09PSAwID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLCBuKSB7XG4gICAgICAgIHZhciBvID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICBuKG5ldyBFcnJvcihcIlRpbWVvdXRcIikpO1xuICAgICAgICB9LCB0Ll9leHBvcnRUaW1lb3V0TWlsbGlzKTtcbiAgICAgICAgR2Uud2l0aCh1KEdlLmFjdGl2ZSgpKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGk7XG4gICAgICAgICAgdC5fZmluaXNoZWRTcGFucy5sZW5ndGggPD0gdC5fbWF4RXhwb3J0QmF0Y2hTaXplID8gKGkgPSB0Ll9maW5pc2hlZFNwYW5zLCB0Ll9maW5pc2hlZFNwYW5zID0gW10pIDogaSA9IHQuX2ZpbmlzaGVkU3BhbnMuc3BsaWNlKDAsIHQuX21heEV4cG9ydEJhdGNoU2l6ZSk7XG4gICAgICAgICAgZm9yICh2YXIgYSQxID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5fZXhwb3J0ZXIuZXhwb3J0KGksIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgdmFyIGY7XG4gICAgICAgICAgICAgIGNsZWFyVGltZW91dChvKSwgYy5jb2RlID09PSBhLlNVQ0NFU1MgPyBlKCkgOiBuKChmID0gYy5lcnJvcikgIT09IG51bGwgJiYgZiAhPT0gdm9pZCAwID8gZiA6IG5ldyBFcnJvcihcIkJhdGNoU3BhblByb2Nlc3Nvcjogc3BhbiBleHBvcnQgZmFpbGVkXCIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIHMgPSBudWxsLCBsID0gMCwgdSA9IGkubGVuZ3RoOyBsIDwgdTsgbCsrKSB7XG4gICAgICAgICAgICB2YXIgcCA9IGlbbF07XG4gICAgICAgICAgICBwLnJlc291cmNlLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgcC5yZXNvdXJjZS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzICYmIChzID8/IChzID0gW10pLCBzLnB1c2gocC5yZXNvdXJjZS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcyA9PT0gbnVsbCA/IGEkMSgpIDogUHJvbWlzZS5hbGwocykudGhlbihhJDEsIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgIEVyKGMpLCBuKGMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX21heWJlU3RhcnRUaW1lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgaWYgKCF0aGlzLl9pc0V4cG9ydGluZykge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHQuX2lzRXhwb3J0aW5nID0gdHJ1ZSwgdC5fZmx1c2hPbmVCYXRjaCgpLmZpbmFsbHkoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IGZhbHNlLCB0Ll9maW5pc2hlZFNwYW5zLmxlbmd0aCA+IDAgJiYgKHQuX2NsZWFyVGltZXIoKSwgdC5fbWF5YmVTdGFydFRpbWVyKCkpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHQuX2lzRXhwb3J0aW5nID0gZmFsc2UsIEVyKG4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5fZmluaXNoZWRTcGFucy5sZW5ndGggPj0gdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplKVxuICAgICAgICAgIHJldHVybiBlKCk7XG4gICAgICAgIHRoaXMuX3RpbWVyID09PSB2b2lkIDAgJiYgKHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gZSgpO1xuICAgICAgICB9LCB0aGlzLl9zY2hlZHVsZWREZWxheU1pbGxpcyksIFNlKHRoaXMuX3RpbWVyKSk7XG4gICAgICB9XG4gICAgfSwgciQxLnByb3RvdHlwZS5fY2xlYXJUaW1lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5fdGltZXIgIT09IHZvaWQgMCAmJiAoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSwgdGhpcy5fdGltZXIgPSB2b2lkIDApO1xuICAgIH0sIHIkMTtcbiAgfSkoKVxuKSwgQnQgPSAvKiBAX19QVVJFX18gKi8gKGZ1bmN0aW9uKCkge1xuICB2YXIgciA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICByZXR1cm4gciA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKG4sIG8pIHtcbiAgICAgIG4uX19wcm90b19fID0gbztcbiAgICB9IHx8IGZ1bmN0aW9uKG4sIG8pIHtcbiAgICAgIGZvciAodmFyIGkgaW4gbykgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGkpICYmIChuW2ldID0gb1tpXSk7XG4gICAgfSwgcih0LCBlKTtcbiAgfTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQsIGUpIHtcbiAgICBpZiAodHlwZW9mIGUgIT0gXCJmdW5jdGlvblwiICYmIGUgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhlKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgcih0LCBlKTtcbiAgICBmdW5jdGlvbiBuKCkge1xuICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IHQ7XG4gICAgfVxuICAgIHQucHJvdG90eXBlID0gZSA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoZSkgOiAobi5wcm90b3R5cGUgPSBlLnByb3RvdHlwZSwgbmV3IG4oKSk7XG4gIH07XG59KSgpLCBEdCA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24ocikge1xuICAgIEJ0KHQsIHIpO1xuICAgIGZ1bmN0aW9uIHQoZSwgbikge1xuICAgICAgdmFyIG8gPSByLmNhbGwodGhpcywgZSwgbikgfHwgdGhpcztcbiAgICAgIHJldHVybiBvLm9uSW5pdChuKSwgbztcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLm9uSW5pdCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciBuID0gdGhpcztcbiAgICAgIGU/LmRpc2FibGVBdXRvRmx1c2hPbkRvY3VtZW50SGlkZSAhPT0gdHJ1ZSAmJiB0eXBlb2YgZG9jdW1lbnQgPCBcInVcIiAmJiAodGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gXCJoaWRkZW5cIiAmJiBuLmZvcmNlRmx1c2goKS5jYXRjaChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgRXIobyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgdGhpcy5fcGFnZUhpZGVMaXN0ZW5lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBuLmZvcmNlRmx1c2goKS5jYXRjaChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgRXIobyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIiwgdGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKSwgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5vblNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICB0eXBlb2YgZG9jdW1lbnQgPCBcInVcIiAmJiAodGhpcy5fdmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciksIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIgJiYgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIpKTtcbiAgICB9LCB0O1xuICB9KShNdClcbiksIFV0ID0gOCwgRnQgPSAxNiwgR3QgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZVRyYWNlSWQgPSBxKEZ0KSwgdGhpcy5nZW5lcmF0ZVNwYW5JZCA9IHEoVXQpO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfSkoKVxuKSwgQyA9IEFycmF5KDMyKTtcbmZ1bmN0aW9uIHEocikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgZSA9IDA7IGUgPCByICogMjsgZSsrKVxuICAgICAgQ1tlXSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KSArIDQ4LCBDW2VdID49IDU4ICYmIChDW2VdICs9IDM5KTtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBDLnNsaWNlKDAsIHIgKiAyKSk7XG4gIH07XG59XG52YXIgenQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMSh0LCBlLCBuKSB7XG4gICAgICB0aGlzLl90cmFjZXJQcm92aWRlciA9IG47XG4gICAgICB2YXIgbyA9IEl0KGUpO1xuICAgICAgdGhpcy5fc2FtcGxlciA9IG8uc2FtcGxlciwgdGhpcy5fZ2VuZXJhbExpbWl0cyA9IG8uZ2VuZXJhbExpbWl0cywgdGhpcy5fc3BhbkxpbWl0cyA9IG8uc3BhbkxpbWl0cywgdGhpcy5faWRHZW5lcmF0b3IgPSBlLmlkR2VuZXJhdG9yIHx8IG5ldyBHdCgpLCB0aGlzLnJlc291cmNlID0gbi5yZXNvdXJjZSwgdGhpcy5pbnN0cnVtZW50YXRpb25MaWJyYXJ5ID0gdDtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuc3RhcnRTcGFuID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIG8sIGksIGE7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSksIG4gPT09IHZvaWQgMCAmJiAobiA9IEdlLmFjdGl2ZSgpKSwgZS5yb290ICYmIChuID0gemUuZGVsZXRlU3BhbihuKSk7XG4gICAgICB2YXIgcyA9IHplLmdldFNwYW4obik7XG4gICAgICBpZiAoYSQxKG4pKSB7XG4gICAgICAgIHIuZGVidWcoXCJJbnN0cnVtZW50YXRpb24gc3VwcHJlc3NlZCwgcmV0dXJuaW5nIE5vb3AgU3BhblwiKTtcbiAgICAgICAgdmFyIGwkMSA9IHplLndyYXBTcGFuQ29udGV4dChPcyk7XG4gICAgICAgIHJldHVybiBsJDE7XG4gICAgICB9XG4gICAgICB2YXIgdSA9IHM/LnNwYW5Db250ZXh0KCksIHAgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVNwYW5JZCgpLCBjLCBmLCB5O1xuICAgICAgIXUgfHwgIXplLmlzU3BhbkNvbnRleHRWYWxpZCh1KSA/IGMgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVRyYWNlSWQoKSA6IChjID0gdS50cmFjZUlkLCBmID0gdS50cmFjZVN0YXRlLCB5ID0gdS5zcGFuSWQpO1xuICAgICAgdmFyIG0gPSAobyA9IGUua2luZCkgIT09IG51bGwgJiYgbyAhPT0gdm9pZCAwID8gbyA6IGR0LklOVEVSTkFMLCBGID0gKChpID0gZS5saW5rcykgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IFtdKS5tYXAoZnVuY3Rpb24oaikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRleHQ6IGouY29udGV4dCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBRcihqLmF0dHJpYnV0ZXMpXG4gICAgICAgIH07XG4gICAgICB9KSwgRyA9IFFyKGUuYXR0cmlidXRlcyksIGIgPSB0aGlzLl9zYW1wbGVyLnNob3VsZFNhbXBsZShuLCBjLCB0LCBtLCBHLCBGKTtcbiAgICAgIGYgPSAoYSA9IGIudHJhY2VTdGF0ZSkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGY7XG4gICAgICB2YXIgdHQgPSBiLmRlY2lzaW9uID09PSBsLlJFQ09SRF9BTkRfU0FNUExFRCA/IG1yLlNBTVBMRUQgOiBtci5OT05FLCB6ID0geyB0cmFjZUlkOiBjLCBzcGFuSWQ6IHAsIHRyYWNlRmxhZ3M6IHR0LCB0cmFjZVN0YXRlOiBmIH07XG4gICAgICBpZiAoYi5kZWNpc2lvbiA9PT0gbC5OT1RfUkVDT1JEKSB7XG4gICAgICAgIHIuZGVidWcoXCJSZWNvcmRpbmcgaXMgb2ZmLCBwcm9wYWdhdGluZyBjb250ZXh0IGluIGEgbm9uLXJlY29yZGluZyBzcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gemUud3JhcFNwYW5Db250ZXh0KHopO1xuICAgICAgICByZXR1cm4gbCQxO1xuICAgICAgfVxuICAgICAgdmFyIGV0ID0gUXIoT2JqZWN0LmFzc2lnbihHLCBiLmF0dHJpYnV0ZXMpKSwgcnQgPSBuZXcgeHQodGhpcywgbiwgdCwgeiwgbSwgeSwgRiwgZS5zdGFydFRpbWUsIHZvaWQgMCwgZXQpO1xuICAgICAgcmV0dXJuIHJ0O1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc3RhcnRBY3RpdmVTcGFuID0gZnVuY3Rpb24odCwgZSwgbiwgbykge1xuICAgICAgdmFyIGksIGEsIHM7XG4gICAgICBpZiAoIShhcmd1bWVudHMubGVuZ3RoIDwgMikpIHtcbiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMiA/IHMgPSBlIDogYXJndW1lbnRzLmxlbmd0aCA9PT0gMyA/IChpID0gZSwgcyA9IG4pIDogKGkgPSBlLCBhID0gbiwgcyA9IG8pO1xuICAgICAgICB2YXIgbCA9IGEgPz8gR2UuYWN0aXZlKCksIHUgPSB0aGlzLnN0YXJ0U3Bhbih0LCBpLCBsKSwgcCA9IHplLnNldFNwYW4obCwgdSk7XG4gICAgICAgIHJldHVybiBHZS53aXRoKHAsIHMsIHZvaWQgMCwgdSk7XG4gICAgICB9XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRHZW5lcmFsTGltaXRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2VuZXJhbExpbWl0cztcbiAgICB9LCByJDEucHJvdG90eXBlLmdldFNwYW5MaW1pdHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zcGFuTGltaXRzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZ2V0QWN0aXZlU3BhblByb2Nlc3NvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYWNlclByb3ZpZGVyLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IoKTtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIE8gPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgSyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9zcGFuUHJvY2Vzc29ycyA9IHQ7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5mb3JjZUZsdXNoID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCwgZSwgbiA9IFtdO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgbyA9IE8odGhpcy5fc3BhblByb2Nlc3NvcnMpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gaS52YWx1ZTtcbiAgICAgICAgICBuLnB1c2goYS5mb3JjZUZsdXNoKCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIHQgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IG8ucmV0dXJuKSAmJiBlLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKHQpIHRocm93IHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzKSB7XG4gICAgICAgIFByb21pc2UuYWxsKG4pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcygpO1xuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihsKSB7XG4gICAgICAgICAgRXIobCB8fCBuZXcgRXJyb3IoXCJNdWx0aVNwYW5Qcm9jZXNzb3I6IGZvcmNlRmx1c2ggZmFpbGVkXCIpKSwgcygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIHIucHJvdG90eXBlLm9uU3RhcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICB2YXIgbiwgbztcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIGkgPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgYSA9IGkubmV4dCgpOyAhYS5kb25lOyBhID0gaS5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgcyA9IGEudmFsdWU7XG4gICAgICAgICAgcy5vblN0YXJ0KHQsIGUpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChsKSB7XG4gICAgICAgIG4gPSB7IGVycm9yOiBsIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGEgJiYgIWEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHZhciBlLCBuO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgbyA9IE8odGhpcy5fc3BhblByb2Nlc3NvcnMpLCBpID0gby5uZXh0KCk7ICFpLmRvbmU7IGkgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBhID0gaS52YWx1ZTtcbiAgICAgICAgICBhLm9uRW5kKHQpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIGUgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAobiA9IG8ucmV0dXJuKSAmJiBuLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCByLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQsIGUsIG4gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgbi5wdXNoKGEuc2h1dGRvd24oKSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHMpIHtcbiAgICAgICAgdCA9IHsgZXJyb3I6IHMgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaSAmJiAhaS5kb25lICYmIChlID0gby5yZXR1cm4pICYmIGUuY2FsbChvKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAodCkgdGhyb3cgdC5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsIGwpIHtcbiAgICAgICAgUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICBzKCk7XG4gICAgICAgIH0sIGwpO1xuICAgICAgfSk7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwganQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIGt0ID0gZnVuY3Rpb24ociwgdCkge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIHJbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gcjtcbiAgdmFyIG4gPSBlLmNhbGwociksIG8sIGkgPSBbXSwgYTtcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHQgPT09IHZvaWQgMCB8fCB0LS0gPiAwKSAmJiAhKG8gPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKHMpIHtcbiAgICBhID0geyBlcnJvcjogcyB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYSkgdGhyb3cgYS5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBWdCA9IGZ1bmN0aW9uKHIsIHQsIGUpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBvID0gdC5sZW5ndGgsIGk7IG4gPCBvOyBuKyspXG4gICAgKGkgfHwgIShuIGluIHQpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsIDAsIG4pKSwgaVtuXSA9IHRbbl0pO1xuICByZXR1cm4gci5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSk7XG59LCBTO1xuKGZ1bmN0aW9uKHIpIHtcbiAgcltyLnJlc29sdmVkID0gMF0gPSBcInJlc29sdmVkXCIsIHJbci50aW1lb3V0ID0gMV0gPSBcInRpbWVvdXRcIiwgcltyLmVycm9yID0gMl0gPSBcImVycm9yXCIsIHJbci51bnJlc29sdmVkID0gM10gPSBcInVucmVzb2x2ZWRcIjtcbn0pKFMgfHwgKFMgPSB7fSkpO1xudmFyIHRlID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCkge1xuICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0ge30pO1xuICAgICAgdmFyIGUsIG47XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMgPSBbXSwgdGhpcy5fdHJhY2VycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICB2YXIgbyA9IG50KHt9LCBKKCksIE50KHQpKTtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlID0gKGUgPSBvLnJlc291cmNlKSAhPT0gbnVsbCAmJiBlICE9PSB2b2lkIDAgPyBlIDogUiQxLmVtcHR5KCksIG8ubWVyZ2VSZXNvdXJjZVdpdGhEZWZhdWx0cyAmJiAodGhpcy5yZXNvdXJjZSA9IFIkMS5kZWZhdWx0KCkubWVyZ2UodGhpcy5yZXNvdXJjZSkpLCB0aGlzLl9jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBvLCB7XG4gICAgICAgIHJlc291cmNlOiB0aGlzLnJlc291cmNlXG4gICAgICB9KSwgISgobiA9IHQuc3BhblByb2Nlc3NvcnMpID09PSBudWxsIHx8IG4gPT09IHZvaWQgMCkgJiYgbi5sZW5ndGgpXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyZWRTcGFuUHJvY2Vzc29ycyA9IFZ0KFtdLCBrdCh0LnNwYW5Qcm9jZXNzb3JzKSwgZmFsc2UpLCB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBuZXcgSyh0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBpID0gdGhpcy5fYnVpbGRFeHBvcnRlckZyb21FbnYoKTtcbiAgICAgICAgaWYgKGkgIT09IHZvaWQgMCkge1xuICAgICAgICAgIHZhciBhID0gbmV3IER0KGkpO1xuICAgICAgICAgIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IGE7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IG5ldyBqdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gciQxLnByb3RvdHlwZS5nZXRUcmFjZXIgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICB2YXIgbyA9IHQgKyBcIkBcIiArIChlIHx8IFwiXCIpICsgXCI6XCIgKyAobj8uc2NoZW1hVXJsIHx8IFwiXCIpO1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYWNlcnMuaGFzKG8pIHx8IHRoaXMuX3RyYWNlcnMuc2V0KG8sIG5ldyB6dCh7IG5hbWU6IHQsIHZlcnNpb246IGUsIHNjaGVtYVVybDogbj8uc2NoZW1hVXJsIH0sIHRoaXMuX2NvbmZpZywgdGhpcykpLCB0aGlzLl90cmFjZXJzLmdldChvKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZFNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpLmNhdGNoKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgcmV0dXJuIHIuZXJyb3IoXCJFcnJvciB3aGlsZSB0cnlpbmcgdG8gc2h1dGRvd24gY3VycmVudCBzcGFuIHByb2Nlc3NvclwiLCBlKTtcbiAgICAgIH0pLCB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMucHVzaCh0KSwgdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yID0gbmV3IEsodGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3I7XG4gICAgfSwgciQxLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IHt9KSwgemUuc2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIodGhpcyksIHQucHJvcGFnYXRvciA9PT0gdm9pZCAwICYmICh0LnByb3BhZ2F0b3IgPSB0aGlzLl9idWlsZFByb3BhZ2F0b3JGcm9tRW52KCkpLCB0LmNvbnRleHRNYW5hZ2VyICYmIEdlLnNldEdsb2JhbENvbnRleHRNYW5hZ2VyKHQuY29udGV4dE1hbmFnZXIpLCB0LnByb3BhZ2F0b3IgJiYgeV8uc2V0R2xvYmFsUHJvcGFnYXRvcih0LnByb3BhZ2F0b3IpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLl9jb25maWcuZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXMsIGUgPSB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgICB2YXIgaSwgYSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBvKG5ldyBFcnJvcihcIlNwYW4gcHJvY2Vzc29yIGRpZCBub3QgY29tcGxldGVkIHdpdGhpbiB0aW1lb3V0IHBlcmlvZCBvZiBcIiArIHQgKyBcIiBtc1wiKSksIGkgPSBTLnRpbWVvdXQ7XG4gICAgICAgICAgfSwgdCk7XG4gICAgICAgICAgbi5mb3JjZUZsdXNoKCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChhKSwgaSAhPT0gUy50aW1lb3V0ICYmIChpID0gUy5yZXNvbHZlZCwgbyhpKSk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGEpLCBpID0gUy5lcnJvciwgbyhzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLCBvKSB7XG4gICAgICAgIFByb21pc2UuYWxsKGUpLnRoZW4oZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHZhciBhID0gaS5maWx0ZXIoZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgcmV0dXJuIHMgIT09IFMucmVzb2x2ZWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYS5sZW5ndGggPiAwID8gbyhhKSA6IG4oKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHJldHVybiBvKFtpXSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFByb3BhZ2F0b3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRQcm9wYWdhdG9ycy5nZXQodCkpID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRTcGFuRXhwb3J0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRFeHBvcnRlcnMuZ2V0KHQpKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRQcm9wYWdhdG9yRnJvbUVudiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLCBlID0gQXJyYXkuZnJvbShuZXcgU2V0KE9lKCkuT1RFTF9QUk9QQUdBVE9SUykpLCBuID0gZS5tYXAoZnVuY3Rpb24oaSkge1xuICAgICAgICB2YXIgYSA9IHQuX2dldFByb3BhZ2F0b3IoaSk7XG4gICAgICAgIHJldHVybiBhIHx8IHIud2FybignUHJvcGFnYXRvciBcIicgKyBpICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBhO1xuICAgICAgfSksIG8gPSBuLnJlZHVjZShmdW5jdGlvbihpLCBhKSB7XG4gICAgICAgIHJldHVybiBhICYmIGkucHVzaChhKSwgaTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIGlmIChvLmxlbmd0aCAhPT0gMClcbiAgICAgICAgcmV0dXJuIGUubGVuZ3RoID09PSAxID8gb1swXSA6IG5ldyB2ZSh7XG4gICAgICAgICAgcHJvcGFnYXRvcnM6IG9cbiAgICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRFeHBvcnRlckZyb21FbnYgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gT2UoKS5PVEVMX1RSQUNFU19FWFBPUlRFUjtcbiAgICAgIGlmICghKHQgPT09IFwibm9uZVwiIHx8IHQgPT09IFwiXCIpKSB7XG4gICAgICAgIHZhciBlID0gdGhpcy5fZ2V0U3BhbkV4cG9ydGVyKHQpO1xuICAgICAgICByZXR1cm4gZSB8fCByLmVycm9yKCdFeHBvcnRlciBcIicgKyB0ICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBlO1xuICAgICAgfVxuICAgIH0sIHIkMS5fcmVnaXN0ZXJlZFByb3BhZ2F0b3JzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICAgICAgW1widHJhY2Vjb250ZXh0XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZlKCk7XG4gICAgICB9XSxcbiAgICAgIFtcImJhZ2dhZ2VcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBuZXcgWnIoKTtcbiAgICAgIH1dXG4gICAgXSksIHIkMS5fcmVnaXN0ZXJlZEV4cG9ydGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHIkMTtcbiAgfSkoKVxuKSwgSHQgPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgZWUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5leHBvcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKHQsIGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKFtdKSwgdGhpcy5mb3JjZUZsdXNoKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLl9leHBvcnRJbmZvID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IHQucmVzb3VyY2UuYXR0cmlidXRlc1xuICAgICAgICB9LFxuICAgICAgICBpbnN0cnVtZW50YXRpb25TY29wZTogdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LFxuICAgICAgICB0cmFjZUlkOiB0LnNwYW5Db250ZXh0KCkudHJhY2VJZCxcbiAgICAgICAgcGFyZW50SWQ6IHQucGFyZW50U3BhbklkLFxuICAgICAgICB0cmFjZVN0YXRlOiAoZSA9IHQuc3BhbkNvbnRleHQoKS50cmFjZVN0YXRlKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnNlcmlhbGl6ZSgpLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGlkOiB0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgICBraW5kOiB0LmtpbmQsXG4gICAgICAgIHRpbWVzdGFtcDogamUodC5zdGFydFRpbWUpLFxuICAgICAgICBkdXJhdGlvbjogamUodC5kdXJhdGlvbiksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHQuYXR0cmlidXRlcyxcbiAgICAgICAgc3RhdHVzOiB0LnN0YXR1cyxcbiAgICAgICAgZXZlbnRzOiB0LmV2ZW50cyxcbiAgICAgICAgbGlua3M6IHQubGlua3NcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUuX3NlbmRTcGFucyA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuLCBvO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgaSA9IEh0KHQpLCBhJDEgPSBpLm5leHQoKTsgIWEkMS5kb25lOyBhJDEgPSBpLm5leHQoKSkge1xuICAgICAgICAgIHZhciBzID0gYSQxLnZhbHVlO1xuICAgICAgICAgIGNvbnNvbGUuZGlyKHRoaXMuX2V4cG9ydEluZm8ocyksIHsgZGVwdGg6IDMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGwpIHtcbiAgICAgICAgbiA9IHsgZXJyb3I6IGwgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYSQxICYmICFhJDEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlKVxuICAgICAgICByZXR1cm4gZSh7IGNvZGU6IGEuU1VDQ0VTUyB9KTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBRdCA9IGZ1bmN0aW9uKHIsIHQsIGUsIG4pIHtcbiAgZnVuY3Rpb24gbyhpKSB7XG4gICAgcmV0dXJuIGkgaW5zdGFuY2VvZiBlID8gaSA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEoaSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbihpLCBhKSB7XG4gICAgZnVuY3Rpb24gcyhwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KG4ubmV4dChwKSk7XG4gICAgICB9IGNhdGNoIChjKSB7XG4gICAgICAgIGEoYyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwocCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShuLnRocm93KHApKTtcbiAgICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgICAgYShjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShwKSB7XG4gICAgICBwLmRvbmUgPyBpKHAudmFsdWUpIDogbyhwLnZhbHVlKS50aGVuKHMsIGwpO1xuICAgIH1cbiAgICB1KChuID0gbi5hcHBseShyLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgWHQgPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKGlbMF0gJiAxKSB0aHJvdyBpWzFdO1xuICAgIHJldHVybiBpWzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBuLCBvLCBpLCBhO1xuICByZXR1cm4gYSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoYVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBhO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24ocCkge1xuICAgICAgcmV0dXJuIGwoW3UsIHBdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGwodSkge1xuICAgIGlmIChuKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKG4gPSAxLCBvICYmIChpID0gdVswXSAmIDIgPyBvLnJldHVybiA6IHVbMF0gPyBvLnRocm93IHx8ICgoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyksIDApIDogby5uZXh0KSAmJiAhKGkgPSBpLmNhbGwobywgdVsxXSkpLmRvbmUpIHJldHVybiBpO1xuICAgICAgc3dpdGNoIChvID0gMCwgaSAmJiAodSA9IFt1WzBdICYgMiwgaS52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGkgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbyA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaSA9IGUudHJ5cywgIShpID0gaS5sZW5ndGggPiAwICYmIGlbaS5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghaSB8fCB1WzFdID4gaVswXSAmJiB1WzFdIDwgaVszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCBpWzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gaVsxXSwgaSA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgJiYgZS5sYWJlbCA8IGlbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSBpWzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSB0LmNhbGwociwgZSk7XG4gICAgfSBjYXRjaCAocCkge1xuICAgICAgdSA9IFs2LCBwXSwgbyA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG4gPSBpID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59LCByZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX3NodXRkb3duT25jZSA9IG5ldyBmdCh0aGlzLl9zaHV0ZG93biwgdGhpcyksIHRoaXMuX3VucmVzb2x2ZWRFeHBvcnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBRdCh0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBYdCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgc3dpdGNoICh0LmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0aGlzLl91bnJlc29sdmVkRXhwb3J0cykpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHQuc2VudCgpLCB0aGlzLl9leHBvcnRlci5mb3JjZUZsdXNoID8gWzQsIHRoaXMuX2V4cG9ydGVyLmZvcmNlRmx1c2goKV0gOiBbMywgM107XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHQuc2VudCgpLCB0LmxhYmVsID0gMztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuLCBvO1xuICAgICAgaWYgKCF0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgJiYgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgbXIuU0FNUExFRCkgIT09IDApIHtcbiAgICAgICAgdmFyIGkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gT3QkMS5fZXhwb3J0KGUuX2V4cG9ydGVyLCBbdF0pLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgdmFyIGw7XG4gICAgICAgICAgICBzLmNvZGUgIT09IGEuU1VDQ0VTUyAmJiBFcigobCA9IHMuZXJyb3IpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiBuZXcgRXJyb3IoXCJTaW1wbGVTcGFuUHJvY2Vzc29yOiBzcGFuIGV4cG9ydCBmYWlsZWQgKHN0YXR1cyBcIiArIHMgKyBcIilcIikpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIEVyKHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nKSB7XG4gICAgICAgICAgdmFyIGEkMSA9IChvID0gKG4gPSB0LnJlc291cmNlKS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKSA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvLmNhbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBhJDEgIT0gbnVsbCAmJiBlLl91bnJlc29sdmVkRXhwb3J0cy5kZWxldGUoYSQxKSwgaSgpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIHJldHVybiBFcihzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhJDEgIT0gbnVsbCAmJiB0aGlzLl91bnJlc29sdmVkRXhwb3J0cy5hZGQoYSQxKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgaSgpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5cbmV4cG9ydCB7IEIsIER0IGFzIEQsIEd0IGFzIEcsIFAsIFIsIFMsIFcsIGVlIGFzIGUsIGcsIGp0IGFzIGosIHJlIGFzIHIsIHRlIGFzIHQsIHh0IGFzIHgsIHp0IGFzIHogfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUN2RixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxNQUFNQyxHQUFJLEtBQUtDLElBQUksTUFBTUMsR0FBSSxNQUFNQyxJQUFJLE1BQU1DLEdBQUssS0FBS0MsSUFBSSxLQUFLQyxHQUFLLE1BQU1DLElBQUksTUFBTUMsSUFBSSxNQUFNQyxHQUFJLE1BQU1DLEdBQUksTUFBTUMsSUFBSSxNQUFNQyxVQUFVO0FBQ2hKLFNBQVMsS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLEdBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLEdBQUksS0FBQUMsR0FBRyxLQUFLQyxJQUFJLEtBQUFDLElBQUcsS0FBQUMsSUFBRyxLQUFLQyxJQUFJLEtBQUssR0FBRyxLQUFLQyxVQUFZO0FBQzlJLFNBQVMsS0FBQUMsSUFBRyxLQUFLQyxVQUFXO0FBQzVCLFNBQVMsS0FBS0MsU0FBVztBQUN6QixTQUFTLEtBQUFDLFNBQVM7QUFFbEIsSUFBSUMsS0FBSyxhQUFhQyxJQUFJLFdBQVc7QUFDbkMsU0FBT0EsSUFBSSxPQUFPLFVBQVUsU0FBU2xDLEdBQUc7QUFDdEMsYUFBUyxHQUFHbUMsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRQSxJQUFJLEdBQUdBLEtBQUs7QUFDbkQsVUFBSSxVQUFVQSxDQUFDO0FBQ2YsZUFBU0MsS0FBSyxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUssR0FBR0EsQ0FBQyxNQUFNcEMsRUFBRW9DLENBQUMsSUFBSSxFQUFFQSxDQUFDO0FBQUEsSUFDNUU7QUFDQSxXQUFPcEM7QUFBQSxFQUNULEdBQUdrQyxFQUFFLE1BQU0sTUFBTSxTQUFTO0FBQzVCLEdBQUdHLEtBQUssU0FBU3JDLEdBQUc7QUFDbEIsTUFBSSxJQUFJLE9BQU8sVUFBVSxjQUFjLE9BQU8sVUFBVW1DLElBQUksS0FBS25DLEVBQUUsQ0FBQyxHQUFHLElBQUk7QUFDM0UsTUFBSW1DLEVBQUcsUUFBT0EsRUFBRSxLQUFLbkMsQ0FBQztBQUN0QixNQUFJQSxLQUFLLE9BQU9BLEVBQUUsVUFBVSxTQUFVLFFBQU87QUFBQSxJQUMzQyxNQUFNLFdBQVc7QUFDZixhQUFPQSxLQUFLLEtBQUtBLEVBQUUsV0FBV0EsSUFBSSxTQUFTLEVBQUUsT0FBT0EsS0FBS0EsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDQSxFQUFFO0FBQUEsSUFDNUU7QUFBQSxFQUNGO0FBQ0EsUUFBTSxJQUFJLFVBQVUsSUFBSSw0QkFBNEIsaUNBQWlDO0FBQ3ZGLEdBQUcsSUFBSSxTQUFTQSxHQUFHLEdBQUc7QUFDcEIsTUFBSW1DLElBQUksT0FBTyxVQUFVLGNBQWNuQyxFQUFFLE9BQU8sUUFBUTtBQUN4RCxNQUFJLENBQUNtQyxFQUFHLFFBQU9uQztBQUNmLE1BQUksSUFBSW1DLEVBQUUsS0FBS25DLENBQUMsR0FBR29DLEdBQUdFLElBQUksQ0FBQyxHQUFHTjtBQUM5QixNQUFJO0FBQ0YsWUFBUSxNQUFNLFVBQVUsTUFBTSxNQUFNLEVBQUVJLElBQUksRUFBRSxLQUFLLEdBQUcsT0FBUSxDQUFBRSxFQUFFLEtBQUtGLEVBQUUsS0FBSztBQUFBLEVBQzVFLFNBQVNHLEdBQUc7QUFDVixJQUFBUCxJQUFJLEVBQUUsT0FBT08sRUFBRTtBQUFBLEVBQ2pCLFVBQUU7QUFDQSxRQUFJO0FBQ0YsTUFBQUgsS0FBSyxDQUFDQSxFQUFFLFNBQVNELElBQUksRUFBRSxXQUFXQSxFQUFFLEtBQUssQ0FBQztBQUFBLElBQzVDLFVBQUU7QUFDQSxVQUFJSCxFQUFHLE9BQU1BLEVBQUU7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFDQSxTQUFPTTtBQUNULEdBQUcsS0FBSyxTQUFTdEMsR0FBRyxHQUFHbUMsR0FBRztBQUN4QixNQUFJLFVBQVUsV0FBVyxFQUFHLFVBQVMsSUFBSSxHQUFHQyxJQUFJLEVBQUUsUUFBUUUsR0FBRyxJQUFJRixHQUFHO0FBQ2xFLEtBQUNFLEtBQUssRUFBRSxLQUFLLFFBQVFBLE1BQU1BLElBQUksTUFBTSxVQUFVLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJQSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakYsU0FBT3RDLEVBQUUsT0FBT3NDLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDcEQsR0FBR0U7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVNDLEVBQUksR0FBR04sR0FBRyxHQUFHQyxHQUFHRSxHQUFHTixHQUFHTyxHQUFHaEIsR0FBRyxHQUFHLEdBQUc7QUFDekMsTUFBQWdCLE1BQU0sV0FBV0EsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLEdBQUcsS0FBSywwQkFBMEIsR0FBRyxLQUFLLHNCQUFzQixHQUFHLEtBQUsscUJBQXFCLEdBQUcsS0FBSyxTQUFTO0FBQUEsUUFDNUwsTUFBTTFDLEdBQUc7QUFBQSxNQUNYLEdBQUcsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQU8sS0FBSyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxlQUFldUMsR0FBRyxLQUFLLGVBQWVKLEdBQUcsS0FBSyxPQUFPTSxHQUFHLEtBQUssUUFBUUM7QUFDbkssVUFBSUcsSUFBSSxLQUFLLElBQUk7QUFDakIsV0FBSyx3QkFBd0JyQyxFQUFJLElBQUksR0FBRyxLQUFLLHFCQUFxQnFDLEtBQUssS0FBSyx3QkFBd0I5QixHQUFHLElBQUksS0FBSyxxQkFBcUJXLEtBQUssTUFBTSxLQUFLLFlBQVksS0FBSyxTQUFTQSxLQUFLbUIsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLFVBQVUsS0FBSyx5QkFBeUIsRUFBRSx3QkFBd0IsS0FBSyxjQUFjLEVBQUUsY0FBYyxHQUFHLEtBQUssNkJBQTZCLEtBQUssWUFBWSw2QkFBNkIsR0FBRyxLQUFLLFFBQVEsS0FBSyxjQUFjLENBQUMsR0FBRyxLQUFLLGlCQUFpQixFQUFFLHVCQUF1QixHQUFHLEtBQUssZUFBZSxRQUFRLE1BQU1QLENBQUM7QUFBQSxJQUNoZ0I7QUFDQSxXQUFPTSxFQUFJLFVBQVUsY0FBYyxXQUFXO0FBQzVDLGFBQU8sS0FBSztBQUFBLElBQ2QsR0FBR0EsRUFBSSxVQUFVLGVBQWUsU0FBUyxHQUFHTixHQUFHO0FBQzdDLGFBQU9BLEtBQUssUUFBUSxLQUFLLGFBQWEsSUFBSSxPQUFPLEVBQUUsV0FBVyxLQUFLbkMsRUFBRSxLQUFLLDRCQUE0QixDQUFDLEdBQUcsUUFBUTJCLEdBQUdRLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsVUFBVSxLQUFLLFlBQVksdUJBQXVCLENBQUMsT0FBTyxVQUFVLGVBQWUsS0FBSyxLQUFLLFlBQVksQ0FBQyxLQUFLLEtBQUssMkJBQTJCLFNBQVMsS0FBSyxXQUFXLENBQUMsSUFBSSxLQUFLLGdCQUFnQkEsQ0FBQyxHQUFHLFNBQVNuQyxFQUFFLEtBQUssMENBQTBDLENBQUMsR0FBRztBQUFBLElBQzdaLEdBQUd5QyxFQUFJLFVBQVUsZ0JBQWdCLFNBQVMsR0FBRztBQUMzQyxVQUFJTixHQUFHO0FBQ1AsVUFBSTtBQUNGLGlCQUFTQyxJQUFJQyxHQUFHLE9BQU8sUUFBUSxDQUFDLENBQUMsR0FBR0MsSUFBSUYsRUFBRSxLQUFLLEdBQUcsQ0FBQ0UsRUFBRSxNQUFNQSxJQUFJRixFQUFFLEtBQUssR0FBRztBQUN2RSxjQUFJSixJQUFJLEVBQUVNLEVBQUUsT0FBTyxDQUFDLEdBQUdDLElBQUlQLEVBQUUsQ0FBQyxHQUFHVCxJQUFJUyxFQUFFLENBQUM7QUFDeEMsZUFBSyxhQUFhTyxHQUFHaEIsQ0FBQztBQUFBLFFBQ3hCO0FBQUEsTUFDRixTQUFTLEdBQUc7QUFDVixRQUFBWSxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQUEsTUFDakIsVUFBRTtBQUNBLFlBQUk7QUFDRixVQUFBRyxLQUFLLENBQUNBLEVBQUUsU0FBUyxJQUFJRixFQUFFLFdBQVcsRUFBRSxLQUFLQSxDQUFDO0FBQUEsUUFDNUMsVUFBRTtBQUNBLGNBQUlELEVBQUcsT0FBTUEsRUFBRTtBQUFBLFFBQ2pCO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNULEdBQUdNLEVBQUksVUFBVSxXQUFXLFNBQVMsR0FBR04sR0FBRyxHQUFHO0FBQzVDLFVBQUksS0FBSyxhQUFhO0FBQ3BCLGVBQU87QUFDVCxVQUFJLEtBQUssWUFBWSxvQkFBb0I7QUFDdkMsZUFBT25DLEVBQUUsS0FBSyxvQkFBb0IsR0FBRyxLQUFLLHVCQUF1QjtBQUNuRSxXQUFLLE9BQU8sVUFBVSxLQUFLLFlBQVksb0JBQW9CLEtBQUssd0JBQXdCLEtBQUtBLEVBQUUsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLE9BQU8sTUFBTSxHQUFHLEtBQUssd0JBQXdCRyxFQUFHZ0MsQ0FBQyxNQUFNaEMsRUFBRyxDQUFDLE1BQU0sSUFBSWdDLElBQUlBLElBQUk7QUFDbE4sVUFBSUMsSUFBSWQsRUFBR2EsQ0FBQztBQUNaLGFBQU8sS0FBSyxPQUFPLEtBQUs7QUFBQSxRQUN0QixNQUFNO0FBQUEsUUFDTixZQUFZQztBQUFBLFFBQ1osTUFBTSxLQUFLLFNBQVMsQ0FBQztBQUFBLFFBQ3JCLHdCQUF3QjtBQUFBLE1BQzFCLENBQUMsR0FBRztBQUFBLElBQ04sR0FBR0ssRUFBSSxVQUFVLFVBQVUsU0FBUyxHQUFHO0FBQ3JDLGFBQU8sS0FBSyxNQUFNLEtBQUssQ0FBQyxHQUFHO0FBQUEsSUFDN0IsR0FBR0EsRUFBSSxVQUFVLFdBQVcsU0FBUyxHQUFHO0FBQ3RDLFVBQUlOO0FBQ0osY0FBUUEsSUFBSSxLQUFLLE9BQU8sS0FBSyxNQUFNQSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUssQ0FBQyxHQUFHO0FBQUEsSUFDOUQsR0FBR00sRUFBSSxVQUFVLFlBQVksU0FBUyxHQUFHO0FBQ3ZDLGFBQU8sS0FBSyxhQUFhLElBQUksUUFBUSxLQUFLLFNBQVNQLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLE9BQU8sV0FBVyxRQUFRLE9BQU8sRUFBRSxXQUFXLGFBQWFsQyxFQUFFLEtBQUssOENBQThDLE9BQU8sRUFBRSxVQUFVLHNCQUFzQixHQUFHLE9BQU8sS0FBSyxPQUFPLFVBQVU7QUFBQSxJQUM3UCxHQUFHeUMsRUFBSSxVQUFVLGFBQWEsU0FBUyxHQUFHO0FBQ3hDLGFBQU8sS0FBSyxhQUFhLElBQUksUUFBUSxLQUFLLE9BQU8sR0FBRztBQUFBLElBQ3RELEdBQUdBLEVBQUksVUFBVSxNQUFNLFNBQVMsR0FBRztBQUNqQyxVQUFJLEtBQUssYUFBYSxHQUFHO0FBQ3ZCLFFBQUF6QyxFQUFFLE1BQU0sS0FBSyxPQUFPLE1BQU0sS0FBSyxhQUFhLFVBQVUsTUFBTSxLQUFLLGFBQWEsU0FBUyw0Q0FBNEM7QUFDbkk7QUFBQSxNQUNGO0FBQ0EsV0FBSyxTQUFTLElBQU0sS0FBSyxVQUFVLEtBQUssU0FBUyxDQUFDLEdBQUcsS0FBSyxZQUFZSSxHQUFHLEtBQUssV0FBVyxLQUFLLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxJQUFJLE1BQU1KLEVBQUUsS0FBSyx1RkFBdUYsS0FBSyxXQUFXLEtBQUssT0FBTyxHQUFHLEtBQUssVUFBVSxLQUFLLFVBQVUsTUFBTSxHQUFHLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssc0JBQXNCLEtBQUtBLEVBQUUsS0FBSyxhQUFhLEtBQUssc0JBQXNCLHlDQUF5QyxHQUFHLEtBQUssZUFBZSxNQUFNLElBQUk7QUFBQSxJQUMzZCxHQUFHeUMsRUFBSSxVQUFVLFdBQVcsU0FBUyxHQUFHO0FBQ3RDLFVBQUksT0FBTyxLQUFLLFlBQVksS0FBS3BDLEVBQUksSUFBSTtBQUN2QyxlQUFPQyxHQUFHLElBQUksS0FBSyxrQkFBa0I7QUFDdkMsVUFBSSxPQUFPLEtBQUs7QUFDZCxlQUFPQyxFQUFJLENBQUM7QUFDZCxVQUFJLGFBQWE7QUFDZixlQUFPQSxFQUFJLEVBQUUsUUFBUSxDQUFDO0FBQ3hCLFVBQUlDLEdBQUcsQ0FBQztBQUNOLGVBQU87QUFDVCxVQUFJLEtBQUs7QUFDUCxlQUFPRCxFQUFJLEtBQUssSUFBSSxDQUFDO0FBQ3ZCLFVBQUk0QixJQUFJOUIsRUFBSSxJQUFJLElBQUksS0FBSztBQUN6QixhQUFPSSxHQUFHLEtBQUssV0FBV0YsRUFBSTRCLENBQUMsQ0FBQztBQUFBLElBQ2xDLEdBQUdNLEVBQUksVUFBVSxjQUFjLFdBQVc7QUFDeEMsYUFBTyxLQUFLLFdBQVc7QUFBQSxJQUN6QixHQUFHQSxFQUFJLFVBQVUsa0JBQWtCLFNBQVMsR0FBR04sR0FBRztBQUNoRCxVQUFJLElBQUksQ0FBQztBQUNULGFBQU8sS0FBSyxXQUFXLEVBQUV4QixDQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFRCxDQUFFLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRUEsQ0FBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRUMsQ0FBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFSCxDQUFFLEtBQUssRUFBRUMsQ0FBRSxJQUFJLEtBQUssU0FBU3NCLElBQUksR0FBR0UsQ0FBQyxJQUFJbkMsRUFBRSxLQUFLLG1DQUFtQyxDQUFDO0FBQUEsSUFDblEsR0FBRyxPQUFPLGVBQWV5QyxFQUFJLFdBQVcsWUFBWTtBQUFBLE1BQ2xELEtBQUssV0FBVztBQUNkLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQVk7QUFBQSxNQUNaLGNBQWM7QUFBQSxJQUNoQixDQUFDLEdBQUcsT0FBTyxlQUFlQSxFQUFJLFdBQVcsU0FBUztBQUFBLE1BQ2hELEtBQUssV0FBVztBQUNkLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQVk7QUFBQSxNQUNaLGNBQWM7QUFBQSxJQUNoQixDQUFDLEdBQUcsT0FBTyxlQUFlQSxFQUFJLFdBQVcsMEJBQTBCO0FBQUEsTUFDakUsS0FBSyxXQUFXO0FBQ2QsZUFBTyxLQUFLO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBWTtBQUFBLE1BQ1osY0FBYztBQUFBLElBQ2hCLENBQUMsR0FBRyxPQUFPLGVBQWVBLEVBQUksV0FBVyxzQkFBc0I7QUFBQSxNQUM3RCxLQUFLLFdBQVc7QUFDZCxlQUFPLEtBQUs7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFZO0FBQUEsTUFDWixjQUFjO0FBQUEsSUFDaEIsQ0FBQyxHQUFHLE9BQU8sZUFBZUEsRUFBSSxXQUFXLHFCQUFxQjtBQUFBLE1BQzVELEtBQUssV0FBVztBQUNkLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQVk7QUFBQSxNQUNaLGNBQWM7QUFBQSxJQUNoQixDQUFDLEdBQUdBLEVBQUksVUFBVSxlQUFlLFdBQVc7QUFDMUMsYUFBTyxLQUFLLFVBQVV6QyxFQUFFLEtBQUssMkRBQTJELEtBQUssYUFBYSxVQUFVLGVBQWUsS0FBSyxhQUFhLFNBQVMsR0FBRyxHQUFHLEtBQUs7QUFBQSxJQUMzSyxHQUFHeUMsRUFBSSxVQUFVLHVCQUF1QixTQUFTLEdBQUdOLEdBQUc7QUFDckQsYUFBTyxFQUFFLFVBQVVBLElBQUksSUFBSSxFQUFFLFVBQVUsR0FBR0EsQ0FBQztBQUFBLElBQzdDLEdBQUdNLEVBQUksVUFBVSxrQkFBa0IsU0FBUyxHQUFHO0FBQzdDLFVBQUlOLElBQUksTUFBTSxJQUFJLEtBQUs7QUFDdkIsYUFBTyxLQUFLLEtBQUtuQyxFQUFFLEtBQUssaURBQWlELENBQUMsR0FBRyxLQUFLLE9BQU8sS0FBSyxXQUFXLEtBQUsscUJBQXFCLEdBQUcsQ0FBQyxJQUFJLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLFNBQVNvQyxHQUFHO0FBQzlLLGVBQU8sT0FBT0EsS0FBSyxXQUFXRCxFQUFFLHFCQUFxQkMsR0FBRyxDQUFDLElBQUlBO0FBQUEsTUFDL0QsQ0FBQyxJQUFJO0FBQUEsSUFDUCxHQUFHSztBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0ZFO0FBQUEsQ0FDRixTQUFTM0MsR0FBRztBQUNYLEVBQUFBLEVBQUVBLEVBQUUsYUFBYSxDQUFDLElBQUksY0FBY0EsRUFBRUEsRUFBRSxTQUFTLENBQUMsSUFBSSxVQUFVQSxFQUFFQSxFQUFFLHFCQUFxQixDQUFDLElBQUk7QUFDaEcsR0FBRzJDLE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUk7QUFBQTtBQUFBLEdBRUQsV0FBVztBQUNWLGFBQVMzQyxJQUFJO0FBQUEsSUFDYjtBQUNBLFdBQU9BLEVBQUUsVUFBVSxlQUFlLFdBQVc7QUFDM0MsYUFBTztBQUFBLFFBQ0wsVUFBVTJDLEVBQUU7QUFBQSxNQUNkO0FBQUEsSUFDRixHQUFHM0MsRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPO0FBQUEsSUFDVCxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0Y0QztBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBUzVDLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLGVBQWUsV0FBVztBQUMzQyxhQUFPO0FBQUEsUUFDTCxVQUFVMkMsRUFBRTtBQUFBLE1BQ2Q7QUFBQSxJQUNGLEdBQUczQyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU87QUFBQSxJQUNULEdBQUdBO0FBQUEsRUFDTCxHQUFHO0FBQUEsR0FDRjZDO0FBQUE7QUFBQSxHQUVBLFdBQVc7QUFDVixhQUFTN0MsRUFBRSxHQUFHO0FBQ1osVUFBSW1DLEdBQUcsR0FBR0MsR0FBR0U7QUFDYixXQUFLLFFBQVEsRUFBRSxNQUFNLEtBQUssVUFBVXhCLEVBQUcsSUFBSSxNQUFNLHdEQUF3RCxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUk4QixFQUFFLElBQUksS0FBSyx3QkFBd0JULElBQUksRUFBRSx5QkFBeUIsUUFBUUEsTUFBTSxTQUFTQSxJQUFJLElBQUlTLEVBQUUsR0FBRyxLQUFLLDJCQUEyQixJQUFJLEVBQUUsNEJBQTRCLFFBQVEsTUFBTSxTQUFTLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyx1QkFBdUJSLElBQUksRUFBRSx3QkFBd0IsUUFBUUEsTUFBTSxTQUFTQSxJQUFJLElBQUlRLEVBQUUsR0FBRyxLQUFLLDBCQUEwQk4sSUFBSSxFQUFFLDJCQUEyQixRQUFRQSxNQUFNLFNBQVNBLElBQUksSUFBSSxFQUFFO0FBQUEsSUFDM2dCO0FBQ0EsV0FBT3RDLEVBQUUsVUFBVSxlQUFlLFNBQVMsR0FBR21DLEdBQUcsR0FBR0MsR0FBR0UsR0FBR04sR0FBRztBQUMzRCxVQUFJTyxJQUFJOUMsRUFBRyxlQUFlLENBQUM7QUFDM0IsYUFBTyxDQUFDOEMsS0FBSyxDQUFDekMsR0FBR3lDLENBQUMsSUFBSSxLQUFLLE1BQU0sYUFBYSxHQUFHSixHQUFHLEdBQUdDLEdBQUdFLEdBQUdOLENBQUMsSUFBSU8sRUFBRSxXQUFXQSxFQUFFLGFBQWEvQyxFQUFHLFVBQVUsS0FBSyxxQkFBcUIsYUFBYSxHQUFHMkMsR0FBRyxHQUFHQyxHQUFHRSxHQUFHTixDQUFDLElBQUksS0FBSyx3QkFBd0IsYUFBYSxHQUFHRyxHQUFHLEdBQUdDLEdBQUdFLEdBQUdOLENBQUMsSUFBSU8sRUFBRSxhQUFhL0MsRUFBRyxVQUFVLEtBQUssb0JBQW9CLGFBQWEsR0FBRzJDLEdBQUcsR0FBR0MsR0FBR0UsR0FBR04sQ0FBQyxJQUFJLEtBQUssdUJBQXVCLGFBQWEsR0FBR0csR0FBRyxHQUFHQyxHQUFHRSxHQUFHTixDQUFDO0FBQUEsSUFDclgsR0FBR2hDLEVBQUUsVUFBVSxXQUFXLFdBQVc7QUFDbkMsYUFBTyxzQkFBc0IsS0FBSyxNQUFNLFNBQVMsSUFBSSwyQkFBMkIsS0FBSyxxQkFBcUIsU0FBUyxJQUFJLDhCQUE4QixLQUFLLHdCQUF3QixTQUFTLElBQUksMEJBQTBCLEtBQUssb0JBQW9CLFNBQVMsSUFBSSw2QkFBNkIsS0FBSyx1QkFBdUIsU0FBUyxJQUFJO0FBQUEsSUFDdlUsR0FBR0E7QUFBQSxFQUNMLEdBQUc7QUFBQSxHQUNGOEM7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVM5QyxFQUFFLEdBQUc7QUFDWixZQUFNLFdBQVcsSUFBSSxJQUFJLEtBQUssU0FBUyxHQUFHLEtBQUssU0FBUyxLQUFLLFdBQVcsQ0FBQyxHQUFHLEtBQUssY0FBYyxLQUFLLE1BQU0sS0FBSyxTQUFTLFVBQVU7QUFBQSxJQUNwSTtBQUNBLFdBQU9BLEVBQUUsVUFBVSxlQUFlLFNBQVMsR0FBR21DLEdBQUc7QUFDL0MsYUFBTztBQUFBLFFBQ0wsVUFBVXBDLEdBQUdvQyxDQUFDLEtBQUssS0FBSyxZQUFZQSxDQUFDLElBQUksS0FBSyxjQUFjUSxFQUFFLHFCQUFxQkEsRUFBRTtBQUFBLE1BQ3ZGO0FBQUEsSUFDRixHQUFHM0MsRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPLHVCQUF1QixLQUFLLFNBQVM7QUFBQSxJQUM5QyxHQUFHQSxFQUFFLFVBQVUsYUFBYSxTQUFTLEdBQUc7QUFDdEMsYUFBTyxPQUFPLEtBQUssWUFBWSxNQUFNLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJO0FBQUEsSUFDMUUsR0FBR0EsRUFBRSxVQUFVLGNBQWMsU0FBUyxHQUFHO0FBQ3ZDLGVBQVNtQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxTQUFTLEdBQUcsS0FBSztBQUM1QyxZQUFJQyxJQUFJLElBQUksR0FBR0UsSUFBSSxTQUFTLEVBQUUsTUFBTUYsR0FBR0EsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNqRCxRQUFBRCxLQUFLQSxJQUFJRyxPQUFPO0FBQUEsTUFDbEI7QUFDQSxhQUFPSDtBQUFBLElBQ1QsR0FBR25DO0FBQUEsRUFDTCxHQUFHO0FBQUEsR0FDRixLQUFLLEVBQUUsVUFBVStDLElBQUk7QUFDeEIsU0FBUyxJQUFJO0FBQ1gsTUFBSS9DLElBQUllLEVBQUc7QUFDWCxTQUFPO0FBQUEsSUFDTCxTQUFTLEVBQUVmLENBQUM7QUFBQSxJQUNaLHlCQUF5QjtBQUFBLElBQ3pCLGVBQWU7QUFBQSxNQUNiLDJCQUEyQkEsRUFBRTtBQUFBLE1BQzdCLHFCQUFxQkEsRUFBRTtBQUFBLElBQ3pCO0FBQUEsSUFDQSxZQUFZO0FBQUEsTUFDViwyQkFBMkJBLEVBQUU7QUFBQSxNQUM3QixxQkFBcUJBLEVBQUU7QUFBQSxNQUN2QixnQkFBZ0JBLEVBQUU7QUFBQSxNQUNsQixpQkFBaUJBLEVBQUU7QUFBQSxNQUNuQiw2QkFBNkJBLEVBQUU7QUFBQSxNQUMvQiw0QkFBNEJBLEVBQUU7QUFBQSxJQUNoQztBQUFBLElBQ0EsMkJBQTJCO0FBQUEsRUFDN0I7QUFDRjtBQUNBLFNBQVMsRUFBRXlDLEdBQUs7QUFDZCxVQUFRQSxNQUFRLFdBQVdBLElBQU0xQixFQUFHLElBQUkwQixFQUFJLHFCQUFxQjtBQUFBLElBQy9ELEtBQUssRUFBRTtBQUNMLGFBQU8sSUFBSUcsRUFBRTtBQUFBLElBQ2YsS0FBSyxFQUFFO0FBQ0wsYUFBTyxJQUFJLEVBQUU7QUFBQSxJQUNmLEtBQUssRUFBRTtBQUNMLGFBQU8sSUFBSUMsRUFBRTtBQUFBLFFBQ1gsTUFBTSxJQUFJRCxFQUFFO0FBQUEsTUFDZCxDQUFDO0FBQUEsSUFDSCxLQUFLLEVBQUU7QUFDTCxhQUFPLElBQUlDLEVBQUU7QUFBQSxRQUNYLE1BQU0sSUFBSSxFQUFFO0FBQUEsTUFDZCxDQUFDO0FBQUEsSUFDSCxLQUFLLEVBQUU7QUFDTCxhQUFPLElBQUlDLEVBQUVFLEVBQUVQLENBQUcsQ0FBQztBQUFBLElBQ3JCLEtBQUssRUFBRTtBQUNMLGFBQU8sSUFBSUksRUFBRTtBQUFBLFFBQ1gsTUFBTSxJQUFJQyxFQUFFRSxFQUFFUCxDQUFHLENBQUM7QUFBQSxNQUNwQixDQUFDO0FBQUEsSUFDSDtBQUNFLGFBQU96QyxFQUFFLE1BQU0sZ0NBQWdDeUMsRUFBSSxzQkFBc0IsNkJBQTZCLEtBQUssSUFBSSxHQUFHLElBQUlHLEVBQUU7QUFBQSxFQUM1SDtBQUNGO0FBQ0EsU0FBU0ksRUFBRVAsR0FBSztBQUNkLE1BQUlBLEVBQUksNEJBQTRCLFVBQVVBLEVBQUksNEJBQTRCO0FBQzVFLFdBQU96QyxFQUFFLE1BQU0scURBQXFEK0MsSUFBSSxHQUFHLEdBQUdBO0FBQ2hGLE1BQUksSUFBSSxPQUFPTixFQUFJLHVCQUF1QjtBQUMxQyxTQUFPLE1BQU0sQ0FBQyxLQUFLekMsRUFBRSxNQUFNLDZCQUE2QnlDLEVBQUksMEJBQTBCLGtEQUFrRE0sSUFBSSxHQUFHLEdBQUdBLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSy9DLEVBQUUsTUFBTSw2QkFBNkJ5QyxFQUFJLDBCQUEwQixnRUFBZ0VNLElBQUksR0FBRyxHQUFHQSxLQUFLO0FBQzdUO0FBQ0EsU0FBUyxHQUFHL0MsR0FBRztBQUNiLE1BQUksSUFBSTtBQUFBLElBQ04sU0FBUyxFQUFFO0FBQUEsRUFDYixHQUFHbUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHQSxHQUFHLEdBQUduQyxDQUFDO0FBQ3pDLFNBQU8sRUFBRSxnQkFBZ0IsT0FBTyxPQUFPLENBQUMsR0FBR21DLEVBQUUsZUFBZW5DLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxPQUFPLE9BQU8sQ0FBQyxHQUFHbUMsRUFBRSxZQUFZbkMsRUFBRSxjQUFjLENBQUMsQ0FBQyxHQUFHO0FBQzFKO0FBQ0EsU0FBUyxHQUFHQSxHQUFHO0FBQ2IsTUFBSSxHQUFHbUMsR0FBRyxHQUFHQyxHQUFHRSxHQUFHTixHQUFHTyxHQUFHaEIsR0FBRyxHQUFHMEIsR0FBS1AsR0FBR1EsR0FBRyxJQUFJLE9BQU8sT0FBTyxDQUFDLEdBQUdsRCxFQUFFLFVBQVUsR0FBRyxJQUFJd0IsR0FBRztBQUN0RixTQUFPLEVBQUUsdUJBQXVCUSxLQUFLTSxLQUFLRixLQUFLRCxLQUFLLElBQUluQyxFQUFFLGdCQUFnQixRQUFRLE1BQU0sU0FBUyxTQUFTLEVBQUUseUJBQXlCLFFBQVFtQyxNQUFNLFNBQVNBLEtBQUssSUFBSW5DLEVBQUUsbUJBQW1CLFFBQVEsTUFBTSxTQUFTLFNBQVMsRUFBRSx5QkFBeUIsUUFBUW9DLE1BQU0sU0FBU0EsSUFBSSxFQUFFLHFDQUFxQyxRQUFRRSxNQUFNLFNBQVNBLElBQUksRUFBRSxnQ0FBZ0MsUUFBUU4sTUFBTSxTQUFTQSxJQUFJUCxJQUFHLEVBQUUsNkJBQTZCeUIsS0FBS1IsS0FBS08sS0FBTzFCLEtBQUtnQixJQUFJdkMsRUFBRSxnQkFBZ0IsUUFBUXVDLE1BQU0sU0FBUyxTQUFTQSxFQUFFLCtCQUErQixRQUFRaEIsTUFBTSxTQUFTQSxLQUFLLElBQUl2QixFQUFFLG1CQUFtQixRQUFRLE1BQU0sU0FBUyxTQUFTLEVBQUUsK0JBQStCLFFBQVFpRCxNQUFRLFNBQVNBLElBQU0sRUFBRSw0Q0FBNEMsUUFBUVAsTUFBTSxTQUFTQSxJQUFJLEVBQUUsdUNBQXVDLFFBQVFRLE1BQU0sU0FBU0EsSUFBSXhCLElBQUcsT0FBTyxPQUFPLENBQUMsR0FBRzFCLEdBQUcsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUMzMkI7QUFDQSxJQUFJO0FBQUE7QUFBQSxHQUVELFdBQVc7QUFDVixhQUFTeUMsRUFBSSxHQUFHTixHQUFHO0FBQ2pCLFdBQUssWUFBWSxHQUFHLEtBQUssZUFBZSxJQUFPLEtBQUssaUJBQWlCLENBQUMsR0FBRyxLQUFLLHFCQUFxQjtBQUNuRyxVQUFJLElBQUlwQixFQUFHO0FBQ1gsV0FBSyxzQkFBc0IsT0FBT29CLEdBQUcsc0JBQXNCLFdBQVdBLEVBQUUscUJBQXFCLEVBQUUsZ0NBQWdDLEtBQUssZ0JBQWdCLE9BQU9BLEdBQUcsZ0JBQWdCLFdBQVdBLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixLQUFLLHdCQUF3QixPQUFPQSxHQUFHLHdCQUF3QixXQUFXQSxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixLQUFLLHVCQUF1QixPQUFPQSxHQUFHLHVCQUF1QixXQUFXQSxFQUFFLHNCQUFzQixFQUFFLHlCQUF5QixLQUFLLGdCQUFnQixJQUFJaEIsRUFBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssc0JBQXNCLEtBQUssa0JBQWtCbkIsRUFBRSxLQUFLLG1JQUFtSSxHQUFHLEtBQUssc0JBQXNCLEtBQUs7QUFBQSxJQUNsdkI7QUFDQSxXQUFPeUMsRUFBSSxVQUFVLGFBQWEsV0FBVztBQUMzQyxhQUFPLEtBQUssY0FBYyxXQUFXLEtBQUssY0FBYyxVQUFVLEtBQUssVUFBVTtBQUFBLElBQ25GLEdBQUdBLEVBQUksVUFBVSxVQUFVLFNBQVMsR0FBR04sR0FBRztBQUFBLElBQzFDLEdBQUdNLEVBQUksVUFBVSxRQUFRLFNBQVMsR0FBRztBQUNuQyxXQUFLLGNBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhakQsRUFBRyxhQUFhLEtBQUssS0FBSyxhQUFhLENBQUM7QUFBQSxJQUN2RyxHQUFHaUQsRUFBSSxVQUFVLFdBQVcsV0FBVztBQUNyQyxhQUFPLEtBQUssY0FBYyxLQUFLO0FBQUEsSUFDakMsR0FBR0EsRUFBSSxVQUFVLFlBQVksV0FBVztBQUN0QyxVQUFJLElBQUk7QUFDUixhQUFPLFFBQVEsUUFBUSxFQUFFLEtBQUssV0FBVztBQUN2QyxlQUFPLEVBQUUsV0FBVztBQUFBLE1BQ3RCLENBQUMsRUFBRSxLQUFLLFdBQVc7QUFDakIsZUFBTyxFQUFFLFVBQVU7QUFBQSxNQUNyQixDQUFDLEVBQUUsS0FBSyxXQUFXO0FBQ2pCLGVBQU8sRUFBRSxVQUFVLFNBQVM7QUFBQSxNQUM5QixDQUFDO0FBQUEsSUFDSCxHQUFHQSxFQUFJLFVBQVUsZUFBZSxTQUFTLEdBQUc7QUFDMUMsVUFBSSxLQUFLLGVBQWUsVUFBVSxLQUFLLGVBQWU7QUFDcEQsYUFBSyx1QkFBdUIsS0FBS3pDLEVBQUUsTUFBTSxzQ0FBc0MsR0FBRyxLQUFLO0FBQ3ZGO0FBQUEsTUFDRjtBQUNBLFdBQUsscUJBQXFCLE1BQU1BLEVBQUUsS0FBSyxhQUFhLEtBQUsscUJBQXFCLHFDQUFxQyxHQUFHLEtBQUsscUJBQXFCLElBQUksS0FBSyxlQUFlLEtBQUssQ0FBQyxHQUFHLEtBQUssaUJBQWlCO0FBQUEsSUFDek0sR0FBR3lDLEVBQUksVUFBVSxZQUFZLFdBQVc7QUFDdEMsVUFBSSxJQUFJO0FBQ1IsYUFBTyxJQUFJLFFBQVEsU0FBU04sR0FBRyxHQUFHO0FBQ2hDLGlCQUFTQyxJQUFJLENBQUMsR0FBR0UsSUFBSSxLQUFLLEtBQUssRUFBRSxlQUFlLFNBQVMsRUFBRSxtQkFBbUIsR0FBR04sSUFBSSxHQUFHTyxJQUFJRCxHQUFHTixJQUFJTyxHQUFHUDtBQUNwRyxVQUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUM7QUFDM0IsZ0JBQVEsSUFBSUEsQ0FBQyxFQUFFLEtBQUssV0FBVztBQUM3QixVQUFBRCxFQUFFO0FBQUEsUUFDSixDQUFDLEVBQUUsTUFBTSxDQUFDO0FBQUEsTUFDWixDQUFDO0FBQUEsSUFDSCxHQUFHTSxFQUFJLFVBQVUsaUJBQWlCLFdBQVc7QUFDM0MsVUFBSSxJQUFJO0FBQ1IsYUFBTyxLQUFLLFlBQVksR0FBRyxLQUFLLGVBQWUsV0FBVyxJQUFJLFFBQVEsUUFBUSxJQUFJLElBQUksUUFBUSxTQUFTTixHQUFHLEdBQUc7QUFDM0csWUFBSUMsSUFBSSxXQUFXLFdBQVc7QUFDNUIsWUFBRSxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQUEsUUFDeEIsR0FBRyxFQUFFLG9CQUFvQjtBQUN6QixRQUFBMUMsRUFBRyxLQUFLbUMsR0FBRW5DLEVBQUcsT0FBTyxDQUFDLEdBQUcsV0FBVztBQUNqQyxjQUFJNEM7QUFDSixZQUFFLGVBQWUsVUFBVSxFQUFFLHVCQUF1QkEsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLEtBQUtBLElBQUksRUFBRSxlQUFlLE9BQU8sR0FBRyxFQUFFLG1CQUFtQjtBQUN2SixtQkFBU1IsSUFBTSxXQUFXO0FBQ3hCLG1CQUFPLEVBQUUsVUFBVSxPQUFPUSxHQUFHLFNBQVNJLEdBQUc7QUFDdkMsa0JBQUlRO0FBQ0osMkJBQWFkLENBQUMsR0FBR00sRUFBRSxTQUFTVixFQUFFLFVBQVVHLEVBQUUsSUFBSSxHQUFHZSxJQUFJUixFQUFFLFdBQVcsUUFBUVEsTUFBTSxTQUFTQSxJQUFJLElBQUksTUFBTSx3Q0FBd0MsQ0FBQztBQUFBLFlBQ2xKLENBQUM7QUFBQSxVQUNILEdBQUdYLElBQUksTUFBTWhCLElBQUksR0FBRyxJQUFJZSxFQUFFLFFBQVFmLElBQUksR0FBR0EsS0FBSztBQUM1QyxnQkFBSSxJQUFJZSxFQUFFZixDQUFDO0FBQ1gsY0FBRSxTQUFTLDBCQUEwQixFQUFFLFNBQVMsMkJBQTJCZ0IsTUFBTUEsSUFBSSxDQUFDLElBQUlBLEVBQUUsS0FBSyxFQUFFLFNBQVMsdUJBQXVCLENBQUM7QUFBQSxVQUN0STtBQUNBLFVBQUFBLE1BQU0sT0FBT1QsRUFBSSxJQUFJLFFBQVEsSUFBSVMsQ0FBQyxFQUFFLEtBQUtULEdBQUssU0FBU1ksR0FBRztBQUN4RCxZQUFBNUIsRUFBRzRCLENBQUMsR0FBRyxFQUFFQSxDQUFDO0FBQUEsVUFDWixDQUFDO0FBQUEsUUFDSCxDQUFDO0FBQUEsTUFDSCxDQUFDO0FBQUEsSUFDSCxHQUFHRCxFQUFJLFVBQVUsbUJBQW1CLFdBQVc7QUFDN0MsVUFBSSxJQUFJO0FBQ1IsVUFBSSxDQUFDLEtBQUssY0FBYztBQUN0QixZQUFJTixJQUFJLFdBQVc7QUFDakIsWUFBRSxlQUFlLElBQU0sRUFBRSxlQUFlLEVBQUUsUUFBUSxXQUFXO0FBQzNELGNBQUUsZUFBZSxJQUFPLEVBQUUsZUFBZSxTQUFTLE1BQU0sRUFBRSxZQUFZLEdBQUcsRUFBRSxpQkFBaUI7QUFBQSxVQUM5RixDQUFDLEVBQUUsTUFBTSxTQUFTLEdBQUc7QUFDbkIsY0FBRSxlQUFlLElBQU9yQixFQUFHLENBQUM7QUFBQSxVQUM5QixDQUFDO0FBQUEsUUFDSDtBQUNBLFlBQUksS0FBSyxlQUFlLFVBQVUsS0FBSztBQUNyQyxpQkFBT3FCLEVBQUU7QUFDWCxhQUFLLFdBQVcsV0FBVyxLQUFLLFNBQVMsV0FBVyxXQUFXO0FBQzdELGlCQUFPQSxFQUFFO0FBQUEsUUFDWCxHQUFHLEtBQUsscUJBQXFCLEdBQUdmLEdBQUcsS0FBSyxNQUFNO0FBQUEsTUFDaEQ7QUFBQSxJQUNGLEdBQUdxQixFQUFJLFVBQVUsY0FBYyxXQUFXO0FBQ3hDLFdBQUssV0FBVyxXQUFXLGFBQWEsS0FBSyxNQUFNLEdBQUcsS0FBSyxTQUFTO0FBQUEsSUFDdEUsR0FBR0E7QUFBQSxFQUNMLEdBQUc7QUFBQSxHQUNGVSxLQUFzQiw0QkFBVztBQUNsQyxNQUFJbkQsSUFBSSxTQUFTLEdBQUdtQyxHQUFHO0FBQ3JCLFdBQU9uQyxJQUFJLE9BQU8sa0JBQWtCLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxTQUFTLFNBQVMsR0FBR29DLEdBQUc7QUFDdkYsUUFBRSxZQUFZQTtBQUFBLElBQ2hCLEtBQUssU0FBUyxHQUFHQSxHQUFHO0FBQ2xCLGVBQVNFLEtBQUtGLEVBQUcsUUFBTyxVQUFVLGVBQWUsS0FBS0EsR0FBR0UsQ0FBQyxNQUFNLEVBQUVBLENBQUMsSUFBSUYsRUFBRUUsQ0FBQztBQUFBLElBQzVFLEdBQUd0QyxFQUFFLEdBQUdtQyxDQUFDO0FBQUEsRUFDWDtBQUNBLFNBQU8sU0FBUyxHQUFHQSxHQUFHO0FBQ3BCLFFBQUksT0FBT0EsS0FBSyxjQUFjQSxNQUFNO0FBQ2xDLFlBQU0sSUFBSSxVQUFVLHlCQUF5QixPQUFPQSxDQUFDLElBQUksK0JBQStCO0FBQzFGLElBQUFuQyxFQUFFLEdBQUdtQyxDQUFDO0FBQ04sYUFBUyxJQUFJO0FBQ1gsV0FBSyxjQUFjO0FBQUEsSUFDckI7QUFDQSxNQUFFLFlBQVlBLE1BQU0sT0FBTyxPQUFPLE9BQU9BLENBQUMsS0FBSyxFQUFFLFlBQVlBLEVBQUUsV0FBVyxJQUFJLEVBQUU7QUFBQSxFQUNsRjtBQUNGLEdBQUcsR0FBR2lCO0FBQUE7QUFBQSxHQUVILFNBQVNwRCxHQUFHO0FBQ1gsSUFBQW1ELEdBQUcsR0FBR25ELENBQUM7QUFDUCxhQUFTLEVBQUVtQyxHQUFHLEdBQUc7QUFDZixVQUFJQyxJQUFJcEMsRUFBRSxLQUFLLE1BQU1tQyxHQUFHLENBQUMsS0FBSztBQUM5QixhQUFPQyxFQUFFLE9BQU8sQ0FBQyxHQUFHQTtBQUFBLElBQ3RCO0FBQ0EsV0FBTyxFQUFFLFVBQVUsU0FBUyxTQUFTRCxHQUFHO0FBQ3RDLFVBQUksSUFBSTtBQUNSLE1BQUFBLEdBQUcsbUNBQW1DLE1BQVEsT0FBTyxXQUFXLFFBQVEsS0FBSyw0QkFBNEIsV0FBVztBQUNsSCxpQkFBUyxvQkFBb0IsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVNDLEdBQUc7QUFDeEUsVUFBQXRCLEVBQUdzQixDQUFDO0FBQUEsUUFDTixDQUFDO0FBQUEsTUFDSCxHQUFHLEtBQUssb0JBQW9CLFdBQVc7QUFDckMsVUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTQSxHQUFHO0FBQy9CLFVBQUF0QixFQUFHc0IsQ0FBQztBQUFBLFFBQ04sQ0FBQztBQUFBLE1BQ0gsR0FBRyxTQUFTLGlCQUFpQixvQkFBb0IsS0FBSyx5QkFBeUIsR0FBRyxTQUFTLGlCQUFpQixZQUFZLEtBQUssaUJBQWlCO0FBQUEsSUFDaEosR0FBRyxFQUFFLFVBQVUsYUFBYSxXQUFXO0FBQ3JDLGFBQU8sV0FBVyxRQUFRLEtBQUssNkJBQTZCLFNBQVMsb0JBQW9CLG9CQUFvQixLQUFLLHlCQUF5QixHQUFHLEtBQUsscUJBQXFCLFNBQVMsb0JBQW9CLFlBQVksS0FBSyxpQkFBaUI7QUFBQSxJQUN6TyxHQUFHO0FBQUEsRUFDTCxHQUFHLEVBQUU7QUFBQSxHQUNKLEtBQUssR0FBRyxLQUFLLElBQUlpQjtBQUFBO0FBQUEsRUFFRCw0QkFBVztBQUMxQixhQUFTckQsSUFBSTtBQUNYLFdBQUssa0JBQWtCc0QsRUFBRSxFQUFFLEdBQUcsS0FBSyxpQkFBaUJBLEVBQUUsRUFBRTtBQUFBLElBQzFEO0FBQ0EsV0FBT3REO0FBQUEsRUFDVCxHQUFHO0FBQUEsR0FDRnVELElBQUksTUFBTSxFQUFFO0FBQ2YsU0FBU0QsRUFBRXRELEdBQUc7QUFDWixTQUFPLFdBQVc7QUFDaEIsYUFBU21DLElBQUksR0FBR0EsSUFBSW5DLElBQUksR0FBR21DO0FBQ3pCLE1BQUFvQixFQUFFcEIsQ0FBQyxJQUFJLEtBQUssTUFBTSxLQUFLLE9BQU8sSUFBSSxFQUFFLElBQUksSUFBSW9CLEVBQUVwQixDQUFDLEtBQUssT0FBT29CLEVBQUVwQixDQUFDLEtBQUs7QUFDckUsV0FBTyxPQUFPLGFBQWEsTUFBTSxNQUFNb0IsRUFBRSxNQUFNLEdBQUd2RCxJQUFJLENBQUMsQ0FBQztBQUFBLEVBQzFEO0FBQ0Y7QUFDQSxJQUFJO0FBQUE7QUFBQSxHQUVELFdBQVc7QUFDVixhQUFTeUMsRUFBSSxHQUFHTixHQUFHLEdBQUc7QUFDcEIsV0FBSyxrQkFBa0I7QUFDdkIsVUFBSUMsSUFBSSxHQUFHRCxDQUFDO0FBQ1osV0FBSyxXQUFXQyxFQUFFLFNBQVMsS0FBSyxpQkFBaUJBLEVBQUUsZUFBZSxLQUFLLGNBQWNBLEVBQUUsWUFBWSxLQUFLLGVBQWVELEVBQUUsZUFBZSxJQUFJa0IsR0FBRyxHQUFHLEtBQUssV0FBVyxFQUFFLFVBQVUsS0FBSyx5QkFBeUI7QUFBQSxJQUM5TTtBQUNBLFdBQU9aLEVBQUksVUFBVSxZQUFZLFNBQVMsR0FBR04sR0FBRyxHQUFHO0FBQ2pELFVBQUlDLEdBQUdFLEdBQUdOO0FBQ1YsTUFBQUcsTUFBTSxXQUFXQSxJQUFJLENBQUMsSUFBSSxNQUFNLFdBQVcsSUFBSXpDLEVBQUcsT0FBTyxJQUFJeUMsRUFBRSxTQUFTLElBQUkxQyxFQUFHLFdBQVcsQ0FBQztBQUMzRixVQUFJOEMsSUFBSTlDLEVBQUcsUUFBUSxDQUFDO0FBQ3BCLFVBQUlxQyxHQUFJLENBQUMsR0FBRztBQUNWLFFBQUE5QixFQUFFLE1BQU0saURBQWlEO0FBQ3pELFlBQUl3RCxJQUFNL0QsRUFBRyxnQkFBZ0JFLEVBQUU7QUFDL0IsZUFBTzZEO0FBQUEsTUFDVDtBQUNBLFVBQUksSUFBSWpCLEdBQUcsWUFBWSxHQUFHLElBQUksS0FBSyxhQUFhLGVBQWUsR0FBR0csR0FBR1EsR0FBRztBQUN4RSxPQUFDLEtBQUssQ0FBQ3pELEVBQUcsbUJBQW1CLENBQUMsSUFBSWlELElBQUksS0FBSyxhQUFhLGdCQUFnQixLQUFLQSxJQUFJLEVBQUUsU0FBU1EsSUFBSSxFQUFFLFlBQVksSUFBSSxFQUFFO0FBQ3BILFVBQUksS0FBS2QsSUFBSUQsRUFBRSxVQUFVLFFBQVFDLE1BQU0sU0FBU0EsSUFBSXhDLEdBQUcsVUFBVSxNQUFNMEMsSUFBSUgsRUFBRSxXQUFXLFFBQVFHLE1BQU0sU0FBU0EsSUFBSSxDQUFDLEdBQUcsSUFBSSxTQUFTbUIsR0FBRztBQUNySSxlQUFPO0FBQUEsVUFDTCxTQUFTQSxFQUFFO0FBQUEsVUFDWCxZQUFZbkMsRUFBR21DLEVBQUUsVUFBVTtBQUFBLFFBQzdCO0FBQUEsTUFDRixDQUFDLEdBQUdDLElBQUlwQyxFQUFHYSxFQUFFLFVBQVUsR0FBR3dCLElBQUksS0FBSyxTQUFTLGFBQWEsR0FBR2pCLEdBQUcsR0FBRyxHQUFHZ0IsR0FBRyxDQUFDO0FBQ3pFLE1BQUFSLEtBQUtsQixJQUFJMkIsRUFBRSxnQkFBZ0IsUUFBUTNCLE1BQU0sU0FBU0EsSUFBSWtCO0FBQ3RELFVBQUksS0FBS1MsRUFBRSxhQUFhcEMsRUFBRSxxQkFBcUIvQixFQUFHLFVBQVVBLEVBQUcsTUFBTSxJQUFJLEVBQUUsU0FBU2tELEdBQUcsUUFBUSxHQUFHLFlBQVksSUFBSSxZQUFZUSxFQUFFO0FBQ2hJLFVBQUlTLEVBQUUsYUFBYXBDLEVBQUUsWUFBWTtBQUMvQixRQUFBdkIsRUFBRSxNQUFNLCtEQUErRDtBQUN2RSxZQUFJd0QsSUFBTS9ELEVBQUcsZ0JBQWdCLENBQUM7QUFDOUIsZUFBTytEO0FBQUEsTUFDVDtBQUNBLFVBQUksS0FBS2xDLEVBQUcsT0FBTyxPQUFPb0MsR0FBR0MsRUFBRSxVQUFVLENBQUMsR0FBRyxLQUFLLElBQUluQixHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUdMLEVBQUUsV0FBVyxRQUFRLEVBQUU7QUFDeEcsYUFBTztBQUFBLElBQ1QsR0FBR00sRUFBSSxVQUFVLGtCQUFrQixTQUFTLEdBQUdOLEdBQUcsR0FBR0MsR0FBRztBQUN0RCxVQUFJRSxHQUFHTixHQUFHTztBQUNWLFVBQUksRUFBRSxVQUFVLFNBQVMsSUFBSTtBQUMzQixrQkFBVSxXQUFXLElBQUlBLElBQUlKLElBQUksVUFBVSxXQUFXLEtBQUtHLElBQUlILEdBQUdJLElBQUksTUFBTUQsSUFBSUgsR0FBR0gsSUFBSSxHQUFHTyxJQUFJSDtBQUM5RixZQUFJYixJQUFJUyxLQUFLdEMsRUFBRyxPQUFPLEdBQUcsSUFBSSxLQUFLLFVBQVUsR0FBRzRDLEdBQUdmLENBQUMsR0FBRyxJQUFJOUIsRUFBRyxRQUFROEIsR0FBRyxDQUFDO0FBQzFFLGVBQU83QixFQUFHLEtBQUssR0FBRzZDLEdBQUcsUUFBUSxDQUFDO0FBQUEsTUFDaEM7QUFBQSxJQUNGLEdBQUdFLEVBQUksVUFBVSxtQkFBbUIsV0FBVztBQUM3QyxhQUFPLEtBQUs7QUFBQSxJQUNkLEdBQUdBLEVBQUksVUFBVSxnQkFBZ0IsV0FBVztBQUMxQyxhQUFPLEtBQUs7QUFBQSxJQUNkLEdBQUdBLEVBQUksVUFBVSx5QkFBeUIsV0FBVztBQUNuRCxhQUFPLEtBQUssZ0JBQWdCLHVCQUF1QjtBQUFBLElBQ3JELEdBQUdBO0FBQUEsRUFDTCxHQUFHO0FBQUEsR0FDRixJQUFJLFNBQVN6QyxHQUFHO0FBQ2pCLE1BQUksSUFBSSxPQUFPLFVBQVUsY0FBYyxPQUFPLFVBQVVtQyxJQUFJLEtBQUtuQyxFQUFFLENBQUMsR0FBRyxJQUFJO0FBQzNFLE1BQUltQyxFQUFHLFFBQU9BLEVBQUUsS0FBS25DLENBQUM7QUFDdEIsTUFBSUEsS0FBSyxPQUFPQSxFQUFFLFVBQVUsU0FBVSxRQUFPO0FBQUEsSUFDM0MsTUFBTSxXQUFXO0FBQ2YsYUFBT0EsS0FBSyxLQUFLQSxFQUFFLFdBQVdBLElBQUksU0FBUyxFQUFFLE9BQU9BLEtBQUtBLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQ0EsRUFBRTtBQUFBLElBQzVFO0FBQUEsRUFDRjtBQUNBLFFBQU0sSUFBSSxVQUFVLElBQUksNEJBQTRCLGlDQUFpQztBQUN2RixHQUFHNEQ7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVM1RCxFQUFFLEdBQUc7QUFDWixXQUFLLGtCQUFrQjtBQUFBLElBQ3pCO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLGFBQWEsV0FBVztBQUN6QyxVQUFJLEdBQUdtQyxHQUFHLElBQUksQ0FBQztBQUNmLFVBQUk7QUFDRixpQkFBU0MsSUFBSSxFQUFFLEtBQUssZUFBZSxHQUFHRSxJQUFJRixFQUFFLEtBQUssR0FBRyxDQUFDRSxFQUFFLE1BQU1BLElBQUlGLEVBQUUsS0FBSyxHQUFHO0FBQ3pFLGNBQUlKLElBQUlNLEVBQUU7QUFDVixZQUFFLEtBQUtOLEVBQUUsV0FBVyxDQUFDO0FBQUEsUUFDdkI7QUFBQSxNQUNGLFNBQVNPLEdBQUc7QUFDVixZQUFJLEVBQUUsT0FBT0EsRUFBRTtBQUFBLE1BQ2pCLFVBQUU7QUFDQSxZQUFJO0FBQ0YsVUFBQUQsS0FBSyxDQUFDQSxFQUFFLFNBQVNILElBQUlDLEVBQUUsV0FBV0QsRUFBRSxLQUFLQyxDQUFDO0FBQUEsUUFDNUMsVUFBRTtBQUNBLGNBQUksRUFBRyxPQUFNLEVBQUU7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFDQSxhQUFPLElBQUksUUFBUSxTQUFTRyxHQUFHO0FBQzdCLGdCQUFRLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVztBQUM3QixVQUFBQSxFQUFFO0FBQUEsUUFDSixDQUFDLEVBQUUsTUFBTSxTQUFTaEIsR0FBRztBQUNuQixVQUFBVCxFQUFHUyxLQUFLLElBQUksTUFBTSx1Q0FBdUMsQ0FBQyxHQUFHZ0IsRUFBRTtBQUFBLFFBQ2pFLENBQUM7QUFBQSxNQUNILENBQUM7QUFBQSxJQUNILEdBQUd2QyxFQUFFLFVBQVUsVUFBVSxTQUFTLEdBQUdtQyxHQUFHO0FBQ3RDLFVBQUksR0FBR0M7QUFDUCxVQUFJO0FBQ0YsaUJBQVNFLElBQUksRUFBRSxLQUFLLGVBQWUsR0FBR04sSUFBSU0sRUFBRSxLQUFLLEdBQUcsQ0FBQ04sRUFBRSxNQUFNQSxJQUFJTSxFQUFFLEtBQUssR0FBRztBQUN6RSxjQUFJQyxJQUFJUCxFQUFFO0FBQ1YsVUFBQU8sRUFBRSxRQUFRLEdBQUdKLENBQUM7QUFBQSxRQUNoQjtBQUFBLE1BQ0YsU0FBU1osR0FBRztBQUNWLFlBQUksRUFBRSxPQUFPQSxFQUFFO0FBQUEsTUFDakIsVUFBRTtBQUNBLFlBQUk7QUFDRixVQUFBUyxLQUFLLENBQUNBLEVBQUUsU0FBU0ksSUFBSUUsRUFBRSxXQUFXRixFQUFFLEtBQUtFLENBQUM7QUFBQSxRQUM1QyxVQUFFO0FBQ0EsY0FBSSxFQUFHLE9BQU0sRUFBRTtBQUFBLFFBQ2pCO0FBQUEsTUFDRjtBQUFBLElBQ0YsR0FBR3RDLEVBQUUsVUFBVSxRQUFRLFNBQVMsR0FBRztBQUNqQyxVQUFJbUMsR0FBRztBQUNQLFVBQUk7QUFDRixpQkFBU0MsSUFBSSxFQUFFLEtBQUssZUFBZSxHQUFHRSxJQUFJRixFQUFFLEtBQUssR0FBRyxDQUFDRSxFQUFFLE1BQU1BLElBQUlGLEVBQUUsS0FBSyxHQUFHO0FBQ3pFLGNBQUlKLElBQUlNLEVBQUU7QUFDVixVQUFBTixFQUFFLE1BQU0sQ0FBQztBQUFBLFFBQ1g7QUFBQSxNQUNGLFNBQVNPLEdBQUc7QUFDVixRQUFBSixJQUFJLEVBQUUsT0FBT0ksRUFBRTtBQUFBLE1BQ2pCLFVBQUU7QUFDQSxZQUFJO0FBQ0YsVUFBQUQsS0FBSyxDQUFDQSxFQUFFLFNBQVMsSUFBSUYsRUFBRSxXQUFXLEVBQUUsS0FBS0EsQ0FBQztBQUFBLFFBQzVDLFVBQUU7QUFDQSxjQUFJRCxFQUFHLE9BQU1BLEVBQUU7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGLEdBQUduQyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLFVBQUksR0FBR21DLEdBQUcsSUFBSSxDQUFDO0FBQ2YsVUFBSTtBQUNGLGlCQUFTQyxJQUFJLEVBQUUsS0FBSyxlQUFlLEdBQUdFLElBQUlGLEVBQUUsS0FBSyxHQUFHLENBQUNFLEVBQUUsTUFBTUEsSUFBSUYsRUFBRSxLQUFLLEdBQUc7QUFDekUsY0FBSUosSUFBSU0sRUFBRTtBQUNWLFlBQUUsS0FBS04sRUFBRSxTQUFTLENBQUM7QUFBQSxRQUNyQjtBQUFBLE1BQ0YsU0FBU08sR0FBRztBQUNWLFlBQUksRUFBRSxPQUFPQSxFQUFFO0FBQUEsTUFDakIsVUFBRTtBQUNBLFlBQUk7QUFDRixVQUFBRCxLQUFLLENBQUNBLEVBQUUsU0FBU0gsSUFBSUMsRUFBRSxXQUFXRCxFQUFFLEtBQUtDLENBQUM7QUFBQSxRQUM1QyxVQUFFO0FBQ0EsY0FBSSxFQUFHLE9BQU0sRUFBRTtBQUFBLFFBQ2pCO0FBQUEsTUFDRjtBQUNBLGFBQU8sSUFBSSxRQUFRLFNBQVNHLEdBQUdoQixHQUFHO0FBQ2hDLGdCQUFRLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVztBQUM3QixVQUFBZ0IsRUFBRTtBQUFBLFFBQ0osR0FBR2hCLENBQUM7QUFBQSxNQUNOLENBQUM7QUFBQSxJQUNILEdBQUd2QjtBQUFBLEVBQ0wsR0FBRztBQUFBLEdBQ0Y2RDtBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBUzdELElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBT0EsRUFBRSxVQUFVLFVBQVUsU0FBUyxHQUFHbUMsR0FBRztBQUFBLElBQzVDLEdBQUduQyxFQUFFLFVBQVUsUUFBUSxTQUFTLEdBQUc7QUFBQSxJQUNuQyxHQUFHQSxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sUUFBUSxRQUFRO0FBQUEsSUFDekIsR0FBR0EsRUFBRSxVQUFVLGFBQWEsV0FBVztBQUNyQyxhQUFPLFFBQVEsUUFBUTtBQUFBLElBQ3pCLEdBQUdBO0FBQUEsRUFDTCxHQUFHO0FBQUEsR0FDRjhELEtBQUssU0FBUzlELEdBQUcsR0FBRztBQUNyQixNQUFJbUMsSUFBSSxPQUFPLFVBQVUsY0FBY25DLEVBQUUsT0FBTyxRQUFRO0FBQ3hELE1BQUksQ0FBQ21DLEVBQUcsUUFBT25DO0FBQ2YsTUFBSSxJQUFJbUMsRUFBRSxLQUFLbkMsQ0FBQyxHQUFHb0MsR0FBR0UsSUFBSSxDQUFDLEdBQUdOO0FBQzlCLE1BQUk7QUFDRixZQUFRLE1BQU0sVUFBVSxNQUFNLE1BQU0sRUFBRUksSUFBSSxFQUFFLEtBQUssR0FBRyxPQUFRLENBQUFFLEVBQUUsS0FBS0YsRUFBRSxLQUFLO0FBQUEsRUFDNUUsU0FBU0csR0FBRztBQUNWLElBQUFQLElBQUksRUFBRSxPQUFPTyxFQUFFO0FBQUEsRUFDakIsVUFBRTtBQUNBLFFBQUk7QUFDRixNQUFBSCxLQUFLLENBQUNBLEVBQUUsU0FBU0QsSUFBSSxFQUFFLFdBQVdBLEVBQUUsS0FBSyxDQUFDO0FBQUEsSUFDNUMsVUFBRTtBQUNBLFVBQUlILEVBQUcsT0FBTUEsRUFBRTtBQUFBLElBQ2pCO0FBQUEsRUFDRjtBQUNBLFNBQU9NO0FBQ1QsR0FBRyxLQUFLLFNBQVN0QyxHQUFHLEdBQUdtQyxHQUFHO0FBQ3hCLE1BQUksVUFBVSxXQUFXLEVBQUcsVUFBUyxJQUFJLEdBQUdDLElBQUksRUFBRSxRQUFRRSxHQUFHLElBQUlGLEdBQUc7QUFDbEUsS0FBQ0UsS0FBSyxFQUFFLEtBQUssUUFBUUEsTUFBTUEsSUFBSSxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUlBLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNqRixTQUFPdEMsRUFBRSxPQUFPc0MsS0FBSyxNQUFNLFVBQVUsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUNwRCxHQUFHO0FBQUEsQ0FDRixTQUFTdEMsR0FBRztBQUNYLEVBQUFBLEVBQUVBLEVBQUUsV0FBVyxDQUFDLElBQUksWUFBWUEsRUFBRUEsRUFBRSxVQUFVLENBQUMsSUFBSSxXQUFXQSxFQUFFQSxFQUFFLFFBQVEsQ0FBQyxJQUFJLFNBQVNBLEVBQUVBLEVBQUUsYUFBYSxDQUFDLElBQUk7QUFDaEgsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUk7QUFBQTtBQUFBLEdBRUQsV0FBVztBQUNWLGFBQVN5QyxFQUFJLEdBQUc7QUFDZCxZQUFNLFdBQVcsSUFBSSxDQUFDO0FBQ3RCLFVBQUlOLEdBQUc7QUFDUCxXQUFLLDRCQUE0QixDQUFDLEdBQUcsS0FBSyxXQUEyQixvQkFBSSxJQUFJO0FBQzdFLFVBQUlDLElBQUlmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUN6QixVQUFJLEtBQUssWUFBWWMsSUFBSUMsRUFBRSxjQUFjLFFBQVFELE1BQU0sU0FBU0EsSUFBSUosRUFBSSxNQUFNLEdBQUdLLEVBQUUsOEJBQThCLEtBQUssV0FBV0wsRUFBSSxRQUFRLEVBQUUsTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLFVBQVUsT0FBTyxPQUFPLENBQUMsR0FBR0ssR0FBRztBQUFBLFFBQ3hNLFVBQVUsS0FBSztBQUFBLE1BQ2pCLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxvQkFBb0IsUUFBUSxNQUFNLFdBQVcsRUFBRTtBQUMxRCxhQUFLLDRCQUE0QixHQUFHLENBQUMsR0FBRzBCLEdBQUcsRUFBRSxjQUFjLEdBQUcsRUFBSyxHQUFHLEtBQUssc0JBQXNCLElBQUlGLEVBQUUsS0FBSyx5QkFBeUI7QUFBQSxXQUNsSTtBQUNILFlBQUl0QixJQUFJLEtBQUssc0JBQXNCO0FBQ25DLFlBQUlBLE1BQU0sUUFBUTtBQUNoQixjQUFJTixJQUFJLElBQUlvQixHQUFHZCxDQUFDO0FBQ2hCLGVBQUssc0JBQXNCTjtBQUFBLFFBQzdCO0FBQ0UsZUFBSyxzQkFBc0IsSUFBSTZCLEdBQUc7QUFBQSxNQUN0QztBQUFBLElBQ0Y7QUFDQSxXQUFPcEIsRUFBSSxVQUFVLFlBQVksU0FBUyxHQUFHTixHQUFHLEdBQUc7QUFDakQsVUFBSUMsSUFBSSxJQUFJLE9BQU9ELEtBQUssTUFBTSxPQUFPLEdBQUcsYUFBYTtBQUNyRCxhQUFPLEtBQUssU0FBUyxJQUFJQyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUlBLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVNELEdBQUcsV0FBVyxHQUFHLFVBQVUsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUlDLENBQUM7QUFBQSxJQUN4SixHQUFHSyxFQUFJLFVBQVUsbUJBQW1CLFNBQVMsR0FBRztBQUM5QyxXQUFLLDBCQUEwQixXQUFXLEtBQUssS0FBSyxvQkFBb0IsU0FBUyxFQUFFLE1BQU0sU0FBU04sR0FBRztBQUNuRyxlQUFPbkMsRUFBRSxNQUFNLHlEQUF5RG1DLENBQUM7QUFBQSxNQUMzRSxDQUFDLEdBQUcsS0FBSywwQkFBMEIsS0FBSyxDQUFDLEdBQUcsS0FBSyxzQkFBc0IsSUFBSXlCLEVBQUUsS0FBSyx5QkFBeUI7QUFBQSxJQUM3RyxHQUFHbkIsRUFBSSxVQUFVLHlCQUF5QixXQUFXO0FBQ25ELGFBQU8sS0FBSztBQUFBLElBQ2QsR0FBR0EsRUFBSSxVQUFVLFdBQVcsU0FBUyxHQUFHO0FBQ3RDLFlBQU0sV0FBVyxJQUFJLENBQUMsSUFBSWhELEVBQUcsd0JBQXdCLElBQUksR0FBRyxFQUFFLGVBQWUsV0FBVyxFQUFFLGFBQWEsS0FBSyx3QkFBd0IsSUFBSSxFQUFFLGtCQUFrQkMsRUFBRyx3QkFBd0IsRUFBRSxjQUFjLEdBQUcsRUFBRSxjQUFjUSxHQUFHLG9CQUFvQixFQUFFLFVBQVU7QUFBQSxJQUMvUCxHQUFHdUMsRUFBSSxVQUFVLGFBQWEsV0FBVztBQUN2QyxVQUFJLElBQUksS0FBSyxRQUFRLHlCQUF5Qk4sSUFBSSxLQUFLLDBCQUEwQixJQUFJLFNBQVMsR0FBRztBQUMvRixlQUFPLElBQUksUUFBUSxTQUFTQyxHQUFHO0FBQzdCLGNBQUlFLEdBQUdOLElBQUksV0FBVyxXQUFXO0FBQy9CLFlBQUFJLEVBQUUsSUFBSSxNQUFNLCtEQUErRCxJQUFJLEtBQUssQ0FBQyxHQUFHRSxJQUFJLEVBQUU7QUFBQSxVQUNoRyxHQUFHLENBQUM7QUFDSixZQUFFLFdBQVcsRUFBRSxLQUFLLFdBQVc7QUFDN0IseUJBQWFOLENBQUMsR0FBR00sTUFBTSxFQUFFLFlBQVlBLElBQUksRUFBRSxVQUFVRixFQUFFRSxDQUFDO0FBQUEsVUFDMUQsQ0FBQyxFQUFFLE1BQU0sU0FBU0MsR0FBRztBQUNuQix5QkFBYVAsQ0FBQyxHQUFHTSxJQUFJLEVBQUUsT0FBT0YsRUFBRUcsQ0FBQztBQUFBLFVBQ25DLENBQUM7QUFBQSxRQUNILENBQUM7QUFBQSxNQUNILENBQUM7QUFDRCxhQUFPLElBQUksUUFBUSxTQUFTLEdBQUdILEdBQUc7QUFDaEMsZ0JBQVEsSUFBSUQsQ0FBQyxFQUFFLEtBQUssU0FBU0csR0FBRztBQUM5QixjQUFJTixJQUFJTSxFQUFFLE9BQU8sU0FBU0MsR0FBRztBQUMzQixtQkFBT0EsTUFBTSxFQUFFO0FBQUEsVUFDakIsQ0FBQztBQUNELFVBQUFQLEVBQUUsU0FBUyxJQUFJSSxFQUFFSixDQUFDLElBQUksRUFBRTtBQUFBLFFBQzFCLENBQUMsRUFBRSxNQUFNLFNBQVNNLEdBQUc7QUFDbkIsaUJBQU9GLEVBQUUsQ0FBQ0UsQ0FBQyxDQUFDO0FBQUEsUUFDZCxDQUFDO0FBQUEsTUFDSCxDQUFDO0FBQUEsSUFDSCxHQUFHRyxFQUFJLFVBQVUsV0FBVyxXQUFXO0FBQ3JDLGFBQU8sS0FBSyxvQkFBb0IsU0FBUztBQUFBLElBQzNDLEdBQUdBLEVBQUksVUFBVSxpQkFBaUIsU0FBUyxHQUFHO0FBQzVDLFVBQUlOO0FBQ0osY0FBUUEsSUFBSSxLQUFLLFlBQVksdUJBQXVCLElBQUksQ0FBQyxPQUFPLFFBQVFBLE1BQU0sU0FBUyxTQUFTQSxFQUFFO0FBQUEsSUFDcEcsR0FBR00sRUFBSSxVQUFVLG1CQUFtQixTQUFTLEdBQUc7QUFDOUMsVUFBSU47QUFDSixjQUFRQSxJQUFJLEtBQUssWUFBWSxxQkFBcUIsSUFBSSxDQUFDLE9BQU8sUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUU7QUFBQSxJQUNsRyxHQUFHTSxFQUFJLFVBQVUsMEJBQTBCLFdBQVc7QUFDcEQsVUFBSSxJQUFJLE1BQU1OLElBQUksTUFBTSxLQUFLLElBQUksSUFBSXBCLEVBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLElBQUlvQixFQUFFLElBQUksU0FBU0csR0FBRztBQUNsRixZQUFJTixJQUFJLEVBQUUsZUFBZU0sQ0FBQztBQUMxQixlQUFPTixLQUFLaEMsRUFBRSxLQUFLLGlCQUFpQnNDLElBQUksMERBQTBELEdBQUdOO0FBQUEsTUFDdkcsQ0FBQyxHQUFHSSxJQUFJLEVBQUUsT0FBTyxTQUFTRSxHQUFHTixHQUFHO0FBQzlCLGVBQU9BLEtBQUtNLEVBQUUsS0FBS04sQ0FBQyxHQUFHTTtBQUFBLE1BQ3pCLEdBQUcsQ0FBQyxDQUFDO0FBQ0wsVUFBSUYsRUFBRSxXQUFXO0FBQ2YsZUFBT0QsRUFBRSxXQUFXLElBQUlDLEVBQUUsQ0FBQyxJQUFJLElBQUlwQixHQUFHO0FBQUEsVUFDcEMsYUFBYW9CO0FBQUEsUUFDZixDQUFDO0FBQUEsSUFDTCxHQUFHSyxFQUFJLFVBQVUsd0JBQXdCLFdBQVc7QUFDbEQsVUFBSSxJQUFJMUIsRUFBRyxFQUFFO0FBQ2IsVUFBSSxFQUFFLE1BQU0sVUFBVSxNQUFNLEtBQUs7QUFDL0IsWUFBSW9CLElBQUksS0FBSyxpQkFBaUIsQ0FBQztBQUMvQixlQUFPQSxLQUFLbkMsRUFBRSxNQUFNLGVBQWUsSUFBSSwwREFBMEQsR0FBR21DO0FBQUEsTUFDdEc7QUFBQSxJQUNGLEdBQUdNLEVBQUkseUJBQXlDLG9CQUFJLElBQUk7QUFBQSxNQUN0RCxDQUFDLGdCQUFnQixXQUFXO0FBQzFCLGVBQU8sSUFBSXhCLEdBQUc7QUFBQSxNQUNoQixDQUFDO0FBQUEsTUFDRCxDQUFDLFdBQVcsV0FBVztBQUNyQixlQUFPLElBQUlDLEdBQUc7QUFBQSxNQUNoQixDQUFDO0FBQUEsSUFDSCxDQUFDLEdBQUd1QixFQUFJLHVCQUF1QyxvQkFBSSxJQUFJLEdBQUdBO0FBQUEsRUFDNUQsR0FBRztBQUFBLEdBQ0YsS0FBSyxTQUFTekMsR0FBRztBQUNsQixNQUFJLElBQUksT0FBTyxVQUFVLGNBQWMsT0FBTyxVQUFVbUMsSUFBSSxLQUFLbkMsRUFBRSxDQUFDLEdBQUcsSUFBSTtBQUMzRSxNQUFJbUMsRUFBRyxRQUFPQSxFQUFFLEtBQUtuQyxDQUFDO0FBQ3RCLE1BQUlBLEtBQUssT0FBT0EsRUFBRSxVQUFVLFNBQVUsUUFBTztBQUFBLElBQzNDLE1BQU0sV0FBVztBQUNmLGFBQU9BLEtBQUssS0FBS0EsRUFBRSxXQUFXQSxJQUFJLFNBQVMsRUFBRSxPQUFPQSxLQUFLQSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUNBLEVBQUU7QUFBQSxJQUM1RTtBQUFBLEVBQ0Y7QUFDQSxRQUFNLElBQUksVUFBVSxJQUFJLDRCQUE0QixpQ0FBaUM7QUFDdkYsR0FBRztBQUFBO0FBQUEsR0FFQSxXQUFXO0FBQ1YsYUFBU0EsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPQSxFQUFFLFVBQVUsU0FBUyxTQUFTLEdBQUdtQyxHQUFHO0FBQ3pDLGFBQU8sS0FBSyxXQUFXLEdBQUdBLENBQUM7QUFBQSxJQUM3QixHQUFHbkMsRUFBRSxVQUFVLFdBQVcsV0FBVztBQUNuQyxhQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVc7QUFBQSxJQUM5QyxHQUFHQSxFQUFFLFVBQVUsYUFBYSxXQUFXO0FBQ3JDLGFBQU8sUUFBUSxRQUFRO0FBQUEsSUFDekIsR0FBR0EsRUFBRSxVQUFVLGNBQWMsU0FBUyxHQUFHO0FBQ3ZDLFVBQUltQztBQUNKLGFBQU87QUFBQSxRQUNMLFVBQVU7QUFBQSxVQUNSLFlBQVksRUFBRSxTQUFTO0FBQUEsUUFDekI7QUFBQSxRQUNBLHNCQUFzQixFQUFFO0FBQUEsUUFDeEIsU0FBUyxFQUFFLFlBQVksRUFBRTtBQUFBLFFBQ3pCLFVBQVUsRUFBRTtBQUFBLFFBQ1osYUFBYUEsSUFBSSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUUsVUFBVTtBQUFBLFFBQzdGLE1BQU0sRUFBRTtBQUFBLFFBQ1IsSUFBSSxFQUFFLFlBQVksRUFBRTtBQUFBLFFBQ3BCLE1BQU0sRUFBRTtBQUFBLFFBQ1IsV0FBV2xDLEVBQUcsRUFBRSxTQUFTO0FBQUEsUUFDekIsVUFBVUEsRUFBRyxFQUFFLFFBQVE7QUFBQSxRQUN2QixZQUFZLEVBQUU7QUFBQSxRQUNkLFFBQVEsRUFBRTtBQUFBLFFBQ1YsUUFBUSxFQUFFO0FBQUEsUUFDVixPQUFPLEVBQUU7QUFBQSxNQUNYO0FBQUEsSUFDRixHQUFHRCxFQUFFLFVBQVUsYUFBYSxTQUFTLEdBQUdtQyxHQUFHO0FBQ3pDLFVBQUksR0FBR0M7QUFDUCxVQUFJO0FBQ0YsaUJBQVNFLElBQUksR0FBRyxDQUFDLEdBQUdSLElBQU1RLEVBQUUsS0FBSyxHQUFHLENBQUNSLEVBQUksTUFBTUEsSUFBTVEsRUFBRSxLQUFLLEdBQUc7QUFDN0QsY0FBSUMsSUFBSVQsRUFBSTtBQUNaLGtCQUFRLElBQUksS0FBSyxZQUFZUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUFBLFFBQy9DO0FBQUEsTUFDRixTQUFTaEIsR0FBRztBQUNWLFlBQUksRUFBRSxPQUFPQSxFQUFFO0FBQUEsTUFDakIsVUFBRTtBQUNBLFlBQUk7QUFDRixVQUFBTyxLQUFPLENBQUNBLEVBQUksU0FBU00sSUFBSUUsRUFBRSxXQUFXRixFQUFFLEtBQUtFLENBQUM7QUFBQSxRQUNoRCxVQUFFO0FBQ0EsY0FBSSxFQUFHLE9BQU0sRUFBRTtBQUFBLFFBQ2pCO0FBQUEsTUFDRjtBQUNBLFVBQUlIO0FBQ0YsZUFBT0EsRUFBRSxFQUFFLE1BQU1ILEVBQUUsUUFBUSxDQUFDO0FBQUEsSUFDaEMsR0FBR2hDO0FBQUEsRUFDTCxHQUFHO0FBQUEsR0FDRixLQUFLLFNBQVNBLEdBQUcsR0FBR21DLEdBQUcsR0FBRztBQUMzQixXQUFTQyxFQUFFRSxHQUFHO0FBQ1osV0FBT0EsYUFBYUgsSUFBSUcsSUFBSSxJQUFJSCxFQUFFLFNBQVNILEdBQUc7QUFDNUMsTUFBQUEsRUFBRU0sQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFDQSxTQUFPLEtBQUtILE1BQU1BLElBQUksVUFBVSxTQUFTRyxHQUFHTixHQUFHO0FBQzdDLGFBQVNPLEVBQUUsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFBQSxNQUNiLFNBQVNHLEdBQUc7QUFDVixRQUFBVixFQUFFVSxDQUFDO0FBQUEsTUFDTDtBQUFBLElBQ0Y7QUFDQSxhQUFTbkIsRUFBRSxHQUFHO0FBQ1osVUFBSTtBQUNGLFVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUFBLE1BQ2QsU0FBU21CLEdBQUc7QUFDVixRQUFBVixFQUFFVSxDQUFDO0FBQUEsTUFDTDtBQUFBLElBQ0Y7QUFDQSxhQUFTLEVBQUUsR0FBRztBQUNaLFFBQUUsT0FBT0osRUFBRSxFQUFFLEtBQUssSUFBSUYsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLRyxHQUFHaEIsQ0FBQztBQUFBLElBQzVDO0FBQ0EsT0FBRyxJQUFJLEVBQUUsTUFBTXZCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDL0IsQ0FBQztBQUNILEdBQUcsS0FBSyxTQUFTQSxHQUFHLEdBQUc7QUFDckIsTUFBSW1DLElBQUksRUFBRSxPQUFPLEdBQUcsTUFBTSxXQUFXO0FBQ25DLFFBQUlHLEVBQUUsQ0FBQyxJQUFJLEVBQUcsT0FBTUEsRUFBRSxDQUFDO0FBQ3ZCLFdBQU9BLEVBQUUsQ0FBQztBQUFBLEVBQ1osR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLEdBQUdGLEdBQUdFLEdBQUdOO0FBQ2pDLFNBQU9BLElBQUksRUFBRSxNQUFNTyxFQUFFLENBQUMsR0FBRyxPQUFPQSxFQUFFLENBQUMsR0FBRyxRQUFRQSxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sVUFBVSxlQUFlUCxFQUFFLE9BQU8sUUFBUSxJQUFJLFdBQVc7QUFDcEgsV0FBTztBQUFBLEVBQ1QsSUFBSUE7QUFDSixXQUFTTyxFQUFFLEdBQUc7QUFDWixXQUFPLFNBQVMsR0FBRztBQUNqQixhQUFPaEIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBQ0EsV0FBU0EsRUFBRSxHQUFHO0FBQ1osUUFBSSxFQUFHLE9BQU0sSUFBSSxVQUFVLGlDQUFpQztBQUM1RCxXQUFPWSxJQUFLLEtBQUk7QUFDZCxVQUFJLElBQUksR0FBR0MsTUFBTUUsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJRixFQUFFLFNBQVMsRUFBRSxDQUFDLElBQUlBLEVBQUUsV0FBV0UsSUFBSUYsRUFBRSxXQUFXRSxFQUFFLEtBQUtGLENBQUMsR0FBRyxLQUFLQSxFQUFFLFNBQVMsRUFBRUUsSUFBSUEsRUFBRSxLQUFLRixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBTSxRQUFPRTtBQUMvSSxjQUFRRixJQUFJLEdBQUdFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUdBLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHO0FBQUEsUUFDbkQsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILFVBQUFBLElBQUk7QUFDSjtBQUFBLFFBQ0YsS0FBSztBQUNILGlCQUFPSCxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBRztBQUFBLFFBQzVDLEtBQUs7QUFDSCxVQUFBQSxFQUFFLFNBQVNDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDM0I7QUFBQSxRQUNGLEtBQUs7QUFDSCxjQUFJRCxFQUFFLElBQUksSUFBSSxHQUFHQSxFQUFFLEtBQUssSUFBSTtBQUM1QjtBQUFBLFFBQ0Y7QUFDRSxjQUFJRyxJQUFJSCxFQUFFLE1BQU0sRUFBRUcsSUFBSUEsRUFBRSxTQUFTLEtBQUtBLEVBQUVBLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsTUFBTSxJQUFJO0FBQ3BGLFlBQUFILElBQUk7QUFDSjtBQUFBLFVBQ0Y7QUFDQSxjQUFJLEVBQUUsQ0FBQyxNQUFNLE1BQU0sQ0FBQ0csS0FBSyxFQUFFLENBQUMsSUFBSUEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUlBLEVBQUUsQ0FBQyxJQUFJO0FBQ3BELFlBQUFILEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDYjtBQUFBLFVBQ0Y7QUFDQSxjQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUtBLEVBQUUsUUFBUUcsRUFBRSxDQUFDLEdBQUc7QUFDaEMsWUFBQUgsRUFBRSxRQUFRRyxFQUFFLENBQUMsR0FBR0EsSUFBSTtBQUNwQjtBQUFBLFVBQ0Y7QUFDQSxjQUFJQSxLQUFLSCxFQUFFLFFBQVFHLEVBQUUsQ0FBQyxHQUFHO0FBQ3ZCLFlBQUFILEVBQUUsUUFBUUcsRUFBRSxDQUFDLEdBQUdILEVBQUUsSUFBSSxLQUFLLENBQUM7QUFDNUI7QUFBQSxVQUNGO0FBQ0EsVUFBQUcsRUFBRSxDQUFDLEtBQUtILEVBQUUsSUFBSSxJQUFJLEdBQUdBLEVBQUUsS0FBSyxJQUFJO0FBQ2hDO0FBQUEsTUFDSjtBQUNBLFVBQUksRUFBRSxLQUFLbkMsR0FBR21DLENBQUM7QUFBQSxJQUNqQixTQUFTLEdBQUc7QUFDVixVQUFJLENBQUMsR0FBRyxDQUFDLEdBQUdDLElBQUk7QUFBQSxJQUNsQixVQUFFO0FBQ0EsVUFBSUUsSUFBSTtBQUFBLElBQ1Y7QUFDQSxRQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUcsT0FBTSxFQUFFLENBQUM7QUFDdkIsV0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksUUFBUSxNQUFNLEdBQUs7QUFBQSxFQUNuRDtBQUNGLEdBQUc7QUFBQTtBQUFBLEdBRUEsV0FBVztBQUNWLGFBQVN0QyxFQUFFLEdBQUc7QUFDWixXQUFLLFlBQVksR0FBRyxLQUFLLGdCQUFnQixJQUFJbUIsRUFBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUsscUJBQXFDLG9CQUFJLElBQUk7QUFBQSxJQUMzSDtBQUNBLFdBQU9uQixFQUFFLFVBQVUsYUFBYSxXQUFXO0FBQ3pDLGFBQU8sR0FBRyxNQUFNLFFBQVEsUUFBUSxXQUFXO0FBQ3pDLGVBQU8sR0FBRyxNQUFNLFNBQVMsR0FBRztBQUMxQixrQkFBUSxFQUFFLE9BQU87QUFBQSxZQUNmLEtBQUs7QUFDSCxxQkFBTyxDQUFDLEdBQUcsUUFBUSxJQUFJLE1BQU0sS0FBSyxLQUFLLGtCQUFrQixDQUFDLENBQUM7QUFBQSxZQUM3RCxLQUFLO0FBQ0gscUJBQU8sRUFBRSxLQUFLLEdBQUcsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFHLEtBQUssVUFBVSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUFBLFlBQ3ZGLEtBQUs7QUFDSCxnQkFBRSxLQUFLLEdBQUcsRUFBRSxRQUFRO0FBQUEsWUFDdEIsS0FBSztBQUNILHFCQUFPO0FBQUEsZ0JBQ0w7QUFBQTtBQUFBLGNBRUY7QUFBQSxVQUNKO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSCxDQUFDO0FBQUEsSUFDSCxHQUFHQSxFQUFFLFVBQVUsVUFBVSxTQUFTLEdBQUdtQyxHQUFHO0FBQUEsSUFDeEMsR0FBR25DLEVBQUUsVUFBVSxRQUFRLFNBQVMsR0FBRztBQUNqQyxVQUFJbUMsSUFBSSxNQUFNLEdBQUdDO0FBQ2pCLFVBQUksQ0FBQyxLQUFLLGNBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhNUMsRUFBRyxhQUFhLEdBQUc7QUFDbkYsWUFBSThDLElBQUksV0FBVztBQUNqQixpQkFBT1YsR0FBSyxRQUFRTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVNJLEdBQUc7QUFDckQsZ0JBQUloQjtBQUNKLFlBQUFnQixFQUFFLFNBQVNQLEVBQUUsV0FBV2xCLEdBQUlTLElBQUlnQixFQUFFLFdBQVcsUUFBUWhCLE1BQU0sU0FBU0EsSUFBSSxJQUFJLE1BQU0scURBQXFEZ0IsSUFBSSxHQUFHLENBQUM7QUFBQSxVQUNqSixDQUFDLEVBQUUsTUFBTSxTQUFTQSxHQUFHO0FBQ25CLFlBQUF6QixFQUFHeUIsQ0FBQztBQUFBLFVBQ04sQ0FBQztBQUFBLFFBQ0g7QUFDQSxZQUFJLEVBQUUsU0FBUyx3QkFBd0I7QUFDckMsY0FBSVQsS0FBT00sS0FBSyxJQUFJLEVBQUUsVUFBVSw0QkFBNEIsUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxXQUFXO0FBQ3BILG1CQUFPTixLQUFPLFFBQVFLLEVBQUUsbUJBQW1CLE9BQU9MLENBQUcsR0FBR1EsRUFBRTtBQUFBLFVBQzVELEdBQUcsU0FBU0MsR0FBRztBQUNiLG1CQUFPekIsRUFBR3lCLENBQUM7QUFBQSxVQUNiLENBQUM7QUFDRCxVQUFBVCxLQUFPLFFBQVEsS0FBSyxtQkFBbUIsSUFBSUEsQ0FBRztBQUFBLFFBQ2hEO0FBQ0UsVUFBQVEsRUFBRTtBQUFBLE1BQ047QUFBQSxJQUNGLEdBQUd0QyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sS0FBSyxjQUFjLEtBQUs7QUFBQSxJQUNqQyxHQUFHQSxFQUFFLFVBQVUsWUFBWSxXQUFXO0FBQ3BDLGFBQU8sS0FBSyxVQUFVLFNBQVM7QUFBQSxJQUNqQyxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBOyIsCiAgIm5hbWVzIjogWyJtciIsICJ6ZSIsICJHZSIsICJPcyIsICJkdCIsICJrZSIsICJIbiIsICJWcyIsICJyIiwgImplIiwgInlfIiwgInFlIiwgIlhlIiwgIlIkMiIsICJwXyIsICJPJDEiLCAiTl8iLCAiYl8iLCAiTkEiLCAiTUEiLCAicl8iLCAiZUEiLCAiRXIiLCAiT2UiLCAidmUiLCAiVmUiLCAiWnIiLCAiZnQiLCAiU2UiLCAibnQiLCAiUXIiLCAibCIsICJjZSIsICJkIiwgInAiLCAiYXIiLCAiT3QkMSIsICJ1IiwgImEkMSIsICJSJDEiLCAiYSIsICJ3dCIsICJEIiwgImUiLCAibyIsICJDdCIsICJpIiwgInMiLCAieHQiLCAiciQxIiwgImMiLCAiUCIsICJnIiwgIkIiLCAiVyIsICJFIiwgIlkiLCAicCQxIiwgImYiLCAiQnQiLCAiRHQiLCAiR3QiLCAicSIsICJDIiwgImwkMSIsICJqIiwgIkciLCAiYiIsICJLIiwgImp0IiwgImt0Il0KfQo=
|