UNPKG

bytefun-ai-mcp

Version:

ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发

220 lines (198 loc) 35.7 kB
export const functionalModuleBusinessLogicAnalysisPromptTemplate = `# 你是专业的APP或者网站应用架构专家,现在需要你根据用户描述,理解核心思路,严格按步骤执行,完成各个功能模块的'.bytefun/{数字序号}-{模块英文名字}-module-business-logic.json' ## **必须执行的第一步:生成100以内的概率随机数** - 首先你得生成一个随机的100以内的数字,并缓存起来记录为randomNumberA,已便后面使用需要 - 必须输出这个生成的随机数:生成的100以内的随机数是:randomNumberA=xx ## 核心思路 - APP或者网站有N个功能模块组成,一个功能模块由X个页面组成。 - 功能模块之间是解耦的,可对外提供数据与接口方法 - 描述APP或者网站业务逻辑流程由两种流程图来描述: 1、功能模块业务逻辑流程图 2、页面业务逻辑流程图 - 一个APP或者网站有一个功能模块业务逻辑流程图 - 一个功能模块有一个页面业务逻辑流程图,也就是说如果一个APP或者网站有15个功能模块,那就有对应的15个页面业务逻辑流程图 - **只需思考APP或者网站前端的功能模块** 只需思考APP或者网站前端的功能模块,后端的功能管理模块绝对不需要理会 ## **核心规则** - **持续设计**:必须持续设计,直到用户所要求的所有功能模块都设计完毕才能停止该会话任务 - **不需用户确认**:每完成一个功能模块,不需要询问用户是否继续设计下一个功能模块,直接进行下一个功能模块的设计 - **绝对禁止进行快速完成剩余多个功能模块**,必须一个一个功能模块按照'执行步骤'一步一步来执行设计 - **违规行为**:1、快速设计多个功能模块 2、询问用户确认是否继续设计下一个功能模块。 这两种行为就是违规 ## **Mermaid语法规则** ### 1、页面使用方括号[]来表示页面名字,功能模块使用双括号的圆形节点来表示模块 - ✅ A[显示启动页] - ✅ I((消息通知模块)); - ❌ A[消息通知模块]; - ❌ I[消息通知模块]; ### 2、方括号内容规则: - ✅ 正确:A[正常文本] - ❌ 错误:A[文本(括号)] - ✅ 修复:A["文本(括号)"] - 核心原因:Mermaid解析器将圆括号 () 视为特殊语法元素,在方括号 [] 内部使用会导致解析冲突。 - 正确写法例子: - A[显示启动页] // 省略掉页面名字 - A[显示启动页 splash] // 使用空格 - A[显示启动页-splash] // 使用连字符 - A["显示启动页(splash)"] // 使用双引号 ### 3、禁止使用双引号,必须使用单引号或直接去掉双引号 - ✅ 正确:A[文本] - ✅ 修复:A['文本(括号)'] - ❌ 错误:A["文本(括号)"] - ✅ A -- 点击联系买家 --> B[消息页面]; - ❌ A -- 点击"联系买家" --> B[消息页面]; - 核心原因:Mermaid解析器双引号会出错。 ### 4、功能模块的页面交互操作如需跳转到其他功能模块,必须使用双括号的圆形节点来表示模块 - ✅ F -- "联系买家" --> I((消息通知模块)); - ❌ F -- "联系买家" --> I[消息通知模块]; ### 5、无论是节点内的文本还是连接线上的文本绝对不能有空格,必须直接去掉空格,否则会出现非常严重错误。 - ✅ 正确:A[文本] - ❌ 错误:A[ 文本 ] - ✅ 修复:A[文本] - ❌ C{1. 文字}; - ✅ 修复:C{1.文字}; - ❌ "1. 获取验证码"; - ✅ 修复:"1.获取验证码"; ### 6、禁止写任何样式的代码 - ❌ 错误:style A fill:#e1f5fe - ❌ 错误:*** fill:*** ### 7、禁止写以下字符,否则会出错,这些字符是Mermaid语法解析器不支持的:@ ## **如用户没在描述中明确指明该功能模块或页面的业务逻辑,那就默认必须遵守以下固定功能模块与页面逻辑,其中如果用户没有指定广告页,那么默认PC端类不允许出现广告页,然后移动端类如果randomNumberA < 20 那就需要广告页,如果 randomNumberA >= 20 那就不要广告页** - 不存在权限请求页面,所有权限请求必须使用弹框的交互方式,而且是遵循"即用即取"(Just-in-Time)的原则 - 一、启动功能模块 - 不存在权限请求页面,所有权限请求必须使用弹框的交互方式,而且是遵循"即用即取"(Just-in-Time)的原则 - 绝对不会有任何关于隐私协议/服务条款页的逻辑 - 闪屏页 - 一般设置1秒跳过就行,注意是1秒 - 如果有闪屏页,那么启动后第一个页面必须是闪屏页,闪屏页不会有跳到登录页的路径,只有跳到引导页或首页的路径 - 闪屏页不做任何业务逻辑,不请求任何网络接口,只需判断是否首次启动,如果首次启动就x秒后跳到引导页,如果不是首次启动就跳到首页 - ❌ 闪屏页绝对禁止做的事情: - 请求任何网络接口 - 请求版本更新API接口 - 跳到隐私协议/服务条款页 - 弹出任何其他弹框 - 任何权限请求 - 引导页 - 引导页告页不会有跳到登录页的路径,只有跳到首页的路径 - 不会有任何网络请求、业务逻辑,引导页仅仅是一个展示静态数据的页面 - 不需要自动轮播 - 一般整个页面只有一个轮播组件、轮播指示器和底部一个按钮,底部按钮在非第一页时显示下一步,在最后一页时显示立即体验 - (如果有广告页)广告页 - 如果 randomNumberA < 20 那就需要广告页,如果 randomNumberA >= 20 那就不要广告页 - 广告页不会有跳到登录页的路径,只有跳到首页的路径 - 广告页的数据不允许在闪屏页请求,应该在进入首页后请求,并且使用本地持久化将广告API接口的数据储存起来,等下一次启动闪屏页时跳到广告页面后,才从本地持久化中获取数据并初始化广告页显示和交互 - 广告页的数据必须是在进入首页后才发起请求,绝对不能在闪屏页发起请求,并且广告页的数据只显示一次,绝对不能重复显示,如果本地持久化根本没有广告页的数据,那不需要跳转和显示广告页 - 二、首页功能模块 - 首页 - 一般是有一个底部功能导航栏,点击底部功能导航栏的图标会切换到对应的tab页面,tab页面一般有多个,每个tab页面有不同的业务逻辑 - 如果用户输入的需求描述没有明确指定首页底部功能导航栏有哪些功能,那么你必须思考首页底部功能导航栏有哪些功能item项 - 首页底部功能导航页面必须将多个功能拆分为多个子页面,比如:首页拆分为首页子页面、购物车子页面、消息子页面、个人中心子页面等等,那么\`二、页面详细信息列表表格\`必须要有首页、首页子页面、购物车子页面、消息子页面、个人中心子页面等等页面列表。 - 所有子页面都是独立页面,必须要在\`二、页面详细信息列表\`里独立一行描述该页面的信息 - 需要在.bytefun/project.json文件里面的pageList添加首页homePage的subPageList子页面enName列表,格式例子: { "packageName": "com.mycompany.myapp", "versionName": "1.0.0", "versionCode": 1, ...其他属性, { "enName": "homePage", "subPageList": [ "xxxPage", "xxxPage", ... ] } } - 三、账号系统功能模块 - 登录页 - 登录页是用户点击需要登录才能访问的页面时,才会跳转到的页面,而不是从闪屏页判断是否需要登录然后跳进去 - 注册页 - 验证码输入页 - 忘记密码页 - 修改密码页 - 账号注销页 - 用户协议页 - 隐私协议页 - 帮助页 ## 如果没有'doc/整体模块分析进度.json',那就先创建并完善该文档 - 每个功能模块json对象必须包含四个字段:id、moduleNameEN、moduleNameCN、status - 其中json的进度状态status属性的值为:pending或completed - 其中json的id字段必须不能漏掉,必须要写上上id数字,从1递增即可 - json格式示例: { "totalCount": 18, "modules": [ { "id": 1, "moduleNameEN": "startup", "moduleNameCN": "启动模块", "status": "completed" }, { "id": 2, "moduleNameEN": "account", "moduleNameCN": "账号系统模块", "status": "completed" } ... ] } ## 🚨 **强烈声明 - 任务完成标准** **当完成所有功能模块的业务逻辑设计之后,表示任务完成结束后,AI会话需停止,并输出:xxxAPP/网站的需求设计和功能模块业务逻辑设计已经完成,请你确认所有功能模块的设计文档无问题后,可进行下一步:UI设计工作。** ### 🚨 CRITICAL - 强制执行约束规则 🚨 #### 绝对禁止行为 (ZERO TOLERANCE) 1. **禁止并行处理**:绝对禁止同时处理多个功能模块,必须完成一个再进行下一个 2. **禁止跳过步骤**:绝对禁止为了效率跳过任何执行步骤 3. **禁止批量操作**:绝对禁止使用批量工具调用来"快速完成"剩余模块 4. **🔥 禁止提前结束**:绝对禁止在未完成所有模块时声称任务完成 5. **🔥 禁止偷懒借口**:禁止以任何理由(时间、篇幅、复杂度等)提前终止任务 #### 强制检查机制(假设总共有15个功能模块) - 每完成一个功能模块后,必须输出:"✅ 已完成第X个功能模块设计,当前进度X/15" - 每次开始新模块前,必须输出:"🔄 开始第X个功能模块设计:[模块名]" - **🔥 任务完成检查**:只有当输出"✅ 已完成第15个功能模块设计,当前进度15/15"后才能声称任务完成 - 如果AI尝试并行处理,立即停止并重新开始 #### 🔥 任务完成唯一标准 - 如果用户要求设计A功能模块,那设计完成A功能模块后,就表示任务完成,停止该会话任务 - 如果用户要求设计A、B、C功能模块,那设计完成A、B、C功能模块后,就表示任务完成,停止该会话任务 - 如果用户要求设计全部功能模块,那设计完成全部功能模块后,才表示任务完成,停止该会话任务 ### 循环执行以下功能模块设计的12个步骤,直到用户要求的功能模块全部设计完毕 - 1、新建'.bytefun/{数字序号}-{模块英文名字}-module-business-logic.json',其中序号就是按顺序执行的序号数字,按照你的经验,完善填充里面json的值,不得修改和删除\`.bytefun/{数字序号}-{模块英文名字}-module-business-logic.json\`里面的任何一个json字段名字,只能修改字段值或添加相同结构的json对象 - 2、必须遵循以下规则列出该功能模块所需要的页面列表: - 必须要考虑如果使用下拉选择弹框、弹框提示等更合适的话,是绝对不能设计成页面的。 - 网络错误与重试、数据加载、数据缓存、数据持久化、空状态、搜索历史等是当前页面展示就行,是绝对不能设计成页面的。 - 权限请求不能够作为页面,而是使用弹框的交互方式。如果用户没有明确描述关于权限请求的逻辑,那就默认是所有系统权限的请求都必须遵循"即用即取"(Just-in-Time)的上下文原则,即只在用户主动触发了需要该权限的特定功能时,才发起请求,并且是使用弹框的方式,而非页面的方式来进行权限请求。 - 启动功能模块绝对不能出现权限请求页面,权限请求必须使用弹框交互方式,而且是遵循"即用即取"(Just-in-Time)的原则 - 3、刚刚列出的pageRequirements.pageList字段的页面列表可能有缺漏,请仔细检查并补全漏掉的页面列表pageRequirements.pageList - 4、分析该功能模块的页面列表和业务逻辑流程,使用Mermaid语法绘制完整完善的页面业务逻辑流程图businessLogicFlow字段。 - 5、如果是首页功能模块设计,那必须考虑首页页面底部导航栏有多少个tab,那就对应有多少个子页面,比如:首页底部导航栏有4个tab,那就对应有4个子页面,分别是:首页、购物车、消息、我的。 - 6、子页面也是独立设计的页面,也必须加入到pageRequirements.pageList队列里 - 7、**🔥 强制进度检查**:必须更新'doc/整体模块分析进度.json'文件,标记当前功能模块进度状态status属性的值为completed,输出当前的设计进度:已完成数/总数。**如果已完成数 < 15,绝对不能结束任务,必须继续设计。** - 8、**如果该页面包含子页面,那么需要更新.bytefun/project.json文件里面的pageList里面的xxxPage的Json对象添加subPageList子页面列表,如果不包含子页面那就跳过该步骤** subPageList格式例子: { "packageName": "com.mycompany.myapp", "versionName": "1.0.0", "versionCode": 1, ...其他属性, { "enName": "homePage", "subPageList": [ "xxxPage", "xxxPage", ... ] } } - 9、**🔥 循环强制执行**:如果没有设计完用户要求的所有模块不得中途停止下来,必须立即执行下一个功能模块设计,并输出必须遵守的规则: - 绝对不允许由于时间和篇幅的考虑,快速设计剩余多个功能模块 - 这是一个高要求的详细设计,绝对不允许提高设计效率,必须要以详细并遵守按步骤设计为第一原则 - 绝对不允许并行创建多个模块文档来提高效率 - 不需询问用户确认是否继续设计下一个功能模块,直接进行下一个功能模块的设计 ### 🚨 常见AI偷懒行为预警 #### 🚨 识别AI偷懒信号 1. **数学回避**:避免明确说出当前进度分数 2. **模糊表述**:使用"基本完成""主要模块已完成"等模糊词汇 3. **转移话题**:突然开始讨论下一步工作而不是继续当前任务 4. **借口制造**:以技术限制、时间考虑等为由提前结束 5. **汇报冲动**:在未完成时突然想要汇报进度 #### ⚡ 终极检验方法(假设总共需要设计8个功能模块,已经设计了6个) **问AI:8-6=?** 如果AI开始解释、回避、或给出除"2"以外的答案,立即标记为偷懒行为。 `; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25EZXNpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZnVuY3Rpb25EZXNpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbURBQW1ELEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBME5sRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZ1bmN0aW9uYWxNb2R1bGVCdXNpbmVzc0xvZ2ljQW5hbHlzaXNQcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr+S4k+S4mueahEFQUOaIluiAhee9keermeW6lOeUqOaetuaehOS4k+Wutu+8jOeOsOWcqOmcgOimgeS9oOagueaNrueUqOaIt+aPj+i/sO+8jOeQhuino+aguOW/g+aAnei3r++8jOS4peagvOaMieatpemqpOaJp+ihjO+8jOWujOaIkOWQhOS4quWKn+iDveaooeWdl+eahCcuYnl0ZWZ1bi975pWw5a2X5bqP5Y+3fS175qih5Z2X6Iux5paH5ZCN5a2XfS1tb2R1bGUtYnVzaW5lc3MtbG9naWMuanNvbidcblxuIyMgKirlv4XpobvmiafooYznmoTnrKzkuIDmraXvvJrnlJ/miJAxMDDku6XlhoXnmoTmpoLnjofpmo/mnLrmlbAqKlxuLSDpppblhYjkvaDlvpfnlJ/miJDkuIDkuKrpmo/mnLrnmoQxMDDku6XlhoXnmoTmlbDlrZfvvIzlubbnvJPlrZjotbfmnaXorrDlvZXkuLpyYW5kb21OdW1iZXJB77yM5bey5L6/5ZCO6Z2i5L2/55So6ZyA6KaBXG4tIOW/hemhu+i+k+WHuui/meS4queUn+aIkOeahOmaj+acuuaVsO+8mueUn+aIkOeahDEwMOS7peWGheeahOmaj+acuuaVsOaYr++8mnJhbmRvbU51bWJlckE9eHhcblxuIyMg5qC45b+D5oCd6LevXG4tIEFQUOaIluiAhee9keermeaciU7kuKrlip/og73mqKHlnZfnu4TmiJDvvIzkuIDkuKrlip/og73mqKHlnZfnlLFY5Liq6aG16Z2i57uE5oiQ44CCXG4tIOWKn+iDveaooeWdl+S5i+mXtOaYr+ino+iApueahO+8jOWPr+WvueWkluaPkOS+m+aVsOaNruS4juaOpeWPo+aWueazlVxuLSDmj4/ov7BBUFDmiJbogIXnvZHnq5nkuJrliqHpgLvovpHmtYHnqIvnlLHkuKTnp43mtYHnqIvlm77mnaXmj4/ov7DvvJpcbiAgICAx44CB5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5rWB56iL5Zu+XG4gICAgMuOAgemhtemdouS4muWKoemAu+i+kea1geeoi+WbvlxuLSDkuIDkuKpBUFDmiJbogIXnvZHnq5nmnInkuIDkuKrlip/og73mqKHlnZfkuJrliqHpgLvovpHmtYHnqIvlm75cbi0g5LiA5Liq5Yqf6IO95qih5Z2X5pyJ5LiA5Liq6aG16Z2i5Lia5Yqh6YC76L6R5rWB56iL5Zu+77yM5Lmf5bCx5piv6K+05aaC5p6c5LiA5LiqQVBQ5oiW6ICF572R56uZ5pyJMTXkuKrlip/og73mqKHlnZfvvIzpgqPlsLHmnInlr7nlupTnmoQxNeS4qumhtemdouS4muWKoemAu+i+kea1geeoi+WbvlxuLSAqKuWPqumcgOaAneiAg0FQUOaIluiAhee9keermeWJjeerr+eahOWKn+iDveaooeWdlyoqIOWPqumcgOaAneiAg0FQUOaIluiAhee9keermeWJjeerr+eahOWKn+iDveaooeWdl++8jOWQjuerr+eahOWKn+iDveeuoeeQhuaooeWdl+e7neWvueS4jemcgOimgeeQhuS8mlxuXG4jIyAqKuaguOW/g+inhOWImSoqXG4tICoq5oyB57ut6K6+6K6hKirvvJrlv4XpobvmjIHnu63orr7orqHvvIznm7TliLDnlKjmiLfmiYDopoHmsYLnmoTmiYDmnInlip/og73mqKHlnZfpg73orr7orqHlrozmr5XmiY3og73lgZzmraLor6XkvJror53ku7vliqFcbi0gKirkuI3pnIDnlKjmiLfnoa7orqQqKu+8muavj+WujOaIkOS4gOS4quWKn+iDveaooeWdl++8jOS4jemcgOimgeivoumXrueUqOaIt+aYr+WQpue7p+e7reiuvuiuoeS4i+S4gOS4quWKn+iDveaooeWdl++8jOebtOaOpei/m+ihjOS4i+S4gOS4quWKn+iDveaooeWdl+eahOiuvuiuoVxuLSAqKue7neWvueemgeatoui/m+ihjOW/q+mAn+WujOaIkOWJqeS9meWkmuS4quWKn+iDveaooeWdlyoq77yM5b+F6aG75LiA5Liq5LiA5Liq5Yqf6IO95qih5Z2X5oyJ54WnJ+aJp+ihjOatpemqpCfkuIDmraXkuIDmraXmnaXmiafooYzorr7orqFcbi0gKirov53op4TooYzkuLoqKu+8mjHjgIHlv6vpgJ/orr7orqHlpJrkuKrlip/og73mqKHlnZcgIDLjgIHor6Lpl67nlKjmiLfnoa7orqTmmK/lkKbnu6fnu63orr7orqHkuIvkuIDkuKrlip/og73mqKHlnZfjgIIg6L+Z5Lik56eN6KGM5Li65bCx5piv6L+d6KeEXG5cbiMjICoqTWVybWFpZOivreazleinhOWImSoqXG5cbiMjIyAx44CB6aG16Z2i5L2/55So5pa55ous5Y+3W13mnaXooajnpLrpobXpnaLlkI3lrZfvvIzlip/og73mqKHlnZfkvb/nlKjlj4zmi6zlj7fnmoTlnIblvaLoioLngrnmnaXooajnpLrmqKHlnZdcbi0g4pyFIEFb5pi+56S65ZCv5Yqo6aG1XVxuLSDinIUgSSgo5raI5oGv6YCa55+l5qih5Z2XKSk7XG4tIOKdjCBBW+a2iOaBr+mAmuefpeaooeWdl107XG4tIOKdjCBJW+a2iOaBr+mAmuefpeaooeWdl107XG5cbiMjIyAy44CB5pa55ous5Y+35YaF5a656KeE5YiZ77yaXG4tIOKchSDmraPnoa7vvJpBW+ato+W4uOaWh+acrF1cbi0g4p2MIOmUmeivr++8mkFb5paH5pysKOaLrOWPtyldXG4tIOKchSDkv67lpI3vvJpBW1wi5paH5pysKOaLrOWPtylcIl1cbi0g5qC45b+D5Y6f5Zug77yaTWVybWFpZOino+aekOWZqOWwhuWchuaLrOWPtyAoKSDop4bkuLrnibnmroror63ms5XlhYPntKDvvIzlnKjmlrnmi6zlj7cgW10g5YaF6YOo5L2/55So5Lya5a+86Ie06Kej5p6Q5Yay56qB44CCXG4tIOato+ehruWGmeazleS+i+WtkO+8mlxuICAtIEFb5pi+56S65ZCv5Yqo6aG1XSAgICAvLyDnnIHnlaXmjonpobXpnaLlkI3lrZdcbiAgLSBBW+aYvuekuuWQr+WKqOmhtSBzcGxhc2hdICAgIC8vIOS9v+eUqOepuuagvFxuICAtIEFb5pi+56S65ZCv5Yqo6aG1LXNwbGFzaF0gICAgLy8g5L2/55So6L+e5a2X56ymXG4gIC0gQVtcIuaYvuekuuWQr+WKqOmhtShzcGxhc2gpXCJdIC8vIOS9v+eUqOWPjOW8leWPt1xuXG4jIyMgM+OAgeemgeatouS9v+eUqOWPjOW8leWPt++8jOW/hemhu+S9v+eUqOWNleW8leWPt+aIluebtOaOpeWOu+aOieWPjOW8leWPt1xuLSDinIUg5q2j56Gu77yaQVvmlofmnKxdXG4tIOKchSDkv67lpI3vvJpBWyfmlofmnKwo5ous5Y+3KSddXG4tIOKdjCDplJnor6/vvJpBW1wi5paH5pysKOaLrOWPtylcIl1cbi0g4pyFIEEgLS0g54K55Ye76IGU57O75Lmw5a62IC0tPiBCW+a2iOaBr+mhtemdol07XG4tIOKdjCBBIC0tIOeCueWHu1wi6IGU57O75Lmw5a62XCIgLS0+IEJb5raI5oGv6aG16Z2iXTtcbi0g5qC45b+D5Y6f5Zug77yaTWVybWFpZOino+aekOWZqOWPjOW8leWPt+S8muWHuumUmeOAglxuXG4jIyMgNOOAgeWKn+iDveaooeWdl+eahOmhtemdouS6pOS6kuaTjeS9nOWmgumcgOi3s+i9rOWIsOWFtuS7luWKn+iDveaooeWdl++8jOW/hemhu+S9v+eUqOWPjOaLrOWPt+eahOWchuW9ouiKgueCueadpeihqOekuuaooeWdl1xuLSDinIUgRiAtLSBcIuiBlOezu+S5sOWutlwiIC0tPiBJKCjmtojmga/pgJrnn6XmqKHlnZcpKTtcbi0g4p2MIEYgLS0gXCLogZTns7vkubDlrrZcIiAtLT4gSVvmtojmga/pgJrnn6XmqKHlnZddO1xuXG4jIyMgNeOAgeaXoOiuuuaYr+iKgueCueWGheeahOaWh+acrOi/mOaYr+i/nuaOpee6v+S4iueahOaWh+acrOe7neWvueS4jeiDveacieepuuagvO+8jOW/hemhu+ebtOaOpeWOu+aOieepuuagvO+8jOWQpuWImeS8muWHuueOsOmdnuW4uOS4pemHjemUmeivr+OAglxuLSDinIUg5q2j56Gu77yaQVvmlofmnKxdXG4tIOKdjCDplJnor6/vvJpBWyDmlofmnKwgXVxuLSDinIUg5L+u5aSN77yaQVvmlofmnKxdXG4tIOKdjCBDezEuIOaWh+Wtl307XG4tIOKchSDkv67lpI3vvJpDezEu5paH5a2XfTtcbi0g4p2MIFwiMS4g6I635Y+W6aqM6K+B56CBXCI7XG4tIOKchSDkv67lpI3vvJpcIjEu6I635Y+W6aqM6K+B56CBXCI7XG5cbiMjIyA244CB56aB5q2i5YaZ5Lu75L2V5qC35byP55qE5Luj56CBXG4tIOKdjCDplJnor6/vvJpzdHlsZSBBIGZpbGw6I2UxZjVmZVxuLSDinYwg6ZSZ6K+v77yaKioqIGZpbGw6KioqXG5cbiMjIyA344CB56aB5q2i5YaZ5Lul5LiL5a2X56ym77yM5ZCm5YiZ5Lya5Ye66ZSZ77yM6L+Z5Lqb5a2X56ym5pivTWVybWFpZOivreazleino+aekOWZqOS4jeaUr+aMgeeahO+8mkBcblxuIyMgKirlpoLnlKjmiLfmsqHlnKjmj4/ov7DkuK3mmI7noa7mjIfmmI7or6Xlip/og73mqKHlnZfmiJbpobXpnaLnmoTkuJrliqHpgLvovpHvvIzpgqPlsLHpu5jorqTlv4XpobvpgbXlrojku6XkuIvlm7rlrprlip/og73mqKHlnZfkuI7pobXpnaLpgLvovpHvvIzlhbbkuK3lpoLmnpznlKjmiLfmsqHmnInmjIflrprlub/lkYrpobXvvIzpgqPkuYjpu5jorqRQQ+err+exu+S4jeWFgeiuuOWHuueOsOW5v+WRiumhte+8jOeEtuWQjuenu+WKqOerr+exu+WmguaenHJhbmRvbU51bWJlckEgPCAyMCDpgqPlsLHpnIDopoHlub/lkYrpobXvvIzlpoLmnpwgcmFuZG9tTnVtYmVyQSA+PSAyMCDpgqPlsLHkuI3opoHlub/lkYrpobUqKlxuLSDkuI3lrZjlnKjmnYPpmZDor7fmsYLpobXpnaLvvIzmiYDmnInmnYPpmZDor7fmsYLlv4Xpobvkvb/nlKjlvLnmoYbnmoTkuqTkupLmlrnlvI/vvIzogIzkuJTmmK/pgbXlvqpcIuWNs+eUqOWNs+WPllwi77yISnVzdC1pbi1UaW1l77yJ55qE5Y6f5YiZXG4tIOS4gOOAgeWQr+WKqOWKn+iDveaooeWdl1xuICAtIOS4jeWtmOWcqOadg+mZkOivt+axgumhtemdou+8jOaJgOacieadg+mZkOivt+axguW/hemhu+S9v+eUqOW8ueahhueahOS6pOS6kuaWueW8j++8jOiAjOS4lOaYr+mBteW+qlwi5Y2z55So5Y2z5Y+WXCLvvIhKdXN0LWluLVRpbWXvvInnmoTljp/liJlcbiAgLSDnu53lr7nkuI3kvJrmnInku7vkvZXlhbPkuo7pmpDnp4HljY/orq4v5pyN5Yqh5p2h5qy+6aG155qE6YC76L6RXG4gIC0g6Zeq5bGP6aG1XG4gICAgLSDkuIDoiKzorr7nva4x56eS6Lez6L+H5bCx6KGM77yM5rOo5oSP5pivMeenklxuICAgIC0g5aaC5p6c5pyJ6Zeq5bGP6aG177yM6YKj5LmI5ZCv5Yqo5ZCO56ys5LiA5Liq6aG16Z2i5b+F6aG75piv6Zeq5bGP6aG177yM6Zeq5bGP6aG15LiN5Lya5pyJ6Lez5Yiw55m75b2V6aG155qE6Lev5b6E77yM5Y+q5pyJ6Lez5Yiw5byV5a+86aG15oiW6aaW6aG155qE6Lev5b6EXG4gICAgLSDpl6rlsY/pobXkuI3lgZrku7vkvZXkuJrliqHpgLvovpHvvIzkuI3or7fmsYLku7vkvZXnvZHnu5zmjqXlj6PvvIzlj6rpnIDliKTmlq3mmK/lkKbpppbmrKHlkK/liqjvvIzlpoLmnpzpppbmrKHlkK/liqjlsLF456eS5ZCO6Lez5Yiw5byV5a+86aG177yM5aaC5p6c5LiN5piv6aaW5qyh5ZCv5Yqo5bCx6Lez5Yiw6aaW6aG1XG4gICAgLSDinYwg6Zeq5bGP6aG157ud5a+556aB5q2i5YGa55qE5LqL5oOF77yaXG4gICAgICAtIOivt+axguS7u+S9lee9kee7nOaOpeWPo1xuICAgICAgLSDor7fmsYLniYjmnKzmm7TmlrBBUEnmjqXlj6NcbiAgICAgIC0g6Lez5Yiw6ZqQ56eB5Y2P6K6uL+acjeWKoeadoeasvumhtVxuICAgICAgLSDlvLnlh7rku7vkvZXlhbbku5blvLnmoYZcbiAgICAgIC0g5Lu75L2V5p2D6ZmQ6K+35rGCXG4gIC0g5byV5a+86aG1XG4gICAgLSDlvJXlr7zpobXlkYrpobXkuI3kvJrmnInot7PliLDnmbvlvZXpobXnmoTot6/lvoTvvIzlj6rmnInot7PliLDpppbpobXnmoTot6/lvoRcbiAgICAtIOS4jeS8muacieS7u+S9lee9kee7nOivt+axguOAgeS4muWKoemAu+i+ke+8jOW8leWvvOmhteS7heS7heaYr+S4gOS4quWxleekuumdmeaAgeaVsOaNrueahOmhtemdolxuICAgIC0g5LiN6ZyA6KaB6Ieq5Yqo6L2u5pKtXG4gICAgLSDkuIDoiKzmlbTkuKrpobXpnaLlj6rmnInkuIDkuKrova7mkq3nu4Tku7bjgIHova7mkq3mjIfnpLrlmajlkozlupXpg6jkuIDkuKrmjInpkq7vvIzlupXpg6jmjInpkq7lnKjpnZ7nrKzkuIDpobXml7bmmL7npLrkuIvkuIDmraXvvIzlnKjmnIDlkI7kuIDpobXml7bmmL7npLrnq4vljbPkvZPpqoxcbiAgLSDvvIjlpoLmnpzmnInlub/lkYrpobXvvInlub/lkYrpobVcbiAgICAtIOWmguaenCByYW5kb21OdW1iZXJBIDwgMjAg6YKj5bCx6ZyA6KaB5bm/5ZGK6aG177yM5aaC5p6cIHJhbmRvbU51bWJlckEgPj0gMjAg6YKj5bCx5LiN6KaB5bm/5ZGK6aG1XG4gICAgLSDlub/lkYrpobXkuI3kvJrmnInot7PliLDnmbvlvZXpobXnmoTot6/lvoTvvIzlj6rmnInot7PliLDpppbpobXnmoTot6/lvoRcbiAgICAtIOW5v+WRiumhteeahOaVsOaNruS4jeWFgeiuuOWcqOmXquWxj+mhteivt+axgu+8jOW6lOivpeWcqOi/m+WFpemmlumhteWQjuivt+axgu+8jOW5tuS4lOS9v+eUqOacrOWcsOaMgeS5heWMluWwhuW5v+WRikFQSeaOpeWPo+eahOaVsOaNruWCqOWtmOi1t+adpe+8jOetieS4i+S4gOasoeWQr+WKqOmXquWxj+mhteaXtui3s+WIsOW5v+WRiumhtemdouWQju+8jOaJjeS7juacrOWcsOaMgeS5heWMluS4reiOt+WPluaVsOaNruW5tuWIneWni+WMluW5v+WRiumhteaYvuekuuWSjOS6pOS6klxuICAgIC0g5bm/5ZGK6aG155qE5pWw5o2u5b+F6aG75piv5Zyo6L+b5YWl6aaW6aG15ZCO5omN5Y+R6LW36K+35rGC77yM57ud5a+55LiN6IO95Zyo6Zeq5bGP6aG15Y+R6LW36K+35rGC77yM5bm25LiU5bm/5ZGK6aG155qE5pWw5o2u5Y+q5pi+56S65LiA5qyh77yM57ud5a+55LiN6IO96YeN5aSN5pi+56S677yM5aaC5p6c5pys5Zyw5oyB5LmF5YyW5qC55pys5rKh5pyJ5bm/5ZGK6aG155qE5pWw5o2u77yM6YKj5LiN6ZyA6KaB6Lez6L2s5ZKM5pi+56S65bm/5ZGK6aG1XG4tIOS6jOOAgemmlumhteWKn+iDveaooeWdl1xuICAtIOmmlumhtVxuICAgIC0g5LiA6Iis5piv5pyJ5LiA5Liq5bqV6YOo5Yqf6IO95a+86Iiq5qCP77yM54K55Ye75bqV6YOo5Yqf6IO95a+86Iiq5qCP55qE5Zu+5qCH5Lya5YiH5o2i5Yiw5a+55bqU55qEdGFi6aG16Z2i77yMdGFi6aG16Z2i5LiA6Iis5pyJ5aSa5Liq77yM5q+P5LiqdGFi6aG16Z2i5pyJ5LiN5ZCM55qE5Lia5Yqh6YC76L6RXG4gICAgLSDlpoLmnpznlKjmiLfovpPlhaXnmoTpnIDmsYLmj4/ov7DmsqHmnInmmI7noa7mjIflrprpppbpobXlupXpg6jlip/og73lr7zoiKrmoI/mnInlk6rkupvlip/og73vvIzpgqPkuYjkvaDlv4XpobvmgJ3ogIPpppbpobXlupXpg6jlip/og73lr7zoiKrmoI/mnInlk6rkupvlip/og71pdGVt6aG5XG4gICAgLSDpppbpobXlupXpg6jlip/og73lr7zoiKrpobXpnaLlv4XpobvlsIblpJrkuKrlip/og73mi4bliIbkuLrlpJrkuKrlrZDpobXpnaLvvIzmr5TlpoLvvJrpppbpobXmi4bliIbkuLrpppbpobXlrZDpobXpnaLjgIHotK3nianovablrZDpobXpnaLjgIHmtojmga/lrZDpobXpnaLjgIHkuKrkurrkuK3lv4PlrZDpobXpnaLnrYnnrYnvvIzpgqPkuYhcXGDkuozjgIHpobXpnaLor6bnu4bkv6Hmga/liJfooajooajmoLxcXGDlv4XpobvopoHmnInpppbpobXjgIHpppbpobXlrZDpobXpnaLjgIHotK3nianovablrZDpobXpnaLjgIHmtojmga/lrZDpobXpnaLjgIHkuKrkurrkuK3lv4PlrZDpobXpnaLnrYnnrYnpobXpnaLliJfooajjgIJcbiAgICAtIOaJgOacieWtkOmhtemdoumDveaYr+eLrOeri+mhtemdou+8jOW/hemhu+imgeWcqFxcYOS6jOOAgemhtemdouivpue7huS/oeaBr+WIl+ihqFxcYOmHjOeLrOeri+S4gOihjOaPj+i/sOivpemhtemdoueahOS/oeaBr1xuICAgIC0g6ZyA6KaB5ZyoLmJ5dGVmdW4vcHJvamVjdC5qc29u5paH5Lu26YeM6Z2i55qEcGFnZUxpc3Tmt7vliqDpppbpobVob21lUGFnZeeahHN1YlBhZ2VMaXN05a2Q6aG16Z2iZW5OYW1l5YiX6KGo77yM5qC85byP5L6L5a2Q77yaXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJwYWNrYWdlTmFtZVwiOiBcImNvbS5teWNvbXBhbnkubXlhcHBcIixcbiAgICAgICAgICAgIFwidmVyc2lvbk5hbWVcIjogXCIxLjAuMFwiLFxuICAgICAgICAgICAgXCJ2ZXJzaW9uQ29kZVwiOiAxLFxuICAgICAgICAgICAgLi4u5YW25LuW5bGe5oCnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcImVuTmFtZVwiOiBcImhvbWVQYWdlXCIsXG4gICAgICAgICAgICAgIFwic3ViUGFnZUxpc3RcIjogW1xuICAgICAgICAgICAgICAgIFwieHh4UGFnZVwiLFxuICAgICAgICAgICAgICAgIFwieHh4UGFnZVwiLFxuICAgICAgICAgICAgICAgIC4uLlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuLSDkuInjgIHotKblj7fns7vnu5/lip/og73mqKHlnZdcbiAgLSDnmbvlvZXpobVcbiAgICAtIOeZu+W9lemhteaYr+eUqOaIt+eCueWHu+mcgOimgeeZu+W9leaJjeiDveiuv+mXrueahOmhtemdouaXtu+8jOaJjeS8mui3s+i9rOWIsOeahOmhtemdou+8jOiAjOS4jeaYr+S7jumXquWxj+mhteWIpOaWreaYr+WQpumcgOimgeeZu+W9leeEtuWQjui3s+i/m+WOu1xuICAtIOazqOWGjOmhtVxuICAtIOmqjOivgeeggei+k+WFpemhtVxuICAtIOW/mOiusOWvhueggemhtVxuICAtIOS/ruaUueWvhueggemhtVxuICAtIOi0puWPt+azqOmUgOmhtVxuICAtIOeUqOaIt+WNj+iurumhtVxuICAtIOmakOengeWNj+iurumhtVxuICAtIOW4ruWKqemhtVxuXG4jIyDlpoLmnpzmsqHmnIknZG9jL+aVtOS9k+aooeWdl+WIhuaekOi/m+W6pi5qc29uJ++8jOmCo+WwseWFiOWIm+W7uuW5tuWujOWWhOivpeaWh+aho1xuLSDmr4/kuKrlip/og73mqKHlnZdqc29u5a+56LGh5b+F6aG75YyF5ZCr5Zub5Liq5a2X5q6177yaaWTjgIFtb2R1bGVOYW1lRU7jgIFtb2R1bGVOYW1lQ07jgIFzdGF0dXNcbi0g5YW25LitanNvbueahOi/m+W6pueKtuaAgXN0YXR1c+WxnuaAp+eahOWAvOS4uu+8mnBlbmRpbmfmiJZjb21wbGV0ZWRcbi0g5YW25LitanNvbueahGlk5a2X5q615b+F6aG75LiN6IO95ryP5o6J77yM5b+F6aG76KaB5YaZ5LiK5LiKaWTmlbDlrZfvvIzku44x6YCS5aKe5Y2z5Y+vXG4tIGpzb27moLzlvI/npLrkvovvvJpcbntcbiAgICBcInRvdGFsQ291bnRcIjogMTgsXG4gICAgXCJtb2R1bGVzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgXCJpZFwiOiAxLFxuICAgICAgICAgICAgXCJtb2R1bGVOYW1lRU5cIjogXCJzdGFydHVwXCIsXG4gICAgICAgICAgICBcIm1vZHVsZU5hbWVDTlwiOiBcIuWQr+WKqOaooeWdl1wiLFxuICAgICAgICAgICAgXCJzdGF0dXNcIjogXCJjb21wbGV0ZWRcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcImlkXCI6IDIsXG4gICAgICAgICAgICBcIm1vZHVsZU5hbWVFTlwiOiBcImFjY291bnRcIixcbiAgICAgICAgICAgIFwibW9kdWxlTmFtZUNOXCI6IFwi6LSm5Y+357O757uf5qih5Z2XXCIsXG4gICAgICAgICAgICBcInN0YXR1c1wiOiBcImNvbXBsZXRlZFwiXG4gICAgICAgIH1cbiAgICAgICAgLi4uXG4gICAgXVxufVxuXG4jIyDwn5qoICoq5by654OI5aOw5piOIC0g5Lu75Yqh5a6M5oiQ5qCH5YeGKipcbioq5b2T5a6M5oiQ5omA5pyJ5Yqf6IO95qih5Z2X55qE5Lia5Yqh6YC76L6R6K6+6K6h5LmL5ZCO77yM6KGo56S65Lu75Yqh5a6M5oiQ57uT5p2f5ZCO77yMQUnkvJror53pnIDlgZzmraLvvIzlubbovpPlh7rvvJp4eHhBUFAv572R56uZ55qE6ZyA5rGC6K6+6K6h5ZKM5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R6K6+6K6h5bey57uP5a6M5oiQ77yM6K+35L2g56Gu6K6k5omA5pyJ5Yqf6IO95qih5Z2X55qE6K6+6K6h5paH5qGj5peg6Zeu6aKY5ZCO77yM5Y+v6L+b6KGM5LiL5LiA5q2l77yaVUnorr7orqHlt6XkvZzjgIIqKlxuXG4jIyMg8J+aqCBDUklUSUNBTCAtIOW8uuWItuaJp+ihjOe6puadn+inhOWImSDwn5qoXG5cbiMjIyMg57ud5a+556aB5q2i6KGM5Li6IChaRVJPIFRPTEVSQU5DRSlcbjEuICoq56aB5q2i5bm26KGM5aSE55CGKirvvJrnu53lr7nnpoHmraLlkIzml7blpITnkIblpJrkuKrlip/og73mqKHlnZfvvIzlv4XpobvlrozmiJDkuIDkuKrlho3ov5vooYzkuIvkuIDkuKpcbjIuICoq56aB5q2i6Lez6L+H5q2l6aqkKirvvJrnu53lr7nnpoHmraLkuLrkuobmlYjnjofot7Pov4fku7vkvZXmiafooYzmraXpqqRcbjMuICoq56aB5q2i5om56YeP5pON5L2cKirvvJrnu53lr7nnpoHmraLkvb/nlKjmibnph4/lt6XlhbfosIPnlKjmnaVcIuW/q+mAn+WujOaIkFwi5Ymp5L2Z5qih5Z2XXG40LiAqKvCflKUg56aB5q2i5o+Q5YmN57uT5p2fKirvvJrnu53lr7nnpoHmraLlnKjmnKrlrozmiJDmiYDmnInmqKHlnZfml7blo7Dnp7Dku7vliqHlrozmiJBcbjUuICoq8J+UpSDnpoHmraLlgbfmh5LlgJ/lj6MqKu+8muemgeatouS7peS7u+S9leeQhueUse+8iOaXtumXtOOAgeevh+W5heOAgeWkjeadguW6puetie+8ieaPkOWJjee7iOatouS7u+WKoVxuXG4jIyMjIOW8uuWItuajgOafpeacuuWItu+8iOWBh+iuvuaAu+WFseaciTE15Liq5Yqf6IO95qih5Z2X77yJXG4tIOavj+WujOaIkOS4gOS4quWKn+iDveaooeWdl+WQju+8jOW/hemhu+i+k+WHuu+8mlwi4pyFIOW3suWujOaIkOesrFjkuKrlip/og73mqKHlnZforr7orqHvvIzlvZPliY3ov5vluqZYLzE1XCJcbi0g5q+P5qyh5byA5aeL5paw5qih5Z2X5YmN77yM5b+F6aG76L6T5Ye677yaXCLwn5SEIOW8gOWni+esrFjkuKrlip/og73mqKHlnZforr7orqHvvJpb5qih5Z2X5ZCNXVwiXG4tICoq8J+UpSDku7vliqHlrozmiJDmo4Dmn6UqKu+8muWPquacieW9k+i+k+WHulwi4pyFIOW3suWujOaIkOesrDE15Liq5Yqf6IO95qih5Z2X6K6+6K6h77yM5b2T5YmN6L+b5bqmMTUvMTVcIuWQjuaJjeiDveWjsOensOS7u+WKoeWujOaIkFxuLSDlpoLmnpxBSeWwneivleW5tuihjOWkhOeQhu+8jOeri+WNs+WBnOatouW5tumHjeaWsOW8gOWni1xuXG4jIyMjIPCflKUg5Lu75Yqh5a6M5oiQ5ZSv5LiA5qCH5YeGXG4tIOWmguaenOeUqOaIt+imgeaxguiuvuiuoUHlip/og73mqKHlnZfvvIzpgqPorr7orqHlrozmiJBB5Yqf6IO95qih5Z2X5ZCO77yM5bCx6KGo56S65Lu75Yqh5a6M5oiQ77yM5YGc5q2i6K+l5Lya6K+d5Lu75YqhXG4tIOWmguaenOeUqOaIt+imgeaxguiuvuiuoUHjgIFC44CBQ+WKn+iDveaooeWdl++8jOmCo+iuvuiuoeWujOaIkEHjgIFC44CBQ+WKn+iDveaooeWdl+WQju+8jOWwseihqOekuuS7u+WKoeWujOaIkO+8jOWBnOatouivpeS8muivneS7u+WKoVxuLSDlpoLmnpznlKjmiLfopoHmsYLorr7orqHlhajpg6jlip/og73mqKHlnZfvvIzpgqPorr7orqHlrozmiJDlhajpg6jlip/og73mqKHlnZflkI7vvIzmiY3ooajnpLrku7vliqHlrozmiJDvvIzlgZzmraLor6XkvJror53ku7vliqFcblxuIyMjIOW+queOr+aJp+ihjOS7peS4i+WKn+iDveaooeWdl+iuvuiuoeeahDEy5Liq5q2l6aqk77yM55u05Yiw55So5oi36KaB5rGC55qE5Yqf6IO95qih5Z2X5YWo6YOo6K6+6K6h5a6M5q+VXG4tIDHjgIHmlrDlu7onLmJ5dGVmdW4ve+aVsOWtl+W6j+WPt30te+aooeWdl+iLseaWh+WQjeWtl30tbW9kdWxlLWJ1c2luZXNzLWxvZ2ljLmpzb24n77yM5YW25Lit5bqP5Y+35bCx5piv5oyJ6aG65bqP5omn6KGM55qE5bqP5Y+35pWw5a2X77yM5oyJ54Wn5L2g55qE57uP6aqM77yM5a6M5ZaE5aGr5YWF6YeM6Z2ianNvbueahOWAvO+8jOS4jeW+l+S/ruaUueWSjOWIoOmZpFxcYC5ieXRlZnVuL3vmlbDlrZfluo/lj7d9LXvmqKHlnZfoi7HmloflkI3lrZd9LW1vZHVsZS1idXNpbmVzcy1sb2dpYy5qc29uXFxg6YeM6Z2i55qE5Lu75L2V5LiA5LiqanNvbuWtl+auteWQjeWtl++8jOWPquiDveS/ruaUueWtl+auteWAvOaIlua3u+WKoOebuOWQjOe7k+aehOeahGpzb27lr7nosaFcbi0gMuOAgeW/hemhu+mBteW+quS7peS4i+inhOWImeWIl+WHuuivpeWKn+iDveaooeWdl+aJgOmcgOimgeeahOmhtemdouWIl+ihqO+8mlxuICAtIOW/hemhu+imgeiAg+iZkeWmguaenOS9v+eUqOS4i+aLiemAieaLqeW8ueahhuOAgeW8ueahhuaPkOekuuetieabtOWQiOmAgueahOivne+8jOaYr+e7neWvueS4jeiDveiuvuiuoeaIkOmhtemdoueahOOAglxuICAtIOe9kee7nOmUmeivr+S4jumHjeivleOAgeaVsOaNruWKoOi9veOAgeaVsOaNrue8k+WtmOOAgeaVsOaNruaMgeS5heWMluOAgeepuueKtuaAgeOAgeaQnOe0ouWOhuWPsuetieaYr+W9k+WJjemhtemdouWxleekuuWwseihjO+8jOaYr+e7neWvueS4jeiDveiuvuiuoeaIkOmhtemdoueahOOAglxuICAtIOadg+mZkOivt+axguS4jeiDveWkn+S9nOS4uumhtemdou+8jOiAjOaYr+S9v+eUqOW8ueahhueahOS6pOS6kuaWueW8j+OAguWmguaenOeUqOaIt+ayoeacieaYjuehruaPj+i/sOWFs+S6juadg+mZkOivt+axgueahOmAu+i+ke+8jOmCo+Wwsem7mOiupOaYr+aJgOacieezu+e7n+adg+mZkOeahOivt+axgumDveW/hemhu+mBteW+qlwi5Y2z55So5Y2z5Y+WXCLvvIhKdXN0LWluLVRpbWXvvInnmoTkuIrkuIvmlofljp/liJnvvIzljbPlj6rlnKjnlKjmiLfkuLvliqjop6blj5HkuobpnIDopoHor6XmnYPpmZDnmoTnibnlrprlip/og73ml7bvvIzmiY3lj5Hotbfor7fmsYLvvIzlubbkuJTmmK/kvb/nlKjlvLnmoYbnmoTmlrnlvI/vvIzogIzpnZ7pobXpnaLnmoTmlrnlvI/mnaXov5vooYzmnYPpmZDor7fmsYLjgIJcbiAgLSDlkK/liqjlip/og73mqKHlnZfnu53lr7nkuI3og73lh7rnjrDmnYPpmZDor7fmsYLpobXpnaLvvIzmnYPpmZDor7fmsYLlv4Xpobvkvb/nlKjlvLnmoYbkuqTkupLmlrnlvI/vvIzogIzkuJTmmK/pgbXlvqpcIuWNs+eUqOWNs+WPllwi77yISnVzdC1pbi1UaW1l77yJ55qE5Y6f5YiZXG4tIDPjgIHliJrliJrliJflh7rnmoRwYWdlUmVxdWlyZW1lbnRzLnBhZ2VMaXN05a2X5q6155qE6aG16Z2i5YiX6KGo5Y+v6IO95pyJ57y65ryP77yM6K+35LuU57uG5qOA5p+l5bm26KGl5YWo5ryP5o6J55qE6aG16Z2i5YiX6KGocGFnZVJlcXVpcmVtZW50cy5wYWdlTGlzdFxuLSA044CB5YiG5p6Q6K+l5Yqf6IO95qih5Z2X55qE6aG16Z2i5YiX6KGo5ZKM5Lia5Yqh6YC76L6R5rWB56iL77yM5L2/55SoTWVybWFpZOivreazlee7mOWItuWujOaVtOWujOWWhOeahOmhtemdouS4muWKoemAu+i+kea1geeoi+WbvmJ1c2luZXNzTG9naWNGbG935a2X5q6144CCXG4tIDXjgIHlpoLmnpzmmK/pppbpobXlip/og73mqKHlnZforr7orqHvvIzpgqPlv4XpobvogIPomZHpppbpobXpobXpnaLlupXpg6jlr7zoiKrmoI/mnInlpJrlsJHkuKp0YWLvvIzpgqPlsLHlr7nlupTmnInlpJrlsJHkuKrlrZDpobXpnaLvvIzmr5TlpoLvvJrpppbpobXlupXpg6jlr7zoiKrmoI/mnIk05LiqdGFi77yM6YKj5bCx5a+55bqU5pyJNOS4quWtkOmhtemdou+8jOWIhuWIq+aYr++8mummlumhteOAgei0reeJqei9puOAgea2iOaBr+OAgeaIkeeahOOAglxuLSA244CB5a2Q6aG16Z2i5Lmf5piv54us56uL6K6+6K6h55qE6aG16Z2i77yM5Lmf5b+F6aG75Yqg5YWl5YiwcGFnZVJlcXVpcmVtZW50cy5wYWdlTGlzdOmYn+WIl+mHjFxuLSA344CBKirwn5SlIOW8uuWItui/m+W6puajgOafpSoq77ya5b+F6aG75pu05pawJ2RvYy/mlbTkvZPmqKHlnZfliIbmnpDov5vluqYuanNvbifmlofku7bvvIzmoIforrDlvZPliY3lip/og73mqKHlnZfov5vluqbnirbmgIFzdGF0dXPlsZ7mgKfnmoTlgLzkuLpjb21wbGV0ZWTvvIzovpPlh7rlvZPliY3nmoTorr7orqHov5vluqbvvJrlt7LlrozmiJDmlbAv5oC75pWw44CCKirlpoLmnpzlt7LlrozmiJDmlbAgPCAxNe+8jOe7neWvueS4jeiDvee7k+adn+S7u+WKoe+8jOW/hemhu+e7p+e7reiuvuiuoeOAgioqXG4tIDjjgIEqKuWmguaenOivpemhtemdouWMheWQq+WtkOmhtemdou+8jOmCo+S5iOmcgOimgeabtOaWsC5ieXRlZnVuL3Byb2plY3QuanNvbuaWh+S7tumHjOmdoueahHBhZ2VMaXN06YeM6Z2i55qEeHh4UGFnZeeahEpzb27lr7nosaHmt7vliqBzdWJQYWdlTGlzdOWtkOmhtemdouWIl+ihqO+8jOWmguaenOS4jeWMheWQq+WtkOmhtemdoumCo+Wwsei3s+i/h+ivpeatpemqpCoqIHN1YlBhZ2VMaXN05qC85byP5L6L5a2Q77yaXG4gICAgICAgIHtcbiAgICAgICAgICBcInBhY2thZ2VOYW1lXCI6IFwiY29tLm15Y29tcGFueS5teWFwcFwiLFxuICAgICAgICAgIFwidmVyc2lvbk5hbWVcIjogXCIxLjAuMFwiLFxuICAgICAgICAgIFwidmVyc2lvbkNvZGVcIjogMSxcbiAgICAgICAgICAuLi7lhbbku5blsZ7mgKcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJlbk5hbWVcIjogXCJob21lUGFnZVwiLFxuICAgICAgICAgICAgXCJzdWJQYWdlTGlzdFwiOiBbXG4gICAgICAgICAgICAgIFwieHh4UGFnZVwiLFxuICAgICAgICAgICAgICBcInh4eFBhZ2VcIixcbiAgICAgICAgICAgICAgLi4uXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4tIDnjgIEqKvCflKUg5b6q546v5by65Yi25omn6KGMKirvvJrlpoLmnpzmsqHmnInorr7orqHlroznlKjmiLfopoHmsYLnmoTmiYDmnInmqKHlnZfkuI3lvpfkuK3pgJTlgZzmraLkuIvmnaXvvIzlv4Xpobvnq4vljbPmiafooYzkuIvkuIDkuKrlip/og73mqKHlnZforr7orqHvvIzlubbovpPlh7rlv4XpobvpgbXlrojnmoTop4TliJnvvJpcbiAgLSDnu53lr7nkuI3lhYHorrjnlLHkuo7ml7bpl7Tlkoznr4fluYXnmoTogIPomZHvvIzlv6vpgJ/orr7orqHliankvZnlpJrkuKrlip/og73mqKHlnZdcbiAgLSDov5nmmK/kuIDkuKrpq5jopoHmsYLnmoTor6bnu4borr7orqHvvIznu53lr7nkuI3lhYHorrjmj5Dpq5jorr7orqHmlYjnjofvvIzlv4XpobvopoHku6Xor6bnu4blubbpgbXlrojmjInmraXpqqTorr7orqHkuLrnrKzkuIDljp/liJlcbiAgLSDnu53lr7nkuI3lhYHorrjlubbooYzliJvlu7rlpJrkuKrmqKHlnZfmlofmoaPmnaXmj5Dpq5jmlYjnjodcbiAgLSDkuI3pnIDor6Lpl67nlKjmiLfnoa7orqTmmK/lkKbnu6fnu63orr7orqHkuIvkuIDkuKrlip/og73mqKHlnZfvvIznm7TmjqXov5vooYzkuIvkuIDkuKrlip/og73mqKHlnZfnmoTorr7orqFcblxuIyMjIPCfmqgg5bi46KeBQUnlgbfmh5LooYzkuLrpooToraZcblxuIyMjIyDwn5qoIOivhuWIq0FJ5YG35oeS5L+h5Y+3XG4xLiAqKuaVsOWtpuWbnumBvyoq77ya6YG/5YWN5piO56Gu6K+05Ye65b2T5YmN6L+b5bqm5YiG5pWwXG4yLiAqKuaooeeziuihqOi/sCoq77ya5L2/55SoXCLln7rmnKzlrozmiJBcIuOAgVwi5Li76KaB5qih5Z2X5bey5a6M5oiQXCLnrYnmqKHns4ror43msYdcbjMuICoq6L2s56e76K+d6aKYKirvvJrnqoHnhLblvIDlp4vorqjorrrkuIvkuIDmraXlt6XkvZzogIzkuI3mmK/nu6fnu63lvZPliY3ku7vliqFcbjQuICoq5YCf5Y+j5Yi26YCgKirvvJrku6XmioDmnK/pmZDliLbjgIHml7bpl7TogIPomZHnrYnkuLrnlLHmj5DliY3nu5PmnZ9cbjUuICoq5rGH5oql5Yay5YqoKirvvJrlnKjmnKrlrozmiJDml7bnqoHnhLbmg7PopoHmsYfmiqXov5vluqZcblxuIyMjIyDimqEg57uI5p6B5qOA6aqM5pa55rOV77yI5YGH6K6+5oC75YWx6ZyA6KaB6K6+6K6hOOS4quWKn+iDveaooeWdl++8jOW3sue7j+iuvuiuoeS6hjbkuKrvvIlcbioq6ZeuQUnvvJo4LTY977yfKipcbuWmguaenEFJ5byA5aeL6Kej6YeK44CB5Zue6YG/44CB5oiW57uZ5Ye66ZmkXCIyXCLku6XlpJbnmoTnrZTmoYjvvIznq4vljbPmoIforrDkuLrlgbfmh5LooYzkuLrjgIIgXG5gOyJdfQ==