bytefun-ai-mcp 1.1.8 → 1.1.9

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ByteFun AI MCP 服务
2
2
 
3
- ByteFun AI MCP服务 - 智能UI设计与代码开发服务平台,支持设计稿转代码和跨平台原生代码开发。
3
+ ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发
4
4
 
5
5
  ## 功能概述
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAoGQ;IAE/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAoLvC;IAEA;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnF;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAU7G;;;OAGG;IACG,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC,CAAC;IAWrH;;;OAGG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAalI;;;OAGG;IACG,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrG"}
1
+ {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAwGQ;IAE/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAsLvC;IAEA;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnF;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAU7G;;;OAGG;IACG,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC,CAAC;IAWrH;;;OAGG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAalI;;;OAGG;IACG,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrG"}
@@ -20,19 +20,23 @@ export class PromptOptimizer {
20
20
  ## 分析规则
21
21
  以下方法论分为多个步骤,重点突出“逐页面元素→可点→跳转”分析思路。
22
22
 
23
- ## 一、模块拆解
23
+ ## 一、模块拆解与初步列出页面列表
24
24
 
25
25
  1. **拆解核心业务模块**
26
26
  - 将整个 APP 分成完整完善的若干大模块,你需要选取一个市面上典型的用户量大的类似APP来分析它的所有功能模块,然后全部列出来,绝度不允许漏掉。
27
+ - 输出所有功能模块,不论是否核心,不论大小,都要列出来。
28
+
29
+ 2、**初步列出页面列表**
30
+ - 遍历上一步分析列出来的所有业务模块,对每一个业务模块进行细分,列出该业务模块的所有页面。
27
31
 
28
32
  ## 二、每个页面的“元素→可点→跳转”分析要点
29
33
 
30
34
  > **核心思路:**
31
- > 对每个页面,像扫雷一样“点亮”它上面所有可交互元素,沿着“元素可点→跳转目标”一路延伸,逐层发现并补充更多页面或弹窗。
35
+ > 遍历上一步分析出来的每个页面,像扫雷一样“点亮”它上面所有可交互元素,沿着“元素可点→跳转目标”一路延伸,逐层发现并补充更多页面或弹窗。
32
36
 
33
37
  1. **识别页面元素**
34
38
  - **页面框架**:浏览页面整体布局(如顶部导航、Tab、列表、表单、底部按钮等)。
35
- - **列出所有重要控件**:
39
+ - **列出所有控件**:
36
40
  - 输入框、按钮、图片、列表项、链接文字、Tab 项、下拉箭头、悬浮按钮、图标、复选/单选按钮等。
37
41
 
38
42
  2. **标记可点击元素**
@@ -227,6 +231,7 @@ export default class HomePageData {
227
231
  - 页面的导航栏、操作栏、搜索栏、筛选栏等bar组件,要注意上下padding的值应该是一样的,绝对不能设置不一样的值
228
232
  - 页面的顶部和底部要进行沉浸式设计
229
233
  - 设计页面之前要思考清楚该页面内容是否应该一个屏幕显示完毕,不需滚动。
234
+ - 输入框如果需要展示文字label,尽量使用icon代替文字label,并且icon放在输入框里面的左侧,输入框有placeholder提示,这样整个页面的空间利用率高。
230
235
 
231
236
  3. html实现
232
237
  - 使用 HTML + Tailwind CSS(或 Bootstrap)生成所有原型界面,并使用 FontAwesome(或其他开源 UI 组件)让界面更加精美、接近真实的 App 设计。
@@ -379,6 +384,7 @@ export default class HomePageData {
379
384
  请首先思考APP的信息架构和用户流程图,然后按照关键用户旅程逐一呈现高保真原型屏幕,最后提供设计规范概述。
380
385
 
381
386
  ## 重点规则
387
+ - 每一次开始设计之前都要先查看当前工程目录下的.bytefun/html文件夹里面是否有已经设计好的页面,如果有就不需要重新设计,直接使用已经设计好的页面,然后开始下一个页面的UI设计。
382
388
  - viewPager轮播组件节点绝对不允许设置‘overflow: hidden’。
383
389
  - 第一步你得先充分理解'用户输入描述'的内容,然后分析得出一个正确而且全面的页面列表,不能漏掉一些页面,必须按要求把所有页面都进行高保真设计,你需要输出分析结果:总共多少个页面,分别是哪些页面。
384
390
  - 必须是高保真的设计稿,不得使用原型设计那一套进行,必须要高保真的UI设计稿规则来设计,我希望这些界面是需要能直接拿去进行开发的。
@@ -478,4 +484,4 @@ ${userInput}`;
478
484
  return await this.optimizeUIDesignPrompt(userInput, pageListResult);
479
485
  }
480
486
  }
481
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ1Qsc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0RBb0dJLENBQUM7SUFFOUIsa0JBQWtCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBGdEMsQ0FBQztJQUVnQixzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0wzQyxDQUFDO0lBRUE7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCO1FBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCOzs7RUFHdkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCOzs7RUFHbkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsUUFBaUI7UUFDL0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRXpDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUk7OztFQUdkLFFBQVE7Ozs7OzBCQUtnQixDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTTs7O0VBR2xCLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxTQUFpQjtRQUNuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFpQjtRQUN2RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxpQ0FBaUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTztZQUNMLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsaUNBQWlDO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFpQixFQUFFLGNBQXNCO1FBQ2hGLE9BQU8sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbflkozlpI3lkIjosIPnlKjpk77lip/og71cbiAqIC0g5q+P5Liq5Y2V5LiA5bel5YW35aSE55CG5LiN5ZCM57G75Z6L55qE6ZyA5rGC77yM5aSN5ZCI5bel5YW35pSv5oyB5aSa5Liq5bel5YW355qE57uE5ZCI6LCD55SoXG4gKiBcbiAqIOWNleS4gOW3peWFt+S9v+eUqOaWueW8j++8mlxuICogMS4gVUnorr7orqHpnIDmsYIg4oaSIOiwg+eUqCBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KCkgIFxuICogMi4g5Luj56CB5byA5Y+R6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVDb2RlUHJvbXB0KClcbiAqIFxuICog5aSN5ZCI5bel5YW35L2/55So5pa55byP77yaXG4gKiAxLiBVSeiuvuiuoSArIOS7o+eggee8luWGmSDihpIg6LCD55SoIG9wdGltaXplVUlEZXNpZ25BbmRDb2RlUHJvbXB0KClcbiAqIDIuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hIOKGkiDosIPnlKggb3B0aW1pemVQYWdlTGlzdEFuZFVJRGVzaWduUHJvbXB0KClcbiAqIDMuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hICsg5Luj56CB57yW5YaZIOKGkiDosIPnlKggb3B0aW1pemVGdWxsV29ya2Zsb3dQcm9tcHQoKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlTGlzdFByb21wdFRlbXBsYXRlID0gYCMg5L2g5pivQVBQ5Lqn5ZOB57uP55CG5LiT5a6277yM546w5Zyo6ZyA6KaB5L2g5qC55o2u55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w77yM6YG15b6qXCLliIbmnpDop4TliJlcIuWIhuaekOWHuuaJgOmcgOimgeeahOWujOaVtOeahOmhtemdouWIl+ihqOOAglxuXG4jIyDliIbmnpDop4TliJlcbuS7peS4i+aWueazleiuuuWIhuS4uuWkmuS4quatpemqpO+8jOmHjeeCueeqgeWHuuKAnOmAkOmhtemdouWFg+e0oOKGkuWPr+eCueKGkui3s+i9rOKAneWIhuaekOaAnei3r+OAglxuXG4jIyDkuIDjgIHmqKHlnZfmi4bop6NcblxuMS4gKirmi4bop6PmoLjlv4PkuJrliqHmqKHlnZcqKiAgXG4gICAtIOWwhuaVtOS4qiBBUFAg5YiG5oiQ5a6M5pW05a6M5ZaE55qE6Iul5bmy5aSn5qih5Z2X77yM5L2g6ZyA6KaB6YCJ5Y+W5LiA5Liq5biC6Z2i5LiK5YW45Z6L55qE55So5oi36YeP5aSn55qE57G75Ly8QVBQ5p2l5YiG5p6Q5a6D55qE5omA5pyJ5Yqf6IO95qih5Z2X77yM54S25ZCO5YWo6YOo5YiX5Ye65p2l77yM57ud5bqm5LiN5YWB6K645ryP5o6J44CCIFxuXG4jIyDkuozjgIHmr4/kuKrpobXpnaLnmoTigJzlhYPntKDihpLlj6/ngrnihpLot7PovazigJ3liIbmnpDopoHngrlcblxuPiAqKuaguOW/g+aAnei3r++8mioqICBcbj4g5a+55q+P5Liq6aG16Z2i77yM5YOP5omr6Zu35LiA5qC34oCc54K55Lqu4oCd5a6D5LiK6Z2i5omA5pyJ5Y+v5Lqk5LqS5YWD57Sg77yM5rK/552A4oCc5YWD57Sg5Y+v54K54oaS6Lez6L2s55uu5qCH4oCd5LiA6Lev5bu25Ly477yM6YCQ5bGC5Y+R546w5bm26KGl5YWF5pu05aSa6aG16Z2i5oiW5by556qX44CCXG5cbjEuICoq6K+G5Yir6aG16Z2i5YWD57SgKiogIFxuICAgLSAqKumhtemdouahhuaetioq77ya5rWP6KeI6aG16Z2i5pW05L2T5biD5bGA77yI5aaC6aG26YOo5a+86Iiq44CBVGFi44CB5YiX6KGo44CB6KGo5Y2V44CB5bqV6YOo5oyJ6ZKu562J77yJ44CCICBcbiAgIC0gKirliJflh7rmiYDmnInph43opoHmjqfku7YqKu+8miAgXG4gICAgIC0g6L6T5YWl5qGG44CB5oyJ6ZKu44CB5Zu+54mH44CB5YiX6KGo6aG544CB6ZO+5o6l5paH5a2X44CBVGFiIOmhueOAgeS4i+aLieeureWktOOAgeaCrOa1ruaMiemSruOAgeWbvuagh+OAgeWkjemAiS/ljZXpgInmjInpkq7nrYnjgIJcblxuMi4gKirmoIforrDlj6/ngrnlh7vlhYPntKAqKiAgXG4gICAtIOWcqOS4iui/sOaOp+S7tuS4re+8jOWIpOaWreWTquS6m+aYr+KAnOWPr+eCueWHu+KAne+8miAgXG4gICAgIC0gKirmmL7mgKfmjInpkq4qKu+8iOaPkOS6pC/noa7orqQv5Y+W5raIL+S4i+S4gOatpe+8iSAgXG4gICAgIC0gKirlj6/lsZXlvIDmoIfpopgv5Y2h54mHKirvvIjngrnlh7vlsZXlvIDmm7TlpJrvvIkgIFxuICAgICAtICoq5bim6ZO+5o6l55qE5paH5a2XKirvvIjljY/orq7jgIHpmpDnp4HjgIHms6jlhozjgIHlv5jorrDlr4bnoIHnrYnvvIkgIFxuICAgICAtICoq5YiX6KGo6aG5L+e9keagvOWNoeeJhyoqICBcbiAgICAgLSAqKuWbvuWDj+e8qeeVpeWbvuOAgei9ruaSreWbvuafkOS6m+WPr+eCueWHu+WMuuWfnyoqICBcbiAgICAgLSAqKuWvvOiIqui/lOWbni/lhbPpl60v6I+c5Y2V5Zu+5qCHKiogIFxuXG4zLiAqKumAkOS4gOWIl+WHuuKAnOeCueWHu+KGkui3s+i9rOebruagh+KAnSoqICBcbiAgIC0g5a+55q+P5Liq5Y+v54K55Ye75YWD57Sg77yM5piO56Gu54K55Ye75ZCO77yaICBcbiAgICAgMS4g6Lez6L2s5Yiw5ZOq5Liq6aG16Z2i5oiW5by556qX77yfICBcbiAgICAgMi4g5omA6ZyA5LiK5LiL5paHL+WPguaVsO+8nyAgXG4gICAgIDMuIOWmguaenOinpuWPkeeahOaYr+KAnOacrOmhtemdouWGheihjOS4uuKAne+8iOWmguaKmOWPoOOAgeWIt+aWsO+8ie+8jOS5n+imgeagh+aYjuOAgiAgXG5cbiAgIC0gKirnpLrkvosqKu+8iOS7peKAnOWVhuWTgeivpuaDhemhteKAneS4uuS+i++8ie+8miAgXG4gICAgIOmhtemdou+8muWVhuWTgeivpuaDhemhtSAgXG4gICAgIOWFg+e0oO+8miAgXG4gICAgICAgMS4g6L+U5Zue5oyJ6ZKuIOKGkCDngrnlh7sg4oaSIOi/lOWbnuadpea6kOmhte+8iOWIhuexuy/mkJzntKIv5rex5bqm6ZO+5o6l77yJICBcbiAgICAgICAyLiDmlLbol4/lm77moIcg4oaQIOeCueWHuyDihpIgIFxuICAgICAgICAgICAg4oCiIOW3sueZu+W9le+8muagh+iusOW3suaUtuiXj+W5tuaPkOekuuKAnOW3suaUtuiXj+KAnSAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAzLiDliIbkuqvmjInpkq4g4oaQIOeCueWHuyDihpIg5ZSk6LW357O757uf5YiG5Lqr5by556qX77yI5peg5paw6aG16Z2i77yJICBcbiAgICAgICA0LiDop4TmoLzpgInmi6nljLrvvIjmr4/np43op4TmoLzmoIfnrb7vvIkgIFxuICAgICAgICAgICAg4oaQIOeCueWHuyDihpIg5pys6aG16Z2i5YaF5Yi35paw5Lu35qC8L+W6k+WtmCAgXG4gICAgICAgNS4g5pWw6YeP6YCJ5oup5ZmoIOKGkCDngrnlh7sg4oaSIOW8ueWHuuaVsOmHj+iwg+aVtOaOp+S7tu+8iOacrOmhtemdouWGhe+8iSAgXG4gICAgICAgNi4g4oCc5Yqg5YWl6LSt54mp6L2m4oCd5oyJ6ZKuIOKGkCDngrnlh7sg4oaSICBcbiAgICAgICAgICAgIOKAoiDlt7LnmbvlvZUgJiDmnInlupPlrZjvvJrotK3nianovabmlbDph48rMe+8jOW8uea1ruWxguKAnOW3suWKoOWFpei0reeJqei9pu+8jOWOu+afpeeci++8n+KAnSAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAgICAgIOKAoiDlupPlrZjkuI3otrPvvJrlvLnnqpfmj5DnpLrigJzlupPlrZjkuI3otrPigJ0gIFxuICAgICAgIDcuIOKAnOeri+WNs+i0reS5sOKAneaMiemSriDihpAg54K55Ye7IOKGkiAgXG4gICAgICAgICAgICDigKIg5bey55m75b2VICYg5pyJ5bqT5a2Y77ya6Lez6L2s6Iez44CQ56Gu6K6k6K6i5Y2V6aG144CR77yM5pC65bim6K+l5ZWG5ZOB5L+h5oGvICBcbiAgICAgICAgICAgIOKAoiDmnKrnmbvlvZXvvJrot7Povazoh7PjgJDnmbvlvZXpobXpnaLjgJEgIFxuICAgICAgICAgICAg4oCiIOW6k+WtmOS4jei2s++8muW8ueeql+aPkOekuuKAnOW6k+WtmOS4jei2s+KAnSAgXG4gICAgICAgOC4g6K+m5oOF5Yy6IFRhYu+8muKAnOWVhuWTgeivpuaDheKAneOAgeKAnOivhOS7t+KAneOAgeKAnOW4uOingemXruetlOKAnSAgXG4gICAgICAgICAgICDihpAg54K55Ye7IOKGkiDliIfmjaLmnKzpobXpnaLlr7nlupTljLrln58gIFxuICAgICAgIDkuIOWuouacjeaMiemSru+8iOW6lemDqO+8iSDihpAg54K55Ye7IOKGkiDot7Povazoh7PjgJDlrqLmnI3lr7nor53pobXjgJEgIFxuXG4gICAgIOW8guW4uC/ovrnnlYzvvJogIFxuICAgICAgIC0g5ZCO56uv5pWw5o2u5Yqg6L295aSx6LSl77ya5bGV56S64oCc5Yqg6L295aSx6LSl77yM54K55Ye76YeN6K+V4oCd5Y2g5L2N77ybICBcbiAgICAgICAgIOeCueWHu+KAnOmHjeivleKAnSDihpIg6YeN5paw5Y+R6K+35rGC77ybICBcbiAgICAgICAtIOWVhuWTgeW3suS4i+aetu+8muWFqOmhteaPkOekuuKAnOivpeWVhuWTgeW3suS4i+aetuKAne+8jOaJgOaciei0reeJqeaMiemSrue9rueBsO+8myAgXG4gICAgICAgLSBTZXNzaW9uIOi/h+acn++8muW8ueeql+aPkOekuuKAnOivt+mHjeaWsOeZu+W9leKAnSDihpIg6Lez6L2s44CQ55m75b2V6aG16Z2i44CRICBcblxuNC4gKirku6XmraTigJzngrnkuq7igJ3kuIvkuIDlsYLpobXpnaIqKiAgXG4gICAtIOe7p+e7reWvueavj+S4quebruagh+mhtemdouWBmuWQjOagt+eahOKAnOWFg+e0oOKGkuWPr+eCueKGkui3s+i9rOKAneWIhuaekO+8miAgXG4gICAgIC0gKirnmbvlvZXpobXpnaIqKu+8muWIl+WHuui0puWPty/lr4bnoIHovpPlhaXmoYbjgIHnmbvlvZUv5YiH5o2i55m75b2V5pa55byP5oyJ6ZKu44CB5rOo5YaML+W/mOiusOWvhueggS/ljY/orq7pk77mjqXvvIzlubbmoIfms6jlkIToh6rljrvlkJHjgIIgIFxuICAgICAtICoq56Gu6K6k6K6i5Y2V6aG1KirvvJrliJflh7rigJzpgInmi6nlnLDlnYDigJ3igJzpgInmi6nkvJjmg6DliLgv56ev5YiG4oCd4oCc6YCJ5oup6YWN6YCB5pa55byP4oCd4oCc5o+Q5Lqk6K6i5Y2V4oCd5oyJ6ZKu77yM5Y+K5a+55bqU6Lez6L2s44CCICBcbiAgICAgLSDigKblpoLmraTlvqrnjq/vvIznm7TliLDmiYDmnInpobXpnaLnmoTlj6/kuqTkupLlhYPntKDpg73ooqvliIbmnpDlrozmr5XjgIJcblxuNS4gKirkuI3mlq3lj5HnjrDlubbooaXlhYXpgZfmvI/pobXpnaIqKiAgXG4gICAtIOWcqOWIhuaekOi/h+eoi+S4re+8jOWmguaenOWHuueOsOKAnOW8ueeql+KAneKAnOa3seW6pumTvuaOpeaJv+aOpeKAneKAnOadg+mZkOW8ueeql+KAneetiemakOiXj+WFpeWPo++8jOmhu+WwhuWFtuW9k+S9nOeLrOeri+KAnOmhtemdoi/nu4Tku7bigJ3ooaXlhYXvvJogIFxuICAgICAtIOe9kee7nOW8guW4uOW8ueeql+OAgeS8muivnei/h+acn+W8ueeql+OAgeW6k+WtmOS4jei2s+aPkOekuuOAgeS8mOaDoOWIuOWkseaViOaPkOekuuetieOAgiAgXG5cbjYuICoq5omA5pyJ6aG16Z2i6YO95ZCM562J6YeN6KaBKiogIFxuICAgLSDlnKjorr7orqFBUFDml7bvvIzliqHlv4XlsIbmiYDmnInpobXpnaLop4bkuLrlkIznrYnph43opoHvvIzkuI3liIbmoLjlv4PpobXpnaLlkozmrKHopoHpobXpnaLjgILmr4/kuKrpobXpnaLpg73lupTooqvmuIXmmbDlnLDliJflh7rvvIzlubbor6bnu4bmj4/ov7Dlhbblip/og73lkozkuqTkupLmlrnlvI/jgILkvovlpoLvvIzlnKjlnLDlnYDnrqHnkIblip/og73kuK3vvIxcIuWcsOWdgOeuoeeQhumhtVwi5piv5Li76KaB6aG16Z2i55So5LqO5bGV56S65Zyw5Z2A5YiX6KGo77yMXCLmt7vliqDlnLDlnYDpobVcIueUqOS6jui+k+WFpeaWsOWcsOWdgO+8jFwi57yW6L6R5Zyw5Z2A6aG1XCLnlKjkuo7kv67mlLnnjrDmnInlnLDlnYDvvIzov5nkuInkuKrpobXpnaLpg73lupTooqvop4bkuLrlkIznrYnph43opoHjgILorr7orqHmlofmoaPkuK3pnIDor6bnu4borrDlvZXmr4/kuKrpobXpnaLnmoTlhbfkvZPlip/og73lkozot7PovazpgLvovpHvvIzku6Xnoa7kv53orr7orqHnmoTlrozmlbTmgKflkozkuIDoh7TmgKfjgILigJ1cblxuIyMg5LiJ44CB5YW25L2Z5q2l6aqkXG5cbjEuICoq5qCh6aqM5Lia5Yqh6Zet546vKipcbiAgIC0g5oqK5YW45Z6L55So5oi35rWB56iL5a6M5pW06LWw5LiA6YGN77yM56Gu5L+d5q+P5LiA5q2l55qE4oCc5Y+v54K55Ye75YWD57Sg4oaS6Lez6L2s55uu5qCH4oCd6YO95bey5YiX5Ye644CCICBcbiAgIC0g5aaC5p6c57y65bCR5Lit6Ze06aG177yM5YiZ5Zue5Yiw5LiK5LiA5bGC6KGl5YWF5YiG5p6Q44CCXG5cbjIuICoq6KGl5YWF6YCa55SoICYg5YWo5bGA6aG16Z2iKiogIFxuICAgLSAqKuWQr+WKqC/pl6rlsY/pobUqKu+8muWIhuaekOKAnOi3s+i/h+KAneaMiemSruaIluWAkuiuoeaXtue7k+adn+iHquWKqOi3s+i9rOOAgiAgXG4gICAtICoq5byV5a+8L+aWsOaJi+aVmeWtpumhtSoq77ya5YiG5p6Q4oCc5LiL5LiA5q2l4oCd4oCc6Lez6L+H4oCd5oyJ6ZKu55uu5qCH44CCICBcbiAgIC0gKio0MDQv5YWo5bGA6ZSZ6K+v6aG1KirvvJrliIbmnpDigJzph43or5XigJ3igJzov5Tlm57pppbpobXigJ3mjInpkq7nm67moIfjgIIgIFxuICAgLSAqKua3seW6pumTvuaOpeaJv+aOpemhtSoq77ya5YiG5p6Q4oCc5YWI55m75b2V4oaS5YaN6Lez6L2s55uu5qCH4oCd5oiW4oCc55uu5qCH5aSx5pWI4oaSNDA04oCd6YC76L6R44CCICBcblxuMy4gKirovpPlh7rmnIDnu4jmuIXljZUqKiAgXG4gICAtIOi+k+WHuumhtemdouaAu+aVsO+8jOS7peWPiuaMieeFp+aooeWdl+Wxgue6p++8jOWwhuaJgOacieKAnOmhtemdouWQjeensOKAneS7peWIhuWxguWIl+ihqOW9ouW8j+WxleekuuOAgiAgXG4gICAtIOehruS/neavj+S4qumhtemdoumDveW3suKAnOeCueS6ruKAneaJgOacieS6pOS6kuWFg+e0oO+8jOebruagh+mhtemdoumDveWcqOa4heWNleS4reWHuueOsOOAgiAgXG5cbj4gKirmlrnms5XorrrmoLjlv4PlvLrosIPvvJoqKiAgXG4+ICoq4oCc6YCQ6aG16Z2i5YWD57Sg5omr5o+PIOKGkiDmoIforrDlj6/ngrkg4oaSIOa4heaZsOWIl+WHuui3s+i9rOebruagh+KAnSoqIOaYr+iHqumhtuWQkeS4i+OAgeS7juWuj+WIsOW+rueahOaAnei3r++8miAgXG4+IDEuIOWFiOWIl+WHuuWkp+aooeWdl++8myAgXG4+IDIuIOaLhuino+WHuuWQhOaooeWdl+eahOmhtemdou+8myAgXG4+IDMuIOWvueavj+S4qumhtemdouWBmuKAnOWFg+e0oOKGkuWPr+eCueKGkui3s+i9rOKAnemAkOmhueais+eQhu+8myAgXG4+IDQuIOmAmui/h+Wkmui9rumXreeOr+agoemqjO+8jOehruS/neayoeaciemBl+a8j+OAgiAgXG5cbui/meagt++8jOavj+asoee7mOWItuS4gOS4qumhtemdouWOn+Wei++8jOmDveiDveeUn+aIkOS4gOS7veWujOaVtOeahOKAnOWFg+e0oOS6pOS6kui3s+i9rOihqOKAne+8jOS4ulVJ6K6+6K6h546v6IqC5o+Q5L6b5piO56Gu5Y+C6ICD44CCYDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvZGVQcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr3R5cGVzY3JpcHTku6PnoIHkuJPlrrbvvIzmoLnmja4n6KeE5YiZJ+OAgSfkvovlrZAn5ZKM55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w77yM5a6M5oiQ5Luj56CB5byA5Y+RXG5cbiMjIOmhueebruahhuaetuaPj+i/sFxuLSDmlbTkuKrpobnnm67moYbmnrbliIbkuLrnqIvluo/lhaXlj6NBcHBsaWNhdGlvbi50c+OAgeeoi+W6j+WFqOWxgOmdmeaAgeWPmOmHj1N0YXRpY0RhdGEudHPjgIHmiYDmnInpobXpnaJwYWdl5paH5Lu25aS544CBVUnnu4Tku7blupN1aWxpYuaWh+S7tuWkueOAgeWQjuerr+aOpeWPo0FsbEJhY2tFbmRBcGkudHPjgIHllK/kuIDnmoTog73lipvmlrnms5VBbGxGdW5jdGlvbi50c+OAglxuLSDov5nmmK/kuIDkuKrmlrDlnovlvIDlj5HmoYbmnrbvvIxVSeeVjOmdouW3sue7j+S9v+eUqOWPr+inhuWMluW3peWFt+eUn+aIkOS6huaJgOacieeahOmdmeaAgeeahFVJ6aG16Z2i5LqG77yM54S25ZCO5L2g6ZyA6KaB5L2/55SodHPku6PnoIHlvIDlj5HkuJrliqHpgLvovpHkuI5VSeS6pOS6kumAu+i+ke+8jOWboOatpOe8luWGmXRz5Luj56CB5Y+q6ZyA6KaB5oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5a6M5oiQ5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLnmoTlvIDlj5HjgIJcblxuIyMg6KeE5YiZ77yaXG4x44CBVUnnlYzpnaLlt7Lnu4/lvIDlj5Hlrozmr5XvvIzkuI3pnIDopoHlop7liKDmlLnku7vkvZXpnZnmgIFVSeeVjOmdouOAglxuMuOAgeS9oOWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOS9v+eUqHRz5Luj56CB5a6M5oiQ5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLnmoTlvIDlj5FcbjPjgIHor7fkuKXmoLzmjInnhafllK/kuIDnmoTog73lipvmlrnms5VBbGxGdW5jdGlvbi50c++8jOS4jeimgeaWsOWinuOAgeWIoOmZpOaIluS/ruaUueS7u+S9lUFsbEZ1bmN0aW9u5o6l5Y+j5aOw5piO77yb5Lmf5LiN6KaB6LCD55So5YW25LuW5pyq5ZyoQWxsRnVuY3Rpb27kuK3lh7rnjrDnmoTlh73mlbDmiJbmqKHlnZdcbjTjgIHmiYDmnInlkI7nq69BUEnosIPnlKjlv4Xpobvkvb/nlKhBbGxCYWNrRW5kQXBp57G75Lit5a6a5LmJ55qE5pa55rOV77yM5LiN5YWB6K645L2/55So5pyq5ZyoQWxsQmFja0VuZEFwaeS4reWumuS5ieeahOWQjuerr0FQSeOAglxuNeOAgVVJ55WM6Z2i44CBVUnpu5jorqTmlbDmja7jgIFVSeagt+W8j+W3sue7j+WFqOmDqOeUn+aIkOWlveeahOS6hu+8jOS9oOS4jeiDveWcqGluaXRWaWV35pa55rOV6YeM6Z2i5pOF6Ieq5re75Yqg5LiA5Lqbdmlld+eahFVJ5qC35byP5oiW5bGe5oCn562J5Yid5aeL5YyW77yM6Zmk6Z2e55So5oi36ZyA5rGC5o+P6L+w5piO56Gu5oyH5Ye66ZyA6KaB5pu05pS55ZOq5Lqb5qC35byP5oiW5bGe5oCn44CCXG4244CB5a2X56ym5Liy6KaB5Lul5Y2V5byV5Y+35p2l5YaZ77yM5aaC77yaJ+aIkeeahCfjgIJcbjfjgIHku7vkvZXmlrnms5Xlh73mlbDlrprkuYnvvIzkuI3lvpfkvb/nlKhhc3luY+WSjFByb21pc2XvvIzmiYDmnInlvILmraXmk43kvZzlv4Xpobvkvb/nlKjnrq3lpLTlh73mlbDjgIJcbjjjgIHmiYDmnIlQYWdl55qE5a2Q57G777yM6YO95YWB6K645re75Yqg5p6E6YCg5Ye95pWw5ZKM5p6E6YCg5Ye95pWw55qE5Y+C5pWw77yM6L+Z5Lqb5Y+C5pWw5bCx55So5p2l6aG16Z2i6Lez6L2s5pe26aG16Z2i5LmL6Ze05Lyg6YCS5pWw5o2u5L2/55So77yM5q+U5aaC77ya5ZWG5ZOB5YiX6KGo6aG1UHJvamVjdExpc3RQYWdl6Lez5Yiw5ZWG5ZOB6K+m5oOF6aG1UHJvamVjdERldGFpbFBhZ2XvvIzpgqPkuYhQcm9qZWN0TGlzdFBhZ2XlupTor6XopoHkvKDnu5lQcm9qZWN0RGV0YWlsUGFnZeS4gOS4quWPguaVsO+8mnByb2R1Y3RJROOAguaJgOS7pe+8jFByb2plY3REZXRhaWxQYWdl55qE6aG16Z2i5Y+C5pWw5aOw5piO5ZKM5p6E6YCg5Ye95pWw5bqU6K+l5piv6L+Z5qC35YaZ77yacHJpdmF0ZSBwcm9kdWN0SUQ6IHN0cmluZ1xuXG5cdGNvbnN0cnVjdG9yKHByb2R1Y3RJRDogc3RyaW5nKSB7XG5cdFx0c3VwZXIoKVxuXHRcdHRoaXMucHJvZHVjdElEID0gcHJvZHVjdElEXG5cdH3jgIJcbjnjgIFWaWV355u45YWz5Y+Y6YeP5b+F6aG75ZyoeHh4UGFnZeexu+W8gOWni+aXtuWjsOaYju+8jOW/hemhu+WjsOaYjuWFt+S9k+eahFZpZXfnsbvlnovlpoLvvJpJbnB1dFZpZXfvvIzogIzkuI3mmK/nm7TmjqXlo7DmmI7nsbvlnovkuLpCYXNlVmlld++8jOaJgOaciVZpZXflv4XpobtmaW5kVmlld0J5SUTliJ3lp4vljJbvvIzlpoLvvJpzYXZlQnV0dG9uOiBCdXR0b25WaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVCdXR0b24nKSBhcyBCdXR0b25WaWV344CC6L+Z6YeM55qEZmluZFZpZXdCeUlE5YW25LitaWTlj4LmlbDmmK/lnKjor6XpobXpnaLnmoRodG1s5paH5Lu26YeM6Z2i6I635Y+W5Yiw55qEaWTlgLzjgIJcbjEw44CB5ZON5bqU5byP5byV55SocmVm55qE5L2/55So77ya57G75Z6LdnVlM+eahHJlZu+8jOWPr+S7peWwhuS4gOS4quWAvOWPmOaIkOWTjeW6lOW8j+eahO+8jOS7juiAjOWcqOivpeWAvOWPkeeUn+WPmOWMluaXtu+8jOiHquWKqOinpuWPkeebuOWFs+eVjOmdoueahOabtOaWsOOAglxuMTHjgIFjb21wdXRlZOeahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRjb21wdXRlZO+8jOW9k+S9oOmcgOimgeagueaNruS4gOS4quaIluWkmuS4quWTjeW6lOW8j+a6kChyZWYp6K6h566X5Ye65LiA5Liq5paw55qE5YC85pe277yM5bCx55SoIGNvbXB1dGVkXG4xMuOAgeWmguaenOaYr+WkmuS4qumhtemdouWFseeUqOeahOaVsOaNruWPmOmHj++8jOWPr+S7peiAg+iZkeWjsOaYjuS4uuWFqOWxgOmdmeaAgeWPmOmHj+OAglxuMTPjgIHlhajlsYDpnZnmgIHlj5jph4/lnKjlhbPpl61BUFDmiJbogIXnvZHpobXlkI7kvJrmuIXnkIbmjonnmoTvvIzmiYDku6XkvaDopoHmgJ3ogIPmuIXmpZrlk6rkupvmlbDmja7lj5jph4/pnIDopoHmjIHkuYXljJblgqjlrZjvvIzlk6rkupvmmK/lhajlsYDpnZnmgIHlj5jph4/vvIzmjIHkuYXljJbmjqXlj6PvvJpzYXZlRGF0YWJhc2VYeHjlkoxnZXREYXRhYmFzZURhdGFYeHjvvIzmr5TlpoLmmK/lkKblt7Lnu4/lvLnlh7rov4flub/lkYrlvLnmoYbvvIzov5nkuKrlupTor6XmjIHkuYXljJblgqjlrZjjgIJcbjE044CB5omA5pyJ55qE572R57uc5oum5oiq55qE5YWo5bGA57uf5LiA5aSE55CG6ZyA6KaB5ZyoQXBwbGljYXRpb27kuK3nmoRvbkdsb2JhbE5ldFN1Y2Nlc3NJbnRlcmNlcHQo6IGU572R5oiQ5Yqf5ZCO77yM5ZCO56uv5Lia5Yqh5q2j56Gu5LiO6ZSZ6K+v6YO95Lya5Zue6LCD5Yiw6L+Z6YeM77yM5omA5Lul5Zyo6L+Z6YeM5Y+v57uf5LiA5aSE55CG5Lia5Yqh6ZSZ6K+v56CBKeaIlm9uR2xvYmFsTmV0RmFpbEludGVyY2VwdCjnvZHnu5zkuI3pgJrvvIzov57mjqXlpLHotKXmg4XlhrXkvJrlm57osIPliLDov5nph4wp6YeM6Z2i5aSE55CG44CCXG4xNeOAgemhtemdoui3s+i9rOS9v+eUqEFsbEZ1bmN0aW9uLm5hdmlnYXRlVG/lrp7njrDvvIxuYXZpZ2F0ZVRv5Lyg5YWlUGFnZeeahOWtkOexu+Wvueixoe+8jOWmgu+8mkFsbEZ1bmN0aW9uLm5hdmlnYXRlVG8obmV3IFByb2R1Y3RQYWdlKHRoaXMucHJvZHVjdElEKSnjgIJcbjE244CB6aG16Z2i5YaF55qE572R57uc6K+35rGC5Lia5Yqh5aSE55CG5LiN5b6X5YaZ5ZyoQXBwbGljYXRpb27nmoRvbkdsb2JhbE5ldFN1Y2Nlc3NJbnRlcmNlcHTph4zpnaLjgIJcbjE344CB5a2X56ym5Liy5LiN5b6X55u05o6l6L+b6KGMYm9vbGVhbui/kOeul+eEtuWQjui1i+WAvOe7mWJvb2xlYW7nsbvlnovnmoTlj5jph4/vvIzpnIDopoHlnKjlrZfnrKbkuLLliY3pnaLmt7vliqDkuKTkuKrpnZ7ov5DnrpfvvJohIeOAguavlOWmguato+ehrueahOWGmeazle+8mmNvbnN0IGlzQWRkID0gISF0aGlzLmlucHV0Vmlldy50ZXh0ICYmIGlzTmV3XG4xOOOAgeWmgueUqOaIt+aPj+i/sOayoeacieaYjuehruivtOaYjumcgOimgXRvYXN05o+Q56S677yM5L2g5LiN5b6X5pOF6Ieq6L+b6KGMVG9hc3TjgIJcbjE544CB5bu25pe25omn6KGMQWxsRnVuY3Rpb24uc2V0VGltZW91dOezu+e7n+S8muiHquWKqOa4heeQhnRpbWVvdXTvvIzku6PnoIHkuIrnu53lr7nkuI3og73ov5vooYxjbGVhVGltZW91dOetieexu+S8vOaTjeS9nO+8jOWboOatpHNldFRpbWVvdXTkuZ/kuI3pnIDopoHlo7DmmI7lj5jph4/ljrvmjqXmlLZzZXRUaW1lb3V06L+U5Zue55qE5byV55So44CCXG4yMOOAgeaJgOacieS7o+eggeS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOaVsOaNruWunuS9k2VudGl0ee+8jOW/hemhu+S9v+eUqGNsYXNz5a6a5LmJ77yM5LiN5b6X5L2/55SoaW50ZXJmYWNl77yM5L2/55So5LmL5YmN6ZyA6KaBbmV35a6e5L6L5YyWXG4yMeOAgeavj+S4gOS4qumhtemdoijlpoJsb2dpblBhZ2Up5bu66K6u5ZyocGFnZeaWh+S7tuWkueS4i+mdouWIm+W7uuS4gOS4qumhtemdouaWh+S7tuWkuSjlpoJsb2dpbinvvIznhLblkI7pobXpnaLnmoR0c+aWh+S7tijlpoJsb2dpblBhZ2UudHMp5Yib5bu65Zyo6aG16Z2i5paH5Lu25aS55LiL6Z2i77yM6aG16Z2i5paH5Lu25aS55LiL6L+Y6ZyA5Yib5bu65LiA5Liq6aG16Z2i5pWw5o2udHPmlofku7Yo5aaCbG9naW5QYWdlRGF0YS50cynvvIzov5nmoLflpoJsb2dpblBhZ2XotJ/otKPkuJrliqHpgLvovpHlkozkuqTkupLpgLvovpHvvIzlpoJsb2dpblBhZ2VEYXRh6LSf6LSj5pWw5o2u5aOw5piO5a6a5LmJ44CB5Yid5aeL5YyW5LiO566h55CG562J44CCXG4yMuOAgemhtemdouaWh+S7tuWkueS4i+mdoueahOmhtemdomh0bWwo5aaCbG9naW5QYWdlVmlldy5odG1sKe+8jOi/meaYr+WPr+inhuWMluW3sue7j+eUn+aIkOeahFVJ55WM6Z2i55qE6IqC54K55pig5bCE77yM6K+l5paH5Lu25Y+q5piv55So5LqO5L2g5pu05Yqg55CG6Kej6K+l6aG16Z2i55qEVUnnu5PmnoTlkoznu4Tku7blkb3lkI3ogIzorr7nq4vnmoTvvIzor6Xmlofku7bkuI3lj4LkuI7nvJbor5HvvIzku4Xku4XmmK/kv6Hmga/mlofmoaPmj5DnpLrkvZznlKjvvIzlm6DmraTkuI3lj6/ku6Xkv67mlLnov5nkuKpodG1s5paH5Lu244CCXG4yM+OAgeWPque7meivpemhtemdouS9v+eUqOeahGVudGl0eemcgOimgeW7uueri+WcqOivpemhtemdouaWh+S7tuWkueS4i+mdoueahGVudGl0eeaWh+S7tuWkueS4i+mdouOAglxuMjTjgIFsaWLmlofku7blpLnmmK/miYDmnIlVSee7hOS7tuWSjOiDveWKm+aWueazleeahOWumuS5ieWjsOaYju+8jOW6leWxguahhuaetuW3suazqOWFpeWunueOsOWFt+S9k+mAu+i+ke+8jOWboOatpOS9oOS4jemcgOimgeS5n+S4jeWFgeiuuOWinuWIoOaUuWxpYuaWh+S7tuWkuemHjOmdoueahOS7o+eggeOAglxuXG4jIyDkvovlrZDvvJpcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVQYWdlIGV4dGVuZHMgUGFnZSB7XG4gICAgLy8g5pWw5o2u5a+56LGh5a6e5L6L5aOw5piOXG4gICAgcHJpdmF0ZSBob21lUGFnZURhdGE6IEhvbWVQYWdlRGF0YSA9IG5ldyBIb21lUGFnZURhdGEoKVxuICAgIC8vIOinhuWbvuWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgc2F2ZUJ1dHRvbjogQnV0dG9uVmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQnV0dG9uJykgYXMgQnV0dG9uVmlld1xuICAgIHByaXZhdGUgdGl0bGVUZXh0VmlldzogVGV4dFZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgndGl0bGVUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlQ291bnRUZXh0VmlldzogVGV4dFZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUNvdW50VGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgYWxsU2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ2FsbFNhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIHNhdmVUaXBzVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVUaXBzVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIC8vIHJlZuaVsOaNruWvueixoeW8leeUqOWjsOaYjlxuICAgIHByaXZhdGUgc2F2ZUNvdW50UmVmID0gcmVmPG51bWJlcj4odGhpcy5ob21lUGFnZURhdGEuc2F2ZUNvdW50KVxuICAgIHByaXZhdGUgYWxsU2F2ZUNvdW50UmVmID0gcmVmPG51bWJlcj4oMClcbiAgICAvLyDmma7pgJrlj5jph4/lo7DmmI5cbiAgICBwcml2YXRlIHNhdmVUaXBzID0gJydcblxuICAgIHByb3RlY3RlZCBvblBhZ2VDcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm9uUGFnZUNyZWF0ZSgpXG4gICAgICAgIHRoaXMuaW5pdERhdGEoKVxuICAgICAgICB0aGlzLmluaXRWaWV3KClcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVUaXBzID0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWUgPiA1ID8gJ+S/neWtmOaIkOWKnycgOiAn5L+d5a2Y5aSx6LSlJ1xuICAgICAgICB0aGlzLmFsbFNhdmVDb3VudFJlZiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGxldCBvdGhlckNvdW50ID0gMlxuICAgICAgICAgICAgb3RoZXJDb3VudCArPSB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZVxuICAgICAgICAgICAgaWYgKG90aGVyQ291bnQgPiA1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudCArIDVcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudCArIDEwXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLmFsbFNhdmVDb3VudFRleHRWaWV3LnRleHQgPSB0aGlzLmFsbFNhdmVDb3VudFJlZi52YWx1ZSArICfkuKonXG4gICAgICAgIHRoaXMuc2F2ZUJ1dHRvbi5vbkNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYXZlQ291bnRSZWYudmFsdWUrK1xuICAgICAgICAgICAgdGhpcy5ob21lUGFnZURhdGEudGl0bGUgPSAnSG9tZSBQYWdlJ1xuICAgICAgICAgICAgdGhpcy50aXRsZVRleHRWaWV3LnRleHQgPSB0aGlzLmhvbWVQYWdlRGF0YS50aXRsZVxuICAgICAgICAgICAgdGhpcy5zYXZlVGlwc1RleHRWaWV3LnRleHQgPSB0aGlzLnNhdmVUaXBzXG4gICAgICAgICAgICBBbGxGdW5jdGlvbi5zYXZlRGF0YWJhc2VOdW1iZXIoJ3NhdmVDb3VudCcsIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVQYWdlRGF0YSB7XG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnJ1xuICAgIHB1YmxpYyBzYXZlQ291bnQ6IG51bWJlciA9IDBcbiAgICBwdWJsaWMgdXNlckluZm86IEJvb2tJbmZvID0gbmV3IEJvb2tJbmZvKClcbn1gO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr+S4gOWQjei1hOa3sVVJL1VY6K6+6K6h5LiT5a625ZKM5YmN56uv5byA5Y+R5LiT5a6277yM5oul5pyJ5Liw5a+M55qE5bqU55So6K6+6K6h57uP6aqM77yM57K+6YCa6Iu55p6c5Lq65py655WM6Z2i6K6+6K6h5oyH5Y2X44CC5L2g55qE5Lu75Yqh5piv5qC55o2uJ+eUqOaIt+mcgOaxguaPj+i/sCfluK7liqnmiJHlrozmiJDkuIDkuKppT1MgQXBw55qE5Y6f5Z6L6K6+6K6h77yM546w5Zyo6ZyA6KaB5qC55o2uJ+eUn+aIkOinhOWImSflkown6ZyA5rGC5o+P6L+wJ+adpeeUn+aIkOmdmeaAgWh0bWzku6PnoIHvvIzlubbmjInnhacn5YaZ5YWl5paH5Lu26KeE5YiZJ+WwhueUn+aIkGh0bWzlhpnliLBodG1s5paH5Lu244CCXG5cbiMjIOivt+aMieeFp+S7peS4i+imgeaxgui+k+WHuuS4gOWll+WujOaVtOeahOmrmOi0qOmHj0FQUOWOn+Wei+Wbvu+8mlxuXG4xLiDorr7orqHnm67moIdcbiAgIC0g5Yib5bu656ym5ZCI6Iu55p6c5Lq65py655WM6Z2i5oyH5Y2XKEh1bWFuIEludGVyZmFjZSBHdWlkZWxpbmVzKeeahGlPU+WOn+eUn+mjjuagvOiuvuiuoVxuICAgLSDnoa7kv53ljp/lnovlm77og73nm7Top4LlsZXnpLpBUFDnmoTlip/og73mtYHnqIvlkoznlKjmiLfkvZPpqoxcblxuMi4g6K6+6K6h6KeE6IyDXG4gICAtIOS9v+eUqOacgOaWsOeahGlPU+iuvuiuoeWFg+e0oOWSjOS6pOS6kuaooeW8j1xuICAgLSDpgbXlvqppUGhvbmUgMTYgUHJv5bC65a+46KeE5qC8KOWuveW6pjM5M3B46auY5bqmODUycHgpXG4gICAtIOmHh+eUqOaYjuS6ruOAgea0u+WKm+eahOmFjeiJsuaWueahiO+8jOespuWQiOWBpei6q+W6lOeUqOawm+WbtFxuICAgLSDph43op4bml6Dpmpznoo3orr7orqHvvIznoa7kv53mloflrZflr7nmr5TluqblkozkuqTkupLljLrln5/lpKflsI/lkIjpgIJcbiAgIC0g5L2/55So566A5rSB5riF5pmw55qE5Zu+5qCH5ZKM5o+S5Zu+6aOO5qC8XG4gICAtIOaWh+Wtl+eahOWkp+Wwj+W/hemhu+imgeazqOaEj++8jOS4jeiDveWkp++8jOaWh+Wtl+eahOWkp+Wwj+imgeWBj+Wwj+eahOmjjuagvOadpei/m+ihjOiuvuiuoeOAglxuICAgLSDlpoLmnpzmmK/pobXpnaLljaHniYfnu4Tku7bvvIzopoHnibnliKvms6jmhI/opoHmsLTlubPlsYXkuK1cbiAgIC0g5aaC5p6c6IqC54K55piv5Y+v5Lul54K55Ye755qE77yMY3Nz6ZyA5re75Yqg5LiK5ZCI6YCC55qEaG92ZXLnmoTmoLflvI9cbiAgIC0g6aG16Z2i55qE5a+86Iiq5qCP44CB5pON5L2c5qCP44CB5pCc57Si5qCP44CB562b6YCJ5qCP562JYmFy57uE5Lu277yM6KaB5rOo5oSP5LiK5LiLcGFkZGluZ+eahOWAvOW6lOivpeaYr+S4gOagt+eahO+8jOe7neWvueS4jeiDveiuvue9ruS4jeS4gOagt+eahOWAvFxuICAgLSDpobXpnaLnmoTpobbpg6jlkozlupXpg6jopoHov5vooYzmsonmtbjlvI/orr7orqFcbiAgIC0g6K6+6K6h6aG16Z2i5LmL5YmN6KaB5oCd6ICD5riF5qWa6K+l6aG16Z2i5YaF5a655piv5ZCm5bqU6K+l5LiA5Liq5bGP5bmV5pi+56S65a6M5q+V77yM5LiN6ZyA5rua5Yqo44CCXG5cbjMuIGh0bWzlrp7njrBcbiAgLSDkvb/nlKggSFRNTCArIFRhaWx3aW5kIENTU++8iOaIliBCb290c3RyYXDvvInnlJ/miJDmiYDmnInljp/lnovnlYzpnaLvvIzlubbkvb/nlKggRm9udEF3ZXNvbWXvvIjmiJblhbbku5blvIDmupAgVUkg57uE5Lu277yJ6K6p55WM6Z2i5pu05Yqg57K+576O44CB5o6l6L+R55yf5a6e55qEIEFwcCDorr7orqHjgIJcbiAgLSDmr4/kuKrnlYzpnaLlupTkvZzkuLrni6znq4vnmoQgSFRNTCDmlofku7blrZjmlL7vvIzkvovlpoIgaG9tZS5odG1s44CBcHJvZmlsZS5odG1s44CBc2V0dGluZ3MuaHRtbCDnrYnjgIJcbiAgLSBpbmRleC5odG1sIOS9nOS4uuS4u+WFpeWPo++8jOS4jeebtOaOpeWGmeWFpeaJgOacieeVjOmdoueahCBIVE1MIOS7o+egge+8jOiAjOaYr+S9v+eUqCBpZnJhbWUg55qE5pa55byP5bWM5YWl6L+Z5LqbIEhUTUwg54mH5q6177yM5bm25bCG5omA5pyJ6aG16Z2i55u05o6l5bmz6ZO65bGV56S65ZyoIGluZGV4IOmhtemdouS4re+8jOiAjOS4jeaYr+i3s+i9rOmTvuaOpe+8jOiAjOS4lOavj+S4gOS4qumhtemdoueahGlmcmFtZeS5i+mXtOW/hemhu+aciTIwcHjnmoTlt6blj7PkuIrkuIvpl7Tot53jgIJcbiAgLSDkuLrmr4/kuKrlsY/luZXmt7vliqDorr7lpIfovrnmoYbjgIHmiYvmnLrpobbpg6jnirbmgIHmoI8o6K6+5a6a5Li6MjJweO+8jOaYvuekuuaJi+acuuaXtumXtOOAgeS/oeWPt+OAgXdpZmnnrYkp44CB5omL5py65bqV6YOo5qiq5p2h5qCPKOiuvuWumuS4ujIycHjvvIzmmL7npLrmqKrmnaEp77yM5LiN6KaB6YGu5L2P5bGP5bmV5YaF55qE5YaF5a6577yM5omL5py66aG26YOo54q25oCB5qCP5ZKM5omL5py65bqV6YOo5qiq5p2h5qCP6ZyA6KaB5a6e546w5rKJ5rW45byP77yM5Zug5q2k55yL5oOF5Ya16K6+572u6IOM5pmv6Imy44CCXG4gIC0g5YOP57Sg5bC96YeP5L2/55SocHjvvIzkuI3kvb/nlKhyZW3lkoxlbeOAglxuICAtIOS7u+S9leWcsOaWuemDveS4jemcgOimgeiuvue9rm92ZXJmbG93OiBoaWRkZW7vvIzlv4XpobvorrDkvY9cbiAgLSDmr4/kuIDkuKpodG1s5Luj56CB5paH5Lu277yM5Y+q5pi+56S66aG16Z2i5ZCN5a2X5ZKM6aG16Z2iaWZyYW1l5bCx6KGM77yM5LiN6ZyA6KaB5pi+56S65Lu75L2V5YW25LuW6Z2e6K6+6K6h56i/5YaF5a6555qE5o+Q56S644CB5oC757uT5paH5a2X44CCXG4gIC0gaHRtbOeahOWGheWuuemZpOmdnuacieimgeaxguS9v+eUqOmdnuS4reaWh++8jOm7mOiupOmDveS9v+eUqOS4reaWh1xuICAtIOiPnOWNlemhueaWh+Wtl+OAgeaMiemSruaWh+Wtl+OAgVXlhoXlrrnmmK/moIfnrb7miJbku7fmoLzmiJbnirbmgIHnrYnoioLngrnlv4Xpobvorr7nva4gXCJ3aGl0ZS1zcGFjZTogbm93cmFwXCLvvIzlkKbliJnkvJrlh7rnjrDkuI3nvo7op4LnmoTmjaLooYzmmL7npLrjgIJcbiAgLSDlvZPkvb/nlKhDU1MgRmxleOW4g+WxgOaXtu+8jOivt+WKoeW/heazqOaEj++8muWmguaenOeItuWuueWZqOiuvue9ruS6hiBcImZsZXg6IDFcIiDlkowgXCJvdmVyZmxvdy15OiBhdXRvXCLvvIzlhbblrZDlhYPntKDljbPkvb/orr7nva7kuoblm7rlrprpq5jluqbvvIjlpoIgaGVpZ2h0OiAzMDBweO+8ie+8jOS5n+WPr+iDveWboOS4uum7mOiupOeahCBcImZsZXgtc2hyaW5rOiAxXCIg6KKr5Y6L57yp6IezMOmrmOW6puOAguino+WGs+aWueahiOaYr+S4uumcgOimgeS/neaMgeWbuuWumumrmOW6pueahGZsZXjlrZDlhYPntKDmmL7lvI/mt7vliqAgXCJmbGV4LXNocmluazogMFwi77yM6Ziy5q2i6KKrZmxleOW4g+WxgOWOi+e8qeOAglxuICAtIOWcqOe8luWGmeawtOW5s+a7muWKqOeahOagh+etvuagj+aIluexu+S8vOeahFVJ57uE5Lu25pe277yM5Yqh5b+F5rOo5oSP77yaMSkg54i25a655Zmo5b+F6aG76K6+572uIFwiZGlzcGxheTogZmxleFwiICsgXCJhbGlnbi1pdGVtczogY2VudGVyXCIg56Gu5L+d5omA5pyJ5qCH562+5Z6C55u05bGF5Lit5a+56b2Q77ybMikg5qCH562+5YWD57Sg5pys6Lqr5Lmf6KaB5re75YqgIFwiZGlzcGxheTogZmxleFwiICsgXCJhbGlnbi1pdGVtczogY2VudGVyXCIg56Gu5L+d5YaF6YOo5paH5a2X5Z6C55u05bGF5Lit5LiU5LiN6KKr6YGu5oyh44CC57y65bCR6L+Z5Lqb6K6+572u5Lya5a+86Ie05qCH562+6auY5bqm5LiN5LiA6Ie044CB5paH5a2X5pi+56S65byC5bi444CCXG4gIC0gaW5kZXguaHRtbOeahOagt+W8j+WSjOmHjOmdoueahOmhtemdomlmcmFtZeeahOS7o+eggeWkp+amguWmguS4i++8mlxuICAgIDxzdHlsZT5cbiAgICAgICAgYm9keSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICAgICAgICB9XG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzkzcHgsIDFmcikpO1xuICAgICAgICAgICAgZ2FwOiA0MHB4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5waG9uZS1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnBob25lLWZyYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiAzOTNweDtcbiAgICAgICAgICAgIGhlaWdodDogODUycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsMCwwLDAuMyk7XG4gICAgICAgIH1cbiAgICAgICAgLnNjcmVlbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIH1cbiAgICA8L3N0eWxlPlxuICAgIDxib2R5PlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBob25lLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtdGl0bGVcIj54eHjpobU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1mcmFtZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBzcmM9XCJ4eHguaHRtbFwiPjwvaWZyYW1lPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAuLi5cbiAgICA8L2Rpdj5cbiAgLSDmr4/kuIDkuKpodG1s6aG16Z2i55qE57uT5p6E5LuO5LiK5Yiw5LiL77ya5omL5py66aG26YOo54q25oCB5qCP44CB5omL5py65bqV6YOo5Li76aG15oyH56S65qiq5p2h77yMeHh46aG16Z2i5a655Zmo44CCaHRtbOS7o+eggeWkp+amguWmguS4i++8mlxuICAgPHN0eWxlPlxuICAgIGJvZHkge1xuICAgICAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICB3aWR0aDogMzkzcHg7XG4gICAgICAgIGhlaWdodDogODUycHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAuLi5cbiAgICB9XG4gICAgLnN0YXR1cy1iYXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgLi4uXG4gICAgfVxuICAgIC5wYWdlLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDIycHggMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG4gICAgLmhvbWUtaW5kaWNhdG9yIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAuLi5cbiAgICB9XG4gICAgPC9zdHlsZT5cbiAgPGJvZHkgbmFtZT1cIummlumhtVwiPlxuICAgIDxkaXYgbmFtZT1cIuaJi+acuumhtumDqOeKtuaAgeagj1wiIGNsYXNzPVwic3RhdHVzLWJhclwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgbmFtZT1cIuaJi+acuuW6lemDqOS4u+mhteaMh+ekuuaoquadoVwiIGNsYXNzPVwiaG9tZS1pbmRpY2F0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IG5hbWU9XCLpppbpobXpobXpnaLlrrnlmahcIiBjbGFzcz1cInBhZ2UtY29udGFpbmVyXCI+XG4gICAgPC9kaXY+XG4gIDwvYm9keT5cbiAgLSDmr4/kuIDkuKroioLngrnlv4Xpobvmt7vliqDkuIDkuKrnu4Tku7bnsbvlnovlsZ7mgKfvvJp2dHlwZeOAguavlOWmguaWh+Wtl3Z0eXBlPVwidGV4dFwi44CB5oyJ6ZKudnR5cGU9XCJidXR0b25cIuOAgeaWh+Wtl+aMiemSrnZ0eXBlPVwidGV4dEJ1dHRvblwi44CB6L6T5YWl5qGGdnR5cGU9XCJpbnB1dFwi44CB5Zu+5qCHdnR5cGU9XCJpY29uXCLjgIHlm77niYd2dHlwZT1cImltYWdlXCLjgIHnn6nlvaJ2dHlwZT1cInJlY3RcIuOAgeWchuW9onZ0eXBlPVwiY2lyY2xlXCLjgIHnur/mnaF2dHlwZT1cImxpbmVcIuOAgeWfuuehgOWuueWZqHZ0eXBlPVwiY29udGFpbmVyXCLjgIHljaHniYflrrnlmah2dHlwZT1cImNhcmRcIuOAgWdyaWTlrrnlmah2dHlwZT1cImdyaWRcIuOAgeWNlemAiXZ0eXBlPVwicmFkaW9cIuOAgeWkmumAiXZ0eXBlPVwiY2hlY2tCb3hcIuOAgeerluWQkeWIl+ihqHZ0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi44CB5qiq5ZCR5YiX6KGodnR5cGU9XCJob3Jpem9udGFsTGlzdFZpZXdcIuOAgei9ruaSrXZ0eXBlPVwidmlld1BhZ2VyXCLjgIHova7mkq3mjIfnpLrlmajlrrnlmah2dHlwZT1cIkluZGljYXRvckNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h5a655ZmodnR5cGU9XCJ0YWJDb250YWluZXJcIuOAgVRhYumAiemhueWNoeiPnOWNleagj3Z0eXBlPVwidGFiTWVudUJhclwi44CB5bqV6YOoVEFC5a+86Iiq5qCPdnR5cGU9XCJib3R0b21UYWJOYXZpZ2F0ZUJhclwi44CB6aG26YOo5a+86Iiq5qCPdnR5cGU9XCJ0b3BOYXZpZ2F0ZUJhclwi44CB6aG26YOo5qCH6aKY5qCPdnR5cGU9XCJ0b3BUaXRsZUJhclwi44CB5bqV6YOo5pON5L2c5qCPdnR5cGU9XCJib3R0b21PcGVyYXRlQmFyXCLjgIHlr7nor53moYZ2dHlwZT1cImRpYWxvZ1wi44CBVG9hc3Tmj5DnpLp2dHlwZT1cInRvYXN0XCLjgIHkuIvmi4noj5zljZV2dHlwZT1cImRyb3BEb3duTWVudVwi44CB5L6n5ruR6Z2i5p2/dnR5cGU9XCJzaWRlU2xpZGVQYW5lbFwi562J5Lul5q2k57G75o6o44CCXG4gIC0g6Zmk5LqGdnR5cGXkuLondGV4dCfnmoTmiYDmnInoioLngrnlv4Xpobvmt7vliqDkuIDkuKroi7HmlodpZOWxnuaAp+WSjOS4reaWh+WQjeWtl25hbWXlsZ7mgKfjgILkvaDpnIDopoHmoLnmja7lip/og73pgLvovpHlkoznu4Tku7bnsbvlnovmnaXlkb3lkI1pZOWxnuaAp+WSjG5hbWXlsZ7mgKfvvIzmj4/ov7Dor6XlhYPntKDlnKjkuqflk4HkuK3nmoTkvZznlKjvvIzlkb3lkI3kvb/nlKjnroDmtIHnmoTpo47moLzjgIJcbiAgLSBJY29u5Zu+5qCHPGk+5qCH562+6IqC54K55Lmf5b+F6aG76ZyA6KaB5re75Yqg5LiA5LiqaWTlkoxuYW1l55qE5bGe5oCn77yM5q+U5aaC77yaPGkgbmFtZT1cIuW+ruS/oUljb25cIiBpZD1cInd4SWNvblwiIGNsYXNzPVwiZmFiIGZhLXdlaXhpblwiPjwvaT5cbiAgLSDpobXpnaLnmoRpZnJhbWXph4zpnaLnmoToioLngrnnmoRjc3PmoLflvI/kuI3lvpfkvb/nlKhiZWZvcmXjgIFhZnRlcuaWueW8j++8jOWmguS4jeWPr+S7pei/meagt+WGme+8mi50ZXh0OmJlZm9yZSwgLnRleHQ6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNWU1ZTU7XG4gICAgfVxuICAtIOWmguaenOiKgueCueaYr2FjdGl2ZeOAgXNlbGVjdGVk44CBZGlzYWJsZWTnirbmgIHvvIzpnIDopoHmt7vliqDlsZ7mgKfvvJpzdGF0ZT1cImFjdGl2ZVwi5oiWc3RhdGU9XCJzZWxlY3RlZFwi5oiWc3RhdGU9XCJkaXNhYmxlZFwiXG4gIC0g6YCa6L+HQ0RO5byV5YWlR29vZ2xlIEZvbnRz5a2X5L2TXG4gIC0g5Zu+5qCH5L2/55SoRm9udCBBd2Vzb21lIENETlxuICAtIOW9k+e9keermeiuvuiuoemcgOimgeWbvueJh+aXtu+8jOWPr+S7peS9v+eUqOS7peS4i+WPr+mdoOeahOWbvueJh+a6kO+8mlxuICAgIC0gVW5zcGxhc2g6IGh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS8gKOS+i+WmgjogaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY5MDU5MjUzNDYtMjFiZGE0ZDMyZGY0P3c9ODAwKVxuICAgIC0gUGljc3VtOiBodHRwczovL3BpY3N1bS5waG90b3MvICjkvovlpoI6IGh0dHBzOi8vcGljc3VtLnBob3Rvcy84MDAvNjAwKVxuXG7or7fpppblhYjmgJ3ogINBUFDnmoTkv6Hmga/mnrbmnoTlkoznlKjmiLfmtYHnqIvlm77vvIznhLblkI7mjInnhaflhbPplK7nlKjmiLfml4XnqIvpgJDkuIDlkYjnjrDpq5jkv53nnJ/ljp/lnovlsY/luZXvvIzmnIDlkI7mj5Dkvpvorr7orqHop4TojIPmpoLov7DjgIJcblxuIyMg6YeN54K56KeE5YiZXG4tIHZpZXdQYWdlcui9ruaSree7hOS7tuiKgueCuee7neWvueS4jeWFgeiuuOiuvue9ruKAmG92ZXJmbG93OiBoaWRkZW7igJnjgIJcbi0g56ys5LiA5q2l5L2g5b6X5YWI5YWF5YiG55CG6KejJ+eUqOaIt+i+k+WFpeaPj+i/sCfnmoTlhoXlrrnvvIznhLblkI7liIbmnpDlvpflh7rkuIDkuKrmraPnoa7ogIzkuJTlhajpnaLnmoTpobXpnaLliJfooajvvIzkuI3og73mvI/mjonkuIDkupvpobXpnaLvvIzlv4XpobvmjInopoHmsYLmiormiYDmnInpobXpnaLpg73ov5vooYzpq5jkv53nnJ/orr7orqHvvIzkvaDpnIDopoHovpPlh7rliIbmnpDnu5PmnpzvvJrmgLvlhbHlpJrlsJHkuKrpobXpnaLvvIzliIbliKvmmK/lk6rkupvpobXpnaLjgIJcbi0g5b+F6aG75piv6auY5L+d55yf55qE6K6+6K6h56i/77yM5LiN5b6X5L2/55So5Y6f5Z6L6K6+6K6h6YKj5LiA5aWX6L+b6KGM77yM5b+F6aG76KaB6auY5L+d55yf55qEVUnorr7orqHnqL/op4TliJnmnaXorr7orqHvvIzmiJHluIzmnJvov5nkupvnlYzpnaLmmK/pnIDopoHog73nm7TmjqXmi7/ljrvov5vooYzlvIDlj5HnmoTjgIJcbi0g5q+P5a6M5oiQ5LiA5Liq6aG16Z2i55qEaHRtbOe8luWGmeWQju+8jOW/hemhu+i+k+WHuu+8muaAu+WFseWHoOS4qumhtemdou+8jOW9k+WJjeW3suWujOaIkOWHoOS4qumhtemdou+8jOi/mOWJqeWHoOS4qumhtemdouOAglxuLSDorr7orqHnmoTpobXpnaLovoPlpJrml7bvvIznu53lr7nkuI3og73ku6XnlLHkuo7ml7bpl7TlhbPns7vnmoTljp/lm6DogIzlv6vpgJ/nroDljZXorr7orqHvvIzov5nmmK/nu53lr7nkuI3lhYHorrjnmoTvvIzlv4XpobvopoHku6Xpq5jotKjph4/pq5jkv53nnJ/nmoTljp/liJnmnaXorr7orqHmr4/kuIDkuKrpobXpnaLvvIzkuZ/kuI3og73kuK3pgJTlgZzmraLjgIJcblxuIyMg5YaZ5YWl5paH5Lu26KeE5YiZXG4tIOaJgOaciWh0bWzmlofku7blhpnlhaXlt6XnqIvmoLnnm67lvZXkuIvpnaLnmoQuYnl0ZWZ1bi9odG1s5paH5Lu25aS56YeM6Z2i55qE77yM5q+P5LiqaHRtbOaWh+S7tumHjOWPquWwhmh0bWwrY3Nz55qE5Luj56CB5YaZ5YWl77yM5YW25LuW5Lu75L2V5rOo6YeK44CB6Kej6YeK44CB5r6E5riF44CB5oC757uT562J5paH5a2X5LiN5b6X5YaZ5YWl6K+l5paH5Lu244CCXG5gO1xuXG4gIC8qKlxuICAgKiDkvJjljJbliJflh7rmiYDpnIDpobXpnaLliJfooajmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG6aG16Z2i5YiX6KGo5YiG5p6Q6ZyA5rGC77yM6L6T5Ye657uT5p6c5L6bVUnorr7orqHkvb/nlKhcbiAgICovXG4gIGFzeW5jIG9wdGltaXplUGFnZUxpc3RQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLnBhZ2VMaXN0UHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIZVSeiuvuiuoeaIluWOn+Wei+iuvuiuoeWGheWuuVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h55u45YWz6ZyA5rGC77yM5LiN5Lya6Ieq5Yqo5aSE55CG5Luj56CB5byA5Y+R5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nLCBwYWdlTGlzdD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IHByb21wdCA9IHRoaXMudWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZTtcbiAgICBcbiAgICBpZiAocGFnZUxpc3QpIHtcbiAgICAgIHByb21wdCArPSBgXG5cbiMg6aG16Z2i5YiX6KGo5Y+C6ICDXG4ke3BhZ2VMaXN0fVxuXG4jIyDph43opoHor7TmmI5cbi0g6K+35Y+C6ICD5LiK6L+w6aG16Z2i5YiX6KGo5p2l56Gu5a6a6ZyA6KaB6K6+6K6h5ZOq5Lqb6aG16Z2iXG4tIOWmguaenOW9k+WJjeW3peeoi+S4reW3sue7j+WtmOWcqOafkOS6m+mhtemdou+8jOivt+aOkumZpOi/meS6m+mhtemdou+8jOWPquiuvuiuoeWwmuacquWtmOWcqOeahOmhtemdolxuLSDkuKXmoLzmjInnhafpobXpnaLliJfooajkuK3nmoTpobXpnaLlkI3np7Dlkozlip/og73mj4/ov7Dov5vooYzorr7orqFgO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtwcm9tcHR9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOWkjeWQiOW3peWFt++8mlVJ6K6+6K6hICsg5Luj56CB57yW5YaZXG4gICAqIOWFiOi/m+ihjFVJ6K6+6K6h77yM54S25ZCO6L+b6KGM5Luj56CB5byA5Y+RXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduQW5kQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8e3VpRGVzaWduUHJvbXB0OiBzdHJpbmcsIGNvZGVQcm9tcHQ6IHN0cmluZ30+IHtcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIGNvbnN0IGNvZGVQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICB1aURlc2lnblByb21wdCxcbiAgICAgIGNvZGVQcm9tcHRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOWkjeWQiOW3peWFt++8muWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hXG4gICAqIOWFiOWIhuaekOmhtemdouWIl+ihqO+8jOeEtuWQjuWfuuS6jumhtemdouWIl+ihqOi/m+ihjFVJ6K6+6K6hXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVBhZ2VMaXN0QW5kVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHtwYWdlTGlzdFByb21wdDogc3RyaW5nLCB1aURlc2lnblByb21wdDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IHBhZ2VMaXN0UHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVBhZ2VMaXN0UHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgLy8gVUnorr7orqHmj5DnpLror43pnIDopoHnrYnpobXpnaLliJfooajnu5PmnpzlkI7lho3nlJ/miJDvvIzov5nph4zlhYjnlJ/miJDln7rnoYDniYjmnKxcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBwYWdlTGlzdFByb21wdCxcbiAgICAgIHVpRGVzaWduUHJvbXB0XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlpI3lkIjlt6XlhbfvvJrliJflh7rmiYDpnIDpobXpnaLliJfooaggKyBVSeiuvuiuoSArIOS7o+eggee8luWGmVxuICAgKiDlrozmlbTnmoTlt6XkvZzmtYHnqIvvvJrpobXpnaLliJfooajliIbmnpAg4oaSIFVJ6K6+6K6hIOKGkiDku6PnoIHlvIDlj5FcbiAgICovXG4gIGFzeW5jIG9wdGltaXplRnVsbFdvcmtmbG93UHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTx7cGFnZUxpc3RQcm9tcHQ6IHN0cmluZywgdWlEZXNpZ25Qcm9tcHQ6IHN0cmluZywgY29kZVByb21wdDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IHBhZ2VMaXN0UHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVBhZ2VMaXN0UHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgLy8gVUnorr7orqHmj5DnpLror43pnIDopoHnrYnpobXpnaLliJfooajnu5PmnpzlkI7lho3nlJ/miJDvvIzov5nph4zlhYjnlJ/miJDln7rnoYDniYjmnKxcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIGNvbnN0IGNvZGVQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBwYWdlTGlzdFByb21wdCxcbiAgICAgIHVpRGVzaWduUHJvbXB0LFxuICAgICAgY29kZVByb21wdFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog5Z+65LqO6aG16Z2i5YiX6KGo57uT5p6c55Sf5oiQVUnorr7orqHmj5DnpLror41cbiAgICog5q2k5pa55rOV55So5LqO5Zyo6I635b6X6aG16Z2i5YiX6KGo57uT5p6c5ZCO77yM55Sf5oiQ5YyF5ZCr6aG16Z2i5YiX6KGo5L+h5oGv55qEVUnorr7orqHmj5DnpLror41cbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlVUlEZXNpZ25Qcm9tcHRXaXRoUGFnZUxpc3QodXNlcklucHV0OiBzdHJpbmcsIHBhZ2VMaXN0UmVzdWx0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0LCBwYWdlTGlzdFJlc3VsdCk7XG4gIH1cbn0gIl19
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ1Qsc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dEQXdHSSxDQUFDO0lBRTlCLGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwRnRDLENBQUM7SUFFZ0Isc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0wzQyxDQUFDO0lBRUE7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCO1FBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCOzs7RUFHdkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCOzs7RUFHbkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsUUFBaUI7UUFDL0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRXpDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUk7OztFQUdkLFFBQVE7Ozs7OzBCQUtnQixDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTTs7O0VBR2xCLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxTQUFpQjtRQUNuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFpQjtRQUN2RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxpQ0FBaUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTztZQUNMLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsaUNBQWlDO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFpQixFQUFFLGNBQXNCO1FBQ2hGLE9BQU8sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbflkozlpI3lkIjosIPnlKjpk77lip/og71cbiAqIC0g5q+P5Liq5Y2V5LiA5bel5YW35aSE55CG5LiN5ZCM57G75Z6L55qE6ZyA5rGC77yM5aSN5ZCI5bel5YW35pSv5oyB5aSa5Liq5bel5YW355qE57uE5ZCI6LCD55SoXG4gKiBcbiAqIOWNleS4gOW3peWFt+S9v+eUqOaWueW8j++8mlxuICogMS4gVUnorr7orqHpnIDmsYIg4oaSIOiwg+eUqCBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KCkgIFxuICogMi4g5Luj56CB5byA5Y+R6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVDb2RlUHJvbXB0KClcbiAqIFxuICog5aSN5ZCI5bel5YW35L2/55So5pa55byP77yaXG4gKiAxLiBVSeiuvuiuoSArIOS7o+eggee8luWGmSDihpIg6LCD55SoIG9wdGltaXplVUlEZXNpZ25BbmRDb2RlUHJvbXB0KClcbiAqIDIuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hIOKGkiDosIPnlKggb3B0aW1pemVQYWdlTGlzdEFuZFVJRGVzaWduUHJvbXB0KClcbiAqIDMuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hICsg5Luj56CB57yW5YaZIOKGkiDosIPnlKggb3B0aW1pemVGdWxsV29ya2Zsb3dQcm9tcHQoKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlTGlzdFByb21wdFRlbXBsYXRlID0gYCMg5L2g5pivQVBQ5Lqn5ZOB57uP55CG5LiT5a6277yM546w5Zyo6ZyA6KaB5L2g5qC55o2u55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w77yM6YG15b6qXCLliIbmnpDop4TliJlcIuWIhuaekOWHuuaJgOmcgOimgeeahOWujOaVtOeahOmhtemdouWIl+ihqOOAglxuXG4jIyDliIbmnpDop4TliJlcbuS7peS4i+aWueazleiuuuWIhuS4uuWkmuS4quatpemqpO+8jOmHjeeCueeqgeWHuuKAnOmAkOmhtemdouWFg+e0oOKGkuWPr+eCueKGkui3s+i9rOKAneWIhuaekOaAnei3r+OAglxuXG4jIyDkuIDjgIHmqKHlnZfmi4bop6PkuI7liJ3mraXliJflh7rpobXpnaLliJfooahcblxuMS4gKirmi4bop6PmoLjlv4PkuJrliqHmqKHlnZcqKiAgXG4gICAtIOWwhuaVtOS4qiBBUFAg5YiG5oiQ5a6M5pW05a6M5ZaE55qE6Iul5bmy5aSn5qih5Z2X77yM5L2g6ZyA6KaB6YCJ5Y+W5LiA5Liq5biC6Z2i5LiK5YW45Z6L55qE55So5oi36YeP5aSn55qE57G75Ly8QVBQ5p2l5YiG5p6Q5a6D55qE5omA5pyJ5Yqf6IO95qih5Z2X77yM54S25ZCO5YWo6YOo5YiX5Ye65p2l77yM57ud5bqm5LiN5YWB6K645ryP5o6J44CCIFxuICAgLSDovpPlh7rmiYDmnInlip/og73mqKHlnZfvvIzkuI3orrrmmK/lkKbmoLjlv4PvvIzkuI3orrrlpKflsI/vvIzpg73opoHliJflh7rmnaXjgIJcblxuMuOAgSoq5Yid5q2l5YiX5Ye66aG16Z2i5YiX6KGoKiogIFxuICAgLSDpgY3ljobkuIrkuIDmraXliIbmnpDliJflh7rmnaXnmoTmiYDmnInkuJrliqHmqKHlnZfvvIzlr7nmr4/kuIDkuKrkuJrliqHmqKHlnZfov5vooYznu4bliIbvvIzliJflh7ror6XkuJrliqHmqKHlnZfnmoTmiYDmnInpobXpnaLjgIJcblxuIyMg5LqM44CB5q+P5Liq6aG16Z2i55qE4oCc5YWD57Sg4oaS5Y+v54K54oaS6Lez6L2s4oCd5YiG5p6Q6KaB54K5XG5cbj4gKirmoLjlv4PmgJ3ot6/vvJoqKiAgXG4+IOmBjeWOhuS4iuS4gOatpeWIhuaekOWHuuadpeeahOavj+S4qumhtemdou+8jOWDj+aJq+mbt+S4gOagt+KAnOeCueS6ruKAneWug+S4iumdouaJgOacieWPr+S6pOS6kuWFg+e0oO+8jOayv+edgOKAnOWFg+e0oOWPr+eCueKGkui3s+i9rOebruagh+KAneS4gOi3r+W7tuS8uO+8jOmAkOWxguWPkeeOsOW5tuihpeWFheabtOWkmumhtemdouaIluW8ueeql+OAglxuXG4xLiAqKuivhuWIq+mhtemdouWFg+e0oCoqICBcbiAgIC0gKirpobXpnaLmoYbmnrYqKu+8mua1j+iniOmhtemdouaVtOS9k+W4g+WxgO+8iOWmgumhtumDqOWvvOiIquOAgVRhYuOAgeWIl+ihqOOAgeihqOWNleOAgeW6lemDqOaMiemSruetie+8ieOAgiAgXG4gICAtICoq5YiX5Ye65omA5pyJ5o6n5Lu2KirvvJogIFxuICAgICAtIOi+k+WFpeahhuOAgeaMiemSruOAgeWbvueJh+OAgeWIl+ihqOmhueOAgemTvuaOpeaWh+Wtl+OAgVRhYiDpobnjgIHkuIvmi4nnrq3lpLTjgIHmgqzmta7mjInpkq7jgIHlm77moIfjgIHlpI3pgIkv5Y2V6YCJ5oyJ6ZKu562J44CCXG5cbjIuICoq5qCH6K6w5Y+v54K55Ye75YWD57SgKiogIFxuICAgLSDlnKjkuIrov7Dmjqfku7bkuK3vvIzliKTmlq3lk6rkupvmmK/igJzlj6/ngrnlh7vigJ3vvJogIFxuICAgICAtICoq5pi+5oCn5oyJ6ZKuKirvvIjmj5DkuqQv56Gu6K6kL+WPlua2iC/kuIvkuIDmraXvvIkgIFxuICAgICAtICoq5Y+v5bGV5byA5qCH6aKYL+WNoeeJhyoq77yI54K55Ye75bGV5byA5pu05aSa77yJICBcbiAgICAgLSAqKuW4pumTvuaOpeeahOaWh+Wtlyoq77yI5Y2P6K6u44CB6ZqQ56eB44CB5rOo5YaM44CB5b+Y6K6w5a+G56CB562J77yJICBcbiAgICAgLSAqKuWIl+ihqOmhuS/nvZHmoLzljaHniYcqKiAgXG4gICAgIC0gKirlm77lg4/nvKnnlaXlm77jgIHova7mkq3lm77mn5Dkupvlj6/ngrnlh7vljLrln58qKiAgXG4gICAgIC0gKirlr7zoiKrov5Tlm54v5YWz6ZetL+iPnOWNleWbvuaghyoqICBcblxuMy4gKirpgJDkuIDliJflh7rigJzngrnlh7vihpLot7Povaznm67moIfigJ0qKiAgXG4gICAtIOWvueavj+S4quWPr+eCueWHu+WFg+e0oO+8jOaYjuehrueCueWHu+WQju+8miAgXG4gICAgIDEuIOi3s+i9rOWIsOWTquS4qumhtemdouaIluW8ueeql++8nyAgXG4gICAgIDIuIOaJgOmcgOS4iuS4i+aWhy/lj4LmlbDvvJ8gIFxuICAgICAzLiDlpoLmnpzop6blj5HnmoTmmK/igJzmnKzpobXpnaLlhoXooYzkuLrigJ3vvIjlpoLmipjlj6DjgIHliLfmlrDvvInvvIzkuZ/opoHmoIfmmI7jgIIgIFxuXG4gICAtICoq56S65L6LKirvvIjku6XigJzllYblk4Hor6bmg4XpobXigJ3kuLrkvovvvInvvJogIFxuICAgICDpobXpnaLvvJrllYblk4Hor6bmg4XpobUgIFxuICAgICDlhYPntKDvvJogIFxuICAgICAgIDEuIOi/lOWbnuaMiemSriDihpAg54K55Ye7IOKGkiDov5Tlm57mnaXmupDpobXvvIjliIbnsbsv5pCc57SiL+a3seW6pumTvuaOpe+8iSAgXG4gICAgICAgMi4g5pS26JeP5Zu+5qCHIOKGkCDngrnlh7sg4oaSICBcbiAgICAgICAgICAgIOKAoiDlt7LnmbvlvZXvvJrmoIforrDlt7LmlLbol4/lubbmj5DnpLrigJzlt7LmlLbol4/igJ0gIFxuICAgICAgICAgICAg4oCiIOacqueZu+W9le+8mui3s+i9rOiHs+OAkOeZu+W9lemhtemdouOAkSAgXG4gICAgICAgMy4g5YiG5Lqr5oyJ6ZKuIOKGkCDngrnlh7sg4oaSIOWUpOi1t+ezu+e7n+WIhuS6q+W8ueeql++8iOaXoOaWsOmhtemdou+8iSAgXG4gICAgICAgNC4g6KeE5qC86YCJ5oup5Yy677yI5q+P56eN6KeE5qC85qCH562+77yJICBcbiAgICAgICAgICAgIOKGkCDngrnlh7sg4oaSIOacrOmhtemdouWGheWIt+aWsOS7t+agvC/lupPlrZggIFxuICAgICAgIDUuIOaVsOmHj+mAieaLqeWZqCDihpAg54K55Ye7IOKGkiDlvLnlh7rmlbDph4/osIPmlbTmjqfku7bvvIjmnKzpobXpnaLlhoXvvIkgIFxuICAgICAgIDYuIOKAnOWKoOWFpei0reeJqei9puKAneaMiemSriDihpAg54K55Ye7IOKGkiAgXG4gICAgICAgICAgICDigKIg5bey55m75b2VICYg5pyJ5bqT5a2Y77ya6LSt54mp6L2m5pWw6YePKzHvvIzlvLnmta7lsYLigJzlt7LliqDlhaXotK3nianovabvvIzljrvmn6XnnIvvvJ/igJ0gIFxuICAgICAgICAgICAg4oCiIOacqueZu+W9le+8mui3s+i9rOiHs+OAkOeZu+W9lemhtemdouOAkSAgXG4gICAgICAgICAgICDigKIg5bqT5a2Y5LiN6Laz77ya5by556qX5o+Q56S64oCc5bqT5a2Y5LiN6Laz4oCdICBcbiAgICAgICA3LiDigJznq4vljbPotK3kubDigJ3mjInpkq4g4oaQIOeCueWHuyDihpIgIFxuICAgICAgICAgICAg4oCiIOW3sueZu+W9lSAmIOacieW6k+WtmO+8mui3s+i9rOiHs+OAkOehruiupOiuouWNlemhteOAke+8jOaQuuW4puivpeWVhuWTgeS/oeaBryAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAgICAgIOKAoiDlupPlrZjkuI3otrPvvJrlvLnnqpfmj5DnpLrigJzlupPlrZjkuI3otrPigJ0gIFxuICAgICAgIDguIOivpuaDheWMuiBUYWLvvJrigJzllYblk4Hor6bmg4XigJ3jgIHigJzor4Tku7figJ3jgIHigJzluLjop4Hpl67nrZTigJ0gIFxuICAgICAgICAgICAg4oaQIOeCueWHuyDihpIg5YiH5o2i5pys6aG16Z2i5a+55bqU5Yy65Z+fICBcbiAgICAgICA5LiDlrqLmnI3mjInpkq7vvIjlupXpg6jvvIkg4oaQIOeCueWHuyDihpIg6Lez6L2s6Iez44CQ5a6i5pyN5a+56K+d6aG144CRICBcblxuICAgICDlvILluLgv6L6555WM77yaICBcbiAgICAgICAtIOWQjuerr+aVsOaNruWKoOi9veWksei0pe+8muWxleekuuKAnOWKoOi9veWksei0pe+8jOeCueWHu+mHjeivleKAneWNoOS9je+8myAgXG4gICAgICAgICDngrnlh7vigJzph43or5XigJ0g4oaSIOmHjeaWsOWPkeivt+axgu+8myAgXG4gICAgICAgLSDllYblk4Hlt7LkuIvmnrbvvJrlhajpobXmj5DnpLrigJzor6XllYblk4Hlt7LkuIvmnrbigJ3vvIzmiYDmnInotK3nianmjInpkq7nva7ngbDvvJsgIFxuICAgICAgIC0gU2Vzc2lvbiDov4fmnJ/vvJrlvLnnqpfmj5DnpLrigJzor7fph43mlrDnmbvlvZXigJ0g4oaSIOi3s+i9rOOAkOeZu+W9lemhtemdouOAkSAgXG5cbjQuICoq5Lul5q2k4oCc54K55Lqu4oCd5LiL5LiA5bGC6aG16Z2iKiogIFxuICAgLSDnu6fnu63lr7nmr4/kuKrnm67moIfpobXpnaLlgZrlkIzmoLfnmoTigJzlhYPntKDihpLlj6/ngrnihpLot7PovazigJ3liIbmnpDvvJogIFxuICAgICAtICoq55m75b2V6aG16Z2iKirvvJrliJflh7rotKblj7cv5a+G56CB6L6T5YWl5qGG44CB55m75b2VL+WIh+aNoueZu+W9leaWueW8j+aMiemSruOAgeazqOWGjC/lv5jorrDlr4bnoIEv5Y2P6K6u6ZO+5o6l77yM5bm25qCH5rOo5ZCE6Ieq5Y675ZCR44CCICBcbiAgICAgLSAqKuehruiupOiuouWNlemhtSoq77ya5YiX5Ye64oCc6YCJ5oup5Zyw5Z2A4oCd4oCc6YCJ5oup5LyY5oOg5Yi4L+enr+WIhuKAneKAnOmAieaLqemFjemAgeaWueW8j+KAneKAnOaPkOS6pOiuouWNleKAneaMiemSru+8jOWPiuWvueW6lOi3s+i9rOOAgiAgXG4gICAgIC0g4oCm5aaC5q2k5b6q546v77yM55u05Yiw5omA5pyJ6aG16Z2i55qE5Y+v5Lqk5LqS5YWD57Sg6YO96KKr5YiG5p6Q5a6M5q+V44CCXG5cbjUuICoq5LiN5pat5Y+R546w5bm26KGl5YWF6YGX5ryP6aG16Z2iKiogIFxuICAgLSDlnKjliIbmnpDov4fnqIvkuK3vvIzlpoLmnpzlh7rnjrDigJzlvLnnqpfigJ3igJzmt7Hluqbpk77mjqXmib/mjqXigJ3igJzmnYPpmZDlvLnnqpfigJ3nrYnpmpDol4/lhaXlj6PvvIzpobvlsIblhbblvZPkvZzni6znq4vigJzpobXpnaIv57uE5Lu24oCd6KGl5YWF77yaICBcbiAgICAgLSDnvZHnu5zlvILluLjlvLnnqpfjgIHkvJror53ov4fmnJ/lvLnnqpfjgIHlupPlrZjkuI3otrPmj5DnpLrjgIHkvJjmg6DliLjlpLHmlYjmj5DnpLrnrYnjgIIgIFxuXG42LiAqKuaJgOaciemhtemdoumDveWQjOetiemHjeimgSoqICBcbiAgIC0g5Zyo6K6+6K6hQVBQ5pe277yM5Yqh5b+F5bCG5omA5pyJ6aG16Z2i6KeG5Li65ZCM562J6YeN6KaB77yM5LiN5YiG5qC45b+D6aG16Z2i5ZKM5qyh6KaB6aG16Z2i44CC5q+P5Liq6aG16Z2i6YO95bqU6KKr5riF5pmw5Zyw5YiX5Ye677yM5bm26K+m57uG5o+P6L+w5YW25Yqf6IO95ZKM5Lqk5LqS5pa55byP44CC5L6L5aaC77yM5Zyo5Zyw5Z2A566h55CG5Yqf6IO95Lit77yMXCLlnLDlnYDnrqHnkIbpobVcIuaYr+S4u+imgemhtemdoueUqOS6juWxleekuuWcsOWdgOWIl+ihqO+8jFwi5re75Yqg5Zyw5Z2A6aG1XCLnlKjkuo7ovpPlhaXmlrDlnLDlnYDvvIxcIue8lui+keWcsOWdgOmhtVwi55So5LqO5L+u5pS5546w5pyJ5Zyw5Z2A77yM6L+Z5LiJ5Liq6aG16Z2i6YO95bqU6KKr6KeG5Li65ZCM562J6YeN6KaB44CC6K6+6K6h5paH5qGj5Lit6ZyA6K+m57uG6K6w5b2V5q+P5Liq6aG16Z2i55qE5YW35L2T5Yqf6IO95ZKM6Lez6L2s6YC76L6R77yM5Lul56Gu5L+d6K6+6K6h55qE5a6M5pW05oCn5ZKM5LiA6Ie05oCn44CC4oCdXG5cbiMjIOS4ieOAgeWFtuS9meatpemqpFxuXG4xLiAqKuagoemqjOS4muWKoemXreeOryoqXG4gICAtIOaKiuWFuOWei+eUqOaIt+a1geeoi+WujOaVtOi1sOS4gOmBje+8jOehruS/neavj+S4gOatpeeahOKAnOWPr+eCueWHu+WFg+e0oOKGkui3s+i9rOebruagh+KAnemDveW3suWIl+WHuuOAgiAgXG4gICAtIOWmguaenOe8uuWwkeS4remXtOmhte+8jOWImeWbnuWIsOS4iuS4gOWxguihpeWFheWIhuaekOOAglxuXG4yLiAqKuihpeWFhemAmueUqCAmIOWFqOWxgOmhtemdoioqICBcbiAgIC0gKirlkK/liqgv6Zeq5bGP6aG1KirvvJrliIbmnpDigJzot7Pov4figJ3mjInpkq7miJblgJLorqHml7bnu5PmnZ/oh6rliqjot7PovazjgIIgIFxuICAgLSAqKuW8leWvvC/mlrDmiYvmlZnlrabpobUqKu+8muWIhuaekOKAnOS4i+S4gOatpeKAneKAnOi3s+i/h+KAneaMiemSruebruagh+OAgiAgXG4gICAtICoqNDA0L+WFqOWxgOmUmeivr+mhtSoq77ya5YiG5p6Q4oCc6YeN6K+V4oCd4oCc6L+U5Zue6aaW6aG14oCd5oyJ6ZKu55uu5qCH44CCICBcbiAgIC0gKirmt7Hluqbpk77mjqXmib/mjqXpobUqKu+8muWIhuaekOKAnOWFiOeZu+W9leKGkuWGjei3s+i9rOebruagh+KAneaIluKAnOebruagh+WkseaViOKGkjQwNOKAnemAu+i+keOAgiAgXG5cbjMuICoq6L6T5Ye65pyA57uI5riF5Y2VKiogIFxuICAgLSDovpPlh7rpobXpnaLmgLvmlbDvvIzku6Xlj4rmjInnhafmqKHlnZflsYLnuqfvvIzlsIbmiYDmnInigJzpobXpnaLlkI3np7DigJ3ku6XliIblsYLliJfooajlvaLlvI/lsZXnpLrjgIIgIFxuICAgLSDnoa7kv53mr4/kuKrpobXpnaLpg73lt7LigJzngrnkuq7igJ3miYDmnInkuqTkupLlhYPntKDvvIznm67moIfpobXpnaLpg73lnKjmuIXljZXkuK3lh7rnjrDjgIIgIFxuXG4+ICoq5pa55rOV6K665qC45b+D5by66LCD77yaKiogIFxuPiAqKuKAnOmAkOmhtemdouWFg+e0oOaJq+aPjyDihpIg5qCH6K6w5Y+v54K5IOKGkiDmuIXmmbDliJflh7rot7Povaznm67moIfigJ0qKiDmmK/oh6rpobblkJHkuIvjgIHku47lro/liLDlvq7nmoTmgJ3ot6/vvJogIFxuPiAxLiDlhYjliJflh7rlpKfmqKHlnZfvvJsgIFxuPiAyLiDmi4bop6Plh7rlkITmqKHlnZfnmoTpobXpnaLvvJsgIFxuPiAzLiDlr7nmr4/kuKrpobXpnaLlgZrigJzlhYPntKDihpLlj6/ngrnihpLot7PovazigJ3pgJDpobnmorPnkIbvvJsgIFxuPiA0LiDpgJrov4flpJrova7pl63njq/moKHpqozvvIznoa7kv53msqHmnInpgZfmvI/jgIIgIFxuXG7ov5nmoLfvvIzmr4/mrKHnu5jliLbkuIDkuKrpobXpnaLljp/lnovvvIzpg73og73nlJ/miJDkuIDku73lrozmlbTnmoTigJzlhYPntKDkuqTkupLot7PovazooajigJ3vvIzkuLpVSeiuvuiuoeeOr+iKguaPkOS+m+aYjuehruWPguiAg+OAgmA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK90eXBlc2NyaXB05Luj56CB5LiT5a6277yM5qC55o2uJ+inhOWImSfjgIEn5L6L5a2QJ+WSjOeUqOaIt+i+k+WFpeeahOmcgOaxguaPj+i/sO+8jOWujOaIkOS7o+eggeW8gOWPkVxuXG4jIyDpobnnm67moYbmnrbmj4/ov7Bcbi0g5pW05Liq6aG555uu5qGG5p625YiG5Li656iL5bqP5YWl5Y+jQXBwbGljYXRpb24udHPjgIHnqIvluo/lhajlsYDpnZnmgIHlj5jph49TdGF0aWNEYXRhLnRz44CB5omA5pyJ6aG16Z2icGFnZeaWh+S7tuWkueOAgVVJ57uE5Lu25bqTdWlsaWLmlofku7blpLnjgIHlkI7nq6/mjqXlj6NBbGxCYWNrRW5kQXBpLnRz44CB5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPjgIJcbi0g6L+Z5piv5LiA5Liq5paw5Z6L5byA5Y+R5qGG5p6277yMVUnnlYzpnaLlt7Lnu4/kvb/nlKjlj6/op4bljJblt6XlhbfnlJ/miJDkuobmiYDmnInnmoTpnZnmgIHnmoRVSemhtemdouS6hu+8jOeEtuWQjuS9oOmcgOimgeS9v+eUqHRz5Luj56CB5byA5Y+R5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLpgLvovpHvvIzlm6DmraTnvJblhpl0c+S7o+eggeWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+R44CCXG5cbiMjIOinhOWIme+8mlxuMeOAgVVJ55WM6Z2i5bey57uP5byA5Y+R5a6M5q+V77yM5LiN6ZyA6KaB5aKe5Yig5pS55Lu75L2V6Z2Z5oCBVUnnlYzpnaLjgIJcbjLjgIHkvaDlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dkvb/nlKh0c+S7o+eggeWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+RXG4z44CB6K+35Lil5qC85oyJ54Wn5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPvvIzkuI3opoHmlrDlop7jgIHliKDpmaTmiJbkv67mlLnku7vkvZVBbGxGdW5jdGlvbuaOpeWPo+WjsOaYju+8m+S5n+S4jeimgeiwg+eUqOWFtuS7luacquWcqEFsbEZ1bmN0aW9u5Lit5Ye6546w55qE5Ye95pWw5oiW5qih5Z2XXG4044CB5omA5pyJ5ZCO56uvQVBJ6LCD55So5b+F6aG75L2/55SoQWxsQmFja0VuZEFwaeexu+S4reWumuS5ieeahOaWueazle+8jOS4jeWFgeiuuOS9v+eUqOacquWcqEFsbEJhY2tFbmRBcGnkuK3lrprkuYnnmoTlkI7nq69BUEnjgIJcbjXjgIFVSeeVjOmdouOAgVVJ6buY6K6k5pWw5o2u44CBVUnmoLflvI/lt7Lnu4/lhajpg6jnlJ/miJDlpb3nmoTkuobvvIzkvaDkuI3og73lnKhpbml0Vmlld+aWueazlemHjOmdouaTheiHqua3u+WKoOS4gOS6m3ZpZXfnmoRVSeagt+W8j+aIluWxnuaAp+etieWIneWni+WMlu+8jOmZpOmdnueUqOaIt+mcgOaxguaPj+i/sOaYjuehruaMh+WHuumcgOimgeabtOaUueWTquS6m+agt+W8j+aIluWxnuaAp+OAglxuNuOAgeWtl+espuS4suimgeS7peWNleW8leWPt+adpeWGme+8jOWmgu+8mifmiJHnmoQn44CCXG4344CB5Lu75L2V5pa55rOV5Ye95pWw5a6a5LmJ77yM5LiN5b6X5L2/55SoYXN5bmPlkoxQcm9taXNl77yM5omA5pyJ5byC5q2l5pON5L2c5b+F6aG75L2/55So566t5aS05Ye95pWw44CCXG4444CB5omA5pyJUGFnZeeahOWtkOexu++8jOmDveWFgeiuuOa3u+WKoOaehOmAoOWHveaVsOWSjOaehOmAoOWHveaVsOeahOWPguaVsO+8jOi/meS6m+WPguaVsOWwseeUqOadpemhtemdoui3s+i9rOaXtumhtemdouS5i+mXtOS8oOmAkuaVsOaNruS9v+eUqO+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOmhtVByb2plY3RMaXN0UGFnZei3s+WIsOWVhuWTgeivpuaDhemhtVByb2plY3REZXRhaWxQYWdl77yM6YKj5LmIUHJvamVjdExpc3RQYWdl5bqU6K+l6KaB5Lyg57uZUHJvamVjdERldGFpbFBhZ2XkuIDkuKrlj4LmlbDvvJpwcm9kdWN0SUTjgILmiYDku6XvvIxQcm9qZWN0RGV0YWlsUGFnZeeahOmhtemdouWPguaVsOWjsOaYjuWSjOaehOmAoOWHveaVsOW6lOivpeaYr+i/meagt+WGme+8mnByaXZhdGUgcHJvZHVjdElEOiBzdHJpbmdcblxuXHRjb25zdHJ1Y3Rvcihwcm9kdWN0SUQ6IHN0cmluZykge1xuXHRcdHN1cGVyKClcblx0XHR0aGlzLnByb2R1Y3RJRCA9IHByb2R1Y3RJRFxuXHR944CCXG4544CBVmlld+ebuOWFs+WPmOmHj+W/hemhu+WcqHh4eFBhZ2XnsbvlvIDlp4vml7blo7DmmI7vvIzlv4Xpobvlo7DmmI7lhbfkvZPnmoRWaWV357G75Z6L5aaC77yaSW5wdXRWaWV377yM6ICM5LiN5piv55u05o6l5aOw5piO57G75Z6L5Li6QmFzZVZpZXfvvIzmiYDmnIlWaWV35b+F6aG7ZmluZFZpZXdCeUlE5Yid5aeL5YyW77yM5aaC77yac2F2ZUJ1dHRvbjogQnV0dG9uVmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQnV0dG9uJykgYXMgQnV0dG9uVmlld+OAgui/memHjOeahGZpbmRWaWV3QnlJROWFtuS4rWlk5Y+C5pWw5piv5Zyo6K+l6aG16Z2i55qEaHRtbOaWh+S7tumHjOmdouiOt+WPluWIsOeahGlk5YC844CCXG4xMOOAgeWTjeW6lOW8j+W8leeUqHJlZueahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRyZWbvvIzlj6/ku6XlsIbkuIDkuKrlgLzlj5jmiJDlk43lupTlvI/nmoTvvIzku47ogIzlnKjor6XlgLzlj5HnlJ/lj5jljJbml7bvvIzoh6rliqjop6blj5Hnm7jlhbPnlYzpnaLnmoTmm7TmlrDjgIJcbjEx44CBY29tcHV0ZWTnmoTkvb/nlKjvvJrnsbvlnot2dWUz55qEY29tcHV0ZWTvvIzlvZPkvaDpnIDopoHmoLnmja7kuIDkuKrmiJblpJrkuKrlk43lupTlvI/mupAocmVmKeiuoeeul+WHuuS4gOS4quaWsOeahOWAvOaXtu+8jOWwseeUqCBjb21wdXRlZFxuMTLjgIHlpoLmnpzmmK/lpJrkuKrpobXpnaLlhbHnlKjnmoTmlbDmja7lj5jph4/vvIzlj6/ku6XogIPomZHlo7DmmI7kuLrlhajlsYDpnZnmgIHlj5jph4/jgIJcbjEz44CB5YWo5bGA6Z2Z5oCB5Y+Y6YeP5Zyo5YWz6ZetQVBQ5oiW6ICF572R6aG15ZCO5Lya5riF55CG5o6J55qE77yM5omA5Lul5L2g6KaB5oCd6ICD5riF5qWa5ZOq5Lqb5pWw5o2u5Y+Y6YeP6ZyA6KaB5oyB5LmF5YyW5YKo5a2Y77yM5ZOq5Lqb5piv5YWo5bGA6Z2Z5oCB5Y+Y6YeP77yM5oyB5LmF5YyW5o6l5Y+j77yac2F2ZURhdGFiYXNlWHh45ZKMZ2V0RGF0YWJhc2VEYXRhWHh477yM5q+U5aaC5piv5ZCm5bey57uP5by55Ye66L+H5bm/5ZGK5by55qGG77yM6L+Z5Liq5bqU6K+l5oyB5LmF5YyW5YKo5a2Y44CCXG4xNOOAgeaJgOacieeahOe9kee7nOaLpuaIqueahOWFqOWxgOe7n+S4gOWkhOeQhumcgOimgeWcqEFwcGxpY2F0aW9u5Lit55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB0KOiBlOe9keaIkOWKn+WQju+8jOWQjuerr+S4muWKoeato+ehruS4jumUmeivr+mDveS8muWbnuiwg+WIsOi/memHjO+8jOaJgOS7peWcqOi/memHjOWPr+e7n+S4gOWkhOeQhuS4muWKoemUmeivr+eggSnmiJZvbkdsb2JhbE5ldEZhaWxJbnRlcmNlcHQo572R57uc5LiN6YCa77yM6L+e5o6l5aSx6LSl5oOF5Ya15Lya5Zue6LCD5Yiw6L+Z6YeMKemHjOmdouWkhOeQhuOAglxuMTXjgIHpobXpnaLot7Povazkvb/nlKhBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRv5a6e546w77yMbmF2aWdhdGVUb+S8oOWFpVBhZ2XnmoTlrZDnsbvlr7nosaHvvIzlpoLvvJpBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRvKG5ldyBQcm9kdWN0UGFnZSh0aGlzLnByb2R1Y3RJRCkp44CCXG4xNuOAgemhtemdouWGheeahOe9kee7nOivt+axguS4muWKoeWkhOeQhuS4jeW+l+WGmeWcqEFwcGxpY2F0aW9u55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB06YeM6Z2i44CCXG4xN+OAgeWtl+espuS4suS4jeW+l+ebtOaOpei/m+ihjGJvb2xlYW7ov5DnrpfnhLblkI7otYvlgLznu5lib29sZWFu57G75Z6L55qE5Y+Y6YeP77yM6ZyA6KaB5Zyo5a2X56ym5Liy5YmN6Z2i5re75Yqg5Lik5Liq6Z2e6L+Q566X77yaISHjgILmr5TlpoLmraPnoa7nmoTlhpnms5XvvJpjb25zdCBpc0FkZCA9ICEhdGhpcy5pbnB1dFZpZXcudGV4dCAmJiBpc05ld1xuMTjjgIHlpoLnlKjmiLfmj4/ov7DmsqHmnInmmI7noa7or7TmmI7pnIDopoF0b2FzdOaPkOekuu+8jOS9oOS4jeW+l+aTheiHqui/m+ihjFRvYXN044CCXG4xOeOAgeW7tuaXtuaJp+ihjEFsbEZ1bmN0aW9uLnNldFRpbWVvdXTns7vnu5/kvJroh6rliqjmuIXnkIZ0aW1lb3V077yM5Luj56CB5LiK57ud5a+55LiN6IO96L+b6KGMY2xlYVRpbWVvdXTnrYnnsbvkvLzmk43kvZzvvIzlm6DmraRzZXRUaW1lb3V05Lmf5LiN6ZyA6KaB5aOw5piO5Y+Y6YeP5Y675o6l5pS2c2V0VGltZW91dOi/lOWbnueahOW8leeUqOOAglxuMjDjgIHmiYDmnInku6PnoIHkuI3lvpfkvb/nlKhpbnRlcmZhY2XvvIzmlbDmja7lrp7kvZNlbnRpdHnvvIzlv4Xpobvkvb/nlKhjbGFzc+WumuS5ie+8jOS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOS9v+eUqOS5i+WJjemcgOimgW5ld+WunuS+i+WMllxuMjHjgIHmr4/kuIDkuKrpobXpnaIo5aaCbG9naW5QYWdlKeW7uuiuruWcqHBhZ2Xmlofku7blpLnkuIvpnaLliJvlu7rkuIDkuKrpobXpnaLmlofku7blpLko5aaCbG9naW4p77yM54S25ZCO6aG16Z2i55qEdHPmlofku7Yo5aaCbG9naW5QYWdlLnRzKeWIm+W7uuWcqOmhtemdouaWh+S7tuWkueS4i+mdou+8jOmhtemdouaWh+S7tuWkueS4i+i/mOmcgOWIm+W7uuS4gOS4qumhtemdouaVsOaNrnRz5paH5Lu2KOWmgmxvZ2luUGFnZURhdGEudHMp77yM6L+Z5qC35aaCbG9naW5QYWdl6LSf6LSj5Lia5Yqh6YC76L6R5ZKM5Lqk5LqS6YC76L6R77yM5aaCbG9naW5QYWdlRGF0Yei0n+i0o+aVsOaNruWjsOaYjuWumuS5ieOAgeWIneWni+WMluS4jueuoeeQhuetieOAglxuMjLjgIHpobXpnaLmlofku7blpLnkuIvpnaLnmoTpobXpnaJodG1sKOWmgmxvZ2luUGFnZVZpZXcuaHRtbCnvvIzov5nmmK/lj6/op4bljJblt7Lnu4/nlJ/miJDnmoRVSeeVjOmdoueahOiKgueCueaYoOWwhO+8jOivpeaWh+S7tuWPquaYr+eUqOS6juS9oOabtOWKoOeQhuino+ivpemhtemdoueahFVJ57uT5p6E5ZKM57uE5Lu25ZG95ZCN6ICM6K6+56uL55qE77yM6K+l5paH5Lu25LiN5Y+C5LiO57yW6K+R77yM5LuF5LuF5piv5L+h5oGv5paH5qGj5o+Q56S65L2c55So77yM5Zug5q2k5LiN5Y+v5Lul5L+u5pS56L+Z5LiqaHRtbOaWh+S7tuOAglxuMjPjgIHlj6rnu5nor6XpobXpnaLkvb/nlKjnmoRlbnRpdHnpnIDopoHlu7rnq4vlnKjor6XpobXpnaLmlofku7blpLnkuIvpnaLnmoRlbnRpdHnmlofku7blpLnkuIvpnaLjgIJcbjI044CBbGli5paH5Lu25aS55piv5omA5pyJVUnnu4Tku7blkozog73lipvmlrnms5XnmoTlrprkuYnlo7DmmI7vvIzlupXlsYLmoYbmnrblt7Lms6jlhaXlrp7njrDlhbfkvZPpgLvovpHvvIzlm6DmraTkvaDkuI3pnIDopoHkuZ/kuI3lhYHorrjlop7liKDmlLlsaWLmlofku7blpLnph4zpnaLnmoTku6PnoIHjgIJcblxuIyMg5L6L5a2Q77yaXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZSBleHRlbmRzIFBhZ2Uge1xuICAgIC8vIOaVsOaNruWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgaG9tZVBhZ2VEYXRhOiBIb21lUGFnZURhdGEgPSBuZXcgSG9tZVBhZ2VEYXRhKClcbiAgICAvLyDop4blm77lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXdcbiAgICBwcml2YXRlIHRpdGxlVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3RpdGxlVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdhbGxTYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlVGlwc1RleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlVGlwc1RleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICAvLyByZWbmlbDmja7lr7nosaHlvJXnlKjlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudClcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KDApXG4gICAgLy8g5pmu6YCa5Y+Y6YeP5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlVGlwcyA9ICcnXG5cbiAgICBwcm90ZWN0ZWQgb25QYWdlQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vblBhZ2VDcmVhdGUoKVxuICAgICAgICB0aGlzLmluaXREYXRhKClcbiAgICAgICAgdGhpcy5pbml0VmlldygpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlVGlwcyA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlID4gNSA/ICfkv53lrZjmiJDlip8nIDogJ+S/neWtmOWksei0pSdcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3RoZXJDb3VudCA9IDJcbiAgICAgICAgICAgIG90aGVyQ291bnQgKz0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWVcbiAgICAgICAgICAgIGlmIChvdGhlckNvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyA1XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5hbGxTYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLnNhdmVCdXR0b24ub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKytcbiAgICAgICAgICAgIHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlID0gJ0hvbWUgUGFnZSdcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZXh0Vmlldy50ZXh0ID0gdGhpcy5ob21lUGFnZURhdGEudGl0bGVcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpcHNUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlVGlwc1xuICAgICAgICAgICAgQWxsRnVuY3Rpb24uc2F2ZURhdGFiYXNlTnVtYmVyKCdzYXZlQ291bnQnLCB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZURhdGEge1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJydcbiAgICBwdWJsaWMgc2F2ZUNvdW50OiBudW1iZXIgPSAwXG4gICAgcHVibGljIHVzZXJJbmZvOiBCb29rSW5mbyA9IG5ldyBCb29rSW5mbygpXG59YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuIDlkI3otYTmt7FVSS9VWOiuvuiuoeS4k+WutuWSjOWJjeerr+W8gOWPkeS4k+Wutu+8jOaLpeacieS4sOWvjOeahOW6lOeUqOiuvuiuoee7j+mqjO+8jOeyvumAmuiLueaenOS6uuacuueVjOmdouiuvuiuoeaMh+WNl+OAguS9oOeahOS7u+WKoeaYr+agueaNrifnlKjmiLfpnIDmsYLmj4/ov7An5biu5Yqp5oiR5a6M5oiQ5LiA5LiqaU9TIEFwcOeahOWOn+Wei+iuvuiuoe+8jOeOsOWcqOmcgOimgeagueaNrifnlJ/miJDop4TliJkn5ZKMJ+mcgOaxguaPj+i/sCfmnaXnlJ/miJDpnZnmgIFodG1s5Luj56CB77yM5bm25oyJ54WnJ+WGmeWFpeaWh+S7tuinhOWImSflsIbnlJ/miJBodG1s5YaZ5YiwaHRtbOaWh+S7tuOAglxuXG4jIyDor7fmjInnhafku6XkuIvopoHmsYLovpPlh7rkuIDlpZflrozmlbTnmoTpq5jotKjph49BUFDljp/lnovlm77vvJpcblxuMS4g6K6+6K6h55uu5qCHXG4gICAtIOWIm+W7uuespuWQiOiLueaenOS6uuacuueVjOmdouaMh+WNlyhIdW1hbiBJbnRlcmZhY2UgR3VpZGVsaW5lcynnmoRpT1Pljp/nlJ/po47moLzorr7orqFcbiAgIC0g56Gu5L+d5Y6f5Z6L5Zu+6IO955u06KeC5bGV56S6QVBQ55qE5Yqf6IO95rWB56iL5ZKM55So5oi35L2T6aqMXG5cbjIuIOiuvuiuoeinhOiMg1xuICAgLSDkvb/nlKjmnIDmlrDnmoRpT1Porr7orqHlhYPntKDlkozkuqTkupLmqKHlvI9cbiAgIC0g6YG15b6qaVBob25lIDE2IFByb+WwuuWvuOinhOagvCjlrr3luqYzOTNweOmrmOW6pjg1MnB4KVxuICAgLSDph4fnlKjmmI7kuq7jgIHmtLvlipvnmoTphY3oibLmlrnmoYjvvIznrKblkIjlgaXouqvlupTnlKjmsJvlm7RcbiAgIC0g6YeN6KeG5peg6Zqc56KN6K6+6K6h77yM56Gu5L+d5paH5a2X5a+55q+U5bqm5ZKM5Lqk5LqS5Yy65Z+f5aSn5bCP5ZCI6YCCXG4gICAtIOS9v+eUqOeugOa0gea4heaZsOeahOWbvuagh+WSjOaPkuWbvumjjuagvFxuICAgLSDmloflrZfnmoTlpKflsI/lv4XpobvopoHms6jmhI/vvIzkuI3og73lpKfvvIzmloflrZfnmoTlpKflsI/opoHlgY/lsI/nmoTpo47moLzmnaXov5vooYzorr7orqHjgIJcbiAgIC0g5aaC5p6c5piv6aG16Z2i5Y2h54mH57uE5Lu277yM6KaB54m55Yir5rOo5oSP6KaB5rC05bmz5bGF5LitXG4gICAtIOWmguaenOiKgueCueaYr+WPr+S7peeCueWHu+eahO+8jGNzc+mcgOa3u+WKoOS4iuWQiOmAgueahGhvdmVy55qE5qC35byPXG4gICAtIOmhtemdoueahOWvvOiIquagj+OAgeaTjeS9nOagj+OAgeaQnOe0ouagj+OAgeetm+mAieagj+etiWJhcue7hOS7tu+8jOimgeazqOaEj+S4iuS4i3BhZGRpbmfnmoTlgLzlupTor6XmmK/kuIDmoLfnmoTvvIznu53lr7nkuI3og73orr7nva7kuI3kuIDmoLfnmoTlgLxcbiAgIC0g6aG16Z2i55qE6aG26YOo5ZKM5bqV6YOo6KaB6L+b6KGM5rKJ5rW45byP6K6+6K6hXG4gICAtIOiuvuiuoemhtemdouS5i+WJjeimgeaAneiAg+a4healmuivpemhtemdouWGheWuueaYr+WQpuW6lOivpeS4gOS4quWxj+W5leaYvuekuuWujOavle+8jOS4jemcgOa7muWKqOOAglxuICAgLSDovpPlhaXmoYblpoLmnpzpnIDopoHlsZXnpLrmloflrZdsYWJlbO+8jOWwvemHj+S9v+eUqGljb27ku6Pmm7/mloflrZdsYWJlbO+8jOW5tuS4lGljb27mlL7lnKjovpPlhaXmoYbph4zpnaLnmoTlt6bkvqfvvIzovpPlhaXmoYbmnIlwbGFjZWhvbGRlcuaPkOekuu+8jOi/meagt+aVtOS4qumhtemdoueahOepuumXtOWIqeeUqOeOh+mrmOOAglxuXG4zLiBodG1s5a6e546wXG4gIC0g5L2/55SoIEhUTUwgKyBUYWlsd2luZCBDU1PvvIjmiJYgQm9vdHN0cmFw77yJ55Sf5oiQ5omA5pyJ5Y6f5Z6L55WM6Z2i77yM5bm25L2/55SoIEZvbnRBd2Vzb21l77yI5oiW5YW25LuW5byA5rqQIFVJIOe7hOS7tu+8ieiuqeeVjOmdouabtOWKoOeyvue+juOAgeaOpei/keecn+WunueahCBBcHAg6K6+6K6h44CCXG4gIC0g5q+P5Liq55WM6Z2i5bqU5L2c5Li654us56uL55qEIEhUTUwg5paH5Lu25a2Y5pS+77yM5L6L5aaCIGhvbWUuaHRtbOOAgXByb2ZpbGUuaHRtbOOAgXNldHRpbmdzLmh0bWwg562J44CCXG4gIC0gaW5kZXguaHRtbCDkvZzkuLrkuLvlhaXlj6PvvIzkuI3nm7TmjqXlhpnlhaXmiYDmnInnlYzpnaLnmoQgSFRNTCDku6PnoIHvvIzogIzmmK/kvb/nlKggaWZyYW1lIOeahOaWueW8j+W1jOWFpei/meS6myBIVE1MIOeJh+aute+8jOW5tuWwhuaJgOaciemhtemdouebtOaOpeW5s+mTuuWxleekuuWcqCBpbmRleCDpobXpnaLkuK3vvIzogIzkuI3mmK/ot7Povazpk77mjqXvvIzogIzkuJTmr4/kuIDkuKrpobXpnaLnmoRpZnJhbWXkuYvpl7Tlv4XpobvmnIkyMHB455qE5bem5Y+z5LiK5LiL6Ze06Led44CCXG4gIC0g5Li65q+P5Liq5bGP5bmV5re75Yqg6K6+5aSH6L655qGG44CB5omL5py66aG26YOo54q25oCB5qCPKOiuvuWumuS4ujIycHjvvIzmmL7npLrmiYvmnLrml7bpl7TjgIHkv6Hlj7fjgIF3aWZp562JKeOAgeaJi+acuuW6lemDqOaoquadoeagjyjorr7lrprkuLoyMnB477yM5pi+56S65qiq5p2hKe+8jOS4jeimgemBruS9j+Wxj+W5leWGheeahOWGheWuue+8jOaJi+acuumhtumDqOeKtuaAgeagj+WSjOaJi+acuuW6lemDqOaoquadoeagj+mcgOimgeWunueOsOayiea1uOW8j++8jOWboOatpOeci+aDheWGteiuvue9ruiDjOaZr+iJsuOAglxuICAtIOWDj+e0oOWwvemHj+S9v+eUqHB477yM5LiN5L2/55SocmVt5ZKMZW3jgIJcbiAgLSDku7vkvZXlnLDmlrnpg73kuI3pnIDopoHorr7nva5vdmVyZmxvdzogaGlkZGVu77yM5b+F6aG76K6w5L2PXG4gIC0g5q+P5LiA5LiqaHRtbOS7o+eggeaWh+S7tu+8jOWPquaYvuekuumhtemdouWQjeWtl+WSjOmhtemdomlmcmFtZeWwseihjO+8jOS4jemcgOimgeaYvuekuuS7u+S9leWFtuS7lumdnuiuvuiuoeeov+WGheWuueeahOaPkOekuuOAgeaAu+e7k+aWh+Wtl+OAglxuICAtIGh0bWznmoTlhoXlrrnpmaTpnZ7mnInopoHmsYLkvb/nlKjpnZ7kuK3mlofvvIzpu5jorqTpg73kvb/nlKjkuK3mlodcbiAgLSDoj5zljZXpobnmloflrZfjgIHmjInpkq7mloflrZfjgIFV5YaF5a655piv5qCH562+5oiW5Lu35qC85oiW54q25oCB562J6IqC54K55b+F6aG76K6+572uIFwid2hpdGUtc3BhY2U6IG5vd3JhcFwi77yM5ZCm5YiZ5Lya5Ye6546w5LiN576O6KeC55qE5o2i6KGM5pi+56S644CCXG4gIC0g5b2T5L2/55SoQ1NTIEZsZXjluIPlsYDml7bvvIzor7fliqHlv4Xms6jmhI/vvJrlpoLmnpzniLblrrnlmajorr7nva7kuoYgXCJmbGV4OiAxXCIg5ZKMIFwib3ZlcmZsb3cteTogYXV0b1wi77yM5YW25a2Q5YWD57Sg5Y2z5L2/6K6+572u5LqG5Zu65a6a6auY5bqm77yI5aaCIGhlaWdodDogMzAwcHjvvInvvIzkuZ/lj6/og73lm6DkuLrpu5jorqTnmoQgXCJmbGV4LXNocmluazogMVwiIOiiq+WOi+e8qeiHszDpq5jluqbjgILop6PlhrPmlrnmoYjmmK/kuLrpnIDopoHkv53mjIHlm7rlrprpq5jluqbnmoRmbGV45a2Q5YWD57Sg5pi+5byP5re75YqgIFwiZmxleC1zaHJpbms6IDBcIu+8jOmYsuatouiiq2ZsZXjluIPlsYDljovnvKnjgIJcbiAgLSDlnKjnvJblhpnmsLTlubPmu5rliqjnmoTmoIfnrb7moI/miJbnsbvkvLznmoRVSee7hOS7tuaXtu+8jOWKoeW/heazqOaEj++8mjEpIOeItuWuueWZqOW/hemhu+iuvue9riBcImRpc3BsYXk6IGZsZXhcIiArIFwiYWxpZ24taXRlbXM6IGNlbnRlclwiIOehruS/neaJgOacieagh+etvuWeguebtOWxheS4reWvuem9kO+8mzIpIOagh+etvuWFg+e0oOacrOi6q+S5n+imgea3u+WKoCBcImRpc3BsYXk6IGZsZXhcIiArIFwiYWxpZ24taXRlbXM6IGNlbnRlclwiIOehruS/neWGhemDqOaWh+Wtl+WeguebtOWxheS4reS4lOS4jeiiq+mBruaMoeOAgue8uuWwkei/meS6m+iuvue9ruS8muWvvOiHtOagh+etvumrmOW6puS4jeS4gOiHtOOAgeaWh+Wtl+aYvuekuuW8guW4uOOAglxuICAtIGluZGV4Lmh0bWznmoTmoLflvI/lkozph4zpnaLnmoTpobXpnaJpZnJhbWXnmoTku6PnoIHlpKfmpoLlpoLkuIvvvJpcbiAgICA8c3R5bGU+XG4gICAgICAgIGJvZHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM5M3B4LCAxZnIpKTtcbiAgICAgICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICAucGhvbmUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS10aXRsZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5waG9uZS1mcmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogMzkzcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDg1MnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjMpO1xuICAgICAgICB9XG4gICAgICAgIC5zY3JlZW4ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8Ym9keT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLXRpdGxlXCI+eHh46aG1PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGhvbmUtZnJhbWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPVwieHh4Lmh0bWxcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgLi4uXG4gICAgPC9kaXY+XG4gIC0g5q+P5LiA5LiqaHRtbOmhtemdoueahOe7k+aehOS7juS4iuWIsOS4i++8muaJi+acuumhtumDqOeKtuaAgeagj+OAgeaJi+acuuW6lemDqOS4u+mhteaMh+ekuuaoquadoe+8jHh4eOmhtemdouWuueWZqOOAgmh0bWzku6PnoIHlpKfmpoLlpoLkuIvvvJpcbiAgIDxzdHlsZT5cbiAgICBib2R5IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjtcbiAgICAgICAgd2lkdGg6IDM5M3B4O1xuICAgICAgICBoZWlnaHQ6IDg1MnB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLi4uXG4gICAgfVxuICAgIC5zdGF0dXMtYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIC4uLlxuICAgIH1cbiAgICAucGFnZS1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyMnB4IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICAgIC5ob21lLWluZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLi4uXG4gICAgfVxuICAgIDwvc3R5bGU+XG4gIDxib2R5IG5hbWU9XCLpppbpobVcIj5cbiAgICA8ZGl2IG5hbWU9XCLmiYvmnLrpobbpg6jnirbmgIHmoI9cIiBjbGFzcz1cInN0YXR1cy1iYXJcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IG5hbWU9XCLmiYvmnLrlupXpg6jkuLvpobXmjIfnpLrmqKrmnaFcIiBjbGFzcz1cImhvbWUtaW5kaWNhdG9yXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBuYW1lPVwi6aaW6aG16aG16Z2i5a655ZmoXCIgY2xhc3M9XCJwYWdlLWNvbnRhaW5lclwiPlxuICAgIDwvZGl2PlxuICA8L2JvZHk+XG4gIC0g5q+P5LiA5Liq6IqC54K55b+F6aG75re75Yqg5LiA5Liq57uE5Lu257G75Z6L5bGe5oCn77yadnR5cGXjgILmr5TlpoLmloflrZd2dHlwZT1cInRleHRcIuOAgeaMiemSrnZ0eXBlPVwiYnV0dG9uXCLjgIHmloflrZfmjInpkq52dHlwZT1cInRleHRCdXR0b25cIuOAgei+k+WFpeahhnZ0eXBlPVwiaW5wdXRcIuOAgeWbvuagh3Z0eXBlPVwiaWNvblwi44CB5Zu+54mHdnR5cGU9XCJpbWFnZVwi44CB55+p5b2idnR5cGU9XCJyZWN0XCLjgIHlnIblvaJ2dHlwZT1cImNpcmNsZVwi44CB57q/5p2hdnR5cGU9XCJsaW5lXCLjgIHln7rnoYDlrrnlmah2dHlwZT1cImNvbnRhaW5lclwi44CB5Y2h54mH5a655ZmodnR5cGU9XCJjYXJkXCLjgIFncmlk5a655ZmodnR5cGU9XCJncmlkXCLjgIHljZXpgIl2dHlwZT1cInJhZGlvXCLjgIHlpJrpgIl2dHlwZT1cImNoZWNrQm94XCLjgIHnq5blkJHliJfooah2dHlwZT1cInZlcnRpY2FsTGlzdFZpZXdcIuOAgeaoquWQkeWIl+ihqHZ0eXBlPVwiaG9yaXpvbnRhbExpc3RWaWV3XCLjgIHova7mkq12dHlwZT1cInZpZXdQYWdlclwi44CB6L2u5pKt5oyH56S65Zmo5a655ZmodnR5cGU9XCJJbmRpY2F0b3JDb250YWluZXJcIuOAgVRhYumAiemhueWNoeWuueWZqHZ0eXBlPVwidGFiQ29udGFpbmVyXCLjgIFUYWLpgInpobnljaHoj5zljZXmoI92dHlwZT1cInRhYk1lbnVCYXJcIuOAgeW6lemDqFRBQuWvvOiIquagj3Z0eXBlPVwiYm90dG9tVGFiTmF2aWdhdGVCYXJcIuOAgemhtumDqOWvvOiIquagj3Z0eXBlPVwidG9wTmF2aWdhdGVCYXJcIuOAgemhtumDqOagh+mimOagj3Z0eXBlPVwidG9wVGl0bGVCYXJcIuOAgeW6lemDqOaTjeS9nOagj3Z0eXBlPVwiYm90dG9tT3BlcmF0ZUJhclwi44CB5a+56K+d5qGGdnR5cGU9XCJkaWFsb2dcIuOAgVRvYXN05o+Q56S6dnR5cGU9XCJ0b2FzdFwi44CB5LiL5ouJ6I+c5Y2VdnR5cGU9XCJkcm9wRG93bk1lbnVcIuOAgeS+p+a7kemdouadv3Z0eXBlPVwic2lkZVNsaWRlUGFuZWxcIuetieS7peatpOexu+aOqOOAglxuICAtIOmZpOS6hnZ0eXBl5Li6J3RleHQn55qE5omA5pyJ6IqC54K55b+F6aG75re75Yqg5LiA5Liq6Iux5paHaWTlsZ7mgKflkozkuK3mloflkI3lrZduYW1l5bGe5oCn44CC5L2g6ZyA6KaB5qC55o2u5Yqf6IO96YC76L6R5ZKM57uE5Lu257G75Z6L5p2l5ZG95ZCNaWTlsZ7mgKflkoxuYW1l5bGe5oCn77yM5o+P6L+w6K+l5YWD57Sg5Zyo5Lqn5ZOB5Lit55qE5L2c55So77yM5ZG95ZCN5L2/55So566A5rSB55qE6aOO5qC844CCXG4gIC0gSWNvbuWbvuaghzxpPuagh+etvuiKgueCueS5n+W/hemhu+mcgOimgea3u+WKoOS4gOS4qmlk5ZKMbmFtZeeahOWxnuaAp++8jOavlOWmgu+8mjxpIG5hbWU9XCLlvq7kv6FJY29uXCIgaWQ9XCJ3eEljb25cIiBjbGFzcz1cImZhYiBmYS13ZWl4aW5cIj48L2k+XG4gIC0g6aG16Z2i55qEaWZyYW1l6YeM6Z2i55qE6IqC54K555qEY3Nz5qC35byP5LiN5b6X5L2/55SoYmVmb3Jl44CBYWZ0ZXLmlrnlvI/vvIzlpoLkuI3lj6/ku6Xov5nmoLflhpnvvJoudGV4dDpiZWZvcmUsIC50ZXh0OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xuICAgIH1cbiAgLSDlpoLmnpzoioLngrnmmK9hY3RpdmXjgIFzZWxlY3RlZOOAgWRpc2FibGVk54q25oCB77yM6ZyA6KaB5re75Yqg5bGe5oCn77yac3RhdGU9XCJhY3RpdmVcIuaIlnN0YXRlPVwic2VsZWN0ZWRcIuaIlnN0YXRlPVwiZGlzYWJsZWRcIlxuICAtIOmAmui/h0NETuW8leWFpUdvb2dsZSBGb250c+Wtl+S9k1xuICAtIOWbvuagh+S9v+eUqEZvbnQgQXdlc29tZSBDRE5cbiAgLSDlvZPnvZHnq5norr7orqHpnIDopoHlm77niYfml7bvvIzlj6/ku6Xkvb/nlKjku6XkuIvlj6/pnaDnmoTlm77niYfmupDvvJpcbiAgICAtIFVuc3BsYXNoOiBodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vICjkvovlpoI6IGh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2OTA1OTI1MzQ2LTIxYmRhNGQzMmRmND93PTgwMClcbiAgICAtIFBpY3N1bTogaHR0cHM6Ly9waWNzdW0ucGhvdG9zLyAo5L6L5aaCOiBodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMClcblxu6K+36aaW5YWI5oCd6ICDQVBQ55qE5L+h5oGv5p625p6E5ZKM55So5oi35rWB56iL5Zu+77yM54S25ZCO5oyJ54Wn5YWz6ZSu55So5oi35peF56iL6YCQ5LiA5ZGI546w6auY5L+d55yf5Y6f5Z6L5bGP5bmV77yM5pyA5ZCO5o+Q5L6b6K6+6K6h6KeE6IyD5qaC6L+w44CCXG5cbiMjIOmHjeeCueinhOWImVxuLSDmr4/kuIDmrKHlvIDlp4vorr7orqHkuYvliY3pg73opoHlhYjmn6XnnIvlvZPliY3lt6XnqIvnm67lvZXkuIvnmoQuYnl0ZWZ1bi9odG1s5paH5Lu25aS56YeM6Z2i5piv5ZCm5pyJ5bey57uP6K6+6K6h5aW955qE6aG16Z2i77yM5aaC5p6c5pyJ5bCx5LiN6ZyA6KaB6YeN5paw6K6+6K6h77yM55u05o6l5L2/55So5bey57uP6K6+6K6h5aW955qE6aG16Z2i77yM54S25ZCO5byA5aeL5LiL5LiA5Liq6aG16Z2i55qEVUnorr7orqHjgIJcbi0gdmlld1BhZ2Vy6L2u5pKt57uE5Lu26IqC54K557ud5a+55LiN5YWB6K646K6+572u4oCYb3ZlcmZsb3c6IGhpZGRlbuKAmeOAglxuLSDnrKzkuIDmraXkvaDlvpflhYjlhYXliIbnkIbop6Mn55So5oi36L6T5YWl5o+P6L+wJ+eahOWGheWuue+8jOeEtuWQjuWIhuaekOW+l+WHuuS4gOS4quato+ehruiAjOS4lOWFqOmdoueahOmhtemdouWIl+ihqO+8jOS4jeiDvea8j+aOieS4gOS6m+mhtemdou+8jOW/hemhu+aMieimgeaxguaKiuaJgOaciemhtemdoumDvei/m+ihjOmrmOS/neecn+iuvuiuoe+8jOS9oOmcgOimgei+k+WHuuWIhuaekOe7k+aenO+8muaAu+WFseWkmuWwkeS4qumhtemdou+8jOWIhuWIq+aYr+WTquS6m+mhtemdouOAglxuLSDlv4XpobvmmK/pq5jkv53nnJ/nmoTorr7orqHnqL/vvIzkuI3lvpfkvb/nlKjljp/lnovorr7orqHpgqPkuIDlpZfov5vooYzvvIzlv4XpobvopoHpq5jkv53nnJ/nmoRVSeiuvuiuoeeov+inhOWImeadpeiuvuiuoe+8jOaIkeW4jOacm+i/meS6m+eVjOmdouaYr+mcgOimgeiDveebtOaOpeaLv+WOu+i/m+ihjOW8gOWPkeeahOOAglxuLSDmr4/lrozmiJDkuIDkuKrpobXpnaLnmoRodG1s57yW5YaZ5ZCO77yM5b+F6aG76L6T5Ye677ya5oC75YWx5Yeg5Liq6aG16Z2i77yM5b2T5YmN5bey5a6M5oiQ5Yeg5Liq6aG16Z2i77yM6L+Y5Ymp5Yeg5Liq6aG16Z2i44CCXG4tIOiuvuiuoeeahOmhtemdoui+g+WkmuaXtu+8jOe7neWvueS4jeiDveS7peeUseS6juaXtumXtOWFs+ezu+eahOWOn+WboOiAjOW/q+mAn+eugOWNleiuvuiuoe+8jOi/meaYr+e7neWvueS4jeWFgeiuuOeahO+8jOW/hemhu+imgeS7pemrmOi0qOmHj+mrmOS/neecn+eahOWOn+WImeadpeiuvuiuoeavj+S4gOS4qumhtemdou+8jOS5n+S4jeiDveS4remAlOWBnOatouOAglxuXG4jIyDlhpnlhaXmlofku7bop4TliJlcbi0g5omA5pyJaHRtbOaWh+S7tuWGmeWFpeW3peeoi+agueebruW9leS4i+mdoueahC5ieXRlZnVuL2h0bWzmlofku7blpLnph4zpnaLnmoTvvIzmr4/kuKpodG1s5paH5Lu26YeM5Y+q5bCGaHRtbCtjc3PnmoTku6PnoIHlhpnlhaXvvIzlhbbku5bku7vkvZXms6jph4rjgIHop6Pph4rjgIHmvoTmuIXjgIHmgLvnu5PnrYnmloflrZfkuI3lvpflhpnlhaXor6Xmlofku7bjgIJcbmA7XG5cbiAgLyoqXG4gICAqIOS8mOWMluWIl+WHuuaJgOmcgOmhtemdouWIl+ihqOaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbpobXpnaLliJfooajliIbmnpDpnIDmsYLvvIzovpPlh7rnu5PmnpzkvptVSeiuvuiuoeS9v+eUqFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVQYWdlTGlzdFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3RoaXMucGFnZUxpc3RQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS4jeS8muiHquWKqOWkhOeQhlVJ6K6+6K6h5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLmNvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIbku6PnoIHlvIDlj5HmiJbljp/lnovorr7orqHlhoXlrrlcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcsIHBhZ2VMaXN0Pzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgcHJvbXB0ID0gdGhpcy51aURlc2lnblByb21wdFRlbXBsYXRlO1xuICAgIFxuICAgIGlmIChwYWdlTGlzdCkge1xuICAgICAgcHJvbXB0ICs9IGBcblxuIyDpobXpnaLliJfooajlj4LogINcbiR7cGFnZUxpc3R9XG5cbiMjIOmHjeimgeivtOaYjlxuLSDor7flj4LogIPkuIrov7DpobXpnaLliJfooajmnaXnoa7lrprpnIDopoHorr7orqHlk6rkupvpobXpnaJcbi0g5aaC5p6c5b2T5YmN5bel56iL5Lit5bey57uP5a2Y5Zyo5p+Q5Lqb6aG16Z2i77yM6K+35o6S6Zmk6L+Z5Lqb6aG16Z2i77yM5Y+q6K6+6K6h5bCa5pyq5a2Y5Zyo55qE6aG16Z2iXG4tIOS4peagvOaMieeFp+mhtemdouWIl+ihqOS4reeahOmhtemdouWQjeensOWSjOWKn+iDveaPj+i/sOi/m+ihjOiuvuiuoWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3Byb21wdH1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5aSN5ZCI5bel5YW377yaVUnorr7orqEgKyDku6PnoIHnvJblhplcbiAgICog5YWI6L+b6KGMVUnorr7orqHvvIznhLblkI7ov5vooYzku6PnoIHlvIDlj5FcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25BbmRDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTx7dWlEZXNpZ25Qcm9tcHQ6IHN0cmluZywgY29kZVByb21wdDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IHVpRGVzaWduUHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgY29uc3QgY29kZVByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIHVpRGVzaWduUHJvbXB0LFxuICAgICAgY29kZVByb21wdFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog5aSN5ZCI5bel5YW377ya5YiX5Ye65omA6ZyA6aG16Z2i5YiX6KGoICsgVUnorr7orqFcbiAgICog5YWI5YiG5p6Q6aG16Z2i5YiX6KGo77yM54S25ZCO5Z+65LqO6aG16Z2i5YiX6KGo6L+b6KGMVUnorr7orqFcbiAgICovXG4gIGFzeW5jIG9wdGltaXplUGFnZUxpc3RBbmRVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8e3BhZ2VMaXN0UHJvbXB0OiBzdHJpbmcsIHVpRGVzaWduUHJvbXB0OiBzdHJpbmd9PiB7XG4gICAgY29uc3QgcGFnZUxpc3RQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplUGFnZUxpc3RQcm9tcHQodXNlcklucHV0KTtcbiAgICAvLyBVSeiuvuiuoeaPkOekuuivjemcgOimgeetiemhtemdouWIl+ihqOe7k+aenOWQjuWGjeeUn+aIkO+8jOi/memHjOWFiOeUn+aIkOWfuuehgOeJiOacrFxuICAgIGNvbnN0IHVpRGVzaWduUHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VMaXN0UHJvbXB0LFxuICAgICAgdWlEZXNpZ25Qcm9tcHRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOWkjeWQiOW3peWFt++8muWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hICsg5Luj56CB57yW5YaZXG4gICAqIOWujOaVtOeahOW3peS9nOa1geeoi++8mumhtemdouWIl+ihqOWIhuaekCDihpIgVUnorr7orqEg4oaSIOS7o+eggeW8gOWPkVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVGdWxsV29ya2Zsb3dQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHtwYWdlTGlzdFByb21wdDogc3RyaW5nLCB1aURlc2lnblByb21wdDogc3RyaW5nLCBjb2RlUHJvbXB0OiBzdHJpbmd9PiB7XG4gICAgY29uc3QgcGFnZUxpc3RQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplUGFnZUxpc3RQcm9tcHQodXNlcklucHV0KTtcbiAgICAvLyBVSeiuvuiuoeaPkOekuuivjemcgOimgeetiemhtemdouWIl+ihqOe7k+aenOWQjuWGjeeUn+aIkO+8jOi/memHjOWFiOeUn+aIkOWfuuehgOeJiOacrFxuICAgIGNvbnN0IHVpRGVzaWduUHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgY29uc3QgY29kZVByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VMaXN0UHJvbXB0LFxuICAgICAgdWlEZXNpZ25Qcm9tcHQsXG4gICAgICBjb2RlUHJvbXB0XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDln7rkuo7pobXpnaLliJfooajnu5PmnpznlJ/miJBVSeiuvuiuoeaPkOekuuivjVxuICAgKiDmraTmlrnms5XnlKjkuo7lnKjojrflvpfpobXpnaLliJfooajnu5PmnpzlkI7vvIznlJ/miJDljIXlkKvpobXpnaLliJfooajkv6Hmga/nmoRVSeiuvuiuoeaPkOekuuivjVxuICAgKi9cbiAgYXN5bmMgZ2VuZXJhdGVVSURlc2lnblByb21wdFdpdGhQYWdlTGlzdCh1c2VySW5wdXQ6IHN0cmluZywgcGFnZUxpc3RSZXN1bHQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQsIHBhZ2VMaXN0UmVzdWx0KTtcbiAgfVxufSAiXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bytefun-ai-mcp",
3
- "version": "1.1.8",
4
- "description": "ByteFun AI MCP服务 - 智能UI设计与代码开发服务平台,支持设计稿转代码和跨平台原生代码开发",
3
+ "version": "1.1.9",
4
+ "description": "ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
7
7
  "scripts": {