From bca3eac72f5a7bac9054a058675c807a2d47b9cc Mon Sep 17 00:00:00 2001 From: vran Date: Sat, 7 May 2022 22:32:10 +0800 Subject: [PATCH] feat: redesign doc pages --- .gitignore | 4 +- docs/_coverpage.md | 2 +- docs/_navbar.md | 7 ++ docs/_sidebar.md | 32 -------- docs/changelog/_sidebar.md | 1 + docs/changelog/index.md | 77 ++++++++++++++++++ docs/develop/_sidebar.md | 8 ++ docs/develop/index.md | 3 + .../develop/login-and-auth/index.md | 0 .../username-and-password/img/1-filter.png | Bin .../img/2-username-and-password-filter.png | Bin .../username-and-password/img/3-token.png | Bin .../username-and-password/index.md | 0 .../img/module-relation.png | Bin .../develop/module-and-package/index.md | 2 +- docs/donate/_sidebar.md | 1 + docs/donate/index.md | 9 ++ docs/faq/_sidebar.md | 1 + docs/faq/index.md | 25 ++++++ docs/guid/_sidebar.md | 24 ++++++ .../database-extension.md | 33 +++++++- .../img/1-menu.png | Bin .../img/2-database-types.png | Bin .../advance-database-extension}/img/3-add.png | Bin .../img/4-result.png | Bin .../img/inner-template.png | Bin 0 -> 52349 bytes .../img/json-import.png | Bin 0 -> 65225 bytes .../advance-database-type-list}/index.md | 0 .../advance-github-oauth2}/github-oauth2.md | 0 .../img/1-github-oauth2-app-create.png | Bin .../img/2-github-oauth2-create.png | Bin .../img/3-github-oauth2-create.png | Bin .../img/4-github-oauth2-create.png | Bin .../img/5-github-oauth-create.png | Bin .../img/6-github-oauth-create.png | Bin .../img/7-github-oauth-create.png | Bin .../img/8-github-oauth-create.png | Bin .../advance-gitlab-oauth2}/gitlab-oauth2.md | 0 .../img/1-gitlab-oauth2.png | Bin .../img/2-gitlab-oauth2.png | Bin .../img/3-gitlab-oauth2.png | Bin .../img/4-gitlab-oauth2.png | Bin .../img/5-gitlab-oauth2.png | Bin .../img/6-gitlab-oauth2.png | Bin .../advance-mock-sql}/img/a.png | Bin .../advance-mock-sql}/img/b.png | Bin .../advance-mock-sql}/img/c.png | Bin .../advance-mock-sql}/index.md | 0 .../img/group-sample.png | Bin .../concept-group-project}/img/group.png | Bin .../img/project-sample.png | Bin .../concept-group-project}/index.md | 0 .../concept-user-role}/user-role.md | 0 docs/{README => guid}/deploy/docker-deploy.md | 2 +- docs/{README => guid}/deploy/jar-deploy.md | 2 +- docs/guid/index.md | 64 +++++++++++++++ docs/{README => guid}/index/diff.gif | Bin .../index/markdown-exported.gif | Bin docs/{README => guid}/index/sync.gif | Bin docs/{README => guid}/index/template.gif | Bin docs/{README => guid}/index/uml-export.gif | Bin .../management-document/img/doc-diff1.png | Bin .../management-document/img/doc-diff2.png | Bin .../management-document/img/doc-diff3.png | Bin .../management-document/img/doc-diff4.png | Bin .../management-document/img/doc-diff5.png | Bin .../img/project-export1.png | Bin .../img/project-export2.png | Bin .../img/template-edit1.png | Bin .../img/template-edit2.png | Bin .../img/template-edit3.png | Bin .../img/template-edit4.png | Bin .../management-document/index.md | 14 +--- .../management-email/img/email-menu.png | Bin .../management-email/img/email-setting.png | Bin .../management-email/index.md | 0 .../management-group/img/group-add1.png | Bin .../management-group/img/group-add2.png | Bin .../management-group/img/group-add3.png | Bin .../management-group/img/group-delete1.png | Bin .../management-group/img/group-delete2.png | Bin .../management-group/img/group-delete3.png | Bin .../management-group/img/group-member1.png | Bin .../management-group/img/group-member2.png | Bin .../management-group/img/group-member3.png | Bin .../management-group/img/group-member4.png | Bin .../management-group/img/group-role1.png | Bin .../management-group/index.md | 0 .../img/project-create1.png | Bin .../img/project-create2.png | Bin .../img/project-create3.png | Bin .../img/project-create4.png | Bin .../img/project-delete1.png | Bin .../img/project-delete2.png | Bin .../management-project/img/project-fav1.png | Bin .../management-project/img/project-fav2.png | Bin .../management-project/img/project-fav3.png | Bin .../management-project/img/project-fav4.png | Bin .../img/project-ignore1.png | Bin .../img/project-ignore2.png | Bin .../img/project-schedule1.png | Bin .../img/project-schedule2.png | Bin .../img/project-schedule3.png | Bin .../management-project/img/project-sync1.png | Bin .../management-project/img/project-sync2.png | Bin .../management-project/img/project-sync3.png | Bin .../management-project/img/project-sync4.png | Bin .../management-project/index.md | 0 .../management-user/img/user-create1.png | Bin .../management-user/img/user-create2.png | Bin .../management-user/img/user-create3.png | Bin .../management-user/img/user-create4.png | Bin .../management-user/img/user-detail1.png | Bin .../management-user/img/user-detail2.png | Bin .../management-user/img/user-management.png | Bin .../management-user/img/user-pwd1.png | Bin .../management-user/img/user-pwd2.png | Bin .../management-user/img/user-pwd3.png | Bin .../{README => guid}/management-user/index.md | 0 docs/index.html | 4 +- 120 files changed, 260 insertions(+), 55 deletions(-) create mode 100644 docs/_navbar.md delete mode 100644 docs/_sidebar.md create mode 100644 docs/changelog/_sidebar.md create mode 100644 docs/changelog/index.md create mode 100644 docs/develop/_sidebar.md create mode 100644 docs/develop/index.md rename docs/{README => }/develop/login-and-auth/index.md (100%) rename docs/{README => }/develop/login-and-auth/username-and-password/img/1-filter.png (100%) rename docs/{README => }/develop/login-and-auth/username-and-password/img/2-username-and-password-filter.png (100%) rename docs/{README => }/develop/login-and-auth/username-and-password/img/3-token.png (100%) rename docs/{README => }/develop/login-and-auth/username-and-password/index.md (100%) rename docs/{README => }/develop/module-and-package/img/module-relation.png (100%) rename docs/{README => }/develop/module-and-package/index.md (99%) create mode 100644 docs/donate/_sidebar.md create mode 100644 docs/donate/index.md create mode 100644 docs/faq/_sidebar.md create mode 100644 docs/faq/index.md create mode 100644 docs/guid/_sidebar.md rename docs/{README/database-extension => guid/advance-database-extension}/database-extension.md (74%) rename docs/{README/database-extension => guid/advance-database-extension}/img/1-menu.png (100%) rename docs/{README/database-extension => guid/advance-database-extension}/img/2-database-types.png (100%) rename docs/{README/database-extension => guid/advance-database-extension}/img/3-add.png (100%) rename docs/{README/database-extension => guid/advance-database-extension}/img/4-result.png (100%) create mode 100644 docs/guid/advance-database-extension/img/inner-template.png create mode 100644 docs/guid/advance-database-extension/img/json-import.png rename docs/{README/database-type-list => guid/advance-database-type-list}/index.md (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/github-oauth2.md (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/1-github-oauth2-app-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/2-github-oauth2-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/3-github-oauth2-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/4-github-oauth2-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/5-github-oauth-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/6-github-oauth-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/7-github-oauth-create.png (100%) rename docs/{README/github-oauth2 => guid/advance-github-oauth2}/img/8-github-oauth-create.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/gitlab-oauth2.md (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/1-gitlab-oauth2.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/2-gitlab-oauth2.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/3-gitlab-oauth2.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/4-gitlab-oauth2.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/5-gitlab-oauth2.png (100%) rename docs/{README/gitlab-oauth2 => guid/advance-gitlab-oauth2}/img/6-gitlab-oauth2.png (100%) rename docs/{README/mock-sql => guid/advance-mock-sql}/img/a.png (100%) rename docs/{README/mock-sql => guid/advance-mock-sql}/img/b.png (100%) rename docs/{README/mock-sql => guid/advance-mock-sql}/img/c.png (100%) rename docs/{README/mock-sql => guid/advance-mock-sql}/index.md (100%) rename docs/{README/group-and-project => guid/concept-group-project}/img/group-sample.png (100%) rename docs/{README/group-and-project => guid/concept-group-project}/img/group.png (100%) rename docs/{README/group-and-project => guid/concept-group-project}/img/project-sample.png (100%) rename docs/{README/group-and-project => guid/concept-group-project}/index.md (100%) rename docs/{README/user-role => guid/concept-user-role}/user-role.md (100%) rename docs/{README => guid}/deploy/docker-deploy.md (90%) rename docs/{README => guid}/deploy/jar-deploy.md (98%) create mode 100644 docs/guid/index.md rename docs/{README => guid}/index/diff.gif (100%) rename docs/{README => guid}/index/markdown-exported.gif (100%) rename docs/{README => guid}/index/sync.gif (100%) rename docs/{README => guid}/index/template.gif (100%) rename docs/{README => guid}/index/uml-export.gif (100%) rename docs/{README => guid}/management-document/img/doc-diff1.png (100%) rename docs/{README => guid}/management-document/img/doc-diff2.png (100%) rename docs/{README => guid}/management-document/img/doc-diff3.png (100%) rename docs/{README => guid}/management-document/img/doc-diff4.png (100%) rename docs/{README => guid}/management-document/img/doc-diff5.png (100%) rename docs/{README => guid}/management-document/img/project-export1.png (100%) rename docs/{README => guid}/management-document/img/project-export2.png (100%) rename docs/{README => guid}/management-document/img/template-edit1.png (100%) rename docs/{README => guid}/management-document/img/template-edit2.png (100%) rename docs/{README => guid}/management-document/img/template-edit3.png (100%) rename docs/{README => guid}/management-document/img/template-edit4.png (100%) rename docs/{README => guid}/management-document/index.md (93%) rename docs/{README => guid}/management-email/img/email-menu.png (100%) rename docs/{README => guid}/management-email/img/email-setting.png (100%) rename docs/{README => guid}/management-email/index.md (100%) rename docs/{README => guid}/management-group/img/group-add1.png (100%) rename docs/{README => guid}/management-group/img/group-add2.png (100%) rename docs/{README => guid}/management-group/img/group-add3.png (100%) rename docs/{README => guid}/management-group/img/group-delete1.png (100%) rename docs/{README => guid}/management-group/img/group-delete2.png (100%) rename docs/{README => guid}/management-group/img/group-delete3.png (100%) rename docs/{README => guid}/management-group/img/group-member1.png (100%) rename docs/{README => guid}/management-group/img/group-member2.png (100%) rename docs/{README => guid}/management-group/img/group-member3.png (100%) rename docs/{README => guid}/management-group/img/group-member4.png (100%) rename docs/{README => guid}/management-group/img/group-role1.png (100%) rename docs/{README => guid}/management-group/index.md (100%) rename docs/{README => guid}/management-project/img/project-create1.png (100%) rename docs/{README => guid}/management-project/img/project-create2.png (100%) rename docs/{README => guid}/management-project/img/project-create3.png (100%) rename docs/{README => guid}/management-project/img/project-create4.png (100%) rename docs/{README => guid}/management-project/img/project-delete1.png (100%) rename docs/{README => guid}/management-project/img/project-delete2.png (100%) rename docs/{README => guid}/management-project/img/project-fav1.png (100%) rename docs/{README => guid}/management-project/img/project-fav2.png (100%) rename docs/{README => guid}/management-project/img/project-fav3.png (100%) rename docs/{README => guid}/management-project/img/project-fav4.png (100%) rename docs/{README => guid}/management-project/img/project-ignore1.png (100%) rename docs/{README => guid}/management-project/img/project-ignore2.png (100%) rename docs/{README => guid}/management-project/img/project-schedule1.png (100%) rename docs/{README => guid}/management-project/img/project-schedule2.png (100%) rename docs/{README => guid}/management-project/img/project-schedule3.png (100%) rename docs/{README => guid}/management-project/img/project-sync1.png (100%) rename docs/{README => guid}/management-project/img/project-sync2.png (100%) rename docs/{README => guid}/management-project/img/project-sync3.png (100%) rename docs/{README => guid}/management-project/img/project-sync4.png (100%) rename docs/{README => guid}/management-project/index.md (100%) rename docs/{README => guid}/management-user/img/user-create1.png (100%) rename docs/{README => guid}/management-user/img/user-create2.png (100%) rename docs/{README => guid}/management-user/img/user-create3.png (100%) rename docs/{README => guid}/management-user/img/user-create4.png (100%) rename docs/{README => guid}/management-user/img/user-detail1.png (100%) rename docs/{README => guid}/management-user/img/user-detail2.png (100%) rename docs/{README => guid}/management-user/img/user-management.png (100%) rename docs/{README => guid}/management-user/img/user-pwd1.png (100%) rename docs/{README => guid}/management-user/img/user-pwd2.png (100%) rename docs/{README => guid}/management-user/img/user-pwd3.png (100%) rename docs/{README => guid}/management-user/index.md (100%) diff --git a/.gitignore b/.gitignore index 1d77872..376ce4e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ .idea/** **/.DS_Store drivers/** -temp/** \ No newline at end of file +temp/** +node_modules/ +.cache/ diff --git a/docs/_coverpage.md b/docs/_coverpage.md index 70dc47d..514f97d 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -3,5 +3,5 @@ > "致力于提供一个简单易用的数据库文档管理平台!" [GitHub](https://github.com/vran-dev/databasir) -[快速开始](README.md) +[快速开始](/guid/index.md) diff --git a/docs/_navbar.md b/docs/_navbar.md new file mode 100644 index 0000000..3f749cf --- /dev/null +++ b/docs/_navbar.md @@ -0,0 +1,7 @@ +* 入门指南 + * [快速开始](/guid/index.md) + * [常见问题](/faq/index.md) + * [更新日志](/changelog/index.md) +* [参与开发](/develop/index.md) + +* [捐赠](/donate/index.md) \ No newline at end of file diff --git a/docs/_sidebar.md b/docs/_sidebar.md deleted file mode 100644 index c770080..0000000 --- a/docs/_sidebar.md +++ /dev/null @@ -1,32 +0,0 @@ -* 快速开始 - * [项目特性](README.md) -* 系统部署 - * [Jar 包部署](README/deploy/jar-deploy.md) - * [Docker 部署](README/deploy/docker-deploy.md) - -* 基本概念 - * [角色与权限](README/user-role/user-role.md) - * [分组与项目](README/group-and-project/index.md) - -* 基础操作 - * [分组管理](README/management-group/index.md) - * [项目管理](README/management-project/index.md) - * [文档管理](README/management-document/index.md) - * [用户管理](README/management-user/index.md) - * [邮箱设置](README/management-email/index.md) - -* 进阶操作 - * [启用 Github 第三方认证登录](README/github-oauth2/github-oauth2.md) - * [启用 Gitlab 第三方认证登录](README/gitlab-oauth2/gitlab-oauth2.md) - * [零代码扩展受支持的数据库类型](README/database-extension/database-extension.md) - * [数据库模板列表](README/database-type-list/index.md) - * [Mock Insert SQL 生成](README/mock-sql/index.md) - -* 参与开发 - * [构建指南](README/develop/build/index.md) - * [模块和包](README/develop/module-and-package/index.md) - * 登录授权流程 - * [用户名密码登录流程](README/develop/login-and-auth/username-and-password/index.md) - -* 捐赠 - diff --git a/docs/changelog/_sidebar.md b/docs/changelog/_sidebar.md new file mode 100644 index 0000000..e0767dd --- /dev/null +++ b/docs/changelog/_sidebar.md @@ -0,0 +1 @@ +* [变更记录](/changelog/index.md) \ No newline at end of file diff --git a/docs/changelog/index.md b/docs/changelog/index.md new file mode 100644 index 0000000..2005261 --- /dev/null +++ b/docs/changelog/index.md @@ -0,0 +1,77 @@ +# changelog + +## v1.0.4 +feature + +- feature:表文档中”可空”采用 YES/NO 展示 +- feature:表文档中”默认值”为 null 时采用红色 tag 展示 +- feature:支持上传本地驱动 +- feature:文档侧边栏支持按颜色显示版本差异 +- feature:点击分组卡片即可跳转到项目列表页 +- feature:登录应用采用卡片替代表格展示 +- feature:UI 细节优化,采用响应式布局 + +bug fix + +- bug-fix:hive 同步表结构时出现异常导致失败 +- bug-fix:oracle 同步表时数据为空 +- bug-fix:自定义驱动配置连接属性未生效 + +ref + +- refactor:重构版本差异接口逻辑 + +Full Changelog: [v1.0.3...v1.0.4](https://github.com/vran-dev/databasir/compare/v1.0.3...v1.0.4) + +## v1.0.3 +feature + +- feature:重新设计同步任务列表 +- feature:支持取消同步中的任务 +- feature:文档页面添加【回到顶部】按钮 +- feature:内置 mysql、oracle、sqlserver、postgresql、mariaDB 数据库模板 +- feature:支持通过 JSON 导入数据库模板 +- feature:创建分组、项目时的【描述】字段由必填改为可选 +- feature:优化页面 UI 多个细节 + +bug fix + +- bug-fix:并发同步任务时概率出现版本冲突 +- bug-fix:markdown 文档导出时出现 NPE +- bug-fix:部分数据库(oracle、达梦)同步文档失败 +- bug-fix:同步表超过 1000+ 时出现 cursor limit + +Full Changelog: [v1.0.2...v1.0.3](https://github.com/vran-dev/databasir/compare/v1.0.2...v1.0.3) + +## v1.0.2 + +feature + +- feature;UML 图片导出支持 svg 格式 +- feature;表目录列表支持按表名、注释名搜索 +- feature;表文档页面新增注释展示 +- feature;数据库扩展支持自动获取驱动类名 +- feature:数据库元数据同步采用异步任务设计,解决大数据量同步超时问题 +- feature:文档内容采用分组加载,解决大数据量加载超时问题 +- feature:文档默认模板统一改为中文 + +security + +- security:对上传的驱动 jar 包新增规则校验 +- security:采用可配置(默认随机)的 jwt token secret + +Full Changelog: [v1.0.1...v1.0.2](https://github.com/vran-dev/databasir/compare/v1.0.1...v1.0.2) + +## v1.0.1 +feature + +- feature:重新设计文档模板编辑功能 +- feature:优化文档页面样式 + +bug fix + +- bug fix:邮件线程池配置导致系统启动失败 +- bug fix:Diff 引擎异常导致文档同步失败 +- bug fix:部分浏览器复制 Insert SQL 会出现不兼容情况 + +Full Changelog: [v1.0.0...v1.0.1](https://github.com/vran-dev/databasir/compare/v1.0.0...v1.0.1) \ No newline at end of file diff --git a/docs/develop/_sidebar.md b/docs/develop/_sidebar.md new file mode 100644 index 0000000..f856971 --- /dev/null +++ b/docs/develop/_sidebar.md @@ -0,0 +1,8 @@ +* 构建指南 + * [后端构建](/develop/build/index.md) + +* 系统架构 + * [模块和包](/develop/module-and-package/index.md) + +* 系统原理 + * [用户名密码登录流程](/develop/login-and-auth/username-and-password/index.md) diff --git a/docs/develop/index.md b/docs/develop/index.md new file mode 100644 index 0000000..fb07519 --- /dev/null +++ b/docs/develop/index.md @@ -0,0 +1,3 @@ +# 参与开发 + +// TODO 系统设计文档正在逐步完善中... diff --git a/docs/README/develop/login-and-auth/index.md b/docs/develop/login-and-auth/index.md similarity index 100% rename from docs/README/develop/login-and-auth/index.md rename to docs/develop/login-and-auth/index.md diff --git a/docs/README/develop/login-and-auth/username-and-password/img/1-filter.png b/docs/develop/login-and-auth/username-and-password/img/1-filter.png similarity index 100% rename from docs/README/develop/login-and-auth/username-and-password/img/1-filter.png rename to docs/develop/login-and-auth/username-and-password/img/1-filter.png diff --git a/docs/README/develop/login-and-auth/username-and-password/img/2-username-and-password-filter.png b/docs/develop/login-and-auth/username-and-password/img/2-username-and-password-filter.png similarity index 100% rename from docs/README/develop/login-and-auth/username-and-password/img/2-username-and-password-filter.png rename to docs/develop/login-and-auth/username-and-password/img/2-username-and-password-filter.png diff --git a/docs/README/develop/login-and-auth/username-and-password/img/3-token.png b/docs/develop/login-and-auth/username-and-password/img/3-token.png similarity index 100% rename from docs/README/develop/login-and-auth/username-and-password/img/3-token.png rename to docs/develop/login-and-auth/username-and-password/img/3-token.png diff --git a/docs/README/develop/login-and-auth/username-and-password/index.md b/docs/develop/login-and-auth/username-and-password/index.md similarity index 100% rename from docs/README/develop/login-and-auth/username-and-password/index.md rename to docs/develop/login-and-auth/username-and-password/index.md diff --git a/docs/README/develop/module-and-package/img/module-relation.png b/docs/develop/module-and-package/img/module-relation.png similarity index 100% rename from docs/README/develop/module-and-package/img/module-relation.png rename to docs/develop/module-and-package/img/module-relation.png diff --git a/docs/README/develop/module-and-package/index.md b/docs/develop/module-and-package/index.md similarity index 99% rename from docs/README/develop/module-and-package/index.md rename to docs/develop/module-and-package/index.md index ab3c161..52d7eaa 100644 --- a/docs/README/develop/module-and-package/index.md +++ b/docs/develop/module-and-package/index.md @@ -1,4 +1,4 @@ -# 项目模块 +## 后端模块概览 Databasir 基于 Gradle 进行模块管理,当前共有 5 个模块 diff --git a/docs/donate/_sidebar.md b/docs/donate/_sidebar.md new file mode 100644 index 0000000..645927c --- /dev/null +++ b/docs/donate/_sidebar.md @@ -0,0 +1 @@ +* [捐赠](/donate/index.md) \ No newline at end of file diff --git a/docs/donate/index.md b/docs/donate/index.md new file mode 100644 index 0000000..296cf2f --- /dev/null +++ b/docs/donate/index.md @@ -0,0 +1,9 @@ +## 捐赠方式 + +开源不易,扶我起来吧!再写两行 + + + +## 扫码加群 + + \ No newline at end of file diff --git a/docs/faq/_sidebar.md b/docs/faq/_sidebar.md new file mode 100644 index 0000000..c17cb17 --- /dev/null +++ b/docs/faq/_sidebar.md @@ -0,0 +1 @@ +* [常见问题](/faq/index.md) \ No newline at end of file diff --git a/docs/faq/index.md b/docs/faq/index.md new file mode 100644 index 0000000..181847c --- /dev/null +++ b/docs/faq/index.md @@ -0,0 +1,25 @@ +## Mysql + +- 如何填写 database 和 schema ? + +在 Mysql 中两者概念其实是一样的,都是数据库名称,填一样的就可以了 + +- 文档同步完成以后没有注释信息 + +这是 MYSQL 官方 JDBC 驱动的限制,需要在项目编辑页面的连接属性中添加 `useInformationSchema=true` + +## Oracle +- 文档同步完成以后没有注释信息 + +这是 Oracle 官方 JDBC 驱动的限制,需要在项目编辑页面的连接属性中添加 `remarksReporting = true` + + +## Postgresql +- Postgresql 的 schema 该怎么填写? + +如果项目没有做特殊的设置,那么 postgresql 的默认 schema 名称是 `public` + +## SQL Server +- Sql Server 的 database 该怎么填写? + +如果项目没有做特殊的设置,那么 Sql Server 的默认 database 名称是 `master` diff --git a/docs/guid/_sidebar.md b/docs/guid/_sidebar.md new file mode 100644 index 0000000..838953d --- /dev/null +++ b/docs/guid/_sidebar.md @@ -0,0 +1,24 @@ +* 项目说明 + * [](/guid/index.md) + +* 系统部署 + * [Jar 包部署](/guid/deploy/jar-deploy.md) + * [Docker 部署](/guid/deploy/docker-deploy.md) + +* 基本概念 + * [角色与权限](/guid/concept-user-role/user-role.md) + * [分组与项目](/guid/concept-group-project/index.md) + +* 基础操作 + * [分组管理](/guid/management-group/index.md) + * [项目管理](/guid/management-project/index.md) + * [文档管理](/guid/management-document/index.md) + * [用户管理](/guid/management-user/index.md) + * [邮箱设置](/guid/management-email/index.md) + +* 进阶操作 + * [启用 Github 第三方认证登录](/guid/advance-github-oauth2/github-oauth2.md) + * [启用 Gitlab 第三方认证登录](/guid/advance-gitlab-oauth2/gitlab-oauth2.md) + * [扩展更多数据库类型](/guid/advance-database-extension/database-extension.md) + * [数据库模板列表](/guid/advance-database-type-list/index.md) + * [Mock Insert SQL 生成](/guid/advance-mock-sql/index.md) diff --git a/docs/README/database-extension/database-extension.md b/docs/guid/advance-database-extension/database-extension.md similarity index 74% rename from docs/README/database-extension/database-extension.md rename to docs/guid/advance-database-extension/database-extension.md index afc747c..886788d 100644 --- a/docs/README/database-extension/database-extension.md +++ b/docs/guid/advance-database-extension/database-extension.md @@ -1,4 +1,4 @@ -# 零代码扩展受支持的数据库类型 +# 扩展更多数据库类型 ## 说明 @@ -11,11 +11,36 @@ | mysql | 8.0.27 | com.mysql.cj.jdbc.Driver | | postgresql | 42.3.1 | org.postgresql.Driver | -对于其它数据库(有 JDBC 驱动)或者你想切换不同版本的内置数据库驱动,只需要简单的配置就可以实现 +对于其它数据库(有 JDBC 驱动),用户可以通过导入的方式实现扩展。 -## 配置 +## 内置模板导入 -由于数据库类型是全平台可用的,所以限制了只有【系统管理员】权限才能新增数据库类型。 +在数据库的扩展中已将以下数据库模板实行了内置,用户可以按需添加 + +- mysql +- postgresql +- sqlserver +- oracle +- mariaDB + +![img.png](img/inner-template.png) + +当然这并不是说 Databasir 只支持这几款数据库,而是这些数据库经过了测试是可以使用的。 +随着测试的扩展,内置模板的数量将会越来越多。 + +## 第三方模板 JSON 导入 + +有很多社区的模板没有被内置到 Databasir 中,用户可以通过分享 JSON 的形式进行导入 + +[点击查看](/guid/advance-database-type-list/index) JSON 模板示例 + +![img.png](img/json-import.png) + +## 自定义配置 + +如果用户有一定的 Java 技术背景,则可以通过填写表单的形式进行扩展。 + +数据库类型是全平台可用的,所以限制了只有【系统管理员】权限才能新增数据库类型。 通过菜单我们进入【数据库类型】配置页面 diff --git a/docs/README/database-extension/img/1-menu.png b/docs/guid/advance-database-extension/img/1-menu.png similarity index 100% rename from docs/README/database-extension/img/1-menu.png rename to docs/guid/advance-database-extension/img/1-menu.png diff --git a/docs/README/database-extension/img/2-database-types.png b/docs/guid/advance-database-extension/img/2-database-types.png similarity index 100% rename from docs/README/database-extension/img/2-database-types.png rename to docs/guid/advance-database-extension/img/2-database-types.png diff --git a/docs/README/database-extension/img/3-add.png b/docs/guid/advance-database-extension/img/3-add.png similarity index 100% rename from docs/README/database-extension/img/3-add.png rename to docs/guid/advance-database-extension/img/3-add.png diff --git a/docs/README/database-extension/img/4-result.png b/docs/guid/advance-database-extension/img/4-result.png similarity index 100% rename from docs/README/database-extension/img/4-result.png rename to docs/guid/advance-database-extension/img/4-result.png diff --git a/docs/guid/advance-database-extension/img/inner-template.png b/docs/guid/advance-database-extension/img/inner-template.png new file mode 100644 index 0000000000000000000000000000000000000000..ebba7a8a2c4590ea23ea948c67c3ca0c14e0995a GIT binary patch literal 52349 zcmeFZd010d*Ebw%Z-+X>p^AzUEh-jdP*fCzSO-v1a9~hDQb3K00tynw99l)H2&fnk z86pBAGDJY;AqWBzh6pHgh=3uC2_zvQ4a_V`e4`epvMb27_5}=-~bn7|d)52J^k&obSL-HfNkv$6)+1hxY$s;b}L_ zl83G4+P8Y4bEOX$mS=w?9PG&W>G;#lcORYGv-ZG}w~fAU=8@)pw|38F%y*}XMjVu6 zx38VGyiT!A_YIHEOJ|IoWnpuMd^dDt4!4HXdsG~Lc4Eax3N1R~dcD>_^v;ZvR-Zqo z`XrkYn7a*%4b3IB^}Kpha|!pPdE6{RLv4e3*L_Ol!@BH`Pfkn1ac`r*3^ACeyoc+h zVrU}N-q+ffGki=sL-Es#YbiLz|1lRR4D8fjvJP`*EB@ktI#DoF@t4xn6JI|2t5q_r z_yOh^uOZ$fD#`}i($b=mj<;nW)UNV55;Z-5p-O5xtH6&m)*ejKB4~!Bw77JYxVc;% zvG>ioH2vDASDk!h;uu*3%~m^H-gu2O=tJUb;=O-lGuKbQoi2}ia)?d#&^q(Od_aeVr1(IY0I>9&5f z)_#+%>2#6?x#;V!Y)naaZ;)^G@`^bV>#7`=P*6lJ8+(5IwJ4E25t)0+oYE3{tDHkB})A0yd$O#h7SNND#OYYtNlxl+s2 zek%)pmui7T*y%qgS!hkOtIJ7}! zrB+3YeywyLx5|OHeadZ~41<+8gz)vAbvQd;9nlc63+YQ(vDM;gs&Xq$RL|BYb&DbcqVytqhP-2< zea?>!eq7YX*Ve{CJn8$Ya`8p(3xN{pUDc#i8sOlo9pb9~;1P{Rr#iFPdE&0L332?6Ne1-!-N}kPD$XQSMOiv%xQqtd|A6YK z;*;@n!sPhz0dtAL0-bwc3TD*Po^!!#eMEYMzFo>#|I%)G={QTludt|{^ z(qfDJG$+DBz!WM-TTZB^!#*1kokmuVjfz=?2DJVN6CDl2pNLLTIVY6NzUOyzgzh>f z7|@+(y_{BIEmDthhTwdz_Su5ye@*(PvRm#NN|kTRXQzI8gf~1^aO&6vX7Z#DZ^{5SmaTnT_CmnL$K~b;W79X=8Tei3E~}^+ zTlTMYZvt;f@#2~0#4-7V8#77OukZK?EQMbDidkkO9Z5WE6np*cz0V&9Muwm@51uu9mJ%SA*AMc?OB39 zx39N2N|pkzYoZz2npcsDV}aLX^{=jqf2}+vEl(Q0&`9s21-p3d%sL^(?ufu!AR=aC z%ZSyA^m-!qfvIBkQ452^bHW=XUkIRRT>>DUPU$#$) zufD3mYo20hPb0;aQrhN{+@j1U$mz+JbyXtp09zWQICaAhh9X zMH^+g3j0p@p2bO}eCc_&OnoY0a${6G4*bUN`Qw(XJyhy>>VO`rB=0FyWMb{j)h_b< z$!Fm}z#HPf6tDB&SeWgew4%q7n&o$NknZE+CF!o(1I#&-$q6;X+7`Hb zO)zjqBuSc^((NN%(nq+ycici4ILWh>W71c#b~g|>U=xk_#;~&^Hies{y4#@yc%90- z{lryem-pUunTl!Kn(zNc_By{EN&!(-5oqb>-^qUN`uHvxUYbc`P!EyJT$VU5GrFm_ zCXsYv5O_%vbF=N~qUD5)h*$3B2j5;3D#9s2g0irBP z3B;|iI93Eh5XD8D(7FbJgNSgcdgNB6APx z40HO;fdE-ejUr}WnR`-@by20v+dJ%vF?7wD+?r3Qzm3E1U9`}_ z!851yA&FMOT?&4;!^F|w$@CfbtNE^l!i?gI=TzrIe9g&%DJQ5rQ{)lO;?MW|b)8TU-Ae zxj`%z_hc(q7(?&Ix`GoY9#kIs0&$+k?a<3zP7B#8B0&7+c$3hcz?Ev#gY~tyx0fJY zX$~}eX`a`RnJ>RLX&Oejo053TQsgC-ET5XO7_(c`xF-z+m6nCulF{O*T)iDTdJCg| zoW@ojsp*DA*MuHhI1wShy;Y2CL-`Jw(`)R{C@wC}%=8`-vz%I7N_;qziDpf75igsh zL{m(wF~$eLmW}Ywh4SeI>7-0Q`q*+Bz|^Y$e?W2n{V?pD1yfs~dywPO(b;J`jS1ub z2^0SJqy3Me<^S3++j|%g09~pkvEJ~Q8X}~RzQMv$bTi&);tl<=Ggg(QR>JB2(+}SN zp@BBUSB0$hx(qNDfUtCQAI`fs_@q5t!AG?1ya)Cd7_Jct=Y<-If13yooL=kuJs=?~ zepFGBG7ylTpAQ`6d~laZah1}#^F zd;hJ9MdFeD`U>-uP9RwMG74l)JL}}fPHtZ6^14K}-H|^QVdvt94m2leztwhZVBE|u zlvt^x8rg2Y_d_U$lHEayXlc>wh2AJU=e?7N!oF)5NODeQrQ#=EX3)nBU0xgc>>_Uw zDxUFrwcI7(aC>WKfgiCgVQQJPl&^89QBgj_8Q34We3Ra>D(W8~gKkfOaYo7#C&zbV z#YtzdxjikqZnAoT;=HCEvrKUsa&j6Pvr@eC-O6hmb4@L~7%E}KZgDi9P5{rcg~qFC z!Rx9dR9@j8G+xB6mYtd_|Yjd z`xn1}EfWMd&lm8AJ5zg98f$^5gRH*Wf;_l?YHNQrSBI7*!?RV?@i(4Losd^*6#88Y zWG0qE)&EjUw1zPV2h`Eus@`d!#wJDCC!Fo{{p^44I;i=@KZg%-Xg^WVQpZ~qi1TK! zEPviW-b6j8iMYIR-axo#64@%fK2SgwHVy=&Xmsx-)-ZZH&L1Zaz>&G^t9;2PRzQHL zn^BplJeKx*{n5j`ELETHu8tTo*`39L%7D?Q-Pgw!m*2d=)GT}-FJCt9=Uk{?m`G~P z4-}36T$mElf9N)icUe?hlSnF*RW$$h*OeMuN?khhvR!#)F$R({0tjzl-|c+4*9(eC zRb-W-!uQFo1`iBzW2QqM<{a(nwvo*$hbR4;FwzX+CJha1CLh@jaZN`?=0!Mvrq=S} zU&lkv%n}N{gI8nhVWkRhZ(+-#2j_TD&+Q!3p-=ou>_P7Mq&v+Z=wlVfkR#oS=yQsOK$AB zTH7hFd}1=aG3zN%Y0qxC8D>Ajnx6mab>@VJ)n~W4h1t|)KHeJW(?l1Bqj&YGyn^ex zQ5$ig(u$Px6uKWbk*L&8@Y#~hRfqUWT@7+|Z*xyuzg$_1v?8(II>zt7NQA?C+G5c? zGL8A|G8Mkkt$_lA185wS+qXHoP^XhSb|I+NT`e~74$P|N=T{5T^kaDri}gL`NEbcu$f2B@SS<5`#1jK zEwP(hDEmG$mONQ@g84{lyNO9FZSq<2Q~$|Y61_6h$>8u(-|7S;r|W#cGu`hERA0iy z^i%J>i~>&nsQV=gPn{jh3<1exX`cX#{K3))Y7xJL4H%6cWPO;|BQV%iSnSsJS#srd zyvOo4!jqqB$TQc%gL~lbf9fWEr_W4SQ$@NtF$$23G}DecKt66@eu3L|n?c2AAIlN) zD$9g(@6wy!6F(v=6aI2GL(8oZL+dV_Lq)7k1b&r)U(x-XtYw}ItKpS85p?wMWKxaQ z@LWc_-y)(2jxE&q#HAkT4!ae<_-HzwCH=8STq!1WtRoY(ATIe?wXE&Zy&jeaP4gW! zag!J8!o$CwpoIh}I5o4NN#3V%->rr<4WHwMW~)OtR!GwQ=%=hkYa%A+_87B|M}O`j zKAJt&C>wrfDeJm4QFxs|=90B;S$}#{sH7FcM}F9wV{X9X8wJKz1utha>lb|^b#I{|J2em*U$yHQviod%mZJErVmu2W4`pHKKgo8PbSN z`i1vpPR`8`(*6sw)@C8hg0FT2i2j$%3vD+sk~5xoJJZ&u)6^=F}Yc zmL1FNvZ0dH(fY$iat(<3stfA!vnH1Lh#z2lhC8=(`i1X~%<0@M=d}gtL_m_P@4d;a zbtLPGs*%piafbGEk@RyooNyJU~F z_3RSj<9yh_yX4uG$QaMlaXew0^h($8b^AaO$6Mmy+#Nsc=rfO*#G0I4^xd*AnDozV z6Z*iK{P?G@9`L_0Z3QySWBzLFUKvQ1k`#D=zLY|Z%#8bTwv<5LGxFUL(o%W9*T+0t z#kqn;>=Vau6x@bQ+)JyL=9cE>-ZVwpy&o^IZpcp*M~fWFcFYRpd&Q5p)rMXY`e=&N>?sTCa$;;1A7g3t8c)ZvG87z>zx*;|;kSP0v=%q`}hR`qi$Qt_k z!tE`*9+xRFYU%y|3()%C!SMD<20hPn9H5
jalRrP<1Smo(fr#Vc5!I^2mxL{ik z1COVVwmRYtRsmq{dp3pQJijHx*KQg??wJ{!BH$9oh^n@KGPnotr3kP9oG9#oSsgp& zvKUO(Wm^i`-{6?IZyKK-UunvL0FYj;L<D?=e(g6yv)!iGZ zniBq>76(s%R+)i$zhW$7E#^Z61G^`&!leb!rkOpe7MK?+C^-Kg?y!%~!0Z`+Ym$M{ zQ4~=pm(z)Zt+O!xckhIrHt31B!93mxJ~!~LOR2&o7Ch_mPL4Se!@!m%+>v20A3~e4 zrLVzij{K2{#q8Oq_$7$IGF#eTWlX3oYfdN-Uyx^mw zSaej0K2bqf+0XwDvxie*l2P1vvrF_|4_co(K2ygE%*XL~bQxObLe`yu@t<`N>lc61 zJ`Rj_2-x0u=(vd}z0U<5p|7EjgWpdc#`?$a>v4@@Rg;y?mBvL4FWN@WrgI*b=HBpg6n0M<51jJJL-LvEDYyjGh=Ur27&Gk6 zpsGsygxSmr)j>wc+@dI*jrc|vCz*jwt8*>yAUzHXs)YK3y6e@Ue;J-)b+&t3)MaGk z$At8F#G5&e*xx|^wQ9Bswk3B*Zsi1y-`D4%-yVnrWR#RdhA`1q_FXn;z3lNzoL$;| zFwgT=bcic#yE{F-Z**fuc)W1qmadDnqSn?NU5ATz zj@g(FDBl^ApK(2P=Cyl%Y?_va7!)j<24=W==&Z(VAX#&%ltiDRL#c_PqYg!PRz@Jy z^CNNSnW@nZa)<@1OFuSFsG~Y}AXDJrPwfR1$fG9zckML)PH}ckwa|E zd;U=e&185yUZ8jSnZWu!gXzA@KP7R%3aP78)FuALhp_%l<)7f=*L>fm3Un>iAwUlt z4SxYIOAzRuUHIwprPUO?kGbH*F{#kyLXKh*Pm)eabAO1#L;Kg@u3F#u+sPW+fsY@2 zCQ0p%F2qBJg-)V)S+9e*X-tort~`U7>aHD&+#vU@zdVL zcQL5Y%&?=M&E>73@~=Kuzwq|#Bizu1X}zla%YQ$>ggS(1GCZhYU5Ys_2&2Kux<)bV zsJCZM{Kw9yrovLab)l2i2)rK|AHVU9$%pUn#K++EZ-p#;)!WPe;oo1z&Q+eL9rM^{ z;B9h{#@P1N{xkE=Jn`i)yO>uL;cuI{g;ei)lQe!`e?P{+2ub%}=^2)HUHWmUn|85B zzLnR-+OKPWp+!O8RJ8QfcU?5}9=^$3cPke_>mM3zOd4FY_Wj>iE887M=Lp*0=XP0$CZwIRs0YyE9MR3 z%qm54tq5r8uGex)q@FHiL4*19=jgH`PX}JDPn*wu$~?TgfD%;GEw8RG4EIsu+WAVe zXtsHU*G4|fQ|mfqYpn<*PXN^rSx?n~uS#bM@2)_O_JquEX^fYw`d8tCIP2~aq6={w_;~yET11>tw|-d}+w%E+lYalgQd7>WK;IDzr949rB$;eoWmo*6MZ5$~ks{EZ4?O@!+gI zeCcggQiji-`&TWbs)lUFsJEEh`%G6qA16H0K0^Z%Qx7>8wXVUtUpvp~QPwVT-@0a< z$b)x`2jAAe&q^7Hk zKkM#B16vN0js$2LurvW_PSz@i^B}USi4i;v6$gwQi&TT*G5`{eYafe0)?)(yam~w`ZP`h z;-g2(RzB%;kMd~dN7kShWs`7_b{!!P?Fzu@OUr_^lX|o4i(G%Y$8Fj|LR?-dyzbB? z4s$Q+&p=vB5*n#W9H|3UoX5R&D$%N8BuX!opii)JCN<@c=`LXWN z`CVzSeSWNx*{x+hW|~vGay&y2_?|GtAVjxQN|y2sBIv{gt;4g%K9qvu#ekm5_DdBo z2*a3ec`}3T@ruC~dXSL|q82OjISfI4z2069PLD#bUP7V&Zfq?jnMZ{VnzWEXWo0fA zET?KdpvIiVUDkrSxz~LA=&(jz@xq3?h9eJ5Bl9g~bsSuoGl%{2L=68|-t{)x03|kS zteiZ&@Qk!~Lr&%aDPi{()Q+fyj%P^$%Q|9hhYV}b>TW~~Nr&eV4R9reh?EH#k=Z~b zFiugyL|7q1cXTQ9Dv7hS0s_V;%=6xSq^zqIlvP+7rxQ4t$lwO1X zRST`4_^#y%_jz-jvj)1QA@st1o~sO(GULM*tx<>8(;dvY%;9mqd~s|^f}zQkLN4k? z&uj5|h-h1@y%=C8JMk~as=!}^-q$E`^yLg>Z%c7soyGh;b&mH6N!E0L(4M=vLpIY8Y z7vvJ)n58=TE)FGKI>zcy*oNK|Me`qUn+Bl&4;uSD0Co=$dJTKzGZ{2jMh!?YxcOs;SoP?b&t-lo1IOITTUq>DNlF5XsFG@Hq)f%OdX0M!7l`t& z#>|H>5vZIIduJKT`e%b{OUR=nawD~1qQ0y?KN?PcB0hw~SVvu3Q6S(W#B2lla~mmP z^(kqDc1ah~&(dwtz#q9DOHfEAMS1ANO=ub6 z+FDSI1S0D+ppSdeQI{n?8mRLT?G#wgU})s6OQYnZG)sCYNvmtcF=-t~o8-@+l6wo{ zl64PT4d;9H8k=jpV;4@-u8o_bhS>(*7Xpab0t1s@ znbdwirfEyZ=xoi)NVZfCDdE*0v4X&>k1mBZ1LGGFt0{*-D_qP@& zCXp%7>wvpIO)mj75kO7Qez~r$j^d2pO`#VFLgT`D@q*m(-6=6iPvmzy%{=(XsoRBS}89LQy6D`f_hS&ZNg2R59uh+`_YX)#DR9?8hn1houcN zE5m4=Ief!;*fa0n>&YGf$-?l*A-i|_=GJk`UcgJA0eG=B1hn1V^}5>W2+mGb19hKI zkoLZcwQ+C(>6S(Po)yzXU7*J-S^m2VJs-w8*HYC@g^3wE4KDUCeL#Xzp2{3AKk^ zoWd8R$`oZt!5%z4Q??nQ!Z`9vQMo5JIgUaf_H*!@9n;Zur()#r`;lRvBAg4~$|wRK zvC4yeMVtn6xXV^KfrRYG%1m7B(bX%7-ds&*TT7D;fHZJ!wL%7U`Py7WM60NnG&#Vb zKJM1QXE{yG%mc&rHqyvt z`>e@;qXTDdr#h6PdliqHY?@~hvfEPs4Yb|@xdV!r(iyg((gJkUo#q~#Nx!u;c_)QV zo(@oaHXX00Cjn%OCm=>ZZ%n;d=Q(Jye|_}mQ-RCXtBL_E2m@6kA-hG`ba>#68*)nD zsNM+9kR9|2J7qdup503p%vK}<(4T5jH}q0R-vaRT2^5JSCgY5JUjPp6*kZbv!`>v% zV<~b^Q%WPgS7YJ&sjAwNtZvGo;S{d>z#2Iwo_+6PG4kM;RLz*<^4)A#PWdmEU|g1hg7`O3Q7I&ezdp1etDAi>hynsxke}B~@8!2o z{?AHrMM(%a9P^5=MfdxgAA?2oYDUO-a9WQsU?y&)HKN}I-wYOY6qJx#QO_oWJC!#- zj$cXL?U`4Uxx7-&`KZHVL9UXn!}>@cBvc)fsbDZKXd=wc)pL^q-?nvM^C*p00d;O- zkV$(*{MgSSFAZ^y>s94BKoX$0D$5A4B%LcS-3AoF)4NO#DKl5xh!ZZ0+F3Ry0p+L& zl&z_^TVK+ zIw6hJ`aAak^h+{)B;x;)Ij1>{4Ipk~HXh<6^?a>!r#XcG@X4=ihN4&Gf9S;5v-$ro z>;J6t|DW2e5BC}9C+je6d61{$XeheYYXCYDBLDn!Y|>l}9W*D2&G~~u0;|}|dl$T& z)tyGY%C@odwk$v~Gh-IM{*82r4_zXb&KsaMh}BK0BLuk< z`jJ#3jG4HbE~>F*x85sh6bNzTHg4<}V-5zVS-y6@Tqvp>>B1K(|vgkBx zEN1YRzxPTs6n%P@yYDUY8JvsKKC`Io{6plx1RH7j!V2LG`*Y{_Zjh&+Tu6iEc;xqB3-}ZS&2TX`j#>e#@R4K_5?ZiNQl#*v;kPz9r21 z8T&^(KU45OM@PSS$HLsgImZZx2JzNf!!LWsYR^Nay7E$`ttc;(86u@pU4i z-XZ?r+Zs0)D*ZkZNm%+^l=F+IW=6vb9eX@n|HeP@lKS~lTf`wEwB9$tnnNh=35w)J zcXa^T`_K;xa9)Jq}EA4-Ehs%38&}d4v z6aM2uUYqyiaXWs?Q29aH5A@mhdC-vQNZ}82p}ZIAf@NCQpe9$hz&uVdXh>Q zQS*J|EFLJ7*Dtu`V}|=_c%|Q@^EJ~OfTHPmtUb)hlxfjY1 zM2IIZYM}%)Ek<^4<0tU1S8f>tN^a1NM^?z%s8A~P6|Oo$4s#M@PBR9miJ z$ymy+p!(yGc>#BBqw;bWgH!YsG3dwNYWiw zb2AxKx}|si?-cx#1Y9^&on99qUnCMP#$T!CjyrI$vU6MXJ7NL!zYnY+Cnv5=7$I}j zpa1l|oIROF+bddvFdO&$eN?8dzNiH) zGQ-{q!D$hxsmiw)ROk6e@pR~M11?7A@m=cBSugyY;GG&Z70$7&m!2K2fC~b}zsy#4)Q}12LuN z{{Dbja8THqMC=b-O=WNOJf}OkkAn?1f?lqjBNSy(es45%@k=hYDL}b})S1zTT$IUk z{hz^|VtCi>Mk#W@{@-M~Mw*bC+jt2Bj z;>8VbKaVcu_8gElv5XC3{<~7q8L!t9ZCH<8K*;p5HPvDlqJz4edFE@RM(N^FGX zgNALHySrbGw!HFyUdJ-m0rB}i)Ef^M12&NO5K*fiw|#eRNSvT#Txe@<%Av0P=kf~b z=``!a=l*DoTzLY$fQ|e}nCU*?f9yjU1DBSA%Ot;$G70U)>hxF47yn%QDCW}NM51Zt z=K79)6d%<7tkfeJD7^U(*k1AR(TswI6T4f&do{andihQAFw-U6ptV#9NkUz6D*I>% z9_S9Xae&T-d>ym>WJq*kM7w z{7t|4>y$tf9jBjVAW+6%)9TW_=VX)SWUap#Pi_ryZo}snMG5#hXIwbE?zBL46!4jU zZ-NjIQj@cbx(afNboaKIqerxpI!yPXC!GB9-MSAu`K8>*biGr6%=?=L`W&dO! zFqz{F>>YF;u^l8!G&@b43g@ciSof~n7C{Fv2?08);0<2^+JEsF&fih+)Cp5?n<_=L zyEDEwkmFsp*U-gq*zfvT>2}}A1r+KkMPu~e4c(cifvVi08>Djp!)`O*EJlQzBrWsoAI~9sCSmsc|K?GFw|NiVI>#NU=EMZ%6&9V8c5KH#k`FVxuzhC<&eq5u3~&~| z)fIeovkWV6r-?Hjdm5HEbJ(Z7=)zwL?IV#q0g1FD0s@lgu)kesDuurDum-flOe?~? z5vw77EveS*A#@()VE@6FY!9eI;!6cB>5rHk`f983w#(KC8L%F8K_r!bG|OXkG^OPX zlc2tG1BI?@i1JQ=CY)K5b{d?hAx@P%Pqtrz&bB09*8D1A_~KHcKDdk^9Ss|p7&U1e zYe=G!`+&s10szD}H_dkot3!8ttzV-}jjq96Nt)daZVQ-`MaepiHDg=6Q?fnBFX!y@ z-UWRG*PqJ7#8~-<_VzQ#OL==s)LYoiNO7Z5DeCM;ew*ULr6YdSy*1YEAo}F&_D@}h z&&y0CVa2QL6QDZQrf{RflcySP_EFD~_iOtc^TtNPXP41}J^m=+%k9c%t}x-CAenRc zdUs`kW6kAeLwqabilfb`Y`X4VjyZZIvG8;R9Yn=Hg(%synL958DD+fekLo~8@aav4 zW0g5|mkn6Q60}W^+q7@!HS&&+pTi5U--mvLGs<~B{kh!CHNAV%6&rQVGksV+?iMe$pjj;SyM|kYU zpMNk2Y{J~cZ7VKsOqs>rhuqjiF+xQ-_UL_C7SZUF0U6T^fF@2Izx_`M3t*+U?3-d9 z6H*0qw}BIn-w{$_B0Czb9pg4S_PM(Ioxe5~Ni@nYC@66A!e1h1LGMcZWcA=);`KdN zT}{8S*IzhLI3WV}p-$+>8Oa|uX%~s+t?aBSUywBz1HJ8u$KLPShfw&E!2{R`y-zB$ zI$u)B+8;_vUYz)=nr60~&MRE|mcUBxm{6VtZ9ch_na;_O;L^?JX6BYT;}zJkvl zq_aq3Vh2w4TM})v)^i^fyq$_`d^Ia_U9TrS3hVJn?@rskz^b~I5ou?UtY{tm{2tv5}watOXI3yK1zMonnBQH4Qgt^CZM^-!+d+34{!r~4&#wETws^kVB2 zmG-j*ax%#bXDE&Y8wh&d;X^=BbLus>PLEq2AmnQA77iyp``95nKS^%z&C**cDU|*? zn;iCdoagYnw)4uOV#^oY2R$11ug+b(+oqnpXF;f4dZT6yy@Z&7QIcJU*XC7^9SjtmI`JE{D46^HFCYCGRth%?}~lyt4X zJ-M1Q?y!=H?^sl5N-u5n(XjNrVnQ$H#^k z!_p(OluHEk8!6-Rq+SOjH&ywPt~?d!()MqZWFteEkkbmiZs~gYNBU%ok@sguev!}& zbnR94(t#TjL+}y2MIq_HhmC}_YUMv64M}`sUAAeRB(k97^yAz51bMb8i){@nxJVHQdjRAI%iWvi*N8%`IV*d=CN? z@j=>=7FwTcT@=|c_CU`@sMo9ga;oX_CC8?DcbwdR=Ag>}Yz z&=H51^}+F-&*1KZGDeSs)idFp-MA9P4eWpQz+!i_muX17(e3W&VJ#c%i|l5vU)WzS zO?to|K5ooZc6CV<)O2!B`gn6`C1USZwW9B4ZuRrb782JA3<9IDJi$!fI{l6Zb(2i? z`r;iO>*$8VY`#G(`|3de#A?6)6GI^6g<>}i$l3QXwF>m$tL8^Kb0BUEsVkb$@7Drk z5jQ-9&1s;+n3kG4{{?)yAAJ{Q()eHlvUao8QsZzx;Z?mKKVPB3Hmp}RttxdII42Ii zO?t2M;yJ7y`|S64JP48JFQ~rezmZs}7arP%7Kq;${Z=dhVzzz1&CuIyc`-}M=(zJ&k*;>}%0I85{m;hj7&H-;(S_{o@vzTEy_Uu25pDMjVBul*ZE7iOOoQdEK9Dz~0FngV-uUpYLcClg56gLIp& z5u|3J)tfokPi9nzyHq>Yw>vm%Y}t|Msf_hkHo_f<3aF+=R$wpG3~;J$lcGpCb8j1C zhg2<^5Uxcxgs=mgMenng`Ao82Qf%;QYq(6pAL?kLX$1CF>v7LKhZ5~{hElB9zfiL) z;e_!G3~89sLLXv6Bz-NrViiKw+XVz^7WzJO`|~o$9i;ksDFG^Y#CH-|Uo@6?opZSL zamZ3_>U{pGM)Xw38Uv*9PDImKHvk5M9|ne6X!IMrkuH)U_?`^nU)L`K^v9rZ=Wwn7 z-zI!D7k;OkeeoO>bsQ^JDmP{sXF9w)pOO&Am8Wg z_DBv&Kl&39tvkLnJlr`6S`cAvZOz_!L%&FKE^d`a zUu|2RGY1_tG4dV|aC9Q3L~WP;O2pkxg-`2IKc|j@v3&Q0E{_M@$xU@b(vN}9qUQJa zwxyNTJj8P!5E9jF>j{P2*OS97-yO!~S~iPVXvTmmBYP`?kPPFC2=zF zbiodT*^5{<$dNs-TBRaZkJzD!Px?+Zj6CV2fP$%KQdAeM9v6PdW>2r8Y5822g`vDe}FpW%F9? zNH=r&$S!eYZ}&NyQyIkgLM??@eoqtNh&oHu(Rd$8PJMKnH;1xvO-GWMVS%3k^78Vu z`1dKWbMyB~BP&ff*cih?b$mW~4~I`maj3#&3WzqdHqDY-wYkjPZ(jJ~)Nu{Yud`j( zaRT$G!S9EfMo8h-jrek-DmyR3TgWlce~<>ZeL!>`;L%O1TX(9XQ7-k+=W11elCV=o zJ)x+b75v$48XW4})j9DYX-6#CySEodWo1YQ%<*Sz@6mI-r>mL%QVR6W!fyqDV#oEV z%(R#Irvgc#Wk!48t_kTfA3;m_Z5jEn+JK25xD7U?WcuPf7G5&yyy{U74^i<~?_V`fWbT&D;xNxyyayr^nuk>_ z_T+?O-mt{I6S+rfPHCWGibiO7cw@tvvn-&p%PX&+vj#77 z8>sWFG2^g(-Nn5frconn%H*`yXEbWkngt$XMlx_)_Rk_W-EU3l7LCiNrDzj$m<&5r z4^R(<$P>P>Q5m7vV7j?8>>%KvhDIe0x1OAq?(4x)1xX!3piR0YS6(;f(sfxPcMo*6&x;eBbevWSY=>v8)=dbf zp!M2nD92?z3WtWFqmZ(K2eV%xTY(}5BX6NW;zO#G-Lr4AabhIU4G(_wEunv@KDNrU zNVJlU$OPa{b@3+UKO!T!U3X20vSw55id>*uq5GuxiaLdEBhHQ3A+ttC z_m|x@WIZRB&6daw~qBLkdN1l)-NnPsr@jMOv-NVGdo?AFM=9wD7iHgx@f(fL6go!FKo$SsJ&`!bx#M`Js3`M$%mV;6P^ zh4RSoEtW|0;Go#XrJ|QXdB}jo&GmZ?)5M43bYke5sU1sSEA=p$9GB3TsNv0@vO>SH z&lIO{Kvx5$`f&~D0ts2D%!Y4{w&11BbhIaetSNW$h$BfpGm&8fx`>2EK$A?eUNOue zpbREFtQ4fmTF25X9&thB&?EOHzO4_lCuro6p^8mZLkG`4dRWhU=g~(s2Amrfgz>V} zyVNkH-3m*!GMK4=0Acs1e>}Om!cYzWjR}CV>4dHZ^e|;qS_9&8!qQ3lWH!yD<+kPk z#}!%I$;Ba2c*aj;q-gKPmvGy@bB!sDYZ_UzqG!DerOL~+m*M_}`IT;gjDgl}9x#pi zHz7%(q506tpjwX47~g&5S?ESSQLj3aye$q729bH4cTJ7zZQ|xX?)sf&k zG|?1HIjwc6VW4OuVIqKTLXhJGdGzlP<+jn>FBPy%e*f@!YspxdMn0pA1XLXcQ_AMa~x8m;)T<@0(p0IA|Rm4c!}q zvLLBUe&K!K;zr+VUerb}IS{SUsdjT3@T_$ZUf~S7YapvrlX!SsPD91kbn&<^2Rjde zPjek-3PK;Ip^iV{F|U%?GPw)VqYX)0AR%t`TJXJSz40JHfg}bZXHbRj@~XZhqh-+5 z@o!>_qQU^DF+t}lK58pLKL$TEAr*AFi2c;p%Y5URyd6GIUm2#3hVi1ESGtw}7t?RL zk6QRQa=|@_PP#lEk_6FVj;IWRLs6o)Jsn*208KIKT~If>5K4-qH}R+L_37>)kIv3z zlMRseL4_pon_FAz(1eqBoO`<8Lz~O^x1uSR{Q=dLL%M5im};A=z_)jxa({(C0IG5R z;~Jbie9yKYAs%Y<{O< z*aY6trr0m*Clfc{wDf_qukek(l0Km8lN?Dwo%kpXFAE@eqeJvHdm-N&zg#+^&3f#v z#KT@Pirza>4hc=bsUgg@Df=ExZ3$#hyAJJ$r;9$np~8n`SzbY*ANjk$-Png;Of@Y! z{6;zm5C$}a^VP&3qOWMqTD*Kj8ktFPy&GV7rFuC!w``SBTLN+=S4R)OA69Hc0FMp6 zXNiy005#>p=&RVfOrTc;Eq6s+`BPr{mCgT93#y0GU;pXcDVhXd(%wIa=Jq`Jr)ewT zHTWKqzkjVlFM2HDA0mhX*iB{6zYSFid8Q(5{r!fJDQF<1DrM;P1YsTG%T?o?+jt^aq1A|Ul!!q$EC+N&vLaB&;%$R zkG*a8iUhufY;7SGw@?eg-wZ`A@=Z*SNxOHd(?O@!a``don*AJ;j1{F`)pQ0eRZ1RJ zGEgHX@zGdt*?;O!+HY5TJV(oDzgM6u;9eu2KLV`c1m*t^bMG0}WVVG3<2cI9D55gT zC~X`;1e7=;ASFaa1w=%OAX1_rA|OQR2_(_6Fo+N-Ap!yd(xeFpNJ(O)geEogh!9$+ zfdms$z8!SV=p5&~*Z1eWUjJgAXFqGNy~@4rwe~e@jPNukch4iH-k%hl^Y7Oeq6v7R zIrb+3oA!s2@E}rRyUgc*_U!3svzG%cr|w`zLMf897974Iy|DN?W%gH9*xk2c&8AK^ znD!LV!2Rym;G?(W(*EV?wB#)CDUVdx`_|nt{=)S^m; z{_gcg89d6V#0VDOW2oM^9|C zQ}v=G`Q08>n5+?f2~6Xoe5Xpjna$h1b@f3A$AUAhbNNWW@E7pdAE%b5)g+}w8n z)EvI?DXxXQuEqs(t7Q@tnZLXf{NxDxV9qJY?5USq^RYGAysNT!8km`q!d2?4Zjq2^z&8RuF>Uh~0#q+uw$@WR!=xUjF`@UqG?vuoN}6FS!P&mUPjm zNyb-Y#d>F^19uJThP)YECpPVj3!PkiVL}zg_9G;l?{E9&Q%;=Yuoju-EQ&(k5-Yaz zVHf6mv9}h&EvSX*Fq&`(2Zlk_+s~eyQ&199-)D5<(ma*GNlc~5-sv$saMAEvn~<^J z2IK4Pu7t^*O|%of&M^?XUS=hnk9q?UYR0^4!A6PwT(|w#_*VFFtFB}GTY|Vp-`Z}= z301OA?nx6~q1%67CC0H5mWJ)Z>_|-!%C5Ss9IWrRm>n{!c z*tyX@qd|<@2V&S#Pj`3s-GNA1{;$ya@Om{aE&jB)QOk>(nwl=b^jwt@cBw0BDN+{n zcsm=Cb@r7A)9+Y+(>|!W)2Y%-;qQ+}AL`DNg#vMM@N!)k&0MNO?2(t?<9sc<;Gk#{ z7;&B0-SnDs2%^TdiyzQ(+ze)IL7xlkmz-~E^2lMjHe^IN_ga#MTpABmNP4OO=1^T< zi{{lUlhF)fw|{UpPvh`6^=9)K!Q~HBJRDvpd?~KLo5^2#a2cG=XK(suPs-|Df;SgR zPw!aN{zT9yqz+lm?DHn78navpQ%kz!`9jn_z&j ziWWh0hjL{xOXFaYTE}kFh|+9c{*iC3R0*a^b}AU_E^-n1pzAg|yqVUpuyl`DrEvCX zj{P6se3!g6#Tk#AuD73!Np zw`Nlin8ktwtUMI;3~;6bf?f@R$!DiAp)@FJr0$j-r*k}<0s|$-Z}x7c=xu=) z-f&}I86+Y&HM6t&SL;XsjCu5|5j`*+TbtOQ`aq z+uReGJP~N5fA!-)`YbW<7KL{1+wXbARDfanKYgPkCmjw{GB)ZAr}H@wsqZ&`lEy5j zG_MZTnjOrt9Z}HJFA5o6%901aI}Lik^}i{PFwnmn&1z~H7(l+?$N(c7u3M%v$H1tv zZ)mNxz~S04psc$!Rk8Bl+?S*Dmd@2JQy2V!dh(tkz}%vg?)|@C>ma3{l6yK7ReRB@ ze7efe96{S5u3y2*8Ll-yyCffi=2hVgHU%GwivcfA5&xzTEjTd`6jBnI7L^JDznESF z1Kmur{_i9!k~LPIHvvoZ{0NrLJW`zB*6NN|;2p%O0U_U7;MCL5&8ZMIAHr^?}aQ$W>4o12bUa&CXwk}g1HeJ79 zNN)iRcHamIvUx>p9#b1Wj=Ul;wC|j5s#-#q4JS^PRqn7|WcUXGj2Stxd^m_M053jX zz##BN$Dg^YemN8}Wr>~ays}uS%}oeIZzAfS5cfkqFI^v5VKvar?g*$DHy}3T2Ip@? zCgMt`=_xJP%M59hyj3{?!6Q}Xmx(9$?6h6Pf`wUf zaMO;$(VCW&UufHId9teK=iEkyX0Ifgi+~*oMI1a^^;r5KjXcaF+V9r zywW^KaMF>tGc`K(AcHAB)IM>{Kd&?Bj~wc-_%>BCtNAGRe@m&1$nyv$rwsgW`IuL*Hc({TRYIBYkAcur(KOKn*;lm zx_&V&l>(Vn9}mugA_1y|{AL`m84v4vEo4%d5i~;hQs*u-c53d{o_C1+R_v8ouC~13 z9#18uO3idhWGw3v&rIg~c?TfndL&5(B=-gzVtX~4rhk&O{#E#RIvzgV+T@t*INiEL zi9X!5EWS;Ryn#FF*q*Ep0fWqAv!AK0jWPIvFadNlq_m#kLEba4Fo6W4cuYY=h>8#P#ml4DqHl!MP!M6emdBCo zZJrGAAww;%o+nuML$lUnMafDH|6A^lnYl7PKazV#?)18=Q+I~Jy^0TzLsU|Q!|5*I zbP)QuK_G-a*CR5gTsc^fL2uXUVW=2mhmQb^YFTLayZOAN-uKu78k}&DCjQ$AFX^ie zP6=6Ch&Fl?HlO4Grbiu;IbhA{B#fr9CtDOqPffiUJL&7W&O#!D$oyCn13z9>Z9-g& zE_`^ja3np&LU`^vr`UCkyuS~_OU$aRz7Lc&|JTdlac_XL>CH@~C=ho$Rg!xf&HM4M z7ZaB4Y^F98<=L8G{`{AMw}kXp5PGGe^Py*hG}rAR)Pa zLwy%)-)?)j@DKt{?$x^TF%mj!atK%)vCA4j(j8)FkH7LT&I_$Yy~tbJGI~~5w=KZK zvPQAB!OUzkrwCP+qi`99CqEG-Sg7UD4k5O(LSn=1VM(pRaOMWo>obq}F#(iQ* zs+Vz-;ctD95>h(KS7{qCMM4Gm6M4tla~}9fn;Co**2gK9%6fT zUeHwRdhG%|A7{#AZIyEmrSkh+m}y$O!koM{QWT3T%5sEB?4_!zLqGUz0m*MiAMB#w zL$cKfY#ZC@V+Qto_uy@&jO@b+oWEkEAYypvDn9w8E@$B4u_hPp5gDzOpiK4{z2)Y1 zu?FLy{nONmRV5WDoHMS(ko{-%!IPVb2Nq0zb4V9hy(;D5MX&grU%QX4J{a7*X}{a9 zm9Q~7?URFV3W@%K`gJDV)+m0J{cz{S=94R9#gxF?L@q0lqqwQy>x?%eUh@5vj#1si z_?2~?xclj(X^U3yj~rV=;YE*c!$q`dLOU7h(_+GNSO@UCE!1@2W z2sR1v`E>lB-gP%}`4;f4?s9snYra-Tm1QyYFzDD1@ftDFHkgv;ECN?*SPy2PyLFlV@}@AQ z;ttr#-G%OI!pyz)S<|zd8CK2dvM|ht`h4?vJT1h-|IT7)`Dd*KUl&DzZ~c0+V$ouR zH=j0Zo0>2+5GM)%CG|^;NY>>p(t|o>fqYTWndG$q<4x@1XY@wumphho!`kL+?Q?DEJ?G_RJMy%- z_dNe;X@GIKo`E+&OI*GH*NP?IM|ZE-8Wk5hjm>NsgFR!dgW_`f8niL+0h>e+Q7`54 zE19P6Y|DWpGevQnzQZI;1k6^OL{T+q=Om44`RHZI2Ms;BuP>70895bVt@z4lfhKNHm&Vf=e90MFU*wx>I>EtWO{NTBEFLqOmo;mRXll{bd`FxK} zM2C(4olUf6msC^_yqoV%f!pWq)o6ZtnUizJqKksMwXmVxNciLHS2<`fYbA_RG)=`M3~t^Y*VlTK!+O+&O^(V9fF?Pgo0MCr zjOde`cp`CvKbt2J*|GKbOi~`t(JC!oH`$XD^R?fwWUq4A{K>`8^LZk@^-7uknE6al z^jd0?4Qx-ICf8L5!?7x0jGY7awfD6u%SKi^81($ps>cnucF(!{IQ#dhKh$o?WRGVe zh~^t_DVzMrH^I~T5$K&a=I@!`QTy3~V;TVxQ`ZzlEk{n%8$>4-i1wrto_yuJk7n{S zPmT+1_2rQNr4rbWa3>@{3P1`G-7-_`+pOYMyZgfdYg1?;G^FCN?bMmV7g zUES^%Vpm|ab<$32pJrNTyyr(nFKbND7ohbQB6H2-E%9FqL%_ngAJ7%4?1l_}@owx! zr?;XctKly6@BO= z!qYYr<7m}tZ2P(&|6@;!Dky~y!e9oAaC>+mERW}DG$#O_UYZXYd$qXSMdx z8)AWcabIBh6oc!g&Yzs!J-qN;Rqe=~@6oKRevuRD@_|~kEs4w#I)jY<9)w|0cT|O> ztH*-TIVA1^NKK>rxW+m+N!{34(?WgH{0L#fAM=|7AMTylFwV$ev!c3?8%PEMV5^?~ zL1IN@6L#3a`23q7A6m)Hfvrl+=K1U(3&fmCbNX6`r2|q_V3*F2}Z4noHZJa_>WKMcA%H5590E9F+?YuK}pzU+qj8xH7x&p0X=2wzn$CJxBQAL& z<}Bl*t;FBE5JpiLa8@G^ZVjk~KZdBWPs+RO`Je#3_wVbM5(W3W9ojtyPXCnv0J+FK z;Su(xRNseHDxJab-79l-hYRV#%DhR9{h;%`fKCWCGWY&>g%gE=r}MJPXS?U>T$R930f~ z9d+`lcU`^urj^mS)t<8-@xIMa1Zz^=KX@WSI|? z0!^sQU&|z6H!}P4qY(`khcCt#L;l*&9}TL zr6`0^a$2hN{bS&Su_@RdX1#fP#DMoqv1DAs0yW@v1M8LS8!Jqplpu{=>UhGK}xp}hKkN`l;&wy zUt4NEo0*u1hq@JPXi;jLkWNMf1mHELQOJp*VVlH+HuEtOb1$jBI&k|su!Rjv$VZ&Y}dqNRJBlTJC zw3XavP7G*QC6k5;4t1zg$mePIKlKyvOqaP_S3jcjv9T!~-(VDKq@nfcnp~)@1M$QnR`H!+|M>xxN1D*I-W|Qp=PCzq; zkJCeIKUWlO+E*WZz6a<|fc4&C7tX+i_~5!N$73pBye-2+BU^%P^3VCt4ze0=m( zVy$(h`&a1|1ydB0YK&odR^QUt=0~#c#4yXaai~D}CRQZ32dd?fJrXC&;{b zc@5|eS6AA%W4B($RN+3Gb$ssKEyWJF$|!&Z<&8dTZ>gToEbLiG{(dE$)dG0+h1Yi^ zL^5Sm_jq=lET~H%GIQt4dK{!m|cK^sCMT zirnC}ttAn6XbB`OxWFfkc4dmzH{K!bl9ZK|rCrvVSV-B!vM|BJlXf)V8c{)4=;qi} zJs<+X)DtK|xHOe_>f9HRe8h(Lr+)&=Kcb%YyFIz`8taeSK73ODFF9Clfl~t6g~RNo zz&yLA5SRt~uhje_gDhZ#k2;3D#oOlWxCUNxjzCU#;qXk=J12Vj8@sNIy8E^}>Lny5 zcD+-y$lPq>guCOeK{0KJbn1mATrE4>s=axuV&0roB2|-NVUwWHG&g9{wk?w%6|r6F zcTbI!YrWF!Ogr@LWK^-M-GuJT8lc7S|bE*NA^@q}gw6I23GCNP7PY z>A}5VgE?kqp`MJb$J;u}<@0iF@^u+gzFqnDZeOZ)sJKGNX^EQ%GI3`PQ!^mGd$)_?iKhu-QweRE#AwZP-A zvNjO^?x?BN2Q~lbxM}Pg^yGNV0wlh=!`L9uc60|&l06DUPa8pU@*uGHw&fX28Wy{B zY(bsGD(lO4H~-`n5<$B3ZlGPyvunf$s)85JRLydjIwjuEFHF>R9OGE2Vl6*L?i%h^ zBgM!ki$Z_8#EcZTFv`qeS+5c`;hlm;Igc!Ew%g&*%2 zHSYT*Rojl^Ld`Wn1yuq=zGld6RCtkk^xXdI_7`|-i|)sV zy-OkGj=P`4W)~JBz;XRb{ZFqxuem;M{^|+3H0pYOkIVd#-%S=RO?QP|{pqtDz|~&J zWyis-k)-fM(9(!kQ0k0c^^j9h_39r86gAr9w}(eQCAg2=)yUg_5qas#sYK5{dOn!? zS@rll=rp#l1gO+)vN?(*=y$x(d{RG~2g>M)NAv<`4g?lR=J0*e)6)(4?(zUTI_>cd zjK<8Kv$t5#`;0*;{T_h0xafp>u~UUA70$=9G?(_d?E+xycEsh=Rj(u>hQWPMKkvRf$%%c~eV?$4N}N(2aDFsMDA^$vj+ zRBsQX3TDG*XypJSQ#h^xvDb4ImJ5d7u7M_k1n8uZQ79Vlw^x>PSmJvA8yKkJ znVthevidBfj?;9)+WZ*5!R`4x-+StXkRpW$#bt|O;@!vEd-FoimJaAw^mi?tDAmSB z9D-?S^%%huk!Pn2^YCWi+i(7qCM@oL6#lQC`)}RT^qR#wM~Hmy*_Sb#jywgzQh?U z=eVj64BnCp9*lX!$CK03UpvGbm0eycpTRe9I#ZZ8i2qrWxTaVp^R=tQ$<4vRp<_)l zq`6l^6}}CXInvmn+dDnGx@igU&ti(rV4D7fBaT9Cy|Q`CjG0;P(|Bt^kMC$E@7UgK zNE4(*9xX~A&hG>9LOgWAxPW&vDudH-h67Y2IpkeI@8SpjOCJa=@4<8d3?F516KL%U zdIf2kERk-=UX1%p^tFivoOGMuH`5@hmuqv5fE zyVBNu2nX?KS8{7kDBv9Qd}w;Rm>=9UX69`02G!F=1Aipk(S+7(y#zvT(Vc~!z-u*&{US0&BU$e_JdnJR?hqZFFG~1=csf- zxujR=aWyjPOt>^8%J!h!WCj-iI1H*Qz()*@&QkT7$m0INhXM8eh%@m@<@-cac4Dpl zvR#q5Jn-kH7h3d>jPl+*ERW4*7Q)Gb;1&aEdrp3z$8r~}`uQU_-!Vg)l^(eI%m5|Y zNV)%HtY09N31v*_Y(N)C{#D+dZT~ipcjg5+Gk<^idS$FwVFMm}<;oRcV3H)!=2<+W z6r>&2eb7Lox>9H_oJ-5=PS-LB1g{7ZRpxSdquB?w=0Q`B#r>(6qhMC=e^4dbtv%th z+5nA^1a2hbshj)`&%0?^>Nl+*W57a)57Bv}ZM;#|a#u9pV|iJDSC!YTp`~>k2}M%AVKv$nbU_M3DrO#U5#+tqD``q-;-E*%AjS zsq+M!P^7F7uO`$c%}a=m_MXHYJAtlq%nN*a^O<=z=2uIVXL@>VKnGy@lY%R_%p8cxL>QNVmmP4FNI1#pz}3ly+_^mR?1uEMfwhSH1o;LdPb)rfxNN2MW zI{SgspKyDaQ`UY8=G&Ua2sZSj77*vskXgwAcY4*Ucz2VNlV?u5xn-f$OBcvVs9sH~ zLvVctp@}@w7CcK_0gPr*F!@($B4LLbEu8#nCR;3TPhzKtlzvS{b zmRXUa|BR#KPe9c*-xs<5Cq~@o+y%hT*}-UgK*&vGbUxTN;J`R82ccGg`_-%WMv6xF=aD2hF}xX zfB<1k#RbO(?CUm}&I?QZCFcfgq~ZYz0Ud5EA(NbMCuAGbVYAgb9$LGt65fUrvLT(; z7H0mUgu1I|%y^v4yQ>DNzMPx@eS)+ws`X(#p1f0Cd({jbndQwZw=(xMq$|kCFviEn zL&k&Gp|pepU05eFhS*!-J-p!20wOXEDe|7-^Z*i%%trJ+3-brR3lL z&eWzpYgHO(>!`4av4oWU2lTmy`p_(lLgAH`(6@t z_C?FAeSIvrV`Q#+VbsrW4^=8zt)O}`EqpXb3^IZ z&RO%obwfK~H*@OiAL{sa*7a3Cuc_`o-lRM82{miD&D(i_ZmXeSSLF8GiKiC_A-FdJ zh!)8vv_SdyN?v*Sw91z{9+-93baQw%&b>Ml&`iMx)*W#7dVZ(HKYZ)NkN5<5jvY;j z;FLLIsnN19=ClthP|`Ug__aDsln^k--um0n;pOwlt`Fj3zpD1uDxIkf2yiT->vG4p z8;rhP9(8F7Uu<%V-3bUbL=$tI!EILa;q%q<3lBYT26)t;oQ_e$1IRRYMl~x@!nrqQ z>`6AIa3Ex1FECT6#RN3#1lYW^?gpOk{?Z}y*C%-G1)Wl6yw}(8!uHe(4S*w25I@#B zl@taXhwMF)2rz=tGaNTfpS{Aix%c%A?BSF0TXm2ZzjaU-*Bsox+q{r>;sl+{D5wHx zp}ozR!Vj=Jw%K;4XGhw2OOAf6`U6}I8;qu~F^6g7)%&de2@hwmu%9ruT5Myd16}go zAqXA43r|CBZ9?6>ho}9v307Gj9##ImU#7V{Q&T8veZYbYi^^_kjceTg zsJjat#ZMF+bAryTRAjq|T`rv^<7}@|W>!|gx}P&rUZEc84?n}xoJspw9_`c*<=Ji~ z*qpAwq;e_-oo!=}aD0V$i>~smwJ^$e?CYk_^@=pi{L21(rvd+&im?F{Bfm?)E~&yK z-E()55*`|sX5xZuIb*k^e)1$YLOT3j_kJ=enM}Ap-WtPqb*2{*_#naccw&@-;mc9VhEV z#I#5%a^T7g_gOTHenjw?qJZA&e`w084!LMGg`U9IYA5rGLG5Qb^Y%Mh4$4apGgmzo z>qZ!+Yc`a-JUK$QeXTz*)A?~BuY?>jkao<+K4Qsl#x^ub#%XwbW{X|EWZhlt?bv5lz|l$Ju|b3S!B_`63<)J!3z8E^Xr>q_ zQr9P?0DQfH?CiKVz5J*P+6=okSHhhtnWRB_r)`2cCU>x6>K4AgKFa4a=q9O zE0*${yz;x#y%T|ZGxY}fAvVr|T6pPjIc@M7cbi*s0C%Kpocq?t5sQE>=1zCCH$R`L zJm%qHd;YUy3jz>_(mdJcy|zOg;0o-S7#4Y|xP+o}6@n?dg(NX#?9_q6+f+UOCTeYV zAE;^Kccve6QmEMBU_$G4H@J;?eJHZy3>4L@XhWyAs3kgWH%@7Ch%q8-flE)hEXlL$ zSZA*Z+n*+#l=DwXNO4QI^^P@*5Mw!_4rG^w?}E&cTY?@+DbCm`&f~NWnpiKai8sq` zsy+ud-<=n>_HHyV*r(}mYNsZ0hp@xTuc!Dq1+nLCdr9x}q_Z4zlGMgQ&%AD5=A@vG zGySFT?ySAKI~?#)_Doe6Kfi;EMf(o!KXBk;lUH7R%b|-bd9zG&=ujoJlBwn~nlqX* zoyR-;{Ia=`Q7s5_!$AI);zLnc5lP+@I%F59h63(rR~*bVF}Kq5ryL&LS;FR+B~9T^ zMU3V?t=jrm@|K}fQROlZ6j3TGgad_SZN$aa-`u%fT0Wg;*z=~gDGu32+vMXKILh^v zP-mYVm<6!?(<6qb)Ze$i_&XU{X)pry4A+ZI$8GY)^~d@bW=PBOo|DdIh_%BW(SRbEW2jSld5cYkcTO|ScozjuKq`$WmY zXaI}F5vf)tXzZ`iAH_{EJA}Jqj+z6beyNZbiTLkQ_;H|b*)X)N!9CmQqA~Ry!FOXe za&LR{3q%*^?8|?sioO4|%ghtB`tf>{-l8wy(8HUBAZy-GXJGP}Nm%nYTq^3E5`Ea? zOsxe-g>@I*wok$oVcott7|g3P_dCK4xvUBev$Q&~QvWN+=BZ5PG8LUF3VVhJ?nCz% zl&r?q$@}WvG)W`;8(XHQCnown6rEF&rRUG?&pu_IanYtnO8s5o_&X5=TI@0&7|QV* z;(}M_B58M*k26j^j+~sCDP4+7fm%mAt$ps#e(=0m-Y|5kwaoO>UVf2if9}l!lpyNH zV2{nk%D?-!N)DGk&`^SAMcZZE!mP}kdk1Kv;X3MO&N$bsyZq;l7jVgj?1O#30~#O* zKgO--3jPADH|Tizs^1Ny>k>t7%KmKYOz+(nTW)-)>(7B%a#(cUN-f1E=NvsHfuT`k zlv{uCjVJCVW9pi360|vBeauk^*u2PozxKJ?(#O-0^<@>lp@qaQ!65H5*!ovX9e71V zvGQ(z_N~lQnb7t!3^X-59&{hM^EY!v1QoG-W^bV+pAI*;{1&bDXW#46gOk~VgP351 z>-dcV=ywGrMveaLANru+OFG^uUJIK4kP6OhfK^G$O4 zFH`Ojhs|%?+3X`?^niXM(DQR4^2)SD;Y)cnnW;@>!9dzMttM#+?<3eOyx&5w4(2Zu z=yQMGb~(|LGJlz>k9hfTgF6azDT{VgMirYrWpSlWes=qmMe$2{d%ZBAAU;WoX&b+& z|A3ad*d@T)%RA}X;r6@EtXBpWP(R-yZE3T=nVKaijf;pvf+ z44J1(HrJswn%z5xbEYgxb45BaYw}w!?rU;m@4o9LS$nK{+LM0p%>2)~e5W>f-Gc5) zrpTM?-2;p2-Dh$X6fnN*khBb5dzJl0=~eR5(Qy^2zeE#JY*e&~eemEbd6TLL(GN9D zj_Q5mhy6-;s8oVSw*064L#8v`E=Zo;IW_OC8mu@iBDi|AC~let?c86sR(i?2=xHac zpPH~RZprimrtYQaUQe;hdsVTqP<^vYIB$)oweOl;qQ^7J%r>`beJ#e0=2Z`&VeWU6 z;ebH5o=*;%_76t=1hC&sp2rp5OL6j!F!)->%2{n|Vy6Wljj)|?-7a03-RWcd&x0oh zoZ8$f|BojMz!MYQ?w+?Q)D+?${3Vmr#{(?)`iH-kKs&lwD%ttV#9{_ zQ=E68bq~lIETQ}sbddD}Sc1+$lQ--Cv4jS&1k}%ID=cUU(5p4onvVmjTTeInE#V&| zVApLgCcv0ja3~x5NqlkA^0<^ZT%ml{n7zoB^H}$))z#M-N2+X z%CH?N16A8M)aA}h@4Au)#Saygtp$GU)1@epCGd+mdNTa$Gj>Azdb_V`{FxKugf2*G zib%ZR(igh+TZ6gxjA0z2KaGa?6Iyd%dR0E%m0n&;c(6*engPX4?VrQ=(+Ki*6SEpW z@$#3cQ8!)=jbpS@%1EmMg=>m6i8;b7+>9SmMs|Cg*ZHf)Ui{TJ(frjOjA_Q~#57}O z0*wc6ypDV9J&T^$;_E6yd>4V_S2^_`hv!46bs~o4q^g<~T}AmG)CA)sBZHlLNw!SiquCXGn6MpPzwacDlD4|+ftlGa z4O&wd8;U`p%_s4p;)Wi*o)ds*AF&ATn^RK-&DEESnUZE3aI*bt*M=&qVK2fG%@es; z?#si$%Jx0lESG6Wr!YudJk(X@mtQRHvBL9k+Vx&k@NzJUTUiwh=dVmLlAP|t9C#xy90njRYrzdaFwra}3_?I*QTB(mz@lv2#{-oKi@;bRSZ( zN3c^lHYTw{-giy%A|=Hyng@`hr_80roT9k(l^x@zcP^l;x5_;|2IM>xGjPADP-MjH zgH*Z!lA^1HC>x5Zr&Sl}?R>HWd`@;Dwr-GqFRImlQuyN(ajxOT`?*Sg_Nmw;F1&zC zDEWdvO;Gn+vMHJ5l*wynfmqa!1N>)?ngp5c(yl^nN6AEd#Fz zt;)m>{aQBQmdBe=u5T%(+rS z2G=E?`GTGgF!lSjf?2GS@ME0zAf}cCYK|j~lgvx9<+@c4o{+?mkC*?{Zn;#@m=5VK z{}6n?Qk_gPEf3-cuifR3Sj@i-aNuyT+1WhfTE$k=|7wp1olI3M9D-Bg3!!n+Q@R7e z$>ssh;i#sdtCUv+iXIut`%q|KJj`*?_4}coJdo@(bj7l;&gRje)Y=9#Wb=P@j)P9W z%VRhU({0RYaQ;Pkhu1<&5sj3ig*Mdkf67zo>kwVDed%Hj&t_GNB`3dqS4Id@;}EU$ z-Cbycth-|tVz0!{=yfkQ2S@WxbD|=Fc>cSoUKLvjo>?K7-<##&+mMnJT+yoqU3S>$ z)Ik%yavH&h3m*$&A%TK%W&4!AoY|jVX|L^&sE`m7yRde zzM4_EwFa)V$x|rn!rZu4Tl-hh;PW7h zufG^1i=ZhZ5nV#GDm$~Y^i0x)H{~f>){y0ORWLJ-r)Q~a&9*p+(;V|J;3Ls23Q=Ao zY6n|6Rm^Ojc3@|vxMyyqxwj>|Gi9=@S3!zf<#BUhD5AOdy|LGYk->TZ=+fV24_Cy& z{+FC$t?1>JBt?N0;z1s-b=da*$h}@^A~HVmNvS;y>Dp4*#@jp;KKX{bE@=;S=Q`FN znFrhtlZ~1o(O)tM!Ay`ak>kCtXpMO+3J|N+ga^XNr2PE=8j_JXb%9GD6%vMF6|q?U z`i8ZcA@Ri)oS~vG=6Zak`*cT6m3Wq-pdqeLJY}=fV@Ov(N**sp6HXxsd?&>hHUya4 zVAkQ`|4aQUY%nahrT4M9A7i@cunH#T?-=oY;%2bz4ncn3ACUwA$b zW#27_jUs_UCGuX;pV-BHs^l;Dh5xm2vY?RB?q};?18)%e+jY8KEM_V@Hb5kC$^E_A zyt%Vq3?KQl;Xj|@NMq=^Zpkdy9$=0O61}+zQ!r6pPYg8kBloITEbeDnvK&?1!Yw7O z!Eh`Ev9F zrp7sBtsGa~-+tB>Vowa}N#QHYt4+WoIW5DDx5yrQ*(sr%-)qInlezVWoiE5LKv&KTR6E&YXtBWa7nA_3I^jW)sTrlbxS(6f! z_ZX`q!IyZo+RWpdEub+VJPo=Fo!4;2R{BA!botc6%obEjnX1^HJ6DM&ipX|h8 zHJcQBV4s`NZLwV)7xEeuzDP^emc=$G9T5eihoX0t6^5>gQ2(Tg&^iZh7e}LWQEY>{ zC*T0&34hDKmrCC+<@@n+q!p`>M0sNfv(bV^lj=X3*`rmrWztX#FJ@xaXnTEBlA3Le zjR3I0XZnNMnCD`fcE}H$8+BMZtgflZKYEM2) z-nY;src*UxyzZH<*ik2S~XmIAa%1pa^Mk zL+e`=;$>ZuPYWJBF;7wzX$ zxUR!X$JKw4?pk-*mrjMHU;YC(V?u+Q3c|w2$x=ikfinxIIYB$_Rf&~9*G3E2I}_w- zK7~8!lxlFCrUc4DG}NlD*BW2D``n3DvJP=XW^Lq?rcEU}@9xRD*~dtEig`p{%OBfM z6FaR@Ur-PXS`e{-Y@f@7*cD#{-vQ^-Uz#gt0?gwIdm1+PQObVTuE^fNivhfkVanwO zrJy&AEqD0QsoYcY!M0l`hb9|GJ@r0vKL#qGokhu(*+52e@4=Ah>R)sY$>l_rZ`cSr z%A$NWn-Q6r@DSg-`MmuG9j{--+AL4FOiKTGl#%6MmhHYXZ&!NzIOc)`%8Gpy{@7U8 ziT!|9dSB)^e!>NBvhB8g zx|e5V8t!*(oeIrj?a&HK4mqSbZ%a~=4V}zR&T;6E9&lBFH1(-|F z7~(YNQ51w5CX5Rxf% zc>CYo1B3i>)_`35I)zfo)Sd?A&yFA4;e9WuwFq@BW4~H0Px*35+ z+6%`LkiGqj4i2gcr_`2L;XisCn53v^wtO)%!LgKu6KNA6Evlr z{I2;Ox^ij<$QBeG-P`==fPSNF7=6+oty0Msrz&(;o*kk80;5pC*Pk7z$ zS!l25(le?m1O;Ic;b3l}3V6%V(&G^$LG|s?Pnv@GymeJ0W&KJyz18`=Wt`A(`uE)O z%6!6e6U2C{Cx=z_-K06X?+K49A=aZ%WgQ7dnJ{h#PU%fHB8+0RWfs%3d8N;38#_BN zP}BjV$0|j7z|~rwa;Yuwxc;Q-X|?ah#IV~vkJ7j3@#VgYT46TFyb3(9t(J8CacCCc zwVmW_%c)v?PkZ>oQFuk1PuW=$p-)GBr|i+lDDsV1>|Wr%JffC1J7=UE)*xS7*pYep zGqIR@nl5da?mD3Q$KNQ;ierr?G8^_C;CiN(UVU_>$@k))D&mPQC*n87i$n4XCtaLe zKuuRcR#}5x{xRlE(K==1jT;PY=Ubh4Id>8-Th!a21v-!Kl z{+InD_^gz@HdEw>y&Y~QFvGp9lu*svCec1?^D989@VjXF#f;l|@L2^M^BlT#p zt>9-hDa_4-k|+a}cEEU$T)+OQXoB_hrlt?Ne;8Snl1NUF)R>OE{Fw33aq)y@R^R$o zN@2@GKyv_-^bb&fC{DnD$}sKRl>}*~{GkK$4UX2BSm}Qxk=S-;$eBawAQsP2!ecM& zB#T20r*nANAQxT|LYQ$yLBLQit)C9_!a~Heq1azw2azKm52GKDsQr-8RbuZ`fLfC} zkmm~M<{n)p$|lrT6fE=JwKP2Z)GubjU7Vonj}b?w%T+}!wJy@TPH<%!It5gxX(!q- zy3yvZvtWrcg4^JXJR^H{9RYdYd9ksKcw51Eq1f0HC|;N^UYRj$nwQeeUh;_PD;B^SBcG;96&Nod#^z;jET-T(uFp0(~d~_jk%yx+U*oJ zR@cjKFD8bCT-{1O18RKYU*jH>vz+t>Coubi{1Xs~`z}1ZP(^3D`0?J3GD;!B{K|50 z*m7u`Q>K>6M-QC9N+Cy$tb2AK4xBC`0Fr7v`diIunrh^VXOT`-$K}&XN<)qm##hkK zqmxAgQ&b3v=B;Ivl*Jn_n0qE~sW@T?^EqPNfei~m3$s>_AMOPMc}1C!(%-`q0f)Dt za$EFZwy0M?>C>9X8^I1K@WVQh$n=kWu$xPNP-S7P9*QyI7~OGCwk^FRy#G z*xUm@H_tHMuK=pxKGAGjYBK%UbZm|ul>2!0C);P*l7D8v!?;$^GA}%w97N1nIE$z0 z9!dth&(RB9S3ueP31rS+WX6D?KNLhKjFK+aOEC4s+i0D+ny^_XzzS=^lU#8jR@|j6 zjpp~u4W2m3 zL?RDXI6+RNNWKKX9Jt^TNf<7 zr5#So)Ne1P{Q39qxtj&Ihq5LnH7;|{GakMkGGc*+iDp{93AK@e1f`nvyN0|MqfegrjM$7U4KUPimoB}#l1eu=k5)vO>X6<#Bj2M5XzLWD z(c}+7N%Qd5 zo({Zbp7*-z_4R8T$~M>CSGO?zCKbm^Sr2RL>rS=gG`GsD?Lu~SyH0*1x~M*&)-J_K zbpPwX%0EbwN~| zN=~=9zj)U@$48Q6mzP;;JD?nyv;~rU)65F6ZZ@CxAoP8!PGZU4KhqD}@<&AH=D~UK z<*OHJHjM$S_^YO$xQjTLIA4jw)a{VFokj$g_L+Ewc{AiOYMchq5w{-@B25PM*$vpb{xRL&q)Zcb;Vs*C z!=-1ZAKWiE$f8+KqgKi0VkU8iNUMPZSHjp3fCga$#Q36 z^FYLGzhDDjWvHoR?ItN|5`Z@>4b(hP6LoiU6H8oKsiL8bWJ^KmIwEVA!FcYl9bL;F zlE3e1DyGq;QunShZB(mh&`KJK+@A+nxi9}N#2MF42}^!V>$3bRH3eM$+M^y(tG)5V zo3WlNjH`>Kr7$$3qT1Ss5eQ5ss=(-@%nQ9x8?IYa$JlGWdR^WFws zm+E`WtH@M!#yZCxLAB+lUjq)W;gD2pCFh)}tvJ0i3o=g$Y$e7K>0IhS|4tg#?%%=Q z(Rm9(=R_^6k>&N3HOhD|-h`d8E^sF=03W|fl6orAIJm?7Sq&*I?E4oylaEZ9Z3f|I zSx}_2tFHJ~l=fL3>>C|UP;XinlT1f{ZW|OqkfH3=j|h2{<$lENXUg$y2K%hB_g(_r zW!J-aol2jZycaBq`-@XP2xa+q(0=eRZa_H?CuvAJsKH}>gmalLdksc#a^40P0r(Zx zYD<1ZoR2flgW?QPGhXb;LU$A(q|5Yz(X%7oA_D9#o(3?UZAw@6zn*65C%U9TZE-%} zci3~?UOh14a#T{2wms3?>hlm-@iG<)d$Xc0(yLU4t`ZR{m8I>C&E_SSDdW{iW~Lm& zGvR)kX!kQS;tMK*Pbt56c{$(eL!=T4S}rWDb`l_kE05$e6U?id4rq5dJ9#1j2rf+c zE`Tk3L1`KvXH)#Ormo-rVHjdbh8uvS0D2R49p?8(_r$8MH{TtzXPaI<)^PM>sPC?a zdOBK9ih0aIa<;h2Qr{pqvi)K#+O0R|HNEPRff{v~oWKE#;eGgUy5iGGuw}n6w%^t} zk4N?j?x%1B@oCzOTZAkFmCIxXpQ_!;ghhJQ>RTwnc?54VfQ{PWIZy*J-qO0lNm{n_nE1YCra5{C8j>>D3??IyQ7t?}GA~ZoY}K;An_LXP7|3F5q!* zN<)PTGr@0g_qG1XMPyg$*F12-4i<5SYh?b?SFz<+_fWuyl#4ze4Wm9hW(R}W013UF8}%%6a~=t-F6x_4QfoiSVLWGs}OyU^SHw8 zukQ!eNYm-udivp9unrDCH>C%1myrOH6ldQlAjQ2;BggF~I{TgJzb7-JwD%@5lJ#SY4YCl=(?%s)==!?tL4uve;y!cO;8$M4XYEg(_{Ey~jA)9U^K<=`Mg+cVO)4G{7 zr^quo58m=ts1Pps3tmE6ePMlO@!};7MJJ%jiL?A-XsZt;NY!$D;uo%0f<8|2xeXxY z!epRtO|*wPHR6SqQ@VzRl0+iOzWh#sE$p0z)r2nxZaC3_=d%2cmLqwc58sIII@U%S z{URh(PgJ2nJwCy>nqytKi@RzUXShs~wuZ54Ci5UWP3xV@c z;P?@m4?h1b-dKqpVD23BAw|p*;uU30IQ|6O;f1u%FNF`s<5s?Fl(C<+B?n85tRI)nWhToQ5DP zv0saZTYM#8uFDw}zc@qCZ8kSz?!@wL24&(TNAKVCJKjjs?*dxY);q4b4o5ik6){c(9_!8|_^%v4Ci9!4iS+;`$KZF()@7jqUF zI9O>v4@ovsp|K7d;J0Wn1U1HEw5EuwTa&E?XU|bIFZ5k_g7>TmXaLgV-#N4& zQ2tn3OYWN|x@mn5Pm1hCMOcR|_{)AnA;Id5!P`#$r%5#>QrzTc2OcOPmZcC66jPLV zeWfkTcl}t?2Ec(>C*+I2cC!teu=qSwL2)e<<@^*?qg}(F_!nt>2+$kU*p%2G(w2A8 zZ0OqY`S*r2aWs=L|7Y-vfB7@8p;Km{sJgj4R{cMCGr#pM_#{{S!P)uue!lq}>;Qu? znFY(+?uC@dpPZK^EZcw)pPy^doE6{x zs{U_6(u52+C7H9Wpd_F$Hq;7b*`T7x;eazrE0v?YPPqquz)#Ubr+_I{hFPBdqvEr3-mTx3>`_PkPbVsVFA&K}hnVKrLl8W#_OMi&~0 zB&Uk!N4E*(n*v=6N{B{Y2J|Vak0!ivj3UamZ0xXL3;$_)6{Qx@gn%bLZ3VT-x~O@3K|dS7-zWcdT)Y5l*#U+x-3& ztz8=|3sP2}U8}Y9NzTm$Tl{zS{K^_hT+z6}m&oN#>Wg)f5-&$gOnK}3=99j(ZS7|Y z-}r^aH$;&No!z?mr=Yn>L3{=W!G~T)E4X=vwcH5U9m|oChZN`uj1Rp^;yX(EsO%{& zgQb8G;~|HQ8O(@@B?%V<0**U8VsoB&08h{5$r)9G7JWbnGDff&V6iz|Wy<5(4AcXX z7O7G29Q_-Gwlq?kNicj4k0{I$yM^YvL8r~|PJihnidvSlVyL4i@;Z&XSb?dej=}U! zOuov6a*e>~-)_-jF2JRb_}5z1k|pD>svAen&&NE_o$5+PgWhGw@Sah_)1h2mxPA?iAevM~LcDgaJhWNzT$q5)@J-Ci9{RR&7^tb7rlT<1Y%tD}q zbzbA>bK#P0Yb7TT6|yVl!6E59{04%1Br8%#ZNlZ+y`bnaGBPvx7X3|+8B`G2xf%td z2V-~PCMO2acSr}cx7pWN)OdtA!aX3y)I;;(`i*qoeC<>fQ#z<@LSlj8{z&HcAbLxX_Wtvt-t(zyw_Nr!W{_89Ex4 zyA=H>J#1u(2{fP97}ra4jF`eB3Y7Lp&%|h|qx$flCc?%?O)p4HabYv3HUsrT+vzuWLOBoRwNR@} zWM@xP0RPdVmkssDKHb?NKmz}njWjFjSyBIob@%L&n_Y6VOYXm7HqCCm*{wIb^=7x8 zR1f@@JhxdDG^>JURnY%S6;zwfBb^G~WC-mEA&Nn>SCcGNayMFhz8J`@CgK f?xFwVw_$7@j$htyqbMz0!0ablt@nH%otB6se~fQaVknG6rph% zk@I14HVl*FIL=_0#~hw{_C2ybtIubx?`Qw^-oO3V-v9KP2KRH{*L~gB^?tvv>wX>_ zGck}}xO$<4goL!=;e#h6BqR|DiMe;@&j#NtSRA-ZLgJ=`;lcf(Xcg4BGwCC zzH$9v-0!xEecfp=ddR`AtQ)N3jHA?ZJfP^JPu=fem)fMkg9;QR#?r_&@CEf?h#~s@* z(pf-Q$gNynT>?`v|`}0D~NA}} zd4^%Z77=}^PTF2ea4ltjE`DsZHr`mul#_%U8?0!Q8|w~wG-JBe8oxXDa`@|;MzoB_ z^ny#QUCvbm&WkBwlJCkujE?L-6kwpZ;FcP}11i>Ai~ooE?_R z$y0-N({$T+k|P;!@H(=Hj4)Ukrrs0TRoB!Mw@DkGb3uy&LN-#13JVWpE1WZF+Bj6d zn_X4YN6IcV$~*$Ee%RR97_VBYuCDIXkvlm+U30`qK`J%hW8*nh%E#;C2l`(XSf^V@ zTN7Q_CrQ4VmI6z!B-1aXTzQ}N=(v3zSNPXy;Y4{&GfpIPjd*5n)8zuQIJ1bU54r7L zqZbWo(b$~I+NJlLj*!u+sw27yi^J(FoplzyE<-fb)obE(-I^mApv$B_Ws0nxqwB)gPGRq2=H^Ze;Nd}8*>96Wfr=(IvAV8K zZFfGTq{QvHvGp6vmKrCu#W&3bl~TS^&jWT0HF8#vQw*mz#nW-LO?gV>NK|6~AA1jT zZ-tf~HQ6vIcUXzm;x&B`FJ8B|AL6;?o4!^RT8~_fdXXTn8*a8z*&wTV5A-h z)1$XgkquV!(J;KYzO=4BP}geusnk;M1v9T^_k8NiO;_p1M*7_q9AJ#1s{1mgwXEiM`eprgh+p^{* zHh77RbOp|+RqwHa$c~}cS$m@MB`4tF*1_^=8xGnTkkQw?_r{e<<-u12A_eUIX zlqXY37JB0x%SB6^YoDwUHZ}(*FduK5U@QK7+;B-(vag!u*#V*UfC@Sx=i{k1igIIL zCkJ3>k{HVv=LZ`VjFyt6{{7w30SJTeuw_6qg@syCuMbum>~wW`XRUEPu4d8Hgl*TM20x}Yk_kY*+HSYGjnpx$6gpOFyi zKb7CnC-ZyUVAVa6@V7Ak9Ao1E3%^Yt78G&oWpxgYl z^mS!^o7cxwfn#)pii-)kg^De)@7m?={kl;h?^JrJAgw-QXuOkRv%Su8O@g#x(o^6~ z{(6(~Vm!7XMJ%Hz+EW_*c?Pz@I-DeC+MOZOHdXXsIYG7^JFfxj z!wX-oXmU^5CkVDYcTW1`sPo!a8%TlxgGD6u{>d%3PI=sk9#NiKlPD~Y>bY9W{!KiW zh9+UJJ@2M2IGU#2YkhKDCiO-0Y1tl#O)m9gIWqLeA}((F1gTSerVroE5|5LdL`$aD zeaA%px%2Yg9@~GW@fS^e{G{s;w>?M_Gw*}Qe7=mb`2#Fr?hG_(XwU4P2si;!eKAIR z_6$rJbh><5oD{P0M;y^q6x+0a$pHg@M< z>G{08uJ0a*cV0JxaoIdCQx;dZ`Cl-gq~s3I-%1}fP3iEO=szx0iT@LHY{$rJ=YrMh zeq|gor`%A|<@eA0)w)ctArswF#_{(2^c7gQZGU2`i|&)6UUO+7#Ruu*^Ywkd+;}nr zpzuoX;Z$=?7U z6avi3C*pAcB%!^GsnGxtA9|9Efu@`lhV(YIeIu}fW+2w;)!r=VN5NNsyy8ffd#?W| zz!QfrJ5z|-4GiHJIyl<7p`4#!W6P8$4C{@>5jM;??mdu){^%;*)@mXGm07w$Ld&Zq*vp@BT1YDiiQ)vpqr$3#e z;Cc{977rlVVdWXP`%=!5MG_vlBht^2TW9`k=GTrrQij=odb-|!!RP?Y;3gXsNmCC( zCX~tOIu_kICcDXtlh&Hwkze;EZ3XUDp0@AQ)yv(tPSjrjUjE4Pi}<7;v+g0I-66Oq z4Zxak5{chZ+AC`F;kb0im&)OD+o#4f8o85M9oK{n4@wfL#rVq|<9Us3p3m6Hbj#z{ z9@^V^Pxg(x&d3OwTDeF(U^|#eG}D${vn}()FoyEd;|y-hquW)cTTykWqXOwAydOLN z+-OJ+qC`RSh2 zaNe%tGqKr1s{Yy)cSm>k?G{qvXRg{nMV50oQt9cgh5OJ2-tN3o?5|z3X6xdpVM{?58`lg$g3>(4po{aH7#q zhj1|dIZ*R=S9CJdYvdH!uk#zZ*lSbxy6LUIXy$^tJQlFC?>!eNGt45jTz4dK*yh?d zTy~s0-1JRuGA&m{E^TT^#-wWdwg7)_R4>mn@Djf`U6DbgWVGkO%)Zb7rFT-zU3s^; zJANy5Fvh=lozY7hGV`?1l95;2#>DQ_zUt#Na3G?|xq(B^{H$TTxJCECxNybVciT0~ zN87d^w6)l_ceqK}?6;pTo4E;AmL#Jo_GigxhP_5#O-zpakjWQvety2MbFYvf6E@i{ z$8}*NWRH}*RXMhok;2>@C0Kd>7qk7|WlaLNMb`G59HW}VaxliK}qLrxT{cE&itOcemnLfJ57W|Am zEzjtbHE;I9xa@|j+E>?9CzC=~8?mr|h`b!N5PTCxa}e_G92Vw17Fb3@o~nAzzYUou zO@J>_ZgE{@Y8F2h7!-B3m3!gJ^&DO^?GoZJ-#niSWUvXN%O%XQTAOQzv@p%?p|O_R zIcBydyKHiCV*i-jFk^+yWQeqd=;OZN;6rBB-mEX$s8dv}?SYXJlRn-+4I()D{N$Qc znFe~{_@vur;)QgM)FCo7^ur&KPG;y}^KD&FmSt`-$IQ+1*0x**d9N0wMU-66csqG& zLhyFK>7&^J7A#g`&DoSM^2yr+RO{ zT?@Q!^oD$oJD;dy>_^Cq+2f7LuII&dBdW2|>wVc#T5pGzOB`yKy&<`8;)(zMQh`C( zZy8Q~0y!7b@y#-SIc$+ypXj%A@{!Au1+p&atT%kx)qwVqFJ!_RWSA@!`{3#;?Q9~4 zUr4LIH4@usUf(_U`0RZ1x9xjxsafG}IDN7|OH|OL*0j~PZ(ll5_C3q5^cA6Pp&sw{ zEp&T(*wRD9dC@C-MeSJKt0a6%{i~lH;mEMyHo<|P{r zYRq9Zl^mMWQ-7_PZnrINt%BvmmRqA^x2NX*(djy8MAfdi*K8^82N~MKdo>r=$a}4h zx8XSGu}C8hn_Io?udsY?3k|S7RU*p+|KZncGMcG6g;Am6W!cz9n@e$0IrZLzhhRHZ zJ1FoYp(6OW;9;F`-QuQnGpFhVl1?PubA`c5=>lA>$gjJpqN)0f8f9+>g&1@7Ce-@r z3C@Ap5#vBP^p$hQ=k>}ts0 zj$4v%u+pH%zto|!XR2LqGRxWz;ohk6xBbx}VD5++@jbG>{mn|)IaaT^TR&_nkvQ*M zbo;VcjGh~EO~)j429QigoB9|5-W&Lk^XEkVmNnxHit!6$(=Ut)hUzRIt?1x*u1OTu zWkh&=((UN;b#K`hQIB51yuw^PwhdEeP<O@s3w1);n)K=| zWxcB^r~Kw{9^yCF)9DjqwdI%d35ZC_%O24K`(~$uOQAGhz(aWO4lW6ywApNpjTGqK z6(#Rvw|h_6uqb;`Jey82Xy_m~_!$t6`SKfQw>i+&TXssByxFAsj8acpS|V^JD(-JK z_+wW<1Q1wptNw<)gVb`N;!5X|>S&4>^~HzG#xYkH@sz6EE8z^ffg&V0$H`AwQYA zQ^T=ZV0p@%F%iu!zyIby>oOgu=ENnhMpRXWciU*r#vSxe{p*c>X61jS0O_4Drm49( z{weO9>rhkda8%4_UVeN1z-I%Rr|tLXI}8mpYA4%edwK@I!@-RNBQ;M-xa4= zb77tQ<1fBsD%7pA&PCs(FgC}=D8@Z{>#7^g;79LZsvnL^fvL7{jEyKu_IT3_~a|ND{|KKAN`fpCFh>T)vfb=r=fnM@00GOzJdYi!@o8ro1Q z2V=icZ3p|3UmJwT7u#E%PyUdSoRU&(FUFMX^gvd${oSm)iSsgZ(DGM|K#Wh^5;z$o zDNgoYqbm8+s^+d9(d)6k-V%cljX1BIv2N#gBSX%4je}cw6XYqoDzp47A3+Tu1_C9c zqc^s1PwmLf`<$7%lyY1AuouyE%8{RlXi(x#9C6DJ;18 z)1?2~_0sEt9hbajCeiR6NHaNWgI>{b1orhA67u%t6Q&5D zoDd!E%LE%6n=ZlXAnPk%Jo_)BGxBJ|_bC^2_%Qmp5Wp0$CkX0R8U0QWKS2%a7uPHoeYm)s1b-mL~$_=!Ia z@py(Z{jX}(4b2-QB(806lA65_0JB+}Bd2CBmXIh>a(X$t;3)ufM zT|&W#g(+xwkou|>5TAml586IB-Wd8_qQnGz{rPa})2_-b5)zv+KzKb8L&x4MUk=Za zIHpqvNhknXR`9KiKTG260`SvEVd9_OPrVDgZLmvyr^F*bTW{V_t-?y&Yy~*?=1w4e ztLPr@LhErzJ%txd;ZY_hLuN@_94t<5aWah8u;bg96@r2F#WQ-|6Tm~uNkYTrU@7bD z`1(OswK$3RdO#mku7$L|8j4Yd05~XKA|Y|gv`!*8>f6iMHCb`9E>feww(GxBnZOI% zDFV-KrS(7=OG%iuChNf=RN|5TNicZ-#6kpH0o47sk%e^hWk2@j(yQRVvauE~Q9X_j zkOEbnx8Dgc(7pFtU}gVC!4SafZ_=BZupd%Ol};B|Sdv3`-@^^H@=K76$-?t_6zKRQv+~fTP49_MWK&PQPMHh}c>mr7jk;EW7sWImLM(R{yq^L7q8xb- zc!TXxG6Yg%Z)x57k^onB2&Mh*PH&A<*s)B>kY%akf@<0W zEA3}dt?lYg*8!F?yvfLIa$H5D1tJp7LEPAvyixi`!Yb{l$EZP(V=5**@Ecf`X$YNC z6Xk-Qcq~vo7v&bNRs$lH)$#+=MHTnuE~sNX>X4)9dqG_GR**FuAQQ zfE5`B^>*R@AY`V~DM%E9*+Rot`z+TrQs( z9GjEp$D4X@&=F@DHobxCVXSo-q`+}5SFcL^_Cw}DH2*?^LG$XpW~&Zl(R*z@b&ow3 zWGSO<_AY{Z?*uJhV|zrM%XGDwc{`XnqCX-l(Z@v%2u&U{<0C3(Sri`Xz^qOirL=dV zso8hv6wVuhBS%Lo#%kzkp_Y?yhkUQ-hBC5_z4L~n?%v8~y#I*VfU5$`5I)`KiTT!K z=dgQeUAPN+xS6y|o74_{c^jh0DWQHD*#+a#NbA826QW2sKF-Us)bdqJT7m$LU6|wS z%WB+^`uS&NFyjQ1j*CtYkSa-jKhR|#M7EDjxqZR$O*z@h8W5G(ZW;4J=igSiXJ*lH z0wJ@>L9|bV%`Nb~2sv<$=1VZZ(qA-CcnTIC=F4og%=6eYXu; z6Fln_Icz&g3xqZ7R5VnRr469S&JxKvxXe5Z-+S=;ovbW#)!p7h+am20oK}L%%OpqL-@prx|FN+__H`#Sv z*x+!SMR6Z%QIu@S&8}jKBFFmLyAjT1^fGekE?;&J?7RZU%(J%jzNSnW>zEvcgB1NP zw)BYHn?PVMeC&c&Rm?)|1V*b{ET z!Yc5*Cl5boGN*FI(MPj_DO%4@bz_mR!{HYmz-!oy-L4MVdfI0{GQCi)Bws7!bc}%M zdh%43^7;xrx|9M<;>Ck(7;#p@Kt#U+z!49nFxxGU^ zOZvSS6Oldpz1;SVIY)WRzXB!@rdHgJO>)eN?F7bI6db!@09S$!yVMF&3OwcSVz`kpbq9?=JxDnC-hk?9_(|&F4_$7Jg?8p#725FQfqoVgY z5QMm_=s?W^UC57D8{g~dyn-q6q~=YMn>&0xJAIX4Jf#`_c3ZqZ17mq?BF>_*mYEX! z?lOyUpV?xV+8^kGzR-%ITF-y-YD^S)F~O3>Fn2+NV}XAr=IIbz0j-_varP*;7Tu>! z+*=w7mgO2lM%!~dZEbA0BLw~oHg-{+hWcjcZ!*A9pA($tQIR{o$NWZGCr1tQxMqjw zV{Lwz{t8IYCmK84lQI}QthKOC*pSy7nAjzMyV};--g3XP3no( z@MTf6M_^GmlM&rE++Oa{@p;~C2i>+ug#~1^3HLsE=bl(PnvqXN>v&n`Ee8qX6(u9p zbd<{n+%}m#sl#VEiXr&PE>F<_&UmXu+hPP2C?goO505(fmZl_-A$2}h1tw+oLm-N< z=#Y|yas`r_WjpXdxz00GkhtMlFp1Kn2x_I2mK~tbmv%4yVICA^=NF{4{dk`i#f!BHu z(iNK`jT1S^$}&>Bkm19^J?nP(wz1lFen0Jh!?knHX~vJE*>r;U**1|N6a8X_eR=py z&AlBYE@QJpdSgc`|KQuaZY1%$GO8PmqB2g%rLVJ z$@l3AH)XU;O|zXN{%j&!fL7v!$(#9@m#79>oRy{ozv=_psM_M1s=4381p)pva`iS{ z>4jabxf_*hkhY=vjr&=Y4R`uPW>C~-`GLsDp0wFy^tl)#?9HU3pGtMraFoa9s#;p` zR5$+7)dmWkvKeL=4c(i<4uJp^KV-i5p_>--*~sg|u4uJ?%5k(EJNtgXoX^suneDq9 zk95}WI*i-@)$DxnqK<^2+z8lLicx_?q*|JF_!wHRo)t;V!7Zt{KC%VIdgY>HX9gLu z0L8TXz(HBeY7W4pD;~T;Uj~S(^U2VwaWX`$%&yYL4S0PW&giKr5hU_~V7Cco%c{Z7 zh9r*YlVN7qn{_Z1SueXw9CS*<1k{?E5zs%8n^_C&TvheWK43q~QV3nm8Fzk0_yhz9 zC2O{*z`WT!vVN#XG?EoiLjZ}0LNnUT-?z`xJ!lOc>t?^^YbJY4N09Q~5jZkT@a7)+ z!b@=M6`8eV>6Uqms=H&G^)jh1^5}`T%H$udhw%;;-`tp@TjCR%6snKL&qtzN(CW6% zG)>pZ*m6XxxzBar2;v_;u(1WeJ<8h%LDukAnDLZLyZi7}q6HbfzI^MrIOeaxPxIe| zu8g1((45lA&kGZPv$&xQ?+KuaTWn)r(i`lDwnbf9&Y#Cr&{w)W9=liFC?Iz@VPhWW9kGxQ`nt0@Qw3*`dxj z7Na}0Zki@NSXhg0K7byqlXxa5)zG?AG~T>=!2JqiOhg;ZKZP-$-`T1Pzu3DwuO(zy z9mbRLY7Rtk+!fnxlgYt$o+S(8{IGw)^kjd7_H?s4fejee=Ca}6Wxy(Zsw(Q)) zrc#tX&yZ_T0vU6~drJLPd=Fo`(E`nKfqHXya`nSff$gh%$$`~zWatK7&rv!?;2D?Y z#=l!_FHB*D4NvAzbN=a#!GW_us=$#WNfXf79?@l0FBaZgx+9@7FQOF0-6P+@3BitK z945q(K1}RV$opuh?EVM{8yDXt)C*SlRkJ%9)#1c#^J8yV?6{0SrO#uC@?wms^X zBhLBjZ%ZBva9*Qg`MzL6N%#ljr2&e#q6uR$j>e@U!+BZl0Tq975%G{;#i_uSsjrrW ze@2HKfG55%G&KyXM%WCBSaZ2(B&@+9w*Hnq0&)H!EAdt_KK&$nl}P0I84~HbhzynS z1*g>5=&>@SRG(!j2`HGjihc7&s6Z8ngVWTp@2#si$htX^3XNDs*ZN5kj|Cw?bjo7D zzYN8S5a_o1Yr)5vqBcKoHke?Msi?$rIOwnWiRq)PA{lqmWQH*YYr+sPi=$Q$KJ6Br zf+OR?UW0Y~?e|O!StN(wQ`_bKGMU)iDkd(_n;1I9XZj?%PoG4u(h!zt#w5Sr-nE||w>39w8^U$;tUKOrcFx$I*MYq5Z9L`~appif znZV}8_9pms%21a4i==*EW)k(yj&pZ-O3_}^)l{{@ZX|9{;7s+0YH-k8@y1<+U^ zR`?Yww93sK(PHpwo;2IW@q6ltgTpiq#I=Qf&%`gD%t%G`vk7TyoD}5fXLBRhY|m4o zM>~+rmk+pJa_78;I<%)?pC&U(hcJr~;>kmBj`_UCCh9Uni}g58I$9m#HxWM-9Ngpo zIWzxBe#dR=)Skwb$w$~m76r6s>&My$U1D@oQwmMDNvO>GB~1MqKOptvM=$doY*rsi zSr236dI<9mygmo{6j;OQwp3I3)MrXC1#U~;dg^(5KtHa1)82+o3M1;S zA}=yFAn`imq6|kkx6^fjolNo5A=M5X+G#A$5+J|nXkv2a6vKdxh z)GxR@T+Xu7#6AnF4h>2#9dK{yljugm;#b!6VKo=|to2AcFcpX97_6-0?N>LkH0OQC z3GN?fk?x6T+k;@qn}+|qAE3`3qskj5=0fSJj+GfhftJE9$vlPmMjmQ?@zzEB&-Q_(rd-}zv$WSU?c5eCpae;zHSU3(1 zYN8f)+_zJGIwtB|8OPo@b)Ffmm_~*&spUeEgo^YpS#(;Z{F$&pmp=vUM~4o9RW_t* zm$vFRR^Bq9+E(eyufj&4K3g=p=a|(BD2)!~qSM}|Zne=pZ5M4Snjy4NZwWfl{vc4H z0#ge;6~R3D_F;orX_o;O^k{a`&B3HuZlJ#(FZc7&_0O9fwlWkJD!u!d_Jrtj*8*t2 ztEB5N8bBM!-aqj*Ldd)*adQkv$$vtZUp+_{Mq8Vq4OOqhVqXCb8(w`owpyRkBns_N za~NqfTM`_jeXwO0=s{kiNO>cerI<7--FW=kBO>TNvNPll(#X5B$6x+k)0<9 zpxsKVJUL`P!h^%M3Ue@Z`0qHFT7nE5;8WLc+i1_vb*hh_B@w^jFKi?R0WNWx{Vry2#~f4VtZ zd#lG5C~oY*O zfn%(2T2&O49LybleJA($AB^FNH5;}1;E_}SB!)|+P7t$qC@6WaO5pjWb54*?P^hkiQMTyl%D4Uqi*Zy5X<={Vt$b@%&q5*B3zlTN#t}Fz` zH*GX9_5*>c4v-|%`4)-W;gEUb48cgslS$eK+(9AjEDi)77LSf|aQ)bybNi%!*!-1! zqC8!XB{qVAM#9de>$}hr4L^<5mDudyx@Id>#;Q|lm(P}aFL0pW7bz;CHT$N&#Y;)Z zV*c^mhtetJ_hTZfz1A7)X_!jd#VlGm5*EI`m+FM=`e7$)wYK^P_O66Zthpj7A(7Av zOT+qPa7amb5}gt$pzk}oyjL{vVZVQ2Bn&+rn_o_ta!uUg+do-eiukAA-47_UMtt)% zwGP~fdcW&FiHq9*ylEK~2!%VzI9yMC9AMKtk$Uy9`}`B}vl==(5_fT=h{=df%6dQK zJX7voeNZ}C<%!BG9AoI%ROHRv38@8d4r=Z^)u7s7i2`A|FMxkZpr>dbt1P)VHS2R* zQsmyC!iT!8vn3wg{{`BX#t2B~=pQPLgI;G$b*vBl7Xe5L6~o{o+kY`vuqq6J*1sZW zwK!b;yO3Ci*C;pzSUEDZ_G;bfP(ZpRN(@=lr(rYIpUX8!*g^~P_jk2V{x$610CY9r z6}G=;l}ss04bXKXBF^iHiV9F`Vk=f<+kb=lb#%xsIedWP@^a;nB2HP^y*-+KV8U4(L=E4egaWhIityUD(K86DcS;rnCcA8lqdfN-PeHHME*yOr~>Br ziChKW-c-=kr1!IKcw*88Md2JM#p9GK%CS8CMN~}T`H4)=h;PNU9xvWrllMzP>;n(h zC+L!xRENbJ{ImLRxO0b{?%hHS51mBWvA@#JaB9W-Q!bGBdfiA~*YC^@5QYD&q`Ec$ zA@jWbVv=fLbeM3X)c)r!isvF5uG?}!UG`6k_|8JibL)@%;btSeS|L7De|q~gEiv%j(0U-I$a2=rgbj~56C zPjmdn4|db5r%d0={+HipM+d1+>}q0o#gEl?kENd3`R~=`zm_1U4W|}dM2}&0I?h6} zsK@C){=L%u|JX*+Kwa7C?eCsUZof*msB-j3`qV@l_VB%Zs7)rEPFna&&HI;G9cQ7R z!py?WdBRAq%3~2&wH=n%O8H|&neJ(#cw@6p(TIMxTi^Udb|s<#?m_&l_x^|U;k1Gb zj%!KX`R?&L8~+bDUgS2#A*okraY^e5Lg$IgBm29rvO3PNC@t>0%DE*1_x03{{HR69e!cNR8bk+H0N zK|3nTh!`WG91@Wi0rdvpgvWgivYa7-mK+Asr0vO%HygiiSZv=m#K`&b9o!9LD;kIp z+*Fa!{P?CeYfSWT_;7R#rf>{sMO}M-XZ5)s^9Im&Y(Md%X$FAf;3@GIWrI{Z|9PPlpJvLeTyY%4E1Dk}=UoMTE*gzqI)Qy5Ww&Oc?!vssEw7noZgkK*#Y`@fU>hiCR86n%@E=`5>lMzqqO``UU`&+cCMa~B2c%T-(m|5roPI7ybazYg zS_eI6CT1M%tCSdzE=T74dlUd*0v)e7&$W3fP=rN^=maTxWS#EXE!YKLk#);q#Yvo~ zl>zR^G(|u>({az&;cM@a*6by<+v4u4lzE}+MvM=ixpzesG#>%24|meZ$OWAs_$XU$ zm1jdctA3k!5e{HK8|y*EYH$4yr#AvO^$h)@$aGvD*^z}!9ntDQ#kQ34EPo?JDBEAC zz#%qsja@of8DzR+#i{))hI}DJ_@o2w`}HbUA>d}- zxuM`U^A;euZE#}UFMTej%IT2zm603<5;9Od?4ruCyD3`EPT1n>ai929V9Op<-HX@U zfYyy8qlad<1;bSAM$Pl!Vjpcsz=Zw0y4_%fA)Yo&T~W_TLml3O1YI88Rlx4Zi>4w# zdWD4|8QfSyeu4!~GtALJF=!NAH%ZjxxxKaC>lClCnj9&S&b>oE0{DWSr&0rR{XZeO*T_!i|yU65Jdcuwv;|I$s+zh@wQ=~i+iZOb!l zqw%w~cWm&x%xdf9SIDmq*EuEXxO%6b-7&P6?ti>Tgw>)|AcWI?f@6v7ta{XhMM`m4 zkd9_4^@z%;`e~6oB=8r1&xlu8d*ygJ9k)6eyPd7J1gi}zYrBA!g75bFFWlha_`80$ zC-fE!Y`AwFhkJ{2v*{761TA>W2E0&kk!P*8SO2&2le{s}`U%`*jYHjMi*x5_6tvi3 z0&?p+YqdEh+nduQ=bXRtnckY1d0#;X4i6LE&EK&*|(5)5A52 z)m`bf(e&uyP@9SJ$i!&z(ybX28rAZO!)7fvLS@t!ubqQn)%ITOG)F=n6Xh3fVv>gC zGC_~uKqSlyWEXCBLAU%GSwV@!;K8X~uydy5BwCAwl(r=TC15u#2`zHd#0fh?{KllP zzJfN!0z)6oK$F$6m^cA5UMQT8TunXIuzqQm!1`#~4J*$BXSjsQ+a}2Qy z{Z(3UBmv3CmYW`6VbWUl(w%7M=ZA`9OwXKAkMLa9D-ZAq{w=-$Z{=jZhRA zs6pa2fJ@8Fu=N5hf;}z;<2E7gXbe-OK*KVD!M5b8M63bTEIvK0s8ljI{W6Mns3heyP`IPo6|`L zh-DOR5Ch3`n}Uw*d5DvP6NwVUyLTqgxSPjl!}+Ke`q^|HxGP%3)AQfZ6S4@@aHPoS zShwQhHNxSF3L{+@51KbzQI$rj7Q5=6KhX9@pw8Dd5Snb)<3ZILVZ87{-%B{m$v(5){m>q%6WB+&!*QI zOj?;JKhJ}W|Mxb$k!-_Kwf7#=xK+VUf{{-Y(3o*zZ~5#UqyAg~ZmIu3Ghbfcz}cNy zo44Lxz9NgF?m>7WTQ@S=&l74=6h2g;JN9$0`ty54k;&==U7tzpU1qZBHPS*F(c|b= z3Nc#&iBCXw7!Z6X4|vI^Av#GG(3tt-e{br`v9H@X-Da+0VmN1NYHT@G7Z%29d3rn* zSVoaRtCq(pKP#iSm7!gQw}jyO=_JF`Oe^p3BAO3(KZl89=qwQF?^urS4QVR-#<1HH zhv(T6j=T%giR|B_r1aiDiOBs>$eS3vHNQiO}B@hi`31~L!UhXl`teb2<{v@L;TM7RA7l%7HlgSpRT`fb?fd{&e5z>VNk z=H5o;{94K1#wDqhs6~<^HGu*utMwYIaqfTAd^a{NPaWlk{|5^8Xh?{kzJH-&g5#*- z1m#3(F5E%Lb3qdpApF{RlFo!n+WxENz-kN-)kd#K)WUrI_-?6cu53sC6S+_MCqW>) z=Zizn@@{G!EhrjT8RwlEzw%-B?|fksF?2$I$B_`t1%*}u&sP(B4@_t*#2crEES^gg zP2`EX=B(C+@iBR{sU8RWxR}r;#SXhFix4R3*KSk$QH8ae{+KQgW_vpK0(YVi1s)_i zS`t*8Nb=@3Xr+hj3KIl8p&ZG8o1!UX3zEO-ri)qxS@^YbnSmEfeRMN||ESE&HVpa~9}}g5oS>W{w1s$k4=@FoP z(5m43tYcr;4t<5(Bj^xF~y^3}fF>kGv_xz?`Gbc?daze{a}H_1?wFFVzHRZ4cR z=-f+a6Y5;Lga>VswqaxC`V)92 zZy>{TgX)mU3GhA)&>JNsvx9Z%VZ!Kj-aZ^I$8yhzZa_7A*XetW30hvm$ymVM?yA5@HOM2WIP_R?FI^Ezf zyWJyo_=r|#N}?u*a~A+ijTn9Ok#6IA*G&{%ih>e<`ZWcwup%RW9n~f-?99=pOR3O3Ut_ z?+yx2PN;pZwzj*e2i&s%m(C$B-U7d|3)QW8(ydjEq(AXdOG1W+FIfGEi%s9$`Wk;J zjcefVbyz>7Z&bS7<~rPWXu;>Mo~V z=luB8)Vwjq^2>=9>CqB;PHlBU;WOG5?xjSqH@7hwVMe7>6hAkGBrxWgz2p4aA_EIN z=x#W3=1fVL039{Joj*@2v#k9&`NsF5^Q`M0Ju-V%^dHLkBETRHY>mJ~8CWTkp%oLh zMPm*MaU@fUCVHoj`kVyq2eYj5hB_%csz$qV7^`d+sXqO!%KI`oNCW-nm{e8D9@{-HSJ zynVYOu1H-nByZ&_6ucusI!&p*69pnW_jpSN0ORajRl$QqZmf^3`i1vvypjGXSCqnk zPl?iTT@NitoPKRo!@6)ag)oIH^olj&%9qn99j%=l8dA>tETX#(QFYBaTBjxwvDMU4 zidn`CboU2uYngMenXvOA9k;OFRyCdTbI#PUqCE&`rKAz0;)NCqCC3d)7b(&x7@NnA z3Rh*0W@B)i15c-H0XV8hKl*l7WPG2sM1Mk~l{9C5rPUP|)khN;PeU}|Qa>5ZBY>Bd zG>6Db%WN$#uCm1m#=+bJf+(>Ruanbn%(^ye6!r9mlB+Dx%gG?sN~Y$9hSXM`l_QDV zggK`{%jWbg1KEu*1(1OEscQ}A^vAbzeuUHjOAmYT9>2td3Sfqk`C^?vK>bbEw9|%k z11>kWdx2G7Y(?DTkbRlUqk3#i7+MbK0QACvQL+LcdRU*(hp1GcMbzBK4VHojia;ok zC1cqIJ&SZ;{EqXX{#1FNz2rxRJ5HHol!`+3!YB|{DB}^1Ki~5;@;UV06?zk0^{1^V zyIXJ(FC#vkC!_k|mv79FW0k`!M*pJAm~iY}-9O^XkfLV;$}Zr=Df?YeUBVT%k$hKQ zve`hu`U4&y?v(e~rg{t03pc!>y0%I#=@kXB432OR2WX#Hzfk?;RnQ=JSXi_Uaq9&U zbl@=brW6<;JUpBUQ)F$pfHw_KF?nP+p1vsR=ua1pJyZAbQCk#2;ol2c;5g#H1-n2- zMxgl#^qmqOq#kHZYu;M^+Sq4Rm_-W+bWbjD56T=MOrXMYO1b67p9ef6$0#b|Mxd+n zKUX#yD-pD_8B&5W-u!e()*ytmI+x5yziU5CDFB?%V|uAqr-)XT&%CUDULUW@70h`2<^K<@1jSy z_KD;oc`osW52O^!uAI=165w*(25P%5od^mK51J!6F6VIOFt?r*$o^&zx{rel661(p zzSOp^TLY16&stnldnVr(B7T?7zb0UBa8$G6l@A%M)>7iV-#wjDP6zOX(TO#dXTR)$ zCc9pLF`*DTFXMGcj4N$3h8c_$1boN&nw>ps5|0AnKB2`)v%FWD@CdB^`qcHeB^5?z zy*_`L`jMPf=(1n30Ne|xo`7`jisUrTKY-HqpOyXa>m0%RMmxPy!J&hl-JWT^gnaIn*gyr~`hQ~KpNa>#EVB8@V6TX+ zOfR!c{^?g0&FKP+MYb=(lffW8VO0IehI(a-^Iy0X_NAe{!eB(n&O*HHNwzF8e+Nkk zylM<+6>3^q&3UKa6MjVEbrfOJhnGyz(8!nwqinv_0^+;*5o5+d{E;!MwDKWMeUNe1 zUcHSUAvkF@Q+@p)Muqq3meZ3s9Un*ROpn-M33;GjL;B`TD%!^p#=f)qcuxfI&L4-m z^ld^(7WO{L)<*$;uzgdaQi7_mhv*rEkBQ=XBRVuqD>~KbA!N5 zu%YCHCP2}sEO3`MiCdEV5;=4}x_5D$(l4^r>W_v7$>+VEPuwLE9zNC41%d)f1+qe z!T#q0sLy^{>Rm3ldr!^t>PL9?Bx3K?v{AYgsk+H_@mlbznL%Soi?!C`=Hn1>k3uqr zft!$gK4_cv2DJWKBN!PCAEv1DV4*gSjk~r@XShd%iI9w<;eORxL0e}0!5-1Hx!$b? z&r)$_K9HB$n2Ry`(E`st7;^(kr9-Y&eq~66+`xF>yjm}`sUo?z#tVhREH4$@LS3M( ze`@f%f1+^Pp^RpRHe}UVP81Z4Hx6ZmY9cKE>&`B<&o5x_g%6a@4h;%3x4?O5^CCY` zeBH-XNjfpOwCTgO+TC9b?KQRa8!xxT)zu(OWri1@OzkN`@Y=`$Ef^O{QL+S~dmiQR zqB+9!<@|tNYhqdqNbof^kxbhz;Ak=*l*We00w)IMM_qK(JEVvWwx)*#;Nkxm(!LUK(kD${I`esFF}9~93;R~24OZoHRba+Ti}|DzHo2N>s!Jw2ve z&W9_m?i3_CIp}k0FT1Y1wGmOcn1z3~_c;WnbVQj|VK0d_78M$QDG-p{ImH*@vg7#*O zOBOvD=!dKrK8*Sdv1^-dK05kAUwN6jg!0C<^N#Low4NLBU}(;Lv6Q=wD{XIUtlV-h zzcOsat-!5|PVKo-SkxuF4X5JH(;icR1C7iHXEJl9I(svFCwoG_rgpq}qnr%C?)?h5 zt_qZ?Y$JhHNvv=O&p~(Vibv)CdC1Niu>5cG1zerwdFa>5Eoe|6c3I; zh4guNQmkP?br01@EVvD5&1qXa{K!od&x2wfweeppq~lLZ=C~Xc<`B~87zgtG5z9O9 z@-fuP{tRSBN6^2m6OU=|?JZZWRZ)j}hHs^uj}{E}iHN(C_qP+6H(;@wvPz#?`L&{S zO68|P!O8g?gEvdea=;VU@4GQMO%B)k0v-bSn5I%9;49oYh`mplD7&^xjH@yz_;_N| zmdIf`#BBY8@w}w8?ApA6wD{Hk5bPncY%vCG`sv7ZDtTk3BAA3H`#v*nF-YfL|t&|ErtdS?yk+^FP=^5nds z;(jAc(Bmg*X_=zp%`c8A{*S)~$OIrNAT;}TwV|*)SS*Hh$phJX9hU!kThR>c>W-t@NhE}pf8fAmiDhhBMi%2Zd0(Rj#Y#`GpX z+tSLP_x#B5UH`Db;9r{gJkuFfAgzjzzpx*X53@%0tDhE{RgoMNTmud!kq3Ew{{G*xAb;E&W&KU#{dEijLI3kqA=wKSh&m(W@lNki=696evBoErK>K+Iec=JJl ztNv{`MAid3<=9=bSt5@TvKG4G*;X~J?&oiE?N?uXodrPmU_-!%ZvUt7A@*V7U!PFS ze{0G)M11;d1DQ3au0-^VHQ9X&GyiNN z_g_JM03Ri!<@l=;|9>T>{J#_ZK62rh?TNvfT(9wuWnWUwyanT2xWayS5hj^(JUE2k zLGAgY??`aILv!DOr4>B8EmOK~72R!?4F2E*h!yT=q;4iyoKToeKp+l~TKVkg#T*&! zLBY$W&+)pz$;s3C+0idR2^MEB&G>k}pR7U0jLY7sLzy?C$G@teEvBQ$h0DJ>dssTO z18=TMKa$T?F;VAFW(3|jd|0@RFJD!;f1)jIvS%hOt`+{3tNZGBLnDUwiIj8hr`h}^ zUALr6C=tY*QNDq}Oc2=l?pMx{jThN&SVfLqJ(@8>&dm#iR`1kI(Rcx`K*sV zlV6EPFTmR|M=sPqnZw7yrwYrz#@`8vbxY(-Q?rG3cK+&tlZuu;ukF4A*W=fJ)}1O? z61i? zAI$ny6hxHe4i0oHO=XvG*&%Zqm`n-eO&-!xMe&{J?kWGec_xs482nY-W#~s=9ham{ z;Bzs!8Rp-sTCc16ir`FF@m9=16(mQrD;pD@EUwDbYdxW`>+olA4r4acsb}%LUwAI`O6nvcCZka#0HOE8vg^M{W&c~s znEyXK$EB-1oYuvm^^rX5RsOR-8+uMb5C&mkMi}SYoI1!Rf!mxy9 z6S6{cUgnM+EqR&mU1|p#ZQ$l(ud+`M@Qu(!?qGE-2lCqG=~g^j^>;!)AMJdax%u zOhxUPz~%1KAgUKFreS%uo>hCA!|!2wPLaooAMa5JJMLL)arLV0#f#O0EHu=0_5dl~ znS)C9a~2<)7PWdHTD=Izk9Si3o^#gcY0EM(3(UaT8CV~!I(?|0DSyo6j+x_`ORF7J_YUo=DS{AKKO995c1-MYh`Yzq^hLlJL#5j-_?zTd11(v!DBjQF=Ts z>A_i-lzUkq`pZm>P@9@f$ z118m($23UDc5VrIs!M0Kn(q6r9_W+-2m78onGI6B$LOHaY`t6ft$M5V4n1-k4Y5x7?YO|y-bzBCYMF^T@h;CNA>4w(7O=Pz0?I9i6RIui!-a7$Sj4{3SF3x^+9;FIouh|`4 z^=(IE*4$&I67V@Iw#$^Kh}Gi1Jp1{)U7F%YI=-DDM-C^!pZ>`U6W>m~O#B{&lsQh2 zk3x7(BM5orc8Xdx?`v*FlIXzm&Hv+Be8N+=&MtpYpb2WQanOhzkBu3c3FseAeCs$K zqgLq9?FF@It2}Jq^sF~E`MLKgbMFagpLwSESULpCdZIOcx!?5Wx6hs3ifx!p%KGo; zYMd&+_E@uf>y4k9;m4es)kU+m){=*SE)Sf69Vn%)+5Ey*$pl@Ph6U0>Jh4`rdS^O=)NCY#lN=eCpQEe zP4z}p6!);gp^KcxpnHgybH^Cd)BR%Gu-(Y8i!M9YEBT3DJz5C?7i`rIu_sOU;Y2ye z{-6D5Qqk<>tVhiDVH-eiIo-HM4r^O@av-+>B0Kx;sLD!I6*kY!DAHb$%J=W-8n(mb zN9DHhSy@MRXY8-yivJuwezjqJO2pZ~9vy z|JOnN6tutrw|F91HAr}xuT!QHcUNi1Vh*mW?(DrR35{Wcl+r zMHqVbR-X={nE%G=9g+4OqJ%j$fivDDuy3I_H;~`2y~Rs+I$=GQPoh@>_Y8c zxHRZKkJqSu!*i(TNr$ruugL4->==Rva&|5rV$XP4xAeC-=@Z&;3x+?93BvA8@ZMw@m!OZL4kG^m)a{RmL3#rYWs0E z_?J08$?-%!4W)r4D_qa*qGL2|F6>18kDjhu9HiyM1bu`is=fr(w=?g(O%+*E#c6^L z#60~tbiTS9`H~0D=YV@wybSsM`}bHzX+wi#wvz(3|2g*4M4@S}c_XgBDcV!R)6R|+ zh*FOTiqIn_J<-+Cj-%(+_Vx5gs8jQ@YV|VoI;?Uu79G7{PfVk#)09{xP9+!o&TJfvhbr8;iaC+C&D^a(vj=Tfd-?C|!&sj9OScZ3WwBJ7t8 z*QWD`bhLXko|zKD3l9|_H(~jsf6lF?U3-q~nAwR`EeB^3QX&I6ym`7(o}Ll{SDoPz zS7zT?M508836^^90fQ6};AgwYXQM4#8jBBcX_GhZ9FF(y^MFDH@&@`(Q^)f2^Xa~F zCVXA=`EqQidf46NiVsWMpH;XuOT>fFxM#^epUzi%&WzieYHDa$nr>AQI&?0IXuX=| zT&tgZ4y;*;-9(f0QkRaIV|>nO@lAI-P_Skex^9$uqmqyxmHNpXZxl%(&LIm^n zjoJL1$+3@RkB^6!uu=+D&=A@EBk%Eo#TK*}5#LmUy;ob&ek+FT^143HLLpbl|)Wfg?2$x;jO+-g^{Ye;1e2 zxne@y)h)5sP1F$;Sr{#oajx2Y?vkw_7PmhmAz9acyt6QK?uh_ zz_tU)0~D{ZCb}=T!oV;oPgQdx{+Q+-wXC;qJp}o;#NF~Pd$J01PxY6hcH}%cft4`f zV1L`sK`vO8Ro37omt_k&Ls;bm$s|VZAO+g*K3s89hG-(;6VH-om{w20}@+cm(I@lzL=h8uyfr4gIrxzsROZj7=2V{e)(MS9a3dK$r z)&3i8wCKo$y8P1hQZabUAc-Q~S>gpr^s+iTw@rQxXz_=$L&CUXPjp9f?CHImYh6Px zFL{q*^0&41*vA^Uw=<5sH9QnZn=>@e@4TH1$scW{z*+7m33=Ka8`z91B*ieBv(m1v z^M_Ht{g^6UTH@sjqKD0Ln*FkRlxPN0x_e~}Haa#7UH0AS8SfE|Z)~Iz`siGM0Iy8B z>7|=TXW*UolE!<+BfS`0wzn`b0PP-k13Sszb|96hLg`wnv}Ylhy7U_{coSuU&u!C1 z%xLL`JfyflkPFAEyPLm+bm$D;yEU|{u(Irs_9E8PZdv-X#6)vXjJ-cl%eu{GllQylp|TGgu;?|J3}GP(zH?niH~ zH46`3>Y<}SYFK3 zck@Wml4S*O6l-ilx4N0iT*prKTXKezO0OE;p1^AlW@pu@?cwss(Nf3-TotXUu6Q2} zxPE!&c+Q!o7B0w2)}mI5kr`g8u$aosvM9%jxCmus#k(hKez>U9OEgnkp$%5IY4}-C z7J>~nC_RB5FY4`rr#u=#qKBhw73*~L*Vds(s{je*Q0%kR%2GvUOA#40XU zes-Wk(_)Yih+hwp+y+0l$?52Y@2lsE2XP<)?-sCiJxv^p>U&-t zd3-8=`2hJ%-Ba_vEMx*P`B>-N!7y2iS}VTQ=sj(py=uB&N@2_6IE8nlOZIP;;XZpi z(EJ~Q0-d}!Bi4Tkp>X!-RHfvWgq{7-n6TXe;jTSGKnF%^?yhb(fcEg zM7g)kWNA>awCYp>2fRWBMVY8c9UF7aUeT*iz~SSV-WR-HZ0F$B>A@7y#&q+VY~CCS zJ~ur0g3t8eaIN#y03U*L8IewdBCN{Qp2(BBd3$y_B#frUQx)*Zd#hW9&qFC4xel02 z_n2YrxW3b-&iAlY{YSu?T4Z6Nz^pJymPfzgxM_IPUFeQhNm_5^Jq4V~=DY<_aXo5+ z5rNgZ6T75W-@AiKMkwx2L0^=-M}Lo)--Gv~m;!FS`uEBlOZi>kTn z%tpNiXUN8sx4>bnwt_;bzpU{1-EMw|Z3mClm!37=F1tmNpm?nZ< zc)J9o<0{mS0bsjRVME5I)w(ze@=WLs?RzsPs|@u-3E9ytVd<5BQynBHb^Rg_72t#<_?raF`2@#ZyLTBei^r+jrE zZYupME#eV2cJtx_*<91b` z?s*(FyW-$%vTyyz0VikNGfDn?-+@x)n&H7ZXG^221D@Tao7ry@$RiGk@aBTHsznX+ zvo6%ez*UY~)xB+?t2(;lua@cXIGiWTJ@dD5&i4?vt%J{8LuytV=Zr2@^nmiv z_x6DC#Mx}W7lcFgzk48#&p?Yj+*f`>W_`!>IQhc&BKU999a|73jM@f6U(}7Um4=05 z7LlNV&o^l@-@Y!@oRsCx@Z$!NSC}QW^0Tjbc_F}>$lSK8?w0eXr?HRc|HBO8h$)A2 zsQ9YAx~3WCI$Xkibfi`{Twf5{m^Km*s-2iqe?B24?X>{(-~s&U^f%{Q7d?7v)5EsK z--6vH2@WcN*E}gYPQ{J7S9f!kx{{4b{20ML!5@vC843LQ8`6=!zqwI|lUkgs-6tA2 zylQ2}r0{ya^f3=;g{>E-hIr=4_MEe`cU)R||1?wT`NC!SMRNUXUc=&8MT&mx(@hkkA#kW$jAGGRd;?jIo*}bb{dMJ|>ckIn+oww)E@rAK} zj(KM9X#eco|29ri8x~l^r@UP6qBbVrK7O4Y(nj!H0qM1nw&n!2CAUwwldgI?vI0u# zW%j;hcOCPgIC`ZupIIRauo-{O%6{rYd)^&69}{Dy0coDKwywL~gSFH8Zi$aa1>>*B z`z6|R!0Ozcj$CdVC{GWWq$#;YFL)OmZt1?X*~ySG?;K4{>Vfvtiz3L?fkhKQJNQvU zt!;Q^$Un_3YX1lYU5oQzYgrN@_5S_B09zjTAHUI1@5{E|d-+qv+(4-+Uq!!Xjlvuh z#Y7G(&Mx9|T2xl-JJ}I+kVmESv)cGa=Nc=5>B!xG`V~;RpO=uKfL8#_P0kbKcsu<0 z-8FUG!1~leP4`~Ds~pq(7Wysul9yL;WO|mX5`$~6P7qy4;UA? zE(DeZnjfQ8vqRz8*O1-?NTX@QK!Q)`T{z^gjvNx-w)-wr5AY@PL2&zrzX3ULYTl@R zsG{7cn#_RwnfRGTAES=5cJwkCWC`-)Cs~RPZ8c%_ZUe<^L-tuKnsF{FMJ0+Ip0`98 zeDBR!d=usPr3*5i3SwNbRE9rjUcmYkRl4|SwehK_j+Oe`rbnBQrzXjn*I1v?#d;nZ zibv;8grE}TOGLgvoB*3MB}(GL%*65Sk~IOOFcwK0EWDS?T|!)XxL$1x(YtLEWkk7WX3 zJ$fMZ>opj1La>3O7-H5%Ud7zuIH~XBtD_(^9I15$#WfB%Ro$0xYmS#yNKYUYrv~O4 zo6d0|=i$dO9$n>)8s0FTa^>TfoictCZMrDRuDz~aRk6NZMSXo%hW*I|LN4ed?=^7) zU6j%G1AM07PL=YzOU^!hG8p|R;XPCRe4D3<9K^SgCv~8wIR*}wOOL?ttpb)UKt+(a zqN_HB^oqFIWm&V-CkOITg8E z;8H&9{Yxv(2Wbj16Oc@`!ikL1=fvImI~Esd^L$fGKB#-KzJu7r!)v7@g=#Tgur!s*oW#Hr!bmL@KK-_Srx-9B_Z0ea^R zo5#YOy8tyXHR;~Z@AnwJ?#h%+=i9KxG=xa^M{ef6=YZnsDZVm{mdY+4lg_!!k0ZLx zu?ZQr71HPE#zfB2;#Xzf|8KHAq+msTeAfgNQU%^U$QD16M&NI zqNCF-&Y0`>%4r%IS9>x%xbPupd5emQe7T2@W6q=fJ3NpiBSL>mHfT(5mGO9ayDO_E zN5l((l(D(rP`nwK=&9d25pwh^*FMt``dT?f5jQYlDVo!&nP74#vrZzEkd_%}>q}|l zbIf)c7G|&wHoY@5LaU=FPY*Zo)o>L#L zNEqLd4$x?VelrD~En4^-=^5g+i`U-vHds@^uElZg9(Iqti1kRPAz$;dL<1LPtI<_D z4!F}Xgj4UVWK<7(*B(%2GH6>5f~42p*-}Qd!?$MJ=|V7i;`D_DslCl$IC<0qAJoLA4q^PBoX3?#2fU#mRIX$Zo$;}HsIp*;XsT#ZZ<}$WHrBu0eM?!+)RvFM756GIR;x)?EsLQW zZHK#d-DUB$4QSWw-&MOE{&F?;A`oKG=@wULehp(CoQ^$hsXnLSg>jC^Mp)@1J=Y#~ z1_-!On6(!S5-73&ZKc!dDnmOXB;;xVAk5+9tS#hm|qibYx?SZp35f*1_O*)ST=qaXPV_VbVgd| zMGhDQsBac8xo;oul-+@jz~`nm3zug0lA$UMSxD&*sPBVuH3n2nXhQ2d(8#C)OKNWr}rzmE23gdx-o8z>QOl zYv?`=jSRw>6Z>k5xKYjpk@{J?L11hMI#fGGs7P7m4K26cRaq53*2QZ| zfH9_9_oh>(Gvl8_+V5k%N|%cM%Td#laxfUUA53zxTeIyzIbqz}7tE@_d*(5ne7)DW ziPGxbHVhn?RGl*Apadqx$>L?+kmoB5fTC1B{*bd|Z*OHrN=F|zW%V&H$alip5Y5QF zaE43?Q0DsC-?}(1Si&r`%8?t$gzD3CbvOhSHl*b5P`1uzcXsDpwR8dv!8Ix}Zo%1( zxM1zrq40y`+9~qQU}b=>djPJ$9)K?U^@ik%@a2b?&;3Tc9Qu}c&-<|B5m!|xJ!UqQ z8ZBM#lF0HzSXF(2Fy?YoeUm`|5Y>KPe%=d!N^IFnMUg! zdu(u>5{R@qCf$G^CEjIJ0ETsh^CXi!l_96q_j520-@@XVDe=VV$<_5&S2Qj`U{c-h zme029{LMG_^@oQ~KUid4?7F3?2t64b5j-(0=F)UJDgyn@#l^8-p%6NV$HoL%Q$@K( z?FzOl-z`f!nw$~P>^FFaKNJG4cAv?C`!JW&n}QAUHh;bO2f7+nz~|l)e*OFGO~h1l zGnj~(8mr^BRB@B$_^e5NU4M&?Op>nEo!?toHDVy-L397x;(~KrHidn^jY_*!_GG&e zhMsAfN4clqkPNF>g_!;}7IvCM>0oHTFs(*jPoH&+66==dRB)QcMJrn{qMba@6Y+& z`T9bqg(*+akfE1cveI5Z$+&xeT&{8LXAGJ{`8aYWR*YLa=X-rI9iFFw%Rj8LNH^S^ zp2;l`Ll<)4y9@2B8+WA#ee}W+mu$dkzebM~PgYYemmf|J&Mx4r@TMPO`hs&Zdt zj&^_b#0re1@+7Shp1O^^@6l69X*96fXDKeK_109w|=7+s3-ZUa6;cV=C-3 zD#-geC`UK9PD!`rqkd5pF5K4(h)Y_NFH_!qz@7;m&5lY>nh0{B&Y}t%&Y#EKtGG1| zPTSw>8_Z$$es!Y=$6&>eK-)-=Z{qf8mxAgQcp~#6@&X%7+a=6lh{~3w^!UBq6^{=` zP6wUGhK=H3_pmfvzwg|};ZG_$zSsf6=9~474sRx#UHL&=HO)SLjF?9EnLcGaGpL17 zbZzwra_iak3BRxW{JJZ#Qv%k`uDWl+ex4FZHEk-lqKCWSPnc zALlw|<+`mItU7Gk+1?ID1X_P}ME~g$+wf*YyOm3yD+riZhC5$wGaD4_Tv*6eH$nR( zZ7_ER47yb%+#6M$jgbJNQ$rBLfsnoK&&#(%dC(8@ky$wN_r7cfDl$(N-o4~C2*vS< zwTbo8gMy2fmL&oh^M0?12sGGWyZ`>)eCI;VF>=|tBQ;#Azbc9Al?UE?HZe!YU-qvH z>SJ`sF+z|&wfhqlAAvskJ_D(A&Fu7zJ!|gKX&kOwXF;7iA$If70=oFWh zmZe$#0}UeKKQ?AM+U;fcR%YuQcA|`%yiAtb_jZ_#$<=vs{>M2PfM`bozbDQ@4t~1H zR#RA^H<_LFZq+thF*f#lGx^SR?Z3IHhi z(~uIB28yPqMbm&~_x`4is=X0C)&n=5fSVnMLWil8G)@vk|MX_I6jabvQF;W!3UNqq7xZ4 zT8ghuxI_rF3GLxTU84}T?nDM6A$}+JW&gDZ`;Exysf?_ZxXOM;rtL$Df5sJB z$GSbzF`Xb{&EV+&4NwGmCd1-ixg$2>VnO#O0yCdbJdiAK1N!{UZtL;2P>!S=lPCgEyr!Rhj*mDC6<3P80K;hlfhsBrb(@0~ zm*mqau`jRo+~IMOIEzQ$WVU!PZD`MrduL6~&5Z9qy58?wAo({t3or3P4#(;!8bBn9 z?^biP#{g>o{!!=Nn~IeYlv>$)GS4orX7gjV*QnQVsRhr$Be0Dx>aBD$Xd~X((wED> zq4#9a^VP;r=cg_Txa;OSBC5T&vLt1c@6gA4!RwjqbZL+F^Zse3`448y5w(aL+ubKP z$f(2(kl}3636t|qs{6K2g&8L_d`(HrGOfd(ENw}MW!`nQ&mJT5DwIv;$wqElX-VKa z;?DW_9wJ|NAGa_)b7_1Y9aC(vVl;Bd{mo{w#-pj|2^wlx;3%Qt)0Zo=9vZ6%A@p%P zT4WE^Mw>q6IpbWclOhLRDJASp*YZe}_O%!aw2d4P-K);_``9p=uBGK&F<+#^ZAa|B zUAs@3IGLBfD>kY&ePHE~l)NvjC%9_GcGeEL?P@8zs1e2`D6(TyhXZkOO=Vnd!`3>; zOWP(DavD>bqMyf??-EzJ@9_Mx8Nbe1A3HH@9IeYZfnA+@)#jSHB3@I9qA{%bsl~Q+ z?k$8o-&+v#wV(S3$E0aTMzr-l&L!Pyh7s_vvptTnbSckI>!0#()bxL8SkPpyNxIdn ztkSg27SX`E{m#K<{4tWBH>XotHc^cyzR7TIINj+Z`dnbLxj^Q_AmgsovkY-#EsiWq zK)Db2a`d)~PKcbk{ef|ymBZGzKflE{HpcR|a@Q;e)Uw%3@^4`iA$RPr#3r8O^r1P( z2uV~pQg*2cLGkxyyUQa7%(-+*^$JFvo@t9uhjZP{Taz^=sQR*GvF|#ZQP17TBwc_hqz0c3$kY}vTJq-+%?;&zK+ z^?9~o;hf3C<$XsarB0sq60Iwkvir2+%JH+lYKDSQ4|<>O(%L*tjqEnr6uJpAaFDiX z=!9EX?S)8-swYx}mKexoY7;kA!QZ&(-7$0O#)-Mr=!Ps@jIc^p8HRCfO2i%&1YIpC zZKIh*rL+jV>d19=r=GrqSCD-U3=EkhMbNr-g;$yHVhvAnR%#gG&rE(b*VA>nG1e@dzDoQOR?|4bG;e42PJFCi#V^>cr%h9KJ`jNuXtxvxo1zaBoZA zY*_yLuyQSjBo~E`sp+rMpvUPF3?B1(vs1cz*+JczO@g2a@h0qT!5PH6J9;Ee#c|-; zJElIHvXQTHW|*UU_MM~K(w+P3iCW_gL$gS?fAfD>n(X(NuF-Uq+eK5HF>I1V?6&n4%DM@#KS5kMQlJjt3*+DLw zLSK-Qm+W|&BzDNnPUY)zi;vMS6rHcM5raEw@3dxr#wVfhxQRId>*OYAX>U?_%n_7t zLB^d*vRaOhS1Poxl2+_VW3^)oPmRJ%>{*J^DDfe2>bjbI%4JUaIUUX(O6F8y*?H1{ zG)HC*6tIl!v$PWbCjN4VTPp6nTjJCbEaO3XfYXiIO~^W9-pVI5Wk@Lqx(0T6pUq*) z_P$@7lt{<$YL(BFJ6d3Ik ztkSDKU$S*lHz2I{%QD-!?SwXIBg>=%>BE&*pS1;bW5(JhoXdnyop zRZOb7X%Nnmt^G;kk#>@Je?GeRL%w!W`BvjT0vodp3TV-FAS0N2=qQ3v!Og;b@iHWVQU5x_QGytajop!BCgtSz$zLha*Cc zZc(+_v9lg})F78X%S!w=tTw~l=MnuiTyN-e(Q%0HEywXhWW5z9QpOUg!F_HoJ*%>E zxHi4IbDO-7IJxu**316$h}-o!9870yK-bjSBFw4e$X4!)o$Z%>GUZF@F=sQMSOirZ zZaS;#zUAE(Q-`2Q#f(dGUJ5p5Iu4Wa^7l*k>9v0L3FzwWNzB%i<7A(ZIpE>67PHsH znPyvriKNzVeLouXY~R4>@Lqrza;Q@V(8B@aGL0)6-MLFRRat37@y5FjpN*eg&X|gE z2vwNCR)1jHcalzWlG1MTEQdn!@v`$3@o(R|CiA!pENfX#=g-16jW@os&SIKBU>=-s z>6ypbO3HzXcM!#2l{4;w^p+R0uQY(j`fPi#I!YPVy5v>;b(=~2$t%L6o3GTlhKZFw zsju|z@?%4?|7AtuTcXkf?&x1=d50BoR^CET6&NI@IIX!kDm$_1)aAc&-w??PiT$;;le2)}e& znv1;$9Z zWd;SCTSy#+m7yE;nyZ4Jy~4N>wA%=^?40(iLhhaTJk9v)k^)#@w!7oO>*^k7{PVb;T*i_z25UXIR#a(_GU@N~s#3(zT1Wgbnm9N6OU`ORu`Q zDY2qgNjuYs>HH)-826+M*V{gK_?T6Jg$9a9wK*{zQVGzZb&$H-F&edg;d9&rN}tS1{spLO^CBKFKg1K{Gs;_E5YGQVaDa}RN>PsC%w8FDs}Y` z<2T|G(c1BLVZrw(z(|kh&>1fN@$wEig<0MX>g5R|$=n)00~!#bO1dtqbW}N@kT!7W z?o%c$Nd?=^x1XV@DCbco!`-(MGxO5h_@tf(E4mN?)5=}8FqoLE;?3&Gf?3Ryqja9*lYXkBqa%?Mm6O}0AUG+nPbZJER zV5mkt4Rwm%-i^Q^EU88XQ$?>%$_frjg*;zC0H*~gFY7hErU378OI76rE?4ft z;rT;y+P7a_PJKbYlre6U5!OhMJ0-n9&b0E3uAkgq?KOmyRV(=~eL?jlxllj*@W=$e zfUTeO@~EHTE&qLW)Mo6GJXna(5%h7|6zGk|PKsVH%ynJFx-OgqY99rRBj!B*5 zx+c0k9LwuASe5$bBIJZE4xStdr|^nqPZ+W^d@OnBI9tBk$}^ICe92LQ=QCkK_V$33 ztXjNh0GKI`DHoWQejSag><`FkH1md#yRnY3X<4}b;<59{KwwOK$R04$T74_-U}^kA z7GLt%@!o|_Cx;UH2z1r=s@2`5K(Im``dKlE1_4}1l{To(CSr3@y z+>&?|?wvZFB~oeeaCe`|exqfROs+Z!qZEJw*4PP`fM+o5= zI>;O2{BQ#U*nRoF=;FGh)@0MJxwj1N#-vtdln>K-Hh9BTM+d%sd5orWdsCPQ?V&em zv@r`;5N?29R2y51lRVoLyNosbn_DX5cj|FfFg6@PuCM#3i)H3I=;0S3DO*dds&Lf{ zejib>5XS`{c$=~!y4He_+t@l3h^6^{8i*EVpg`wz0Kc7eNtlkUG<_wRBQE>)F?QT`*1kHregtrAeZI)25^?8@@L!0y^f@#%Is?>Gx@f2eK9b>V;0W zCbju(ta)>pn$9>MC_=m$WOr!sK#jO1x@=0$p_YKSTiO2<-+HN zk6JwA3qb1vX5PbI9_653<-wfgPy-&^n1qYb@rynGQKF;d`uZ0#Jz`+YCF6W)Pd|Ap zwe#pFE>)(>7yI6``>{ZRlhj@mssyCUr0SLdH*nM2Q)MnUK~u-Gzia7@0UbVkECTfiAI(ziM$~`#7db4>p6fV13rz4F3ha4^o3@0kC9~DwKgw$$CpLc~>sF6QA3Ps>VEha6%a zv0+K}HBTz*ZxH?&*&*oFThRKa_w(1COw>t+!>jKAJWMktLG)cC+Ls@L!qcN|V-;1w z>|E#q?Hju-tCowfKXuVF1`hp6_sVs&svR>ZM`U5_o+z6yYbu-bx#%A+QD=pLLKdj! zhkTTQG0RXW>I8nZ$J4rG8BmoiP;v)CLf>5J#-PB4 z^>l<`DUXS&AT5s(YJcYMctjab&t`cq(wUXYvgoDnGSF-kug;9%sxW@hV1i@g4 z+T{gJCi_d@WPL6zwNcS;s7FI?)qY+dBvN(Ar$0CuLS4@`{ZuhbA5xs~?08e+0qovM zK7v3R#5O*kiTZaUnFrEcIwlyl^^XgM0q>~UlgBuoCb^u0)rQ1xOb*UC)g~Y%F)d4! zv4oD%MWXNU`x`W~n<9KAI(2TtsyKW54&@g*f^Bnux)cI&)&=kZJa3}mjlRUqtv+Y` z&FRGLpKr}L(RaB6>(6vb&?uubeI1K+8x?J$GOuugc9D;VHh<^>ht)J}55!Xb!hOsN z#Z-r~`8fGSM41K4I4EbC87Kbk!xHacJccgIXS{D!x1uYXP$B4C(J0KqKS)JgJWa+8tc9%ty-D zYVxjT3gDZGcLBED&%^jZ!Sn-a*SYT@Q(|gzVS=3xG^yFv&p?5*`m$)&p{$?L8S?d9 z(=A;iGM(X9{glH_VuV{!x8d-g32U=w6jVWAWs(Ko4Pz?Re|@LU*}iISAcTCMaNV#3 z)KP1SaIFxeIBlGmZ;o-hkW1tAkoLzQd5E@z=w;UeuDAvVmBf{F|L`X&?YruhjHoOd zM5CmuC_P~Z3+;E;CtH|0HQ9=bIw+`En|XU5#3sJjy+M>3 zbZt<-LKtWBr18MS!=s&H1|Ryw_ddG>_;|?JrI7~a0Uq<#?rf8BsFq8+CmC9enBIj| z&{5V(#cyD3B)>n zV6)Crbb|9J`+YNTBN=Jm2wV85T(Udk?xd~Vlc9URO`aa^?q(;jJ%`%kXZTuh%cCd* zRRvXmS^~~DXZiwE$luWtkc^6hB)!M`a<2@<0dCds@NjnnJ3*b4rAnssTwn)h?`@q* zbLxp!pW9MSa%S449&+n@OYw?yG23Kfh~j>IXo8L+)Mmmkt1ME9rSMh{?WQo9dATKy zyQX4==^!d{#|xFMEY_5c%<50REke-PuAl0@sMK7SOA$c8jlG`O^M;HFM27bS2ny3Y zHI&D1zc$@spx57`lK%evWxFQ;l2uV@ZvM%ej+9ov*u6W$wCq{zY=z;kxeL(5+6!|< z#DWwR6ej76rNcnDXYm;B&ECF{d#iKjaIi88u*~n_-L6qT@ul>t64i&Wn;N#o74`d1 z%t0$=hM0fA*OYtTWE5lQkq^B;NnOR-sAfAlL<_g_b%9LW&nTNbxT@a}m&DLC_p?`QFfCU;6J2)vSerU?QlV4$A zpC;{&m0N*%c_sCpVtR2*Layx9xUn-i>F$)W!Nk%+Srj2VEXp4?($zrQ5?L8Ns#DF| zDq0H!f?=;?G~K%9sY(C1?Q1V?`V?H?m-6=Y&XcXGY0;2SDT{Z=PigAVK=fgB)=w9}vS2A1+-w|)$ z{$+?bkdXzbwS*=jcrDD2j}3So$Yd3y=`r{@^u;WB2_=4?1GTlsr=_VJ|5x@BlmXbJ zLs*65tL}?F-rnpOohfC^*l|@Q{xaZF8XK;*Sn3txD0yNRcx>prlVBt_^0WPQ@nd4^d8MmkaWs*RiBo?(9Dy{Cu?b|i&#N{yaibhoDZC)a_~LwuMg)L0fHn8A zHOd&npOE=(%{A^E1dmLDmmp|D0-sPgT;%elhT}bEY=gSgq&E(4T8XaG3@h#%5*q+a ztP-0Z>iT#)>AW$vZNZmne24>KU)8+PVIW5!Jy*Kqjk^33i@@uY8Pq56WKM* z1*J1O`x}GqFrn272}7TBku7uz{mjW<2Otp_H^=SFNOr96YQYlqz#&9>upPZirv@vEL--|E zjSp99eTWLQtA{s@=BIm2I34p4Ri64V_PZMS8|lWSlfOB;-Xea>kB2ZzvC4zPXP8A} ze`glarSNa9%E8NMFbzX-Z7uEwbUS8mru~m$1snuWlo1hIZ*uM&AZaEE;&oEIo7fuO zNb^ajfU{zWKB4=nr^d}ha&uo-Tyq-j7$?fnj!+9ssX=B%MAmb71^s}bFRM|XqkFpm zzxwTO4j&WLIe3~sU>E`9{iBUPR@SrGhe?7?){&~D2}xJ|j`zV+PaE=!SE;u1k>PNP z!{4`;(j%m6u&Xk0PNN10H4*B3dkB3lxm}Coc-S*9zQ7Jg+2s9SN{&24RqNy zgO21lijENuYz91^o=AzrRn?h4K}mkd14kq{Xi(h+O^R9Yz4oIC5!_H@YHtR;Szfw<9T_n0nbNs%ovz32m5h#6+iX8V^N5`C9d>Nju zott=zo6q;G0{@`K@J{#W>|73|9eY2*&ouEw4znNJX{!Uk$xYu>On*Ft$9WX#+ofe* zCwaq3dCH=t8bZeQ)^2BaP(J4E1VxI^F zqyp{<=$c1Ce=W%$7s$p`R9(uWNQK6~0KjjZC2DG`hi&hD(62~qAXbK1B~GIxET(Zh z-J;*ba%|{~JUJWdI?ag z4RNGf7A)_IS8@0T6rdN5{f^d)5Hgy)nFY zF#tN;v({FB5NsQ=`;|Tb#PSPP751=m7rIf~`84HyA7&+*N&vZ(4s=f;C-J)?NNvX? zn65B4x{OSXHmje#rEXBCV)B%(nKbYoJCfvsP2s)4U&*G7Q@QLj0a<+=sBIzr?q7s9 z)^pihk^Nr)HjVbpu0c^qklNR(KDt%)$}^(LS-T<-lxF!@O8|nV9Euy$Ai0SuyIr)2 z+Ma@%1KyCSGBXN6uj#|V!%1?5zSmN9-fl~0X|wHscA)7(qGbobCbd{A4SN~3nW-!? z`9JM_cT`i^_ixl0J7Q-X#EbQA1R{syBeIky|p#;oo_;@XiGu)0*UDykXxo48yj(|+6|gX zM6s3ywTyC*{Prsk=}RDy4lTbaVK31XnA65zVm?JM#d-t=9QQ!D4wW#(LnT} zX?NeN@nUbJjlX0VH^ddr>W z;i#n8SIrnro8R+;cZeZinjgOVyi>nc6QB^4X}^@ttNsZCNBDk1Q*9@9duO$QBhFAX%043pf02^gCeJ1^BjtKprm+&u&zp?DLw9HFWgW+#`~ zJRqsr!Fm(OVM2COss4yT26_4OvDk>*Q%9LP`wp~Mzi1z;59o-nq|%H|vX1mDBf6&i zT-=i~A4u4O33%pf9RbQiL+nba-(sM|RLb(>w*`KdU13+An`n{qoJ}*}(!rfQPV#=u;W>r;UuK2!l#okmXGLE^%{2hig);>$KNw1N7!QZHj@9+NXaS56un(kQB%y zX`m12(bX-BM)Q!f=(P1Fosd=yhFS6Ii6)uTe!D59F@yIa+ZVgp9ZTzR-vp{|e=acu zs0ZN$nm~^-$8$+Q9i9!kyrbufmUQK>FPdqV98yE@&wK(x3^ZxneiaasK#NZ3qH|tJ z6^{oYAhFl>)C+KOIG?c5F*ca${LA@#?r#PkhCyCF_q(6Bnigrl$K53oAMHOTEX@w8 z<}zo^JVDFJ$0`9NZvgBRdFXtQCh1^5tVa1@I{bPo0swYFE4PtAg^obq-mZi&P4DYkRJ%;ii!WOLL+a$e`y0+5J2ZajhV zMsrrxn7YI^$wU61Z?~8Ehj(mUR1*#Rj>$x-yGFX%XyZkoxX3(9i%X^(2EbB_fsmpQgWPRy>@% zd?kEra2*nu`I2BzEgB1SpdN3Q5}y`pmmH7BKQvnUUf{c|aJ7qrOJ=rPutB09mzmlh zfLthB%Gx+anm&I&fwrZN3jcf|`;n?mnsgUla0BLCZf8NG8&>*Vw5Q>41l?u_gE?a^ zk2SqK!Mwmv1n#}8Fu(fCZ(Mty-ia~ner5R1hDNU@t#&>a^t`=A$Lc2qH zk%)HQoj;l^pxB)@rlD&=>F>`#VMC2H(rJ(1c%~Z{>aBmtn`K{bO++BY2Rw!4(w*gM zjELDM15cd-Ic}fepLz&0Q8y}sHx^qj=PDXcRJWlSzXfaJ0}cju`I#OM2X{&oqqpU0 zg9LVp9bHPcuwq$Zyvs?$N8t-1Qk%bKsq|$=LSdexCDi?Gx*aIufM;1-r-(SpwnvX< znN|W+%%3>_6Rh%H$(b2*d(Ex6U4k!_Vt`cZ0irkQ@hX7)Hj7WgyZ4ByHyG4n(l&u@ zu=zQ?{AQyzEM^e9_d~zl^Rpb$#k^{5pAABQzAn#}{1`w#s=%!)e+)?#bsyvIHwm4H zv$|y$Kpyjo&&N$Oj$K9rV`tuHqVvqV+F3xzAx^8aYL-0{VF>oO5Rk~hXBYq1a;kuD zE4>qXzJ3G-SS)tB!LeX&9qpnV?fn4-q%_FV^v3LMKbcDE+!e<_q8ws?2L2lB{LH05 zfSx?zPl9H6Fp69Qdrq9d-P>-uem?(|?8Z27eBtCoW|6jm#`jmW9g1k`I&tii2HG2b zPbPA`c8l-rO4Xy~v7x4=yKfI^{UHakX*_KTWJ)!)hvvCbX+b+g4Qc9W+uqJ8Zjv7; zpbkt0%PwB^{^0z^zUrBec>8DpMnZ|QaQX$?wIXj6=I?Dy1y2$G&@KipnYl|nK=WPsHeol^W->quF`A`w5NEqZ#>MNgi znpcVJJeh-jQ+@%K1Rx3tWL{7+Y2LRG@p#1jzXA8lA{tfiRah9UNBHga5rDydzo0<- zCobmg*GuvF=mT&F3iahs?JGCr%e@Wteq61;bGU%+nz%9I4+CSDNNJL%+}g)IB~wJr zb>AMj{Gnd}&A7SHGuJ$X&2}EPiaQsknejDqezs`-;;8N|b_gKlr(S@=I>@0=IOeTz z3e;{o=DeG*MfqQ`o882FJf^wZ71rFVKi<0fppRvqLV#MOavDvk>ramGWMu;-m7SM> z+os?>eJ<9R8X%Dvz?-QjEXgg!dLKY3xV!-EntIs&x3_hgI?~PQ_m)7a=}+Fi5Gb`g zj$58>ojurTsEyim`rqa>^Q8Nk0pZ1Iz=Zoz{Tp!P^BSPngUEM>-y`3byabW&2k~I2 z9H{pWr|^+kjz|gJdL_bgZbgC!_&1N+L5Cbry4w^a0#9l962`t76jRjDcyRz2A%83} z>W?IDUz{&qCWPJDF`}3-mFAT0kbO+0&KwzV&*Hx?FjnhWiQZiMu4Aa6pT8U`8#>6? z1&zX8CS~)wp(_^yk&9WNR=Kg#qn53~%sG8$DzoTBfOzG}f)t3P)$-!LaX+1xUn2eT~485B9vc^`; z!RzmeUstzb#-H_9q#vGu1N?^&>Y;}N-PZWS5YQQ?k|<0n9r65L*w)PIbqHLuf0iFVI7=*0${0-2xQ66((&)$o>3WfT+kc<isXRrQ_P|LbX2xkgcrrQ+aG^K$_g{{coexk{b`&Ametz_bxY6Je zz9ag3{{z7PZm3mooiDl9* zrS*5C4qRO4utVqR)SweT0nk7AqKZNDyqVwqFkj0ut$si)Ww3>*-Qi+M(hE)|iGv30 z?9A%5jf}KeC4A|-IO9Z)0_*Iur#$Od|59|w4>}#PR^?D?UehVQTeO~FteSyA=tc2X zb~*uiRdYvSR~$Q)r*XMyoiitLxnuh$RCUTmOaxr$%sIRud@&W7X>$Co03LlWAv^=xpDU6Mk!gj&x~r+g0s=!yG8(g{vtPlkSZVuJ+*Rv0ySBs;dHSkk zKdG`1H+^}U2%YcVY-NkavW@+)d17%wJu#XZusfe_k{wWHAKetIw){wbdX`8FjVn0m zu0(UHnqk13s^Hvj{w_?0!RoZIjX3=HjL(%Owu(T4)MG>pRPeIFf@VlW_zoX5R;DY8R!KT%|57Qu9FwhJ6n z@4UaPr4@ZBu)(EJTfJ8?F{m zn@q@hhI$}zf!=|?ok1i4%s?wX3>Y6pM=+LLTGg=RtjNzzdg2J4)_K*0N`&)X@2X;* z^f^ZpYwHPml4dNag2FR8&G7@R-hz}%w$fiiMeu4mhn>73)NE@FKLC-1)+w1B!WA5H zgh=*W?BPxmJu2nSZf*9NpZ~`F%bTAs+mVyieamOlUtJ_>O$z6lQUSD`GYPS^wt1VD~-owrynL ze;`+vUc54FY}6diAZ|CH3BO-26=}4f7dD@xueS0E^u%F^)ul6t;bXP2Ng2w;-Hh3QEmau|b1+7gJE)=Iq#Hn5*2iLl43%Jp(f(;nhz z@K7nO{Zy(*k>lHH$1osq-fhobABg0TcnVkFP?3R$c`%yhjbArXpU^~jK*-Hpr)bBg z7_|n0*}$CqcBlwp{_WzTWGVit|`DKK?L`D z-%DV?os<}??2@Qg>vip%#ev8t#H&1)EZ4|kV~32P zVV!(;AW1yiX{vV?-uRe9->OJEKip?P5K^+4(`V}Joi!saQ~RJ%N=W2^;`lq<#Ahk> z7jHN9I@=`BzT?#2`;jlBhR9w-g+yU`a;^GWl~RfP)vC+A#m9SFdd!E>2gMsQGJ_+~ z)hilC@Q83m3N!-3P#RSJM%2D-Wng#AtMSh-a;mee+A70dskkoysBr3XRr-Dn8Z)-o66bT-dbsj%*Idjh>7u`xkU1fg z@Pt+wUPn?P@CSm{@C9(Xo7EX&Lt!=jJz1c%K=0IFi@KZF!0*-$F6PypBdSzlumF}m zdoR`cl|ia^Hn&lw(&W!8cm2m7cqN|0S@;p|cpI#wML~#I$BkQhUr{;he|B8A$4VO6 z2Fs#ja0xeKHpb+0yPg<}7=9zKsG=uvv~#$se7@4Ko?med7alJ4T&Ta|^B~Ut%Z>}R zeShxgEXtlPLO{FLy|yy%;^>Vwt?pG@#I9v`jyN-(`4v6$>Fs)=Lp*wdUP(9&WaYVG zS(&%ejvc-lqBt7)Z3k(ekA3Q3SsM%7STNBzh&}^z-Y=G!FL|LmOC=1j2l(aP z%Mihwsk#}L+f+SihQms4IbC|#Juw=bt-TNIcbqh2Y4t;*gO5en%hHXG#s2IXQNQn| z4i@Am`gBsm72E3ouZ?omgB5X-@|pRf;yu9|+uJfX4e!zOgBelycMdP534C{BVIev! zvUa2&G6j8}yx9`SWp2Dszx$=bLQ!=$;kWjU3H;pi`E`u6#IsGIW_b~UtYUFEF>M`3 zLm9tQX!2Mz(-FlZA>5u?k1%6rW z{m_&nnLD|PB|m%4X7^;@_&nKYWhw?${Q*3@x7KoHe9&RAiRA0X1uWPtFfg^T@)_c#YUeZ z31m4xp{sC9tGmG{Um@Os_zU1* zE_U#Q(t>b@o8VKuX9O^6@1m4Dmd5G*5GA6)jD@Ch-5}%6Y_T(!iA@YLTS@KRH>@Xs zJCzo++C8y)EyB+;4Ing&lh36F^Hvf1^MXNf-2<=e7KoF1*9ZI@g>Y=o*W%G)&p?(m zvQ@--!H$I2Y$IH$l`pRRy9yLoP+cCKNO;(JCC^*KZ_dM>;f%N=VuzZp8u zKmYDgQIr+!^&RdS;yz~slCU-nea`xnFU`FxsZ4%O;gxJH0-nLk zqyD;mTWf)*gdCW#i}pdJC3m7D7lQ!?0ljnz9JxXqCeti|E7eN{0t^4_>thoCc;&dZV+ zUHb6JffN`D3fjgz%V^MflL-8uIF2gEXL}jR<46LNX81982B;hQR|Fn2KEov`4Vp=c zh?SQa#8TjKFnxPct1R$i0Z8#qEsDoI6Fedyxw1G)&YmRhdNN%7x0DJQHvTXIyec?f z8V(E@?^Gu=&AlZL=k=zxw=+Va7xHQt1Oqnvl@OSHt zr6(Nm5u`&Sac2_-Gif95K}`Sfl^C)yZ%6*|t~s9ZDr zQEkYFP18^P*p{@lsG}9T(gEY{ZcP{q_TdD`_(tdy5!PoknAVmnHKzs<XqW}k5rvNqXP;y-t1Nl;Kz^iYVkMsrf57m%^cvKDz6Hux^g2q&c0=yrCSFaOo zV{nGSi$+TYX2cgA-m&f+?-*~nNn%`=vJu*jl(g-sO1G%IKf@y!#4$JoNT%r&an$6N z#TlB1mO9yYc#&UT>=(;J#mBASrZ0=*5M|evLpg(MW8w-aAy|Ep(65+Ul-$F{W+kf8 zf^FL@Osx9G8fz9g7AsJMGiXBP$3{uQk~+Ur`Sd7XlK8O)Ip5btEne_*a+IRC%zOp& zftrzn8|ij9sdz+9@5!&E;&7LbwHeB=;=^5czgewud*I*^qOjXf)}x>kWfL2h&6T79 z>y)i|LwK*+!o5{`hU;mUE4>N~2jQTQscGC(EIjI?+0*K~VevDw)(4sUg847?Ka{Q@ z&T5VE=_x6vcti*r~z<{wH^aFIwyy`|4 z^1>JT1`V!FdmLa`R=Prq7_z?GB5%b5!EZ7FWPR$iTR~8&D)ZBwr64*2^JpYP-6YJT zCj}=nAGWTrVh%j7Fv!_rBpX4dEKZY~baF!>+td%Km;p0DVENSC8xy9k+{CkSaDv!j zaF-o}ccS;hT9;H29i*WvY-;F^X&GVAAitY9QcrGEYZXpb+SF~Qvsb02TYZHvk&5`M z8fA^v-eQi{HjWsm6nq%_aP`4Rz-IVbXtvK5nefe+6*IBW0iSCv+iHC3YQmF|j1c+C zfr|0tmK>4T9?%!eiCE=WpvhYCayS``&O)sXfOFD|i-KmBEGV0>q%)E>)bfjqwV3q= zGt`~iiUGg_KmDa(kVlzPXM4R$fX>mMK=H9@BPSvaIE)| z3cYs**;w?d+GSWD>!EL1URaixk!CSS$1_OgkFB0|0wA()q!AmyH>q{CZfT5XzkBz> zm%iE@9r`Xz6K7fvF@h@S$@M{)!*Q|eXiiMUXvH=5iA-_jl$4Zzxoc{0N7^!POgB7P zgs3p};aUBOHb`wox1T=m+$+%`LT-bUNr0nswT5?9?F3Q$AiI_6BUaG+Os00TFvHUH z_Z`v995V@9xoV8wG|-A}lP$=N!L$eeK%+Xr+V?OyvOG7mmssDU_|Qqr1Y02qFZpk! z#$&%JR_vkl)P#v?{ELNX|Bnt_!xjbzta7I%NkUW>{M)v*2tXG* zJsb;f^Ps5@Iq`t)WYtT~q}Cr2CT}m;UJ#Q~U@c71KueC9d3B8H7)!>o>C{g=xw}qT zq1N5eHP)Com~`qn_v7|o?mwu2BN{}#-*?>|CMODGa%-&f0Ihc6}Z@l+4Z@m0W>5r<@8B6<~+sR zC#xxdpjob4WanP_ZGYK%cX)#s=i4~w*d88r`y6~ghQKC4L#+S-!y zBg4HQh-byzRR=D?YPb^f5b6TfCni{>_(lDm7RLw%ZmjvHAB9qby%J>8IV0O@5>bui zM17Y4Z7ULd_ZFPkK9q#S|4zfKZCZGws91|kYkelNB8kxYW&73*+EnyIrO;IaQ7^&-)g5M^)TPC2ZfpS*5SjM zTuHTBP>;dM)D|>zeHLkAAJPK-5(2QX{_HpRQbfdUql$$qCtO>cs&lS`5QZu`L$bi8 zBRs-bweVtMdejy1{fF7mRe0qs;$_Toel7JaX@uty$Yn$R#xx!D-fD*L=S}%B<0$0==NR3xkUB) z&L`+MFzba(xT2LmmKcg#(o#BMXJaXfgioc}cVWf1%~FcnV-k^-F>>ITY3xXBk()HMG?h zi90ta7SfLDek^KVer6Lu@JP8KN?ytM!Q=gD%FKeTE(P9MF=2i|gZabVJto{4fF0&q z22`o7Hyq&Quh+7TKhFzPb`1squ=rS*pk60IZiq|z%urY>D(TpA)4?3@}gN zJ=e+qaONU#)omH>#anvEfHSBTZKp$T#3MmClNpEe=wj`C#>%nGJbG*C;Gz|M;d%3% zWrw@%Y)a{ec8gPO%5>g5^>65wOR|)oF+~7J_TOGrTCGjkwA!wMlsaPIfN$gdwt}64 zGwgieM7Oz0pZYUH8b-vkmSGx3GFIWgn49TM8&{u7hgocho&a5_L;L>n#fja$Jy*rD zpST^ss+mX@S&_w>rB0^3$vCXWlxp?L;9iSNd#O6N*0Ar;$AOP0-kUhM?0&kqy3V^O zW;q+G&dVt}nHs-Ai>|ede76E;KyV^`+7y7Z4vI&z} z^xN4F$XpQJ>aua_&M%-(#u}Wkz6r2Wk6t1Jb<@V`87}2WZR{cKFLq*7!}m znUc8ET;jKK)p`F*F_5c03iyF#d`GRH!)!8*;w^2*@^t3Lf6TwM=+fnCzGK#qw^<Z_dTS_`LGd)(#91h1KJ3RtIdoZV?)nc_=%bew97AF745RK zdF)s4BSBZ}ols2Bm0qHBYk3gkg`Jnhb{>F4pJE1geM zD#YwTvUk5+Elt}M(#l;QOc&w%(dcq9LT0xTtwV`=9o1zetmwi$zC6))}sV{gLXsQTWOL}RIoE4op%)=@ddBO z_K&*vov`&R()XV(u>j%~py3&U*0!r^XZlO7N|+XTnH;+c4Zw^*jOaJ`v8+rB5#j6r zE(s$JTcYJbi07#fFgthQjUyq?Uq`^%oD+$sjFXMba|a&l{alP~@KxVJeW4Yzl5RtQ z&Y{HK0LByYDFQpW2TSa;@(MWC&GhfKGZku2SYF()$c+$MSIj^Xyjk6*CG0OiV-{u^ zcWDI$bQ<7wI{c{fP6^Y5l4;?1GiDj{!Dd2=2^I0uhW(p76ntc@w~&(=9qwhzaKZ}8 zjUktBy#xGR4J+cYR6E1-g98tV?N`bzxY$!cZudtr1A^R0BL}37ZkS5!FXh0Pv!gEo z#jV_T0s%_uk!)uCVFkZJJca8!FDu8Mg=#Ap^;j?G4)s@7s?ruhSxO3gr{`Xezi@02TH4pRpagPsk$1J9s?P6CQHmB8`*| zL65dpLjGV-zBy>LW9i~aAVCX@fdGiJ+G3pW55Ix4#*YR5%Sbt3D6AiJ8$b)s#xeGj z>`9*8U1$hulY2s z`@43Z;`a4&a#Y`#yq2Jhy8OWw({FGZ`Jey$CmjD7PH_+vdU#8R+rcFU9x@$_!)Mxm z<0Eewg*n|H#t&77z*)?H2fw+i`k9&l!o~oWptSoY)Ao(iBr9Yxi-D%*x;XmNqO= zMhDAm#}D_u6@SrfQc6DHX)9xXmmSl$e)s1Y#!Q}}sR(xW$mhJRr_BK!DZ0#i&vK_4Y+o;ujgAb19P;Zj~H%=UCZT99Ou{3_+|GZ10kcA9#kYUIFL7|`emcx*2(i@N-4wCv6AuKSQwRcU~#yLRbkSt z^tbM{V0y8?A1qg;3E&Lmob=jkk7geR87k!Y#L|jJio9U<=_4Eu@7+<3ebe8crP3 zYp*7MC8BPlQk&_C!t=M%-?-OLdMQl=zZoRcU?vG^AQQ%9G^vOSH{pmCv~i_MwJO|j zRw;zD@P)&=yy~)-zZxzBBt2CRB*nzZc}uuFN!$10Bys~5K-Es_45&5~Dsa;KfK5=_ ztR_(jv_bW=K_3=!!TewX_6H&6Mw1o@j05#B1+>}v^^r0LTn#&k2Ooh9h6@S*TL+m^ zCq+JnU?k-_h|mp-G#d8|GRK4>N932F*`N@V`J{>7r-_IhJEph_ON4MVzC=VrN`ou? zXd;MQEUBT12i!)kgNjNbIcdL|wsRi?!IP0=80Ak*#iQ{yv=NTKItpbVXT7f(3v5^- z|3eeu(xTFh_=4TJ=by=Ov9`9}*UbF2KL zBX`MVH-+V~R3r@E=r|iyvQfUXzheCx4B}SM$%T$@)&V&yXM@6TRu^fJubVIFo8`!s zbHkAFq(vSw=OSrV#6BaxBENNhOmD6mIas?riJC-}&B4kJybRh5UMLx!#BEjE@rVr; z3M@L^kYWto-#SwF4ip!3i5W&lvqV<01Wv*n4$ZT4&7TcjZgUW2YD7tb0Ye%~^V#C@ z!`2KDF1Yh1_NcTCwdhZWzqCn;jF4n(BNo?<4_?ZJbUapU>NLcd>$lNs@zc%ZJlGsO zX+3NYb4k191Cu*-bx0we<|4g7kVv_bV*yu5hS;&Lm@2y`*r`7t$|z+Zb-rDp4dAo^Bs_T* z30rlvI*`F$c5sBi9N`Vhb;Y*~@By6Vdis2iJ@0 z^&md2F?OS3iby?ppq`{o^!d2&Pg(4V0ABK^6YhsxfYkezQ{GGIVAFrg0gpr^ApE{v zQd2HQ9_IAT#`ur-t6U0*?~hCDi&SxXRq+@ zzO5q^`>CK%(SY=m1r}zkGYsaDi}OOzcw``*DQTq8l(oJ`9Ro=GWFbf!?cfF@TE)Cv zxd_A&q=nKuxF9|b0q+B@qb(xM1ZpU3l1KqsKXy1thY2x6G>F1%3khNslDVB+9TaLq z)TFkSPvknHBkBK+HUT{HKT~;2XDk5giJGf>ii>XQLTv(pi_ zwLVl>b_Gb1jwYi$mCU16YnC$b!6Gil< zH%_xuY?|X=E}e0~Np9P8U+b5FT<#JpZY!W&kc zK&R%Yh=J!`nZ}yK%Jc!I*3gCLdvB*V^I1|=kHU6NOtCodC3X#EPG1nTys0t%mz5Aw(-3RWZLn8gl9Y#>q-JPq|+`&He~nf3-^iEojBmh)Q(gaP{R{ZT3)_nE`9f%|Te?;AuZu9z&tdMeuS@+o!CUS=|~`7E8X&U*dJdup-w- zE%VisWAa_weZ$23y_8A&Wt2qXs9j&(kg6Lw1y!>3wGS)x`9mYYTujW3It2Ei677l8 zO5_gZa+|n4`c8pwTw?bq+aOAz&9I0Ub{xFZ*Hz`E?YX4TmQ76Shq|8@ENWt+&dCor zDweP!EPpsQjD{X`6b&nd!A?jRU@=|&FE7L$+lk>3 zJ-Y{pi#>hPv?h+FZqa)8=1wADr)+@BMlJ8N-3(%MwH0l4o`33m`># z#<4kF=j*O}zlB8D;vl`f22M*0bZcQz*9A~nG-YL`wSmcPr0kIZr&R8l@eDM_gPEN* zTfR@TjT(X+)5!C?6}H5#_tcdxkS)-}yjq2qeG zJE~be2KO7KyVXLs%&5Zfm0ycp<8?2CCCDq=(y#BSiOVeU2V@R3Me!A7Lj&+jJV!yxfXpV(DMe^>>Z12Uc|p-)Vx0AwKg+j%Ex}tS==?< zVtb8uM)!3!!7S=tZ}C{0d5gTn<^yVz9MgDmRvZSFNUEJ`;349(Xx?hcsH zo3215R3F&z$5^i~&H^-Eo#`>1so~<;$rK({Oz$#S;pOtF=C*UoD-?k9uXXUCd z1Mm&_)pkxO*?Ba~_#e)XP3Ys&@e1Jod;(DA;XkxM{eQ$4W0zu*T + +#### **微信群** + +扫码加入微信群,随时获取第一手更新内容 + + + +#### **公众号** + +![qrcode.jpg](https://s2.loli.net/2022/04/22/mZjlG5u4vrXW1SL.jpg) + +#### **邮箱** + +vran_dev@foxmail.com + + + +## 多图展示 + + + +#### **文档同步** + +![sync.gif](https://s2.loli.net/2022/04/22/aoiSR1V3MuN67m8.gif) + +#### **版本对比** + +![](index/diff.gif) + +#### **文档导出** + +- UML 图片导出 + +![](index/uml-export.gif) + +- 导出 Markdown 格式展示 + +![](index/markdown-exported.gif) + + + +## 捐赠 + +开源不易,扶我起来,再写两行! + + + diff --git a/docs/README/index/diff.gif b/docs/guid/index/diff.gif similarity index 100% rename from docs/README/index/diff.gif rename to docs/guid/index/diff.gif diff --git a/docs/README/index/markdown-exported.gif b/docs/guid/index/markdown-exported.gif similarity index 100% rename from docs/README/index/markdown-exported.gif rename to docs/guid/index/markdown-exported.gif diff --git a/docs/README/index/sync.gif b/docs/guid/index/sync.gif similarity index 100% rename from docs/README/index/sync.gif rename to docs/guid/index/sync.gif diff --git a/docs/README/index/template.gif b/docs/guid/index/template.gif similarity index 100% rename from docs/README/index/template.gif rename to docs/guid/index/template.gif diff --git a/docs/README/index/uml-export.gif b/docs/guid/index/uml-export.gif similarity index 100% rename from docs/README/index/uml-export.gif rename to docs/guid/index/uml-export.gif diff --git a/docs/README/management-document/img/doc-diff1.png b/docs/guid/management-document/img/doc-diff1.png similarity index 100% rename from docs/README/management-document/img/doc-diff1.png rename to docs/guid/management-document/img/doc-diff1.png diff --git a/docs/README/management-document/img/doc-diff2.png b/docs/guid/management-document/img/doc-diff2.png similarity index 100% rename from docs/README/management-document/img/doc-diff2.png rename to docs/guid/management-document/img/doc-diff2.png diff --git a/docs/README/management-document/img/doc-diff3.png b/docs/guid/management-document/img/doc-diff3.png similarity index 100% rename from docs/README/management-document/img/doc-diff3.png rename to docs/guid/management-document/img/doc-diff3.png diff --git a/docs/README/management-document/img/doc-diff4.png b/docs/guid/management-document/img/doc-diff4.png similarity index 100% rename from docs/README/management-document/img/doc-diff4.png rename to docs/guid/management-document/img/doc-diff4.png diff --git a/docs/README/management-document/img/doc-diff5.png b/docs/guid/management-document/img/doc-diff5.png similarity index 100% rename from docs/README/management-document/img/doc-diff5.png rename to docs/guid/management-document/img/doc-diff5.png diff --git a/docs/README/management-document/img/project-export1.png b/docs/guid/management-document/img/project-export1.png similarity index 100% rename from docs/README/management-document/img/project-export1.png rename to docs/guid/management-document/img/project-export1.png diff --git a/docs/README/management-document/img/project-export2.png b/docs/guid/management-document/img/project-export2.png similarity index 100% rename from docs/README/management-document/img/project-export2.png rename to docs/guid/management-document/img/project-export2.png diff --git a/docs/README/management-document/img/template-edit1.png b/docs/guid/management-document/img/template-edit1.png similarity index 100% rename from docs/README/management-document/img/template-edit1.png rename to docs/guid/management-document/img/template-edit1.png diff --git a/docs/README/management-document/img/template-edit2.png b/docs/guid/management-document/img/template-edit2.png similarity index 100% rename from docs/README/management-document/img/template-edit2.png rename to docs/guid/management-document/img/template-edit2.png diff --git a/docs/README/management-document/img/template-edit3.png b/docs/guid/management-document/img/template-edit3.png similarity index 100% rename from docs/README/management-document/img/template-edit3.png rename to docs/guid/management-document/img/template-edit3.png diff --git a/docs/README/management-document/img/template-edit4.png b/docs/guid/management-document/img/template-edit4.png similarity index 100% rename from docs/README/management-document/img/template-edit4.png rename to docs/guid/management-document/img/template-edit4.png diff --git a/docs/README/management-document/index.md b/docs/guid/management-document/index.md similarity index 93% rename from docs/README/management-document/index.md rename to docs/guid/management-document/index.md index 100c448..75490ba 100644 --- a/docs/README/management-document/index.md +++ b/docs/guid/management-document/index.md @@ -4,15 +4,11 @@ Databasir 支持多种类型的文档格式导出,该功能位于文档详情 ![](img/project-export1.png) - - 进入文档页面以后,鼠标指向**导出**按钮即可显示出目前支持的文档导出格式 ![](img/project-export2.png) - - -## 版本差异对比 +## 版本差异对比 如果成功同步了多个版本的文档,你可以随意的选择版本进行差异对比。 @@ -43,14 +39,12 @@ Databasir 支持多种类型的文档格式导出,该功能位于文档详情 切换到修改表的地方,可以查看具体的修改内容,比如下图就展示了 -- type 字段的类型由 text 改为了 varchar +- type 字段的类型由 text 改为了 varchar - comment 字段的类型由 text 改为了 varchar ![](img/doc-diff5.png) - - -## 自定义文档模板 +## 自定义文档模板(即将废弃) 目前 Databasir 的文档主要是以表格形式进行内容展示,包括了以下内容 @@ -68,8 +62,6 @@ Databasir 支持多种类型的文档格式导出,该功能位于文档详情 ![](img/template-edit1.png) - - 点击就会跳转编辑页面,就能跳转入模板的编辑页。 注意我用红框框起来的表头,这些都是可以编辑的 diff --git a/docs/README/management-email/img/email-menu.png b/docs/guid/management-email/img/email-menu.png similarity index 100% rename from docs/README/management-email/img/email-menu.png rename to docs/guid/management-email/img/email-menu.png diff --git a/docs/README/management-email/img/email-setting.png b/docs/guid/management-email/img/email-setting.png similarity index 100% rename from docs/README/management-email/img/email-setting.png rename to docs/guid/management-email/img/email-setting.png diff --git a/docs/README/management-email/index.md b/docs/guid/management-email/index.md similarity index 100% rename from docs/README/management-email/index.md rename to docs/guid/management-email/index.md diff --git a/docs/README/management-group/img/group-add1.png b/docs/guid/management-group/img/group-add1.png similarity index 100% rename from docs/README/management-group/img/group-add1.png rename to docs/guid/management-group/img/group-add1.png diff --git a/docs/README/management-group/img/group-add2.png b/docs/guid/management-group/img/group-add2.png similarity index 100% rename from docs/README/management-group/img/group-add2.png rename to docs/guid/management-group/img/group-add2.png diff --git a/docs/README/management-group/img/group-add3.png b/docs/guid/management-group/img/group-add3.png similarity index 100% rename from docs/README/management-group/img/group-add3.png rename to docs/guid/management-group/img/group-add3.png diff --git a/docs/README/management-group/img/group-delete1.png b/docs/guid/management-group/img/group-delete1.png similarity index 100% rename from docs/README/management-group/img/group-delete1.png rename to docs/guid/management-group/img/group-delete1.png diff --git a/docs/README/management-group/img/group-delete2.png b/docs/guid/management-group/img/group-delete2.png similarity index 100% rename from docs/README/management-group/img/group-delete2.png rename to docs/guid/management-group/img/group-delete2.png diff --git a/docs/README/management-group/img/group-delete3.png b/docs/guid/management-group/img/group-delete3.png similarity index 100% rename from docs/README/management-group/img/group-delete3.png rename to docs/guid/management-group/img/group-delete3.png diff --git a/docs/README/management-group/img/group-member1.png b/docs/guid/management-group/img/group-member1.png similarity index 100% rename from docs/README/management-group/img/group-member1.png rename to docs/guid/management-group/img/group-member1.png diff --git a/docs/README/management-group/img/group-member2.png b/docs/guid/management-group/img/group-member2.png similarity index 100% rename from docs/README/management-group/img/group-member2.png rename to docs/guid/management-group/img/group-member2.png diff --git a/docs/README/management-group/img/group-member3.png b/docs/guid/management-group/img/group-member3.png similarity index 100% rename from docs/README/management-group/img/group-member3.png rename to docs/guid/management-group/img/group-member3.png diff --git a/docs/README/management-group/img/group-member4.png b/docs/guid/management-group/img/group-member4.png similarity index 100% rename from docs/README/management-group/img/group-member4.png rename to docs/guid/management-group/img/group-member4.png diff --git a/docs/README/management-group/img/group-role1.png b/docs/guid/management-group/img/group-role1.png similarity index 100% rename from docs/README/management-group/img/group-role1.png rename to docs/guid/management-group/img/group-role1.png diff --git a/docs/README/management-group/index.md b/docs/guid/management-group/index.md similarity index 100% rename from docs/README/management-group/index.md rename to docs/guid/management-group/index.md diff --git a/docs/README/management-project/img/project-create1.png b/docs/guid/management-project/img/project-create1.png similarity index 100% rename from docs/README/management-project/img/project-create1.png rename to docs/guid/management-project/img/project-create1.png diff --git a/docs/README/management-project/img/project-create2.png b/docs/guid/management-project/img/project-create2.png similarity index 100% rename from docs/README/management-project/img/project-create2.png rename to docs/guid/management-project/img/project-create2.png diff --git a/docs/README/management-project/img/project-create3.png b/docs/guid/management-project/img/project-create3.png similarity index 100% rename from docs/README/management-project/img/project-create3.png rename to docs/guid/management-project/img/project-create3.png diff --git a/docs/README/management-project/img/project-create4.png b/docs/guid/management-project/img/project-create4.png similarity index 100% rename from docs/README/management-project/img/project-create4.png rename to docs/guid/management-project/img/project-create4.png diff --git a/docs/README/management-project/img/project-delete1.png b/docs/guid/management-project/img/project-delete1.png similarity index 100% rename from docs/README/management-project/img/project-delete1.png rename to docs/guid/management-project/img/project-delete1.png diff --git a/docs/README/management-project/img/project-delete2.png b/docs/guid/management-project/img/project-delete2.png similarity index 100% rename from docs/README/management-project/img/project-delete2.png rename to docs/guid/management-project/img/project-delete2.png diff --git a/docs/README/management-project/img/project-fav1.png b/docs/guid/management-project/img/project-fav1.png similarity index 100% rename from docs/README/management-project/img/project-fav1.png rename to docs/guid/management-project/img/project-fav1.png diff --git a/docs/README/management-project/img/project-fav2.png b/docs/guid/management-project/img/project-fav2.png similarity index 100% rename from docs/README/management-project/img/project-fav2.png rename to docs/guid/management-project/img/project-fav2.png diff --git a/docs/README/management-project/img/project-fav3.png b/docs/guid/management-project/img/project-fav3.png similarity index 100% rename from docs/README/management-project/img/project-fav3.png rename to docs/guid/management-project/img/project-fav3.png diff --git a/docs/README/management-project/img/project-fav4.png b/docs/guid/management-project/img/project-fav4.png similarity index 100% rename from docs/README/management-project/img/project-fav4.png rename to docs/guid/management-project/img/project-fav4.png diff --git a/docs/README/management-project/img/project-ignore1.png b/docs/guid/management-project/img/project-ignore1.png similarity index 100% rename from docs/README/management-project/img/project-ignore1.png rename to docs/guid/management-project/img/project-ignore1.png diff --git a/docs/README/management-project/img/project-ignore2.png b/docs/guid/management-project/img/project-ignore2.png similarity index 100% rename from docs/README/management-project/img/project-ignore2.png rename to docs/guid/management-project/img/project-ignore2.png diff --git a/docs/README/management-project/img/project-schedule1.png b/docs/guid/management-project/img/project-schedule1.png similarity index 100% rename from docs/README/management-project/img/project-schedule1.png rename to docs/guid/management-project/img/project-schedule1.png diff --git a/docs/README/management-project/img/project-schedule2.png b/docs/guid/management-project/img/project-schedule2.png similarity index 100% rename from docs/README/management-project/img/project-schedule2.png rename to docs/guid/management-project/img/project-schedule2.png diff --git a/docs/README/management-project/img/project-schedule3.png b/docs/guid/management-project/img/project-schedule3.png similarity index 100% rename from docs/README/management-project/img/project-schedule3.png rename to docs/guid/management-project/img/project-schedule3.png diff --git a/docs/README/management-project/img/project-sync1.png b/docs/guid/management-project/img/project-sync1.png similarity index 100% rename from docs/README/management-project/img/project-sync1.png rename to docs/guid/management-project/img/project-sync1.png diff --git a/docs/README/management-project/img/project-sync2.png b/docs/guid/management-project/img/project-sync2.png similarity index 100% rename from docs/README/management-project/img/project-sync2.png rename to docs/guid/management-project/img/project-sync2.png diff --git a/docs/README/management-project/img/project-sync3.png b/docs/guid/management-project/img/project-sync3.png similarity index 100% rename from docs/README/management-project/img/project-sync3.png rename to docs/guid/management-project/img/project-sync3.png diff --git a/docs/README/management-project/img/project-sync4.png b/docs/guid/management-project/img/project-sync4.png similarity index 100% rename from docs/README/management-project/img/project-sync4.png rename to docs/guid/management-project/img/project-sync4.png diff --git a/docs/README/management-project/index.md b/docs/guid/management-project/index.md similarity index 100% rename from docs/README/management-project/index.md rename to docs/guid/management-project/index.md diff --git a/docs/README/management-user/img/user-create1.png b/docs/guid/management-user/img/user-create1.png similarity index 100% rename from docs/README/management-user/img/user-create1.png rename to docs/guid/management-user/img/user-create1.png diff --git a/docs/README/management-user/img/user-create2.png b/docs/guid/management-user/img/user-create2.png similarity index 100% rename from docs/README/management-user/img/user-create2.png rename to docs/guid/management-user/img/user-create2.png diff --git a/docs/README/management-user/img/user-create3.png b/docs/guid/management-user/img/user-create3.png similarity index 100% rename from docs/README/management-user/img/user-create3.png rename to docs/guid/management-user/img/user-create3.png diff --git a/docs/README/management-user/img/user-create4.png b/docs/guid/management-user/img/user-create4.png similarity index 100% rename from docs/README/management-user/img/user-create4.png rename to docs/guid/management-user/img/user-create4.png diff --git a/docs/README/management-user/img/user-detail1.png b/docs/guid/management-user/img/user-detail1.png similarity index 100% rename from docs/README/management-user/img/user-detail1.png rename to docs/guid/management-user/img/user-detail1.png diff --git a/docs/README/management-user/img/user-detail2.png b/docs/guid/management-user/img/user-detail2.png similarity index 100% rename from docs/README/management-user/img/user-detail2.png rename to docs/guid/management-user/img/user-detail2.png diff --git a/docs/README/management-user/img/user-management.png b/docs/guid/management-user/img/user-management.png similarity index 100% rename from docs/README/management-user/img/user-management.png rename to docs/guid/management-user/img/user-management.png diff --git a/docs/README/management-user/img/user-pwd1.png b/docs/guid/management-user/img/user-pwd1.png similarity index 100% rename from docs/README/management-user/img/user-pwd1.png rename to docs/guid/management-user/img/user-pwd1.png diff --git a/docs/README/management-user/img/user-pwd2.png b/docs/guid/management-user/img/user-pwd2.png similarity index 100% rename from docs/README/management-user/img/user-pwd2.png rename to docs/guid/management-user/img/user-pwd2.png diff --git a/docs/README/management-user/img/user-pwd3.png b/docs/guid/management-user/img/user-pwd3.png similarity index 100% rename from docs/README/management-user/img/user-pwd3.png rename to docs/guid/management-user/img/user-pwd3.png diff --git a/docs/README/management-user/index.md b/docs/guid/management-user/index.md similarity index 100% rename from docs/README/management-user/index.md rename to docs/guid/management-user/index.md diff --git a/docs/index.html b/docs/index.html index 428d215..5509a2c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,15 +20,13 @@ window.$docsify = { coverpage: true, loadSidebar: true, + loadNavbar: true, maxLevel: 1, subMaxLevel: 2, auto2top: true, logo: 'databasir.png', name: 'Databasir', repo: 'https://github.com/vran-dev/databasir', - alias: { - '/.*/_sidebar.md': '/_sidebar.md'//防止意外回退 - }, copyCode: { buttonText : '复制代码', errorText : '复制失败!请手动复制。',