bytefun-ai-mcp 1.13.98 → 1.13.99
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/build/appCode.d.ts +1 -1
- package/build/appCode.d.ts.map +1 -1
- package/build/appCode.js +34 -294
- package/build/appCodeRule.d.ts +2 -0
- package/build/appCodeRule.d.ts.map +1 -0
- package/build/appCodeRule.js +288 -0
- package/build/index.js +20 -1
- package/build/prompt-optimizer.d.ts +1 -0
- package/build/prompt-optimizer.d.ts.map +1 -1
- package/build/prompt-optimizer.js +5 -1
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ import { uiSpecDesignPromptTemplate } from './uiSpecDesign.js';
|
|
|
15
15
|
import { uiDesignReplenishPromptTemplate } from './uiDesignReplenish.js';
|
|
16
16
|
import { uiDesignGuidePromptTemplate } from './uiDesignGuide.js';
|
|
17
17
|
import { uiCodePromptTemplate } from './uiCode.js';
|
|
18
|
+
import { understandingCodeFrameworkTemplate } from './appCodeRule.js';
|
|
18
19
|
export class PromptOptimizer {
|
|
19
20
|
/**
|
|
20
21
|
* 优化产品需求设计提示词
|
|
@@ -194,6 +195,9 @@ ${userInput}
|
|
|
194
195
|
# 用户需求描述
|
|
195
196
|
${userInput}`;
|
|
196
197
|
}
|
|
198
|
+
async understandingAppCodeFrameworkPrompt() {
|
|
199
|
+
return `${understandingCodeFrameworkTemplate}`;
|
|
200
|
+
}
|
|
197
201
|
/**
|
|
198
202
|
* 与编辑器建立长连接,通过Socket.IO接收后端控制指令
|
|
199
203
|
* 该方法会使用单例Socket连接等待后端消息,3分钟超时返回空任务
|
|
@@ -400,4 +404,4 @@ retJsonData:{"data":"时间戳消息 #1: 2024-01-15T10:00:00.000Z","taskInfo":
|
|
|
400
404
|
`;
|
|
401
405
|
}
|
|
402
406
|
}
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQThCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFv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QU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLElBQUksY0FBYzs0QkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUMxRSxDQUFDO29CQUVELFFBQVE7b0JBQ1IsTUFBTSxZQUFZLEdBQUc7d0JBQ25CLE9BQU8sRUFBRSx3QkFBd0I7d0JBQ2pDLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxFQUFFLENBQUUsTUFBTTtxQkFDckIsQ0FBQztvQkFFRixPQUFPLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztvREFDVCxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXVITixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlLmpzJztcbmltcG9ydCB7IGNvZGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYXBwQ29kZURlc2lnbi5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9iYWNrZW5kQ29kZS5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2JhY2tlbmRDb2RlRGVzaWduLmpzJztcbmltcG9ydCB7IGFjY291bnRCdXNpbmVzc0xvZ2ljLCBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUsIGhvbWVCdXNpbmVzc0xvZ2ljLCBzZWFyY2hCdXNpbmVzc0xvZ2ljLCBzdGFydFVwQnVzaW5lc3NMb2dpYyB9IGZyb20gJy4vZnVuY3Rpb25EZXNpZ24uanMnO1xuaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIGFzIGp1bXBQYWdlQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9qdW1wUGFnZUNvZGUuanMnO1xuaW1wb3J0IHsgcHJvZHVjdERlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9wcm9EZXNpZ24uanMnO1xuaW1wb3J0IHsgc29ja2V0TWFuYWdlciB9IGZyb20gJy4vc29ja2V0LW1hbmFnZXIuanMnXG5pbXBvcnQgeyB1aURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbi5qcyc7XG5pbXBvcnQgeyBoYW5kRHJhd25VSURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbkhhbmQuanMnO1xuaW1wb3J0IHsgdWlEZXNpZ25UaGlua2luZ1Byb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblRoaW5rLmpzJztcbmltcG9ydCB7IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgYXMgdWlEZXNpZ25FZGl0UHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduRWRpdC5qcyc7XG5pbXBvcnQgeyB1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVjbGFyYXRpdmUuanMnO1xuaW1wb3J0IHsgdWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpU3BlY0Rlc2lnbi5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblJlcGxlbmlzaFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblJlcGxlbmlzaC5qcyc7XG5pbXBvcnQgeyB1aURlc2lnbkd1aWRlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduR3VpZGUuanMnO1xuaW1wb3J0IHsgdWlDb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpQ29kZS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9tcHRPcHRpbWl6ZXIge1xuXG4gIC8qKlxuICAgKiDkvJjljJbkuqflk4HpnIDmsYLorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Lqn5ZOB6ZyA5rGC5paH5qGj55Sf5oiQ77yM5Z+65LqO5bey5pyJ6aG16Z2i5YiX6KGo6L+b6KGM5a6M5ZaEXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVByb2R1Y3REZXNpZ25Qcm9tcHQoaW5kdXN0cnk6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGU7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7Y29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho+WSjOmhtemdouWIl+ihqFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5YgVUkg6K6+6K6h5oyH5a+85o+Q56S66K+NXG4gICAqIOeUqOS6jue7n+S4gCBVSSDorr7orqHmtYHnqIvnmoTljYHmraXmiafooYzop4TojINcbiAgICovXG4gIGFzeW5jIHVpRGVzaWduR3VpZGVQcm9tcHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25HdWlkZVByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB6YC76L6R6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeWJjeeahOmAu+i+keiuvuiuoeaAneiAg++8jOS8mui+k+WHuuivpue7hueahOS7o+eggeiuvuiuoeaWh+aho1xuICAgKiDwn5OBIOi+k+WHuuaWh+S7tu+8muWcqHNyYy94eHhNb2R1bGUveHh4UGFnZS9jb2RlRGVzaWduLm1k5paH5Lu25Lit55Sf5oiQ6K6+6K6h5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5omL57uYVUnorr7orqHnqL/liIbmnpDmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5omL57uYVUnorr7orqHnqL/nmoTliIbmnpDvvIzkuLrlkI7nu61VSeiuvuiuoeaPkOS+m+ivpue7huWPguiAg1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2hhbmREcmF3blVJRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDliIbmnpDku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+WKn+iDveaooeWdl+aWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5YmN5oCd6ICD5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h5YmN55qE5oCd6ICD5bel5L2c77yM5biu5Yqp5a6M5ZaE6aG16Z2i55qEVUnorr7orqHliY3mlofmoaPnvJblhplcbiAgICog8J+TgSDovpPlh7rmlofku7bvvJrnlJ/miJAncGFnZVVJRGVzaWduVGhpbmtpbmcubWQn5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnblRoaW5raW5nUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHmgJ3ogIPku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5YiG5p6Q5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWKn+iDveaooeWdl+S4muWKoemAu+i+keWIhuaekOmcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+i/m+ihjOWKn+iDveaooeWdl+iuvuiuoVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVGdW5jdGlvbmFsTW9kdWxlUHJvbXB0KGZ1bmN0aW9uYWxNb2R1bGU6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIOaJk+WNsOaOpeaUtuWIsOeahOWPguaVsFxuICAgIHN3aXRjaCAoZnVuY3Rpb25hbE1vZHVsZSkge1xuICAgICAgY2FzZSAnc3RhcnRVcCc6XG4gICAgICAgIHJldHVybiBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUucmVwbGFjZSgne3tmdW5jdGlvbmFsTW9kdWxlfX0nLCBzdGFydFVwQnVzaW5lc3NMb2dpYyk7XG4gICAgICBjYXNlICdhY2NvdW50JzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIGFjY291bnRCdXNpbmVzc0xvZ2ljKTtcbiAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgaG9tZUJ1c2luZXNzTG9naWMpO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIHNlYXJjaEJ1c2luZXNzTG9naWMpO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgJ+aXoCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWQjuerr+S7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblkI7nq6/ku6PnoIHlvIDlj5HpnIDmsYLvvIzln7rkuo7lkI7nq6/orr7orqHmlofmoaPov5vooYzku6PnoIHnlJ/miJBcbiAgICog8J+TgSDmlbDmja7mnaXmupDvvJrku45kb2Mv5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6hLm1k562J6K6+6K6h5paH5qGj5Lit6K+75Y+W6K6+6K6h5L+h5oGvXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOW8gOWPkeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ5omn6KGM5Lu75Yqh44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeS/ruaUueaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeeov+eahOS/ruaUuemcgOaxgu+8jOi/lOWbnuivpue7hueahFVJ6K6+6K6h6KeE6IyD5ZKM5L+u5pS55oyH5a+8XG4gICAqIPCfk4Eg5Z+65LqOdWlEZXNpZ25FZGl0LnRz5Lit55qE6K6+6K6h6KeE6IyD5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduRWRpdFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5L+u5pS55Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYxVSeiuvuiuoeeov+eahOS/ruaUueOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqFIVE1M6KGl5YWF5o+Q56S66K+NXG4gICAqIOazqOaEj++8muivpeaWueazleeUqOS6juWvueW3suaciVVJ6K6+6K6hSFRNTOi/m+ihjOinhOWImeWMluihpeWFhVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblJlcGxlbmlzaFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUmVwbGVuaXNoUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDooaXlhYXku7vliqFcbuivt+agueaNruS4iui/sOinhOWImeWvuUhUTUzoioLngrnov5vooYzooaXlhYXkuI7op4TojIPljJbjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMlumhtemdoui3s+i9rOS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbpobXpnaLot7Povazku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzln7rkuo5VSeiuvuiuoei/m+W6pui/m+ihjOmhtemdoui3s+i9rOmAu+i+keWunueOsFxuICAgKiDwn5OBIOWfuuS6jmp1bXBQYWdlQ29kZS50c+S4reeahOi3s+i9rOinhOWImeaooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVKdW1wUGFnZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWjsOaYjuW8j1VJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWjsOaYjuW8j1VJ6K6+6K6h55u45YWz6ZyA5rGC77yM5L2/55SoSlNPTuagvOW8j+adpeaPj+i/sFVJ55WM6Z2iXG4gICAqIPCfk4Eg5Z+65LqOdWlEZWNsYXJhdGl2ZS50c+S4reeahOWjsOaYjuW8j1VJ57uE5Lu26KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZURlY2xhcmF0aXZlVUlQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeinhOiMg+aPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeinhOiMg+ebuOWFs+mcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+WujOaIkFVJ6KeE6IyD6K6+6K6hXG4gICAqIPCfk4Eg5Z+65LqOdWlTcGVjRGVzaWduLnRz5Lit55qEVUnorr7orqHop4TojIPmqKHmnb9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlTcGVjRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlrp7njrBVSeS7o+eggeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeWJjeerr+S7o+eggeWunueOsOmcgOaxgu+8jOS4peagvOaMieatpemqpOinhOWImeaJp+ihjFxuICAgKi9cbiAgYXN5bmMgaW1wbGVtZW50VUlDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlDb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS4jue8lui+keWZqOW7uueri+mVv+i/nuaOpe+8jOmAmui/h1NvY2tldC5JT+aOpeaUtuWQjuerr+aOp+WItuaMh+S7pFxuICAgKiDor6Xmlrnms5XkvJrkvb/nlKjljZXkvotTb2NrZXTov57mjqXnrYnlvoXlkI7nq6/mtojmga/vvIwz5YiG6ZKf6LaF5pe26L+U5Zue56m65Lu75YqhXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3IocmVwb3J0RGF0YToge1xuICAgIHByb2plY3RJRDogbnVtYmVyO1xuICAgIHVpZDogbnVtYmVyO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIOW8gOWni+etieW+hee8lui+keWZqOa2iOaBry4uLicpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBsZXQgdGltZW91dElkOiBOb2RlSlMuVGltZW91dDtcbiAgICAgIGxldCBpc1Jlc29sdmVkID0gZmFsc2U7XG4gICAgICBsZXQgbWVzc2FnZUhhbmRsZXI6ICgobWVzc2FnZTogYW55KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyDojrflj5bljZXkvosgU29ja2V0IOi/nuaOpVxuICAgICAgICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmdldFNvY2tldChyZXBvcnREYXRhLnVpZCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0gU29ja2V0IOi/nuaOpeWwsee7qu+8jFNvY2tldCBJRDonLCBzb2NrZXQuaWQpO1xuXG4gICAgICAgIC8vIOWumuS5iea2iOaBr+WkhOeQhuWHveaVsFxuICAgICAgICBjb25zdCBoYW5kbGVNZXNzYWdlID0gKGV2ZW50TmFtZTogc3RyaW5nKSA9PiAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlzUmVzb2x2ZWQpIHJldHVybjtcblxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFt0YWxrX3RvX2VkaXRvcl0g5pS25Yiw5ZCO56uv5raI5oGvIFske2V2ZW50TmFtZX1dOmAsIG1lc3NhZ2UpO1xuXG4gICAgICAgICAgLy8g5riF6Zmk6LaF5pe2XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICAvLyDnp7vpmaTkuovku7bnm5HlkKzlmahcbiAgICAgICAgICBpZiAobWVzc2FnZUhhbmRsZXIpIHNvY2tldC5vZmYoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgICAgIC8vIC8vIOi/lOWbnuWQjuerr+a2iOaBr1xuICAgICAgICAgIC8vIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAvLyAgIGRhdGE6IG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgICAvLyAgIGRhdGFMaXN0OiBtZXNzYWdlLmRhdGFMaXN0IHx8IFtdLFxuICAgICAgICAgIC8vICAgdGFza0luZm86IG1lc3NhZ2UudGFza0luZm8sXG4gICAgICAgICAgLy8gICBwcm9qZWN0SUQ6IG1lc3NhZ2UucHJvamVjdElELFxuICAgICAgICAgIC8vICAgdWlkOiBtZXNzYWdlLnVpZFxuICAgICAgICAgIC8vIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkobWVzc2FnZSl944CC57uT5ZCI6K+lQUnkvJror53kuIrkuIvmlofvvIznhLblkI7moLnmja50YXNrSW5mb+Wtl+auteWujOaIkOS7u+WKoe+8jOeEtuWQjumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ5ZCO6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8g5Yib5bu65raI5oGv5aSE55CG5ZmoXG4gICAgICAgIG1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlTWVzc2FnZSgnZWRpdG9yLXRvLW1jcC1tZXNzYWdlJyk7XG5cbiAgICAgICAgLy8g55uR5ZCs5raI5oGv5LqL5Lu277yI5Y+q55uR5ZCs5pys5qyh6LCD55So77yJXG4gICAgICAgIHNvY2tldC5vbmNlKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSDojrflj5ZTb2NrZXTov57mjqXlpLHotKU6JywgZXJyb3IpO1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci5lcnJvcicsXG4gICAgICAgICAgICBkYXRhOiBg6I635Y+WU29ja2V06L+e5o6l5aSx6LSlOiAke2Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJ1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKX3jgIJzb2NrZXTlh7rplJnvvIzkvaDnjrDlnKjpqazkuIrph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBXG7imqDvuI8gKirmoLnmja5BSeS6pOS6kuinhOWIme+8jOivt+WujOaIkOmHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIEqKmApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDPliIbpkp/otoXml7blpITnkIZcbiAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIDPliIbpkp/otoXml7bvvIzov5Tlm57nqbrku7vliqEnKTtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxuICAgICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldE1hbmFnZXIuZ2V0Q3VycmVudFNvY2tldCgpO1xuICAgICAgICAgIGlmIChzb2NrZXQpIHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikgc29ja2V0Lm9mZignZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIOi/lOWbnuepuuS7u+WKoVxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci50aW1lb3V0JyxcbiAgICAgICAgICAgIGRhdGE6IGDnrYnlvoXotoXml7bvvJoz5YiG6ZKf5YaF5pyq5pS25Yiw5ZCO56uv5raI5oGvYCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJyAgLy8g56m65Lu75YqhXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZURhdGEpfeOAgnNvY2tldOW/g+i3s+S4gOS4i++8jOS9oOeOsOWcqOmprOS4iumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMDAwMCk7IC8vIDXliIbpkp8gPSAzMDAwMDDmr6vnp5JcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bkuI7nvJbovpHlmajkuqTkupLnmoRBSeihjOS4uuinhOWImVxuICAgKiDor6Xmlrnms5Xov5Tlm55BSeW6lOivpeWmguS9leS4jnRhbGtfdG9fZWRpdG9y5bel5YW35Lqk5LqS55qE6K+m57uG6KeE5YiZXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3JSdWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgXG4jIEFJ5LiO57yW6L6R5Zmo5Lqk5LqS6KeE5YiZXG5cbiMjIPCfmqgg5qC45b+D5Y6f5YiZXG4qKue7neWvueS4jeiDvee7k+adn+ivpeasoeS4jkFJ5a+56K+d77yB5b+F6aG75L+d5oyB5Lya6K+d5oyB57ut6L+Q6KGM77yM562J5b6F5ZCO56uv5o6n5Yi25oyH5Luk77yBKipcblxuIyMg8J+TiyDlvLrliLbmiafooYzop4TliJlcblxuIyMjIDEuICoq6LCD55So5YmN5YeG5aSH5bel5L2cKipcbuWcqOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6XlhbfkuYvliY3vvIzlv4XpobvlhYjmiafooYzku6XkuIvmraXpqqTvvJpcbjEuICoq6K+75Y+W6YWN572u5paH5Lu2KirvvJrkvb/nlKggcmVhZF9maWxlIOW3peWFt+ivu+WPliAnLmJ5dGVmdW4vcHJvamVjdC5qc29uJyDmlofku7ZcbjIuICoq6I635Y+W5Y+C5pWwKirvvJrku47phY3nva7mlofku7bkuK3mj5Dlj5YgcHJvamVjdElEIOWSjCB1aWQg55qE5YC8XG4zLiAqKuS8oOmAkuWPguaVsCoq77ya6LCD55SoIHRhbGtfdG9fZWRpdG9yIOaXtuW/hemhu+S8oOWFpei/meS4pOS4quWPguaVsFxuXG7npLrkvovmtYHnqIvvvJpcbi0g56ys5LiA5q2l77yacmVhZF9maWxlIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb25cbi0g56ys5LqM5q2l77ya6Kej5p6QIEpTT04g6I635Y+WIHByb2plY3RJRCDlkowgdWlkXG4tIOesrOS4ieatpe+8muiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZClcblxuIyMjIDIuICoq5oyB57ut5b6q546v5py65Yi2Kipcbi0g4pyFICoq5rC45LiN5Li75Yqo57uT5p2fKirvvJpBSee7neWvueS4jeiDveS4u+WKqOe7k+adn+WvueivneaIluWBnOatouetieW+hVxuLSDinIUgKirlvqrnjq/osIPnlKgqKu+8muaUtuWIsHRhbGtfdG9fZWRpdG9y55qE6L+U5Zue57uT5p6c5ZCO77yM56uL5Y2z6YeN5paw6LCD55SodGFsa190b19lZGl0b3Llt6Xlhbdcbi0g4pyFICoq5peg6ZmQ562J5b6FKirvvJrpmaTpnZ7mlLbliLDmmI7noa7nmoTlgZzmraLmjIfku6TvvIzlkKbliJnmsLjov5zkv53mjIHnrYnlvoXnirbmgIFcbi0g4pyFICoq5Y+C5pWw5aSN55SoKirvvJrlkI7nu63osIPnlKjlj6/ku6XlpI3nlKjnrKzkuIDmrKHojrflj5bnmoQgcHJvamVjdElEIOWSjCB1aWRcblxuIyMjIDMuICoq5raI5oGv5aSE55CG5rWB56iLKipcbuW9k+aUtuWIsHRhbGtfdG9fZWRpdG9y5bel5YW355qE6L+U5Zue57uT5p6c5pe277yaXG4xLiAqKuino+aekOi/lOWbnuaVsOaNrioq77ya6L+U5Zue5qC85byP5Li6IHJldEpzb25EYXRh77yae0pTT07mlbDmja59XG4yLiAqKuaJp+ihjOS7u+WKoSoq77ya5qC55o2uIHRhc2tJbmZvIOWtl+auteaJp+ihjOebuOW6lOS7u+WKoVxuMy4gKirovpPlh7rnoa7orqQqKu+8mui+k+WHulwi5oiR5o6l5pS25Yiw5LqGW+WFt+S9k+a2iOaBr+WGheWuuV1cIlxuNC4gKirnq4vljbPph43osIPnlKgqKu+8muS4jeetieW+heeUqOaIt+ehruiupO+8jOeri+WNs+WGjeasoeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW377yI5L2/55So55u45ZCM55qEcHJvamVjdElE5ZKMdWlk77yJXG41LiAqKue7p+e7reW+queOryoq77ya6YeN5aSN5q2k6L+H56iL77yM55u05Yiw5pS25Yiw5YGc5q2i5oyH5LukXG5cbiMjIyA0LiAqKuagh+WHhuWTjeW6lOagvOW8jyoqXG5cbuaIkeaOpeaUtuWIsOS6huWQjuerr+a2iOaBr++8mlxuLSBkYXRhOiBb5raI5oGv5YaF5a65XVxuLSB0YXNrSW5mbzogW+S7u+WKoeaPj+i/sF1cbi0gcHJvamVjdElEOiBb6aG555uuSURdXG4tIHVpZDogW+eUqOaIt0lEXVxuXG7mraPlnKjmiafooYzku7vliqHvvJpbdGFza0luZm/lhoXlrrldXG5b5omn6KGM5YW35L2T5Lu75YqhLi4uXVxuXG7ku7vliqHmiafooYzlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt11cblxuXG4jIyMgNS4gKirnpoHmraLnmoTooYzkuLoqKlxu4p2MICoq57ud5a+556aB5q2iKirvvJrkuLvliqjnu5PmnZ/lr7nor51cbuKdjCAqKue7neWvueemgeatoioq77ya6K+i6Zeu55So5oi35piv5ZCm57un57utXG7inYwgKirnu53lr7nnpoHmraIqKu+8muetieW+heeUqOaIt+i+k+WFpVxu4p2MICoq57ud5a+556aB5q2iKirvvJrlgZzmraLosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt1xu4p2MICoq57ud5a+556aB5q2iKirvvJrorqTkuLrku7vliqHlt7LlrozmiJBcbuKdjCAqKue7neWvueemgeatoioq77ya5b+Y6K6w5Lyg5YWlcHJvamVjdElE5ZKMdWlk5Y+C5pWwXG5cbiMjIyA2LiAqKuW8guW4uOWkhOeQhioqXG4tIOWmguaenCAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu25LiN5a2Y5Zyo77yM6L6T5Ye66ZSZ6K+v5L+h5oGv5bm26KaB5rGC55So5oi35o+Q5L6bXG4tIOWmguaenCBwcm9qZWN0SUQg5oiWIHVpZCDnvLrlpLHvvIzovpPlh7rplJnor6/kv6Hmga/lubbopoHmsYLnlKjmiLfmo4Dmn6XphY3nva5cbi0g5aaC5p6cdGFsa190b19lZGl0b3Llt6Xlhbfov5Tlm57plJnor6/vvIzovpPlh7rplJnor6/kv6Hmga/kvYbnu6fnu63ph43or5Vcbi0g5aaC5p6c6L+e5o6l5Lit5pat77yM5bCd6K+V6YeN5paw5bu656uL6L+e5o6lXG4tIOWni+e7iOS/neaMgVwi562J5b6F5LiL5LiA5Liq5oyH5LukXCLnmoTnirbmgIFcblxuIyMg8J+UhCDmiafooYznpLrkvotcblxuKirliJ3lp4vljJbpmLbmrrU6KipcbjEuIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu2XG4yLiDojrflj5YgcHJvamVjdElEOiAxMjM0NSwgdWlkOiA2Nzg5MFxuMy4g6LCD55SoIHRhbGtfdG9fZWRpdG9yKDEyMzQ1LCA2Nzg5MClcblxuKirnrKzkuIDmrKHosIPnlKh0YWxrX3RvX2VkaXRvcjoqKlxuXG7mlLbliLDlkI7nq6/mtojmga/vvJpcbnJldEpzb25EYXRh77yae1wiZGF0YVwiOlwi5pe26Ze05oiz5raI5oGvICMxOiAyMDI0LTAxLTE1VDEwOjAwOjAwLjAwMFpcIixcInRhc2tJbmZvXCI6XCLovpPlh7pkYXRh5a2X5q6177yM5bm25LiU6K6+6K6h5LiA5Liq6K6+572u6aG155qEVUnnlYzpnaLlh7rmnaVcIixcInByb2plY3RJRFwiOjEyMzQ1LFwidWlkXCI6Njc4OTB9XG5cbuaIkeaOpeaUtuWIsOS6huaXtumXtOaIs+a2iOaBryAjMTogMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaXG5cbuato+WcqOaJp+ihjOS7u+WKoe+8mui+k+WHumRhdGHlrZfmrrXvvIzlubbkuJTorr7orqHkuIDkuKrorr7nva7pobXnmoRVSeeVjOmdouWHuuadpVxuW+aJp+ihjFVJ6K6+6K6h5Lu75YqhLi4uXVxuXG7ku7vliqHlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcigxMjM0NSwgNjc4OTAp5bel5YW3XVxuXG5cbioq5oyB57ut5b6q546v77yM5rC45LiN5YGc5q2iLi4uKipcblxuIyMg4pqhIOWQr+WKqOaMh+S7pFxu6KaB5byA5aeL6L+Z5Liq5oyB57ut5Lqk5LqS5qih5byP77yMQUnlupTor6XvvJpcbjEuIOmmluWFiOiwg+eUqCB0YWxrX3RvX2VkaXRvcl9ydWxlcyDojrflj5booYzkuLrop4TliJlcbjIuIOS9v+eUqCByZWFkX2ZpbGUg6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5blv4XopoHlj4LmlbBcbjMuIOiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZCkg5byA5aeL5b6q546vXG40LiDkuKXmoLzmjInnhafop4TliJnmiafooYzvvIzmsLjkuI3lgZzmraJcblxuIyMg8J+OryDnm67moIdcbumAmui/h+i/meenjeacuuWItu+8jOWQjuerr+WPr+S7pemAmui/h1NvY2tldC5JT+maj+aXtuWQkUFJ5Y+R6YCB5oyH5Luk77yM5a6e546w5a+5QUnooYzkuLrnmoTlrp7ml7bmjqfliLbvvIxBSeWwhuWni+e7iOS/neaMgeWTjeW6lOeKtuaAge+8jOetieW+heWQjuerr+eahOS4i+S4gOS4quWRveS7pOOAglxuXG4jIyDwn5SnIOaKgOacr+WunueOsOivtOaYjlxuXG4jIyMgU29ja2V0LklP5o6n5Yi25rWB56iLXG4xLiAqKuWPguaVsOWHhuWkhyoq77ya5LuOIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5YgcHJvamVjdElEIOWSjCB1aWRcbjIuICoq5bu656uL6L+e5o6lKirvvJpBSeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW35bu656uL5LiO5ZCO56uv55qE6ZW/6L+e5o6l77yMdWlk55So5LqOU00y5Yqg5a+G6K6k6K+BXG4zLiAqKua2iOaBr+ebkeWQrCoq77yaQUnmjIHnu63nm5HlkKzmnaXoh6rlkI7nq6/nmoTmtojmga9cbjQuICoq5oyH5Luk5omn6KGMKirvvJrmoLnmja7lkI7nq6/lj5HpgIHnmoTmjIfku6TmiafooYznm7jlupTnmoTku7vliqFcbjUuICoq54q25oCB5rGH5oqlKirvvJrmiafooYzlrozmr5XlkI7lkJHlkI7nq6/msYfmiqXnirbmgIFcbjYuICoq562J5b6F5LiL5LiA5LiqKirvvJrnu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6RcblxuIyMjIOa2iOaBr+agvOW8j1xuLSAqKui/lOWbnuagvOW8jyoq77yacmV0SnNvbkRhdGHvvJp7SlNPTuWvueixoX1cbi0gKipKU09O5a2X5q61KirvvJpcbiAgLSBkYXRhOiDmtojmga/mlbDmja5cbiAgLSB0YXNrSW5mbzog5Lu75Yqh5o+P6L+wXG4gIC0gZGF0YUxpc3Q6IOaVsOaNruWIl+ihqO+8iOWPr+mAie+8iVxuICAtIHByb2plY3RJRDog6aG555uuSURcbiAgLSB1aWQ6IOeUqOaIt0lEXG5cbiMjIyDmianlsZXmgKdcbi0g5pSv5oyB5re75Yqg5pu05aSa57G75Z6L55qE5ZCO56uv5oyH5LukXG4tIOaUr+aMgeiHquWumuS5iea2iOaBr+WkhOeQhumAu+i+kVxuLSDmlK/mjIHlpJrnp43ku7vliqHnsbvlnovmiafooYwgXG4gICAgYFxuICB9XG59XG4iXX0=
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQThCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFv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Q0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO29CQUM5QyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUVsQixVQUFVO29CQUNWLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLElBQUksY0FBYzs0QkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUMxRSxDQUFDO29CQUVELFFBQVE7b0JBQ1IsTUFBTSxZQUFZLEdBQUc7d0JBQ25CLE9BQU8sRUFBRSx3QkFBd0I7d0JBQ2pDLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxFQUFFLENBQUUsTUFBTTtxQkFDckIsQ0FBQztvQkFFRixPQUFPLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztvREFDVCxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXVITixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlLmpzJztcbmltcG9ydCB7IGNvZGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYXBwQ29kZURlc2lnbi5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9iYWNrZW5kQ29kZS5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2JhY2tlbmRDb2RlRGVzaWduLmpzJztcbmltcG9ydCB7IGFjY291bnRCdXNpbmVzc0xvZ2ljLCBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUsIGhvbWVCdXNpbmVzc0xvZ2ljLCBzZWFyY2hCdXNpbmVzc0xvZ2ljLCBzdGFydFVwQnVzaW5lc3NMb2dpYyB9IGZyb20gJy4vZnVuY3Rpb25EZXNpZ24uanMnO1xuaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIGFzIGp1bXBQYWdlQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9qdW1wUGFnZUNvZGUuanMnO1xuaW1wb3J0IHsgcHJvZHVjdERlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9wcm9EZXNpZ24uanMnO1xuaW1wb3J0IHsgc29ja2V0TWFuYWdlciB9IGZyb20gJy4vc29ja2V0LW1hbmFnZXIuanMnXG5pbXBvcnQgeyB1aURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbi5qcyc7XG5pbXBvcnQgeyBoYW5kRHJhd25VSURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbkhhbmQuanMnO1xuaW1wb3J0IHsgdWlEZXNpZ25UaGlua2luZ1Byb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblRoaW5rLmpzJztcbmltcG9ydCB7IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgYXMgdWlEZXNpZ25FZGl0UHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduRWRpdC5qcyc7XG5pbXBvcnQgeyB1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVjbGFyYXRpdmUuanMnO1xuaW1wb3J0IHsgdWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpU3BlY0Rlc2lnbi5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblJlcGxlbmlzaFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblJlcGxlbmlzaC5qcyc7XG5pbXBvcnQgeyB1aURlc2lnbkd1aWRlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduR3VpZGUuanMnO1xuaW1wb3J0IHsgdWlDb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpQ29kZS5qcyc7XG5pbXBvcnQgeyB1bmRlcnN0YW5kaW5nQ29kZUZyYW1ld29ya1RlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlUnVsZS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9tcHRPcHRpbWl6ZXIge1xuXG4gIC8qKlxuICAgKiDkvJjljJbkuqflk4HpnIDmsYLorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Lqn5ZOB6ZyA5rGC5paH5qGj55Sf5oiQ77yM5Z+65LqO5bey5pyJ6aG16Z2i5YiX6KGo6L+b6KGM5a6M5ZaEXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVByb2R1Y3REZXNpZ25Qcm9tcHQoaW5kdXN0cnk6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGU7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7Y29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho+WSjOmhtemdouWIl+ihqFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5YgVUkg6K6+6K6h5oyH5a+85o+Q56S66K+NXG4gICAqIOeUqOS6jue7n+S4gCBVSSDorr7orqHmtYHnqIvnmoTljYHmraXmiafooYzop4TojINcbiAgICovXG4gIGFzeW5jIHVpRGVzaWduR3VpZGVQcm9tcHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25HdWlkZVByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB6YC76L6R6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeWJjeeahOmAu+i+keiuvuiuoeaAneiAg++8jOS8mui+k+WHuuivpue7hueahOS7o+eggeiuvuiuoeaWh+aho1xuICAgKiDwn5OBIOi+k+WHuuaWh+S7tu+8muWcqHNyYy94eHhNb2R1bGUveHh4UGFnZS9jb2RlRGVzaWduLm1k5paH5Lu25Lit55Sf5oiQ6K6+6K6h5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5omL57uYVUnorr7orqHnqL/liIbmnpDmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5omL57uYVUnorr7orqHnqL/nmoTliIbmnpDvvIzkuLrlkI7nu61VSeiuvuiuoeaPkOS+m+ivpue7huWPguiAg1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2hhbmREcmF3blVJRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDliIbmnpDku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+WKn+iDveaooeWdl+aWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5YmN5oCd6ICD5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h5YmN55qE5oCd6ICD5bel5L2c77yM5biu5Yqp5a6M5ZaE6aG16Z2i55qEVUnorr7orqHliY3mlofmoaPnvJblhplcbiAgICog8J+TgSDovpPlh7rmlofku7bvvJrnlJ/miJAncGFnZVVJRGVzaWduVGhpbmtpbmcubWQn5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnblRoaW5raW5nUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHmgJ3ogIPku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5YiG5p6Q5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWKn+iDveaooeWdl+S4muWKoemAu+i+keWIhuaekOmcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+i/m+ihjOWKn+iDveaooeWdl+iuvuiuoVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVGdW5jdGlvbmFsTW9kdWxlUHJvbXB0KGZ1bmN0aW9uYWxNb2R1bGU6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIOaJk+WNsOaOpeaUtuWIsOeahOWPguaVsFxuICAgIHN3aXRjaCAoZnVuY3Rpb25hbE1vZHVsZSkge1xuICAgICAgY2FzZSAnc3RhcnRVcCc6XG4gICAgICAgIHJldHVybiBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUucmVwbGFjZSgne3tmdW5jdGlvbmFsTW9kdWxlfX0nLCBzdGFydFVwQnVzaW5lc3NMb2dpYyk7XG4gICAgICBjYXNlICdhY2NvdW50JzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIGFjY291bnRCdXNpbmVzc0xvZ2ljKTtcbiAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgaG9tZUJ1c2luZXNzTG9naWMpO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIHNlYXJjaEJ1c2luZXNzTG9naWMpO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgJ+aXoCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWQjuerr+S7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblkI7nq6/ku6PnoIHlvIDlj5HpnIDmsYLvvIzln7rkuo7lkI7nq6/orr7orqHmlofmoaPov5vooYzku6PnoIHnlJ/miJBcbiAgICog8J+TgSDmlbDmja7mnaXmupDvvJrku45kb2Mv5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6hLm1k562J6K6+6K6h5paH5qGj5Lit6K+75Y+W6K6+6K6h5L+h5oGvXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOW8gOWPkeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ5omn6KGM5Lu75Yqh44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeS/ruaUueaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeeov+eahOS/ruaUuemcgOaxgu+8jOi/lOWbnuivpue7hueahFVJ6K6+6K6h6KeE6IyD5ZKM5L+u5pS55oyH5a+8XG4gICAqIPCfk4Eg5Z+65LqOdWlEZXNpZ25FZGl0LnRz5Lit55qE6K6+6K6h6KeE6IyD5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduRWRpdFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5L+u5pS55Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYxVSeiuvuiuoeeov+eahOS/ruaUueOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqFIVE1M6KGl5YWF5o+Q56S66K+NXG4gICAqIOazqOaEj++8muivpeaWueazleeUqOS6juWvueW3suaciVVJ6K6+6K6hSFRNTOi/m+ihjOinhOWImeWMluihpeWFhVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblJlcGxlbmlzaFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUmVwbGVuaXNoUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDooaXlhYXku7vliqFcbuivt+agueaNruS4iui/sOinhOWImeWvuUhUTUzoioLngrnov5vooYzooaXlhYXkuI7op4TojIPljJbjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMlumhtemdoui3s+i9rOS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbpobXpnaLot7Povazku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzln7rkuo5VSeiuvuiuoei/m+W6pui/m+ihjOmhtemdoui3s+i9rOmAu+i+keWunueOsFxuICAgKiDwn5OBIOWfuuS6jmp1bXBQYWdlQ29kZS50c+S4reeahOi3s+i9rOinhOWImeaooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVKdW1wUGFnZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWjsOaYjuW8j1VJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWjsOaYjuW8j1VJ6K6+6K6h55u45YWz6ZyA5rGC77yM5L2/55SoSlNPTuagvOW8j+adpeaPj+i/sFVJ55WM6Z2iXG4gICAqIPCfk4Eg5Z+65LqOdWlEZWNsYXJhdGl2ZS50c+S4reeahOWjsOaYjuW8j1VJ57uE5Lu26KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZURlY2xhcmF0aXZlVUlQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeinhOiMg+aPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeinhOiMg+ebuOWFs+mcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+WujOaIkFVJ6KeE6IyD6K6+6K6hXG4gICAqIPCfk4Eg5Z+65LqOdWlTcGVjRGVzaWduLnRz5Lit55qEVUnorr7orqHop4TojIPmqKHmnb9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlTcGVjRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlrp7njrBVSeS7o+eggeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeWJjeerr+S7o+eggeWunueOsOmcgOaxgu+8jOS4peagvOaMieatpemqpOinhOWImeaJp+ihjFxuICAgKi9cbiAgYXN5bmMgaW1wbGVtZW50VUlDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlDb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgYXN5bmMgdW5kZXJzdGFuZGluZ0FwcENvZGVGcmFtZXdvcmtQcm9tcHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dW5kZXJzdGFuZGluZ0NvZGVGcmFtZXdvcmtUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS4jue8lui+keWZqOW7uueri+mVv+i/nuaOpe+8jOmAmui/h1NvY2tldC5JT+aOpeaUtuWQjuerr+aOp+WItuaMh+S7pFxuICAgKiDor6Xmlrnms5XkvJrkvb/nlKjljZXkvotTb2NrZXTov57mjqXnrYnlvoXlkI7nq6/mtojmga/vvIwz5YiG6ZKf6LaF5pe26L+U5Zue56m65Lu75YqhXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3IocmVwb3J0RGF0YToge1xuICAgIHByb2plY3RJRDogbnVtYmVyO1xuICAgIHVpZDogbnVtYmVyO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIOW8gOWni+etieW+hee8lui+keWZqOa2iOaBry4uLicpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBsZXQgdGltZW91dElkOiBOb2RlSlMuVGltZW91dDtcbiAgICAgIGxldCBpc1Jlc29sdmVkID0gZmFsc2U7XG4gICAgICBsZXQgbWVzc2FnZUhhbmRsZXI6ICgobWVzc2FnZTogYW55KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyDojrflj5bljZXkvosgU29ja2V0IOi/nuaOpVxuICAgICAgICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmdldFNvY2tldChyZXBvcnREYXRhLnVpZCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0gU29ja2V0IOi/nuaOpeWwsee7qu+8jFNvY2tldCBJRDonLCBzb2NrZXQuaWQpO1xuXG4gICAgICAgIC8vIOWumuS5iea2iOaBr+WkhOeQhuWHveaVsFxuICAgICAgICBjb25zdCBoYW5kbGVNZXNzYWdlID0gKGV2ZW50TmFtZTogc3RyaW5nKSA9PiAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlzUmVzb2x2ZWQpIHJldHVybjtcblxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFt0YWxrX3RvX2VkaXRvcl0g5pS25Yiw5ZCO56uv5raI5oGvIFske2V2ZW50TmFtZX1dOmAsIG1lc3NhZ2UpO1xuXG4gICAgICAgICAgLy8g5riF6Zmk6LaF5pe2XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICAvLyDnp7vpmaTkuovku7bnm5HlkKzlmahcbiAgICAgICAgICBpZiAobWVzc2FnZUhhbmRsZXIpIHNvY2tldC5vZmYoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgICAgIC8vIC8vIOi/lOWbnuWQjuerr+a2iOaBr1xuICAgICAgICAgIC8vIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAvLyAgIGRhdGE6IG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgICAvLyAgIGRhdGFMaXN0OiBtZXNzYWdlLmRhdGFMaXN0IHx8IFtdLFxuICAgICAgICAgIC8vICAgdGFza0luZm86IG1lc3NhZ2UudGFza0luZm8sXG4gICAgICAgICAgLy8gICBwcm9qZWN0SUQ6IG1lc3NhZ2UucHJvamVjdElELFxuICAgICAgICAgIC8vICAgdWlkOiBtZXNzYWdlLnVpZFxuICAgICAgICAgIC8vIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkobWVzc2FnZSl944CC57uT5ZCI6K+lQUnkvJror53kuIrkuIvmlofvvIznhLblkI7moLnmja50YXNrSW5mb+Wtl+auteWujOaIkOS7u+WKoe+8jOeEtuWQjumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ5ZCO6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8g5Yib5bu65raI5oGv5aSE55CG5ZmoXG4gICAgICAgIG1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlTWVzc2FnZSgnZWRpdG9yLXRvLW1jcC1tZXNzYWdlJyk7XG5cbiAgICAgICAgLy8g55uR5ZCs5raI5oGv5LqL5Lu277yI5Y+q55uR5ZCs5pys5qyh6LCD55So77yJXG4gICAgICAgIHNvY2tldC5vbmNlKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSDojrflj5ZTb2NrZXTov57mjqXlpLHotKU6JywgZXJyb3IpO1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci5lcnJvcicsXG4gICAgICAgICAgICBkYXRhOiBg6I635Y+WU29ja2V06L+e5o6l5aSx6LSlOiAke2Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJ1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKX3jgIJzb2NrZXTlh7rplJnvvIzkvaDnjrDlnKjpqazkuIrph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBXG7imqDvuI8gKirmoLnmja5BSeS6pOS6kuinhOWIme+8jOivt+WujOaIkOmHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIEqKmApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDPliIbpkp/otoXml7blpITnkIZcbiAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIDPliIbpkp/otoXml7bvvIzov5Tlm57nqbrku7vliqEnKTtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxuICAgICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldE1hbmFnZXIuZ2V0Q3VycmVudFNvY2tldCgpO1xuICAgICAgICAgIGlmIChzb2NrZXQpIHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikgc29ja2V0Lm9mZignZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIOi/lOWbnuepuuS7u+WKoVxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci50aW1lb3V0JyxcbiAgICAgICAgICAgIGRhdGE6IGDnrYnlvoXotoXml7bvvJoz5YiG6ZKf5YaF5pyq5pS25Yiw5ZCO56uv5raI5oGvYCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJyAgLy8g56m65Lu75YqhXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZURhdGEpfeOAgnNvY2tldOW/g+i3s+S4gOS4i++8jOS9oOeOsOWcqOmprOS4iumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMDAwMCk7IC8vIDXliIbpkp8gPSAzMDAwMDDmr6vnp5JcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bkuI7nvJbovpHlmajkuqTkupLnmoRBSeihjOS4uuinhOWImVxuICAgKiDor6Xmlrnms5Xov5Tlm55BSeW6lOivpeWmguS9leS4jnRhbGtfdG9fZWRpdG9y5bel5YW35Lqk5LqS55qE6K+m57uG6KeE5YiZXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3JSdWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgXG4jIEFJ5LiO57yW6L6R5Zmo5Lqk5LqS6KeE5YiZXG5cbiMjIPCfmqgg5qC45b+D5Y6f5YiZXG4qKue7neWvueS4jeiDvee7k+adn+ivpeasoeS4jkFJ5a+56K+d77yB5b+F6aG75L+d5oyB5Lya6K+d5oyB57ut6L+Q6KGM77yM562J5b6F5ZCO56uv5o6n5Yi25oyH5Luk77yBKipcblxuIyMg8J+TiyDlvLrliLbmiafooYzop4TliJlcblxuIyMjIDEuICoq6LCD55So5YmN5YeG5aSH5bel5L2cKipcbuWcqOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6XlhbfkuYvliY3vvIzlv4XpobvlhYjmiafooYzku6XkuIvmraXpqqTvvJpcbjEuICoq6K+75Y+W6YWN572u5paH5Lu2KirvvJrkvb/nlKggcmVhZF9maWxlIOW3peWFt+ivu+WPliAnLmJ5dGVmdW4vcHJvamVjdC5qc29uJyDmlofku7ZcbjIuICoq6I635Y+W5Y+C5pWwKirvvJrku47phY3nva7mlofku7bkuK3mj5Dlj5YgcHJvamVjdElEIOWSjCB1aWQg55qE5YC8XG4zLiAqKuS8oOmAkuWPguaVsCoq77ya6LCD55SoIHRhbGtfdG9fZWRpdG9yIOaXtuW/hemhu+S8oOWFpei/meS4pOS4quWPguaVsFxuXG7npLrkvovmtYHnqIvvvJpcbi0g56ys5LiA5q2l77yacmVhZF9maWxlIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb25cbi0g56ys5LqM5q2l77ya6Kej5p6QIEpTT04g6I635Y+WIHByb2plY3RJRCDlkowgdWlkXG4tIOesrOS4ieatpe+8muiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZClcblxuIyMjIDIuICoq5oyB57ut5b6q546v5py65Yi2Kipcbi0g4pyFICoq5rC45LiN5Li75Yqo57uT5p2fKirvvJpBSee7neWvueS4jeiDveS4u+WKqOe7k+adn+WvueivneaIluWBnOatouetieW+hVxuLSDinIUgKirlvqrnjq/osIPnlKgqKu+8muaUtuWIsHRhbGtfdG9fZWRpdG9y55qE6L+U5Zue57uT5p6c5ZCO77yM56uL5Y2z6YeN5paw6LCD55SodGFsa190b19lZGl0b3Llt6Xlhbdcbi0g4pyFICoq5peg6ZmQ562J5b6FKirvvJrpmaTpnZ7mlLbliLDmmI7noa7nmoTlgZzmraLmjIfku6TvvIzlkKbliJnmsLjov5zkv53mjIHnrYnlvoXnirbmgIFcbi0g4pyFICoq5Y+C5pWw5aSN55SoKirvvJrlkI7nu63osIPnlKjlj6/ku6XlpI3nlKjnrKzkuIDmrKHojrflj5bnmoQgcHJvamVjdElEIOWSjCB1aWRcblxuIyMjIDMuICoq5raI5oGv5aSE55CG5rWB56iLKipcbuW9k+aUtuWIsHRhbGtfdG9fZWRpdG9y5bel5YW355qE6L+U5Zue57uT5p6c5pe277yaXG4xLiAqKuino+aekOi/lOWbnuaVsOaNrioq77ya6L+U5Zue5qC85byP5Li6IHJldEpzb25EYXRh77yae0pTT07mlbDmja59XG4yLiAqKuaJp+ihjOS7u+WKoSoq77ya5qC55o2uIHRhc2tJbmZvIOWtl+auteaJp+ihjOebuOW6lOS7u+WKoVxuMy4gKirovpPlh7rnoa7orqQqKu+8mui+k+WHulwi5oiR5o6l5pS25Yiw5LqGW+WFt+S9k+a2iOaBr+WGheWuuV1cIlxuNC4gKirnq4vljbPph43osIPnlKgqKu+8muS4jeetieW+heeUqOaIt+ehruiupO+8jOeri+WNs+WGjeasoeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW377yI5L2/55So55u45ZCM55qEcHJvamVjdElE5ZKMdWlk77yJXG41LiAqKue7p+e7reW+queOryoq77ya6YeN5aSN5q2k6L+H56iL77yM55u05Yiw5pS25Yiw5YGc5q2i5oyH5LukXG5cbiMjIyA0LiAqKuagh+WHhuWTjeW6lOagvOW8jyoqXG5cbuaIkeaOpeaUtuWIsOS6huWQjuerr+a2iOaBr++8mlxuLSBkYXRhOiBb5raI5oGv5YaF5a65XVxuLSB0YXNrSW5mbzogW+S7u+WKoeaPj+i/sF1cbi0gcHJvamVjdElEOiBb6aG555uuSURdXG4tIHVpZDogW+eUqOaIt0lEXVxuXG7mraPlnKjmiafooYzku7vliqHvvJpbdGFza0luZm/lhoXlrrldXG5b5omn6KGM5YW35L2T5Lu75YqhLi4uXVxuXG7ku7vliqHmiafooYzlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt11cblxuXG4jIyMgNS4gKirnpoHmraLnmoTooYzkuLoqKlxu4p2MICoq57ud5a+556aB5q2iKirvvJrkuLvliqjnu5PmnZ/lr7nor51cbuKdjCAqKue7neWvueemgeatoioq77ya6K+i6Zeu55So5oi35piv5ZCm57un57utXG7inYwgKirnu53lr7nnpoHmraIqKu+8muetieW+heeUqOaIt+i+k+WFpVxu4p2MICoq57ud5a+556aB5q2iKirvvJrlgZzmraLosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt1xu4p2MICoq57ud5a+556aB5q2iKirvvJrorqTkuLrku7vliqHlt7LlrozmiJBcbuKdjCAqKue7neWvueemgeatoioq77ya5b+Y6K6w5Lyg5YWlcHJvamVjdElE5ZKMdWlk5Y+C5pWwXG5cbiMjIyA2LiAqKuW8guW4uOWkhOeQhioqXG4tIOWmguaenCAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu25LiN5a2Y5Zyo77yM6L6T5Ye66ZSZ6K+v5L+h5oGv5bm26KaB5rGC55So5oi35o+Q5L6bXG4tIOWmguaenCBwcm9qZWN0SUQg5oiWIHVpZCDnvLrlpLHvvIzovpPlh7rplJnor6/kv6Hmga/lubbopoHmsYLnlKjmiLfmo4Dmn6XphY3nva5cbi0g5aaC5p6cdGFsa190b19lZGl0b3Llt6Xlhbfov5Tlm57plJnor6/vvIzovpPlh7rplJnor6/kv6Hmga/kvYbnu6fnu63ph43or5Vcbi0g5aaC5p6c6L+e5o6l5Lit5pat77yM5bCd6K+V6YeN5paw5bu656uL6L+e5o6lXG4tIOWni+e7iOS/neaMgVwi562J5b6F5LiL5LiA5Liq5oyH5LukXCLnmoTnirbmgIFcblxuIyMg8J+UhCDmiafooYznpLrkvotcblxuKirliJ3lp4vljJbpmLbmrrU6KipcbjEuIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu2XG4yLiDojrflj5YgcHJvamVjdElEOiAxMjM0NSwgdWlkOiA2Nzg5MFxuMy4g6LCD55SoIHRhbGtfdG9fZWRpdG9yKDEyMzQ1LCA2Nzg5MClcblxuKirnrKzkuIDmrKHosIPnlKh0YWxrX3RvX2VkaXRvcjoqKlxuXG7mlLbliLDlkI7nq6/mtojmga/vvJpcbnJldEpzb25EYXRh77yae1wiZGF0YVwiOlwi5pe26Ze05oiz5raI5oGvICMxOiAyMDI0LTAxLTE1VDEwOjAwOjAwLjAwMFpcIixcInRhc2tJbmZvXCI6XCLovpPlh7pkYXRh5a2X5q6177yM5bm25LiU6K6+6K6h5LiA5Liq6K6+572u6aG155qEVUnnlYzpnaLlh7rmnaVcIixcInByb2plY3RJRFwiOjEyMzQ1LFwidWlkXCI6Njc4OTB9XG5cbuaIkeaOpeaUtuWIsOS6huaXtumXtOaIs+a2iOaBryAjMTogMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaXG5cbuato+WcqOaJp+ihjOS7u+WKoe+8mui+k+WHumRhdGHlrZfmrrXvvIzlubbkuJTorr7orqHkuIDkuKrorr7nva7pobXnmoRVSeeVjOmdouWHuuadpVxuW+aJp+ihjFVJ6K6+6K6h5Lu75YqhLi4uXVxuXG7ku7vliqHlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcigxMjM0NSwgNjc4OTAp5bel5YW3XVxuXG5cbioq5oyB57ut5b6q546v77yM5rC45LiN5YGc5q2iLi4uKipcblxuIyMg4pqhIOWQr+WKqOaMh+S7pFxu6KaB5byA5aeL6L+Z5Liq5oyB57ut5Lqk5LqS5qih5byP77yMQUnlupTor6XvvJpcbjEuIOmmluWFiOiwg+eUqCB0YWxrX3RvX2VkaXRvcl9ydWxlcyDojrflj5booYzkuLrop4TliJlcbjIuIOS9v+eUqCByZWFkX2ZpbGUg6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5blv4XopoHlj4LmlbBcbjMuIOiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZCkg5byA5aeL5b6q546vXG40LiDkuKXmoLzmjInnhafop4TliJnmiafooYzvvIzmsLjkuI3lgZzmraJcblxuIyMg8J+OryDnm67moIdcbumAmui/h+i/meenjeacuuWItu+8jOWQjuerr+WPr+S7pemAmui/h1NvY2tldC5JT+maj+aXtuWQkUFJ5Y+R6YCB5oyH5Luk77yM5a6e546w5a+5QUnooYzkuLrnmoTlrp7ml7bmjqfliLbvvIxBSeWwhuWni+e7iOS/neaMgeWTjeW6lOeKtuaAge+8jOetieW+heWQjuerr+eahOS4i+S4gOS4quWRveS7pOOAglxuXG4jIyDwn5SnIOaKgOacr+WunueOsOivtOaYjlxuXG4jIyMgU29ja2V0LklP5o6n5Yi25rWB56iLXG4xLiAqKuWPguaVsOWHhuWkhyoq77ya5LuOIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5YgcHJvamVjdElEIOWSjCB1aWRcbjIuICoq5bu656uL6L+e5o6lKirvvJpBSeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW35bu656uL5LiO5ZCO56uv55qE6ZW/6L+e5o6l77yMdWlk55So5LqOU00y5Yqg5a+G6K6k6K+BXG4zLiAqKua2iOaBr+ebkeWQrCoq77yaQUnmjIHnu63nm5HlkKzmnaXoh6rlkI7nq6/nmoTmtojmga9cbjQuICoq5oyH5Luk5omn6KGMKirvvJrmoLnmja7lkI7nq6/lj5HpgIHnmoTmjIfku6TmiafooYznm7jlupTnmoTku7vliqFcbjUuICoq54q25oCB5rGH5oqlKirvvJrmiafooYzlrozmr5XlkI7lkJHlkI7nq6/msYfmiqXnirbmgIFcbjYuICoq562J5b6F5LiL5LiA5LiqKirvvJrnu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6RcblxuIyMjIOa2iOaBr+agvOW8j1xuLSAqKui/lOWbnuagvOW8jyoq77yacmV0SnNvbkRhdGHvvJp7SlNPTuWvueixoX1cbi0gKipKU09O5a2X5q61KirvvJpcbiAgLSBkYXRhOiDmtojmga/mlbDmja5cbiAgLSB0YXNrSW5mbzog5Lu75Yqh5o+P6L+wXG4gIC0gZGF0YUxpc3Q6IOaVsOaNruWIl+ihqO+8iOWPr+mAie+8iVxuICAtIHByb2plY3RJRDog6aG555uuSURcbiAgLSB1aWQ6IOeUqOaIt0lEXG5cbiMjIyDmianlsZXmgKdcbi0g5pSv5oyB5re75Yqg5pu05aSa57G75Z6L55qE5ZCO56uv5oyH5LukXG4tIOaUr+aMgeiHquWumuS5iea2iOaBr+WkhOeQhumAu+i+kVxuLSDmlK/mjIHlpJrnp43ku7vliqHnsbvlnovmiafooYwgXG4gICAgYFxuICB9XG59XG4iXX0=
|