imm-element-ui 2.4.7 → 2.4.8
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/esm2022/lib/form/form/form.component.mjs +17 -6
- package/esm2022/lib/form/form-type/codemirror.type.mjs +3 -3
- package/esm2022/lib/grid/cell-render/async-link-renderer.mjs +45 -0
- package/esm2022/lib/grid/grid/grid.component.mjs +4 -3
- package/esm2022/lib/grid/mock-data.mjs +4 -2
- package/esm2022/lib/page-form/page-form.component.mjs +3 -3
- package/esm2022/lib/share/utils.mjs +1 -1
- package/fesm2022/imm-element-ui.mjs +65 -12
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/crumb-action/crumb-action.component.d.ts +1 -1
- package/lib/form/form/form.component.d.ts +2 -0
- package/lib/grid/cell-render/async-link-renderer.d.ts +14 -0
- package/lib/grid/grid/grid.component.d.ts +3 -1
- package/lib/grid/mock-data.d.ts +2 -0
- package/package.json +1 -1
|
@@ -556,4 +556,4 @@ export const deepClone = (source, that, cache) => {
|
|
|
556
556
|
return source;
|
|
557
557
|
}
|
|
558
558
|
};
|
|
559
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QztnQkFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDRixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO1NBQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztBQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBwaXBlLCBmb3JrSm9pbiwgZmlyc3RWYWx1ZUZyb20sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgeyBmb3JtVHlwZVRvUHJvcHMgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IE5QIGZyb20gJ251bWJlci1wcmVjaXNpb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyTWF0Y2hNb2RlID0gJ2VuZHNXaXRoJyB8ICdzdGFydHNXaXRoJyB8ICdjb250YWlucycgfCAnZXF1YWxzJyB8ICdub3RFcXVhbHMnIHwgJ2luJyB8ICdsdCcgfCAnbHRlJyB8ICdndCcgfCAnZ3RlJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJNYXRjaE1vZGUgPSAobW9kZTogYW55KTogRmlsdGVyTWF0Y2hNb2RlID0+IHtcclxuXHQvLyDmnKrphY3nva7ml7bkvb/nlKggUHJpbWVORyDpu5jorqQgY29udGFpbnNcclxuXHRpZiAoIW1vZGUpIHtcclxuXHRcdHJldHVybiAnY29udGFpbnMnO1xyXG5cdH1cclxuXHRyZXR1cm4gbW9kZTtcclxufTtcclxuZXhwb3J0IGxldCB0b1Bhc2NhbENhc2UgPSAoc3RyOiBzdHJpbmcpID0+XHJcblx0c3RyXHJcblx0XHQucmVwbGFjZSgvXy9nLCAnICcpIC8vIOS4i+WIkue6v+abv+aNouS4uuepuuagvFxyXG5cdFx0LnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpIC8vIOWwj+mpvOWzsOWIhuWJsuS4uuWNleivjVxyXG5cdFx0LnRvTG93ZXJDYXNlKCkgLy8g6L2s5Li65bCP5YaZXHJcblx0XHQuc3BsaXQoL1xccysvKSAvLyDmjInnqbrmoLzliIblibJcclxuXHRcdC5tYXAoKHdvcmQpID0+ICh3b3JkID8gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSA6ICcnKSlcclxuXHRcdC5qb2luKCcnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVVuaXF1ZUlkID0gKCkgPT4ge1xyXG5cdGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCkudG9TdHJpbmcoMzYpOyAvLyDml7bpl7TmiLPovawzNui/m+WItue8qeefremVv+W6plxyXG5cdGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA0KTsgLy8g6ZqP5py66YOo5YiGXHJcblx0cmV0dXJuIGAke3RpbWVzdGFtcH0ke3JhbmRvbX1gO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNpcmN1bGFySXRlcmF0b3IgPSAoYXJyYXk6IGFueVtdKSA9PiB7XHJcblx0bGV0IGluZGV4ID0gLTE7XHJcblx0cmV0dXJuIHtcclxuXHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0aW5kZXgrKztcclxuXHRcdFx0cmV0dXJuIGFycmF5W2luZGV4ICUgYXJyYXkubGVuZ3RoXTtcclxuXHRcdH0sXHJcblx0XHRwcmV2OiAoKSA9PiB7XHJcblx0XHRcdGluZGV4LS07XHJcblx0XHRcdHJldHVybiBhcnJheVsoKGluZGV4ICUgYXJyYXkubGVuZ3RoKSArIGFycmF5Lmxlbmd0aCkgJSBhcnJheS5sZW5ndGhdO1xyXG5cdFx0fSxcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhcnNlRnVuY3Rpb25zID0gKG9iajogYW55LCBfdGhpczogYW55KTogYW55ID0+IHtcclxuXHRpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIHtcclxuXHRcdC8vIOWwneivleajgOa1i+aYr+WQpuaYr+WHveaVsOWtl+espuS4slxyXG5cdFx0aWYgKChvYmouaW5jbHVkZXMoJz0+JykgfHwgb2JqLmluY2x1ZGVzKCdQcm9taXNlJykpICYmICFpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGNvbnN0IG8gPSBjb21waWxlVHNUb0pzKG9iaik7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCfop6PmnpDlh73mlbA6Jywgb2JqKTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCBzYW5kYm94ID0ge1xyXG5cdFx0XHRcdFx0T2JzZXJ2YWJsZSxcclxuXHRcdFx0XHRcdG9mLFxyXG5cdFx0XHRcdFx0Zm9ya0pvaW4sXHJcblx0XHRcdFx0XHRtYXAsXHJcblx0XHRcdFx0XHRzaGFyZVJlcGxheSxcclxuXHRcdFx0XHRcdHBpcGUsXHJcblx0XHRcdFx0XHRQcm9taXNlLCAvLyDmt7vliqAgUHJvbWlzZSDliLAgc2FuZGJveFxyXG5cdFx0XHRcdFx0YXN5bmM6IHRydWUsIC8vIOagh+iusOaUr+aMgeW8guatpVxyXG5cdFx0XHRcdFx0cmVzb2x2ZTogUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSksXHJcblx0XHRcdFx0XHRyZWplY3Q6IFByb21pc2UucmVqZWN0LmJpbmQoUHJvbWlzZSksXHJcblx0XHRcdFx0XHROUCxcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHQvLyDlpITnkIYgUHJvbWlzZSDmnoTpgKDlh73mlbDnmoTmg4XlhrVcclxuXHRcdFx0XHRpZiAob2JqLmluY2x1ZGVzKCduZXcgUHJvbWlzZScpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0XHQnc2FuZGJveCcsXHJcblx0XHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiAke299O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0YCxcclxuXHRcdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDlpITnkIbmma7pgJrlh73mlbDlkoznrq3lpLTlh73mlbBcclxuXHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0YFxyXG5cdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCR7b30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRgLFxyXG5cdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCflh73mlbDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBvYmopO1xyXG5cdFx0XHRcdHJldHVybiBvYmo7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmIChpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShvYmopO1xyXG5cdFx0XHRyZXR1cm4gcGFyc2VGdW5jdGlvbnMoanNvbiwgX3RoaXMpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG9iajtcclxuXHR9XHJcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG5cdFx0cmV0dXJuIG9iai5tYXAoKGl0ZW06IGFueSkgPT4gcGFyc2VGdW5jdGlvbnMoaXRlbSwgX3RoaXMpKTtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xyXG5cdFx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG5cdFx0XHRpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IHBhcnNlRnVuY3Rpb25zKG9ialtrZXldLCBfdGhpcyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gb2JqO1xyXG59O1xyXG5cclxuLy8g6L6F5Yqp5Ye95pWw77ya5qOA5p+l5piv5ZCm5YyF5ZCrIFByb21pc2Ug5p6E6YCg5Ye95pWwXHJcbmNvbnN0IGNvbnRhaW5zUHJvbWlzZUNvbnN0cnVjdG9yID0gKHN0cjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcblx0cmV0dXJuIC9uZXdcXHMrUHJvbWlzZS8udGVzdChzdHIpO1xyXG59O1xyXG5cclxuLy8g5L+u5pS5IGNvbXBpbGVUc1RvSnMg5Ye95pWw5Lul5pu05aW95Zyw5aSE55CGIFByb21pc2VcclxuZXhwb3J0IGNvbnN0IGNvbXBpbGVUc1RvSnMgPSAodHNDb2RlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWmguaenOaYryBQcm9taXNlIOaehOmAoOWHveaVsO+8jOS4jemcgOimgemineWkluWkhOeQhlxyXG5cdGlmIChjb250YWluc1Byb21pc2VDb25zdHJ1Y3Rvcih0c0NvZGUpKSB7XHJcblx0XHRyZXR1cm4gdHNDb2RlO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgcmVzdWx0ID0gdHMudHJhbnNwaWxlTW9kdWxlKHRzQ29kZSwge1xyXG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XHJcblx0XHRcdG1vZHVsZTogdHMuTW9kdWxlS2luZC5Db21tb25KUyxcclxuXHRcdFx0dGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDE1LFxyXG5cdFx0XHQvLyDlkK/nlKjlvILmraXlh73mlbDmlK/mjIFcclxuXHRcdFx0bGliOiBbJ2VzMjAxNScsICdlczIwMTUucHJvbWlzZScsICdkb20nXSxcclxuXHRcdH0sXHJcblx0fSk7XHJcblx0cmV0dXJuIHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uKHJlc3VsdC5vdXRwdXRUZXh0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uID0gKGZ1bmNTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0Ly8g5YWI5Y676Zmk5YmN5ZCO56m655m9XHJcblx0Y29uc3QgdHJpbW1lZCA9IGZ1bmNTdHIudHJpbSgpO1xyXG5cdC8vIOWPquabv+aNouacgOWQjuS4gOS4quWIhuWPt++8iOWmguaenOWug+S4jeWcqOiKseaLrOWPt+WGhe+8iVxyXG5cdGlmICh0cmltbWVkLmVuZHNXaXRoKCc7JykpIHtcclxuXHRcdHJldHVybiB0cmltbWVkLnNsaWNlKDAsIC0xKTtcclxuXHR9XHJcblx0cmV0dXJuIHRyaW1tZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNKU09OUGFyc2FibGUgPSAoc3RyOiBhbnkpID0+IHtcclxuXHR0cnkge1xyXG5cdFx0SlNPTi5wYXJzZShzdHIpO1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0Ly8gbGV0IHN0cklzT2JqID0gL1xce1tefV0qXFx9fFxcW1teXFxdXSpcXF0vLnRlc3Qoc3RyKVxyXG5cdFx0Ly8gaWYoc3RySXNPYmope1xyXG5cdFx0Ly8gXHRjb25zb2xlLmVycm9yKCdKU09OIOino+aekOWksei0pTonLCBlLCAnXFxu5Y6f5aeL5a2X56ym5LiyOicsIHN0cilcclxuXHRcdC8vIH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn07XHJcblxyXG4vKipcclxuICog5qC55o2u5oyH5a6a55qE6ZSu5pWw57uE6L+H5ruk5a+56LGhXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSDopoHov4fmu6TnmoTljp/lp4vlr7nosaFcclxuICogQHBhcmFtIHtBcnJheX0ga2V5cyAtIOmcgOimgeS/neeVmeeahOmUruaVsOe7hFxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSDov4fmu6TlkI7nmoTmlrDlr7nosaFcclxuICovXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJPYmplY3RCeUtleXMgPSAob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdKSA9PiB7XHJcblx0Ly8g5Y+C5pWw5qCh6aqMXHJcblx0aWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ+esrOS4gOS4quWPguaVsOW/hemhu+aYr+aZrumAmuWvueixoScpO1xyXG5cdH1cclxuXHJcblx0aWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuozkuKrlj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcclxuXHR9XHJcblxyXG5cdC8vIOS9v+eUqHJlZHVjZeWIm+W7uuaWsOWvueixoVxyXG5cdHJldHVybiBrZXlzLnJlZHVjZSgoYWNjOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHQvLyDlj6rmnInlvZPljp/lr7nosaHmnInor6XlsZ7mgKfml7bmiY3mt7vliqDliLDmlrDlr7nosaFcclxuXHRcdGlmIChrZXkgaW4gb2JqKSB7XHJcblx0XHRcdGFjY1trZXldID0gb2JqW2tleV07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIHt9KTtcclxufTtcclxuLyoqXHJcbiAqIOiHquWumuS5ieWHveaVsOWOu+mZpOepuuWtl+espuS4slxyXG4gKiBAcGFyYW0gYWN0XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY29udmVydEFjdCA9IChhY3Q6IGFueSkgPT4ge1xyXG5cdGFjdC5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdidG5IaWRkZW4nKSAmJiB0eXBlb2Ygdi5idG5IaWRkZW4gIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5IaWRkZW47XHJcblx0XHR9XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuRGlzYWJsZWQnKSAmJiB0eXBlb2Ygdi5idG5EaXNhYmxlZCAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2LmJ0bkRpc2FibGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSAmJiB0eXBlb2Ygdi5vbkNsaWNrICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYub25DbGljaztcclxuXHRcdH1cclxuXHR9KTtcclxuXHRyZXR1cm4gYWN0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIGZvcm1wYWdlIOmAmueUqGNvbnRlbnTlh73mlbDovaznp7tcclxuICogQHBhcmFtIGNvbnRlbnRcclxuICogQHBhcmFtIHRoaXNBcmdcclxuICovXHJcbmV4cG9ydCBjb25zdCBjaGFuZ2VDb250ZW50ID0gKGNvbnRlbnQ6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Ly8gQHRzLWlnbm9yZVxyXG5cdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0Y29udGVudCA9IHBhcnNlRnVuY3Rpb25zKGNvbnRlbnQsIHRoaXNBcmcpO1xyXG5cdHRoaXNBcmcucGFnZUNvbnRlbnQgPSBjb250ZW50O1xyXG5cdGxldCB7IGdyaWRMaXN0LCBocmVmQnRuTGlzdCwgZ2V0UHJtLCBncm91cHMsIHN0YXR1c0tleSwgc3RhdHVzLCBzdGF0dXNTdGVwcywgc3RhdHVzQ29uZiA9IG51bGwgfSA9IGNvbnRlbnQ7XHJcblx0aWYgKHN0YXR1c0tleSkge1xyXG5cdFx0dGhpc0FyZy5zdGF0dXNLZXkgPSBzdGF0dXNLZXk7XHJcblx0XHRzdGF0dXNTdGVwcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdFx0aXRlbS5pMThuS2V5ID0gYHRhYmxlcy4ke2dldFBybS5tb2RlbE5hbWV9LiR7c3RhdHVzS2V5fSR7aXRlbS52YWx1ZX1gO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXNBcmcuc3RlcHMgPSBzdGF0dXNTdGVwcztcclxuXHRcdHN0YXR1c0NvbmYgJiYgKHRoaXNBcmcuc3RhdHVzQ29uZiA9IHN0YXR1c0NvbmYpO1xyXG5cdH1cclxuXHJcblx0dGhpc0FyZy5hY3Rpb25zID0gY29udmVydEFjdChjb250ZW50LmFjdGlvbnMpO1xyXG5cdGNvbnRlbnQuZm9ybURpc2FibGVkICYmICh0aGlzQXJnLmZvcm1EaXNhYmxlZCA9IGNvbnRlbnQuZm9ybURpc2FibGVkKTtcclxuXHR0aGlzQXJnLmdldFBybSA9IGdldFBybTtcclxuXHR0aGlzQXJnLmdldFBybS5vcmdGaWVsZCA9IGNvbnRlbnQub3JnRmllbGQgfHwgJyc7XHJcblx0dGhpc0FyZy5ncmlkcyA9IFtdO1xyXG5cdGxldCBmaXRlclByZWxvYWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRjb252ZXJ0Rm9ybSh0aGlzQXJnLCBncm91cHMsIGNvbnRlbnQuc291cmNlRGF0YSk7XHJcblx0Y29udmVydEdyaWQodGhpc0FyZywgZ3JpZExpc3QsIGZpdGVyUHJlbG9hZHMpO1xyXG5cclxuXHR0aGlzQXJnLmZvcm1EZXRhaWwgPSBjb250ZW50LmZvcm1EZXRhaWw7XHJcblx0dGhpc0FyZy5zYXZlRnVuYyA9IGNvbnRlbnQuc2F2ZUZ1bmM7XHJcblx0dGhpc0FyZy5pc0xvZyA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2dldExvZyddID0gY29udGVudC5zb3VyY2VEYXRhLm1vZGVsLmxvZztcclxuXHR0aGlzQXJnLmdldFBybVsnZml0ZXJQcmVsb2FkcyddID0gZml0ZXJQcmVsb2FkcztcclxuXHR0aGlzQXJnLmhyZWZCdG5MaXN0ID0gaHJlZkJ0bkxpc3Q7XHJcblx0dGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgPSBjb250ZW50LnJ1bnRpbWVDb250ZXh0SW5pdDtcclxuXHRleGVjdXRlUnVudGltZUNvbnRleHRJbml0KHRoaXNBcmcpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVSdW50aW1lQ29udGV4dEluaXQgPSAodGhpc0FyZzogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBjb250ZXh0ID0ge1xyXG5cdFx0Y29tcG9uZW50OiB0aGlzQXJnLFxyXG5cdFx0aHR0cDogdGhpc0FyZy5odHRwLFxyXG5cdFx0cm91dGU6IHRoaXNBcmcucm91dGUsXHJcblx0XHRyb3V0ZXI6IHRoaXNBcmcucm91dGVyLFxyXG5cdFx0cnVudGltZUNvbnRleHQ6IHRoaXNBcmcucnVudGltZUNvbnRleHQsXHJcblx0fTtcclxuXHRjb25zdCByZXN1bHQgPSB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdChjb250ZXh0KTtcclxuXHRyZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQodGhpc0FyZywgcmVzdWx0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlc29sdmVSdW50aW1lQ29udGV4dFJlc3VsdCA9IGFzeW5jICh0aGlzQXJnOiBhbnksIHJlc3VsdDogYW55KSA9PiB7XHJcblx0bGV0IHJlc29sdmVkID0gcmVzdWx0O1xyXG5cdGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShyZXN1bHQpO1xyXG5cdH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCByZXN1bHQ7XHJcblx0fVxyXG5cdGlmIChyZXNvbHZlZCAmJiB0eXBlb2YgcmVzb2x2ZWQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc29sdmVkKSkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHQuLi5yZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge1xyXG5cdFx0XHQuLi4odGhpc0FyZy5ydW50aW1lQ29udGV4dCB8fCB7fSksXHJcblx0XHRcdHZhbHVlOiByZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7fTtcclxuXHR9XHJcblx0dGhpc0FyZy5jZHI/Lm1hcmtGb3JDaGVjaz8uKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY1Jvd1NwYW4gPSAocGFyYW1zOiBhbnksIGZpZWxkPzogc3RyaW5nKSA9PiB7XHJcblx0ZmllbGQgPSBmaWVsZCB8fCBwYXJhbXMuY29sRGVmLmZpZWxkO1xyXG5cdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHBhcmFtcy5kYXRhW2ZpZWxkIV07XHJcblx0Y29uc3QgY3VycmVudFJvd0luZGV4ID0gcGFyYW1zLm5vZGUucm93SW5kZXg7XHJcblxyXG5cdGxldCByb3dTcGFuID0gMTtcclxuXHJcblx0Zm9yIChsZXQgaSA9IGN1cnJlbnRSb3dJbmRleCArIDE7IGkgPCBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0NvdW50KCk7IGkrKykge1xyXG5cdFx0Y29uc3Qgbm9kZSA9IHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChpKTtcclxuXHRcdGlmIChub2RlLmRhdGFbZmllbGQhXSA9PT0gY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHJvd1NwYW4rKztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKGN1cnJlbnRSb3dJbmRleCA+IDAgJiYgcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dBdEluZGV4KGN1cnJlbnRSb3dJbmRleCAtIDEpLmRhdGFbZmllbGQhXSA9PT0gY3VycmVudFZhbHVlKSB7XHJcblx0XHRyZXR1cm4gMTtcclxuXHR9XHJcblx0cmV0dXJuIHJvd1NwYW47XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydENvbCA9IChvcHRpb25zOiBhbnksIGNvbDogYW55W10sIGF1dGhMZXZlbDogbnVtYmVyLCBkcmFnU29ydD86IHN0cmluZykgPT4ge1xyXG5cdC8vIEB0cy1pZ25vcmVcclxuXHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdC8vIGNvbnNvbGUubG9nKCdpc0kxOG4tLS0tLScsaXNJMThuKVxyXG5cdGNvbC5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuXHRcdGl0ZW0uaGlkZSA9IGl0ZW0uaGlkZUNvbDtcclxuXHRcdGlmIChhdXRoTGV2ZWwgPCAzKSB7XHJcblx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGlmIChkcmFnU29ydCAmJiBpbmRleCA9PT0gMCkge1xyXG5cdFx0XHRpdGVtLnJvd0RyYWcgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtvcHRpb25zLm1vZGVsTmFtZX0uJHtpdGVtLmZpZWxkfWA7XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgndGV4dFdyYXAnKSAmJiBpdGVtLnRleHRXcmFwKSB7XHJcblx0XHRcdGl0ZW0uYXV0b0hlaWdodCA9IHRydWU7XHJcblx0XHRcdGl0ZW0uY2VsbENsYXNzID0gJ2NlbGwtd3JhcC10ZXh0JztcclxuXHRcdH1cclxuXHRcdGlmIChpdGVtLmZpZWxkVHlwZSA9PSAnVkFSQ0hBUicpIHtcclxuXHRcdFx0aXRlbS5jZWxsRGF0YVR5cGUgPSBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIgPSB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIoaXRlbS5oZWFkZXJWYWx1ZUdldHRlciwgaXRlbSk7XHJcblx0XHRpZiAoaXRlbS5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGl0ZW0sIHJvd1NwYW4pO1xyXG5cdFx0XHRvcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0b3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHRcdC8vIGlmKGl0ZW0uZWRpdGFibGUpe1xyXG5cdFx0Ly8gXHRpdGVtLmhlYWRlckNsYXNzID0gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2xhc3MnKVxyXG5cdFx0Ly8gXHRcdD8gYCR7aXRlbS5oZWFkZXJDbGFzc30gZWRpdGFibGUtY29sdW1uLWhlYWRlcmBcclxuXHRcdC8vIFx0XHQ6ICdlZGl0YWJsZS1jb2x1bW4taGVhZGVyJ1xyXG5cdFx0Ly8gfVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdyaWRPcHRpb25zSG9va2VyID0gKGdyaWRPcHRpb25zOiBhbnkpID0+IHtcclxuXHRncmlkT3B0aW9ucz8uY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdGlmIChjb2wuaGlkZUNvbCkge1xyXG5cdFx0XHRjb2wuaGlkZSA9IGNvbC5oaWRlQ29sO1xyXG5cdFx0XHRkZWxldGUgY29sLmhpZGVDb2w7XHJcblx0XHR9XHJcblx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGNvbC5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRjb2wuaTE4bktleSA9IGB0YWJsZXMuJHtncmlkT3B0aW9ucy5tb2RlbE5hbWV9LiR7Y29sLmZpZWxkfWA7XHJcblx0XHR9XHJcblx0XHRpZiAoY29sLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGNvbC50ZXh0V3JhcCkge1xyXG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XHJcblx0XHRcdGNvbC5jZWxsQ2xhc3MgPSAnY2VsbC13cmFwLXRleHQnO1xyXG5cdFx0fVxyXG5cdFx0Y29sLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGNvbC5oZWFkZXJWYWx1ZUdldHRlciwgY29sKTtcclxuXHRcdGlmIChjb2wucm93U3BhbkNvbmYpIHtcclxuXHRcdFx0bGV0IHJvd1NwYW4gPSB7XHJcblx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogJ3Jvd1NwYW5SZW5kZXJlcicsXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyUGFyYW1zOiB7XHJcblx0XHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fTtcclxuXHRcdFx0T2JqZWN0LmFzc2lnbihjb2wsIHJvd1NwYW4pO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5zdXBwcmVzc1Jvd1RyYW5zZm9ybSA9IHRydWU7XHJcblx0XHRcdGdyaWRPcHRpb25zLnJvd0NsYXNzID0gJ3Jvd1NwYW4nO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHdyYXBIZWFkZXJWYWx1ZUdldHRlciA9IChnZXR0ZXI6IGFueSwgY29sRGVmOiBhbnkpID0+IHtcclxuXHRpZiAodHlwZW9mIGdldHRlciAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuIGdldHRlcjtcclxuXHR9XHJcblx0cmV0dXJuIChwYXJhbXM6IGFueSkgPT4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSBnZXR0ZXIocGFyYW1zKTtcclxuXHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc29sdmVIZWFkZXJGYWxsYmFjayhwYXJhbXM/LmNvbERlZiB8fCBjb2xEZWYpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ2hlYWRlclZhbHVlR2V0dGVyIOaJp+ihjOWksei0pTonLCBlcnJvciwgY29sRGVmKTtcclxuXHRcdFx0cmV0dXJuIHJlc29sdmVIZWFkZXJGYWxsYmFjayhwYXJhbXM/LmNvbERlZiB8fCBjb2xEZWYpO1xyXG5cdFx0fVxyXG5cdH07XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlSGVhZGVyRmFsbGJhY2sgPSAoY29sRGVmOiBhbnkpID0+IHtcclxuXHRyZXR1cm4gY29sRGVmPy5oZWFkZXJOYW1lIHx8IGNvbERlZj8uZmllbGQgfHwgJyc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEdyaWQgPSAodGhpc0FyZzogYW55LCBncmlkTGlzdDogYW55LCBmaXRlclByZWxvYWRzOiBhbnkpID0+IHtcclxuXHRncmlkTGlzdC5mb3JFYWNoKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuXHRcdCFpdGVtLnR5cGUgJiYgKGl0ZW0udHlwZSA9ICdncmlkJyk7XHJcblx0XHRsZXQgZ3JpZDogYW55ID0geyB0eXBlOiBpdGVtLnR5cGUgfTtcclxuXHRcdGlmIChpdGVtLmZpdGVyUHJlbG9hZHMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG5cdFx0XHRmaXRlclByZWxvYWRzLnB1c2goLi4uaXRlbS5maXRlclByZWxvYWRzKTtcclxuXHRcdH1cclxuXHRcdGlmIChpdGVtLnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdGxldCB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnM6IHsgY29sdW1uRGVmcywgLi4ucmVzdEdyaWRPcHRpb25zIH0sXHJcblx0XHRcdFx0c3ViVGFibGVTb3VyY2UsXHJcblx0XHRcdFx0c3ViRGF0YUtleSxcclxuXHRcdFx0XHR0aXRsZSxcclxuXHRcdFx0XHRzZWxlY3REYXRhQ2IsXHJcblx0XHRcdFx0ZmssXHJcblx0XHRcdFx0bWFpbkZpZWxkLFxyXG5cdFx0XHRcdHVuaXF1ZUZpZWxkLFxuXHRcdFx0XHRhZGREYXRhQ2IsXG5cdFx0XHRcdGRlbGV0ZUZ1bmMsXG5cdFx0XHRcdHNob3dEZWxldGUgPSB0cnVlLFxuXHRcdFx0XHRzY3JvbGxIZWlnaHQsXG5cdFx0XHRcdGRyYWdTb3J0LFxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlLFxyXG5cdFx0XHRcdGlzUm93U2VsZWN0YWJsZSxcclxuXHRcdFx0XHRhZGRTb3J0LFxyXG5cdFx0XHRcdHJlZmVyZW5jZSxcclxuXHRcdFx0XHRzbG90S2V5LFxyXG5cdFx0XHRcdHN1YlNhdmUsXHJcblx0XHRcdH0gPSBpdGVtO1xyXG5cdFx0XHRncmlkID0geyBzdWJUYWJsZVNvdXJjZSwgc3ViRGF0YUtleSwgdGl0bGUsIHNob3dEZWxldGUsIHNsb3RLZXksIHN1YlNhdmUsIGRlbGV0ZUZ1bmMsIC4uLmdyaWQgfTtcblx0XHRcdGxldCBncmlkT3B0aW9ucyA9IHtcclxuXHRcdFx0XHQuLi5yZXN0R3JpZE9wdGlvbnMsXHJcblx0XHRcdFx0ZmssXHJcblx0XHRcdFx0c3ViVGFibGVTb3VyY2UsXHJcblx0XHRcdFx0c3ViRGF0YUtleSxcclxuXHRcdFx0XHRtYWluRmllbGQsXHJcblx0XHRcdFx0cmVmZXJlbmNlLFxyXG5cdFx0XHR9O1xyXG5cdFx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRcdGlmICh3aW5kb3cuYXBwSXNJMThuICYmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGl0ZW0uaTE4bktleSA9PSAnJykpIHtcclxuXHRcdFx0XHRncmlkLmkxOG5LZXkgPSBgdGFibGVzLiR7dGhpc0FyZy5nZXRQcm0ubW9kZWxOYW1lfS4ke3N1YkRhdGFLZXl9YDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdjbGllbnRTaWRlJykge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnN1cHByZXNzUm93VmlydHVhbGlzYXRpb24gPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChzY3JvbGxIZWlnaHQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5zY3JvbGxIZWlnaHQgPSBzY3JvbGxIZWlnaHQ7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGRyYWdTb3J0KSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMucm93RHJhZ01hbmFnZWQgPSB0cnVlO1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLmRyYWdTb3J0ID0gZHJhZ1NvcnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNlbGVjdGlvbk1vZGUpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlID0gc2VsZWN0aW9uTW9kZTtcclxuXHRcdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpIHtcclxuXHRcdFx0XHRcdGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcclxuXHRcdFx0XHRcdFx0bW9kZTogc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRcdFx0aXNSb3dTZWxlY3RhYmxlOiBpc1Jvd1NlbGVjdGFibGUgPyBpc1Jvd1NlbGVjdGFibGUgOiBudWxsLFxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBjb2x1bW5EZWZzLCB0aGlzQXJnLmF1dGhMZXZlbCwgZHJhZ1NvcnQpO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gY29sdW1uRGVmcztcclxuXHRcdFx0aWYgKHN1YlRhYmxlU291cmNlID09PSAnc2VsZWN0JyAmJiBpdGVtLnNlbGVjdE1vZGVsQ29kZSkge1xyXG5cdFx0XHRcdHRoaXNBcmcud2ViZ2V0KHsgY29kZTogaXRlbS5zZWxlY3RNb2RlbENvZGUgfSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IHNlbGVjdENvbnRlbnQgPSBwYXJzZUZ1bmN0aW9ucyhKU09OLnBhcnNlKHJlcy5jb250ZW50KSwgdGhpc0FyZyk7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMgPSBzZWxlY3RDb250ZW50Py5ncmlkT3B0aW9ucztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPSBncmlkLnNlbGVjdE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRcdFx0XHRcdGlmIChncmlkLnNlbGVjdE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyB8fCB0aGlzQXJnLndlYl9zZWFyY2guYmluZCh0aGlzQXJnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGdyaWQudW5pcXVlRmllbGQgPSB1bmlxdWVGaWVsZDtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0RGF0YUNiID0gc2VsZWN0RGF0YUNiO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnNjcm9sbEhlaWdodCA9ICczMDBweCc7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2VhcmNoUHJtID0gc2VsZWN0Q29udGVudC5zZWFyY2hQcm07XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE1vZGVsQ29kZSA9IGl0ZW0uc2VsZWN0TW9kZWxDb2RlXHJcblx0XHRcdFx0XHRjb252ZXJ0Q29sKGdyaWQuc2VsZWN0T3B0aW9ucywgZ3JpZC5zZWxlY3RPcHRpb25zLmNvbHVtbkRlZnMhLCAxKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRncmlkLnNlYXJjaFBybSA9IHsgLi4udGhpc0FyZy5zZWFyY2hQcm0gfTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhZGREYXRhQ2IgJiYgKGdyaWRPcHRpb25zLmFkZERhdGFDYiA9IGFkZERhdGFDYik7XHJcblx0XHRcdH1cclxuXHRcdFx0Z3JpZC5ncmlkT3B0aW9ucyA9IGdyaWRPcHRpb25zO1xyXG5cdFx0XHRhZGRTb3J0ICYmIChncmlkLmFkZFNvcnQgPSBhZGRTb3J0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGl0ZW0uaW50ZXJhY3RpdmVMYWJlbCA9IHRydWU7XHJcblx0XHRcdGdyaWQgPSB7XHJcblx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0fTtcclxuXHRcdFx0Z3JpZC5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzQXJnLmdyaWRzLnB1c2goZ3JpZCk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEZvcm0gPSAodGhpc0FyZzogYW55LCBncm91cEFycjogYW55LCBzb3VyY2VEYXRhOiBhbnkpID0+IHtcclxuXHRncm91cEFyci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdGlmICh0aGlzQXJnLmF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbVtmb3JtVHlwZVRvUHJvcHNbaXRlbS50eXBlXV0uZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cdHRoaXNBcmcuZm9ybU9wdGlvbnMgPSB7XHJcblx0XHRmaWVsZHM6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGdyb3VwQ2xhc3M6ICdmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCcsXHJcblx0XHRcdFx0Z3JvdXA6IGdyb3VwQXJyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdGZvcm06IG5ldyBGb3JtR3JvdXAoe30pLFxyXG5cdFx0bWFpbkZpZWxkOiBzb3VyY2VEYXRhLm1vZGVsLm1haW5GaWVsZHMsXHJcblx0XHRtb2RlbE5hbWU6IHNvdXJjZURhdGEubW9kZWwubW9kZWxOYW1lLFxyXG5cdFx0ZXh0cmE6IHsgdGhpc0FyZyB9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJMb2NhbCA9ICgpID0+IHtcclxuXHRsZXQgdGhlbWVDb25maWdTdGF0ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScpO1xyXG5cdHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHRpZiAodGhlbWVDb25maWdTdGF0ZSkge1xyXG5cdFx0d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZUNvbmZpZ1N0YXRlJywgdGhlbWVDb25maWdTdGF0ZSk7XHJcblx0fVxyXG5cdHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhZ2VMaXN0R3JpZE9wdGlvbnMgPSAoZ3JpZE9wdGlvbnM6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJ2NhbGMoMTAwdmggLSA5NXB4KSc7XHJcblx0Z3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID0gZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0Z3JpZE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGdyaWRPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkT3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH1cclxuXHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0Ly8gZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGVcclxuXHRcdGlmIChncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0bW9kZTogZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA/IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGdyaWRPcHRpb25zLmhhc093blByb3BlcnR5KCdoZWFkZXJDaGVja2JveCcpICYmIGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbi5tb2RlID09ICdtdWx0aVJvdycpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24uaGVhZGVyQ2hlY2tib3ggPSBncmlkT3B0aW9ucy5oZWFkZXJDaGVja2JveDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBncmlkT3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0cmV0dXJuIGdyaWRPcHRpb25zO1xyXG59O1xyXG4vLyDmt7Hluqbmi7fotJ1cclxuZXhwb3J0IGNvbnN0IGRlZXBDbG9uZSA9IChzb3VyY2U6IGFueSwgdGhhdDogYW55LCBjYWNoZT86IGFueSkgPT4ge1xyXG5cdGlmICghY2FjaGUpIHtcclxuXHRcdGNhY2hlID0gbmV3IE1hcCgpO1xyXG5cdH1cclxuXHRpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG5cdGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuXHRcdC8vIOS4jeiAg+iZkei3qCBpZnJhbWVcclxuXHRcdGlmIChjYWNoZS5nZXQoc291cmNlKSkge1xyXG5cdFx0XHRyZXR1cm4gY2FjaGUuZ2V0KHNvdXJjZSk7XHJcblx0XHR9XHJcblx0XHRsZXQgcmVzdWx0OiBhbnk7XHJcblx0XHRpZiAoc291cmNlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5wcm90b3R5cGUpIHtcclxuXHRcdFx0XHQvLyDmnIkgcHJvdG90eXBlIOWwseaYr+aZrumAmuWHveaVsFxyXG5cdFx0XHRcdHJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdCA9ICguLi5hcmdzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuY2FsbCh1bmRlZmluZWQsIC4uLmFyZ3MpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0cmVzdWx0ID0gW107XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IERhdGUoKHNvdXJjZSBhcyBhbnkpIC0gMCk7XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgUmVnRXhwKHNvdXJjZS5zb3VyY2UsIHNvdXJjZS5mbGFncyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHQgPSB7fTtcclxuXHRcdH1cclxuXHRcdGNhY2hlLnNldChzb3VyY2UsIHJlc3VsdCk7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcblx0XHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gZGVlcENsb25lKHNvdXJjZVtrZXldLCB0aGF0LCBjYWNoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG59O1xyXG4iXX0=
|
|
559
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QztnQkFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDRixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO1NBQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztBQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBwaXBlLCBmb3JrSm9pbiwgZmlyc3RWYWx1ZUZyb20sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgeyBmb3JtVHlwZVRvUHJvcHMgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IE5QIGZyb20gJ251bWJlci1wcmVjaXNpb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyTWF0Y2hNb2RlID0gJ2VuZHNXaXRoJyB8ICdzdGFydHNXaXRoJyB8ICdjb250YWlucycgfCAnZXF1YWxzJyB8ICdub3RFcXVhbHMnIHwgJ2luJyB8ICdsdCcgfCAnbHRlJyB8ICdndCcgfCAnZ3RlJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJNYXRjaE1vZGUgPSAobW9kZTogYW55KTogRmlsdGVyTWF0Y2hNb2RlID0+IHtcclxuXHQvLyDmnKrphY3nva7ml7bkvb/nlKggUHJpbWVORyDpu5jorqQgY29udGFpbnNcclxuXHRpZiAoIW1vZGUpIHtcclxuXHRcdHJldHVybiAnY29udGFpbnMnO1xyXG5cdH1cclxuXHRyZXR1cm4gbW9kZTtcclxufTtcclxuZXhwb3J0IGxldCB0b1Bhc2NhbENhc2UgPSAoc3RyOiBzdHJpbmcpID0+XHJcblx0c3RyXHJcblx0XHQucmVwbGFjZSgvXy9nLCAnICcpIC8vIOS4i+WIkue6v+abv+aNouS4uuepuuagvFxyXG5cdFx0LnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpIC8vIOWwj+mpvOWzsOWIhuWJsuS4uuWNleivjVxyXG5cdFx0LnRvTG93ZXJDYXNlKCkgLy8g6L2s5Li65bCP5YaZXHJcblx0XHQuc3BsaXQoL1xccysvKSAvLyDmjInnqbrmoLzliIblibJcclxuXHRcdC5tYXAoKHdvcmQpID0+ICh3b3JkID8gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSA6ICcnKSlcclxuXHRcdC5qb2luKCcnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVVuaXF1ZUlkID0gKCkgPT4ge1xyXG5cdGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCkudG9TdHJpbmcoMzYpOyAvLyDml7bpl7TmiLPovawzNui/m+WItue8qeefremVv+W6plxyXG5cdGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA0KTsgLy8g6ZqP5py66YOo5YiGXHJcblx0cmV0dXJuIGAke3RpbWVzdGFtcH0ke3JhbmRvbX1gO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNpcmN1bGFySXRlcmF0b3IgPSAoYXJyYXk6IGFueVtdKSA9PiB7XHJcblx0bGV0IGluZGV4ID0gLTE7XHJcblx0cmV0dXJuIHtcclxuXHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0aW5kZXgrKztcclxuXHRcdFx0cmV0dXJuIGFycmF5W2luZGV4ICUgYXJyYXkubGVuZ3RoXTtcclxuXHRcdH0sXHJcblx0XHRwcmV2OiAoKSA9PiB7XHJcblx0XHRcdGluZGV4LS07XHJcblx0XHRcdHJldHVybiBhcnJheVsoKGluZGV4ICUgYXJyYXkubGVuZ3RoKSArIGFycmF5Lmxlbmd0aCkgJSBhcnJheS5sZW5ndGhdO1xyXG5cdFx0fSxcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhcnNlRnVuY3Rpb25zID0gKG9iajogYW55LCBfdGhpczogYW55KTogYW55ID0+IHtcclxuXHRpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIHtcclxuXHRcdC8vIOWwneivleajgOa1i+aYr+WQpuaYr+WHveaVsOWtl+espuS4slxyXG5cdFx0aWYgKChvYmouaW5jbHVkZXMoJz0+JykgfHwgb2JqLmluY2x1ZGVzKCdQcm9taXNlJykpICYmICFpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGNvbnN0IG8gPSBjb21waWxlVHNUb0pzKG9iaik7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCfop6PmnpDlh73mlbA6Jywgb2JqKTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCBzYW5kYm94ID0ge1xyXG5cdFx0XHRcdFx0T2JzZXJ2YWJsZSxcclxuXHRcdFx0XHRcdG9mLFxyXG5cdFx0XHRcdFx0Zm9ya0pvaW4sXHJcblx0XHRcdFx0XHRtYXAsXHJcblx0XHRcdFx0XHRzaGFyZVJlcGxheSxcclxuXHRcdFx0XHRcdHBpcGUsXHJcblx0XHRcdFx0XHRQcm9taXNlLCAvLyDmt7vliqAgUHJvbWlzZSDliLAgc2FuZGJveFxyXG5cdFx0XHRcdFx0YXN5bmM6IHRydWUsIC8vIOagh+iusOaUr+aMgeW8guatpVxyXG5cdFx0XHRcdFx0cmVzb2x2ZTogUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSksXHJcblx0XHRcdFx0XHRyZWplY3Q6IFByb21pc2UucmVqZWN0LmJpbmQoUHJvbWlzZSksXHJcblx0XHRcdFx0XHROUCxcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHQvLyDlpITnkIYgUHJvbWlzZSDmnoTpgKDlh73mlbDnmoTmg4XlhrVcclxuXHRcdFx0XHRpZiAob2JqLmluY2x1ZGVzKCduZXcgUHJvbWlzZScpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0XHQnc2FuZGJveCcsXHJcblx0XHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiAke299O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0YCxcclxuXHRcdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDlpITnkIbmma7pgJrlh73mlbDlkoznrq3lpLTlh73mlbBcclxuXHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0YFxyXG5cdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCR7b30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRgLFxyXG5cdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCflh73mlbDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBvYmopO1xyXG5cdFx0XHRcdHJldHVybiBvYmo7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmIChpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShvYmopO1xyXG5cdFx0XHRyZXR1cm4gcGFyc2VGdW5jdGlvbnMoanNvbiwgX3RoaXMpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG9iajtcclxuXHR9XHJcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG5cdFx0cmV0dXJuIG9iai5tYXAoKGl0ZW06IGFueSkgPT4gcGFyc2VGdW5jdGlvbnMoaXRlbSwgX3RoaXMpKTtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xyXG5cdFx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG5cdFx0XHRpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IHBhcnNlRnVuY3Rpb25zKG9ialtrZXldLCBfdGhpcyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gb2JqO1xyXG59O1xyXG5cclxuLy8g6L6F5Yqp5Ye95pWw77ya5qOA5p+l5piv5ZCm5YyF5ZCrIFByb21pc2Ug5p6E6YCg5Ye95pWwXHJcbmNvbnN0IGNvbnRhaW5zUHJvbWlzZUNvbnN0cnVjdG9yID0gKHN0cjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcblx0cmV0dXJuIC9uZXdcXHMrUHJvbWlzZS8udGVzdChzdHIpO1xyXG59O1xyXG5cclxuLy8g5L+u5pS5IGNvbXBpbGVUc1RvSnMg5Ye95pWw5Lul5pu05aW95Zyw5aSE55CGIFByb21pc2VcclxuZXhwb3J0IGNvbnN0IGNvbXBpbGVUc1RvSnMgPSAodHNDb2RlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWmguaenOaYryBQcm9taXNlIOaehOmAoOWHveaVsO+8jOS4jemcgOimgemineWkluWkhOeQhlxyXG5cdGlmIChjb250YWluc1Byb21pc2VDb25zdHJ1Y3Rvcih0c0NvZGUpKSB7XHJcblx0XHRyZXR1cm4gdHNDb2RlO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgcmVzdWx0ID0gdHMudHJhbnNwaWxlTW9kdWxlKHRzQ29kZSwge1xyXG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XHJcblx0XHRcdG1vZHVsZTogdHMuTW9kdWxlS2luZC5Db21tb25KUyxcclxuXHRcdFx0dGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDE1LFxyXG5cdFx0XHQvLyDlkK/nlKjlvILmraXlh73mlbDmlK/mjIFcclxuXHRcdFx0bGliOiBbJ2VzMjAxNScsICdlczIwMTUucHJvbWlzZScsICdkb20nXSxcclxuXHRcdH0sXHJcblx0fSk7XHJcblx0cmV0dXJuIHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uKHJlc3VsdC5vdXRwdXRUZXh0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uID0gKGZ1bmNTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0Ly8g5YWI5Y676Zmk5YmN5ZCO56m655m9XHJcblx0Y29uc3QgdHJpbW1lZCA9IGZ1bmNTdHIudHJpbSgpO1xyXG5cdC8vIOWPquabv+aNouacgOWQjuS4gOS4quWIhuWPt++8iOWmguaenOWug+S4jeWcqOiKseaLrOWPt+WGhe+8iVxyXG5cdGlmICh0cmltbWVkLmVuZHNXaXRoKCc7JykpIHtcclxuXHRcdHJldHVybiB0cmltbWVkLnNsaWNlKDAsIC0xKTtcclxuXHR9XHJcblx0cmV0dXJuIHRyaW1tZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNKU09OUGFyc2FibGUgPSAoc3RyOiBhbnkpID0+IHtcclxuXHR0cnkge1xyXG5cdFx0SlNPTi5wYXJzZShzdHIpO1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0Ly8gbGV0IHN0cklzT2JqID0gL1xce1tefV0qXFx9fFxcW1teXFxdXSpcXF0vLnRlc3Qoc3RyKVxyXG5cdFx0Ly8gaWYoc3RySXNPYmope1xyXG5cdFx0Ly8gXHRjb25zb2xlLmVycm9yKCdKU09OIOino+aekOWksei0pTonLCBlLCAnXFxu5Y6f5aeL5a2X56ym5LiyOicsIHN0cilcclxuXHRcdC8vIH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn07XHJcblxyXG4vKipcclxuICog5qC55o2u5oyH5a6a55qE6ZSu5pWw57uE6L+H5ruk5a+56LGhXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSDopoHov4fmu6TnmoTljp/lp4vlr7nosaFcclxuICogQHBhcmFtIHtBcnJheX0ga2V5cyAtIOmcgOimgeS/neeVmeeahOmUruaVsOe7hFxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSDov4fmu6TlkI7nmoTmlrDlr7nosaFcclxuICovXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJPYmplY3RCeUtleXMgPSAob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdKSA9PiB7XHJcblx0Ly8g5Y+C5pWw5qCh6aqMXHJcblx0aWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ+esrOS4gOS4quWPguaVsOW/hemhu+aYr+aZrumAmuWvueixoScpO1xyXG5cdH1cclxuXHJcblx0aWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuozkuKrlj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcclxuXHR9XHJcblxyXG5cdC8vIOS9v+eUqHJlZHVjZeWIm+W7uuaWsOWvueixoVxyXG5cdHJldHVybiBrZXlzLnJlZHVjZSgoYWNjOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHQvLyDlj6rmnInlvZPljp/lr7nosaHmnInor6XlsZ7mgKfml7bmiY3mt7vliqDliLDmlrDlr7nosaFcclxuXHRcdGlmIChrZXkgaW4gb2JqKSB7XHJcblx0XHRcdGFjY1trZXldID0gb2JqW2tleV07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIHt9KTtcclxufTtcclxuLyoqXHJcbiAqIOiHquWumuS5ieWHveaVsOWOu+mZpOepuuWtl+espuS4slxyXG4gKiBAcGFyYW0gYWN0XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY29udmVydEFjdCA9IChhY3Q6IGFueSkgPT4ge1xyXG5cdGFjdC5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdidG5IaWRkZW4nKSAmJiB0eXBlb2Ygdi5idG5IaWRkZW4gIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5IaWRkZW47XHJcblx0XHR9XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuRGlzYWJsZWQnKSAmJiB0eXBlb2Ygdi5idG5EaXNhYmxlZCAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2LmJ0bkRpc2FibGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSAmJiB0eXBlb2Ygdi5vbkNsaWNrICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYub25DbGljaztcclxuXHRcdH1cclxuXHR9KTtcclxuXHRyZXR1cm4gYWN0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIGZvcm1wYWdlIOmAmueUqGNvbnRlbnTlh73mlbDovaznp7tcclxuICogQHBhcmFtIGNvbnRlbnRcclxuICogQHBhcmFtIHRoaXNBcmdcclxuICovXHJcbmV4cG9ydCBjb25zdCBjaGFuZ2VDb250ZW50ID0gKGNvbnRlbnQ6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Ly8gQHRzLWlnbm9yZVxyXG5cdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0Y29udGVudCA9IHBhcnNlRnVuY3Rpb25zKGNvbnRlbnQsIHRoaXNBcmcpO1xyXG5cdHRoaXNBcmcucGFnZUNvbnRlbnQgPSBjb250ZW50O1xyXG5cdGxldCB7IGdyaWRMaXN0LCBocmVmQnRuTGlzdCwgZ2V0UHJtLCBncm91cHMsIHN0YXR1c0tleSwgc3RhdHVzLCBzdGF0dXNTdGVwcywgc3RhdHVzQ29uZiA9IG51bGwgfSA9IGNvbnRlbnQ7XHJcblx0aWYgKHN0YXR1c0tleSkge1xyXG5cdFx0dGhpc0FyZy5zdGF0dXNLZXkgPSBzdGF0dXNLZXk7XHJcblx0XHRzdGF0dXNTdGVwcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdFx0aXRlbS5pMThuS2V5ID0gYHRhYmxlcy4ke2dldFBybS5tb2RlbE5hbWV9LiR7c3RhdHVzS2V5fSR7aXRlbS52YWx1ZX1gO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXNBcmcuc3RlcHMgPSBzdGF0dXNTdGVwcztcclxuXHRcdHN0YXR1c0NvbmYgJiYgKHRoaXNBcmcuc3RhdHVzQ29uZiA9IHN0YXR1c0NvbmYpO1xyXG5cdH1cclxuXHJcblx0dGhpc0FyZy5hY3Rpb25zID0gY29udmVydEFjdChjb250ZW50LmFjdGlvbnMpO1xyXG5cdGNvbnRlbnQuZm9ybURpc2FibGVkICYmICh0aGlzQXJnLmZvcm1EaXNhYmxlZCA9IGNvbnRlbnQuZm9ybURpc2FibGVkKTtcclxuXHR0aGlzQXJnLmdldFBybSA9IGdldFBybTtcclxuXHR0aGlzQXJnLmdldFBybS5vcmdGaWVsZCA9IGNvbnRlbnQub3JnRmllbGQgfHwgJyc7XHJcblx0dGhpc0FyZy5ncmlkcyA9IFtdO1xyXG5cdGxldCBmaXRlclByZWxvYWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRjb252ZXJ0Rm9ybSh0aGlzQXJnLCBncm91cHMsIGNvbnRlbnQuc291cmNlRGF0YSk7XHJcblx0Y29udmVydEdyaWQodGhpc0FyZywgZ3JpZExpc3QsIGZpdGVyUHJlbG9hZHMpO1xyXG5cclxuXHR0aGlzQXJnLmZvcm1EZXRhaWwgPSBjb250ZW50LmZvcm1EZXRhaWw7XHJcblx0dGhpc0FyZy5zYXZlRnVuYyA9IGNvbnRlbnQuc2F2ZUZ1bmM7XHJcblx0dGhpc0FyZy5pc0xvZyA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2dldExvZyddID0gY29udGVudC5zb3VyY2VEYXRhLm1vZGVsLmxvZztcclxuXHR0aGlzQXJnLmdldFBybVsnZml0ZXJQcmVsb2FkcyddID0gZml0ZXJQcmVsb2FkcztcclxuXHR0aGlzQXJnLmhyZWZCdG5MaXN0ID0gaHJlZkJ0bkxpc3Q7XHJcblx0dGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgPSBjb250ZW50LnJ1bnRpbWVDb250ZXh0SW5pdDtcclxuXHRleGVjdXRlUnVudGltZUNvbnRleHRJbml0KHRoaXNBcmcpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVSdW50aW1lQ29udGV4dEluaXQgPSAodGhpc0FyZzogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBjb250ZXh0ID0ge1xyXG5cdFx0Y29tcG9uZW50OiB0aGlzQXJnLFxyXG5cdFx0aHR0cDogdGhpc0FyZy5odHRwLFxyXG5cdFx0cm91dGU6IHRoaXNBcmcucm91dGUsXHJcblx0XHRyb3V0ZXI6IHRoaXNBcmcucm91dGVyLFxyXG5cdFx0cnVudGltZUNvbnRleHQ6IHRoaXNBcmcucnVudGltZUNvbnRleHQsXHJcblx0fTtcclxuXHRjb25zdCByZXN1bHQgPSB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdChjb250ZXh0KTtcclxuXHRyZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQodGhpc0FyZywgcmVzdWx0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlc29sdmVSdW50aW1lQ29udGV4dFJlc3VsdCA9IGFzeW5jICh0aGlzQXJnOiBhbnksIHJlc3VsdDogYW55KSA9PiB7XHJcblx0bGV0IHJlc29sdmVkID0gcmVzdWx0O1xyXG5cdGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShyZXN1bHQpO1xyXG5cdH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCByZXN1bHQ7XHJcblx0fVxyXG5cdGlmIChyZXNvbHZlZCAmJiB0eXBlb2YgcmVzb2x2ZWQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc29sdmVkKSkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHQuLi5yZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge1xyXG5cdFx0XHQuLi4odGhpc0FyZy5ydW50aW1lQ29udGV4dCB8fCB7fSksXHJcblx0XHRcdHZhbHVlOiByZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7fTtcclxuXHR9XHJcblx0dGhpc0FyZy5jZHI/Lm1hcmtGb3JDaGVjaz8uKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY1Jvd1NwYW4gPSAocGFyYW1zOiBhbnksIGZpZWxkPzogc3RyaW5nKSA9PiB7XHJcblx0ZmllbGQgPSBmaWVsZCB8fCBwYXJhbXMuY29sRGVmLmZpZWxkO1xyXG5cdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHBhcmFtcy5kYXRhW2ZpZWxkIV07XHJcblx0Y29uc3QgY3VycmVudFJvd0luZGV4ID0gcGFyYW1zLm5vZGUucm93SW5kZXg7XHJcblxyXG5cdGxldCByb3dTcGFuID0gMTtcclxuXHJcblx0Zm9yIChsZXQgaSA9IGN1cnJlbnRSb3dJbmRleCArIDE7IGkgPCBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0NvdW50KCk7IGkrKykge1xyXG5cdFx0Y29uc3Qgbm9kZSA9IHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChpKTtcclxuXHRcdGlmIChub2RlLmRhdGFbZmllbGQhXSA9PT0gY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHJvd1NwYW4rKztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKGN1cnJlbnRSb3dJbmRleCA+IDAgJiYgcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dBdEluZGV4KGN1cnJlbnRSb3dJbmRleCAtIDEpLmRhdGFbZmllbGQhXSA9PT0gY3VycmVudFZhbHVlKSB7XHJcblx0XHRyZXR1cm4gMTtcclxuXHR9XHJcblx0cmV0dXJuIHJvd1NwYW47XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydENvbCA9IChvcHRpb25zOiBhbnksIGNvbDogYW55W10sIGF1dGhMZXZlbDogbnVtYmVyLCBkcmFnU29ydD86IHN0cmluZykgPT4ge1xyXG5cdC8vIEB0cy1pZ25vcmVcclxuXHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdC8vIGNvbnNvbGUubG9nKCdpc0kxOG4tLS0tLScsaXNJMThuKVxyXG5cdGNvbC5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuXHRcdGl0ZW0uaGlkZSA9IGl0ZW0uaGlkZUNvbDtcclxuXHRcdGlmIChhdXRoTGV2ZWwgPCAzKSB7XHJcblx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGlmIChkcmFnU29ydCAmJiBpbmRleCA9PT0gMCkge1xyXG5cdFx0XHRpdGVtLnJvd0RyYWcgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtvcHRpb25zLm1vZGVsTmFtZX0uJHtpdGVtLmZpZWxkfWA7XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgndGV4dFdyYXAnKSAmJiBpdGVtLnRleHRXcmFwKSB7XHJcblx0XHRcdGl0ZW0uYXV0b0hlaWdodCA9IHRydWU7XHJcblx0XHRcdGl0ZW0uY2VsbENsYXNzID0gJ2NlbGwtd3JhcC10ZXh0JztcclxuXHRcdH1cclxuXHRcdGlmIChpdGVtLmZpZWxkVHlwZSA9PSAnVkFSQ0hBUicpIHtcclxuXHRcdFx0aXRlbS5jZWxsRGF0YVR5cGUgPSBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIgPSB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIoaXRlbS5oZWFkZXJWYWx1ZUdldHRlciwgaXRlbSk7XHJcblx0XHRpZiAoaXRlbS5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGl0ZW0sIHJvd1NwYW4pO1xyXG5cdFx0XHRvcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0b3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHRcdC8vIGlmKGl0ZW0uZWRpdGFibGUpe1xyXG5cdFx0Ly8gXHRpdGVtLmhlYWRlckNsYXNzID0gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2xhc3MnKVxyXG5cdFx0Ly8gXHRcdD8gYCR7aXRlbS5oZWFkZXJDbGFzc30gZWRpdGFibGUtY29sdW1uLWhlYWRlcmBcclxuXHRcdC8vIFx0XHQ6ICdlZGl0YWJsZS1jb2x1bW4taGVhZGVyJ1xyXG5cdFx0Ly8gfVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdyaWRPcHRpb25zSG9va2VyID0gKGdyaWRPcHRpb25zOiBhbnkpID0+IHtcclxuXHRncmlkT3B0aW9ucz8uY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdGlmIChjb2wuaGlkZUNvbCkge1xyXG5cdFx0XHRjb2wuaGlkZSA9IGNvbC5oaWRlQ29sO1xyXG5cdFx0XHRkZWxldGUgY29sLmhpZGVDb2w7XHJcblx0XHR9XHJcblx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGNvbC5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRjb2wuaTE4bktleSA9IGB0YWJsZXMuJHtncmlkT3B0aW9ucy5tb2RlbE5hbWV9LiR7Y29sLmZpZWxkfWA7XHJcblx0XHR9XHJcblx0XHRpZiAoY29sLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGNvbC50ZXh0V3JhcCkge1xyXG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XHJcblx0XHRcdGNvbC5jZWxsQ2xhc3MgPSAnY2VsbC13cmFwLXRleHQnO1xyXG5cdFx0fVxyXG5cdFx0Y29sLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGNvbC5oZWFkZXJWYWx1ZUdldHRlciwgY29sKTtcclxuXHRcdGlmIChjb2wucm93U3BhbkNvbmYpIHtcclxuXHRcdFx0bGV0IHJvd1NwYW4gPSB7XHJcblx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogJ3Jvd1NwYW5SZW5kZXJlcicsXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyUGFyYW1zOiB7XHJcblx0XHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fTtcclxuXHRcdFx0T2JqZWN0LmFzc2lnbihjb2wsIHJvd1NwYW4pO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5zdXBwcmVzc1Jvd1RyYW5zZm9ybSA9IHRydWU7XHJcblx0XHRcdGdyaWRPcHRpb25zLnJvd0NsYXNzID0gJ3Jvd1NwYW4nO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHdyYXBIZWFkZXJWYWx1ZUdldHRlciA9IChnZXR0ZXI6IGFueSwgY29sRGVmOiBhbnkpID0+IHtcclxuXHRpZiAodHlwZW9mIGdldHRlciAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuIGdldHRlcjtcclxuXHR9XHJcblx0cmV0dXJuIChwYXJhbXM6IGFueSkgPT4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSBnZXR0ZXIocGFyYW1zKTtcclxuXHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc29sdmVIZWFkZXJGYWxsYmFjayhwYXJhbXM/LmNvbERlZiB8fCBjb2xEZWYpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ2hlYWRlclZhbHVlR2V0dGVyIOaJp+ihjOWksei0pTonLCBlcnJvciwgY29sRGVmKTtcclxuXHRcdFx0cmV0dXJuIHJlc29sdmVIZWFkZXJGYWxsYmFjayhwYXJhbXM/LmNvbERlZiB8fCBjb2xEZWYpO1xyXG5cdFx0fVxyXG5cdH07XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlSGVhZGVyRmFsbGJhY2sgPSAoY29sRGVmOiBhbnkpID0+IHtcclxuXHRyZXR1cm4gY29sRGVmPy5oZWFkZXJOYW1lIHx8IGNvbERlZj8uZmllbGQgfHwgJyc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEdyaWQgPSAodGhpc0FyZzogYW55LCBncmlkTGlzdDogYW55LCBmaXRlclByZWxvYWRzOiBhbnkpID0+IHtcclxuXHRncmlkTGlzdC5mb3JFYWNoKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuXHRcdCFpdGVtLnR5cGUgJiYgKGl0ZW0udHlwZSA9ICdncmlkJyk7XHJcblx0XHRsZXQgZ3JpZDogYW55ID0geyB0eXBlOiBpdGVtLnR5cGUgfTtcclxuXHRcdGlmIChpdGVtLmZpdGVyUHJlbG9hZHMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG5cdFx0XHRmaXRlclByZWxvYWRzLnB1c2goLi4uaXRlbS5maXRlclByZWxvYWRzKTtcclxuXHRcdH1cclxuXHRcdGlmIChpdGVtLnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdGxldCB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnM6IHsgY29sdW1uRGVmcywgLi4ucmVzdEdyaWRPcHRpb25zIH0sXHJcblx0XHRcdFx0c3ViVGFibGVTb3VyY2UsXHJcblx0XHRcdFx0c3ViRGF0YUtleSxcclxuXHRcdFx0XHR0aXRsZSxcclxuXHRcdFx0XHRzZWxlY3REYXRhQ2IsXHJcblx0XHRcdFx0ZmssXHJcblx0XHRcdFx0bWFpbkZpZWxkLFxyXG5cdFx0XHRcdHVuaXF1ZUZpZWxkLFxyXG5cdFx0XHRcdGFkZERhdGFDYixcclxuXHRcdFx0XHRkZWxldGVGdW5jLFxyXG5cdFx0XHRcdHNob3dEZWxldGUgPSB0cnVlLFxyXG5cdFx0XHRcdHNjcm9sbEhlaWdodCxcclxuXHRcdFx0XHRkcmFnU29ydCxcclxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlLFxyXG5cdFx0XHRcdGlzUm93U2VsZWN0YWJsZSxcclxuXHRcdFx0XHRhZGRTb3J0LFxyXG5cdFx0XHRcdHJlZmVyZW5jZSxcclxuXHRcdFx0XHRzbG90S2V5LFxyXG5cdFx0XHRcdHN1YlNhdmUsXHJcblx0XHRcdH0gPSBpdGVtO1xyXG5cdFx0XHRncmlkID0geyBzdWJUYWJsZVNvdXJjZSwgc3ViRGF0YUtleSwgdGl0bGUsIHNob3dEZWxldGUsIHNsb3RLZXksIHN1YlNhdmUsIGRlbGV0ZUZ1bmMsIC4uLmdyaWQgfTtcclxuXHRcdFx0bGV0IGdyaWRPcHRpb25zID0ge1xyXG5cdFx0XHRcdC4uLnJlc3RHcmlkT3B0aW9ucyxcclxuXHRcdFx0XHRmayxcclxuXHRcdFx0XHRzdWJUYWJsZVNvdXJjZSxcclxuXHRcdFx0XHRzdWJEYXRhS2V5LFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHRyZWZlcmVuY2UsXHJcblx0XHRcdH07XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0aWYgKHdpbmRvdy5hcHBJc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGdyaWQuaTE4bktleSA9IGB0YWJsZXMuJHt0aGlzQXJnLmdldFBybS5tb2RlbE5hbWV9LiR7c3ViRGF0YUtleX1gO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChncmlkT3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ2NsaWVudFNpZGUnKSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dWaXJ0dWFsaXNhdGlvbiA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNjcm9sbEhlaWdodCkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZHJhZ1NvcnQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dEcmFnTWFuYWdlZCA9IHRydWU7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuZHJhZ1NvcnQgPSBkcmFnU29ydDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSBzZWxlY3Rpb25Nb2RlO1xyXG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdFx0XHRtb2RlOiBzZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnID8gJ3NpbmdsZVJvdycgOiAnbXVsdGlSb3cnLFxyXG5cdFx0XHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSA/IGlzUm93U2VsZWN0YWJsZSA6IG51bGwsXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnZlcnRDb2woZ3JpZE9wdGlvbnMsIGNvbHVtbkRlZnMsIHRoaXNBcmcuYXV0aExldmVsLCBkcmFnU29ydCk7XHJcblx0XHRcdGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSBjb2x1bW5EZWZzO1xyXG5cdFx0XHRpZiAoc3ViVGFibGVTb3VyY2UgPT09ICdzZWxlY3QnICYmIGl0ZW0uc2VsZWN0TW9kZWxDb2RlKSB7XHJcblx0XHRcdFx0dGhpc0FyZy53ZWJnZXQoeyBjb2RlOiBpdGVtLnNlbGVjdE1vZGVsQ29kZSB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VsZWN0Q29udGVudCA9IHBhcnNlRnVuY3Rpb25zKEpTT04ucGFyc2UocmVzLmNvbnRlbnQpLCB0aGlzQXJnKTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucyA9IHNlbGVjdENvbnRlbnQ/LmdyaWRPcHRpb25zO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnJvd01vZGVsVHlwZSA9IGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgfHwgJ3NlcnZlclNpZGUnO1xyXG5cdFx0XHRcdFx0aWYgKGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ3NlcnZlclNpZGUnKSB7XHJcblx0XHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jID0gZ3JpZC5zZWxlY3RPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Z3JpZC51bmlxdWVGaWVsZCA9IHVuaXF1ZUZpZWxkO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhQ2IgPSBzZWxlY3REYXRhQ2I7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJzMwMHB4JztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZWFyY2hQcm0gPSBzZWxlY3RDb250ZW50LnNlYXJjaFBybTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0TW9kZWxDb2RlID0gaXRlbS5zZWxlY3RNb2RlbENvZGU7XHJcblx0XHRcdFx0XHRjb252ZXJ0Q29sKGdyaWQuc2VsZWN0T3B0aW9ucywgZ3JpZC5zZWxlY3RPcHRpb25zLmNvbHVtbkRlZnMhLCAxKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRncmlkLnNlYXJjaFBybSA9IHsgLi4udGhpc0FyZy5zZWFyY2hQcm0gfTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhZGREYXRhQ2IgJiYgKGdyaWRPcHRpb25zLmFkZERhdGFDYiA9IGFkZERhdGFDYik7XHJcblx0XHRcdH1cclxuXHRcdFx0Z3JpZC5ncmlkT3B0aW9ucyA9IGdyaWRPcHRpb25zO1xyXG5cdFx0XHRhZGRTb3J0ICYmIChncmlkLmFkZFNvcnQgPSBhZGRTb3J0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGl0ZW0uaW50ZXJhY3RpdmVMYWJlbCA9IHRydWU7XHJcblx0XHRcdGdyaWQgPSB7XHJcblx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0fTtcclxuXHRcdFx0Z3JpZC5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzQXJnLmdyaWRzLnB1c2goZ3JpZCk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEZvcm0gPSAodGhpc0FyZzogYW55LCBncm91cEFycjogYW55LCBzb3VyY2VEYXRhOiBhbnkpID0+IHtcclxuXHRncm91cEFyci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdGlmICh0aGlzQXJnLmF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbVtmb3JtVHlwZVRvUHJvcHNbaXRlbS50eXBlXV0uZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cdHRoaXNBcmcuZm9ybU9wdGlvbnMgPSB7XHJcblx0XHRmaWVsZHM6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGdyb3VwQ2xhc3M6ICdmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCcsXHJcblx0XHRcdFx0Z3JvdXA6IGdyb3VwQXJyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdGZvcm06IG5ldyBGb3JtR3JvdXAoe30pLFxyXG5cdFx0bWFpbkZpZWxkOiBzb3VyY2VEYXRhLm1vZGVsLm1haW5GaWVsZHMsXHJcblx0XHRtb2RlbE5hbWU6IHNvdXJjZURhdGEubW9kZWwubW9kZWxOYW1lLFxyXG5cdFx0ZXh0cmE6IHsgdGhpc0FyZyB9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJMb2NhbCA9ICgpID0+IHtcclxuXHRsZXQgdGhlbWVDb25maWdTdGF0ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScpO1xyXG5cdHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHRpZiAodGhlbWVDb25maWdTdGF0ZSkge1xyXG5cdFx0d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZUNvbmZpZ1N0YXRlJywgdGhlbWVDb25maWdTdGF0ZSk7XHJcblx0fVxyXG5cdHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhZ2VMaXN0R3JpZE9wdGlvbnMgPSAoZ3JpZE9wdGlvbnM6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJ2NhbGMoMTAwdmggLSA5NXB4KSc7XHJcblx0Z3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID0gZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0Z3JpZE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGdyaWRPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkT3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH1cclxuXHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0Ly8gZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGVcclxuXHRcdGlmIChncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0bW9kZTogZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA/IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGdyaWRPcHRpb25zLmhhc093blByb3BlcnR5KCdoZWFkZXJDaGVja2JveCcpICYmIGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbi5tb2RlID09ICdtdWx0aVJvdycpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24uaGVhZGVyQ2hlY2tib3ggPSBncmlkT3B0aW9ucy5oZWFkZXJDaGVja2JveDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBncmlkT3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0cmV0dXJuIGdyaWRPcHRpb25zO1xyXG59O1xyXG4vLyDmt7Hluqbmi7fotJ1cclxuZXhwb3J0IGNvbnN0IGRlZXBDbG9uZSA9IChzb3VyY2U6IGFueSwgdGhhdDogYW55LCBjYWNoZT86IGFueSkgPT4ge1xyXG5cdGlmICghY2FjaGUpIHtcclxuXHRcdGNhY2hlID0gbmV3IE1hcCgpO1xyXG5cdH1cclxuXHRpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG5cdGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuXHRcdC8vIOS4jeiAg+iZkei3qCBpZnJhbWVcclxuXHRcdGlmIChjYWNoZS5nZXQoc291cmNlKSkge1xyXG5cdFx0XHRyZXR1cm4gY2FjaGUuZ2V0KHNvdXJjZSk7XHJcblx0XHR9XHJcblx0XHRsZXQgcmVzdWx0OiBhbnk7XHJcblx0XHRpZiAoc291cmNlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5wcm90b3R5cGUpIHtcclxuXHRcdFx0XHQvLyDmnIkgcHJvdG90eXBlIOWwseaYr+aZrumAmuWHveaVsFxyXG5cdFx0XHRcdHJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdCA9ICguLi5hcmdzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuY2FsbCh1bmRlZmluZWQsIC4uLmFyZ3MpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0cmVzdWx0ID0gW107XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IERhdGUoKHNvdXJjZSBhcyBhbnkpIC0gMCk7XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgUmVnRXhwKHNvdXJjZS5zb3VyY2UsIHNvdXJjZS5mbGFncyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHQgPSB7fTtcclxuXHRcdH1cclxuXHRcdGNhY2hlLnNldChzb3VyY2UsIHJlc3VsdCk7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcblx0XHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gZGVlcENsb25lKHNvdXJjZVtrZXldLCB0aGF0LCBjYWNoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG59O1xyXG4iXX0=
|
|
@@ -4493,8 +4493,8 @@ class CodeMirrorComponent {
|
|
|
4493
4493
|
'.cm-activeLineGutter': {
|
|
4494
4494
|
backgroundColor: 'transparent',
|
|
4495
4495
|
},
|
|
4496
|
-
'&': { minHeight: this.props.minHeight ?? '
|
|
4497
|
-
'.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '
|
|
4496
|
+
'&': { minHeight: this.props.minHeight ?? '68px', maxHeight: this.props.maxHeight || '204px' },
|
|
4497
|
+
'.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '68px' },
|
|
4498
4498
|
}),
|
|
4499
4499
|
this.getLanguageExtension(),
|
|
4500
4500
|
EditorView.updateListener.of((update) => {
|
|
@@ -5980,6 +5980,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
5980
5980
|
}]
|
|
5981
5981
|
}] });
|
|
5982
5982
|
|
|
5983
|
+
class AsyncLinkRenderer {
|
|
5984
|
+
constructor() {
|
|
5985
|
+
this.router = inject(Router);
|
|
5986
|
+
}
|
|
5987
|
+
agInit(params) {
|
|
5988
|
+
this.params = params;
|
|
5989
|
+
this.optionsHook = params.optionsHook;
|
|
5990
|
+
this.triggerOptionsHook(params.value);
|
|
5991
|
+
}
|
|
5992
|
+
triggerOptionsHook(value) {
|
|
5993
|
+
if (this.optionsHook) {
|
|
5994
|
+
this.optionsHook(value).subscribe((res) => {
|
|
5995
|
+
this.label = res?.find((item) => item.value === value)?.label || '';
|
|
5996
|
+
});
|
|
5997
|
+
}
|
|
5998
|
+
}
|
|
5999
|
+
onLink() {
|
|
6000
|
+
const { url, queryParam } = this.params;
|
|
6001
|
+
if (url) {
|
|
6002
|
+
let urlStr = typeof url == 'function' ? url(this.params.data) : '';
|
|
6003
|
+
let query = typeof queryParam === 'function' ? queryParam(this.params.data) : {};
|
|
6004
|
+
urlStr !== '' && this.router.navigate([urlStr], { queryParams: query });
|
|
6005
|
+
}
|
|
6006
|
+
}
|
|
6007
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncLinkRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6008
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AsyncLinkRenderer, isStandalone: true, selector: "ng-component", providers: [AsyncPipe], ngImport: i0, template: ` <span
|
|
6009
|
+
class="cell-link"
|
|
6010
|
+
(click)="onLink()"
|
|
6011
|
+
>{{ label }}</span
|
|
6012
|
+
>`, isInline: true, styles: [".cell-link{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
6013
|
+
}
|
|
6014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncLinkRenderer, decorators: [{
|
|
6015
|
+
type: Component,
|
|
6016
|
+
args: [{ standalone: true, imports: [CommonModule], providers: [AsyncPipe], template: ` <span
|
|
6017
|
+
class="cell-link"
|
|
6018
|
+
(click)="onLink()"
|
|
6019
|
+
>{{ label }}</span
|
|
6020
|
+
>`, styles: [".cell-link{color:var(--p-primary-color);cursor:pointer}\n"] }]
|
|
6021
|
+
}] });
|
|
6022
|
+
|
|
5983
6023
|
// rowModelType 使用clientSide的最大值
|
|
5984
6024
|
const CLIENTLIMIT = 9999;
|
|
5985
6025
|
const components = {
|
|
@@ -5994,7 +6034,8 @@ const components = {
|
|
|
5994
6034
|
cellEditInputDateComponent: CellEditInputDateComponent,
|
|
5995
6035
|
rowSpanRenderer: RowSpanRenderer,
|
|
5996
6036
|
cellEditSelectFieldComponent: CellEditSelectFieldComponent,
|
|
5997
|
-
primeActionsRenderer: PrimeActionsRenderer
|
|
6037
|
+
primeActionsRenderer: PrimeActionsRenderer,
|
|
6038
|
+
asyncLinkRenderer: AsyncLinkRenderer
|
|
5998
6039
|
};
|
|
5999
6040
|
|
|
6000
6041
|
const defaultOption = {
|
|
@@ -6070,10 +6111,10 @@ class GridComponent {
|
|
|
6070
6111
|
this.noRows = true;
|
|
6071
6112
|
this.showHorizontal = false;
|
|
6072
6113
|
this.dragBeforeIndex = -1;
|
|
6073
|
-
|
|
6114
|
+
this.searchPrmSub = toObservable(this.searchPrm).subscribe((searchPrm) => {
|
|
6074
6115
|
if (searchPrm.modelName !== undefined) {
|
|
6075
6116
|
this.rawPrm = searchPrm;
|
|
6076
|
-
|
|
6117
|
+
this.searchPrmSub.unsubscribe();
|
|
6077
6118
|
}
|
|
6078
6119
|
});
|
|
6079
6120
|
effect(async () => {
|
|
@@ -6144,6 +6185,7 @@ class GridComponent {
|
|
|
6144
6185
|
}
|
|
6145
6186
|
ngAfterViewInit() { }
|
|
6146
6187
|
ngOnDestroy() {
|
|
6188
|
+
this.searchPrmSub?.unsubscribe();
|
|
6147
6189
|
if (this.horizontalScrollBarObserver) {
|
|
6148
6190
|
this.horizontalScrollBarObserver.disconnect();
|
|
6149
6191
|
}
|
|
@@ -8182,6 +8224,7 @@ class FormComponent {
|
|
|
8182
8224
|
this.changedModel = {};
|
|
8183
8225
|
this.hookObservers = [];
|
|
8184
8226
|
this.labelMinWidth = signal(undefined);
|
|
8227
|
+
this.fallbackUpsert = { addData: {}, updData: {}, subsert: [], log: {} };
|
|
8185
8228
|
this.isMain = true;
|
|
8186
8229
|
this.extra = {};
|
|
8187
8230
|
this.actions = inject(ActionService);
|
|
@@ -8198,7 +8241,8 @@ class FormComponent {
|
|
|
8198
8241
|
effect(() => {
|
|
8199
8242
|
let modelName = this.options().modelName || '';
|
|
8200
8243
|
if (modelName != '') {
|
|
8201
|
-
|
|
8244
|
+
const upsert = this.getUpsertState();
|
|
8245
|
+
this.isMain = !upsert.subsert?.find((v) => v.subModelName === modelName);
|
|
8202
8246
|
if (!this.isMain) {
|
|
8203
8247
|
this.subsert = {
|
|
8204
8248
|
subModelName: modelName,
|
|
@@ -8207,7 +8251,7 @@ class FormComponent {
|
|
|
8207
8251
|
maptmp: new Map(),
|
|
8208
8252
|
logtmp: new Map(),
|
|
8209
8253
|
};
|
|
8210
|
-
|
|
8254
|
+
upsert.subsert?.push(this.subsert);
|
|
8211
8255
|
}
|
|
8212
8256
|
}
|
|
8213
8257
|
}, { allowSignalWrites: true });
|
|
@@ -8345,16 +8389,25 @@ class FormComponent {
|
|
|
8345
8389
|
this.handleHideExpression();
|
|
8346
8390
|
this.actions.saveSignal.set(true);
|
|
8347
8391
|
}
|
|
8392
|
+
getUpsertState() {
|
|
8393
|
+
const upsert = this.upsert() ?? this.fallbackUpsert;
|
|
8394
|
+
upsert.addData ??= {};
|
|
8395
|
+
upsert.updData ??= {};
|
|
8396
|
+
upsert.subsert ??= [];
|
|
8397
|
+
upsert.log ??= {};
|
|
8398
|
+
return upsert;
|
|
8399
|
+
}
|
|
8348
8400
|
handleUpsert(key, value, isLog) {
|
|
8401
|
+
const upsert = this.getUpsertState();
|
|
8349
8402
|
if (this.isNew) {
|
|
8350
|
-
fieldUtils.setModel(
|
|
8403
|
+
fieldUtils.setModel(upsert.addData, key, value);
|
|
8351
8404
|
}
|
|
8352
8405
|
else {
|
|
8353
|
-
fieldUtils.setModel(
|
|
8406
|
+
fieldUtils.setModel(upsert.updData, key, value);
|
|
8354
8407
|
}
|
|
8355
8408
|
if (!isLog)
|
|
8356
8409
|
return;
|
|
8357
|
-
|
|
8410
|
+
upsert.log.content = fieldUtils.transLog(this.rawModel, this.changedModel, this.model()[this.options().mainField], this.isNew, this.i18nService);
|
|
8358
8411
|
}
|
|
8359
8412
|
handleSubsert(key, value, field) {
|
|
8360
8413
|
const changedModel = Object.fromEntries(Object.entries(this.changedModel).map(([key, value]) => [key, value.value]));
|
|
@@ -9810,7 +9863,7 @@ class PageFormComponent extends AmComponent {
|
|
|
9810
9863
|
return;
|
|
9811
9864
|
}
|
|
9812
9865
|
this.leftPanelInitialized = true;
|
|
9813
|
-
this.baseGridListSnapshot =
|
|
9866
|
+
this.baseGridListSnapshot = this.gridList().map((item) => item);
|
|
9814
9867
|
const dataSource = panel.list?.dataSource;
|
|
9815
9868
|
this.runLeftPanelEvent('onInit');
|
|
9816
9869
|
const items = await this.loadLeftPanelItems(dataSource);
|
|
@@ -10256,7 +10309,7 @@ class PageFormComponent extends AmComponent {
|
|
|
10256
10309
|
dataSourceShow() {
|
|
10257
10310
|
const grid = this.resolvedGridList()[this.indexValue];
|
|
10258
10311
|
this.currentSelectModelCode = grid?.selectModelCode || null;
|
|
10259
|
-
console.log(`dataSourceShow`,
|
|
10312
|
+
console.log(`dataSourceShow`, this.gridList(), this.resolvedGridList());
|
|
10260
10313
|
this.dialogSearchPrm = {};
|
|
10261
10314
|
this.selectOptions = this.resolvedGridList()[this.indexValue]['selectOptions'];
|
|
10262
10315
|
if (this.selectOptions?.searchPrm) {
|