Compare commits

..
391 Commits
Author SHA1 Message Date
Baorong Li 15b62e302d bump antd-admin@5.1.3 2019-10-22 10:38:52 +08:00
Baorong Li 9d5ec20f20 Merge branch 'develop' 2019-10-22 10:37:43 +08:00
Baorong Li c878425fd0 upgrade antd@3.24.x 2019-10-22 10:30:04 +08:00
Baorong Li 90e80dda64 Merge pull request #1022 from rioarray/feature/inline-conditional-rendering
inline conditional rendering in some components
2019-10-17 16:32:30 +08:00
rioarray 1db5bfeab5 inline conditional rendering in some components 2019-10-17 14:45:30 +07:00
zuiidea b2b3fcd4a3 ✨ Support disable i18n. 2019-10-09 20:20:11 +08:00
Baorong Li 9cf97375c7 fix 404 when path = '/' 2019-08-01 23:12:42 +08:00
Baorong Li 7839b6affb Merge pull request #1007 from Louis-7/master
[fix] add notification popup to #primaryLayout instead of #layoutHeader
2019-07-25 08:26:35 -05:00
Louis 597064a07d [fix] add notification popup to #primaryLayout instead of #layoutHeader 2019-07-25 11:47:32 +08:00
Baorong Li 0ea57d14c9 fix #980 cannot read property 'map' of null 2019-07-07 23:01:20 +08:00
Baorong Li afd736d615 bump antd-admin@5.1.2 2019-07-07 22:48:34 +08:00
Baorong Li ce9b8c376f Merge pull request #996 from tuantvk/master
🐛 fix bug sub menu Charts when collapsed
2019-07-07 08:03:31 -05:00
tuantv 79776e6752 🐛 fix bug sub menu Charts when collapsed 2019-07-07 11:56:52 +07:00
zuiidea a2432022a1 ✨ Updating manifest logo and adding portugal flag image. 2019-07-02 17:47:16 +08:00
zuiidea ea5ee96bdc 🎨 Improving format of the code. 2019-07-06 11:02:56 +08:00
zuiidea fe954092a4 🐛 Fixing dva history.listen multiple triggers. 2019-07-06 10:50:50 +08:00
zuiidea 5e148fec92 Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2019-07-06 09:43:30 +08:00
Baorong Li 5daa2a9548 add moment locale setting 2019-07-05 22:26:29 +08:00
Baorong Li f1913f7b18 add pt_BR locale-provider in layout 2019-07-05 22:16:54 +08:00
zuiidea 65a453553e ✨ Updating mock avatar image. 2019-07-05 19:52:37 +08:00
Baorong Li 29da8f24da Merge pull request #989 from tuantvk/master
🐛 fix remove and update user error handleRefresh
2019-06-29 09:57:46 -05:00
tuantv 3443ad9968 🐛 fix edit and update user error handleRefresh 2019-06-29 21:19:57 +07:00
Baorong Li 838dc93eff bump antd-admin@5.1.1 2019-06-29 10:56:03 +08:00
Baorong Li 07ef68ec1f Merge remote-tracking branch 'origin/develop' 2019-06-29 10:54:10 +08:00
Baorong Li 3cb7f86086 fix login jump to /enundefined 2019-06-29 10:49:11 +08:00
Baorong Li fc9565c157 add a flag to detect refresh saving query times in model/app.js 2019-06-24 20:50:09 +08:00
Baorong Li 557f6022f3 bump antd-admin@5.1.0 2019-06-24 16:05:28 +08:00
Baorong Li d0a56169e3 revert dispatch query in model/app.js 2019-06-24 15:40:44 +08:00
Baorong Li f7d6e2b4ed Merge pull request #984 from lovemegowin/master
refactor user,menu,permission storage strategy
2019-06-24 15:26:06 +08:00
lovemegowin df82ee42fd fix #985 , close #985 2019-06-24 15:20:25 +08:00
lovemegowin a29d761483 refactor user, menu, permission storage strategy then make full loader unnecessary 2019-06-21 15:26:06 +08:00
lovemegowin 713a86b9d6 add null point assert 2019-06-21 15:23:19 +08:00
lovemegowin d6250f16b0 fullScreen loader is not always necessary refactor default spinning to false 2019-06-21 14:12:15 +08:00
Baorong Li 1c5d5c3788 upgrade umi@2.8.x 2019-06-20 16:31:00 +08:00
Baorong Li 699e9d9ff1 fix warning inlineCollapsed not control Menu under Sider 2019-06-04 15:47:35 +08:00
Baorong Li fad0cb931a use options instead of option in react-perfect-scrollbar 2019-06-04 15:34:45 +08:00
Baorong Li 5d7ff55869 upgrade dependency 2019-06-04 15:09:51 +08:00
Baorong Li 642ccb5b82 Merge pull request #975 from deepred5/master
fix: 关闭弹窗时有动画效果
2019-05-27 23:59:48 -05:00
深红 51a7ce0827 update: 关闭弹窗时销毁子元素,保证initialValue更新并且关闭弹窗时有动画效果 2019-05-28 10:27:27 +08:00
Baorong Li 157a54b11d Merge pull request #969 from ccyanxyz/patch-1
fix markdown code block in docs/layout.md
2019-05-04 18:32:34 -05:00
cyan be083d81fc fix markdown code block 2019-05-05 00:38:43 +08:00
zuiidea f6c869ad47 Merge pull request #965 from zuiidea/develop
✏️  Fixing typos, exlude => exclude.
2019-04-18 10:10:14 +08:00
zuiidea bef5b26509 ✏️ Fixing typos, exlude => exclude. 2019-04-18 09:58:16 +08:00
Baorong Li 59cfe24178 Merge branch 'develop'
# Conflicts:
#	package.json
2019-04-10 07:27:25 +08:00
Baorong Li 87d0d58ae8 Merge commit '0ac4839e948f7b1d34c90d33f4ece483bd9d2f48' 2019-04-10 07:24:20 +08:00
Baorong Li de8b6c972d bump antd-admin@5.0.6 2019-04-10 07:24:06 +08:00
Baorong Li 0ac4839e94 upgrade umi@2.6.x 2019-04-10 07:22:53 +08:00
Baorong Li 565bce6d8b refix #958 by reset form in componentDidUpdate 2019-04-05 09:02:25 +08:00
Baorong Li b278b028cf fix #958 redux form initialValues not updating with state 2019-04-04 16:45:28 +08:00
Baorong Li 33abd9369e fix #957 an flaw ignored 2019-03-19 10:59:37 +08:00
Baorong Li e6b2f7f271 fix #950 modify z-index in header 2019-03-13 16:59:12 +08:00
Baorong Li 0bd1e9cf59 fix #947 misspelled word cancel 2019-03-06 12:11:42 +08:00
Baorong Li 693625bf2c bump antd-admin@5.0.5 2019-03-05 16:23:16 +08:00
Baorong Li 3a6c587569 upgrade antd@3.14 2019-03-05 16:17:12 +08:00
Baorong Li bd85eaf0a0 fix less is not a command in prettier 2019-03-05 16:15:33 +08:00
Baorong Li 29aa0f416e fix Cannot read property 'addEventListener' of null #946 2019-03-05 16:15:02 +08:00
Baorong Li 5b32607911 bump antd-admin@5.0.4 2019-02-19 22:00:36 +08:00
Baorong Li 76e5359752 upgrade umi@2.5.0 2019-02-19 21:46:01 +08:00
Baorong Li 5ec4efbb6e reset default lang to en 2019-02-07 09:19:39 +08:00
Baorong Li f8bb7b421a remove description about support IE9/IE10 that not working well 2019-02-07 08:52:40 +08:00
Baorong Li 887c169aa8 upgrade and lock antd@3.13.0 2019-02-07 08:36:53 +08:00
Baorong Li 8c10dcc6c2 Merge pull request #939 from rrfaria/feature/pt-br
added pt-br language and some improvements to language control to route mocks
2019-02-07 08:08:01 +08:00
Rafael Faria 671da6b5fa added pt-br and some improvements to language control 2019-02-06 14:39:02 -02:00
Baorong Li 7fdb2f4ea8 bump antd-admin@5.0.3 2019-01-11 18:43:48 +08:00
Baorong Li 67388b31f5 enable umi treeShaking 2019-01-11 18:40:39 +08:00
Baorong Li 2379cca765 upgrade umi@2.4.0 & antd@3.12.x 2019-01-11 18:39:19 +08:00
Baorong Li 34be6651e5 fix #935 root path / will be not found after login 2019-01-10 17:36:23 +08:00
Baorong Li 10f8e3e8ef fix mix require / module.exports and import / export #934 2019-01-08 23:30:18 +08:00
Baorong Li 0c6ea8eb5c fix cannot read property 'hash' of undefined by turn off hardSource 2019-01-08 22:56:23 +08:00
Baorong Li 6e69b06e61 Publish antd-admin@5.0.2 2018-12-28 14:01:51 +08:00
Baorong Li 98ba383a68 upgrade umi@2.3 antd@3.11 2018-12-28 11:42:44 +08:00
Baorong Li 4e6d81a9bf Merge pull request #928 from luckcoding/fix-bread-link
fix bread route has no matching lang
2018-12-13 22:35:56 +08:00
Baorong Li 0e2c206023 Merge branch 'develop' into fix-bread-link 2018-12-13 22:35:47 +08:00
luckcoding 285f06d1e7 fix bread route has no matching lang 2018-12-13 16:57:49 +08:00
Baorong Li d03787a871 Publish antd-admin@5.0.1 2018-12-12 13:48:34 +08:00
zuiidea 6aead03f3e 🐛 Fix style error when menu is collapsed. 2018-12-12 11:35:44 +08:00
Baorong Li 0949a298c9 fix #924 404 Not Found after router change 2018-12-12 06:53:26 +08:00
Baorong Li 94c8e2168f fix #926 createUser api in services 2018-12-12 06:17:30 +08:00
Baorong Li 358134f417 fallback umi to 2.2.8 to fix #923 2018-12-09 23:07:16 +08:00
Baorong Li 7eb9e06452 upgrade antd@3.10.9, umi@2.3.0-beta.3 2018-12-01 11:29:09 +08:00
zuiidea fab06d5005 fix: 🐛 CI fails when pull request 2018-11-29 10:00:11 +08:00
Baorong Li 7483572b1d Merge pull request #921 from francolaiuppa/patch-1
Mini typo fixes for English docs, Configuration section.
2018-11-29 09:45:38 +08:00
Franco Laiuppa d1ce8e0739 Mini typo fixes
Hi! Great project!

I was reading the docs and noticed some typos regarding the layout names and the `exclude` parameter, so I've decided to fix it.
I'm new to this repo so I hope this is a valid edit if not please let me know and I'll change it.

Thanks!
2018-11-28 16:53:25 +01:00
zuiidea 16860f93ad Merge pull request #920 from alexxyzeng/alex
fix: show vertical centered modal in ie
2018-11-28 10:18:22 +08:00
xiayao 6ba45d5bc3 fix: show vertical centered modal in ie 2018-11-28 00:44:21 +08:00
zuiidea f230429ddd Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-11-21 10:36:51 +08:00
zuiidea 78c3b6d597 📝 Add some comments image to document. 2018-11-20 21:30:22 +08:00
Baorong Li cdbc2782ff chore: remove beta tag in version from package.json 2018-11-20 17:50:20 +08:00
zuiidea 108aca99b9 📝 Add documentation for Add Layout. 2018-11-18 23:08:12 +08:00
Baorong Li 7dd5dfb1bf fix: icons' format not right in manifest.json 2018-11-15 14:11:47 +08:00
zuiidea ee7a0fffc2 ⚡ Update manifest.json. 2018-11-15 00:11:17 +08:00
zuiidea 6999871860 📝 Add documentation for Add Luanguage. 2018-11-14 23:46:59 +08:00
zuiidea 6742207c77 🐛 Fix cannot translate fields with variables. 2018-11-14 22:44:46 +08:00
Baorong Li d71c29ee2e feat: enable pwa 2018-11-14 13:37:34 +08:00
zuiidea 6917d6b89a Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-11-12 23:31:11 +08:00
zuiidea c3f369f0b3 📝 Add documentation for API configuration. 2018-11-12 23:30:56 +08:00
Baorong Li 01abc5ca38 upgrade antd@3.10.5 2018-11-10 09:50:20 +08:00
Baorong Li 08a348090c upgrade umi@2.3.0-beta.1 2018-11-09 23:16:42 +08:00
Baorong Li 63b1ecf79f Upgrade umi@2.2.5 2018-11-09 11:26:19 +08:00
Baorong Li efe7e74375 fix #913 handleMenuClick is not defined 2018-11-07 16:23:36 +08:00
Baorong Li 6d552d22d9 add doc about custom http header #829 2018-11-05 11:23:43 +08:00
zuiidea 017af0ddfc 📝 Update docs. 2018-11-04 22:55:50 +08:00
zuiidea c2161ceca9 📝 Update README.md and package.json. 2018-11-04 21:08:43 +08:00
Baorong Li 140af31bec adjust user mock 2018-11-03 09:39:37 +08:00
zuiidea 1199e7e618 👷 Update travis.yml. 2018-11-02 19:27:55 +08:00
zuiidea 3fa24d00fa 📝 👷 Add some English docs, Update travis.yml. 2018-11-02 19:21:22 +08:00
zuiidea 5d23c77100 📝 Add some Chinese documentations. 2018-11-02 18:13:43 +08:00
zuiidea 286178fc5e 📝 Update README.md and Add README-zh_CN.md. 2018-11-02 18:08:29 +08:00
zuiidea f6621572df ⚡ Improving performance. 2018-11-02 18:06:28 +08:00
zuiidea d32b09d802 🔧 Change configuration file 2018-11-01 19:37:09 +08:00
zuiidea dbe86ec0a8 🐛 💄 Fix can't scroll on the table, Update the UI in the dashbord page. 2018-11-01 19:34:36 +08:00
zuiidea 5f8141148a :lipstick:Update logo and favicon. 2018-11-01 09:41:34 +08:00
zuiidea c7c24983cc :memo:Write the documentation of getting started. 2018-10-31 23:33:49 +08:00
zuiidea f80b6d366f :memo:Rewrite the documentation of app structure. 2018-10-30 22:32:59 +08:00
zuiidea 0b360eeebb fix some style, remove svg config. 2018-10-28 22:34:24 +08:00
zuiidea c92a1e1342 remove pwa config. 2018-10-28 20:44:19 +08:00
zuiidea c0963cbcd9 change umi version. 2018-10-27 14:09:35 +08:00
Baorong Li 4979d5cbc4 Upgrade umi@2.2.x 2018-10-26 17:17:55 +08:00
zuiidea ff85c1447b Upgrade umi@2.2.0-beta.8 2018-10-25 13:34:34 +08:00
Baorong Li df608b2dc1 remove yarn.lock 2018-10-25 09:29:49 +08:00
Baorong Li f38e0ce7e2 upgrade antd@3.10.x 2018-10-25 08:47:35 +08:00
zuiidea 0499b70218 Translation user and post page. 2018-10-24 18:52:56 +08:00
zuiidea f654b277fa Remove table animation. 2018-10-23 22:08:47 +08:00
zuiidea 95eeebb09e Add configuration for sticky primary layout header. 2018-10-23 16:29:35 +08:00
zuiidea bb61d7f7dc Optimize the Request page. 2018-10-20 17:03:26 +08:00
zuiidea d821a7cf59 Add automatic translation commend. 2018-10-18 23:13:55 +08:00
zuiidea 9db8827d4a Add automatic translation scripts. 2018-10-17 23:51:39 +08:00
zuiidea 0b17931c62 Menu supports multiple languages. 2018-10-16 16:20:48 +08:00
zuiidea c1df88c25f Added notification component on the Header. 2018-10-16 14:44:35 +08:00
zuiidea f6454e71f0 Added language switching drop-down menu. 2018-10-15 15:08:48 +08:00
zuiidea 66a6e55191 Added Scrollbar. 2018-10-12 22:05:16 +08:00
zuiidea 0a3fac2e72 Added component Scrollbar, Added avatar 2018-10-11 22:50:42 +08:00
zuiidea 2f928329d1 fix style. 2018-10-10 22:06:13 +08:00
zuiidea 9a5ff4aa98 mobile device supports drawer menu. 2018-10-09 11:46:19 +08:00
Baorong Li dd3c191139 upgrade umi@2.1 2018-09-28 14:17:23 +08:00
Baorong Li 9a702fb774 try to optimize city.js 2018-09-26 18:15:47 +08:00
Baorong Li d0c2713f20 fix login with wrong path 2018-09-22 18:31:20 +08:00
Baorong Li a6bf4286dc add favicon 2018-09-22 18:29:31 +08:00
zuiidea 08f40efd2b Optimization: cancel the request of the current page when the page jumps. 2018-09-20 19:55:32 +08:00
zuiidea 4e7795ec7c Optimization and rewriting PrimaryLayout. 2018-09-18 22:04:30 +08:00
zuiidea 5aa187334a Optimize mock related files and variable names. 2018-09-17 20:54:06 +08:00
zuiidea abfcf2460e Added new logo. 2018-09-17 17:22:29 +08:00
zuiidea bcd6248833 Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-09-17 10:52:33 +08:00
zuiidea baa5869fe5 doc:Initialize 2018-09-16 23:38:17 +08:00
Baorong Li 58f62d8145 add a simple e2e test and enable pwa 2018-09-16 12:32:54 +08:00
zuiidea 2044beb7f1 fix:Menu and breadcrumbs cannot be highlighted with the path. 2018-09-15 21:34:18 +08:00
zuiidea 5f8a298ece fix:change language after switching language login. 2018-09-15 18:06:24 +08:00
zuiidea 487b39f97c Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-09-15 17:50:48 +08:00
zuiidea c5724f208a Adjust the router to automatically add the current language prefix before the pathname in push and replace.
Added `pathMatchRegexp` to match routes and regexp if the route prefix is ignored
2018-09-15 17:50:15 +08:00
Baorong Li 03a23bab9a use dva-immer 2018-09-15 17:32:26 +08:00
zuiidea d58b6ce948 Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-09-15 12:28:34 +08:00
zuiidea 7c83c80d5d Support for dynamically loading language packs.
Load the `lodash` function as needed.
Added i18n related configuration.
2018-09-15 12:26:22 +08:00
Baorong Li 0801d83856 add github icon in GlobalFooter 2018-09-15 11:02:27 +08:00
zuiidea 8aa55330b4 Support antd-design-pro,Added language switching on login page. 2018-09-14 22:35:49 +08:00
Baorong Li ee10965f43 fix first page jump to login fail 2018-09-14 11:32:28 +08:00
zuiidea 755e19ed12 Use jslingui as the i18n solution. 2018-09-13 23:52:08 +08:00
zuiidea 40d3914b3c Optimize layout configuration to make it simpler and more flexible. 2018-09-13 20:20:25 +08:00
zuiidea 47fd515944 Using the decorator syntax, Fixed user page filter data by address. 2018-09-12 19:44:34 +08:00
zuiidea ba426defdd Optimize the utils function and add JSdoc
Change the variable color to Color.
Add package loadsh.isempty.
2018-09-12 18:10:09 +08:00
zuiidea a8bd1a587a Added eslint rule 'no-conole', Fixed request page and post page,Replace utils/enums.js to utils/contant.js 2018-09-12 16:00:36 +08:00
zuiidea 237efb4e72 Optimize the way to import api, Removed some configuration in utils/config.js. 2018-09-12 14:05:20 +08:00
zuiidea 0de24b8251 Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop 2018-09-11 22:00:29 +08:00
zuiidea 7077ef15f3 Added CI for document. 2018-09-11 22:00:18 +08:00
Baorong Li b3d5d11539 try add a simple test 2018-09-11 18:09:06 +08:00
Baorong Li 2522b971f1 clean README.md 2018-09-11 17:52:44 +08:00
Baorong Li c6be37ca09 fix login page miss 2018-09-11 17:52:16 +08:00
zuiidea ae8ac62938 Added docsify and update umi config. 2018-09-11 17:28:51 +08:00
zuiidea 349eb3216d Optimize .travis.yml. 2018-09-10 22:14:35 +08:00
zuiidea d1d559b1d6 Added travis. 2018-09-10 18:01:26 +08:00
zuiidea 7d5ad95cff Optimize file 'request.js',and remove code about cross domin. 2018-09-09 23:25:12 +08:00
zuiidea e09c22fc18 Merge branch 'develop' of https://github.com/zuiidea/antd-admin into develop
# Conflicts:
#	package.json
#	src/pages/dashboard/components/cpu.js
#	src/pages/dashboard/components/user.js
#	yarn.lock
2018-09-09 14:23:00 +08:00
zuiidea a7e84edad3 Added lint-staged and husky to unify code style. 2018-09-09 14:18:22 +08:00
zuiidea 0f466b2abe Added lint-statged and husky to unify code style. 2018-09-09 14:02:46 +08:00
Baorong Li 0ccdcdbc92 upgrade dep 2018-09-09 09:06:56 +08:00
Baorong Li 3d3f8e70dd remove MoonComponent in ECharts 2018-09-09 08:57:25 +08:00
Baorong Li 417215cfcc remove useless mock 2018-09-09 08:53:06 +08:00
Baorong Li ae8aba68f2 remove iconfont component related svg 2018-09-09 08:22:06 +08:00
zuiidea cd53b36e76 Deprecated component layer、Search、DataTable、Iconfont,because there are exist similar component in antd. 2018-09-08 23:39:49 +08:00
Baorong Li a44f5795fd remove iconfont component @part 2018-09-08 18:26:42 +08:00
zuiidea 556169871a Support Stylelint.
Added Prettierrc.
Optimize the configuration file .umirc.js, and Added annotations.
Replace eslint-plugin-umi to eslint-plugin-react-app as eslint bese plugin.
And so on.
2018-09-08 17:10:57 +08:00
zuiidea 261fbb8428 Support Stylelint.
Added Prettierrc.
Optimize the configuration file .umirc.js, and Added annotations.
Replace eslint-plugin-umi to eslint-plugin-react-app as eslint bese plugin.
And so on.
2018-09-08 17:10:20 +08:00
Baorong Li f02d39ace0 Merge pull request #891 from Louis-7/bugfix/motion-switch
Bugfix/motion switch
2018-09-04 15:58:00 +08:00
Louis-7 4d32829445 fix motion switch style on Users page 2018-09-04 15:06:48 +08:00
Baorong Li 5438e04fc5 Merge pull request #888 from Louis-7/bugfix/chart-shake
Bugfix/chart shake
2018-09-03 15:38:35 +08:00
Baorong Li 54bbe4d70a 🎉🎉 upgrade umi@2.0.0 2018-09-03 15:38:03 +08:00
Louis 78ece0c9fb Merge pull request #2 from Louis-7/bugfix/chart-shake
fix move mouse into chart will cause chart shake issue.
2018-09-03 15:26:48 +08:00
Louis-7 3407f9a0c1 fix move mouse into chart will cause chart shake issue. 2018-09-03 15:24:15 +08:00
Louis f1b78e8d1f Merge pull request #1 from Louis-7/bugfix/sidebar-shake
Bugfix/sidebar shake
2018-09-03 15:15:40 +08:00
Baorong Li df2fc9c32e Merge pull request #886 from Louis-7/bugfix/sidebar-shake
Bugfix/sidebar shake
2018-09-03 15:11:15 +08:00
Louis-7 cc5c319332 remove useless rule
Signed-off-by: Louis-7 <louisgh.cn@gmail.com>
2018-09-03 14:58:56 +08:00
Louis-7 43ef09dfed Revert "restrict rule"
This reverts commit 843bd1a088.
2018-09-03 14:57:04 +08:00
Louis-7 0c95751b8d restrict rule
Signed-off-by: Louis-7 <louisgh.cn@gmail.com>
2018-09-03 14:56:06 +08:00
Louis-7 843bd1a088 restrict rule
Signed-off-by: Louis-7 <louisgh.cn@gmail.com>
2018-09-03 14:54:20 +08:00
Louis-7 a0db71e571 Revert "fix sidebar shake once mouse over it"
This reverts commit 7fc14eddd9.
2018-09-03 13:28:13 +08:00
Louis-7 7fc14eddd9 fix sidebar shake once mouse over it
Signed-off-by: Louis-7 <louisgh.cn@gmail.com>
2018-09-03 13:18:46 +08:00
Baorong Li 7f2fdc383b upgrade query-string@6 2018-08-22 15:58:12 +08:00
Baorong Li ff2caecb3a Merge pull request #877 from sorrycc/refact/migrate-to-umi-2
[WIP] refact: migrate to umi@2
2018-08-22 15:32:08 +08:00
sorrycc d01df1ef13 refact: migrate to umi@2 2018-08-22 15:12:01 +08:00
Baorong Li cd55df3a15 upgrade antd@3.8.0 2018-08-05 22:46:55 +08:00
Baorong Li ce59f3e7b2 Update README.md 2018-08-02 17:25:18 +08:00
Baorong Li 4d722f103a Update README.md 2018-08-02 17:20:02 +08:00
Baorong Li c1bc6f27b1 upgrade antd@3.7.3 2018-08-02 16:50:34 +08:00
Baorong Li ed88c087bf forgot to remove css part in dashboard/user 2018-07-21 13:15:16 +08:00
Baorong Li 4e337caa07 remove unuse png 2018-07-21 12:49:56 +08:00
Baorong Li ea3929b4c2 cut project size 2018-07-21 12:43:10 +08:00
Baorong Li 9eff4ca129 modify mock method in users delete, fix #859 2018-07-20 11:48:33 +08:00
Baorong Li d6d94e2121 upgrade antd@3.7.0 2018-07-20 11:18:42 +08:00
Baorong Li 737c0236d6 Merge pull request #844 from JChord/master
refactor:修改父ID取值逻辑
2018-06-25 12:42:14 +08:00
DosLin 69571f2916 refactor:修改父ID取值逻辑 2018-06-25 10:53:10 +08:00
Baorong Li 6dffa7378c Merge pull request #842 from JChord/master
fix:进入动态路由下的二级页面菜单栏无法选中问题
2018-06-22 17:02:08 +08:00
DosLin c2a7bc7106 fix:进入动态路由下的二级页面菜单栏无法选中问题 2018-06-22 16:50:58 +08:00
Baorong Li e752750c9e update doc, fix #839 2018-06-20 09:07:52 +08:00
Baorong Li 32bde8f69e Merge pull request #834 from codeif/master
Rename variable name  domin  to domain
2018-06-08 10:26:44 +08:00
codeif b5f9ef51f1 Rename variable name domin
to domain
2018-06-07 21:53:54 +08:00
Baorong Li 8c10be6ee6 upgrade umi@1.3.5 => fix #723 2018-06-01 15:56:37 +08:00
zuiidea c1e3872792 Fix README conflic 2018-05-25 17:37:23 +08:00
zuiidea c3eef53e4d Merge develop and update to 5.0.0-beta 2018-05-25 17:20:20 +08:00
zuiidea a1b9c0c33d Fix the files under the 'public' dicrectoy can't visit after build 2018-05-25 17:13:30 +08:00
Baorong Li c49b0edbe9 update umi@1.3.4 & antd@3.5.3 [use MOCK=none for production] 2018-05-25 13:49:13 +08:00
Baorong Li 0fd8824ad7 fix logout not work #826, #669 2018-05-25 11:52:39 +08:00
Baorong Li 973199135f update umi@1.3.3 antd@3.5.2 [no production for this commit] 2018-05-17 18:32:33 +08:00
Baorong Li 43b7b21ad3 update umi@1.3.1 [no production for this commit] 2018-05-15 22:04:42 +08:00
Baorong Li ba96ebb874 update dep 2018-05-12 14:34:00 +08:00
Baorong Li c66f086f42 fix #372 update navOpenKeys when copy link open 2018-05-05 12:11:03 +08:00
Baorong Li 07b2175e92 upgrade dep antd@3.5.0, umi@1.2.6 2018-05-05 12:05:07 +08:00
Baorong Li d245a1eabc upgrade umi@1.2.1 2018-04-24 23:00:31 +08:00
Baorong Li f1e2fd3b18 fix: alias 2018-04-24 22:51:12 +08:00
Baorong Li a6b3dba92e cut moment locale/lodash size & revert d06ee20 2018-04-13 18:19:22 +08:00
Baorong Li 9fd0abe6ea update dep 2018-04-12 15:21:03 +08:00
Baorong Li d06ee20c47 remove dep highcharts-more/highcharts-exporting 2018-04-12 12:02:59 +08:00
Baorong Li 2ef1fa0367 upgrade dep umi 2018-04-12 12:00:35 +08:00
Baorong Li 9d459106c1 Update README.md 2018-04-10 17:27:19 +08:00
Baorong Li cd5a52a8fc Merge pull request #793 from iversonwool/add_leehow
comfirmLoding
2018-04-10 09:09:40 +08:00
李浩 d89320f578 comfirmLoding 2018-04-10 08:59:16 +08:00
Baorong Li df5ce2991e improve by github.com/sorrycc/blog/issues/66 2018-03-31 15:36:26 +08:00
Baorong Li 668c9c7dfe upgrade umi@1.1.4 (support dll gzip & cache) 2018-03-30 15:25:39 +08:00
Baorong Li 9bd13055c0 5.0.0-beta coming 2018-03-29 11:26:30 +08:00
Baorong Li 9f3adda59d upgrade dependencies 2018-03-29 11:16:11 +08:00
Baorong Li bfa7aaecb8 Merge pull request #770 from umijs/refact/migrate-to-umi
Refact/migrate to umi
2018-03-29 10:17:07 +08:00
Baorong Li 9d4310d8e0 Merge branch 'develop' into refact/migrate-to-umi 2018-03-29 10:16:31 +08:00
Baorong Li b3555b01f3 Merge branch 'master' into develop 2018-03-29 10:08:50 +08:00
chencheng 74895fbb0d fix: uglifyjs problem, use query-string@5 2018-03-26 17:59:22 +08:00
chencheng 5f04d19d2d add lost dep query-string 2018-03-26 17:18:43 +08:00
chencheng 0fef06e0c6 use umi-plugin-dll to enable dll 2018-03-26 17:15:27 +08:00
chencheng 89d22451c5 fix: svg don't work 2018-03-24 18:08:16 +08:00
chencheng fb49056c73 make login work 2018-03-24 14:39:54 +08:00
chencheng a3071819c4 eslint 2018-03-24 09:07:36 +08:00
chencheng d4e10ad5c2 refact the directory structure 2018-03-23 23:31:09 +08:00
chencheng 59e9a1053e refact config files and package.json 2018-03-23 22:51:41 +08:00
Baorong Li 308fc09b33 Merge pull request #767 from iversonwool/add_leehow
refresh bug in router/user
2018-03-16 14:30:42 +08:00
李浩 99ec9facd3 refresh bug 2018-03-16 10:29:32 +08:00
Baorong Li 2a96d7a5f6 Merge pull request #749 from nazarlitvin/remove-async
remove unnecessary async functions
2018-03-10 11:43:00 +08:00
Baorong Li 195e1d17f8 Merge pull request #755 from LizPeng/patch-1
Update Echarts version
2018-03-09 14:00:03 +08:00
Baorong Li 580ff59b3d Create issue_template.md 2018-03-09 11:18:39 +08:00
Baorong Li cfa5aae5da fix #754 add set port guide 2018-03-09 10:58:54 +08:00
Baorong Li 761125735a fix #572, move cross-env to devDependencies 2018-03-08 17:53:12 +08:00
zuiidea d1b12ff0e1 Fix issue resulting User page showing wrong content when delete alll items in last page. 2018-03-01 17:45:34 +08:00
zuiidea a47176a4e5 fix user table 2018-02-27 19:17:59 +08:00
Dustin bc3d7fb39a Update Echarts version
require Echarts  ^4.0.0
2018-02-27 19:02:53 +08:00
zuiidea 458548150c fix popup position 2018-02-26 20:02:46 +08:00
zuiidea f6e11bb464 eslint fix 2018-02-26 19:35:58 +08:00
zuiidea 479fc647c3 Merge branch 'Maple-Ro-master' into develop 2018-02-26 19:19:56 +08:00
zuiidea 9a4c63390d locale example 2018-02-26 19:19:42 +08:00
zuiidea 42cd1221fa logo text fadeIn 2018-02-26 19:13:43 +08:00
zuiidea 98b773fdc3 logo text fadeIn 2018-02-26 19:13:12 +08:00
zuiidea cd54fcbf52 Merge branch 'hiooyUI-master' into develop 2018-02-26 10:58:30 +08:00
nazarlitvin bd68f8c631 remove unnecessary async functions 2018-02-19 22:16:33 +02:00
liutsing 3fde5aaa3c 1、本地化
2、解决侧边栏收起时菜单图标悬浮下无菜单文字显示的问题
2018-02-16 01:22:44 +08:00
Nelson Kuang 2f34de5602 修复左侧菜单合拢时mouseover提示空白视觉bug
当一级菜单没子菜单时,mouseover会弹出tooltips,但提示空白无内容
2018-02-07 17:25:16 +08:00
zuiidea 2de1e81661 Merge pull request #711 from zuiidea/develop
Develop
2017-12-27 15:41:00 +08:00
zuiidea cea60c5683 update Readme 2017-12-27 15:39:45 +08:00
zuiidea f16e104f73 fix all echarts example 2017-12-26 14:14:52 +08:00
zuiidea c397f552c3 fix some style 2017-12-26 11:31:05 +08:00
zuiidea 11c4ac803e fix users pagination 2017-12-25 20:39:48 +08:00
zuiidea 09b9a100de fix header style 2017-12-25 19:54:48 +08:00
zuiidea 0e59df39ee Compatibility upgrade 2017-12-25 18:08:25 +08:00
zuiidea 30254a2ec7 upgrade package 2017-12-25 10:51:36 +08:00
zuiidea cd796a6db9 fix Search style 2017-11-24 11:27:00 +08:00
zuiidea 6ba75de576 add backTop 2017-11-24 11:02:52 +08:00
zuiidea a3637b3a99 user search 2017-11-24 10:32:12 +08:00
zuiidea 85ec09ec9a Merge branch 'weishijun14-patch-1' into develop 2017-11-24 10:28:25 +08:00
zuiidea eb683b98e7 Merge branch 'patch-1' of https://github.com/weishijun14/antd-admin into weishijun14-patch-1 2017-11-24 10:28:17 +08:00
zuiidea 9221173309 Merge branch 'silentred-master' into develop 2017-11-24 10:26:15 +08:00
zuiidea 55a96f41c6 Merge branch 'master' of https://github.com/silentred/antd-admin into silentred-master 2017-11-24 10:25:42 +08:00
zuiidea ce510e79c7 Merge branch 'nazarlitvin-pagination' into develop 2017-11-24 10:24:56 +08:00
zuiidea 3d4f2a8814 Merge branch 'pagination' of https://github.com/nazarlitvin/antd-admin into nazarlitvin-pagination 2017-11-24 10:24:22 +08:00
nazarlitvin 38e24edd7b fix incorrect pagination property 2017-11-22 16:01:49 +02:00
Jason W 841c987a1a Update package.json
update package.json
2017-11-03 04:21:16 -05:00
shijun Wei dc26f7d25e update query to search
history 的 location 属性上不再包含 query。
2017-11-02 13:19:09 +08:00
zuiidea bc754e683e assets 2017-10-30 14:07:09 +08:00
zuiidea c7acc8db4b Merge pull request #649 from zuiidea/develop
Develop
2017-10-30 11:56:42 +08:00
zuiidea 057acc514f Merge branch 'smackgg-master' into develop 2017-10-30 11:52:52 +08:00
zuiidea 53ce7d08fb Merge branch 'xx1595140265-patch-1' into develop 2017-10-30 11:51:27 +08:00
zuiidea 8ffd68a4e2 Merge branch 'dkvirus-patch-1' into develop 2017-10-30 11:50:18 +08:00
zuiidea 766653ee7a merge #640 2017-10-30 11:49:27 +08:00
zuiidea 9dedcc68c3 Merge branch 'the-wang-master' into develop 2017-10-30 11:28:23 +08:00
zuiidea 5ea2b3c9b8 extend chart 2017-10-30 11:25:53 +08:00
汪亚辉 d2ac91839a 面包屑导航支持多级参数
例:
当前router为/:appkey/:packageId
父级router为/:appkey
当前pathname为/com.mock.ly/58

可以看出appkey=com.mock.ly, packageId=58
目前这种场景下,面包屑中父级连接直接展示为/:appkey,没有解析

本次commit支持根据当前多param去填充面包屑中父级页面连接
2017-10-24 18:55:06 +08:00
the-wang bfca2746d8 Merge pull request #1 from zuiidea/master
up
2017-10-24 18:54:10 +08:00
dkvirus b417065ac3 Update Menu.js
在 Slider.js 中调用 Menu 组件,并没有传入 handleClickNavMenu 属性的值,代码优化。
2017-10-12 16:27:52 +08:00
xuxue abdc97f087 Update index.js
取错值,修正
2017-10-10 04:23:34 -05:00
smackxu 07016c6c26 Fixed dark theme menu bug 2017-09-12 16:27:22 +08:00
zuiidea b8162060cd Merge pull request #581 from zuiidea/develop
Develop
2017-09-11 10:27:01 +08:00
zuiidea 36fb5d293c delete extra code 2017-09-11 10:19:43 +08:00
zuiidea 429280a97a Merge branch 'DiroKate-master' into develop 2017-09-11 10:18:37 +08:00
zuiidea 7ac36c779e merge #332 2017-09-11 10:18:20 +08:00
zuiidea d2e7b464e3 megre #563 2017-09-11 10:00:25 +08:00
zuiidea 25839ea99f Merge branch 'akliyiping-develop' into develop 2017-09-11 09:55:27 +08:00
zuiidea 9c99581aa6 Merge branch 'develop' of https://github.com/akliyiping/antd-admin into akliyiping-develop 2017-09-11 09:55:05 +08:00
zuiidea e42c21f0eb fix #574 2017-09-11 09:53:22 +08:00
zuiidea 782bf214e5 Merge branch 'dong894-master' into develop 2017-09-11 09:47:45 +08:00
zuiidea a8a4496c7a Merge branch 'master' of https://github.com/dong894/antd-admin into dong894-master 2017-09-11 09:47:29 +08:00
zuiidea f5f013ff23 Merge branch 'develop' 2017-09-11 09:35:39 +08:00
zuiidea 8cff3af897 Merge branch 'master' of https://github.com/zuiidea/antd-admin 2017-09-11 09:35:32 +08:00
zuiidea 322d5a6d0e merge #576 2017-09-11 09:35:09 +08:00
zuiidea 2ee26f51a7 Merge branch 'yangbin1994-bug575' into develop 2017-09-11 09:27:00 +08:00
zuiidea e670ed2f96 Merge branch 'bug575' of https://github.com/yangbin1994/antd-admin into yangbin1994-bug575 2017-09-11 09:26:36 +08:00
杨斌 601a03b5b4 fix bug#575 2017-09-10 02:26:27 +08:00
dongyulei 00582e70ff 修复 4.3.5 中用户画面翻页无效的问题 2017-09-10 00:02:10 +08:00
zuiidea fa4385055b Update README.md 2017-09-09 14:54:18 +08:00
zuiidea 01f4de55df Merge pull request #571 from zuiidea/develop
Develop
2017-09-09 14:52:50 +08:00
zuiidea dedd34e8e8 4.3.5 2017-09-09 14:50:47 +08:00
zuiidea d1b373201e fix some grammar and details 2017-09-09 14:20:51 +08:00
zuiidea dbcc90e7ad 出去吃烧烤,回来接着看 2017-09-08 16:41:05 +08:00
zuiidea 87fce74d5b Update app.js
fix mobile Header menu
2017-09-08 15:45:38 +08:00
zuiidea 5c51679ad7 Merge branch 'yangbin1994-dva2.0' into develop 2017-09-08 14:56:35 +08:00
zuiidea 6d17b5b876 Merge branch 'yangbin1994-dva2.0' 2017-09-08 14:51:51 +08:00
杨斌 1288853112 解决冲突 2017-09-08 14:19:40 +08:00
杨斌 d3e7e17789 query-string 2017-09-08 13:27:07 +08:00
eric 6077d74f10 .gitignore 增加排除项 2017-09-07 11:00:00 +08:00
杨斌 7bf031699a add LoadingComponent 2017-09-06 20:36:14 +08:00
杨斌 a6eb693636 dva@2.0 2017-09-06 11:13:26 +08:00
zuiidea 39c377e0e2 Merge pull request #552 from zuiidea/develop
add entry.ejs and add lte IE10 polyfill
2017-09-06 09:56:25 +08:00
zuiidea 67b90c4df0 add entry.ejs and add lte IE10 polyfill 2017-09-06 09:55:41 +08:00
zuiidea 0e2727f9c8 Merge pull request #542 from zuiidea/develop
4.3.4
2017-09-04 11:48:32 +08:00
zuiidea 0cf02e7324 4.3.4 2017-09-04 11:47:24 +08:00
zuiidea 68c9f2b65f Merge pull request #540 from zuiidea/develop
fix login success redirect;fix css load delay
2017-09-04 11:03:13 +08:00
zuiidea 587b1f6b9d fix login success redirect;fix css load delay 2017-09-04 11:01:31 +08:00
zuiidea d94580a253 Merge pull request #302 from jackple/patch-1
Update app.js
2017-09-04 09:58:42 +08:00
zuiidea 531e3c0fcc Merge pull request #532 from p2227/patch-1
fixes #529
2017-09-04 09:57:39 +08:00
zuiidea d68de7a30c Merge pull request #378 from chenkang084/remote
fixed:when click breadcrumb back to other page,the left menu displaye…
2017-09-04 09:57:24 +08:00
zuiidea 45cb70f006 Merge pull request #518 from quanpower/patch-1
Update roadhogrc.js
2017-09-04 09:56:18 +08:00
kuang af85384f11 fixes #529 2017-08-28 23:20:38 -05:00
William Zhang 208539134f Update roadhogrc.js
proxy加引号,我这报错了,去掉了正常运行
2017-08-19 18:06:16 +08:00
zuiidea a3f41e3d64 Merge pull request #496 from zuiidea/develop
fix weather
2017-08-13 17:20:42 +08:00
zuiidea 3855c402c9 fix weather 2017-08-13 17:18:46 +08:00
zuiidea 6a58d8434b Merge pull request #493 from zuiidea/develop
fix lint
2017-08-10 19:11:39 +08:00
zuiidea d26a92ce79 fix lint 2017-08-10 19:11:10 +08:00
zuiidea 0d20717c3c Merge pull request #488 from zuiidea/develop
update
2017-08-09 09:46:45 +08:00
zuiidea a0d81dcda9 update 2017-08-08 19:46:38 +08:00
zuiidea 4490af8553 Merge pull request #486 from zuiidea/develop
Develop
2017-08-07 14:43:08 +08:00
zuiidea 75cc86152d 4.3.2 2017-08-07 14:28:32 +08:00
zuiidea 3d9f263330 add Alias 2017-08-07 11:46:42 +08:00
zuiidea 70b5d05f1a format 2017-08-03 14:01:49 +08:00
zuiidea 4da23b9133 version.js 2017-08-03 13:50:43 +08:00
zuiidea da1c52e82b npm run build:new 2017-07-31 17:28:03 +08:00
zuiidea 6ae39bfd55 Merge pull request #453 from phproot/master
fix README.md
2017-07-31 11:51:42 +08:00
Code d86f0ebd78 fix README.md 2017-07-31 11:38:39 +08:00
zuiidea ecbd8bf51e fix little bug 2017-07-31 10:49:15 +08:00
zuiidea 0c9fabe2b4 Merge pull request #452 from zuiidea/develop
fix build:dll
2017-07-30 23:51:07 +08:00
zuiidea 0f27528d2f fix build:dll 2017-07-30 23:50:12 +08:00
zuiidea a36d44d402 Merge pull request #450 from zuiidea/develop
Develop
2017-07-30 14:54:15 +08:00
zuiidea 37deddc911 update 4.3.0 2017-07-30 14:51:02 +08:00
zuiidea 52ee780e40 fix build error 2017-07-30 14:25:04 +08:00
zuiidea 057853cfde fix ejs-loader 2017-07-29 22:30:39 +08:00
zuiidea c0222c3957 add version build 2017-07-28 19:26:05 +08:00
zuiidea 00d8fc5ea5 add build:dll 2017-07-27 20:02:20 +08:00
zuiidea 1e08d7adaa optimized code 2017-07-27 19:13:31 +08:00
zuiidea b2b0aa872f Merge pull request #431 from zuiidea/develop
pagenation style
2017-07-21 19:03:48 +08:00
zuiidea a2b4ee4047 Merge branch 'master' into develop 2017-07-21 19:03:42 +08:00
zuiidea c6b477c993 pagenation style 2017-07-21 19:02:11 +08:00
zuiidea 548d7a8ddb Merge pull request #427 from zuiidea/develop
fix webpack.resoleve.alias module import/no-unresolved
2017-07-19 10:33:14 +08:00
zuiidea 755c1250e5 fix webpack.resoleve.alias module import/no-unresolved 2017-07-19 10:32:39 +08:00
zuiidea c5ebb91980 Merge pull request #413 from afc163/patch-1
No need customzied card style
2017-07-17 10:50:26 +08:00
zuiidea ae12492887 Merge pull request #416 from zuiidea/develop
update package.json
2017-07-17 10:48:01 +08:00
zuiidea 28a5863701 update package.json 2017-07-17 10:47:31 +08:00
偏右 bf65aa5478 Don't need customzied card style
https://github.com/ant-design/ant-design/issues/6833
2017-07-14 13:49:28 +08:00
zuiidea acd3fe8337 Merge pull request #407 from zuiidea/develop
fix permission.visit is null
2017-07-12 19:41:58 +08:00
zuiidea 3ad5a6cfb6 fix permission.visit is null 2017-07-12 19:41:32 +08:00
zuiidea c278c8f6f8 Merge pull request #393 from zuiidea/develop
666
2017-07-10 10:08:26 +08:00
zuiidea 71c75e15ff 666 2017-07-10 10:07:22 +08:00
zuiidea ec8db0e0fb Merge pull request #389 from zuiidea/develop
Develop
2017-07-06 19:16:04 +08:00
zuiidea 89c58b2f98 Merge pull request #385 from zuiidea/develop
Develop
2017-07-05 19:46:48 +08:00
rengised a320c77ecb Merge branch 'master' into remote 2017-07-05 15:08:43 +08:00
zuiidea ce1d957212 Merge pull request #382 from zuiidea/develop
Develop
2017-07-05 13:56:00 +08:00
chenkang1 7f091d7642 fixed:the error request should be capured in catch method 2017-07-03 14:06:28 +08:00
chenkang1 d8f222f312 fixed:when click breadcrumb back to other page,the left menu displayed the last select item 2017-07-01 16:08:03 +08:00
diro 38637ef167 Example for the ”custom className iconfont” 2017-06-06 21:10:45 +08:00
diro fe8527e72e enable the custom ClassName 2017-06-06 21:08:42 +08:00
diro da64cac414 fix the wrong iconName 2017-06-06 20:45:56 +08:00
jackple f6021cbaa4 Update app.js
先判断menu长度,解决当远程加载menu时刷新页面,当前位置不会选中
2017-05-21 20:32:50 +08:00
301 changed files with 23244 additions and 7042 deletions
+3
View File
@@ -0,0 +1,3 @@
BROWSER=none
HOST=0.0.0.0
PORT=7000
+6
View File
@@ -1 +1,7 @@
src/**/*-test.js
src/public
src/routes/chart/ECharts/theme
src/routes/chart/highCharts/mapdata
src/locales/_build/
src/locales/**/*.js
docs/**/*.js
+4 -31
View File
@@ -1,35 +1,8 @@
{
"extends": "airbnb",
"extends": "react-app",
"rules": {
"semi": [2, "never"],
"no-console": 0,
"comma-dangle": [2, "always-multiline"],
"max-len": 0,
"react/jsx-first-prop-new-line": 0,
"space-before-function-paren": [2, "always"],
"no-unused-expressions": [0, {
"allowShortCircuit": true,
"allowTernary": true
}],
"arrow-body-style": [0, "never"],
"func-names": 0,
"prefer-const": 0,
"no-extend-native": 0,
"no-param-reassign": 0,
"no-restricted-syntax": 0,
"no-eval": 0,
"react/jsx-no-bind": 0,
"no-unused-vars": [2, { "ignoreRestSiblings": true }],
"no-underscore-dangle": 0,
"global-require": 0,
},
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 8,
"ecmaFeatures": {
"jsx": true,
"experimentalObjectRestSpread": true
}
"jsx-a11y/href-no-hash": "off",
"no-console": "warn",
"valid-jsdoc": "warn"
}
}
+8
View File
@@ -0,0 +1,8 @@
> 请酌情提供细节,并保持issue精简便于查阅
> 1. 功能需求 => 详细说明
> 2. Bug反馈
> 2.1 简单描述下报错
> 2.2 你期望什么结果
> 2.3 如何操作导致的
> 2.4 可提供运行环境信息
> 3. 代码求助 => 可以提,未必及时答复
+20 -1
View File
@@ -1,4 +1,23 @@
coverage
dist
node_modules
yarn.lock
npm-debug.log
yarn-error.log
yarn.lock
package-lock.json
# ide
.idea
# Mac General
.DS_Store
.AppleDouble
.LSOverride
# umi
.umi
.umi-production
# jslingui
src/locales/_build
src/locales/**/*.js
+6
View File
@@ -0,0 +1,6 @@
*.svg
*.ejs
.DS_Store
.umi
.umi-production
src/locales/**/*.json
+5
View File
@@ -0,0 +1,5 @@
{
"semi": false,
"singleQuote": true,
"trailingComma": "es5"
}
-40
View File
@@ -1,40 +0,0 @@
const path = require('path')
const svgSpriteDirs = [
path.resolve(__dirname, 'src/svg/'),
require.resolve('antd').replace(/index\.js$/, ''),
]
export default {
entry: 'src/index.js',
svgSpriteLoaderDirs: svgSpriteDirs,
"theme": "./theme.config.js",
// 接口代理示例
// "proxy": {
// "/api/v1": {
// "target": "http://api.zuiidea.com",
// "changeOrigin": true,
// "pathRewrite": { "^/api/v1" : "/v1" }
// },
// "/api/v2": {
// "target": "http://192.168.0.110",
// "changeOrigin": true,
// "pathRewrite": { "^/api/v2" : "/api/v2" }
// }
// },
"env": {
"development": {
"extraBabelPlugins": [
"dva-hmr",
"transform-runtime",
["import", { "libraryName": "antd", "style": true }]
]
},
"production": {
"extraBabelPlugins": [
"transform-runtime",
["import", { "libraryName": "antd", "style": true}]
]
}
}
}
-5
View File
@@ -1,5 +0,0 @@
const mock = {}
require('fs').readdirSync(require('path').join(__dirname + '/src/mock')).forEach(function(file) {
Object.assign(mock, require('./src/mock/' + file))
})
module.exports = mock
+9
View File
@@ -0,0 +1,9 @@
{
"extends": ["stylelint-config-standard", "stylelint-config-prettier"],
"rules": {
"declaration-empty-line-before": null,
"no-descending-specificity": null,
"selector-pseudo-class-no-unknown": null,
"selector-pseudo-element-colon-notation": null
}
}
+27
View File
@@ -0,0 +1,27 @@
language: node_js
node_js:
- node
script:
- npm run build
before_install:
- |
if [ "$TRAVIS_BRANCH" = "develop" ]; then
for prefixed_envvar in ${!DEV_*}; do
eval export ${prefixed_envvar#DEV_}="${!prefixed_envvar}"
done
elif [ "$TRAVIS_BRANCH" = "master" ]; then
for prefixed_envvar in ${!PROD_*}; do
eval export ${prefixed_envvar#PROD_}="${!prefixed_envvar}"
done
else
for prefixed_envvar in ${!TEST_*}; do
eval export ${prefixed_envvar#TEST_}="${!prefixed_envvar}"
done
fi
- openssl aes-256-cbc -K $encrypted_18b2305b78c9_key -iv $encrypted_18b2305b78c9_iv -in config/id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host $HOST\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- yarn global add now
after_script:
- scp -o stricthostkeychecking=no -r ./dist root@$HOST:$BUILD_DIR
- cd ./docs && now -A $DOC_NOW_CONFIG -t $NOW_TOKEN && now alias -A $DOC_NOW_CONFIG -t $NOW_TOKEN
+102
View File
@@ -0,0 +1,102 @@
// https://umijs.org/config/
import { resolve } from 'path'
import { i18n } from './src/utils/config'
export default {
ignoreMomentLocale: true,
targets: { ie: 9 },
treeShaking: true,
plugins: [
[
// https://umijs.org/plugin/umi-plugin-react.html
'umi-plugin-react',
{
dva: { immer: true },
antd: true,
dynamicImport: {
webpackChunkName: true,
loadingComponent: './components/Loader/Loader',
},
routes: {
exclude: [
/model\.(j|t)sx?$/,
/service\.(j|t)sx?$/,
/models\//,
/components\//,
/services\//,
/chart\/Container\.js$/,
/chart\/ECharts\/.+Component\.js$/,
/chart\/ECharts\/.+ComPonent\.js$/,
/chart\/ECharts\/theme\/.+\.js$/,
/chart\/highCharts\/.+Component\.js$/,
/chart\/highCharts\/mapdata\/.+\.js$/,
/chart\/Recharts\/.+Component\.js$/,
/chart\/Recharts\/Container\.js$/,
],
update: routes => {
if (!i18n) return routes
const newRoutes = []
for (const item of routes[0].routes) {
newRoutes.push(item)
if (item.path) {
newRoutes.push(
Object.assign({}, item, {
path:
`/:lang(${i18n.languages
.map(item => item.key)
.join('|')})` + item.path,
})
)
}
}
routes[0].routes = newRoutes
return routes
},
},
dll: {
include: ['dva', 'dva/router', 'dva/saga', 'dva/fetch', 'antd/es'],
},
pwa: {
manifestOptions: {
srcPath: 'manifest.json',
},
},
},
],
],
// Theme for antd
// https://ant.design/docs/react/customize-theme
theme: './config/theme.config.js',
// Webpack Configuration
proxy: {
'/api/v1/weather': {
target: 'https://api.seniverse.com/',
changeOrigin: true,
pathRewrite: { '^/api/v1/weather': '/v3/weather' },
},
},
alias: {
api: resolve(__dirname, './src/services/'),
components: resolve(__dirname, './src/components'),
config: resolve(__dirname, './src/utils/config'),
models: resolve(__dirname, './src/models'),
routes: resolve(__dirname, './src/routes'),
services: resolve(__dirname, './src/services'),
themes: resolve(__dirname, './src/themes'),
utils: resolve(__dirname, './src/utils'),
},
extraBabelPresets: ['@lingui/babel-preset-react'],
extraBabelPlugins: [
[
'import',
{
libraryName: 'lodash',
libraryDirectory: '',
camel2DashComponentName: false,
},
'lodash',
],
],
}
+87
View File
@@ -0,0 +1,87 @@
<p align="center">
<a href="http://github.com/zuiidea/antd-admin">
<img alt="antd-admin" height="64" src="./docs/_media/logo.svg">
</a>
</p>
<h1 align="center">AntD Admin</h1>
<div align="center">
一套优秀的中后台前端解决方案
[![antd](https://img.shields.io/badge/antd-^3.10.0-blue.svg?style=flat-square)](https://github.com/ant-design/ant-design)
[![umi](https://img.shields.io/badge/umi-^2.2.1-orange.svg?style=flat-square)](https://github.com/umijs/umi)
[![GitHub issues](https://img.shields.io/github/issues/zuiidea/antd-admin.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/issues)
[![MIT](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](http://opensource.org/licenses/MIT)
![Travis (.org)](https://img.shields.io/travis/zuiidea/antd-admin.svg)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/pulls)
[![Gitter](https://img.shields.io/gitter/room/antd-admin/antd-admin.svg)](https://gitter.im/antd-admin/antd-admin)
</div>
- 在线演示 - [https://antd-admin.zuiidea.com](https://antd-admin.zuiidea.com)
- 使用文档 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/](https://doc.antd-admin.zuiidea.com/#/zh-cn/)
- 常见问题 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/faq](https://doc.antd-admin.zuiidea.com/#/zh-cn/faq)
- 更新日志 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/change-log](https://doc.antd-admin.zuiidea.com/#/zh-cn/change-log)
[English](./README.md) | 简体中文
## 特性
- 国际化,源码中抽离翻译字段,按需加载语言包
- 动态权限,不同权限对应不同菜单
- 优雅美观,Ant Design 设计体系
- Mock 数据,本地数据调试
## 使用
1. 下载项目代码。
```bash
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
2. 进入目录安装依赖,国内用户推荐使用 [cnpm](https://cnpmjs.org) 进行加速。
```bash
yarn install
```
或者
```bash
npm install
```
3. 启动本地服务器。
```bash
npm run start
```
4. 启动完成后打开浏览器访问 [http://localhost:7000](http://localhost:7000),如果需要更改启动端口,可在 `.env` 文件中配置。
> 更多信息请参考 [使用文档](https://doc.antd-admin.zuiidea.com/#/zh-cn/)。
## 支持环境
现代浏览器。
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --------- | --------- | --------- | --------- | --------- |
|IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
## 参与贡献
我们非常欢迎你的贡献,你可以通过以下方式和我们一起共建 :smiley:
- 在你的公司或个人项目中使用 AntD Admin。
- 通过 [Issue](http://github.com/zuiidea/antd-admin/issues) 报告 bug 或进行咨询。
- 提交 [Pull Request](http://github.com/zuiidea/antd-admin/pulls) 改进代码。
> 强烈推荐阅读 [《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way)、[《如何向开源社区提问题》](https://github.com/seajs/seajs/issues/545) 和 [《如何有效地报告 Bug》](http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html)、[《如何向开源项目提交无法解答的问题》](https://zhuanlan.zhihu.com/p/25795393),更好的问题更容易获得帮助。
+51 -94
View File
@@ -1,129 +1,86 @@
# Antd Admin
[![React Native](https://img.shields.io/badge/react-^15.4.4-brightgreen.svg?style=flat-square)](https://github.com/facebook/react)
[![Ant Design](https://img.shields.io/badge/ant--design-^2.10.0-yellowgreen.svg?style=flat-square)](https://github.com/ant-design/ant-design)
[![dva](https://img.shields.io/badge/dva-^1.2.0-orange.svg?style=flat-square)](https://github.com/dvajs/dva)
<p align="center">
<a href="http://github.com/zuiidea/antd-admin">
<img alt="antd-admin" height="64" src="./docs/_media/logo.svg">
</a>
</p>
[![GitHub issues](https://img.shields.io/github/issues/zuiidea/antd-admin.svg?style=flat-square)](https://github.com/zuiidea/antd-admin)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/pulls)
<h1 align="center">AntD Admin</h1>
<div align="center">
An excellent front-end solution for enterprise applications.
[![antd](https://img.shields.io/badge/antd-^3.10.0-blue.svg?style=flat-square)](https://github.com/ant-design/ant-design)
[![umi](https://img.shields.io/badge/umi-^2.2.1-orange.svg?style=flat-square)](https://github.com/umijs/umi)
[![GitHub issues](https://img.shields.io/github/issues/zuiidea/antd-admin.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/issues)
[![MIT](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](http://opensource.org/licenses/MIT)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)
![Travis (.org)](https://img.shields.io/travis/zuiidea/antd-admin.svg)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/pulls)
[![Gitter](https://img.shields.io/gitter/room/antd-admin/antd-admin.svg)](https://gitter.im/antd-admin/antd-admin)
演示地址 <http://zuiidea.github.io/antd-admin> \| [备用地址](http://47.92.30.98:8000)
</div>
## 特性
- Preview - [https://antd-admin.zuiidea.com](https://antd-admin.zuiidea.com)
- Documentation - [https://doc.antd-admin.zuiidea.com](https://doc.antd-admin.zuiidea.com)
- FAQ - [https://doc.antd-admin.zuiidea.com/#/faq](https://doc.antd-admin.zuiidea.com/#/faq)
- ChangeLog - [https://doc.antd-admin.zuiidea.com/#/change-log](https://doc.antd-admin.zuiidea.com/#/change-log)
- 基于[react](https://github.com/facebook/react),[ant-design](https://github.com/ant-design/ant-design),[dva](https://github.com/dvajs/dva),[Mock](https://github.com/nuysoft/Mock) 企业级后台管理系统最佳实践。
- 基于Antd UI 设计语言,提供后台管理系统常见使用场景。
- 基于[dva](https://github.com/dvajs/dva)动态加载 Model 和路由,按需加载。
- 使用[roadhog](https://github.com/sorrycc/roadhog)本地调试和构建,其中Mock功能实现脱离后端独立开发。
- 浅度响应式设计。
English | [简体中文](./README-zh_CN.md)
## 更新日志
## Features
### 4.2.2
- Internationalization, extracting translation fields from source code, loading language packs on demand
- Dynamic permissions, different permissions for different menus
- Elegant and beautiful, Ant Design system
- Mock data, local data debugging
`2017-06-01`
-   新增用户管理批量删除。[#320](https://github.com/zuiidea/antd-admin/issues/320)
## Usage
### 4.2.1
`2017-05-12`
-   新增IconFont扩展方案,本地使用方案。[#270](https://github.com/zuiidea/antd-admin/issues/270) [Live](http://47.92.30.98:666/UIElement/iconfont)
-   新增常见场景使用loading。 [dva-loading](https://github.com/dvajs/dva-loading)
### 4.2
`2017-04-28`
-   修改user相关API使用`Restful`风格。
-   增加user页面多条件查询。[#266](https://github.com/zuiidea/antd-admin/issues/226)
-   修复菜单默认高亮。[#201](https://github.com/zuiidea/antd-admin/issues/201)
[More Change Log](https://github.com/zuiidea/antd-admin/wiki/Change-Log)
## 开发构建
### 目录结构
1. Clone project code.
```bash
├── /dist/ # 项目输出目录
├── /src/ # 项目源码目录
│ ├── /components/ # UI组件及UI相关方法
│ │ ├── skin.less # 全局样式
│ │ └── vars.less # 全局样式变量
│ ├── /routes/ # 路由组件
│ │ └── app.js # 路由入口
│ ├── /models/ # 数据模型
│ ├── /services/ # 数据接口
│ ├── /themes/ # 项目样式
│ ├── /mock/ # 数据mock
│ ├── /utils/ # 工具函数
│ │ ├── config.js # 项目常规配置
│ │ ├── menu.js # 菜单及面包屑配置
│ │ ├── config.js # 项目常规配置
│ │ ├── request.js # 异步请求函数
│ │ └── theme.js # 项目需要在js中使用到样式变量
│ ├── route.js # 路由配置
│ ├── index.js # 入口文件
│ └── index.html
├── package.json # 项目信息
├── .eslintrc # Eslint配置
└── .roadhogrc.js # roadhog配置
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
文件夹命名说明:
- components:组件(方法)为单位以文件夹保存,文件夹名组件首字母大写(如`DataTable`),方法首字母小写(如`layer`),文件夹内主文件与文件夹同名,多文件以`index.js`导出对象(如`./src/components/Layout`)。
- routes:页面为单位以文件夹保存,文件夹名首字母小写(特殊除外,如`UIElement`),文件夹内主文件以`index.js`导出,多文件时可建立`components`文件夹(如`./src/routes/dashboard`),如果有子路由,依次按照路由层次建立文件夹(如`./src/routes/UIElement`)。
### 快速开始
克隆项目文件:
git clone https://github.com/zuiidea/antd-admin.git
进入目录安装依赖:
npm i 或者 yarn install
开发:
2. Installation dependence.
```bash
npm run dev
打开 http://localhost:8000
yarn install
```
构建:
Or
```bash
npm run build
将会生成dist目录
npm install
```
代码检测:
3. Start local server.
```bash
npm run lint
npm run start
```
项目部署 [#269](https://github.com/zuiidea/antd-admin/issues/269)
4. After the startup is complete, open a browser and visit [http://localhost:7000](http://localhost:7000), If you need to change the startup port, you can configure it in the `.env` file.
## 参考
用户列表:<https://github.com/dvajs/dva/tree/master/examples/user-dashboard>
> More instructions at [documentation](https://doc.antd-admin.zuiidea.com)。
dashboard设计稿:<https://dribbble.com/shots/3108122-Dashboard-Admin> (已征得作者同意)
## 截屏
## Browsers support
web
Modern browsers.
![](assets/4.2.1-demo-1.gif)
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --------- | --------- | --------- | --------- | --------- |
|IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
移动
## Contributing
![](assets/4.2.1-demo-2.gif)
We very much welcome your contribution, you can build together with us in the following ways :smiley:
- Use Ant Design Pro in your daily work.
- Submit [GitHub issues](http://github.com/zuiidea/antd-admin/issues)s to report bugs or ask questions.
- Propose [Pull Request](http://github.com/zuiidea/antd-admin/pulls) to improve our code.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 645 KiB

BIN
View File
Binary file not shown.
+1 -1
View File
@@ -3,6 +3,6 @@ const path = require('path')
const lessToJs = require('less-vars-to-js')
module.exports = () => {
const themePath = path.join(__dirname, './src/themes/default.less')
const themePath = path.join(__dirname, '../src/themes/default.less')
return lessToJs(fs.readFileSync(themePath, 'utf8'))
}
+86
View File
@@ -0,0 +1,86 @@
# API configuration
## Why
In the use of `redux` or `dva` projects, we often write functions like the following `service` layer to make the code structure clearer, but it is easy to see that we will write a lot of similar code in `antd -admin@5.0`, using the more concise configuration method to achieve the same function.
```javascript
Export async function login(data) {
  Return request({
    Url: '/api/v1/user/login',
    Method: 'post',
    Data,
  })
}
```
## Configuration and use
In the `src/services/api.js` file, you will see the following configuration object, the object's key is used to call the function name, the object's value is the requested `url`, the default request method is `GET`, The format of the value of the other request mode object is `'method url'`.
```javascript
Export default {
  ...
  queryUser: '/user/:id',
  queryUserList: '/users',
  updateUser: 'Patch /user/:id',
  createUser: 'POST /user/:id',
  removeUser: 'DELETE /user/:id',
  removeUserList: 'POST /users/delete',
  ...
}
```
Used in other files
```javascript
Import { queryUser } from 'api'
// in the general file
...
queryUser(option).then(data => console.log(data))
...
/ / Model file
...
Yield call(queryUser, option)
...
```
## Method to realize
Refer to the `src/services/index.js` file to traverse the api configuration. Each property returns the corresponding encapsulated request function.
```javascript
Import request from 'utils/request'
Import { apiPrefix } from 'utils/config'
Import api from './api'
Const gen = params => {
  Let url = apiPrefix + params
  Let method = 'GET'
  Const paramsArray = params.split(' ')
  If (paramsArray.length === 2) {
    Method = paramsArray[0]
    Url = apiPrefix + paramsArray[1]
  }
  Return function(data) {
    Return request({
      Url,
      Data,
      Method,
    })
  }
}
Const APIFunction = {}
For (const key in api) {
  APIFunction[key] = gen(api[key])
}
Module.exports = APIFunction
```
+83
View File
@@ -0,0 +1,83 @@
<p align="center">
<a href="http://github.com/zuiidea/antd-admin">
<img alt="antd-admin" height="64" src="./_media/logo.svg">
</a>
</p>
<h1 align="center">AntD Admin</h1>
<div align="center">
An excellent front-end solution for enterprise applications.
[![antd](https://img.shields.io/badge/antd-^3.10.0-blue.svg?style=flat-square)](https://github.com/ant-design/ant-design)
[![umi](https://img.shields.io/badge/umi-^2.2.1-orange.svg?style=flat-square)](https://github.com/umijs/umi)
[![GitHub issues](https://img.shields.io/github/issues/zuiidea/antd-admin.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/issues)
[![MIT](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](http://opensource.org/licenses/MIT)
![Travis (.org)](https://img.shields.io/travis/zuiidea/antd-admin.svg)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/pulls)
[![Gitter](https://img.shields.io/gitter/room/antd-admin/antd-admin.svg)](https://gitter.im/antd-admin/antd-admin)
</div>
- Preview - [https://antd-admin.zuiidea.com](https://antd-admin.zuiidea.com)
- Documentation - [https://doc.antd-admin.zuiidea.com](https://doc.antd-admin.zuiidea.com)
- FAQ - [https://doc.antd-admin.zuiidea.com/#/faq](https://doc.antd-admin.zuiidea.com/#/faq)
- ChangeLog - [https://doc.antd-admin.zuiidea.com/#/change-log](https://doc.antd-admin.zuiidea.com/#/change-log)
## Features
- Internationalization, extracting translation fields from source code, loading language packs on demand
- Dynamic permissions, different permissions for different menus
- Elegant and beautiful, Ant Design system
- Mock data, local data debugging
## Usage
1. Clone project code.
```bash
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
2. Installation dependence.
```bash
yarn install
```
Or
```bash
npm install
```
3. Start local server.
```bash
npm run start
```
4. After the startup is complete, open a browser and visit [http://localhost:7000](http://localhost:7000), If you need to change the startup port, you can configure it in the `.env` file.
> More instructions at [documentation](https://doc.antd-admin.zuiidea.com)。
## Browsers support
Modern browsers.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --------- | --------- | --------- | --------- | --------- |
|IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
## Contributing
We very much welcome your contribution, you can build together with us in the following ways :smiley:
- Use Ant Design Pro in your daily work.
- Submit [GitHub issues](http://github.com/zuiidea/antd-admin/issues)s to report bugs or ask questions.
- Propose [Pull Request](http://github.com/zuiidea/antd-admin/pulls) to improve our code.
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg width="169px" height="141px" viewBox="0 0 169 141" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch -->
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="54.0428975%" y1="4.39752391%" x2="54.0428975%" y2="108.456714%" id="linearGradient-1">
<stop stop-color="#29CDFF" offset="0%"></stop>
<stop stop-color="#148EFF" offset="62.3089445%"></stop>
<stop stop-color="#0A60FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="14.2201464%" x2="50%" y2="113.263844%" id="linearGradient-2">
<stop stop-color="#FA816E" offset="0%"></stop>
<stop stop-color="#F74A5C" offset="65.9092442%"></stop>
<stop stop-color="#F51D2C" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group" transform="translate(0.000000, -5.000000)">
<rect id="Rectangle" fill="url(#linearGradient-1)" transform="translate(83.718923, 75.312358) rotate(-24.000000) translate(-83.718923, -75.312358) " x="68.7189234" y="0.312357954" width="30" height="150" rx="15"></rect>
<rect id="Rectangle" fill="url(#linearGradient-1)" transform="translate(129.009910, 75.580213) rotate(-24.000000) translate(-129.009910, -75.580213) " x="114.00991" y="0.580212739" width="30" height="150" rx="15"></rect>
<circle id="Oval" fill="url(#linearGradient-2)" cx="25" cy="120" r="25"></circle>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 194 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 118 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 199 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 124 KiB

+11
View File
@@ -0,0 +1,11 @@
- Getting started
- [Quick Start](getting-started.md)
- Customization
- [Configuration](configuration.md)
- [API Configuration](API-configuration.md)
- [I18n](i18n.md)
- [Layout](layout.md)
- [Request](request.md)
- Guide
- [Deploy](deploy.md)
- [Change Log](change-log.md)
+50
View File
@@ -0,0 +1,50 @@
## 5.0.0
#### Optimization
- Try to use decorators to simplify code writing and improve code readability.
- API configurization to simplify the way data is obtained.
- The files in `utils` are split and each has its own role.
- Simplify the `utils/request` file without special handling.
#### Specification
- Functions add comments, parameters, return values, etc., ambiguous code adds comments, canonical reference [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html#appendices-jsdoc-tag-reference).
  
- Semantic version number, specification participation [semantic version 2.0.0](https://semver.org/lang/zh-CN/).
- Static code checking, unified code style, will use `prettier`, `stylelint`, `eslint` specification code before code submission.
- Git submits information normalization, [git-commit-emoji-cn](https://github.com/liuchengxu/git-commit-emoji-cn).
- Based on the pre-defined routing of `Umi`, there is no need to write a routing configuration file.
- Use `React 16` new features such as `Fragment`, `Context`, `PureComponent`, etc.
#### Features
- Support internationalization, extract source fields from source code, load language packs on demand, and automatically translate online.
- Support for the introduction of `ant-design-pro` components, `lodash` functions on demand.
  
- Support multiple layouts, which rules can be used according to the rules.
- Support Antd Admin to automatically compile and deploy on Travis.
- Generate a documentation website using `Docsify`.
#### Style
- Added Antd Admin standalone Logo.
- Rewrite the overall layout component, optimize the menu, automatic breadcrumb navigation, menu auto-expansion and other logic.
- The mobile menu is changed to drawer.
#### Other
- Discard components such as `IconFont`, `Search`, `DataTable` because they are well supported and replaceable in `Antd`.
+102
View File
@@ -0,0 +1,102 @@
# Configuration
You can do some custom configuration in `/src/utils/config.js`:
## siteName
- Type `String`
Configure the site name, apply it to the login box, and display the title text at the top of the sidebar.
## copyright
- Type: `String`
Configure the copyright notice to apply to the login page, at the bottom of the `Primary` layout.
## logoPath
- Type: `String`
Configure the site logo to apply to the login box and the Logo display at the top of the sidebar.
## apiPrefix
- Type: `String`
Configure the prefix of the interface in the project. The interface related documents can be viewed [API configuration](API-configuration.md)
## fixedHeader
- Type: `String`
Under the `Primary` layout, whether the top of the page is fixed when scrolling。
## layouts
- Type: `Array`
Configuration? Which routes use which layout, unspecified route uses the default layout `Public`, the project currently has `Primary` and `Public` layouts,
     The default configuration is as follows:
```javascript
layouts: [
{
name: 'primary',
include: [/.*/],
exclude: [/(\/(en|zh))*\/login/],
},
],
```
The object properties for each layout are as follows:
- `name` - The name of the layout;
- `include` - Specifies a list of routing rules that use this layout, which can be a regular expression or a string;
- `exclude` - Specifies a list of routing rules that do not use this layout, which can be a regular expression or a string.
> Note: `exclude` takes precedence over `include`, and the layout previous it has a higher priority than the behind layout. The development process may need to be combined with the layout in the `src/layouts` directory. For details, see [Using Layout](./layout.md).
## i18n
- Type: `Object`
Configure internationalization, the default configuration is as follows:
```javascript
i18n: {
languages: [
{
key: 'en',
title: 'English',
flag: '/america.svg',
},
{
key: 'zh',
title: '中文',
flag: '/china.svg',
},
],
defaultLanguage: 'en',
}
```
### i18n.languages
- Type: `Array`
Specify which languages the app supports, and the object properties for each language are as follows:
- `key` - The `key` of the language is applied to the page url to distinguish the language, and also corresponds to the language package folder name in the `src/locales` directory;
- `title` - The name of the language, at the bottom of the login page, at the top of the `Primary` layout, the language switch is displayed;
- `flag` - The path of the flag icon of the language, the language switching display at the top of the `Primary` layout.
### i18n.defaultLanguage
- Type: `String`
Configure the default language.
+113
View File
@@ -0,0 +1,113 @@
# Deploy
After the development is completed and verified in the development environment, it needs to be deployed to our users.
![i18n](./_media/term_build.svg)
## Build
First execute the following command,
```bash
npm run build
```
After a few seconds, the output should look like this:
```bash
> antd-admin@5.0.0-beta build /Users/zuiidea/web/antd-admin
> umi build
[21:13:17] webpack compiled in 43s 868ms
DONE Compiled successfully in 43877ms 21:13:17
File sizes after gzip:
1.3 MB dist/vendors.async.js
308.21 KB dist/umi.js
45.49 KB dist/vendors.chunk.css
36.08 KB dist/p__chart__highCharts__index.async.js
33.53 KB dist/p__user__index.async.js
22.36 KB dist/p__chart__ECharts__index.async.js
4.21 KB dist/p__dashboard__index.async.js
4.06 KB dist/umi.css
...
```
The `build` command will package all resources, including JavaScript, CSS, web fonts, images, html, and more. You can find these files in the `dist/` directory.
> If you have requirements for using HashHistory , deploying html to non-root directories, statics, etc., check out [Umi Deployment] (https://umijs.org/en/guide/deploy.html).
## Local verification
Local verification can be done via `serve` before publishing.
```
$ yarn global add serve
$ serve ./dist
Serving!
- Local: http://localhost:5000
- On Your Network: http://{Your IP}:5000
Copied local address to clipboard!
```
Access [http://localhost:5000](http://localhost:5000), under normal circumstances, it should be consistent with `npm start` (The API may not get the correct data).
## Deploy
Next, we can upload the static file to the server. If you use Nginx as the Web server, you can configure it in `ngnix.conf`:
```
server
{
listen 80;
# Specify an accessible domain name
server_name antd-admin.zuiidea.com;
# The directory where the compiled files are stored
root /home/www/antd-admin/dist;
# Proxy server interface to avoid cross-domain
location /api {
proxy_pass http://localhost:7000/api;
}
Because the front end uses BrowserHistory, it will route backback to index.html
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
}
```
Restart the web server and access [http://antd-admin.zuiidea.com](http://antd-admin.zuiidea.com) , You will see the correct page.
```bash
nginx -s reload
```
Similarly, if you use Caddy as a web server, you can do this in `Caddyfile`:
```
antd-admin.zuiidea.com {
gzip
root /home/www/antd-admin/dist
proxy /api http://localhost:7000
rewrite {
if {path} not_match ^/api
to {path} {path}/ /
}
}
antd-admin.zuiidea.com/public {
gzip
root /home/www/antd-admin/dist/static/public
}
```
+73
View File
@@ -0,0 +1,73 @@
# Quick Start
> Before delving into Ant Design React, a good knowledge base of [React](http://facebook.github.io/react/) 、 [ES2015+](http://es6.ruanyifeng.com/) 、 [Antd Design](https://ant.design/docs/react/introduce-cn) . Learn about [UmiJS](https://umijs.org/) , [Dva](http://github.com/dvajs/dva) . And properly installed and configured [Node.js](https://nodejs.org/) v8 or above, [Git](https://git-scm.com/). It would be helpful if you have pre-existing knowledge on those.
## Installation
```bash
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
## Scaffolding
The project layout is as follows:
```bash
├── dist/ # Default build output directory
├── mock/ # Mock files
├── public/ # Static resource
├── src/ # Source code
│ ├── components/ # Components
│ ├── e2e/ # Integrated Test Case
│ ├── layouts/ # Common Layouts
│ ├── locales/ # i18n resources
│ ├── models/ # Global dva Model
│ ├── pages/ # Sub-pages and templates
│ ├── services/ # Backend Services
│ │ ├── api.js # API configuration
│ │ └── index.js # API export
│ ├── themes/ # Themes
│ │ ├── default.less # Less variable
│ │ ├── index.less # Global style
│ │ ├── mixin.less # Less mixin
│ │ └── vars.less # Less variable and mixin
│ ├── utils/ # Utility
│ │ ├── config.js # Application configuration
│ │ ├── constant.js # Static constant
│ │ ├── index.js # Utility methods
│ │ ├── request.js # Request function(axios)
│ │ └── theme.js # Style variables used in js
├── .editorconfig
├── .env
├── .eslintrc
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .stylelintrc.json
├── .travis.yml
└── .umirc.js
└── package.json
```
## Development
1. Install Dependencies.
```bash
yarn install
```
Or
```bash
npm install
```
2. Start local server.
```bash
npm run start
```
3. After the startup is complete, open a browser and visit [http://localhost:7000](http://localhost:7000), If you need to change the startup port, you can configure it in the `.env` file.
+75
View File
@@ -0,0 +1,75 @@
# globalization
## Add language
Take Japanese as an example.
![i18n](../_media/term_i18n.svg)
1. Add a language pack local file, `ja` is the Japanese language code, and a list of languages ​​that support translation [有道智云](http://ai.youdao.com/docs/doc-trans-api.s#p05), the `src/locales/ja/messages.json` file will be generated after running the following command.
```bash 
npm run add-locale ja
```
2. Extract the fields in the code that need to be translated, ie `<Trans>?message</Trans>`, `` i18n.t`message `` in the `message` field, run the following command after `src/locales/ja /messages.json` will appear after the extracted field configuration.
```bash 
npm run extract
```
You will see the following information:
```bash
Catalog statistics:
┌─────────────┬─────────────┬─────────┐
│ Language │ Total count │ Missing │
├─────────────┼─────────────┼─────────┤
│ en (source) │ 52 │ - │
│ ja │ 52 │ 52 │
│ zh │ 52 │ 0 │
└─────────────┴─────────────┴─────────┘
```
3. At the same time, we have added the relevant configuration in `src/utils/config.js`.
```javascript
{
...
i18n: {
languages: [
...
{
key:'ja',
title: '日本語',
flag: '/japanese.svg',
},
],
},
}
```
> Routing related effects, after the configuration `npm run start` takes effect after restart.
4. Use the built-in commands for automatic translation. You will see the translated configuration in `src/locales/ja/messages.json`.
```bash
npm run trans:only
```
You will see the following information:
```bash
start: en -> ja
...
youdao: en -> ja: Unpublished -> 未発表
youdao: en -> ja: Update -> 更新
youdao: en -> ja: Update User -> ユーザーの更新
youdao: en -> ja: Username -> 名
...
All translations have been completed.
```
> `npm run trans` will execute `npm run extract` and `npm run trans:only` in order.
5. Finally, you can adjust the inaccurate fields in `src/locales/ja/messages.json`. Start the development mode `npm run start`, open [http://localhost:7000/ja/login](http://localhost:7000/ja/login) and you will see the Japanese version of the app.
+55
View File
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>antd-admin - An admin dashboard application demo built upon Ant Design and UmiJS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="An admin dashboard application demo built upon Ant Design and UmiJS">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
<link rel="icon" href="/_media/favicon.ico" />
</head>
<body>
<nav data-cloak class="app-nav">
<a href="/">En</a>
<a href="#/zh-cn/">中文</a>
</nav>
<div id="app">Loading...</div>
<script>
window.$docsify = {
name: 'AntD Admin',
loadSidebar: true,
maxLevel: 3,
subMaxLevel: 3,
auto2top: true,
autoHeader: true,
repo: 'zuiidea/antd-admin',
themeColor: '#1890ff',
search: {
paths: 'auto',
placeholder: {
'/zh-cn/': '搜索',
'/': 'Type to search'
},
noData: {
'/zh-cn/': '找不到结果',
'/': 'No Results'
}
}
}
// if (typeof navigator.serviceWorker !== 'undefined') {
// navigator.serviceWorker.register('sw.js')
// }
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/zoom-image.min.js"></script>
<script src="//unpkg.com/docsify-copy-code"></script>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
# Layout
## Add a new layout
Take a new layout named `secondary` as an example to make the route starting with `seconday` use this layout.
1. Add related configuration in `src/utils/config.js`. For details, please refer to [layouts](/configuration?id=layouts).
```javascript
   layouts: [
           {
               name: 'primary',
               include: [/.*/],
               exclude: [/(\/(en|zh))*\/login/, /(\/(en|zh))*\/seconday\/(.*)/],
           },
           {
               name: 'secondary',
               include: [/(\/(en|zh))*\/seconday\/(.*)/],
           },
   ],
```
2. Add the `secondary` layout component to the `src/layouts/BaseLayout.js` file.
```javascript
   import SecondaryLayout from './SecondaryLayout'
   const LayoutMap = {
     Primary: PrimaryLayout,
     Public: PublicLayout,
     Secondary: SecondaryLayout,
   }
```
3. Add the `SecondaryLayout.js` file to the `src/layouts/` directory.
```javascript
   import React from 'react'
   export default ({ children }) => {
     Return (
       <div>
         <h1>Seconday</h1>
         {children}
       </div>
     )
   }
```
4. Add a `seconday/index.js` file to the `src/pages/` directory.
```javascript
   import React from 'react'
   export default ({ children }) => {
     Return <div>Seconday page Content</div>
   }
```
5. Finally, start the development mode `npm run start`, open [http://localhost:7000/seconday/](http://localhost:7000/seconday/) and you will see the page for the `seconday` layout.
+6
View File
@@ -0,0 +1,6 @@
{
"name": "antd-admin-devdoc",
"alias": ["devdoc-antd-admin.now.sh", "devdoc.antd-admin.zuiidea.com"],
"type": "static",
"public": true
}
+6
View File
@@ -0,0 +1,6 @@
{
"name": "antd-admin-doc",
"alias": ["doc-antd-admin.now.sh", "doc.antd-admin.zuiidea.com"],
"type": "static",
"public": true
}
+22
View File
@@ -0,0 +1,22 @@
# HTTP request
this project use axios for http service, file located in src/utils/request.js
## Custom Header
As for privilege access or modify cookie, you could add header param by yourself
```
axios.defaults.headers.common['Authorization'] = 'token'
```
Or
```
axios.interceptors.request.use(function (config) {
config.headers.token = window.localStorage.getItem('token');
return config;
}, function (error) {
return Promise.reject(error);
});
```
+83
View File
@@ -0,0 +1,83 @@
/* ===========================================================
* docsify sw.js
* ===========================================================
* Copyright 2016 @huxpro
* Licensed under Apache 2.0
* Register service worker.
* ========================================================== */
const RUNTIME = 'docsify'
const HOSTNAME_WHITELIST = [
self.location.hostname,
'fonts.gstatic.com',
'fonts.googleapis.com',
'unpkg.com'
]
// The Util Function to hack URLs of intercepted requests
const getFixedUrl = (req) => {
var now = Date.now()
var url = new URL(req.url)
// 1. fixed http URL
// Just keep syncing with location.protocol
// fetch(httpURL) belongs to active mixed content.
// And fetch(httpRequest) is not supported yet.
url.protocol = self.location.protocol
// 2. add query for caching-busting.
// Github Pages served with Cache-Control: max-age=600
// max-age on mutable content is error-prone, with SW life of bugs can even extend.
// Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
// Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
if (url.hostname === self.location.hostname) {
url.search += (url.search ? '&' : '?') + 'cache-bust=' + now
}
return url.href
}
/**
* @Lifecycle Activate
* New one activated when old isnt being used.
*
* waitUntil(): activating ====> activated
*/
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim())
})
/**
* @Functional Fetch
* All network requests are being intercepted here.
*
* void respondWith(Promise<Response> r)
*/
self.addEventListener('fetch', event => {
// Skip some of cross-origin requests, like those for Google Analytics.
if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
// Stale-while-revalidate
// similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
// Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
const cached = caches.match(event.request)
const fixedUrl = getFixedUrl(event.request)
const fetched = fetch(fixedUrl, { cache: 'no-store' })
const fetchedCopy = fetched.then(resp => resp.clone())
// Call respondWith() with whatever we get first.
// If the fetch fails (e.g disconnected), wait for the cache.
// If there’s nothing in cache, wait for the fetch.
// If neither yields a response, return offline pages.
event.respondWith(
Promise.race([fetched.catch(_ => cached), cached])
.then(resp => resp || fetched)
.catch(_ => { /* eat any errors */ })
)
// Update the cache with the version we fetched (only for ok status)
event.waitUntil(
Promise.all([fetchedCopy, caches.open(RUNTIME)])
.then(([response, cache]) => response.ok && cache.put(event.request, response))
.catch(_ => { /* eat any errors */ })
)
}
})
+86
View File
@@ -0,0 +1,86 @@
# 接口配置
## 为什么
在使用了`redux`或者`dva`项目中,我们经常会写类似下面的`service`层的函数,使代码结构更清晰,但是很容易看出,我们会写很多相似的代码,在`antd-admin@5.0`中,使用了更加简洁的配置方式实现了相同的功能。
```javascript
export async function login(data) {
return request({
url: '/api/v1/user/login',
method: 'post',
data,
})
}
```
## 配置和使用
在`src/services/api.js`文件中,你会看到如下配置对象,对象的键用于调用时的函数名称,对象的值为请求的`url`,默认请求方式为`GET`,如果是其他请求方式对象的值的格式则为`'method url'`。
```javascript
export default {
...
queryUser: '/user/:id',
queryUserList: '/users',
updateUser: 'Patch /user/:id',
createUser: 'POST /user/:id',
removeUser: 'DELETE /user/:id',
removeUserList: 'POST /users/delete',
...
}
```
在其他文件中使用
```javascript
import { queryUser } from 'api'
// 一般文件中
...
queryUser(option).then(data => console.log(data))
...
// model文件中
...
yield call(queryUser, option)
...
```
## 实现方式
参考`src/services/index.js`文件,对api配置进行遍历,每个属性都返回对应的封装后的request函数。
```javascript
import request from 'utils/request'
import { apiPrefix } from 'utils/config'
import api from './api'
const gen = params => {
let url = apiPrefix + params
let method = 'GET'
const paramsArray = params.split(' ')
if (paramsArray.length === 2) {
method = paramsArray[0]
url = apiPrefix + paramsArray[1]
}
return function(data) {
return request({
url,
data,
method,
})
}
}
const APIFunction = {}
for (const key in api) {
APIFunction[key] = gen(api[key])
}
module.exports = APIFunction
```
+84
View File
@@ -0,0 +1,84 @@
<p align="center">
<a href="http://github.com/zuiidea/antd-admin">
<img alt="antd-admin" height="64" src="../_media/logo.svg">
</a>
</p>
<h1 align="center">AntD Admin</h1>
<div align="center">
一套优秀的中后台前端解决方案
[![antd](https://img.shields.io/badge/antd-^3.10.0-blue.svg?style=flat-square)](https://github.com/ant-design/ant-design)
[![umi](https://img.shields.io/badge/umi-^2.2.1-orange.svg?style=flat-square)](https://github.com/umijs/umi)
[![GitHub issues](https://img.shields.io/github/issues/zuiidea/antd-admin.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/issues)
[![MIT](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](http://opensource.org/licenses/MIT)
![Travis (.org)](https://img.shields.io/travis/zuiidea/antd-admin.svg)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/zuiidea/antd-admin/pulls)
[![Gitter](https://img.shields.io/gitter/room/antd-admin/antd-admin.svg)](https://gitter.im/antd-admin/antd-admin)
</div>
- 在线演示 - [https://antd-admin.zuiidea.com](https://antd-admin.zuiidea.com)
- 使用文档 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/](https://doc.antd-admin.zuiidea.com/#/zh-cn/)
- 常见问题 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/faq](https://doc.antd-admin.zuiidea.com/#/zh-cn/faq)
- 更新日志 - [https://doc.antd-admin.zuiidea.com/#/zh-cn/change-log](https://doc.antd-admin.zuiidea.com/#/zh-cn/change-log)
## 特性
- 国际化,源码中抽离翻译字段,按需加载语言包
- 动态权限,不同权限对应不同菜单
- 优雅美观,Ant Design 设计体系
- Mock 数据,本地数据调试
## 使用
1. 下载项目代码。
```bash
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
2. 进入目录安装依赖,国内用户推荐使用 [cnpm](https://cnpmjs.org) 进行加速。
```bash
yarn install
```
或者
```bash
npm install
```
3. 启动本地服务器。
```bash
npm run start
```
4. 启动完成后打开浏览器访问 [http://localhost:7000](http://localhost:7000),如果需要更改启动端口,可在 `.env` 文件中配置。
> 更多信息请参考 [使用文档](https://doc.antd-admin.zuiidea.com/#/zh-cn/)。
## 支持环境
现代浏览器。
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
| --------- | --------- | --------- | --------- | --------- |
|IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
## 参与贡献
我们非常欢迎你的贡献,你可以通过以下方式和我们一起共建 :smiley:
- 在你的公司或个人项目中使用 AntD Admin。
- 通过 [Issue](http://github.com/zuiidea/antd-admin/issues) 报告 bug 或进行咨询。
- 提交 [Pull Request](http://github.com/zuiidea/antd-admin/pulls) 改进代码。
> 强烈推荐阅读 [《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way)、[《如何向开源社区提问题》](https://github.com/seajs/seajs/issues/545) 和 [《如何有效地报告 Bug》](http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html)、[《如何向开源项目提交无法解答的问题》](https://zhuanlan.zhihu.com/p/25795393),更好的问题更容易获得帮助。
+11
View File
@@ -0,0 +1,11 @@
- 入门
- [快速上手](zh-cn/getting-started.md)
- 定制化
- [配置项](zh-cn/configuration.md)
- [接口配置](zh-cn/API-configuration.md)
- [国际化](zh-cn/i18n.md)
- [布局](zh-cn/layout.md)
- [http 请求](zh-cn/request.md)
- 指南
- [部署](zh-cn/deploy.md)
- [更新日志](zh-cn/change-log.md)
+52
View File
@@ -0,0 +1,52 @@
## 5.0.0
#### 优化
- 尽量使用修饰器,简化代码编写,提高代码可读性。
- API 配置化,简化获取数据方式。
- `utils` 内文件拆分,各司其职。
- 简化`utils/request`文件,不做特殊处理。
#### 规范
- 函数添加描述、参数、返回值等注释,含糊不清的代码增加注释,规范参考 [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html#appendices-jsdoc-tag-reference)。
- 语义化版本号,规范参加 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/)。
- 静态代码检查,统一代码风格,代码提交前将会使用 `prettier`、`stylelint`、`eslint` 规范代码。
- Git 提交信息规范化,[git-commit-emoji-cn](https://github.com/liuchengxu/git-commit-emoji-cn)。
- 基于 `Umi` 的约定式路由,无需再写路由配置文件。
- 使用 `React 16` 新特性,如 `Fragment`、`Context`、 `PureComponent`等。
#### 功能
- 支持国际化,源码中抽离翻译字段,按需加载语言包,自动在线翻译。
- 支持按需引入 `ant-design-pro` 组件、`lodash` 函数。
- 支持多布局,可根据规则规定哪些路由使用哪种布局。
- 支持 Antd Admin 在 Travis 上自动编译和部署。
- 使用 `Docsify` 生成文档网站。
#### 样式
- 新增 Antd Admin 独立 Logo。
- 重写整体布局组件,优化菜单、面包屑导航自动高亮,菜单自动展开等逻辑。
- 移动端菜单更改为抽屉式。
#### 其他
- 废弃 `IconFont`、 `Search`、`DataTable`等组件,因为在 `Antd` 中有很好的支持和可替代的。
+102
View File
@@ -0,0 +1,102 @@
# 配置项
你可以在 `/src/utils/config.js` 里做一些自定义配置:
## siteName
- 类型: `String`
配置站点名称,应用到登录框,侧边栏顶部的标题文字显示。
## copyright
- 类型: `String`
配置版权声明,应用到登录页、`Primay`布局底部。
## logoPath
- 类型: `String`
配置站点 Logo,应用到登录框,侧边栏顶部的 Logo 显示。
## apiPrefix
- 类型: `String`
配置项目中接口的前缀,接口相关文档可查看 [接口配置](API-configuration.md)
## fixedHeader
- 类型: `String`
在`Primary`布局下,页面滚动时是否固定顶部。
## layouts
- 类型: `Array`
配置哪些路由使用哪种布局,未指定路由使用默认布局 `Public`,项目中目前有 `Primary` 和 `Public` 两种布局,
默认配置如下:
```javascript
layouts: [
{
name: 'primary',
include: [/.*/],
exclude: [/(\/(en|zh))*\/login/],
},
],
```
每种布局的对象属性如下:
- `name` - 布局的名称;
- `include` - 指定使用该布局的路由规则列表,规则可为正则表达式或者字符串;
- `exclude` - 指定不使用该布局的路由规则列表,规则可为正则表达式或者字符串。
> 注意:`exclude` 优先级高于 `include`,前面的布局优先级高于后面的布局。开发过程中可能需要结合`src/layouts`目录下的布局使用,具体方法可查看 [使用布局](./layout.md)。
## i18n
- 类型: `Object`
配置国际化,默认配置如下:
```javascript
i18n: {
languages: [
{
key: 'en',
title: 'English',
flag: '/america.svg',
},
{
key: 'zh',
title: '中文',
flag: '/china.svg',
},
],
defaultLanguage: 'en',
}
```
### i18n.languages
- 类型: `Array`
指定应用支持哪些语言,每种语言的对象属性如下:
- `key` - 语言的`key`,应用到页面 url 上以区分语言,也对应 `src/locales` 目录下的语言包文件夹名;
- `title` - 语言名称,在登录页底部、`Primay` 布局顶部语言切换显示;
- `flag` - 语言的国旗图标的路径,在 `Primay` 布局顶部语言切换显示。
### i18n.defaultLanguage
- 类型: `String`
配置默认语言。
+114
View File
@@ -0,0 +1,114 @@
# 部署
完成开发并且在开发环境验证之后,就需要部署给我们的用户了。
![i18n](../_media/term_build.svg)
## 构建
先执行下面的命令,
```bash
npm run build
```
几秒后,输出应该如下:
```bash
> antd-admin@5.0.0-beta build /Users/zuiidea/web/antd-admin
> umi build
[21:13:17] webpack compiled in 43s 868ms
DONE Compiled successfully in 43877ms 21:13:17
File sizes after gzip:
1.3 MB dist/vendors.async.js
308.21 KB dist/umi.js
45.49 KB dist/vendors.chunk.css
36.08 KB dist/p__chart__highCharts__index.async.js
33.53 KB dist/p__user__index.async.js
22.36 KB dist/p__chart__ECharts__index.async.js
4.21 KB dist/p__dashboard__index.async.js
4.06 KB dist/umi.css
...
```
`build` 命令会打包所有的资源,包含 JavaScript, CSS, web fonts, images, html 等。你可以在 `dist/` 目录下找到这些文件。
> 如果有使用 HashHistory 、 部署 html 到非根目录、静态化等需求,请查看[Umi 部署](https://umijs.org/zh/guide/deploy.html)。
## 本地验证
发布之前,可以通过 `serve` 做本地验证,
```
$ yarn global add serve
$ serve ./dist
Serving!
- Local: http://localhost:5000
- On Your Network: http://{Your IP}:5000
Copied local address to clipboard!
```
访问 [http://localhost:5000](http://localhost:5000),正常情况下法应该是和 `npm start` 一致的(接口可能无法获取到正确数据)。
## 部署
接下来,我们可以把静态文件上传到服务器,如果使用 Nginx 作为 Web server,你可以在 `ngnix.conf` 中这样配置:
```
server
{
listen 80;
# 指定可访问的域名
server_name antd-admin.zuiidea.com;
# 编译后的文件存放的目录
root /home/www/antd-admin/dist;
# 代理服务端接口,避免跨域
location /api {
proxy_pass http://localhost:7000/api;
}
# 因为前端使用了BrowserHistory,所以将路由 fallback 到 index.html
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
}
```
重启 Web server,访问 [http://antd-admin.zuiidea.com](http://antd-admin.zuiidea.com) ,你将看到正确的页面。
```bash
nginx -s reload
```
类似的,如果你使用 Caddy 作为 Web server,你可以在 `Caddyfile` 中这样配置:
```
antd-admin.zuiidea.com {
gzip
root /home/www/antd-admin/dist
proxy /api http://localhost:7000
rewrite {
if {path} not_match ^/api
to {path} {path}/ /
}
}
antd-admin.zuiidea.com/public {
gzip
root /home/www/antd-admin/dist/static/public
}
```
+73
View File
@@ -0,0 +1,73 @@
# 快速上手
> 在开始之前,推荐先学习 [React](http://facebook.github.io/react/) 、 [ES2015+](http://es6.ruanyifeng.com/) 、 [Antd Design](https://ant.design/docs/react/introduce-cn) , 了解 [UmiJS](https://umijs.org/) 、[Dva](http://github.com/dvajs/dva) ,并正确安装和配置了 [Node.js](https://nodejs.org/) v8 或以上 、[Git](https://git-scm.com/)。提前了解和学习这些知识会非常有帮助。
## 安装
```bash
git clone https://github.com/zuiidea/antd-admin.git my-project
cd my-project
```
## 目录结构
应用的目录结构如下
```bash
├── dist/ # 默认build输出目录
├── mock/ # Mock文件目录
├── public/ # 静态资源文件目录
├── src/ # 源码目录
│ ├── components/ # 组件目录
│ ├── e2e/ # e2e目录
│ ├── layouts/ # 布局目录
│ ├── locales/ # 国际化文件目录
│ ├── models/ # 数据模型目录
│ ├── pages/ # 页面组件目录
│ ├── services/ # 数据接口目录
│ │ ├── api.js # 接口配置
│ │ └── index.js # 接口输出
│ ├── themes/ # 项目样式目录
│ │ ├── default.less # 样式变量
│ │ ├── index.less # 全局样式
│ │ ├── mixin.less # 样式函数
│ │ └── vars.less # 样式变量及函数
│ ├── utils/ # 工具函数目录
│ │ ├── config.js # 项目配置
│ │ ├── constant.js # 静态常量
│ │ ├── index.js # 工具函数
│ │ ├── request.js # 异步请求函数(axios)
│ │ └── theme.js # 项目需要在js中使用到样式变量
├── .editorconfig # 编辑器配置
├── .env # 环境变量
├── .eslintrc # ESlint配置
├── .gitignore # Git忽略文件配置
├── .prettierignore # Prettier忽略文件配置
├── .prettierrc # Prettier配置
├── .stylelintrc.json # Stylelint配置
├── .travis.yml # Travis配置
└── .umirc.js # Umi配置
└── package.json # 项目信息
```
## 本地开发
1. 进入目录安装依赖,国内用户推荐使用 [cnpm](https://cnpmjs.org) 进行加速
```bash
yarn install
```
或者
```bash
npm install
```
2. 启动本地服务器
```bash
npm run start
```
3. 启动完成后打开浏览器访问 [http://localhost:7000](http://localhost:7000),如果需要更改启动端口,可在 `.env` 文件中配置。
+75
View File
@@ -0,0 +1,75 @@
# 国际化
## 新增应用语言
以新增日语为例。
![i18n](../_media/term_i18n.svg)
1. 添加语言包本地文件,`ja` 为日语的语言代码,支持翻译的语言列表参考 [有道智云](http://ai.youdao.com/docs/doc-trans-api.s#p05),运行下面命令后会生成 `src/locales/ja/messages.json` 文件。
```bash
npm run add-locale ja
```
2. 提取代码中需要翻译的字段,即 `<Trans>message</Trans>`、`` i18n.t`message `` 中 `message` 字段,运行下面命令后 `src/locales/ja/messages.json` 将会出现提取后的字段配置。
```bash
npm run extract
```
你将看到如下信息:
```bash
Catalog statistics:
┌─────────────┬─────────────┬─────────┐
│ Language │ Total count │ Missing │
├─────────────┼─────────────┼─────────┤
│ en (source) │ 52 │ - │
│ ja │ 52 │ 52 │
│ zh │ 52 │ 0 │
└─────────────┴─────────────┴─────────┘
```
3. 与此同时,我们在 `src/utils/config.js` 新增相关配置。
```javascript
{
...
i18n: {
languages: [
...
{
key:'ja',
title: '日本語',
flag: '/japanese.svg',
},
],
},
}
```
>  路由相关效果,配置后 `npm run start` 重启后生效。
4. 使用内置的命令进行自动翻译,在 `src/locales/ja/messages.json` 中将会看到翻译后的配置。
```bash
npm run trans:only
```
你将看到如下信息:
```bash
start: en -> ja
...
youdao: en -> ja: Unpublished -> 未発表
youdao: en -> ja: Update -> 更新
youdao: en -> ja: Update User -> ユーザーの更新
youdao: en -> ja: Username -> 名
...
All translations have been completed.
```
> `npm run trans` 将会依次执行 `npm run extract` 和 `npm run trans:only`
5. 最后,可以在 `src/locales/ja/messages.json` 中对翻译不准确的的字段进行调整。启动开发模式 `npm run start`,打开 [http://localhost:7000/ja/login](http://localhost:7000/ja/login),你将看到日语版本的应用。
+60
View File
@@ -0,0 +1,60 @@
# 布局
## 新增布局
以新增名为 `secondary` 的布局为例,使以 `seconday` 开头的路由都使用该布局。
1. 在 `src/utils/config.js` 新增相关配置,参数详细请查看 [layouts](/zh-cn/configuration?id=layouts)。
```javascript
layouts: [
{
name: 'primary',
include: [/.*/],
exclude: [/(\/(en|zh))*\/login/, /(\/(en|zh))*\/seconday\/(.*)/],
},
{
name: 'secondary',
include: [/(\/(en|zh))*\/seconday\/(.*)/],
},
],
```
2. 在`src/layouts/BaseLayout.js` 文件中新增 `secondary` 布局组件。
```javascript
import SecondaryLayout from './SecondaryLayout'
const LayoutMap = {
primary: PrimaryLayout,
public: PublicLayout,
secondary: SecondaryLayout,
}
```
3. 在`src/layouts/` 目录中新增 `SecondaryLayout.js` 文件。
```javascript
import React from 'react'
export default ({ children }) => {
return (
<div>
<h1>Seconday</h1>
{children}
</div>
)
}
```
4. 在`src/pages/` 目录中新增 `seconday/index.js` 文件。
```javascript
import React from 'react'
export default ({ children }) => {
return <div>Seconday page Content</div>
}
```
5. 最后,启动开发模式 `npm run start`,打开 [http://localhost:7000/seconday/](http://localhost:7000/seconday/),你将看到 `seconday` 布局的页面。
+24
View File
@@ -0,0 +1,24 @@
# HTTP请求
本项目使用了axios提供http请求服务,文件在src/utils/request.js
## 自定义Header
为了提供鉴权、修改cookie等服务,可以手动修改Header
```
axios.defaults.headers.common['Authorization'] = 'token'
```
或者
```
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
config.headers.token = window.localStorage.getItem('token');
return config;
}, function (error) {
return Promise.reject(error);
});
```
+5
View File
@@ -0,0 +1,5 @@
# 路由
本项目中采用约定式路由
参考[umi 路由](https://umijs.org/zh/guide/router.html)
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
testURL: 'http://localhost:8000',
}
+36
View File
@@ -0,0 +1,36 @@
{
"name": "Antd-Admin",
"start_url": ".",
"display": "standalone",
"background_color": "#fff",
"description": "A front-end solution for enterprise applications built upon Ant Design and UmiJS",
"icons": [{
"src": "logo/logo@96.png",
"sizes": "72x72"
},
{
"src": "logo/logo@128.png",
"sizes": "128x128"
},
{
"src": "logo/logo@144.png",
"sizes": "144x144"
},
{
"src": "logo/logo@152.png",
"sizes": "152x152"
},
{
"src": "logo/logo@192.png",
"sizes": "192x192"
},
{
"src": "logo/logo@384.png",
"sizes": "384x384"
},
{
"src": "logo/logo@512.png",
"sizes": "512x512"
}
]
}
+59
View File
@@ -0,0 +1,59 @@
/**
* Query objects that specify keys and values in an array where all values are objects.
* @param {array} array An array where all values are objects, like [{key:1},{key:2}].
* @param {string} key The key of the object that needs to be queried.
* @param {string} value The value of the object that needs to be queried.
* @return {object|undefined} Return frist object when query success.
*/
export function queryArray(array, key, value) {
if (!Array.isArray(array)) {
return
}
return array.filter(_ => _[key] === value)
}
export function randomNumber(min, max) {
return Math.floor(Math.random() * (max - min) + min)
}
export function randomAvatar() {
const avatarList = [
'photo-1549492864-2ec7d66ffb04.jpeg',
'photo-1480535339474-e083439a320d.jpeg',
'photo-1523419409543-a5e549c1faa8.jpeg',
'photo-1519648023493-d82b5f8d7b8a.jpeg',
'photo-1523307730650-594bc63f9d67.jpeg',
'photo-1522962506050-a2f0267e4895.jpeg',
'photo-1489779162738-f81aed9b0a25.jpeg',
'photo-1534308143481-c55f00be8bd7.jpeg',
'photo-1519336555923-59661f41bb45.jpeg',
'photo-1551438632-e8c7d9a5d1b7.jpeg',
'photo-1525879000488-bff3b1c387cf.jpeg',
'photo-1487412720507-e7ab37603c6f.jpeg',
'photo-1510227272981-87123e259b17.jpeg'
]
return `//image.zuiidea.com/${avatarList[randomNumber(0, avatarList.length - 1)]}?imageView2/1/w/200/h/200/format/webp/q/75|imageslim`
}
export const Constant = {
ApiPrefix: '/api/v1',
NotFound: {
message: 'Not Found',
documentation_url: '',
},
Color: {
green: '#64ea91',
blue: '#8fc9fb',
purple: '#d897eb',
red: '#f69899',
yellow: '#f8c82e',
peach: '#f797d6',
borderBase: '#e5e5e5',
borderSplit: '#f4f4f4',
grass: '#d6fbb5',
sky: '#c1e0fc',
},
}
export Mock from 'mockjs'
export qs from 'qs'
+35 -23
View File
@@ -1,7 +1,6 @@
import { color } from '../utils/theme'
const Mock = require('mockjs')
const config = require('../utils/config')
const { apiPrefix } = config
import { Mock, Constant } from './_utils'
const { ApiPrefix, Color } = Constant
const Dashboard = Mock.mock({
'sales|8': [
@@ -55,11 +54,9 @@ const Dashboard = Mock.mock({
},
],
user: {
name: 'zuiidea',
email: 'zuiiidea@.gmail.com',
name: 'github',
sales: 3241,
sold: 3556,
avatar: 'http://tva4.sinaimg.cn/crop.0.0.996.996.180/6ee6a3a3jw8f0ks5pk7btj20ro0rodi0.jpg',
},
'completed|12': [
{
@@ -73,11 +70,19 @@ const Dashboard = Mock.mock({
name: '@last',
'status|1-3': 1,
content: '@sentence',
avatar () {
return Mock.Random.image('48x48', Mock.Random.color(), '#757575', 'png', this.name.substr(0, 1))
avatar() {
return Mock.Random.image(
'48x48',
Mock.Random.color(),
'#757575',
'png',
this.name.substr(0, 1)
)
},
date () {
return `2016-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`
date() {
return `2016-${Mock.Random.date('MM-dd')} ${Mock.Random.time(
'HH:mm:ss'
)}`
},
},
],
@@ -86,8 +91,10 @@ const Dashboard = Mock.mock({
'id|+1': 1,
name: '@last',
'status|1-4': 1,
date () {
return `${Mock.Random.integer(2015, 2016)}-${Mock.Random.date('MM-dd')} ${Mock.Random.time('HH:mm:ss')}`
date() {
return `${Mock.Random.integer(2015, 2016)}-${Mock.Random.date(
'MM-dd'
)} ${Mock.Random.time('HH:mm:ss')}`
},
'price|10-200.1-2': 1,
},
@@ -95,28 +102,33 @@ const Dashboard = Mock.mock({
quote: {
name: 'Joho Doe',
title: 'Graphic Designer',
content: 'I\'m selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can\'t handle me at my worst, then you sure as hell don\'t deserve me at my best.',
avatar: 'http://img.hb.aicdn.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236',
content:
"I'm selfish, impatient and a little insecure. I make mistakes, I am out of control and at times hard to handle. But if you can't handle me at my worst, then you sure as hell don't deserve me at my best.",
avatar:
'http://img.hb.aicdn.com/bc442cf0cc6f7940dcc567e465048d1a8d634493198c4-sPx5BR_fw236',
},
numbers: [
{
icon: 'pay-circle-o',
color: color.green,
color: Color.green,
title: 'Online Review',
number: 2781,
}, {
},
{
icon: 'team',
color: color.blue,
color: Color.blue,
title: 'New Customers',
number: 3241,
}, {
},
{
icon: 'message',
color: color.purple,
color: Color.purple,
title: 'Active Projects',
number: 253,
}, {
},
{
icon: 'shopping-cart',
color: color.red,
color: Color.red,
title: 'Referrals',
number: 4324,
},
@@ -124,7 +136,7 @@ const Dashboard = Mock.mock({
})
module.exports = {
[`GET ${apiPrefix}/dashboard`] (req, res) {
[`GET ${ApiPrefix}/dashboard`](req, res) {
res.json(Dashboard)
},
}
+67
View File
@@ -0,0 +1,67 @@
import { Mock, Constant } from './_utils'
const { ApiPrefix } = Constant
let postId = 0
const database = Mock.mock({
'data|100': [
{
id() {
postId += 1
return postId + 10000
},
'status|1-2': 1,
title: '@title',
author: '@last',
categories: '@word',
tags: '@word',
'views|10-200': 1,
'comments|10-200': 1,
visibility: () => {
return Mock.mock(
'@pick(["Public",' + '"Password protected", ' + '"Private"])'
)
},
date: '@dateTime',
image() {
return Mock.Random.image(
'100x100',
Mock.Random.color(),
'#757575',
'png',
this.author.substr(0, 1)
)
},
},
],
}).data
module.exports = {
[`GET ${ApiPrefix}/posts`](req, res) {
const { query } = req
let { pageSize, page, ...other } = query
pageSize = pageSize || 10
page = page || 1
let newData = database
for (let key in other) {
if ({}.hasOwnProperty.call(other, key)) {
newData = newData.filter(item => {
if ({}.hasOwnProperty.call(item, key)) {
return (
String(item[key])
.trim()
.indexOf(decodeURI(other[key]).trim()) > -1
)
}
return true
})
}
}
res.status(200).json({
data: newData.slice((page - 1) * pageSize, page * pageSize),
total: newData.length,
})
},
}
+155
View File
@@ -0,0 +1,155 @@
import { Constant } from './_utils'
const { ApiPrefix } = Constant
const database = [
{
id: '1',
icon: 'dashboard',
name: 'Dashboard',
zh: {
name: '仪表盘'
},
'pt-br': {
name: 'Dashboard'
},
route: '/dashboard',
},
{
id: '2',
breadcrumbParentId: '1',
name: 'Users',
zh: {
name: '用户管理'
},
'pt-br': {
name: 'Usuário'
},
icon: 'user',
route: '/user',
},
{
id: '7',
breadcrumbParentId: '1',
name: 'Posts',
zh: {
name: '用户管理'
},
'pt-br': {
name: 'Posts'
},
icon: 'shopping-cart',
route: '/post',
},
{
id: '21',
menuParentId: '-1',
breadcrumbParentId: '2',
name: 'User Detail',
zh: {
name: '用户详情'
},
'pt-br': {
name: 'Detalhes do usuário'
},
route: '/user/:id',
},
{
id: '3',
breadcrumbParentId: '1',
name: 'Request',
zh: {
name: 'Request'
},
'pt-br': {
name: 'Requisição'
},
icon: 'api',
route: '/request',
},
{
id: '4',
breadcrumbParentId: '1',
name: 'UI Element',
zh: {
name: 'UI组件'
},
'pt-br': {
name: 'Elementos UI'
},
icon: 'camera-o',
},
{
id: '45',
breadcrumbParentId: '4',
menuParentId: '4',
name: 'Editor',
zh: {
name: 'Editor'
},
'pt-br': {
name: 'Editor'
},
icon: 'edit',
route: '/UIElement/editor',
},
{
id: '5',
breadcrumbParentId: '1',
name: 'Charts',
zh: {
name: 'Charts'
},
'pt-br': {
name: 'Graficos'
},
icon: 'code-o',
},
{
id: '51',
breadcrumbParentId: '5',
menuParentId: '5',
name: 'ECharts',
zh: {
name: 'ECharts'
},
'pt-br': {
name: 'ECharts'
},
icon: 'line-chart',
route: '/chart/ECharts',
},
{
id: '52',
breadcrumbParentId: '5',
menuParentId: '5',
name: 'HighCharts',
zh: {
name: 'HighCharts'
},
'pt-br': {
name: 'HighCharts'
},
icon: 'bar-chart',
route: '/chart/highCharts',
},
{
id: '53',
breadcrumbParentId: '5',
menuParentId: '5',
name: 'Rechartst',
zh: {
name: 'Rechartst'
},
'pt-br': {
name: 'Rechartst'
},
icon: 'area-chart',
route: '/chart/Recharts',
},
]
module.exports = {
[`GET ${ApiPrefix}/routes`](req, res) {
res.status(200).json(database)
},
}
+57 -41
View File
@@ -1,7 +1,6 @@
const qs = require('qs')
const Mock = require('mockjs')
const config = require('../utils/config')
const { apiPrefix } = config
import { Mock, Constant, qs, randomAvatar } from './_utils'
const { ApiPrefix } = Constant
let usersListData = Mock.mock({
'data|80-100': [
@@ -15,14 +14,13 @@ let usersListData = Mock.mock({
isMale: '@boolean',
email: '@email',
createTime: '@datetime',
avatar () {
return Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1))
avatar() {
return randomAvatar()
},
},
],
})
let database = usersListData.data
const EnumRoleType = {
@@ -50,16 +48,21 @@ const adminUsers = [
username: 'admin',
password: 'admin',
permissions: userPermission.ADMIN,
}, {
avatar: randomAvatar(),
},
{
id: 1,
username: 'guest',
password: 'guest',
permissions: userPermission.DEFAULT,
}, {
avatar: randomAvatar(),
},
{
id: 2,
username: '吴彦祖',
password: '123456',
permissions: userPermission.DEVELOPER,
avatar: randomAvatar(),
},
]
@@ -88,34 +91,37 @@ const NOTFOUND = {
}
module.exports = {
[`POST ${apiPrefix}/user/login`] (req, res) {
[`POST ${ApiPrefix}/user/login`](req, res) {
const { username, password } = req.body
const user = adminUsers.filter((item) => item.username === username)
const user = adminUsers.filter(item => item.username === username)
if (user.length > 0 && user[0].password === password) {
const now = new Date()
now.setDate(now.getDate() + 1)
res.cookie('token', JSON.stringify({ id: user[0].id, deadline: now.getTime() }), {
maxAge: 900000,
httpOnly: true,
})
res.cookie(
'token',
JSON.stringify({ id: user[0].id, deadline: now.getTime() }),
{
maxAge: 900000,
httpOnly: true,
}
)
res.json({ success: true, message: 'Ok' })
} else {
res.status(400).end()
}
},
[`GET ${apiPrefix}/user/logout`] (req, res) {
[`GET ${ApiPrefix}/user/logout`](req, res) {
res.clearCookie('token')
res.status(200).end()
},
[`GET ${apiPrefix}/user`] (req, res) {
[`GET ${ApiPrefix}/user`](req, res) {
const cookie = req.headers.cookie || ''
const cookies = qs.parse(cookie.replace(/\s/g, ''), { delimiter: ';' })
const response = {}
const user = {}
let user = {}
if (!cookies.token) {
res.status(200).send({ message: 'Not Login' })
return
@@ -125,18 +131,17 @@ module.exports = {
response.success = token.deadline > new Date().getTime()
}
if (response.success) {
const userItem = adminUsers.filter(_ => _.id === token.id)
if (userItem.length > 0) {
user.permissions = userItem[0].permissions
user.username = userItem[0].username
user.id = userItem[0].id
const userItem = adminUsers.find(_ => _.id === token.id)
if (userItem) {
const { password, ...other } = userItem
user = other
}
}
response.user = user
res.json(response)
},
[`GET ${apiPrefix}/users`] (req, res) {
[`GET ${ApiPrefix}/users`](req, res) {
const { query } = req
let { pageSize, page, ...other } = query
pageSize = pageSize || 10
@@ -145,7 +150,7 @@ module.exports = {
let newData = database
for (let key in other) {
if ({}.hasOwnProperty.call(other, key)) {
newData = newData.filter((item) => {
newData = newData.filter(item => {
if ({}.hasOwnProperty.call(item, key)) {
if (key === 'address') {
return other[key].every(iitem => item[key].indexOf(iitem) > -1)
@@ -159,7 +164,11 @@ module.exports = {
}
return true
}
return String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > -1
return (
String(item[key])
.trim()
.indexOf(decodeURI(other[key]).trim()) > -1
)
}
return true
})
@@ -172,17 +181,24 @@ module.exports = {
})
},
[`DELETE ${apiPrefix}/users`] (req, res) {
const { ids } = req.body
database = database.filter((item) => !ids.some(_ => _ === item.id))
[`POST ${ApiPrefix}/users/delete`](req, res) {
const { ids=[] } = req.body
database = database.filter(item => !ids.some(_ => _ === item.id))
res.status(204).end()
},
[`POST ${apiPrefix}/user`] (req, res) {
[`POST ${ApiPrefix}/user`](req, res) {
const newData = req.body
newData.createTime = Mock.mock('@now')
newData.avatar = newData.avatar || Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', newData.nickName.substr(0, 1))
newData.avatar =
newData.avatar ||
Mock.Random.image(
'100x100',
Mock.Random.color(),
'#757575',
'png',
newData.nickName.substr(0, 1)
)
newData.id = Mock.mock('@id')
database.unshift(newData)
@@ -190,33 +206,33 @@ module.exports = {
res.status(200).end()
},
[`GET ${apiPrefix}/user/:id`] (req, res) {
[`GET ${ApiPrefix}/user/:id`](req, res) {
const { id } = req.params
const data = queryArray(database, id, 'id')
if (data) {
res.status(200).json(data)
} else {
res.status(404).json(NOTFOUND)
res.status(200).json(NOTFOUND)
}
},
[`DELETE ${apiPrefix}/user/:id`] (req, res) {
[`DELETE ${ApiPrefix}/user/:id`](req, res) {
const { id } = req.params
const data = queryArray(database, id, 'id')
if (data) {
database = database.filter((item) => item.id !== id)
database = database.filter(item => item.id !== id)
res.status(204).end()
} else {
res.status(404).json(NOTFOUND)
res.status(200).json(NOTFOUND)
}
},
[`PATCH ${apiPrefix}/user/:id`] (req, res) {
[`PATCH ${ApiPrefix}/user/:id`](req, res) {
const { id } = req.params
const editItem = req.body
let isExist = false
database = database.map((item) => {
database = database.map(item => {
if (item.id === id) {
isExist = true
return Object.assign({}, item, editItem)
@@ -227,7 +243,7 @@ module.exports = {
if (isExist) {
res.status(201).end()
} else {
res.status(404).json(NOTFOUND)
res.status(200).json(NOTFOUND)
}
},
}
+102 -41
View File
@@ -1,52 +1,113 @@
{
"private": true,
"name": "antd-admin",
"version": "5.1.3",
"license": "MIT",
"description": "An admin dashboard application demo built upon Ant Design and UmiJS",
"dependencies": {
"antd": "^2.11.2",
"classnames": "^2.2.5",
"draftjs-to-markdown": "^0.4.0",
"dva": "^1.2.0",
"dva-loading": "^0.2.0",
"lodash": "^4.17.4",
"@lingui/react": "^2.8.0",
"ant-design-pro": "^2.3.0",
"antd": "^3.24.0",
"axios": "^0.19.0",
"classnames": "^2.2.6",
"d3-shape": "^1.3.0",
"draftjs-to-html": "^0.8.4",
"draftjs-to-markdown": "^0.5.1",
"dva": "2.4.1",
"dva-model-extend": "^0.1.2",
"echarts": "^4.4.0",
"echarts-for-react": "^2.0.15-beta.1",
"echarts-gl": "^1.1.1",
"echarts-liquidfill": "^2.0.2",
"enquire-js": "^0.2.1",
"highcharts-exporting": "^0.1.7",
"highcharts-more": "^0.1.7",
"json-format": "^1.0.1",
"lodash": "^4.17.11",
"md5": "^2.2.1",
"nprogress": "^0.2.0",
"qs": "^6.5.0",
"react": "^15.6.1",
"react-countup": "^2.1.1",
"react-dom": "^15.6.1",
"react-draft-wysiwyg": "^1.10.0",
"react-helmet": "^5.1.3",
"recharts": "^0.22.4"
"path-to-regexp": "^3.1.0",
"prop-types": "^15.7.0",
"qs": "^6.9.0",
"react-adsense": "^0.1.0",
"react-countup": "^4.2.0",
"react-draft-wysiwyg": "^1.13.0",
"react-helmet": "^5.2.0",
"react-highcharts": "^16.1.0",
"react-perfect-scrollbar": "^1.5.0",
"recharts": "^1.8.0",
"store": "^2.0.0"
},
"devDependencies": {
"axios": "^0.16.2",
"babel-eslint": "^7.2.3",
"@lingui/babel-preset-react": "^2.8.2",
"@lingui/cli": "^2.8.2",
"@lingui/loader": "^2.8.2",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "^10.0.1",
"babel-plugin-dev-expression": "^0.2.1",
"babel-plugin-dva-hmr": "^0.3.2",
"babel-plugin-import": "^1.1.1",
"babel-plugin-transform-runtime": "^6.9.0",
"babel-polyfill": "^6.23.0",
"babel-runtime": "^6.9.2",
"draftjs-to-html": "^0.7.0",
"dva-model-extend": "^0.1.1",
"eslint": "^4.1.1",
"eslint-config-airbnb": "^15.0.2",
"eslint-loader": "^1.9.0",
"eslint-plugin-import": "^2.6.1",
"eslint-plugin-jsx-a11y": "^6.0.2",
"eslint-plugin-react": "^7.1.0",
"jsonp": "^0.2.1",
"less-vars-to-js": "^1.1.2",
"babel-plugin-import": "^1.12.0",
"babel-plugin-macros": "^2.6.0",
"babel-plugin-module-resolver": "^3.2.0",
"cross-env": "^6.0.0",
"eslint": "^5.15.0",
"eslint-config-react-app": "^4.0.0",
"eslint-plugin-flowtype": "^3.11.0",
"eslint-plugin-import": "^2.18.0",
"eslint-plugin-jsx-a11y": "^6.2.1",
"eslint-plugin-react": "^7.14.0",
"eslint-plugin-react-hooks": "^1.6.0",
"husky": "^2.7.0",
"less-vars-to-js": "^1.3.0",
"lint-staged": "^8.1.0",
"mockjs": "^1.0.1-beta3",
"path-to-regexp": "^1.7.0",
"rc-tween-one": "^1.0.0",
"redbox-react": "^1.2.10",
"roadhog": "0.6.0"
"module": "^1.2.5",
"prettier": "^1.18.0",
"stylelint": "^10.0.0",
"stylelint-config-prettier": "^5.2.0",
"stylelint-config-standard": "^18.3.0",
"umi": "^2.10.0",
"umi-plugin-react": "^1.12.0"
},
"lint-staged": {
"src/**/*.js": [
"eslint --ext .js --fix",
"npm run prettier",
"git add"
],
"**/*.less": [
"stylelint --syntax less",
"npm run prettier",
"git add"
]
},
"lingui": {
"fallbackLocale": "en",
"sourceLocale": "en",
"localeDir": "src/locales",
"srcPathDirs": [
"src/pages",
"src/layouts",
"src/components",
"src/layouts"
],
"format": "minimal",
"extractBabelOptions": {
"presets": [
"umi/babel"
]
}
},
"pre-commit": [
"lint"
],
"scripts": {
"dev": "set BROWSER=none&&set HOST=0.0.0.0&&roadhog server",
"lint": "eslint --fix --ext .js src",
"build": "roadhog build"
"analyze": "cross-env ANALYZE=1 umi build",
"build": "umi build",
"lint:js": "eslint --ext .js src",
"lint:style": "stylelint \"src/**/*.less\" --syntax less",
"start": "umi dev",
"test": "cross-env BABELRC=none umi test",
"prettier": "prettier --write 'src/**/*.{js,less}'",
"precommit": "lint-staged",
"add-locale": "lingui add-locale",
"extract": "lingui extract",
"trans": "lingui extract --clean && node ./scripts/translate.js",
"doc": "docsify serve docs"
}
}
+63
View File
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<rect style="fill:#F0F0F0;" width="512" height="512"/>
<g>
<rect y="64" style="fill:#D80027;" width="512" height="64"/>
<rect y="192" style="fill:#D80027;" width="512" height="64"/>
<rect y="320" style="fill:#D80027;" width="512" height="64"/>
<rect y="448" style="fill:#D80027;" width="512" height="64"/>
</g>
<rect style="fill:#2E52B2;" width="256" height="275.69"/>
<g>
<polygon style="fill:#F0F0F0;" points="51.518,115.318 45.924,132.529 27.826,132.529 42.469,143.163 36.875,160.375
51.518,149.741 66.155,160.375 60.56,143.163 75.203,132.529 57.106,132.529 "/>
<polygon style="fill:#F0F0F0;" points="57.106,194.645 51.518,177.434 45.924,194.645 27.826,194.645 42.469,205.279
36.875,222.49 51.518,211.857 66.155,222.49 60.56,205.279 75.203,194.645 "/>
<polygon style="fill:#F0F0F0;" points="51.518,53.202 45.924,70.414 27.826,70.414 42.469,81.047 36.875,98.259 51.518,87.625
66.155,98.259 60.56,81.047 75.203,70.414 57.106,70.414 "/>
<polygon style="fill:#F0F0F0;" points="128.003,115.318 122.409,132.529 104.311,132.529 118.954,143.163 113.36,160.375
128.003,149.741 142.64,160.375 137.045,143.163 151.689,132.529 133.591,132.529 "/>
<polygon style="fill:#F0F0F0;" points="133.591,194.645 128.003,177.434 122.409,194.645 104.311,194.645 118.954,205.279
113.36,222.49 128.003,211.857 142.64,222.49 137.045,205.279 151.689,194.645 "/>
<polygon style="fill:#F0F0F0;" points="210.076,194.645 204.489,177.434 198.894,194.645 180.797,194.645 195.44,205.279
189.845,222.49 204.489,211.857 219.125,222.49 213.531,205.279 228.174,194.645 "/>
<polygon style="fill:#F0F0F0;" points="204.489,115.318 198.894,132.529 180.797,132.529 195.44,143.163 189.845,160.375
204.489,149.741 219.125,160.375 213.531,143.163 228.174,132.529 210.076,132.529 "/>
<polygon style="fill:#F0F0F0;" points="128.003,53.202 122.409,70.414 104.311,70.414 118.954,81.047 113.36,98.259
128.003,87.625 142.64,98.259 137.045,81.047 151.689,70.414 133.591,70.414 "/>
<polygon style="fill:#F0F0F0;" points="204.489,53.202 198.894,70.414 180.797,70.414 195.44,81.047 189.845,98.259
204.489,87.625 219.125,98.259 213.531,81.047 228.174,70.414 210.076,70.414 "/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.
-927
View File
@@ -1,927 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Thu May 11 13:24:17 2017
By admin
</metadata>
<defs>
<font id="anticon" horiz-adv-x="1024" >
<font-face
font-family="anticon"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="-0.142858 -128.087 1024.37 896.923"
underline-thickness="0"
underline-position="0"
unicode-range="U+0078-E951"
/>
<missing-glyph
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="stepforward" unicode="&#xe600;"
d="M327 820l431 -356v300q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-760q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v301l-431 -357q-21 -18 -46 -7t-25 39v808q0 28 25 39t46 -7z" />
<glyph glyph-name="stepbackward" unicode="&#xe601;"
d="M759 820l-431 -356v300q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-760q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v301l431 -357q21 -18 46 -7t25 39v808q0 28 -25 39t-46 -7z" />
<glyph glyph-name="forward" unicode="&#xe602;"
d="M575 790l436 -375q13 -12 13 -30t-13 -29l-436 -378q-18 -17 -40.5 -6.5t-22.5 36.5v377v375q0 26 22.5 36.5t40.5 -6.5zM63 790l436 -375q13 -12 13 -30t-13 -29l-436 -378q-18 -17 -40.5 -6.5t-22.5 36.5v752q0 26 22.5 36.5t40.5 -6.5z" />
<glyph glyph-name="banckward" unicode="&#xe603;" horiz-adv-x="1025"
d="M449 790l-436 -376q-13 -11 -13 -29t13 -30l436 -377q18 -17 40.5 -6.5t22.5 36.5v377v375q0 26 -22.5 36.5t-40.5 -6.5zM961 790l-436 -376q-13 -11 -13 -29t13 -30l436 -377q18 -17 40.5 -6.5t22.5 36.5v752q0 26 -22.5 36.5t-40.5 -6.5z" />
<glyph glyph-name="caretright" unicode="&#xe604;"
d="M393 820l489 -403q14 -13 14 -32t-14 -32l-489 -405q-21 -18 -46 -7t-25 39v808q0 28 25 39t46 -7z" />
<glyph glyph-name="caretleft" unicode="&#xe605;"
d="M631 820l-489 -403q-14 -13 -14 -32t14 -32l489 -405q21 -18 46 -7t25 39v808q0 28 -25 39t-46 -7z" />
<glyph glyph-name="caretdown" unicode="&#xe606;"
d="M76 504l403 -489q13 -15 32 -15t32 15l405 489q18 20 7 45t-39 25h-808q-28 0 -39 -25t7 -45z" />
<glyph glyph-name="caretup" unicode="&#xe607;"
d="M76 263l405 489q13 14 32 14t32 -14l403 -489q18 -20 7 -45.5t-39 -25.5h-808q-28 0 -39 25.5t7 45.5z" />
<glyph glyph-name="rightcircle" unicode="&#xe608;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM681 358l-235 -220q-11 -11 -26 -10.5t-25 11.5t-9.5 26t11.5 25l207 194l-207 195
q-11 10 -11.5 25t9.5 26t25 11.5t26 -9.5l235 -221q12 -11 12 -26.5t-12 -26.5z" />
<glyph glyph-name="leftcircle" unicode="&#xe609;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM629 139q-10 -11 -25 -11.5t-26 9.5l-235 221q-12 11 -12 26.5t11 26.5l236 220q11 11 26 10.5
t25 -11.5t9.5 -26t-11.5 -25l-207 -195l207 -194q11 -10 11.5 -25t-9.5 -26z" />
<glyph glyph-name="upcircle" unicode="&#xe60a;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM757 278.5q-11 -10.5 -25.5 -10t-24.5 11.5l-195 208l-195 -208q-10 -11 -25 -11.5t-25.5 10
t-11 25t9.5 25.5l221 236q10 11 26 11t26 -11l221 -236q10 -11 9.5 -25.5t-11.5 -25z" />
<glyph glyph-name="downcircle" unicode="&#xe60b;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM759 430l-221 -236q-10 -11 -26 -11t-26 11l-221 236q-10 11 -9.5 25.5t11 25t25.5 10t25 -11.5
l195 -208l195 208q10 11 24.5 11.5t25.5 -10t11.5 -25t-9.5 -25.5z" />
<glyph glyph-name="rightcircleo" unicode="&#xe60c;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM681 411l-235 220q-11 11 -26 10.5t-25 -11.5t-9.5 -26t11.5 -25l207 -195l-207 -194q-11 -10 -11.5 -25t9.5 -26t25 -11.5
t26 9.5l235 221q12 11 12 26.5t-12 26.5z" />
<glyph glyph-name="leftcircleo" unicode="&#xe60d;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM331 384.5q0 -15.5 12 -26.5l235 -221q11 -10 26 -9.5t25 11.5t9.5 26t-11.5 25l-207 194l207 195q11 10 11.5 25t-9.5 26
t-25 11.5t-26 -10.5l-236 -220q-11 -11 -11 -26.5z" />
<glyph glyph-name="upcircleo" unicode="&#xe60e;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM512 576q-16 0 -26 -11l-221 -236q-10 -11 -9.5 -25.5t11 -25t25.5 -10t25 11.5l195 208l195 -208q10 -11 24.5 -11.5t25.5 10
t11.5 25t-9.5 25.5l-221 236q-10 11 -26 11z" />
<glyph glyph-name="downcircleo" unicode="&#xe60f;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM512 183q-16 0 -26 11l-221 236q-10 11 -9.5 25.5t11 25t25.5 10t25 -11.5l195 -208l195 208q10 11 24.5 11.5t25.5 -10
t11.5 -25t-9.5 -25.5l-221 -236q-10 -11 -26 -11z" />
<glyph glyph-name="verticleleft" unicode="&#xe610;"
d="M273 78l382 307l-380 305q-14 11 -16 29t9.5 32t29.5 16t32 -9l358 -288v262q0 15 10.5 25.5t25.5 10.5h8q15 0 25.5 -10.5t10.5 -25.5v-696q0 -15 -10.5 -25.5t-25.5 -10.5h-8q-15 0 -25.5 10.5t-10.5 25.5v264l-360 -290q-12 -10 -27 -10q-21 0 -35 17q-11 14 -9 32
t16 29z" />
<glyph glyph-name="verticleright" unicode="&#xe611;"
d="M752 78l-382 307l380 305q14 11 16 29t-9.5 32t-29.5 16t-32 -9l-358 -288v262q0 15 -10.5 25.5t-25.5 10.5h-8q-15 0 -25.5 -10.5t-10.5 -25.5v-696q0 -15 10.5 -25.5t25.5 -10.5h8q15 0 25.5 10.5t10.5 25.5v264l360 -290q12 -10 27 -10q21 0 34 17q12 14 10 32t-16 29
z" />
<glyph glyph-name="rollback" unicode="&#xe612;"
d="M811.5 471.5q-88.5 88.5 -213.5 88.5h-336l114 114q12 12 12 28.5t-12 28t-28.5 11.5t-28.5 -12l-183 -183q-12 -12 -12 -28.5t12 -28.5l178 -178q12 -12 28.5 -12t28 11.5t11.5 28t-11 28.5l-113 112h340q92 0 157 -65t65 -157v-192q0 -17 12 -28.5t28.5 -11.5t28 11.5
t11.5 28.5v192q0 125 -88.5 213.5z" />
<glyph glyph-name="retweet" unicode="&#xe613;"
d="M366 579h349l-119 -119q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t25 11l179 178q11 11 11 25.5t-11 25.5l-184 184q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t10 -25l120 -120h-344q-124 0 -211.5 -87.5t-87.5 -211.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
q0 94 66.5 160.5t160.5 66.5zM923 455q-15 0 -25.5 -10.5t-10.5 -25.5q0 -94 -66.5 -160.5t-160.5 -66.5h-349l120 120q10 10 10 25t-10.5 25.5t-25.5 10.5t-25 -11l-179 -178q-10 -11 -10 -25.5t10 -25.5l184 -184q10 -10 25 -10t25.5 10.5t10.5 25.5t-10 25l-120 120h344
q124 0 211.5 87.5t87.5 211.5q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="shrink" unicode="&#xe614;"
d="M109 247h211l-232 -232q-13 -13 -13 -31t13 -31t31 -13t31 13l236 236v-210q0 -18 13 -31t31 -13t31 13t13 31v312q0 19 -13 31.5t-31 12.5h-321q-18 0 -31 -12.5t-13 -31t13 -31.5t31 -13zM595 431h321q18 0 31 13t13 31t-13 31t-31 13h-211l232 232q13 13 13 31.5
t-13 31t-31 12.5t-31 -12l-236 -236v209q0 18 -13 31t-31 13t-31 -13t-13 -31v-312q0 -18 13 -31t31 -13z" />
<glyph glyph-name="arrowsalt" unicode="&#xe615;"
d="M430 23h-211l232 232q13 13 13 31.5t-13 31t-31 12.5t-31 -12l-236 -236v209q0 18 -13 31t-31 13t-31 -13t-13 -31v-312q0 -18 13 -31t31 -13h321q18 0 31 13t13 31t-13 31t-31 13zM916 831h-321q-18 0 -31 -13t-13 -31t13 -31t31 -13h211l-232 -232q-13 -13 -13 -31
t13 -31t31 -13t31 13l236 236v-210q0 -18 13 -31t31 -13t31 13t13 31v312q0 18 -13 31t-31 13z" />
<glyph glyph-name="doubleright" unicode="&#xe617;"
d="M431 17q-11 14 -9 32t16 29l381 307l-379 305q-14 11 -16 29t9 32t29 16t32 -9l422 -339q17 -13 17 -34t-17 -34l-424 -341q-12 -10 -27 -10q-21 0 -34 17zM101 17q-11 14 -9 32t16 29l381 307l-379 305q-14 11 -16 29t9 32t29 16t32 -9l422 -339q17 -13 17 -34t-17 -34
l-424 -341q-12 -10 -27 -10q-21 0 -34 17z" />
<glyph glyph-name="doubleleft" unicode="&#xe618;"
d="M559 0q-15 0 -27 10l-424 341q-17 13 -17 34t17 34l422 339q14 11 32 9t29 -16t9 -32t-16 -29l-379 -305l381 -307q14 -11 16 -29t-9 -32q-13 -17 -34 -17zM889 0q-15 0 -27 10l-424 341q-17 13 -17 34t17 34l422 339q14 11 32 9t29 -16t9 -32t-16 -29l-379 -305
l381 -307q14 -11 16 -29t-9 -32q-13 -17 -34 -17z" />
<glyph glyph-name="arrowdown" unicode="&#xe619;"
d="M558 725v-574v0l208 216q13 14 31 14t31.5 -12.5t13.5 -30.5t-12 -32l-284 -294q-13 -14 -31.5 -14t-31.5 14l-285 296q-12 13 -12 30q0 19 14 32q13 13 31 12.5t31 -13.5l208 -216v0v573q0 17 12 30t29 14q19 1 33 -12.5t14 -32.5z" />
<glyph glyph-name="arrowup" unicode="&#xe61a;"
d="M470 43v574v0l-208 -216q-13 -14 -31 -14t-31.5 12.5t-13.5 30.5t12 32l284 294q13 14 31.5 14t31.5 -14l285 -296q12 -13 12 -30q0 -19 -14 -32q-13 -13 -31 -12.5t-31 13.5l-208 216v0v-573q0 -17 -12 -30t-29 -14q-19 -1 -33 12.5t-14 32.5z" />
<glyph glyph-name="arrowright" unicode="&#xe61b;"
d="M173 428h574v0l-216 208q-14 13 -14 31t12.5 31.5t30.5 13.5t32 -12l294 -284q14 -13 14 -31.5t-14 -31.5l-296 -285q-13 -12 -30 -12q-19 0 -32 14q-13 13 -12.5 31t13.5 31l216 208v0h-573q-17 0 -30 12t-14 29q-1 19 12.5 33t32.5 14z" />
<glyph glyph-name="arrowleft" unicode="&#xe61c;"
d="M855 428h-574v0l216 208q14 13 14 31t-12.5 31.5t-30.5 13.5t-32 -12l-294 -284q-14 -13 -14 -31.5t14 -31.5l296 -285q13 -12 30 -12q19 0 32 14q13 13 12.5 31t-13.5 31l-216 208v0h573q17 0 30 12t14 29q1 19 -12.5 33t-32.5 14z" />
<glyph glyph-name="down" unicode="&#xe61d;"
d="M896 596q0 -15 -10 -28l-341 -423q-13 -17 -34 -17t-34 17l-339 422q-11 14 -9 32t16 29t32 9t29 -16l305 -379l307 381q11 14 29 16t32 -9q17 -13 17 -34z" />
<glyph glyph-name="up" unicode="&#xe61e;"
d="M896 236q0 15 -10 28l-341 423q-13 17 -34 17t-34 -17l-339 -422q-11 -14 -9 -32t16 -29t32 -9t29 16l305 379l307 -381q11 -14 29 -16t32 9q17 13 17 34z" />
<glyph glyph-name="right" unicode="&#xe61f;"
d="M301 0q15 0 27 10l424 341q16 13 16 34t-16 34l-422 339q-14 11 -32 9t-29.5 -16t-9.5 -32t16 -29l380 -305l-382 -307q-14 -11 -16 -29t9 -32q14 -17 35 -17z" />
<glyph glyph-name="left" unicode="&#xe620;"
d="M724 0q-15 0 -27 10l-424 341q-16 13 -16 34t16 34l422 339q14 11 32 9t29.5 -16t9.5 -32t-16 -29l-380 -305l382 -307q14 -11 16 -29t-10 -32q-13 -17 -34 -17z" />
<glyph glyph-name="minussquareo" unicode="&#xe621;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM732 347h-442q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h442q14 0 25 -10.5t11 -25.5v0
q0 -15 -11 -25.5t-25 -10.5z" />
<glyph glyph-name="minuscircle" unicode="&#xe622;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM832 384q0 -15 -10.5 -25.5t-25.5 -10.5h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568
q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="minuscircleo" unicode="&#xe623;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM796 348h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="minus" unicode="&#xe624;"
d="M796 348h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="pluscircleo" unicode="&#xe625;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM732 420h-184v183q0 15 -10.5 25.5t-25.5 10.5v0q-14 0 -25 -10.5t-11 -25.5v-183h-184q-15 0 -25.5 -11t-10.5 -25v0q0 -15 10.5 -25.5t25.5 -10.5h184v-183
q0 -15 11 -25.5t25 -10.5v0q15 0 25.5 10.5t10.5 25.5v183h184q15 0 25.5 10.5t10.5 25.5v0q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="pluscircle" unicode="&#xe626;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM768 384q0 -15 -10.5 -25.5t-25.5 -10.5h-184v-183q0 -15 -10.5 -25.5t-25.5 -10.5v0q-14 0 -25 10.5
t-11 25.5v183h-184q-15 0 -25.5 10.5t-10.5 25.5v0q0 14 10.5 25t25.5 11h184v183q0 15 11 25.5t25 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-183h184q15 0 25.5 -11t10.5 -25v0z" />
<glyph glyph-name="plus" unicode="&#xe627;"
d="M866 420h-318v310q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-310h-312q-14 0 -25 -10.5t-11 -25.5v0q0 -15 11 -25.5t25 -10.5h312v-312q0 -14 10.5 -25t25.5 -11v0q15 0 25.5 11t10.5 25v312h318q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5
t-25.5 10.5z" />
<glyph glyph-name="infocirlce" unicode="&#xe628;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM509 712q15 0 25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25t10.5 25.5t25.5 11zM666 154
q0 -15 -10.5 -25.5t-25.5 -10.5h-85h-72h-85q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h85v314h-60q-15 0 -25.5 11t-10.5 25v0q0 15 10.5 25.5t25.5 10.5h60h36v0q15 0 25.5 -10.5t10.5 -25.5v-350h85q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="infocirlceo" unicode="&#xe629;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM630 190h-85v350q0 15 -10.5 25.5t-25.5 10.5v0h-36h-60q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -14 10.5 -25t25.5 -11h60v-314h-85q-15 0 -25.5 -10.5
t-10.5 -25.5v0q0 -15 10.5 -25.5t25.5 -10.5h85h72h85q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5t-25.5 10.5zM509 676zM473 675.5q0 14.5 10.5 25.5t25.5 11t25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25z" />
<glyph glyph-name="info" unicode="&#xe62a;"
d="M660 136h-85v404q0 15 -10.5 25.5t-25.5 10.5v0h-36h-60q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -14 10.5 -25t25.5 -11h60v-368h-85q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -15 10.5 -25.5t25.5 -10.5h85h72h85q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5t-25.5 10.5z
M539 676zM503 675.5q0 14.5 10.5 25.5t25.5 11t25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25z" />
<glyph glyph-name="exclamation" unicode="&#xe62b;"
d="M512 193q-17 0 -28.5 11.5t-11.5 28.5v495q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-495q0 -17 -11.5 -28.5t-28.5 -11.5zM512 83zM467 83q0 19 13 32t32 13t32 -13t13 -32t-13 -32t-32 -13t-32 13t-13 32z" />
<glyph glyph-name="exclamationcircle" unicode="&#xe62c;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM472 665q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-369q0 -17 -11.5 -28.5t-28.5 -11.5t-28.5 11.5
t-11.5 28.5v369zM512 102q-19 0 -32 13t-13 32t13 32t32 13t32 -13t13 -32t-13 -32t-32 -13z" />
<glyph glyph-name="exclamationcircleo" unicode="&#xe62d;"
d="M512 824q90 0 171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140t-140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257
t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5v0zM512 256q-17 0 -28.5 11.5t-11.5 28.5v369q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-369q0 -17 -11.5 -28.5t-28.5 -11.5zM512 147zM467 147q0 19 13 32
t32 13t32 -13t13 -32t-13 -32t-32 -13t-32 13t-13 32z" />
<glyph glyph-name="closecircle" unicode="&#xe62e;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM717 229q11 -10 11 -25t-10.5 -25.5t-25.5 -10.5t-26 10l-154 155l-154 -155q-11 -10 -26 -10t-25.5 10.5
t-10.5 25.5t11 25l154 155l-154 155q-11 10 -11 25t10.5 25.5t25.5 10.5t26 -10l154 -155l154 155q11 10 26 10t25.5 -10.5t10.5 -25t-11 -25.5l-154 -155z" />
<glyph glyph-name="closecircleo" unicode="&#xe62f;"
d="M717.5 589.5q-10.5 10.5 -25.5 10.5t-26 -10l-154 -155l-154 155q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -25l154 -155l-154 -155q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l154 155l154 -155q11 -10 26 -10t25.5 10.5t10.5 25t-11 25.5l-154 155l154 155
q11 10 11 25t-10.5 25.5zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140
q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140z" />
<glyph glyph-name="checkcircle" unicode="&#xe630;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM772 540l-359 -361v0l-1 -1q-3 -3 -8 -6q-8 -5 -18 -5q-21 0 -31 18l-109 191q-8 13 -4 27t17 21.5t27.5 3.5
t21.5 -17l86 -149l327 328q11 11 26 11t25.5 -10.5t10.5 -25.5t-11 -25z" />
<glyph glyph-name="checkcircleo" unicode="&#xe631;"
d="M721 590l-327 -328l-86 149q-7 13 -21.5 17t-27.5 -3.5t-17 -21.5t4 -27l109 -191q10 -18 31 -18q10 0 18 5q5 3 8 6l1 1l359 360q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -11zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5
t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171
q-34 -79 -95 -140z" />
<glyph glyph-name="check" unicode="&#xe632;"
d="M328 96q-3 0 -5 1q-20 2 -30 20l-159 278q-8 15 -4 31t18.5 24t30.5 3.5t25 -18.5l133 -233l491 492q11 12 28 12t28.5 -11.5t11.5 -28.5t-12 -28l-526 -528l-2 -2q-11 -12 -28 -12z" />
<glyph glyph-name="close" unicode="&#xe633;"
d="M568 381l254 255q12 11 12 27.5t-11.5 28t-28 11.5t-27.5 -12l-255 -254l-255 254q-11 12 -27.5 12t-28 -11.5t-11.5 -28t12 -27.5l254 -255l-254 -255q-12 -11 -12 -27.5t11.5 -28t28 -11.5t27.5 12l255 255l255 -255q11 -12 27.5 -12t28 11.5t11.5 28t-12 27.5z" />
<glyph glyph-name="customerservice" unicode="&#xe634;"
d="M838 579q-6 26 -18 52q-25 59 -72 105q-46 45 -107 70q-63 26 -131 26t-131 -26q-60 -25 -107 -70.5t-72 -104.5q-11 -25 -18 -53q-24 -8 -45 -23q-22 -16 -38 -38q-35 -47 -35 -106q0 -72 51 -123q37 -37 87 -48q4 -1 8 -1q15 0 25 11q10 10 10 25l-1 227q0 107 77 183
q78 76 188.5 76t188.5 -76t78 -183v-236q0 -107 -78 -183q-31 -31 -71 -50q1 11 1 22q-1 46 -34 79t-79 35h-3q-48 0 -82 -34.5t-34 -82.5q0 -47 33.5 -81t80.5 -35v0h2v0h2h1v0v0q66 1 126 26t107 70.5t73 104.5q22 53 26 111q35 13 62 40q51 51 51 123q0 58 -34 104.5
t-88 63.5zM82 355q1 -3 3 -7q-2 5 -3 7zM92 333q2 -4 5 -9q-4 6 -5 9zM160 332l-3 3l3 -3l2 -2zM173 332q-4 3 -7 6q-31 31 -31 73q0 29 14 53q9 17 24 29v-161zM181 316q-1 0 -2 0.5t-1 1.5q1 -1 3 -2v0zM188 571v0q1 5 4 13q-2 -7 -4 -13zM204 248l-10 2q9 -2 10 -2h2h-2z
M210 248h-1h1v0zM237 274v1l-1 227l1 -227v-1zM307 756q7 5 10 7q-6 -4 -10 -7zM382 799q-30 -13 -58 -31q28 18 58 31q1 0 2.5 0.5t2.5 0.5q-3 0 -5 -1zM442 761l2 0.5t3 0.5h2zM742 730q-45 44 -104 69q-1 0 -2.5 0.5t-2.5 0.5q1 0 2.5 -0.5t2.5 -0.5q59 -25 104 -69l6 -6
zM754 718q4 -4 9 -10q-5 6 -9 10zM765 706q2 -3 8 -10q-4 4 -8 10zM404 52v0v3v-3zM512 161h3h-3v0zM544.5 21q-12.5 -13 -30.5 -14h-2q-19 0 -32 13.5t-13 31.5q0 19 13 32.5t32 13.5t32 -13.5t13 -32t-12.5 -31.5zM565 44v8v3v-1v-2v-8zM615 19l1 3l-1 -3q1 1 2.5 1.5
t2.5 0.5q-2 -1 -5 -2zM742 38l-6 -6q1 1 3.5 3t2.5 3l6 6q-3 -4 -6 -6zM784 266v-14v14v236v6v-3v-3v-236zM813 140q-3 -7 -7 -14q4 7 7 14q0 1 1 2.5t1 2.5q-1 -3 -2 -5zM813 628q-3 7 -7 14q4 -7 7 -14q1 -2 3 -7q-1 3 -3 7zM831 572q0 3 -1 7q0 -1 0.5 -3t0.5 -4v0z
M839 510q7 -3 12 -7q-5 4 -12 7v0zM864 332q-11 -11 -25 -18v0q14 7 25 18q0 1 1 1q0 1 1 1q-1 0 -1 -1q-1 0 -1 -1zM858 338q-5 -5 -11 -10v168q17 -13 27 -30q15 -25 15 -55q0 -42 -31 -73zM945 460l-2 6q1 -2 2 -6zM935 485q1 -1 3 -6q-1 1 -1.5 3.5t-1.5 2.5zM943 356
q0 2 2 7q-1 -2 -2 -7z" />
<glyph glyph-name="creditcard" unicode="&#xe635;"
d="M952 766h-880q-30 0 -51 -21t-21 -51v-120v-96v-405q0 -29 21 -50.5t51 -21.5h880q30 0 51 21.5t21 50.5v405v96v120q0 30 -21 51t-51 21zM952 73h-880v405h880v-405zM72 574v120h880v-120h-880zM237 192v0q18 0 31 13t13 31v0q0 18 -13 31t-31 13v0q-18 0 -31 -13
t-13 -31v0q0 -18 13 -31t31 -13zM404 192v0q18 0 31 13t13 31v0q0 18 -13 31t-31 13v0q-19 0 -31.5 -13t-12.5 -31v0q0 -18 12.5 -31t31.5 -13z" />
<glyph glyph-name="codesquareo" unicode="&#xe636;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM888 7h-752v753h752v-753zM203.5 357.5q10.5 -10.5 25.5 -10.5t25 11l140 141q11 10 11 25t-10 26l-141 142q-10 10 -25 10t-25.5 -10.5
t-10.5 -25t10 -25.5l115 -117l-115 -115q-10 -11 -10 -26t10.5 -25.5zM383 384q0 -15 10.5 -25.5t24.5 -10.5l199 -1h1q14 0 25 10.5t11 25.5t-11 25.5t-25 10.5l-199 1v0q-15 0 -25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="book" unicode="&#xe637;"
d="M822 832h-259h-72h-121h-72h-94q-29 0 -50.5 -21t-21.5 -51v-753q0 -29 21.5 -50.5t50.5 -21.5h619q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM491 760v-209l-9 8l-33 34q-8 7 -18 7t-17 -7l-44 -44v211h121zM298 760v-277q0 -15 10 -25t25 -10v0
q37 0 63 25l35 35l35 -34q25 -25 60 -26h1q15 0 25.5 10t10.5 25v277h260v-624h-618v624h93zM204 7v57h618v-57h-618z" />
<glyph glyph-name="barschart" unicode="&#xe638;"
d="M203 730v-696q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v696q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM167 70h694q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-694q-15 0 -25.5 10.5t-10.5 25.5v0
q0 15 10.5 25.5t25.5 10.5zM394 537v-371q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v371q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM777 667v-501q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v501q0 15 10.5 25.5
t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM585 411v-245q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v245q0 15 10.5 25.5t25.5 10.5v0q14 0 25 -10.5t11 -25.5z" />
<glyph glyph-name="bars" unicode="&#xe639;"
d="M187 639zM124 639q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 610h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5zM187 384
zM124 384q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 355h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5zM187 129zM124 129
q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 100h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="question" unicode="&#xe63a;"
d="M644 633q-61 64 -152 64q-84 0 -143.5 -59.5t-59.5 -143.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 54 38.5 92.5t92.5 38.5h1q59 0 99 -42q35 -37 32 -85q-1 -18 -4 -29t-21 -37.5t-54 -62.5q-43 -43 -66.5 -77t-27.5 -72q-2 -15 7.5 -26.5t24.5 -12.5h4
q14 0 24 9t12 23q3 35 73 105q61 61 79.5 98t20.5 78q5 79 -52 139zM486 80zM443 80q0 18 12.5 30.5t30.5 12.5t30.5 -12.5t12.5 -30.5t-12.5 -30.5t-30.5 -12.5t-30.5 12.5t-12.5 30.5z" />
<glyph glyph-name="questioncircle" unicode="&#xe63b;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM505.5 83q-17.5 0 -30.5 13t-13 31t13 30.5t30.5 12.5t30.5 -12.5t13 -30.5t-13 -31t-30.5 -13zM691 505
q-2 -38 -19.5 -70.5t-67.5 -83.5q-59 -58 -61 -87q-2 -13 -12 -22.5t-24 -9.5h-4q-15 2 -24.5 13.5t-7.5 26.5q3 33 23.5 63t58.5 67q30 30 45.5 52t18 31t2.5 24q2 39 -26 69q-33 34 -81 34v0q-45 0 -76.5 -31.5t-31.5 -75.5q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5
t-10.5 25.5q0 74 52.5 126.5t126.5 52.5q80 1 134 -56q50 -53 46 -123z" />
<glyph glyph-name="questioncircleo" unicode="&#xe63c;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM546 372zM507 232h-4q-15 2 -24.5 13.5t-7.5 26.5q3 33 23.5 63t58.5 67q30 30 45.5 52t18 31.5t2.5 23.5q2 39 -26 69q-33 35 -81 35v0q-45 0 -76.5 -32
t-31.5 -76q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5q0 74 52.5 126.5t126.5 53.5q80 0 134 -57q50 -53 46 -123q-2 -37 -19.5 -70t-67.5 -84q-59 -58 -61 -86q-2 -14 -12 -23.5t-24 -9.5zM506 127zM462 127q0 18 13 30.5t30.5 12.5t30.5 -12.5t13 -30.5
t-13 -30.5t-30.5 -12.5t-30.5 12.5t-13 30.5z" />
<glyph glyph-name="pause" unicode="&#xe63d;"
d="M326 704v0q-15 0 -25.5 -11t-10.5 -25v-568q0 -14 10.5 -25t25.5 -11v0q15 0 25 11t9 25v568q1 14 -9 25t-25 11zM698 704v0q-14 0 -25 -11t-11 -25v-568q0 -14 11 -25t25 -11v0q15 0 25.5 11t10.5 25v568q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="pausecircle" unicode="&#xe63e;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM393 228q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v312q0 15 10.5 25.5t25.5 10.5v0
q15 0 25.5 -10.5t10.5 -25.5v-312zM703 228q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v312q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-312z" />
<glyph glyph-name="pausecircleo" unicode="&#xe63f;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM357 576v0q-15 0 -25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5zM667 576v0
q-15 0 -25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="clockcircle" unicode="&#xe640;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM769 356q0 -15 -10.5 -25.5t-25.5 -10.5h-185v0q-30 0 -51 21t-21 51v0v240q0 15 10.5 25.5t25.5 10.5v0
q15 0 25.5 -10.5t10.5 -25.5v-240h185q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="clockcircleo" unicode="&#xe641;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM733 392h-185v240q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-240v0q0 -30 21 -51t51 -21v0h185q15 0 25.5 10.5t10.5 25.5v0
q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="swap" unicode="&#xe642;"
d="M194 481q-1 0 -1 0.5t-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-0.5v0h-1h-0.5h-0.5v0l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-1l-1 1v0v0h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-1v1h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5v0.5v0.5h-1l-1 1v0l-0.5 0.5l-0.5 0.5h-1q-1 2 -2 3
q-1 0 -1 0.5v0.5v0l-1 1v1h-1v1v0l-0.5 0.5l-0.5 0.5v0v0.5t-0.5 0.5h-0.5v1l-0.5 0.5l-0.5 0.5v1v0v0.5t-0.5 0.5h-0.5v0.5v0.5q0 1 -0.5 1t-0.5 0.5v1v0.5v0v0v0.5v0.5v0.5v0.5l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v0v1v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l1 1v0.5v0.5
v0.5v0.5v0v0.5v0.5v0q1 1 1 1.5v0.5v0.5v0.5l0.5 0.5l0.5 0.5v0v0.5v0.5l0.5 0.5l0.5 0.5v0.5t0.5 1l0.5 0.5v0v0v0.5t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5q0 1 1 1v0v1h1l0.5 0.5l0.5 0.5l178 178q10 11 25 11t25 -11v0q11 -11 11 -25.5t-11 -25.5l-116 -116h545
q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-631v0h-2h-0.5h-0.5zM830 287q1 0 1 -0.5t0.5 -0.5h0.5h0.5h0.5h0.5h0.5v0v0h2v0v0l0.5 -0.5l0.5 -0.5h0.5h0.5h0.5h0.5h1v-1h1v0h0.5h0.5l0.5 -0.5l0.5 -0.5h0.5h0.5h1v-1h0.5h0.5l0.5 -0.5l0.5 -0.5h0.5h0.5
v-0.5v-0.5h1l1 -1l0.5 -0.5l0.5 -0.5v0h1q1 -2 2 -3q1 0 1 -0.5v-0.5v0l1 -1v-1h1v-1h0.5t0.5 -0.5v-0.5v0v-0.5t0.5 -0.5t0.5 -0.5v-0.5l0.5 -0.5l0.5 -0.5v-0.5v-0.5v-0.5t0.5 -0.5h0.5v-0.5v-0.5v-1l0.5 -0.5t0.5 -1v-0.5v0v-0.5v-0.5v0v-0.5v-0.5l1 -1v-0.5v-0.5v-0.5
v-0.5v0v-0.5v-0.5v-1v0v-1v-4v-1v-0.5v-1v-0.5v0v-0.5v-0.5v-0.5v-0.5v0l-1 -1v-0.5v-0.5v-0.5v-0.5v0v-0.5v-0.5l-1 -1v-0.5v-0.5v-0.5v-0.5l-0.5 -0.5l-0.5 -0.5v0v-0.5v-0.5l-0.5 -0.5l-0.5 -0.5v-0.5t-0.5 -1l-0.5 -0.5v0v0v-0.5t-0.5 -0.5t-0.5 -0.5v-0.5l-1 -1v0
q0 -1 -0.5 -1h-0.5v-1h-1l-0.5 -0.5t-0.5 -1.5l-177 -177q-11 -11 -26 -11t-25 11v0q-11 10 -11 25t11 26l116 116h-545q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h632v0h1h1z" />
<glyph glyph-name="swapleft" unicode="&#xe643;"
d="M164 320h-1l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5v0h-1h-1v0v0l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-1l-1 1v0v0h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-1v1h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5v0.5v0.5h-1l-1 1v0l-0.5 0.5l-0.5 0.5h-1q-1 2 -2 3
q-1 0 -1 0.5v0.5v0l-1 1v1h-1v1v0l-0.5 0.5l-0.5 0.5v0v0.5t-0.5 0.5h-0.5v1l-0.5 0.5l-0.5 0.5v1v0v0.5t-0.5 0.5h-0.5v0.5v0.5q0 1 -0.5 1t-0.5 0.5v1v0.5v0v0.5v0.5v0v0.5v0.5l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v1v0v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l1 1v0.5v0.5
v0.5v0.5v0v0.5v0.5v1q1 0 1 0.5v0.5v0.5v0.5l0.5 0.5l0.5 0.5v0v1v0l0.5 0.5l0.5 0.5v1l0.5 0.5l0.5 0.5v0v0v0.5t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5q0 1 0.5 1h0.5v1h1l0.5 0.5t0.5 1.5l178 177q10 11 25 11t25 -11v0q11 -11 11 -25.5t-11 -25.5l-116 -116h545
q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-631v0h-2h-1z" />
<glyph glyph-name="swapright" unicode="&#xe644;"
d="M830 320h1l0.5 0.5l0.5 0.5h0.5h0.5h0.5h0.5v0v0h2v0v0l0.5 0.5l0.5 0.5h0.5h0.5h0.5h0.5h1v1h1v0h0.5h0.5l0.5 0.5l0.5 0.5h0.5h0.5h1v1h0.5h0.5l0.5 0.5l0.5 0.5h0.5h0.5v0.5v0.5h1l1 1v0.5t0.5 0.5h0.5h1q1 2 2 3q1 0 1 0.5v0.5v0l1 1v1h1v1h0.5t0.5 0.5v0.5v0v0.5
t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5v0.5v0.5v0.5t0.5 0.5h0.5v0.5v0.5v1l0.5 0.5t0.5 1v0.5v0v0v0.5v0.5v0.5v0.5l1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v1v0v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5l-1 1v0.5v0.5v0.5v0.5l-0.5 0.5l-0.5 0.5v0
v0.5v0.5l-0.5 0.5l-0.5 0.5v0.5t-0.5 1l-0.5 0.5v0v0l-0.5 0.5l-0.5 0.5v0.5v0.5l-0.5 0.5l-0.5 0.5q0 1 -1 1v0l-0.5 0.5l-0.5 0.5l-0.5 0.5t-0.5 1.5l-177 177q-11 11 -26 11t-25 -11v0q-11 -10 -11 -25t11 -26l116 -116h-545q-14 0 -25 -10.5t-11 -25.5v0q0 -15 11 -25.5
t25 -10.5h632v0h1h0.5h0.5z" />
<glyph glyph-name="plussquareo" unicode="&#xe645;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM732 420h-184v183q0 15 -10.5 25.5t-25.5 10.5v0q-14 0 -25 -10.5t-11 -25.5v-183h-184
q-15 0 -25.5 -11t-10.5 -25v0q0 -15 10.5 -25.5t25.5 -10.5h184v-183q0 -15 11 -25.5t25 -10.5v0q15 0 25.5 10.5t10.5 25.5v183h184q15 0 25.5 10.5t10.5 25.5v0q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="frown" unicode="&#xe646;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM640 130
q-15 0 -25.5 11t-10.5 25q0 39 -27 66t-65 27t-65 -27t-27 -66q0 -14 -10.5 -25t-25.5 -11t-25.5 11t-10.5 25q0 68 48 116.5t116 48.5t116 -48.5t48 -116.5q0 -14 -10.5 -25t-25.5 -11zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42
t-42.5 -17.5z" />
<glyph glyph-name="menufold" unicode="&#xe658;"
d="M97 695h828q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-828q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM923 450h-565q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h565q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM925 72h-825
q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h825q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM195 281q11 -10 25 -10q15 0 26 11q10 10 10 25t-10 25l-96 94l94 88q11 11 11.5 26t-10 25.5t-25.5 11t-25 -9.5l-121 -114q-12 -11 -12 -26t11 -26z" />
<glyph glyph-name="mail" unicode="&#xe659;"
d="M886 768h-753q-30 0 -51 -21t-21 -51v-626q0 -30 21 -51t51 -21h753q30 0 51 21t21 51v626q0 30 -21 51t-51 21zM809 696l-268 -224l-2 -1l-1 -2q-11 -11 -26 -11h-1q-15 0 -25 11l-2 1l-274 226h599zM886 70h-753v0v597l303 -250q31 -31 76 -31v0q45 0 76 32l298 249
v-597v0z" />
<glyph glyph-name="link" unicode="&#xe65b;"
d="M542 230l-179 -179q-39 -38 -93 -38t-92 38q-39 39 -39 93t39 93l178 179q11 10 11 25t-10.5 25.5t-25.5 10.5t-25 -11l-179 -178q-60 -60 -60 -144t59.5 -143.5t143.5 -59.5t144 59l179 179q10 11 10 26t-10.5 25.5t-25.5 10.5t-25 -11zM899.5 773.5
q-59.5 59.5 -143.5 59.5t-144 -60l-179 -179q-10 -10 -10 -25t10.5 -25.5t25.5 -10.5t25 10l179 179q39 39 93 39t92.5 -38.5t38.5 -93t-39 -92.5l-178 -179q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l179 179q59 60 59 144t-59.5 143.5zM486 308l102 102q11 10 11 25
t-10.5 25.5t-25.5 10.5t-25 -11l-102 -102q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t25 11z" />
<glyph glyph-name="areachart" unicode="&#xe65c;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v825q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-789h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM192 96l117 209q4 7 12 9.5t16 -0.5l111 -52l118 171q11 15 27 7l110 -56l160 251q7 11 19.5 7.5
t12.5 -16.5v-520q0 -16 -11.5 -27.5t-27.5 -11.5h-646q-11 0 -17 9.5t-1 19.5z" />
<glyph glyph-name="linechart" unicode="&#xe65d;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v825q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-789h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM385 153q-19 0 -30 16l-157 250q-8 13 -5 27.5t15.5 22.5t27 5t22.5 -15l112 -182l46 177q4 16 19 23
l182 88q13 6 26 2.5t21 -15.5l91 -148l134 403q5 14 18 21t27 2t21 -18t2 -27l-158 -477q-7 -22 -30 -24.5t-35 16.5l-115 186l-137 -66l-62 -240q-6 -23 -29 -26q-3 -1 -6 -1z" />
<glyph glyph-name="home" unicode="&#xe65e;"
d="M932 454l-372 358q-20 18 -48 18t-48 -18l-372 -358q-11 -10 -12 -25t9 -26v0q10 -11 25 -12t26 9l372 358l372 -358q11 -10 26 -9t25 12v0q10 11 9 26t-12 25zM833 321v0q-15 0 -25.5 -10.5t-10.5 -25.5v-277h-143v240q0 30 -21 51t-51 21h-140q-30 0 -51 -21t-21 -51
v-240h-143v277q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-277q0 -30 21 -51t51 -21h570q30 0 51 21t21 51v277q0 15 -10.5 25.5t-25.5 10.5zM442 248h140v-240h-140v240z" />
<glyph glyph-name="laptop" unicode="&#xe65f;"
d="M887 760v0v0v-559v0l-752 -1v0v560v0h752zM887 832h-752q-30 0 -51 -21t-21 -51v-559q0 -30 21 -51t51 -21h752q30 0 51 21t21 51v559q0 30 -21 51t-51 21v0zM923 -16h-824q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h824q15 0 25.5 -10.5t10.5 -25.5v0
q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="star" unicode="&#xe660;"
d="M956 497.5q-8 23.5 -26.5 39t-42.5 19.5l-205 31l-92 195q-11 24 -33 37q-21 13 -45 13t-45 -13q-22 -13 -33 -37l-92 -195l-205 -31q-24 -4 -42.5 -19.5t-26.5 -39t-2.5 -47t22.5 -41.5l151 -154l-36 -218q-6 -40 20 -70.5t66 -30.5q22 0 42 11l181 100l181 -100
q20 -11 42 -11q40 0 66 30.5t20 70.5l-36 218l151 154q17 18 22.5 41.5t-2.5 47z" />
<glyph glyph-name="staro" unicode="&#xe661;"
d="M512 760q9 0 13 -9l105 -222q3 -7 11 -9l235 -35q9 -2 12 -10.5t-4 -14.5l-171 -176q-5 -5 -4 -12l41 -247q1 -7 -3.5 -12t-11.5 -5q-4 0 -7 2l-209 115q-3 2 -7 2t-7 -2l-209 -115q-3 -2 -7 -2q-7 0 -11.5 5t-3.5 12l41 247q1 7 -4 12l-171 176q-7 6 -4 14.5t12 9.5
l235 36q8 1 11 9l105 222q4 9 13 9zM512 832q-24 0 -45 -13q-22 -13 -33 -37l-92 -195l-205 -31q-24 -4 -42.5 -19.5t-26.5 -39t-2.5 -47t22.5 -41.5l151 -154l-36 -218q-6 -40 20 -70.5t66 -30.5q22 0 42 11l181 100l181 -100q20 -11 42 -11q40 0 66 30.5t20 70.5l-36 218
l151 154q17 18 22.5 41.5t-2.5 47t-26.5 39t-42.5 19.5l-205 31l-92 195q-11 24 -33 37q-21 13 -45 13v0z" />
<glyph glyph-name="filter" unicode="&#xe663;"
d="M890.5 719.5q-9.5 23.5 -30.5 37t-46 13.5h-602q-25 0 -46 -13.5t-30.5 -37t-4.5 -48t22 -42.5l273 -263v-262q0 -15 11 -25l125 -129q10 -11 26 -11q6 0 13 2q23 9 23 34v393l248 261q18 18 23 42.5t-4.5 48zM821 680l-259 -272q-10 -10 -10 -25v-322l-54 58v262
q0 15 -10 25l-284 274q-5 5 -2 11.5t10 6.5h602q7 0 9.5 -6.5t-2.5 -11.5z" />
<glyph glyph-name="meho" unicode="&#xe666;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM643 118
h-264q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5h264q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5z" />
<glyph glyph-name="meh" unicode="&#xe667;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5
t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5t-42 17.5t-17.5 42zM643 190h-264q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h264q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="shoppingcart" unicode="&#xe668;"
d="M923 194h-596l30 61l497 1q13 0 22.5 8t11.5 20l69 386q3 16 -7.5 28t-26.5 12l-632 3l-5 25q-3 12 -13 20t-22 8h-155q-14 0 -24.5 -10.5t-10.5 -25t10.5 -25t24.5 -10.5h126l24 -112l58 -281l-75 -122q-13 -18 -3 -37t32 -19h63q-21 -28 -21 -62q0 -43 30 -73t72.5 -30
t72.5 30t30 73q0 34 -20 62h161q-21 -28 -21 -62q0 -43 30 -73t72.5 -30t72.5 30t30 73q0 34 -20 62h113q15 0 25 10t10 24.5t-10 25t-25 10.5zM306 643l576 -2l-57 -316l-452 -1zM403 30q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22 -9.5t9 -22.5t-9 -22.5t-22 -9.5z
M728 30q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22 -9.5t9 -22.5t-9 -22.5t-22 -9.5z" />
<glyph glyph-name="save" unicode="&#xe669;"
d="M650 768h-450q-30 0 -51 -21t-21 -51v-623q0 -30 21 -51t51 -21h623q30 0 51 21t21 51v450zM329 696h217v-206q0 -15 -10.5 -25.5t-25.5 -10.5h-145q-15 0 -25.5 10.5t-10.5 25.5v206zM823 73h-623v623h57v-206q0 -45 31.5 -76.5t76.5 -31.5h145q44 0 76 32t32 76v206h2
l203 -203v-420v0zM469 526q15 0 25.5 10.5t10.5 25.5v43q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-43q0 -15 10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="user" unicode="&#xe66a;"
d="M819 103q-25 60 -71 106t-106 71q-20 9 -42 15q61 20 107 66q81 81 81 195t-81 194.5t-195 80.5t-194.5 -80.5t-80.5 -194.5t80 -195q46 -46 107 -66q-23 -6 -42 -15q-60 -25 -106 -71t-71 -106q-26 -62 -26 -130q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
q0 108 76.5 185t185 77t185 -76.5t76.5 -185.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q-1 68 -27 130zM309 556q0 84 59.5 143.5t143.5 59.5t143.5 -59.5t59.5 -143.5t-59.5 -144t-143.5 -60t-143.5 60t-59.5 144z" />
<glyph glyph-name="videocamera" unicode="&#xe66b;"
d="M1010 573q-11 10 -26 10q-9 0 -18 -5l-126 -67v188q0 29 -20.5 50t-50.5 21h-698q-29 0 -50 -21t-21 -50v-630q0 -29 21 -50t50 -21h698q30 0 50.5 21t20.5 50v203l123 -79q10 -6 22 -6q13 0 25 9q14 12 14 31v316q0 18 -14 30zM945 477v-178l-103 66v57zM761 667v-566
q0 -10 -6.5 -17t-16.5 -7h-636q-9 0 -16 7t-7 17v566q0 10 7 17t16 7h636q10 0 16.5 -7t6.5 -17z" />
<glyph glyph-name="totop" unicode="&#xe66c;"
d="M920 74h-816q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h816q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM365.5 576q14.5 0 25.5 10l85 85v-449q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v449l85 -85q10 -10 25 -10t25.5 10.5t10.5 25.5
t-10 25l-146 146q-11 11 -26 11t-25 -11l-147 -146q-10 -11 -10 -25.5t10.5 -25t25 -10.5z" />
<glyph glyph-name="team" unicode="&#xe66d;"
d="M839 409q-30 30 -67 47q44 23 72 64q35 51 35 113q0 84 -59 142.5t-142 58.5q-65 0 -117 -36q-45 -33 -67 -83q-60 64 -147 64q-84 0 -143 -59t-59 -142q0 -62 35 -113q28 -41 73 -65q-38 -17 -68 -47q-67 -67 -67 -161v-165q0 -37 26.5 -64t64.5 -27h276q27 0 49.5 15.5
t33.5 40.5h248q37 0 64 26.5t27 63.5v165q-1 95 -68 162zM586 725q38 38 92 38t92 -38t38 -91.5t-38 -92t-92 -38.5t-92 38t-38 92t38 92zM216 578q0 54 38 92t92 38t92 -38t38 -92t-38 -92t-92 -38t-92 38t-38 92zM504 27q0 -8 -6 -13.5t-14 -5.5h-276q-8 0 -13.5 5.5
t-5.5 13.5v165q0 65 46 111t111 46t112 -46l1 -1v-1q45 -46 45 -109v-165zM486 372q-21 17 -46 28q62 33 90 96q24 -25 54 -40q-38 -17 -68 -47q-17 -17 -30 -37zM835 82q0 -8 -5.5 -13.5t-13.5 -5.5h-241v129q0 69 -38 126q12 23 29 40q47 47 112 47t111 -46.5t46 -111.5
v-165z" />
<glyph glyph-name="sharealt" unicode="&#xe671;"
d="M814 233q-38 0 -70.5 -18t-53.5 -49l-236 168q6 24 6 48q0 39 -15 75l257 130q45 -51 112 -51q61 0 104.5 43.5t43.5 104.5t-43.5 104.5t-104.5 43.5t-104.5 -43.5t-43.5 -104.5q0 -17 4 -33l-264 -133q-59 62 -144 62q-82 0 -140 -58t-58 -140t58 -140t140 -58
q49 0 91.5 22.5t69.5 60.5l243 -172v-10q0 -61 43.5 -104.5t104.5 -43.5t104.5 43.5t43.5 104.5t-43.5 104.5t-104.5 43.5zM814 760q31 0 53.5 -22.5t22.5 -54t-22.5 -53.5t-53.5 -22t-53.5 22t-22.5 53.5t22.5 54t53.5 22.5zM262 256q-52 0 -89 37t-37 89t37 89t89 37
t89 -37t37 -89t-37 -89t-89 -37zM814 9q-31 0 -53.5 22t-22.5 53.5t22.5 54t53.5 22.5t53.5 -22.5t22.5 -54t-22.5 -53.5t-53.5 -22z" />
<glyph glyph-name="setting" unicode="&#xe672;"
d="M962 456l-4 24l-73 25q-10 30 -24 58l34 69l-14 19q-43 60 -102 103l-20 14l-69 -35q-28 14 -58 24l-24 73l-24 4q-39 6 -72 6t-72 -6l-24 -4l-25 -73q-30 -10 -57 -24l-69 35l-20 -15q-59 -43 -102 -102l-14 -20l34 -69q-14 -28 -24 -57l-73 -25l-4 -24q-6 -39 -6 -72
t6 -72l4 -24l73 -25q10 -30 24 -57l-34 -69l14 -20q22 -30 47 -55q23 -23 55 -47l20 -14l69 34q28 -14 57 -24l25 -73l24 -4q39 -6 72 -6t72 6l24 4l25 73q29 10 57 24l69 -35l20 15q32 23 55 47q24 23 47 55l14 20l-34 69q14 28 24 58l73 24l4 24q6 39 6 72t-6 72zM896 385
v-1q0 -19 -2 -42l-36 -11l-31 -11l-10 -32q-8 -27 -21 -52l-16 -29l32 -63q-14 -17 -28 -31v-1q-14 -14 -32 -27l-62 31l-29 -15q-26 -13 -54 -22l-31 -10l-10 -31l-12 -35q-21 -3 -42 -3q-19 0 -42 3l-11 35l-11 31l-31 10q-28 9 -53 22l-29 15l-30 -15l-33 -16
q-17 13 -31 28q-15 14 -28 31l31 62l-15 29q-14 27 -22 53l-10 32l-66 22q-3 21 -3 42q0 19 3 42l66 22l10 31q8 27 22 53l15 30l-15 29l-16 33q26 33 59 59l62 -31l30 15q25 14 53 22l31 10l10 31l12 36q23 2 42 2q20 0 42 -2l22 -67l31 -9q28 -9 54 -22l29 -16l62 32
q33 -27 60 -60l-32 -62l15 -29q14 -26 23 -53l9 -32l31 -10l36 -12q3 -22 2 -41zM512 558q-72 0 -123 -51t-51 -123t51 -123t123 -51t123 51t51 123t-51 123t-123 51zM584 312q-30 -30 -72 -30t-72 30t-30 72t30 72t72.5 30t72 -30t29.5 -72t-30 -72z" />
<glyph glyph-name="picture" unicode="&#xe674;"
d="M886 768h-752q-30 0 -51 -21.5t-21 -50.5v-626q0 -29 21 -50.5t51 -21.5h752q30 0 51 21.5t21 50.5v626q0 30 -21 51t-51 21zM886 70v0h-752v0v213l186 190l217 -270q9 -10 22.5 -11.5t24.5 5.5l161 109l141 -67v-169zM886 330l-118 48q-21 16 -42 2l-156 -105l-222 275
q-10 12 -26 12t-27 -11l-161 -165v310v0h752v0v-366zM696 622q-42 0 -71.5 -29.5t-29.5 -71.5t29.5 -71.5t71.5 -29.5t71.5 29.5t29.5 71.5t-29.5 71.5t-71.5 29.5zM696 492q-12 0 -20.5 8.5t-8.5 20.5t8.5 20.5t20.5 8.5t20.5 -8.5t8.5 -20.5t-8.5 -20.5t-20.5 -8.5z" />
<glyph glyph-name="phone" unicode="&#xe675;"
d="M914 733q-66 101 -128 101q-36 0 -64 -28q-48 -48 -77 -93q-44 -68 -29 -115q4 -15 17.5 -31t44.5 -47v0q32 -32 38 -41q10 -14 -19 -60q-27 -43 -99 -118q-61 -58 -99 -85q-48 -35 -71 -35q-5 0 -8 2q-9 7 -41 38q-32 32 -47.5 45t-30.5 17q-12 4 -25 4q-43 0 -100 -40
q-40 -27 -82 -70q-33 -32 -28 -73q6 -57 100 -119q78 -50 176 -50q101 0 210.5 53.5t206.5 151.5q68 68 117 144q48 76 70 153q49 170 -32 296zM878 457q-20 -67 -63 -135q-43 -69 -106 -132q-44 -44 -92 -80q-47 -34 -95 -58q-47 -22 -93 -34q-45 -12 -87 -12
q-77 0 -137 39q-35 23 -52 40q-16 16 -17 27q-1 7 8 15q39 39 72 62q39 27 60 27q2 0 3 -1q5 -2 12 -9q11 -9 38 -35q35 -36 49 -46l2 -1q21 -14 48 -14q24 0 52 12q27 11 61 36q41 30 106 91l1 1l2 2q76 80 107 129q16 25 24 47q7 20 8 37q2 31 -15 55q-10 14 -44 48l-2 2
q-26 26 -35 37q-7 9 -9 13q-4 16 21 55q24 37 67 80v0q8 8 14 8q10 0 26 -15q18 -17 42 -54q31 -48 38 -106q6 -62 -14 -131z" />
<glyph glyph-name="paperclip" unicode="&#xe676;"
d="M885 629q-73 72 -177 72v0q-49 0 -94 -18q-46 -18 -82 -53l-233 -231q-42 -41 -41.5 -99.5t42 -100t100.5 -41.5h1q59 0 100 41l205 202q10 10 10 25t-10 25q-11 10 -25.5 10t-25.5 -10l-204 -202q-21 -21 -50 -21h-1q-30 1 -50 21q-21 21 -21 50.5t20 49.5l233 231
q52 50 126 50v0q74 0 126.5 -51.5t52.5 -124.5t-52 -124l-247 -245q-76 -75 -186 -75v0q-110 0 -187 76.5t-77.5 184.5t76.5 184l319 316q10 10 10 24.5t-10 25.5q-11 10 -25.5 10t-25.5 -10l-319 -316q-47 -47 -73 -109q-24 -60 -24 -125t25 -125q25 -62 73 -110
q48 -47 111 -72q60 -25 127 -25v0q66 0 126 24q63 25 110 72l248 245q35 35 54 81q18 45 18 93q0 103 -73 175z" />
<glyph glyph-name="notification" unicode="&#xe677;"
d="M922 518h-57v18q0 20 -14 34.5t-34 14.5h-172q-12 24 -33 24q-70 0 -145 22.5t-132 54.5t-103 63.5t-72 54t-25 22.5q-10 6 -22 6q-19 0 -33 -13.5t-14 -33.5v-801q0 -20 14 -34t33 -14q13 0 24 7q4 6 12.5 15t35 36t55.5 52t73.5 55t89 51.5t101 36.5t111.5 15
q19 0 30 22h4q2 -74 -25 -171q-6 -20 1.5 -39.5t24.5 -31.5q16 -10 35 -10q22 0 40 15q84 69 105 169q7 34 6 68q4 5 10 14q19 29 19 45v23h57q15 0 25.5 10.5t10.5 25.5v138q0 15 -10.5 25.5t-25.5 10.5zM584 275q-92 -6 -186 -46q-84 -36 -167 -98q-48 -37 -93 -81v679
q50 -39 104 -73q83 -51 165 -81q91 -33 177 -37v-2v-7v-253v-1zM793 291q-6 -10 -14 -21q-5 -3 -8 -7q-11 -13 -8 -30v0q4 -27 -3 -60q-13 -62 -59 -109q29 116 18 202q-2 14 -12 23t-24 9h-25v30q0 4 -2 9v176h137v-222zM886 380h-21v66h21v-66z" />
<glyph glyph-name="menuunfold" unicode="&#xe679;"
d="M925 695h-828q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5h828q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM99 450h565q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5h-565q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5zM97 72h825
q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5h-825q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5zM827 281q-11 -10 -26 -10t-25 11q-11 10 -11 25t11 25l96 94l-94 88q-11 11 -11.5 26t9.5 25.5t25 11t26 -9.5l121 -114q11 -11 11 -26t-11 -26z" />
<glyph glyph-name="inbox" unicode="&#xe67a;"
d="M885 450v0l-112 286q-4 12 -14 19.5t-23 7.5h-455q-13 0 -23 -8t-14 -20l-105 -282v-1v0q-2 -8 -1 -15v-5v-366q0 -25 17.5 -43t42.5 -18h628q25 0 43 18t18 43v366q0 3 -1 4q1 7 -1 14zM589 493v-16q0 -34 -21.5 -54.5t-55.5 -20.5t-55 20.5t-21 54.5l-1 16h-205l79 193
h399l82 -193h-201zM214 416h158q18 -43 55 -67t85 -24q52 0 90 27q34 24 51 64h157v-334h-596v334z" />
<glyph glyph-name="lock" unicode="&#xe67b;"
d="M801 596q-24 60 -67 106q-43 45 -100 71q-58 26 -122 26t-122 -26q-56 -26 -99.5 -71.5t-67.5 -105.5q-25 -61 -25 -128v-436q0 -26 18 -45t43 -19h505q26 0 44 19t18 45v385v17v34q0 67 -25 128zM414 714h1l1 1q45 21 96 21q50 0 96 -21q45 -20 80 -57t54 -85
q21 -50 21 -105v-27h-502v0v27q0 55 20 105q20 48 55 85t78 56zM763 377v-345v-1h-502v1v345h502zM483 235v-83q0 -12 8.5 -20.5t20.5 -8.5t21 8.5t9 20.5v83q24 16 24 46q0 22 -15.5 38t-38 16t-38.5 -16t-16 -38q0 -30 25 -46z" />
<glyph glyph-name="qrcode" unicode="&#xe67c;"
d="M876 492h-63v-103h-91v103h-153v102h-51v39h51v52h51v63h-51v51h-166v-63h103v-39h-52v-115h52v-90h-52v-52h-90v52h-63v-52h-39v52h-115v-52h-51v-63h63v51h91v-51h51v-102h63v102h102v52h193v-40h-153v-63h51v-102h114v63h-51v39h205v51h39v-51h63v63h-51v103zM466 287
h-63v-166h51v-39h-51v-63h103v-51h63v51h51v63h-63v-51h-39v90h102v64h-154v102zM96 338h63v-63h-63v63zM153 531h154q23 0 40 17t17 40v154q0 23 -17 40t-40 17h-154q-23 0 -40 -17t-17 -40v-154q0 -23 17 -40t40 -17zM159 594v142h142v-142h-142zM198 697h64v-64h-64v64z
M870 799h-154q-23 0 -40 -17t-17 -40v-154q0 -23 17 -40t40 -17h154q24 0 40.5 17t16.5 40v154q0 23 -16.5 40t-40.5 17zM864 736v-142h-142v142h142zM762 697h63v-64h-63v64zM870 236h-154q-23 0 -40 -17t-17 -40v-154q0 -24 17 -40.5t40 -16.5h154q24 0 40.5 16.5
t16.5 40.5v154q0 23 -16.5 40t-40.5 17zM864 173v-142h-142v142h142zM762 133h63v-63h-63v63zM307 236h-154q-23 0 -40 -17t-17 -40v-154q0 -24 17 -40.5t40 -16.5h154q23 0 40 16.5t17 40.5v154q0 23 -17 40t-40 17zM301 173v-142h-142v142h142zM198 133h64v-63h-64v63z
" />
<glyph glyph-name="tags" unicode="&#xe67d;"
d="M910 352l-360 362q-12 13 -30 13h-362q-26 0 -44 -18t-18 -43v-224q0 -17 12 -30l359 -354q18 -18 43.5 -18t44.5 18l28 28l28 -28q19 -18 44 -18t44 18l210 208q18 17 18 42.5t-17 43.5zM280 457q-32 0 -54.5 22.5t-22.5 54.5t22.5 54.5t54.5 22.5t54.5 -22.5
t22.5 -54.5t-22.5 -54.5t-54.5 -22.5v0zM869 306l-210 -207q-2 -2 -4 -2t-4 2l-32 31l142 140q16 16 16 39t-16 39l-319 322h72l355 -358q1 -1 1 -3t-1 -3v0zM869 306zM280 560q-11 0 -18.5 -7.5t-7.5 -18.5t7.5 -18.5t18.5 -7.5t18.5 7.5t7.5 18.5t-7.5 18.5t-18.5 7.5v0z
" />
<glyph glyph-name="tagso" unicode="&#xe67e;"
d="M280 617q-34 0 -58.5 -24t-24.5 -58.5t24.5 -59t58.5 -24.5t58.5 24.5t24.5 59t-24.5 58.5t-58.5 24zM280 514q-8 0 -14 6t-6 14t6 14t14 6t14 -6t6 -14t-6 -14t-14 -6zM910 352l-360 362q-12 13 -30 13h-362q-26 0 -44 -18t-18 -43v-224q0 -17 12 -30l359 -354
q18 -18 43.5 -18t44.5 18l28 28l28 -28q19 -18 44 -18t44 18l210 208q18 17 18 42.5t-17 43.5zM765 266q18 17 18 42.5t-18 43.5l-309 312h56l351 -355l-208 -205l-27 26zM159 451v213h209l351 -355l-140 -138l-37 -36l-31 -31z" />
<glyph glyph-name="cloudo" unicode="&#xe67f;"
d="M702 35h-404q-48 0 -90.5 17t-76.5 50q-34 34 -52 76t-18 90q0 83 53 147q19 23 42 40q0 38 15 71q14 33 41 60l1 1q27 26 61 39.5t72 13.5q12 0 24 -1q24 26 54 46q72 48 159 48q58 0 109 -20q51 -21 92 -61q42 -41 63 -90q14 -34 19 -71q32 -25 55 -60l7 -11v-1
q35 -59 35 -128q0 -52 -19 -99q-20 -46 -58 -83t-84 -56q-47 -18 -100 -18zM263 535q-18 -17 -26 -37v0q-9 -21 -9 -44q0 -7 1 -13l2 -23l-19 -12q-24 -14 -43 -37v0q-36 -44 -36 -101q0 -33 12 -62t36.5 -52.5t53.5 -35.5q29 -11 63 -11h404q39 0 72.5 13.5t61 40
t41.5 59.5t14 71q0 54 -29 98l-2 4q-20 29 -49 49l-14 10l-2 17q-2 34 -15 64q-15 37 -47 67q-31 31 -68 46q-38 15 -82 15q-66 0 -119 -35q-30 -21 -51 -48l-15 -19l-23 6q-14 4 -30 3q-24 0 -44.5 -8t-37.5 -25z" />
<glyph glyph-name="cloud" unicode="&#xe680;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128z" />
<glyph glyph-name="cloudupload" unicode="&#xe681;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM751.5 367.5q-10.5 -10.5 -25.5 -10.5t-26 11l-68 68v-246q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5v246l-68 -69q-11 -10 -25.5 -10t-25 10.5t-10.5 25.5t10 25l130 130q10 10 25 10
t25 -10l130 -130q11 -10 11 -25t-10.5 -25.5z" />
<glyph glyph-name="clouddownload" unicode="&#xe682;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM751 294l-129 -130q-11 -10 -26 -10t-25 10l-130 130q-10 10 -10 25t10.5 25.5t25 10.5t25.5 -11l68 -68v246q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-246l69 68q10 11 25 11t25.5 -10.5
t10.5 -25.5t-11 -25z" />
<glyph glyph-name="clouddownloado" unicode="&#xe683;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM142 203q-11 25 -11 55q0 25 8 47t24 42h1q17 22 40 35l38 22l-6 43q-1 5 -1 13q0 19 7 36v1q7 16 21 29t31 20t36 7q15 0 28 -4l43 -12l26 36q21 27 51 48q50 33 111 33q42 0 77 -15q36 -14 65 -42
q29 -29 43 -63q13 -29 15 -63l1 -31l27 -18q27 -18 46 -45l2 -3q14 -21 21 -43.5t7 -47.5q0 -35 -13 -65t-38.5 -54.5t-55.5 -36.5q-31 -13 -67 -13h-440q-31 0 -57 11q-25 10 -48 31q-21 21 -31 45v0zM466.5 355q14.5 0 25.5 -11l68 -68v246q0 15 10.5 25.5t25.5 10.5
t25.5 -10.5t10.5 -25.5v-246l69 68q10 11 25 11t25.5 -10.5t10.5 -25.5t-11 -25l-129 -130q-11 -10 -26 -10t-25 10l-130 130q-10 10 -10 25t10.5 25.5t25 10.5z" />
<glyph glyph-name="clouduploado" unicode="&#xe684;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM142 203q-11 25 -11 55q0 25 8 47t24 42h1q17 22 40 35l38 22l-6 43q-1 5 -1 13q0 19 7 36v1q7 16 21 29t31 20t36 7q15 0 28 -4l43 -12l26 36q21 27 51 48q50 33 111 33q42 0 77 -15q36 -14 65 -42
q29 -29 43 -63q13 -29 15 -63l1 -31l27 -18q27 -18 46 -45l2 -3q14 -21 21 -43.5t7 -47.5q0 -35 -13 -65t-38.5 -54.5t-55.5 -36.5q-31 -13 -67 -13h-440q-31 0 -57 11q-25 10 -48 31q-21 21 -31 45v0zM466.5 357q14.5 0 25.5 11l68 68v-246q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v246l69 -68q10 -11 25 -11t25.5 10.5t10.5 25.5t-11 25l-129 130q-11 10 -26 10t-25 -10l-130 -130q-10 -10 -10 -25t10.5 -25.5t25 -10.5z" />
<glyph glyph-name="enviroment" unicode="&#xe685;"
d="M512 592q-54 0 -92 -38.5t-38 -92.5t38 -92t92 -38t92 38t38 92t-38 92.5t-92 38.5zM871 621q-31 62 -86 109t-125 74q-71 26 -148 26v0q-77 0 -149 -26q-69 -27 -124 -74t-86 -109q-32 -64 -32 -133q0 -97 47 -197q39 -83 109 -164q92 -108 212 -192q10 -7 22.5 -7
t23.5 7q120 85 212 192q70 82 109 164q47 100 47 197q0 69 -32 133zM655 319q-59 -59 -143 -59t-143 59t-59 142.5t59 142.5t143 59t143 -59t59 -142.5t-59 -142.5z" />
<glyph glyph-name="enviromento" unicode="&#xe686;"
d="M512 663q-84 0 -143 -59t-59 -142.5t59 -142.5t143 -59t143 59t59 142.5t-59 142.5t-143 59zM512 331q-54 0 -92 38t-38 92t38 92.5t92 38.5t92 -38.5t38 -92.5t-38 -92t-92 -38zM871 621q-31 62 -86 109t-125 74q-71 26 -148 26v0q-77 0 -149 -26q-69 -27 -124 -74
t-86 -109q-32 -64 -32 -133q0 -97 47 -197q39 -83 109 -164q92 -108 212 -192q10 -7 22.5 -7t23.5 7q120 85 212 192q70 82 109 164q47 100 47 197q0 69 -32 133zM831 487q0 -81 -40 -166q-34 -73 -98 -148q-77 -90 -181 -166q-104 76 -181 166q-63 75 -98 148
q-40 85 -40 167q0 53 24 102q25 48 69 86q45 39 102 61q60 22 124 22v0q64 0 124 -22q57 -22 102 -61q45 -38 69 -86q24 -50 24 -103z" />
<glyph glyph-name="eye" unicode="&#xe687;"
d="M512 487q-42 0 -72 -30t-30 -72t30 -72t72 -30t72 30t30 72t-30 72t-72 30zM963 384q0 14 -21 62q-26 65 -61 109q-57 71 -139 112q-99 50 -230 50t-231 -50q-80 -41 -138 -112q-34 -43 -61 -109q-21 -48 -21 -62v0v0v0v0q0 -14 21 -62q27 -66 61 -109q57 -71 139 -112
q100 -50 230 -50t230 50q81 41 139 112q35 44 62 109q20 48 20 62v0v0v0v0zM512 212q-72 0 -122.5 50.5t-50.5 122t50.5 122.5t122.5 51t122.5 -51t50.5 -122.5t-50.5 -122t-122.5 -50.5z" />
<glyph glyph-name="eyeo" unicode="&#xe688;"
d="M963 384q0 14 -21 62q-26 65 -61 109q-57 71 -139 112q-99 50 -230 50t-231 -50q-80 -41 -138 -112q-34 -43 -61 -109q-21 -48 -21 -62v0v0v0v0q0 -14 21 -62q27 -66 61 -109q57 -71 139 -112q100 -50 230 -50t230 50q81 41 139 112q35 44 62 109q20 48 20 62v0v0v0v0z
M889 384q-25 -77 -64 -126h-1q-46 -59 -114 -93q-85 -42 -198.5 -42t-198.5 42q-67 34 -114 93q-40 49 -65 126q25 77 65 126q47 59 114 93q85 43 199 43t198 -43q67 -33 114 -93q40 -49 65 -126zM512 558q-72 0 -122.5 -50.5t-50.5 -122.5t50.5 -122.5t122.5 -50.5
t122.5 50.5t50.5 122.5t-50.5 122.5t-122.5 50.5zM614 385q0 -42 -30 -72t-72 -30t-72 30t-30 72t30 72t72 30t72 -30t30 -72z" />
<glyph glyph-name="camera" unicode="&#xe689;"
d="M899 659h-168l-94 100h-1q-10 10 -26 10h-196q-16 0 -27 -10v0l-94 -100h-168q-26 0 -44.5 -18.5t-18.5 -44.5v-532q0 -26 18.5 -44.5t44.5 -18.5l774 -1q26 0 44.5 19t18.5 45v532q0 26 -18.5 44.5t-44.5 18.5zM428 696h168l35 -37h-238zM511 164q-72 0 -123 51t-51 123
t51 123t123 51t123 -51t51 -123t-51 -123t-123 -51zM511 440q-42 0 -72 -30t-30 -72.5t30 -72.5t72.5 -30t72.5 30t30 72.5t-30 72.5t-73 30z" />
<glyph glyph-name="camerao" unicode="&#xe68a;"
d="M511 164q72 0 123 51t51 123t-51 123t-123 51t-123 -51t-51 -123t51 -123t123 -51zM439 410q30 30 72.5 30t72.5 -30t30 -72.5t-30 -72.5t-72.5 -30t-72.5 30t-30 72.5t30 72.5zM899 659h-168l-94 100h-1q-10 10 -26 10h-196q-16 0 -27 -10v0l-94 -100h-168
q-26 0 -44.5 -18.5t-18.5 -44.5v-532q0 -26 18.5 -44.5t44.5 -18.5l774 -1q26 0 44.5 19t18.5 45v532q0 26 -18.5 44.5t-44.5 18.5zM428 696h168l35 -37h-238zM881 81h-739v497h739v-497z" />
<glyph glyph-name="windows" unicode="&#xe68b;"
d="M527 27l434 -71v401h-434v-330zM527 758v-329h434v401zM68 429h367v317l-367 -61v-256zM68 99l367 -60v318h-367v-258z" />
<glyph glyph-name="export2" unicode="&#xe690;"
d="M248.5 473q14.5 0 25 10.5t10.5 25.5v203q0 8 5.5 13.5t13.5 5.5h567q8 0 13 -5.5t5 -13.5v-587q0 -7 -5 -12.5t-13 -5.5h-255q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h255q37 0 63.5 26.5t26.5 63.5v587q0 38 -26.5 64t-63.5 26h-567q-38 0 -64 -26
t-26 -64v-203q0 -15 10.5 -25.5t25 -10.5zM622 263q44 66 55 136q2 14 -7 26t-23 14q-3 1 -5 1q-14 0 -24 -9t-12 -22l-3.5 -17.5t-14 -40t-26.5 -50.5q-70 -104 -206 -104h-4q-14 0 -25 -10.5t-11 -25.5v-42l-100 96l101 84v-35q0 -14 10.5 -24.5t25 -10.5t25 10.5
t10.5 24.5v111q0 23 -20 33q-7 3 -16 3q-12 0 -22 -8l-190 -159q-13 -10 -13 -26q-1 -16 11 -27l190 -181q17 -16 38.5 -7t21.5 33v91q152 13 234 136z" />
<glyph glyph-name="export" unicode="&#xe691;"
d="M838 330q-15 0 -25.5 -10.5t-10.5 -25.5v-204q0 -8 -5.5 -13t-12.5 -5h-567q-8 0 -13.5 5t-5.5 13v587q0 8 5.5 13.5t13.5 5.5h254q15 0 25.5 10.5t10.5 25t-10.5 25t-25.5 10.5h-254q-37 0 -63.5 -26t-26.5 -64v-587q0 -37 26.5 -63.5t63.5 -26.5h567q37 0 63.5 26.5
t26.5 63.5v204q0 15 -10.5 25.5t-25.5 10.5zM464 540q-45 -68 -54 -136q-2 -15 7 -26.5t23 -13.5q2 -1 5 -1q13 0 23.5 9t12.5 22q0 5 3 17.5t14 40t27 50.5q70 103 206 104l3 -1q15 0 25.5 10.5t10.5 25.5v42l101 -95l-101 -84v34q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5
t-10.5 -25.5v-111q0 -22 21 -32q7 -3 15 -3q13 0 23 8l190 158q12 11 13 26q0 17 -11 28l-190 181q-17 16 -39 6.5t-22 -32.5v-91q-152 -13 -234 -136z" />
<glyph glyph-name="circledowno" unicode="&#xe693;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163t-40.5 -199t40.5 -199t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 199t-40.5 199t-109 163t-163 109t-198.5 40.5zM822 73q-61 -61 -139 -94q-82 -35 -171.5 -35t-171.5 35q-79 33 -139.5 94
t-94.5 140q-34 81 -34 170.5t35 171.5q33 79 94 139.5t140 94.5q81 34 170.5 34t171.5 -34q79 -34 139.5 -95t94.5 -139q34 -82 34 -171.5t-34 -171.5q-34 -78 -95 -139zM768 520q-16 0 -28 -12l-229 -229l-228 228q-12 12 -28.5 12t-28 -11.5t-11.5 -28t12 -28.5l256 -255
q11 -12 27.5 -12t28.5 12l257 256q12 12 12 28.5t-12 27.5q-12 12 -28 12z" />
<glyph glyph-name="circledown" unicode="&#xe694;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163t-40.5 -199t40.5 -199t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 199t-40.5 199t-109 163t-163 109t-198.5 40.5zM796 452l-258 -256q-11 -12 -27 -12q-17 0 -28 12l-256 255q-12 12 -12 28.5
t11.5 28t28 11.5t28.5 -12l227 -228l230 229q12 12 28.5 12t28 -11.5t11.5 -28.5q0 -16 -12 -28z" />
<glyph glyph-name="hdd" unicode="&#xe69a;"
d="M786 765v0q-4 15 -17 24.5t-29 9.5h-462q-16 0 -29 -9.5t-17 -24.5v0q-3 -8 -68 -243q-68 -245 -68 -248v-257q0 -20 14.5 -34.5t34.5 -14.5h733q20 0 34.5 14.5t14.5 34.5l1 265zM864 224v-193h-705v193h705zM861 287h-699l127 449h440zM588 70q13 0 22.5 9.5t9.5 22.5
v51q0 13 -9.5 22.5t-22.5 9.5t-22 -9.5t-9 -22.5v-51q0 -13 9 -22.5t22 -9.5zM691 70q13 0 22.5 9.5t9.5 22.5v51q0 13 -9.5 22.5t-22.5 9.5t-22 -9.5t-9 -22.5v-51q0 -13 9 -22.5t22 -9.5zM794 70q13 0 22 9.5t9 22.5v51q0 13 -9 22.5t-22 9.5t-22.5 -9.5t-9.5 -22.5v-51
q0 -13 9.5 -22.5t22.5 -9.5z" />
<glyph glyph-name="ie" unicode="&#xe69b;"
d="M878 548q24 66 22 118q-3 57 -37 91q-33 33 -111.5 27.5t-173.5 -47.5q-13 1 -27 1q-65 0 -126 -21q-58 -21 -107 -60q-101 -80 -132 -203l-7 -28l17 22q69 89 150 136q-22 -21 -25 -25q-73 -73 -126 -159q-49 -80 -75 -160q-25 -75 -24 -135t28 -88q37 -36 99 -36
q69 0 160 44q78 -39 168 -39q121 0 219 70t137 184l3 8h-213l-1 -3q-21 -38 -58 -60t-80.5 -22t-80.5 22t-57 60q-18 32 -19 69h319h204l1 5q2 20 2 43q0 100 -49 186zM201 222q45 -111 146 -177q-54 -23 -95 -26q-45 -3 -67 20q-23 23 -19 71t35 112zM859 578
q-30 42 -70 75q-39 32 -85 53q108 42 149 1q37 -38 6 -129zM402 423q5 57 48 96t101 39t100.5 -39t48.5 -96h-298z" />
<glyph glyph-name="delete" unicode="&#xe69f;"
d="M178 -50q-1 0 -3 1l1 -0.5t2 -0.5zM170 -46q-3 2 -5 3q2 -1 5 -3zM950.5 692.5q-10.5 10.5 -26.5 10.5h-184v58q0 29 -21 49.5t-50 20.5h-314q-30 0 -50.5 -20.5t-20.5 -49.5v-58h-185q-15 0 -25.5 -10.5t-10.5 -25t10.5 -25t25.5 -10.5h31v-623q0 -29 21 -49.5t50 -20.5
h632q29 0 50 20.5t21 49.5v623h20q15 0 26 10.5t11 25t-10.5 25zM354 760h315v-57h-315v57zM833 9h-632v623h91h541v-623v0zM511.5 512q-14.5 0 -25 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25 -10.5t25 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25 10.5zM317 512
q-15 0 -25.5 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25.5 10.5zM704 512q-15 0 -25.5 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="enter" unicode="&#xe6a0;"
d="M900 510v192q0 17 -11.5 28.5t-28 11.5t-28.5 -11.5t-12 -28.5v-192q0 -92 -65 -157t-157 -65h-340l113 112q11 12 11 28.5t-11.5 28t-28 11.5t-28.5 -12l-178 -178q-12 -12 -12 -28.5t12 -28.5l183 -183q12 -12 28.5 -12t28.5 11.5t12 28t-12 28.5l-114 114h336
q125 0 213.5 88.5t88.5 213.5z" />
<glyph glyph-name="pushpino" unicode="&#xe6a1;"
d="M303 728q2 -10 1 -20l-1 -36l29 -23l214 -170l30 -24l37 12q44 15 90 15q49 0 95 -16q26 -10 51 -24l-169 -170l-43 -43l-13 -13v0l-169 -170q-27 45 -36 96q-13 72 10 141l12 37l-24 30l-170 214l-23 29l-36 -1h-1.5h-2.5q-8 0 -16 1zM318 831q-14 0 -24 -10l-219 -219
q-11 -11 -9.5 -27t14.5 -24q48 -31 104 -31h6l170 -215q-28 -84 -11.5 -175.5t74.5 -163.5q11 -13 27 -13q14 0 24 10l206 207l223 -223q10 -10 23.5 -10t23 9.5t9.5 23t-10 23.5l-223 223l206 207q11 11 10 26t-13 25q-98 80 -226 80q-57 0 -112 -18l-215 170q2 60 -30 110
q-10 15 -28 15v0z" />
<glyph glyph-name="pushpin" unicode="&#xe6a2;"
d="M949 -7l-223 223l206 207q11 11 10 26t-13 25q-72 58 -163 74t-175 -12l-215 170q2 60 -30 110q-9 13 -25 14.5t-27 -9.5l-219 -219q-11 -11 -9.5 -27t14.5 -24q50 -33 110 -31l170 -215q-28 -84 -11.5 -175.5t74.5 -163.5q10 -12 25 -13t26 10l206 207l223 -223
q10 -10 23.5 -10t23 9.5t9.5 23t-10 23.5z" />
<glyph glyph-name="heart" unicode="&#xe6a3;" horiz-adv-x="1025"
d="M1000 648q-23 56 -66 99q-84 85 -201 85q-64 0 -121.5 -28t-99.5 -79q-42 51 -99.5 79t-121.5 28q-117 0 -201 -86q-43 -43 -66 -99q-25 -59 -24 -122q1 -69 29 -130.5t79 -104.5q5 -4 9 -8q14 -12 113 -102q208 -191 257 -235q11 -9 25 -9t25 9q33 30 181 165
q158 144 196 179q52 43 81 105t29 132q0 64 -24 122z" />
<glyph glyph-name="hearto" unicode="&#xe6a4;" horiz-adv-x="1025"
d="M1000 648q-23 56 -66 99q-84 85 -201 85q-64 0 -121.5 -28t-99.5 -79q-42 51 -99.5 79t-121.5 28q-117 0 -201 -86q-43 -43 -66 -99q-25 -59 -24 -122q1 -69 29 -130.5t79 -104.5q5 -4 9 -8q14 -12 113 -102q208 -191 257 -235q11 -9 25 -9t25 9q33 30 181 165
q158 144 196 179q52 43 81 105t29 132q0 64 -24 122zM568 672q30 40 73.5 61.5t91.5 21.5q85 0 147 -62q32 -32 49 -74q18 -44 18 -93q0 -53 -22 -101q-22 -46 -60 -77l-2 -2q-62 -55 -197 -180q-108 -98 -154 -140q-58 53 -202 184l-48 44q-76 69 -94 85q-1 2 -2 3
q-6 4 -8 7q-39 32 -60 78.5t-21 97.5q-1 49 18 93q17 42 49 74q62 63 147 63q48 0 91.5 -22t73.5 -61q21 -28 56 -28t56 28z" />
<glyph glyph-name="smile-circle" unicode="&#xe6a7;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM512 130
q-68 0 -116 48.5t-48 116.5q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -38 27 -65.5t65 -27.5t65 27.5t27 65.5q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -68 -48 -116.5t-116 -48.5zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18
t18 -42.5t-18 -42t-42.5 -17.5z" />
<glyph glyph-name="smileo" unicode="&#xe6a8;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM640 331q-15 0 -25.5 -10.5t-10.5 -25.5q0 -38 -27 -65.5t-65 -27.5t-65 27.5t-27 65.5q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5
q0 -68 48 -116.5t116 -48.5t116 48.5t48 116.5q0 15 -10.5 25.5t-25.5 10.5zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42
t-42.5 -17.5t-42 17.5t-17.5 42z" />
<glyph glyph-name="frowno" unicode="&#xe6a9;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM640 130q-15 0 -25.5 11t-10.5 25q0 39 -27 66t-65 27t-65 -27t-27 -66q0 -14 -10.5 -25t-25.5 -11t-25.5 11t-10.5 25q0 68 48 116.5t116 48.5t116 -48.5
t48 -116.5q0 -14 -10.5 -25t-25.5 -11zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5t-42 17.5t-17.5 42z" />
<glyph glyph-name="calculator" unicode="&#xe6aa;"
d="M857 832h-689q-16 0 -27.5 -11.5t-11.5 -27.5v-818q0 -16 11.5 -27.5t27.5 -11.5h689q16 0 27 11.5t11 27.5v818q0 16 -11 27.5t-27 11.5zM818 14h-612v740h612v-740v0zM324 410h377q16 0 27.5 11.5t11.5 27.5v185q0 16 -11.5 27.5t-27.5 11.5h-377q-16 0 -27.5 -11.5
t-11.5 -27.5v-185q0 -16 11.5 -27.5t27.5 -11.5zM362 595h300v-108h-300v108zM293 189h23v-23q0 -16 11.5 -27.5t27.5 -11.5t27.5 11.5t11.5 27.5v23h23q16 0 27.5 11.5t11.5 27.5t-11.5 27t-27.5 11h-23v24q0 16 -11.5 27t-27.5 11t-27.5 -11t-11.5 -27v-24h-23
q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5zM607 328q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5h124q16 0 27.5 11.5t11.5 27.5t-11.5 27t-27.5 11h-124zM731 162h-124q-16 0 -27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5h124q16 0 27.5 11.5t11.5 27.5
t-11.5 27.5t-27.5 11.5z" />
<glyph glyph-name="chrome" unicode="&#xe6ac;" horiz-adv-x="1025"
d="M258 449l-146 254q71 90 176 141.5t224 51.5q138 0 255.5 -68t185.5 -183h-418q-11 1 -23 1q-90 0 -161 -55.5t-93 -141.5v0zM695 571h294q35 -90 35 -187q0 -103 -40 -197.5t-107.5 -163t-161.5 -109.5t-197 -42l209 363q47 67 47 149q0 110 -79 187v0v0zM326 384
q0 77 54.5 131.5t131.5 54.5t131.5 -54.5t54.5 -131.5t-54.5 -131.5t-131.5 -54.5t-131.5 54.5t-54.5 131.5zM582 131l-146 -253q-122 18 -222 89t-157 181t-57 236q0 135 66 251l209 -362q32 -68 96 -109.5t141 -41.5q36 0 70 9z" />
<glyph glyph-name="github" unicode="&#xe6ad;" horiz-adv-x="1025"
d="M0 371q0 -166 95.5 -298.5t247.5 -185.5q6 -1 10 -1t6.5 1.5t4 3t2 5t0.5 5v6v6.5v88q-37 -4 -66 0.5t-45.5 14t-29 23.5t-17 25.5t-9 24t-5.5 14.5q-9 15 -27 27.5t-27 20t-2 14.5q50 26 113 -66q34 -51 119 -30q10 41 40 70q-116 21 -172 86t-56 158q0 87 55 151
q-22 65 6 137q29 2 65 -11.5t50.5 -23t25.5 -17.5q57 16 128.5 16t129.5 -16q13 9 29 19t49 21.5t61 9.5q27 -71 7 -135q56 -64 56 -151q0 -93 -57 -158.5t-172 -85.5q43 -43 43 -104v-129q0 -1 1 -3q0 -6 0.5 -9t4.5 -6t12 -3q153 52 250.5 185.5t97.5 300.5
q0 104 -40.5 199t-109 163.5t-163.5 109t-199 40.5t-199 -40.5t-163.5 -109t-109 -163.5t-40.5 -199v0z" />
<glyph glyph-name="iconfontdesktop" unicode="&#xe6b4;"
d="M902 766h-779q-23 0 -40 -17t-17 -40v-480q0 -24 17 -40.5t40 -16.5h357v-108h-147q-13 0 -22.5 -9.5t-9.5 -22.5t9.5 -22t22.5 -9h358q13 0 22.5 9t9.5 22t-9.5 22.5t-22.5 9.5h-148v108h359q24 0 40.5 16.5t16.5 40.5v480q0 23 -16.5 40t-40.5 17zM896 703v-468h-767
v468h767z" />
<glyph glyph-name="caretcircleoup" unicode="&#xe6b5;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163.5t-40.5 -199t40.5 -198.5t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 198.5t-40.5 199t-109 163.5t-163 109t-198.5 40.5zM828 67q-62 -62 -142 -96q-83 -35 -174 -35t-174 35q-81 34 -143 96
t-96 142q-35 83 -35 174t35 175q34 80 96 142t142 96q83 35 174.5 35t174.5 -35q80 -34 142 -96t96 -142q35 -83 35 -174.5t-35 -174.5q-34 -80 -96 -142zM528 559q-7 7 -16 7h-1q-10 0 -16 -7l-229 -244q-10 -11 -4.5 -25t21.5 -14h457q16 0 22 14t-5 25z" />
<glyph glyph-name="upload" unicode="&#xe6b6;"
d="M488 822q10 10 24 10t24 -10l156 -156q10 -10 10 -24.5t-10 -24.5t-24 -10t-25 10l-96 97v-578q0 -14 -10.5 -24t-24.5 -10t-24.5 10t-10.5 24v578l-97 -97q-10 -10 -24 -10t-24 10t-10 24.5t10 24.5zM924.5 256q-14.5 0 -24.5 -10.5t-10 -24.5v-195q0 -9 -6 -15t-15 -6
h-716q-9 0 -15 6t-6 15v195q0 14 -10 24.5t-24.5 10.5t-24.5 -10.5t-10 -24.5v-223q0 -26 18 -44t44 -18h772q26 0 44 18.5t18 43.5v223q0 14 -10 24.5t-24.5 10.5z" />
<glyph glyph-name="download" unicode="&#xe6b7;"
d="M488 112q10 -10 24 -10t24 10l156 156q11 10 11 24t-10.5 24.5t-24.5 10.5t-24 -11l-97 -96v577q0 15 -10.5 25t-24.5 10t-24 -10t-10 -25v-577l-97 97q-11 10 -25 10t-24 -10.5t-10 -24.5t10 -24zM924.5 256q-14.5 0 -24.5 -10.5t-10 -24.5v-195q0 -9 -6 -15t-15 -6
h-716q-9 0 -15 6t-6 15v195q0 14 -10 24.5t-24.5 10.5t-24.5 -10.5t-10 -24.5v-223q0 -26 18 -44t44 -18h772q26 0 44 18.5t18 43.5v223q0 14 -10 24.5t-24.5 10.5z" />
<glyph glyph-name="piechart" unicode="&#xe6b8;"
d="M467 -128q95 0 180 36t150 101l-330 328v465q-95 0 -181.5 -36.5t-149 -99t-99.5 -148.5t-37 -180.5t37 -181t99.5 -148.5t149 -99t181.5 -37v0v0zM531 404h493q0 100 -39 191t-105 157t-157.5 105t-191.5 39v-492v0zM557 339l332 -327q64 64 99.5 148.5t35.5 178.5h-467
v0z" />
<glyph glyph-name="lock1" unicode="&#xe6b9;"
d="M824 614q-26 64 -73 113q-46 50 -107 77q-63 28 -132 28t-132 -28q-61 -27 -108 -76.5t-72 -113.5q-27 -66 -27 -139v-470q0 -29 19.5 -49t46.5 -20h545q28 0 47.5 20t18.5 49v415l1 19v36q0 72 -27 139zM407 741v0l1 1q49 22 104 22q54 0 104 -22q48 -22 86 -62
q38 -39 59 -92t21 -113v-29h-541v0v29q0 59 22 113q21 53 59 92.5t85 60.5zM783 378v-373q0 -1 -1 -1h-540q-1 0 -1 1v373h542zM480 224v-90q0 -13 9.5 -22t22.5 -9t22.5 9t9.5 22v90q27 17 27 49q0 25 -17.5 42t-41.5 17t-41.5 -17t-17.5 -42q0 -32 27 -49z" />
<glyph glyph-name="unlock" unicode="&#xe6ba;"
d="M241 446v30q0 58 22 113q21 52 59 91q38 40 85 61v0l1 1q49 22 104 22q54 0 104 -22q48 -22 86 -61q21 -23 53 -83q10 -20 31 -20h14q14 0 21.5 11.5t2.5 24.5v0q-26 64 -73 113q-46 50 -107 77q-63 28 -132 28t-132 -28q-61 -27 -108 -76.5t-72 -113.5q-27 -66 -27 -139
v-470q0 -29 19.5 -49t46.5 -20h545q28 0 47 20t19 49l1 377q0 26 -19 45t-45 19h-546v0zM783 5q0 -1 -1 -1h-540q-1 0 -1 1v373h542v-373zM480 224v-90q0 -13 9.5 -22t22.5 -9t22.5 9t9.5 22v90q27 17 27 49q0 25 -17.5 42t-41.5 17t-41.5 -17t-17.5 -42q0 -32 27 -49z" />
<glyph glyph-name="windowso" unicode="&#xe6bc;"
d="M527 27l434 -71v401h-434v-330zM599 285h290v-244l-290 47v197zM527 758v-329h434v401zM889 501h-290v196l290 48v-244zM68 429h367v317l-367 -61v-256zM140 624l223 37v-160h-223v123zM68 99l367 -60v318h-367v-258zM140 285h223v-161l-223 36v125z" />
<glyph glyph-name="dotchart" unicode="&#xe6bd;"
d="M923 8h-788v789q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-825q0 -15 10.5 -25.5t25.5 -10.5h824q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM319 259zM253 259.5q0 27.5 19 46.5t46.5 19t47 -19t19.5 -46.5t-19.5 -47t-47 -19.5t-46.5 19.5t-19 47z
M598 299zM512 299q0 35 25 60t60.5 25t60.5 -25t25 -60t-25 -60t-60.5 -25t-60.5 25t-25 60zM623 514zM563 514q0 25 17.5 42.5t42.5 17.5t42.5 -17.5t17.5 -42.5t-17.5 -42.5t-42.5 -17.5t-42.5 17.5t-17.5 42.5zM850 657zM805 657.5q0 18.5 13 32t32 13.5t32.5 -13.5
t13.5 -32t-13.5 -32t-32.5 -13.5t-32 13.5t-13 32zM863 466zM830 466q0 14 9.5 23.5t23.5 9.5t23.5 -9.5t9.5 -23.5t-9.5 -23.5t-23.5 -9.5t-23.5 9.5t-9.5 23.5z" />
<glyph glyph-name="barchart" unicode="&#xe6be;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v824q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-788h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM264 523q-29 -1 -50 -22t-22 -50q0 -23 11.5 -41t30.5 -28v-285q0 -13 9.5 -22.5t22.5 -9.5v0
q13 0 22.5 9.5t9.5 22.5v285q19 9 30.5 27t11.5 40q0 31 -22.5 53t-53.5 21zM542 641q-30 -1 -51 -22t-21 -50q-1 -23 10.5 -41t31.5 -28v-403q0 -13 9 -22.5t23 -9.5v0q13 0 22.5 9.5t9.5 22.5v403q18 9 30 27t12 40q0 31 -22.5 53t-53.5 21zM895 438q0 31 -22.5 53
t-53.5 21q-29 -1 -50 -22t-22 -50q0 -23 11.5 -41t30.5 -28v-274q0 -13 9.5 -22.5t22.5 -9.5v0q13 0 22.5 9.5t9.5 22.5v274q19 9 30.5 27t11.5 40z" />
<glyph glyph-name="codesquare" unicode="&#xe6bf;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM229 347q-15 0 -25.5 10.5t-10.5 25.5t10 26l115 115l-115 117q-10 11 -10 25.5t10.5 25t25.5 10.5t25 -10l141 -142q10 -11 10 -26
t-11 -25l-140 -141q-10 -11 -25 -11zM618 347v0l-199 1q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5v0l199 -1q15 0 25.5 -10.5t10.5 -25.5t-11 -25.5t-25 -10.5z" />
<glyph glyph-name="plussquare" unicode="&#xe6c0;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM732 348h-184v-183q0 -15 -10.5 -25.5t-25 -10.5t-25.5 10.5t-11 25.5v183h-184q-15 0 -25.5 10.5t-10.5 25t10.5 25.5t25.5 11h184v183
q0 15 11 25.5t25.5 10.5t25 -10.5t10.5 -25.5v-183h184q15 0 25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5z" />
<glyph glyph-name="minussquare" unicode="&#xe6c1;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM768 383q0 -15 -11 -25.5t-25 -10.5h-442q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h442q14 0 25 -10.5t11 -25.5v0z" />
<glyph glyph-name="closesquare" unicode="&#xe6c2;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM717.5 178.5q-10.5 -10.5 -25.5 -10.5t-26 10l-154 155l-154 -155q-11 -10 -26 -10t-25.5 10.5t-10.5 25.5t11 25l154 155l-154 155
q-11 10 -11 25t10.5 25.5t25.5 10.5t26 -10l154 -155l154 155q11 10 26 10t25.5 -10.5t10.5 -25.5t-11 -25l-154 -155l154 -155q11 -11 11 -25.5t-10.5 -25z" />
<glyph glyph-name="closesquareo" unicode="&#xe6c3;"
d="M717.5 589.5q-10.5 10.5 -25.5 10.5t-26 -10l-154 -155l-154 155q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -25l154 -155l-154 -155q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l154 155l154 -155q11 -10 26 -10t25.5 10.5t10.5 25t-11 25.5l-154 155l154 155
q11 10 11 25t-10.5 25.5zM888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0z" />
<glyph glyph-name="checksquare" unicode="&#xe6c4;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM772 539l-359 -360l-1 -1q-3 -3 -8 -6q-8 -5 -18 -5q-21 0 -31 18l-109 191q-8 13 -4 27t17 21.5t27.5 3.5t21.5 -17l86 -149l327 328
q11 11 26 11t25.5 -10.5t10.5 -25.5t-11 -26z" />
<glyph glyph-name="checksquareo" unicode="&#xe6c5;"
d="M721 590l-327 -328l-86 149q-7 13 -21.5 17t-27.5 -3.5t-17 -21.5t4 -27l109 -191q10 -18 31 -18q10 0 18 5q5 3 8 6l1 1l359 360q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -11zM888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753
q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0z" />
<glyph glyph-name="fastbackward" unicode="&#xe6c6;"
d="M525 414l436 376q18 17 40.5 6.5t22.5 -36.5v-752q0 -26 -22.5 -36.5t-40.5 6.5l-436 377q-13 12 -13 30t13 29zM36 800v0q15 0 25.5 -10.5t10.5 -25.5v-298l377 324q18 17 40.5 6.5t22.5 -36.5v-375v-377q0 -26 -22.5 -36.5t-40.5 6.5l-377 326v-300q0 -15 -10.5 -25.5
t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v760q0 15 10.5 25.5t25.5 10.5z" />
<glyph glyph-name="fastforward" unicode="&#xe6c7;"
d="M499 414l-436 376q-18 17 -40.5 6.5t-22.5 -36.5v-752q0 -26 22.5 -36.5t40.5 6.5l436 378q13 11 13 29t-13 29zM988 800v0q-15 0 -25.5 -10.5t-10.5 -25.5v-298l-377 324q-18 17 -40.5 6.5t-22.5 -36.5v-375v-377q0 -26 22.5 -36.5t40.5 6.5l377 326v-300
q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v760q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="upsquare" unicode="&#xe6c8;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM757.5 277q-10.5 -10 -25.5 -9.5t-25 10.5l-195 208l-195 -208q-10 -10 -25 -10.5t-26 9.5t-11.5 25t10.5 26l221 236q10 11 26 11t26 -11
l221 -236q10 -11 9.5 -26t-11 -25z" />
<glyph glyph-name="downsquare" unicode="&#xe6c9;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM759 451l-221 -236q-10 -11 -26 -11t-26 11l-221 236q-11 11 -10.5 26t11.5 25t26 9.5t25 -11.5l195 -207l195 207q10 11 25 11.5
t25.5 -9.5t11 -25t-9.5 -26z" />
<glyph glyph-name="leftsquare" unicode="&#xe6ca;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM616 189q11 -10 11.5 -25t-9.5 -25.5t-25 -11t-26 9.5l-236 221q-11 10 -11 26t11 26l236 221q11 11 26 10.5t25 -11.5t9.5 -26t-10.5 -25
l-208 -195z" />
<glyph glyph-name="rightsquare" unicode="&#xe6cb;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM694 358l-236 -221q-11 -10 -26 -9.5t-25 11t-9.5 25.5t10.5 25l208 195l-208 195q-10 10 -10.5 25t9.5 26t25 11.5t26 -10.5l236 -221
q11 -10 11 -26t-11 -26z" />
<glyph glyph-name="rightsquareo" unicode="&#xe6cc;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM705 384q0 16 -11 26l-236 221q-11 11 -26 10.5t-25 -11.5t-9.5 -26t10.5 -25l208 -195
l-208 -195q-10 -10 -10.5 -25t9.5 -26t25 -11.5t26 10.5l236 221q11 10 11 26z" />
<glyph glyph-name="leftsquareo" unicode="&#xe6cd;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM331 358l236 -221q11 -10 26 -9.5t25 11t9.5 25.5t-11.5 25l-207 195l207 195q11 10 11.5 25
t-9.5 26t-25 11.5t-26 -10.5l-236 -221q-11 -10 -11 -26t11 -26z" />
<glyph glyph-name="down-square-o" unicode="&#xe6ce;"
d="M888 760v0v0v-753h-752v753h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM538 215l221 236q10 11 9.5 26t-11 25t-25.5 9.5t-25 -11.5l-195 -207l-195 207q-10 11 -25 11.5
t-26 -9.5t-11.5 -25t10.5 -26l221 -236q10 -11 26 -11t26 11z" />
<glyph glyph-name="up-square-o" unicode="&#xe6cf;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM512 575q-16 0 -26 -11l-221 -236q-11 -11 -10.5 -26t11.5 -25t26 -9.5t25 10.5l195 208
l195 -208q10 -10 25 -10.5t25.5 9.5t11 25t-9.5 26l-221 236q-10 11 -26 11z" />
<glyph glyph-name="play" unicode="&#xe6d0;"
d="M512 894q-139 0 -256.5 -68.5t-186 -186t-68.5 -256.5t68.5 -256.5t186 -186t256.5 -68.5t256.5 68.5t186 186t68.5 256.5t-68.5 256.5t-186 186t-256.5 68.5zM712 369l-291 -247q-6 -6 -15 -6q-8 0 -14.5 5.5t-6.5 14.5v495q0 8 6.5 13.5t15 5.5t14.5 -6l291 -247
q6 -6 6 -14t-6 -14z" />
<glyph glyph-name="playcircleo" unicode="&#xe6d1;"
d="M512 894q-139 0 -256.5 -68.5t-186 -186t-68.5 -256.5t68.5 -256.5t186 -186t256.5 -68.5t256.5 68.5t186 186t68.5 256.5t-68.5 256.5t-186 186t-256.5 68.5zM822 73q-60 -61 -139 -95q-82 -34 -171 -34t-171 34q-78 34 -139 95q-61 60 -95 139q-34 82 -34 171t35 171
q33 78 94 140q60 60 139 94q82 34 171 34t171 -34q78 -34 139 -95q61 -60 95 -139q34 -82 34 -171t-35 -171q-33 -79 -94 -139zM712 397l-291 247q-6 6 -15 6q-8 0 -14.5 -5.5t-6.5 -13.5v-495q0 -9 6.5 -14t15 -5t14.5 5l291 247q6 6 6 14t-6 14z" />
<glyph glyph-name="tag" unicode="&#xe6d2;"
d="M963 291v3q-1 9 -4 18q-4 10 -10 19q-4 5 -7 8l-479 483q-4 5 -9 8q-12 7 -25 7h-291q-31 0 -53 -22t-22 -52v-298q0 -5 1 -10l0.5 -1l0.5 -1q1 -4 2 -7q1 -1 1 -2q4 -7 10 -13l477 -472q9 -8 18 -13q17 -9 35 -9q15 0 28 6q14 5 25 16l280 277q3 2 5 5q3 3 5 7q2 3 3 5
q2 3 3 5q0 2 1 3q5 14 5 30zM264.5 560q-29.5 0 -50.5 21t-21 50.5t21 50.5t50.5 21t50.5 -21t21 -50.5t-21 -50.5t-50.5 -21z" />
<glyph glyph-name="tago" unicode="&#xe6d3;"
d="M963 291v3q-1 9 -4 18q-4 10 -10 19q-4 5 -7 8l-479 483q-4 5 -9 8q-12 7 -25 7h-291q-31 0 -52.5 -22t-21.5 -52v-298v-10l0.5 -1l0.5 -1q1 -4 2 -7q1 -1 1 -2q4 -7 10 -13l238 -236l239 -236q9 -8 19 -13q16 -9 34 -9q15 0 28 6q14 5 25 16l280 277q3 2 5 5q3 3 5 7
q2 3 3 5q2 3 3 5q0 2 1 3q5 14 5 30zM891 287v0v0v0v0v0h-1v0l-280 -277v0q-1 -1 -2 -1t-1 1h-0.5h-0.5l-239 236l-231 229v288q0 2 2 2h281l471 -476h1v-1v0v0v-1zM264 632zM193 631.5q0 29.5 21 50.5t50.5 21t50.5 -21t21 -50.5t-21 -50.5t-50.5 -21t-50.5 21t-21 50.5z
" />
<glyph glyph-name="addfile" unicode="&#xe910;"
d="M860 128h-156v156q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-156h-148q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h148v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148h156q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM875 594
l-278 281q-6 6 -15 11q-2 2 -4 2q-1 1 -3 2q-14 6 -29 6h-346q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h212q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-212v880h312v-240q0 -30 21 -51t51 -21h240v-156q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
v188q0 29 -21 50zM584 584v202l200 -202h-200z" />
<glyph glyph-name="folder1" unicode="&#xe662;"
d="M952 704h-463l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v560q0 30 -21 51t-51 21zM72 760h323l18 -56h-341v56zM952 72h-880v560h880v-560z" />
<glyph glyph-name="file1" unicode="&#xe664;"
d="M875 594l-278 281q-6 6 -15 11q-2 2 -4 2q-1 1 -3 2q-14 6 -29 6h-346q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v600q0 29 -21 50zM784 584h-200v202zM824 -56h-624v880h312v-240q0 -30 21 -51t51 -21h240v-568z" />
<glyph glyph-name="switcher" unicode="&#xe913;"
d="M572 292h-376q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h376q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM696 568v-624h-624v624h624zM696 640h-624q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v624q0 30 -21 51t-51 21z
M952 896h-592q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h592v-596q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v596q0 30 -21 51t-51 21zM824 768h-660q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h660v-660q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v660q0 30 -21 51t-51 21z" />
<glyph glyph-name="addfolder" unicode="&#xe914;"
d="M988 256h-156v156q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-156h-148q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h148v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148h156q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM952 704
h-463l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h468q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-468v560h880v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148q0 30 -21 51t-51 21zM72 704v56h323l18 -56h-341z
" />
<glyph glyph-name="folderopen" unicode="&#xe699;"
d="M960 512v120q0 30 -21 51t-51 21h-399l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -5 1 -11v0v-2v-1l0.5 -0.5l0.5 -0.5v-1v-1.5t0.5 -1l0.5 -0.5v-1q0 -2 1 -3v0q5 -17 18 -29v0q1 0 1.5 -0.5l1 -1t0.5 -1.5q1 0 1 -0.5t0.5 -0.5t1 -0.5t1.5 -0.5
v-0.5v-0.5q1 0 1.5 -0.5l1.5 -1.5v0q15 -10 32 -11l1 -1h3h1h1h2h788q25 0 44.5 15.5t25.5 39.5l92 368q8 31 -11 58t-51 31zM72 760h323l41 -128h452v-120h-724q-25 0 -44.5 -15t-25.5 -39l-22 -89v391zM860 72h-788l92 368h788z" />
<glyph glyph-name="search1" unicode="&#xe670;"
d="M950 -2l-206 205q88 107 88 245q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5q138 0 245 88l206 -206q10 -10 25 -10t26 10q10 11 10 26t-10 26zM569 160q-57 -24 -121 -24t-121 24q-56 24 -99.5 67.5t-66.5 99.5
q-25 57 -25 121t25 121q23 56 66.5 99.5t99.5 67.5q57 24 121 24t121 -24q56 -24 99.5 -67.5t67.5 -99.5q24 -57 24 -121t-24 -121q-24 -56 -67.5 -99.5t-99.5 -67.5z" />
<glyph glyph-name="ellipsis1" unicode="&#xe647;"
d="M128 384q0 -27 18.5 -45.5t45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5zM448 384q0 -27 18.5 -45.5t45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5zM768 384q0 -27 18.5 -45.5t45.5 -18.5
t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5z" />
<glyph glyph-name="calendar" unicode="&#xe6bb;"
d="M888 768h-120v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-368v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-120q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h752q30 0 51 21t21 51v688q0 30 -21 51t-51 21zM136 696h120v-20
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h368v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h120v-112h-752v112zM888 8h-752v504h752v-504zM288 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5
t22.5 9.5zM480 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM672 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM288 190h64q13 0 22.5 -9.5
t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM480 190h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5z" />
<glyph glyph-name="filetext1" unicode="&#xe698;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M584 412q0 15 -10.5 25.5t-25.5 10.5h-256q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h256q15 0 25.5 10.5t10.5 25.5zM776 252q0 15 -10.5 25.5t-25.5 10.5h-448q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h448q15 0 25.5 10.5t10.5 25.5zM648 92
q0 15 -10.5 25.5t-25.5 10.5h-320q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h320q15 0 25.5 10.5t10.5 25.5z" />
<glyph glyph-name="copy1" unicode="&#xe648;"
d="M875 658l-214 217q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-281q-30 0 -51.5 -21t-21.5 -51v-56h-56q-29 0 -50.5 -21.5t-21.5 -50.5v-752q0 -30 21.5 -51t50.5 -21h496q29 0 50 21t21 51v56h57q30 0 50.5 21t20.5 51v536q0 30 -20 50zM647 786l137 -138h-137v138z
M695 -56h-495v752h56v-624q0 -30 21.5 -51t51.5 -21h366v-56zM823 72h-495v752h247v-176q0 -30 21.5 -51t51.5 -21h175v-504zM640 476q0 15 -10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5zM768 348
q0 15 -10.5 25.5t-25.5 10.5h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312q15 0 25.5 10.5t10.5 25.5zM704 220q0 15 -10.5 25.5t-25.5 10.5h-248q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h248q15 0 25.5 10.5t10.5 25.5z" />
<glyph glyph-name="jpgfile1" unicode="&#xe69c;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M350 200q0 -18 -5.5 -25t-16.5 -7q-15 0 -25 19l-30 -23q20 -34 61 -34q30 0 45.5 18.5t15.5 47.5v123h-45v-119zM501 319h-64v-186h44v62h22q31 0 52 16t21 48q0 60 -75 60zM500 230h-19v53h18q34 0 34 -25q0 -28 -33 -28zM683 239v-36h30v-30q-6 -5 -18 -5q-50 0 -50 58
q0 27 13 42.5t34 15.5q18 0 34 -15l23 29q-24 24 -59 24q-39 0 -65 -26t-26 -71q0 -46 25.5 -70.5t66.5 -24.5q39 0 61 22v87h-69z" />
<glyph glyph-name="pdffile1" unicode="&#xe6b3;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M333 320h-67v-192h46v64h22q33 0 54.5 16.5t21.5 49.5q0 62 -77 62zM332 228h-20v56h18q35 0 35 -26q0 -30 -33 -30zM498 320h-56v-192h58q44 0 69 24.5t25 72.5t-25.5 71.5t-70.5 23.5zM495 165h-6v118h6q25 0 38.5 -13t13.5 -45q0 -60 -52 -60zM752 282v38h-122v-192h46
v73h65v38h-65v43h76z" />
<glyph glyph-name="exclefile1" unicode="&#xe6b0;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M460 229l-56 155h86l16 -57q5 -18 14 -53h2q15 29 30 53l33 57h82l-111 -159l60 -162h-86l-19 63q-4 14 -14 54h-2q-14 -25 -31 -54l-39 -63h-82z" />
<glyph glyph-name="pptfile1" unicode="&#xe6b1;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M538 390h-112l-57 -334h77l19 119h37q55 0 96 28t51 82q10 56 -21 80.5t-90 24.5zM574 285q-9 -49 -65 -49h-33l16 93h32q29 0 41.5 -10t8.5 -34z" />
<glyph glyph-name="unknowfile1" unicode="&#xe6af;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M510 329q0 18 -11 28t-29 10q-28 0 -58 -29l-55 51q52 59 125 59q56 0 90.5 -28t34.5 -84q0 -21 -10 -40.5t-24 -34t-27.5 -29t-22 -33t-5.5 -39.5h-88q-5 30 6.5 57t28.5 43.5t31 35.5t14 33zM432 62q0 19 12 31t29.5 12t29.5 -12.5t12 -30.5t-12 -30.5t-29.5 -12.5
t-29.5 12.5t-12 30.5z" />
<glyph glyph-name="wordfile1" unicode="&#xe6b2;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M559 142q-1 14 -1 46v48l-7 136h-60l-55 -136q-21 -57 -34 -94h-2l5 94l5 136h-73l2 -298h88l49 130q3 8 24 70h2q-2 -35 -1 -70l4 -130h90l104 298h-68l-43 -136q-3 -11 -12.5 -43t-15.5 -51h-1z" />
<glyph glyph-name="dingding" unicode="&#xe923;"
d="M913 513q-3 -11 -12 -31v0l-1 -2q-16 -34 -48.5 -90.5t-56.5 -96.5l-24 -40q0 1 -1 1l-27 -47h131l-251 -335l57 228h-103l36 150q-46 -11 -104 -30q-3 -1 -7 -2.5t-19 -2t-32 4t-44.5 20.5t-56.5 42l-5 5l-11.5 11.5t-13.5 17t-9.5 17.5t-2 16t12.5 11q14 5 136 22
l114 14q-218 -3 -270 5q-38 6 -79 59.5t-52 110.5l-3 15q2 21 49 7q31 -8 118 -27.5t160 -34.5l72 -14q-5 1 -13 3.5t-33 10.5l-50 16t-58.5 19t-63 21t-60.5 21t-53.5 20t-39 16.5t-20.5 11.5q-21 24 -45 99t-20 126q0 2 1 5t6.5 7t14.5 2q271 -124 456 -192
q30 -11 76 -26.5t73.5 -25t62 -23t53.5 -25t36.5 -25.5t22.5 -30t1 -35z" />
<glyph glyph-name="dingding-o" unicode="&#xe925;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM749 415q-1 -6 -7 -19v0v0q-6 -13 -16.5 -32t-20.5 -36.5t-19.5 -33t-15.5 -25.5l-6 -10v1l-17 -28h79
l-151 -201l35 136h-62l21 90q-28 -6 -63 -17q-3 -3 -10.5 -4.5t-32 7.5t-52.5 34l-3 3l-7 7t-8 9.5t-5.5 10t-1 10t7.5 6.5q8 3 81 13l69 9q-131 -2 -162 3q-23 4 -47.5 36t-31.5 66l-2 10q3 11 30 3q18 -5 70.5 -16.5t96 -20.5l43.5 -9q-220 68 -235 84q-12 15 -26.5 59.5
t-12.5 75.5q0 1 0.5 3t4 4.5t8.5 0.5q163 -74 274 -115q19 -7 46.5 -16t43.5 -15t37 -14t32.5 -15t21.5 -15.5t13.5 -18t0.5 -20.5z" />
<glyph glyph-name="mobile1" unicode="&#xe678;"
d="M760 896h-496q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h496q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM760 65h-496v704h496v-704z" />
<glyph glyph-name="tablet1" unicode="&#xe66e;"
d="M824 896h-624q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM824 65h-624v759h624v-759z" />
<glyph glyph-name="bells" unicode="&#xe64e;"
d="M860 64h-28v448q0 123 -82 214t-202 104v30q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-30q-120 -13 -202 -104t-82 -214v-448h-28q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h276v-48q0 -30 21 -51t51 -21t51 21t21 51v48h276q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5zM760 64h-496v448q0 103 72.5 175.5t175.5 72.5t175.5 -72.5t72.5 -175.5v-448z" />
<glyph glyph-name="disconnect" unicode="&#xe64f;"
d="M900 772q-60 60 -144.5 60t-143.5 -60l-180 -180q-11 -10 -11 -25t11 -26t26 -11t25 11l180 180q38 38 92.5 38t93 -38.5t38.5 -93t-38 -92.5l-180 -180q-10 -11 -10 -25.5t10.5 -25t25.5 -10.5t25 10l180 180q60 59 60 143.5t-60 144.5zM377 615q15 0 25.5 10.5
t10.5 25.5v145q0 15 -10.5 25.5t-25.5 10.5t-26 -10.5t-11 -25.5v-145q1 -15 11 -26q11 -10 26 -10zM809 139q-11 11 -25 10q-16 0 -26.5 -10.5t-10.5 -25.5t11 -25l102 -103q11 -10 26 -10t25.5 10.5t10.5 25.5t-10 25zM924 285h-145q-16 0 -26 -11q-11 -11 -11 -25.5
t11 -25t26 -10.5h144q15 0 26 10.5t11 25.5t-10.5 25.5t-25.5 10.5zM648 153q-15 0 -25.5 -10.5t-10.5 -25.5v-145q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v145q0 15 -11 25q-10 11 -25 11zM541 227l-180 -180q-38 -39 -92.5 -39t-93.5 39q-38 39 -38 93t38 93
l180 180q10 10 10 25t-10.5 25.5t-25.5 10.5t-25 -10l-180 -180q-60 -60 -60 -144q0 -85 60 -144q60 -60 144 -60q85 0 144 60l180 180q11 10 11 25t-11 25.5t-26 10.5t-25 -10zM215 629q11 -11 26 -11t25.5 10.5t10.5 25.5t-11 26l-102 102q-11 11 -26 11t-25.5 -10.5
t-10.5 -25.5t11 -26zM101 483h145q15 0 25 11q11 10 11 25t-10.5 25.5t-25.5 10.5h-145q-15 0 -25.5 -10.5t-10.5 -25.5q-1 -15 10 -25.5t26 -10.5z" />
<glyph glyph-name="database" unicode="&#xe650;"
d="M824 896h-624q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM824 -47h-624v244q0 -1 1 -1h622q1 0 1 1v-244zM824 267q0 1 -1 1h-622q-1 0 -1 -1v244q0 -1 1 -1h622q1 0 1 1v-244zM824 581q0 1 -1 1h-622q-1 0 -1 -1
v243h624v-243zM321 75zM285 75q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM321 389zM285 389q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM321 703zM285 703
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="barcode" unicode="&#xe652;"
d="M706 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1zM534 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1zM640 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1zM428 72h-214q-1 0 -1 -1v-70q0 -1 1 -1h214q1 0 1 1v70q0 1 -1 1z
M670 768h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638q0 1 -1 1zM213 767q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638zM1023 768h-70q-1 0 -1 -1v-766q0 -1 1 -1h70q1 0 1 1v766q0 1 -1 1zM916 72h-240q-1 0 -1 -1v-70q0 -1 1 -1h240q1 0 1 1v70q0 1 -1 1z
M916 768h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638q0 1 -1 1zM108 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM354 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM424 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1z
M530 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1zM812 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM71 768h-70q-1 0 -1 -1v-766q0 -1 1 -1h70q1 0 1 1v766q0 1 -1 1zM178 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1z
M248 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1z" />
<glyph glyph-name="hourglass" unicode="&#xe653;"
d="M860 8h-92v219l-192 157l192 157v219h92q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-696q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h92v-219l192 -157l-192 -157v-219h-92q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h696q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5zM328 581v179h368v-179l-182 -147l-2 2l-2 -2zM696 8h-368v179l184 149l184 -149v-179z" />
<glyph glyph-name="key" unicode="&#xe654;"
d="M876 427q-77 78 -186.5 84t-193.5 -60l-369 369q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -25l369 -370q-66 -84 -60 -193.5t84 -186.5q84 -84 203.5 -84t204 84t84 203.5t-84.5 203.5zM825 71q-63 -63 -152.5 -63t-153 63t-63.5 152.5t63.5 153t153 63.5t152.5 -63.5
t63 -153t-63 -152.5zM353 596l76 76q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10l-76 -77zM333 768q11 11 11 25.5t-10.5 25t-25.5 10.5t-26 -10l-76 -77l51 -50z" />
<glyph glyph-name="flag" unicode="&#xe655;"
d="M888 640h-176v56q0 30 -21 51t-51 21h-360q-3 27 -23.5 45.5t-48.5 18.5h-72q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h72q30 0 51 21t21 51v256h360v-56q0 -30 21 -51t51 -21h176q30 0 51 21t21 51v360q0 30 -21 51t-51 21zM208 8h-72v752h72v-752zM640 336
h-360v360h360v-360zM888 208h-176v360h176v-360z" />
<glyph glyph-name="layout" unicode="&#xe656;"
d="M136 624zM100 624q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM256 72h-184v408h184v-408zM952 72
h-624v169q0 -1 1 -1h622q1 0 1 1v-169zM952 311q0 1 -1 1h-622q-1 0 -1 -1v169h624v-169zM952 552h-880v144h880v-144zM240 624zM204 624q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM344 624zM308 624
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="printer" unicode="&#xe673;"
d="M392 144h240v-72h-240v72zM392 312h240v-72h-240v72zM888 648h-120v112q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-112h-120q-30 0 -51 -21t-21 -51v-304q0 -30 21 -51t51 -21h120v-192q0 -30 21 -51t51 -21h368q30 0 51 21t21 51v192h120q30 0 51 21t21 51v304
q0 30 -21 51t-51 21zM328 759q0 1 1 1h366q1 0 1 -1v-110q0 -1 -1 -1h-366q-1 0 -1 1v110zM696 8h-368v368h368v-368zM888 272h-120v104q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-104h-120v304h752v-304zM820 508zM784 508q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="USB" unicode="&#xe6d7;"
d="M768 704v-192h56v-138h-276v330h60l-96 128l-96 -128h60v-440h-276v129q37 17 50 55q6 16 6 32q0 40 -28 68t-68 28t-68 -28t-28 -68q0 -31 18 -56t46 -34v-126q0 -30 21 -51t51 -21h276v-71q-27 -11 -43.5 -35t-16.5 -54q0 -40 28 -68t68 -28t68 28t28 68q0 30 -16.5 54
t-43.5 35v181h276q30 0 51 21t21 51v138h64v192h-192zM160 456q-10 0 -17 7t-7 17t7 17t17 7t17 -7t7 -17t-7 -17t-17 -7zM888 584h-48v48h48v-48z" />
<glyph glyph-name="skin" unicode="&#xe6d8;"
d="M888 832h-259q-2 -5 -3 -11q-13 -36 -44 -58.5t-70 -22.5t-70 22.5t-44 58.5q-1 6 -3 11h-259q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h56v-312q0 -30 21 -51t51 -21h496q30 0 51 21t21 51v312h56q30 0 51 21t21 51v368q0 30 -21 51t-51 21zM888 392h-129
q1 0 1 -1v-382q0 -1 -1 -1h-494q-1 0 -1 1v382q0 1 1 1h-129v368h210q26 -43 70 -69t96 -26t96 26t70 69h210v-368z" />
<glyph glyph-name="tool" unicode="&#xe6d9;"
d="M925 731l-167 -166l-68 67l166 166q-63 40 -139.5 32t-130.5 -63q-43 -42 -57.5 -99.5t0.5 -111.5l-189 -189q-54 15 -111.5 0.5t-99.5 -57.5q-55 -54 -63 -130.5t32 -139.5l166 166l67 -68l-166 -166q63 -42 140.5 -34t132.5 63q43 42 57.5 99.5t-0.5 111.5l189 189
q54 -16 111.5 -1t99.5 57q56 56 63.5 133.5t-33.5 140.5zM395 44q-47 -47 -114 -45l95 95q18 18 18 43t-18 43l-68 68q-18 18 -43.5 18t-43.5 -18l-95 -95q-1 67 46 114q37 37 88 44.5t96 -15.5q21 -12 39 -29q17 -17 28 -39q24 -44 16.5 -95.5t-44.5 -88.5zM468 273
q-13 21 -30 37q-17 18 -37 30l155 155q13 -21 30 -37q17 -18 37 -30zM852 501q-37 -37 -88 -44.5t-96 15.5q-21 12 -39 29q-17 17 -28 39q-24 44 -16.5 95.5t44.5 87.5q47 47 114 46l-95 -95q-18 -18 -18 -43.5t18 -43.5l68 -67q18 -18 43.5 -18t43.5 18l95 95
q1 -67 -46 -114z" />
<glyph glyph-name="car" unicode="&#xe6dc;"
d="M952 448h8l-50 242q-5 29 -30.5 49.5t-55.5 20.5h-624q-30 0 -55 -20.5t-31 -49.5l-50 -242h8q-30 0 -51 -21t-21 -51v-176q0 -28 18.5 -48.5t45.5 -23.5v0q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5h384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v0
q27 3 45.5 23.5t18.5 48.5v176q0 30 -21 51t-51 21zM182 688h656l50 -240h-752zM952 200h-64v-72q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5v72h-528v-72q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5v72h-64v176h880v-176zM192 288zM156 288
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM832 288zM796 288q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="addusergroup" unicode="&#xe6dd;"
d="M420 470q-5 24 -5 48q0 13 1 25q-38 5 -63.5 34.5t-25.5 68.5q0 43 30.5 73.5t73.5 30.5q28 0 52 -14t37 -37q33 18 69 24q-22 45 -64.5 72t-93.5 27q-73 0 -124.5 -51.5t-51.5 -124.5q0 -70 48 -121t117 -55zM777 307q-73 35 -154 35q-146 0 -249 -103t-103 -249
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q28 0 56 -6q44 33 98 43zM909 142h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h88v-88q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM799 518q0 73 -51.5 124.5t-124.5 51.5t-124.5 -51.5t-51.5 -124.5t51.5 -124.5t124.5 -51.5t124.5 51.5t51.5 124.5zM623 414q-43 0 -73.5 30.5t-30.5 73.5t30.5 73.5t73.5 30.5t73.5 -30.5
t30.5 -73.5t-30.5 -73.5t-73.5 -30.5zM454 397q-24 33 -33 73q-94 -3 -172.5 -50.5t-124 -127.5t-45.5 -174q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q11 0 23 -1z" />
<glyph glyph-name="carryout" unicode="&#xe6df;"
d="M162 312h380q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-380q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10zM537.5 265.5q-10.5 -10.5 -10.5 -25.5t11 -25l84 -85l1 -1l1 -1l4 -3q10 -10 23.5 -10t23.5 10l224 224q10 10 10 24t-10 23l-3 4q-10 10 -24 10t-24 -10
l-197 -197l-63 63q-10 10 -25 10t-25.5 -10.5zM952 704h-84v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-248v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-248v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-84
q-30 0 -51 -21t-21 -51v-560q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v560q0 30 -21 51t-51 21zM952 72h-880v376h880v-376zM952 520h-880v112h84v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h248v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20
h248v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h84v-112zM162 188h252q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-252q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10z" />
<glyph glyph-name="deleteuser" unicode="&#xe6e0;"
d="M722 320q-95 63 -210 63q-104 0 -192.5 -51.5t-140 -140t-51.5 -193.5v0v-1v-1q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v2v0q0 130 91.5 221.5t220.5 91.5q58 0 111 -21q46 27 99 30zM787 96l62 62q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -10l-62 -63l-62 63
q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -26l62 -62l-62 -62q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l62 62l62 -62q11 -10 26 -10t25.5 10.5t10.5 25.5t-11 25zM736 607.5q0 92.5 -65.5 158.5t-158.5 66t-158.5 -66t-65.5 -158.5t65.5 -158.5t158.5 -66t158.5 66
t65.5 158.5zM512 455q-63 0 -107.5 44.5t-44.5 108t44.5 108t107.5 44.5t107.5 -44.5t44.5 -108t-44.5 -108t-107.5 -44.5z" />
<glyph glyph-name="deleteusergroup" unicode="&#xe6e1;"
d="M420 470q-5 24 -5 48q0 13 1 25q-38 5 -63.5 34.5t-25.5 68.5q0 43 30.5 73.5t73.5 30.5q28 0 52 -14t37 -37q33 18 69 24q-22 45 -64.5 72t-93.5 27q-73 0 -124.5 -51.5t-51.5 -124.5q0 -70 48 -121t117 -55zM898 44l-62 62l62 62q11 11 11 26t-10.5 25.5t-25.5 10.5
t-26 -11l-62 -62l-62 62q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l62 -62l-62 -62q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l62 62l62 -62q11 -11 26 -11t25.5 10.5t10.5 25.5t-11 26zM777 307q-73 35 -154 35q73 0 124.5 51.5t51.5 124.5t-51.5 124.5
t-124.5 51.5t-124.5 -51.5t-51.5 -124.5t51.5 -124.5t124.5 -51.5q-146 0 -249 -103t-103 -249q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q28 0 56 -6q44 33 98 43zM519 518q0 43 30.5 73.5t73.5 30.5t73.5 -30.5t30.5 -73.5t-30.5 -73.5
t-73.5 -30.5t-73.5 30.5t-30.5 73.5zM454 397q-24 33 -33 73q-94 -3 -172.5 -50.5t-124 -127.5t-45.5 -174q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q11 0 23 -1z" />
<glyph glyph-name="man" unicode="&#xe6e2;"
d="M384 576q-133 0 -226.5 -93.5t-93.5 -226.5t93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5t-226.5 93.5zM384 8q-103 0 -175.5 72.5t-72.5 175.5t72.5 175.5t175.5 72.5t175.5 -72.5t72.5 -175.5t-72.5 -175.5t-175.5 -72.5zM949.5 821.5
q-10.5 10.5 -25.5 10.5h-376q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h340v-340q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v376q0 15 -10.5 25.5z" />
<glyph glyph-name="isv" unicode="&#xe6e3;"
d="M860 292q-15 0 -25.5 -10.5t-10.5 -25.5v-248h-624v248q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-248q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v248q0 15 -10.5 25.5t-25.5 10.5zM888 832h-752q-30 0 -51 -21t-21 -51v-204q0 -71 51 -122t123 -51
q41 0 77 18t60 50q24 -32 60 -50t77 -18q42 0 77.5 18t60.5 49q24 -31 59.5 -49t76.5 -18q72 0 123 51t51 122v204q0 30 -21 51t-51 21zM339 658v-102q0 -42 -29.5 -71.5t-72 -29.5t-72 29.5t-29.5 71.5v204h203v-102zM512 455q-42 0 -71.5 29.5t-29.5 71.5v204h202v-204
v-11q-4 -38 -33 -64t-68 -26zM888 556q0 -42 -29.5 -71.5t-72 -29.5t-72 29.5t-29.5 71.5v204h203v-204z" />
<glyph glyph-name="gift" unicode="&#xe6e4;"
d="M888 576h-248q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h-248q-30 0 -51 -21t-21 -51v-112q0 -30 21 -51t51 -21h-8v-312q0 -30 21 -51t51 -21h624
q30 0 51 21t21 51v312h-8q30 0 51 21t21 51v112q0 30 -21 51t-51 21zM384 648q-23 0 -39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5v-56h-56zM476 8h-276v312h276v-312zM476 392h-340v112h340v-112zM584 704q0 23 16.5 39.5t39.5 16.5t39.5 -16.5
t16.5 -39.5t-16.5 -39.5t-39.5 -16.5h-56v56zM824 8h-276v312h276v-312zM888 392h-340v112h340v-112z" />
<glyph glyph-name="idcard" unicode="&#xe6e5;"
d="M200 128h176q30 0 51 21t21 51v88q0 41 -19 76t-51 57q38 37 38 91q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -54 38 -91q-32 -22 -51 -57t-19 -76v-88q0 -30 21 -51t51 -21zM288 568q23 0 39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5t-39.5 16.5
t-16.5 39.5t16.5 39.5t39.5 16.5zM200 283v1v4q0 36 26 62t62 26t62 -26t26 -62v-4v-1v-78q0 -5 -5 -5h-166q-5 0 -5 5v78zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM952 72h-880v624h880v-624zM548 348
h248q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-248q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM548 184h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM548 512h312q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="medicinebox" unicode="&#xe6e6;"
d="M952 584h-120v112q0 30 -21 51t-51 21h-496q-30 0 -51 -21t-21 -51v-112h-120q-30 0 -51 -21t-21 -51v-440q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v440q0 30 -21 51t-51 21zM264 696h496v-112h-496v112zM952 72h-880v440h880v-440zM388 256h88v-88q0 -15 10.5 -25.5
t25.5 -10.5t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="redenvelopes" unicode="&#xe6e7;"
d="M512 457l-59 59q-11 10 -25.5 10t-25 -10.5t-10.5 -25t10 -25.5l67 -67h-115q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h122v-64h-90q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h90v-84q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v84h90q14 0 24 10
t10 24v4q0 14 -10 24t-24 10h-90v64h122q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-114l67 68q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10zM896 770h-1q-3 26 -23.5 44t-47.5 18h-624q-27 0 -47.5 -18t-23.5 -44h-1h1q-1 -5 -1 -10v-752q0 -30 21 -51t51 -21h624q30 0 51 21
t21 51v752q0 5 -1 10h1zM715 760l-158 -78q-19 -10 -45 -10t-45 10l-157 78h405zM824 8h-624v725l248 -126q26 -14 64 -14t64 14l248 126v-725z" />
<glyph glyph-name="rest" unicode="&#xe6e8;"
d="M275 615q15 0 25.5 10.5t10.5 25.5v209q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5zM888 471h-120q0 30 -21 51t-51 21h-496q-30 0 -51 -21t-21 -51v-248q0 -5 1 -10q-1 -10 -1 -21q0 -133 93.5 -226.5t226.5 -93.5
q119 0 208.5 77.5t107.5 193.5h124q30 0 51 21t21 51v184q0 30 -21 51t-51 21zM696 215h-1q1 -12 1 -23q0 -103 -72.5 -175.5t-175.5 -72.5t-175.5 72.5t-72.5 175.5q0 11 1 23h-1v256h496v-256zM888 223h-112v176h112v-176zM613 615q15 0 25.5 10.5t10.5 25.5v209
q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5zM443 615q15 0 25.5 10.5t10.5 25.5v209q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="Safety" unicode="&#xe6ea;"
d="M512 832l-384 -128v-384q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5v384zM824 320q0 -129 -91.5 -220.5t-220.5 -91.5t-220.5 91.5t-91.5 220.5v330l312 110l312 -110v-330zM378 421q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t11 -25l129 -129l2 -3
q10 -9 24 -9t24 9l224 224q10 10 10 24t-10 24l-3 3q-10 10 -24 10t-24 -10l-197 -197z" />
<glyph glyph-name="wallet" unicode="&#xe6eb;"
d="M620 384zM584 384q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM952 328h-432v112h432v-112z
M952 512h-432q-30 0 -51 -21t-21 -51v-112q0 -30 21 -51t51 -21h432v-184h-880v624h880v-184z" />
<glyph glyph-name="woman" unicode="&#xe6ec;"
d="M512 320q119 0 203.5 84.5t84.5 203.5t-84.5 203.5t-203.5 84.5t-203.5 -84.5t-84.5 -203.5t84.5 -203.5t203.5 -84.5zM512 824q89 0 152.5 -63.5t63.5 -152.5t-63.5 -152.5t-152.5 -63.5t-152.5 63.5t-63.5 152.5t63.5 152.5t152.5 63.5zM860 256h-696
q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312v-276q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v276h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="adduser" unicode="&#xe6ed;"
d="M860 132h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h88v-88q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM736 607.5
q0 92.5 -65.5 158.5t-158.5 66t-158.5 -66t-65.5 -158.5t65.5 -158.5t158.5 -66t158.5 66t65.5 158.5zM512 455q-63 0 -107.5 44.5t-44.5 108t44.5 108t107.5 44.5t107.5 -44.5t44.5 -108t-44.5 -108t-107.5 -44.5zM722 320q-95 63 -210 63q-104 0 -192.5 -51.5t-140 -140
t-51.5 -193.5v0v-1v-1q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v2v0q0 130 91.5 221.5t220.5 91.5q58 0 111 -21q46 27 99 30z" />
<glyph glyph-name="bank" unicode="&#xe6ee;"
d="M940 419l-402 401q-10 11 -25 11t-26 -11l-401 -401q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t25 11l377 376l376 -376q10 -11 25 -11t25.5 11t10.5 25.5t-10 25.5zM828 292q-15 0 -25.5 -10.5t-10.5 -25.5v-248h-560v248q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5
t-10.5 -25.5v-248q0 -30 21 -51t51 -21h560q30 0 51 21t21 51v248q0 15 -10.5 25.5t-25.5 10.5zM320 358v-4q0 -14 10 -24t24 -10h122v-64h-90q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h90v-84q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v84h90q14 0 24 10
t10 24v4q0 14 -10 24t-24 10h-90v64h122q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-135q2 1 2 2l85 85q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10l-59 -60l-60 60q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t10 -25l85 -85l2 -2h-134q-14 0 -24 -10t-10 -24z" />
<glyph glyph-name="Trophy" unicode="&#xe6ef;"
d="M760 384h8q53 0 90.5 37.5t37.5 90.5v256h-128q-4 27 -24 45.5t-48 18.5h-368q-28 0 -48.5 -18.5t-23.5 -45.5h-128v-256q0 -53 37.5 -90.5t90.5 -37.5h8q19 -75 77 -127t135 -63v-186h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h696q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5h-312v186q77 11 135 63t77 127zM768 696h56v-184q0 -23 -16.5 -39.5t-39.5 -16.5v240zM256 456q-23 0 -39.5 16.5t-16.5 39.5v184h56v-240zM512 264q-76 0 -130 54t-54 130v312h368v-312q0 -76 -54 -130t-130 -54z" />
<glyph glyph-name="loading1" unicode="&#xe6ae;"
d="M512 -128q-104 0 -199 40q-92 39 -163 110t-110 163q-40 95 -40 199q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -90 35 -171q33 -79 94 -140t140 -95q81 -34 171 -34t171 35q79 33 140 94t95 140q34 81 34 171t-35 171q-33 79 -94 140t-140 95q-81 34 -171 34
q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5q104 0 199 -40q92 -39 163 -110t110 -163q40 -95 40 -199t-40 -199q-39 -92 -110 -163t-163 -110q-95 -40 -199 -40z" />
<glyph glyph-name="loading2" unicode="&#xe64d;"
d="M988 348q-15 0 -25.5 10.5t-10.5 25.5q0 90 -35 171q-33 79 -94 140t-140 95q-81 34 -171 34q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5q104 0 199 -40q92 -39 163 -110t110 -163q40 -95 40 -199q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="like2" unicode="&#xe69d;"
d="M958 421v3q-2 3 -2 4q-15 58 -66 77q-24 8 -50 8h-1h-87h-32.5h-32.5h-21q4 27 7 41q13 67 -5 119q-7 20 -24 66l-9 24q-16 40 -54 56q-29 13 -59 13q-34 0 -66 -17q-51 -26 -50 -83q1 -23 1 -36q1 -41 2 -62q0 -5 -2 -9q-3 -6 -10.5 -19t-11.5 -20q-35 -61 -53 -90
q-12 -18 -32.5 -30t-35.5 -15l-15 -3h-113q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h248h80h80h50h50h94q42 0 72 10q40 13 64.5 44t28.5 73q2 23 -3 45q25 40 23 84q-1 12 -5 24q24 36 23 76q0 15 -5 30q14 21 20 45l4 5v44zM248 8h-112v368h112v-368zM888 391
l-2 -8q-3 -11 -9 -21l-19 -28l9 -32q2 -6 2 -13q1 -17 -11 -33l-18 -28l9 -32q1 -5 2 -9q1 -20 -12 -40l-16 -25l6 -25v0v-3q3 -13 2 -25v0v-1q-2 -20 -13 -33q-11 -14 -30 -21q-19 -6 -50 -6h-94h-24.5h-25h-25.5h-25h-77h-83h-64l1 388q46 22 72 62v1q19 30 53 91l1 1v0
q2 3 14 24q1 1 4 6t4 7q14 24 12 51q-1 22 -2 57v2v16v20q-1 6 2 10q2 4 9 8q16 8 32 8q15 0 31 -7q10 -4 15 -15q7 -21 9 -24q15 -41 23 -64q12 -35 2 -82q-3 -17 -7 -43l-14 -84h106h32h32h88h1v0q13 0 26 -4q15 -6 20 -27q1 0 1.5 -2t0.5 -3v-14z" />
<glyph glyph-name="dislike2" unicode="&#xe69e;"
d="M960 352v44l-4 6q-6 24 -20 44q5 14 5 30q2 40 -23 76q4 12 5 25q2 43 -23 83q5 22 2 46q-3 41 -27.5 72t-64.5 44q-30 10 -72 10h-94h-50h-51h-79h-80h-248q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h113q6 -1 16 -3t32.5 -14.5t34.5 -30.5q18 -29 53 -90
q4 -7 11.5 -20t10.5 -18q2 -5 2 -10q-1 -20 -2 -62q0 -13 -1 -36q-1 -56 50 -83q32 -17 66 -17q30 0 59 12q38 17 54 57l9 24q15 41 24 65q18 53 5 120q-4 19 -7 41h21h32.5h32.5h87h1q26 0 50 8q52 19 66 77l2 4v3zM248 392h-112v368h112v-368zM888 363q0 -1 -1 -3
q0 -2 -1 -2q-5 -21 -20 -27q-13 -4 -26 -4v0h-1h-88h-32h-15.5h-16.5h-106l14 -84q4 -26 7 -43q10 -48 -2 -82q-8 -23 -24 -63q-1 -5 -4.5 -14t-4.5 -10q-4 -12 -14 -16q-16 -7 -31 -7q-16 0 -32 8q-7 4 -10 8q-2 3 -2 10q1 23 1 37v1q1 39 2 57q2 27 -12 51q-1 2 -4 6.5
t-4 6.5q-13 23 -14 24v0l-1 2q-34 60 -53 91h-1q-25 40 -71 62l-1 388h64h83h77h25h25.5h25h24.5h94q31 0 50 -6t30 -21q11 -13 13 -33v-1v0q1 -12 -2 -24v-4v0l-6 -25l16 -25q13 -20 12 -39q0 -5 -2 -9l-9 -33l18 -28q12 -16 11 -33q0 -7 -2 -13l-9 -32l19 -28q6 -10 9 -21
l2 -8v-14z" />
<glyph glyph-name="like1" unicode="&#xe64c;"
d="M184 448h-48q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h48q30 0 51 21t21 51v368q0 30 -21 51t-51 21zM957 422q-11 43 -47 56q-21 6 -42 6h-226q-7 0 -8 1.5t0 8.5q2 10 4.5 26.5t5 30.5t4.5 26q12 62 -4 109q-6 17 -36 97q-10 28 -36 39q-53 22 -102 -3
q-34 -18 -33 -54q0 -10 1 -48t2 -58q1 -18 -8 -33q-73 -125 -76 -130q-4 -6 -28 -32q-17 -18 -24 -30t-7 -29q0 -284 -1 -397q0 -30 21.5 -51t51.5 -21h390q40 0 66 9q32 10 51 34t22 58q2 29 -6 50q-1 4 2 9q28 37 26 76q-1 10 -7 29q-3 7 2 13q26 33 25 69q0 7 -3.5 21
t-3.5 16q-2 6 0 9q19 21 26 53q0 1 1 2v29z" />
<glyph glyph-name="dislike1" unicode="&#xe64b;"
d="M256 392q0 -30 -21 -51t-51 -21h-48q-30 0 -51 21t-21 51v368q0 30 21 51t51 21h48q30 0 51 -21t21 -51v-368zM957 346q-11 -43 -47 -56q-21 -6 -42 -6h-226q-7 0 -8 -1.5t0 -8.5q2 -10 4.5 -26.5t5 -30.5t4.5 -26q12 -62 -4 -109q-6 -17 -36 -97q-10 -28 -36 -39
q-53 -22 -102 3q-34 18 -33 54q0 10 1 48t2 58q1 18 -8 33q-73 125 -76 130q-4 6 -28 32q-17 18 -24 30t-7 29q0 284 -1 397q0 30 21.5 51t51.5 21h390q40 0 66 -9q32 -10 51 -34t22 -58q2 -29 -6 -50q-1 -4 2 -9q28 -37 26 -76q-1 -10 -7 -29q-3 -7 2 -13q26 -33 25 -69
q0 -7 -3.5 -21t-3.5 -15q-2 -7 0 -9q19 -22 26 -54q0 -1 1 -2v-28q-2 -7 -3 -10z" />
<glyph glyph-name="bulb1" unicode="&#xe649;"
d="M640 -56h-256q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h256q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM896 522q0 155 -112.5 264.5t-271.5 109.5t-271.5 -109.5t-112.5 -264.5q0 -102 52 -188.5t140 -135.5v-62q0 -30 21 -51t51 -21h240
q30 0 51 21t21 51v62q88 49 140 135.5t52 188.5zM733 309q-43 -42 -99 -65l-1 -0.5l-1 -0.5v-107h-240v107l-1 0.5l-1 0.5q-56 23 -99 65t-67 96q-24 56 -24 117t24 117q24 54 67 96t99 65q58 24 122 24t122 -24q56 -23 99 -65t67 -96q24 -56 24 -117t-24 -117
q-24 -54 -67 -96z" />
<glyph glyph-name="rocket1" unicode="&#xe90f;"
d="M954 799l-6 21l-21 5q-27 7 -72 7q-111 0 -235 -34q-63 -18 -112 -41q-50 -25 -78 -53q-25 -25 -65 -97q-9 -17 -19 -36q-60 -18 -143 -70q-97 -61 -132 -107q-11 -14 -6 -31.5t22 -23.5q3 -1 10.5 -4t11.5 -4q79 -30 111 -46v0l192 -193q16 -33 46 -112q4 -10 9 -21
q6 -17 23 -22q5 -1 10 -1q12 0 22 7q46 34 106 132q53 84 70 143q21 11 37 19q73 40 98 65q35 35 64.5 106.5t46.5 163.5q16 83 16 152q0 47 -6 75zM293 457q-21 -47 -46 -105q-29 14 -82 34q33 27 76 54q31 19 59 34q-4 -10 -7 -17zM568 113q-27 -43 -54 -76q-20 51 -34 82
q55 23 106 46q1 0 15 7q-14 -28 -33 -59zM888 725q0 -64 -14 -140q-16 -81 -42 -145q-24 -61 -50 -87v0q-17 -17 -82 -52q-58 -32 -144 -71q-56 -25 -126 -54l-126 126q27 65 54 126q39 86 71 144q35 64 52 82q19 19 59 38q43 21 100 36q113 32 216 32q17 0 31 -1
q1 -16 1 -34zM185 144q-29 0 -51.5 -17t-31.5 -44l-37 -125q-1 -2 -1 -5q0 -7 5 -12t12 -5q3 0 5 1l124 37q27 9 44.5 32t17.5 52q0 35 -25.5 60.5t-61.5 25.5zM594.5 466.5q18.5 -18.5 45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5
t18.5 -45.5z" />
<glyph glyph-name="select1" unicode="&#xe64a;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h504q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-504v752h752v-504q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v504q0 30 -21 51t-51 21zM634 314l103 103q9 9 4.5 20t-16.5 11h-241
q-15 0 -25.5 -10.5t-10.5 -25.5v-240q0 -13 11 -17.5t20 4.5l103 104l188 -188q11 -11 26 -11t25.5 10.5t10.5 25.5t-10 26z" />
<glyph glyph-name="apple1" unicode="&#xe68c;"
d="M902 547q-21 31 -49 52.5t-55.5 31t-46.5 13.5t-36 4q-35 4 -75 -7.5t-73 -25t-48 -13.5q-17 0 -75 22.5t-94 21.5q-65 -1 -121.5 -35.5t-90.5 -92.5q-32 -56 -40 -128t5.5 -142t39.5 -133.5t60 -112.5q20 -30 34.5 -48t36 -40t44.5 -32.5t47 -9.5q29 1 77.5 21.5
t89.5 20.5q40 0 88 -20.5t81 -20.5q25 1 47 11t42.5 30.5t34 37.5t33.5 47q44 64 71 146v0q-8 3 -17.5 8t-33 22.5t-40.5 38.5t-31.5 58t-14.5 80q-1 36 11 70t24.5 53.5t34 39t26.5 23t14 9.5zM716 896q-39 -2 -81 -23.5t-70 -54.5q-27 -30 -41.5 -73t-9.5 -85
q41 -3 80.5 17.5t68.5 55.5q28 34 43 77t10 86z" />
<glyph glyph-name="apple-o" unicode="&#xe6d4;"
d="M698 577h10h2l2 -1q30 -1 59 -13q13 -5 25 -12q-4 -5 -10 -11q-30 -37 -46 -79q-21 -52 -21 -110q1 -125 88 -210q16 -15 33 -27q-18 -40 -42 -74q-37 -55 -58 -74q-21 -20 -40 -21h-2q-17 0 -47 14q-64 27 -119 27q-56 0 -122 -28q-31 -13 -48 -14h-1q-15 0 -38 22
t-61 77q-66 95 -88 218q-11 65 -5 120q7 57 31 101q25 42 65 67q41 24 86 25h1q23 0 77 -21q58 -24 90 -24q29 0 87 23q63 25 92 25zM698 649q-41 0 -103 -24t-76 -24q-17 0 -74 22.5t-93 22.5h-2q-65 -1 -121.5 -35.5t-90.5 -92.5q-32 -57 -40 -128.5t5.5 -141.5
t39.5 -133.5t60 -112.5q20 -29 34 -47.5t35 -40t43.5 -32t45.5 -10.5h3q30 1 78.5 21.5t89.5 20.5q40 0 87 -20.5t79 -20.5h3q25 1 47 11t42.5 30.5t33.5 37.5t34 47q44 64 71 146v0q-8 3 -17.5 8t-33 22.5t-40.5 38.5t-31.5 58t-15.5 80q0 36 12 70t24.5 53.5t34 39t26 23
t14.5 9.5q-21 31 -49 52.5t-55.5 31t-46.5 13.5t-36 4q-9 1 -17 1zM716 896q-39 -2 -81 -23.5t-70 -54.5q-27 -30 -41.5 -73t-9.5 -85q41 -3 80.5 17.5t68.5 55.5q28 34 43 77t10 86z" />
<glyph glyph-name="android1" unicode="&#xe938;"
d="M888 575q-26 0 -44.5 -18.5t-18.5 -44.5v-247q0 -27 18.5 -45.5t44 -18.5t44 18.5t18.5 45.5v247q0 26 -18 44.5t-44 18.5zM136.5 575q-25.5 0 -44 -18.5t-18.5 -44.5v-247q0 -27 18.5 -45.5t44 -18.5t44 18.5t18.5 45.5v247q0 26 -18.5 44.5t-44 18.5zM236 573v-452
q0 -20 14.5 -34t34.5 -14h55v-138q0 -26 18.5 -44.5t44 -18.5t44 18.5t18.5 44.5v138h97v-138q0 -26 18 -44.5t44 -18.5t44 18.5t18 44.5v138h56q20 0 34 14t14 35v451h-554zM643 807l52 75q5 8 -2 13t-13 -3l-53 -78q-55 22 -115 22t-115 -22l-53 77q-6 9 -13 3
q-7 -4 -2 -13l52 -74q-62 -29 -101.5 -80t-44.5 -114h554q-5 63 -44.5 114t-101.5 80zM395 690q-13 0 -22 9t-9 22t9 22t22 9t22 -9t9 -22t-9 -22t-22 -9zM632.5 690q-12.5 0 -21.5 9t-9 22t9 22t21.5 9t21.5 -9t9 -22t-9 -22t-21.5 -9z" />
<glyph glyph-name="android" unicode="&#xe68d;"
d="M888.5 601.5q-24.5 24.5 -60.5 24.5q-6 0 -13 -1v1h-4q-9 53 -43 100q-32 44 -81 74l29 41v4v2l1 2q1 7 1 10q0 16 -10 26.5t-26 10.5q-18 0 -30 -18l-33 -48q-53 18 -107 18t-107 -18l-33 48q-12 18 -30 18q-16 0 -26 -10.5t-10 -26.5q0 -11 7 -19l26 -37
q-50 -30 -82 -75q-34 -47 -42 -100h-6v-1q-6 1 -12 1q-37 0 -61 -24t-24 -60v-269q0 -36 24 -60.5t60 -24.5q6 0 13 1v-107q0 -25 17.5 -42.5t42.5 -17.5h37v-67q0 -36 24 -60q24 -25 60.5 -25t60.5 24q24 25 24 61v66h73v-66q0 -36 25 -60q24 -25 60 -25t61 25q24 24 24 60
v67h36q25 0 43 17.5t18 42.5v105q6 -1 12 -1q36 0 61 24q24 25 24 61v268q1 36 -23.5 60.5zM209 272q0 -12 -12 -12t-12 12v269q0 12 12 12t12 -12v-269zM358 726q66 48 154 48t154 -48q56 -42 71 -100h-450q15 58 71 100zM403 -45q-1 -10 -12 -10q-12 0 -12 12v67h24v-69z
M646 -45q-2 -10 -12 -10q-13 0 -13 12v67h25v-69zM743 96h-461v457h461v-457zM840 272q0 -12 -12.5 -12t-12.5 12v269q0 12 12.5 12t12.5 -12v-269zM585 712q-16 0 -26 -10.5t-10 -26.5t10 -26t26 -10t26.5 10t10 26t-10.5 26.5t-26 10.5zM439.5 712q-15.5 0 -26 -10.5
t-10.5 -26.5t10.5 -26t26 -10t26 10t10.5 26t-10.5 26.5t-26 10.5z" />
<glyph glyph-name="aliwangwang-o1" unicode="&#xe68f;"
d="M985 560q-37 88 -106 157q-68 69 -158 106q-92 39 -192 39q-83 0 -160 -26q-54 25 -122 40t-105 17.5t-69 2.5h-12q-25 -1 -38.5 -21.5t-4.5 -43.5l84 -211q-69 -117 -69 -253q0 -101 39 -193q38 -88 106 -157q69 -68 158 -106q92 -39 193 -39q100 0 193 39
q88 37 157 106q68 68 106 157q39 92 39 193.5t-39 192.5zM919 202q-32 -75 -91 -134t-134 -91h-1q-78 -33 -164.5 -33t-164.5 33q-76 32 -135 91t-90 134v1q-34 78 -34 164q0 117 59 216l18 30l-83 210q40 -1 82 -7q91 -14 158 -45l26 -12l28 9q65 22 136 22q86 0 164 -33
q76 -32 135 -91t91 -134v0q33 -78 33 -165q0 -86 -33 -165zM511.5 577q-20.5 0 -34.5 -14t-14 -34v-72q0 -20 14 -34.5t34.5 -14.5t34.5 14.5t14 34.5v72q0 20 -14 34t-34.5 14zM740.5 577q-20.5 0 -34.5 -14t-14 -34v-72q0 -20 14 -34.5t34.5 -14.5t34.5 14.5t14 34.5v72
q0 20 -14 34t-34.5 14z" />
<glyph glyph-name="aliwangwang" unicode="&#xe68e;"
d="M985 560q-37 88 -106 157q-68 69 -158 106q-91 39 -192 39q-83 0 -160 -26q-54 25 -122 40t-105 17.5t-69 2.5h-12q-25 -1 -38.5 -21.5t-4.5 -43.5l84 -211q-69 -117 -69 -253q0 -101 39 -193q38 -88 106 -157q69 -68 158 -106q92 -39 193 -39t193 39q88 37 157 106
q68 68 106 157q39 92 39 193.5t-39 192.5zM560 457q0 -20 -14 -34.5t-34.5 -14.5t-34.5 14.5t-14 34.5v72q0 20 14 34t34.5 14t34.5 -14t14 -34v-72zM789 457q0 -20 -14 -34.5t-34.5 -14.5t-34.5 14.5t-14 34.5v72q0 20 14 34t34.5 14t34.5 -14t14 -34v-72z" />
<glyph glyph-name="pay-circle1" unicode="&#xe6a5;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM737 419q0 -14 -10.5 -23.5t-24.5 -9.5h-154v-64h122q14 0 24.5 -10.5t10.5 -24.5v-4q0 -14 -10.5 -23.5
t-24.5 -9.5h-122v-149q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5v149h-122q-15 0 -24.5 9.5t-9.5 23.5v4q0 14 10 24.5t24 10.5h122v64h-154q-15 0 -25 10t-10 24v3q0 14 10 24.5t25 10.5h166l-2 1l-118 118q-11 11 -11 26t10.5 25.5t25.5 10.5t26 -10l93 -93
l92 92q11 11 25.5 11t25.5 -10.5t10.5 -25.5t-10.5 -25l-118 -118q-1 -1 -2 -1h167q14 0 24.5 -11t10.5 -25v-4z" />
<glyph glyph-name="pay-circle-o1" unicode="&#xe6a6;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 35q-79 33 -140 94t-94 140q-35 81 -35 171t35 171
q33 79 94 140t140 94q81 35 171 35t171 -35q79 -33 140 -94t94 -140q35 -81 35 -171t-35 -171q-33 -79 -94 -140zM702 459h-167q1 0 2 1l118 118q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -11l-92 -92l-93 93q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -26l118 -118l2 -1
h-166q-14 0 -24.5 -10.5t-10.5 -24.5v-3q0 -14 10 -24t25 -10h154v-64h-123q-13 0 -23 -10.5t-10 -24.5v-4q0 -14 9.5 -23.5t23.5 -9.5h123v-149q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v149h122q14 0 24.5 9.5t10.5 23.5v4q0 14 -10.5 24.5t-24.5 10.5h-122v64
h154q14 0 24.5 9.5t10.5 23.5v4q0 14 -10.5 25t-24.5 11z" />
<glyph glyph-name="poweroff" unicode="&#xe6d5;"
d="M512 512q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5zM512 -128q-104 0 -199 40q-92 39 -163 110t-110 163q-40 95 -40 199q0 123 55 231q53 105 147 177q12 9 27 7t24 -14t7 -27t-14 -24
q-81 -61 -127 -151q-47 -94 -47 -199q0 -90 35 -171q33 -79 94 -140t140 -95q81 -34 171 -34t171 35q79 33 140 94t95 140q34 81 34 171q0 105 -47 199q-46 90 -127 151q-12 9 -14 24t7 27t24 14t27 -7q94 -72 147 -177q55 -109 55 -231q0 -104 -40 -200q-39 -91 -110 -162
t-163 -110q-95 -40 -199 -40z" />
<glyph glyph-name="trademark" unicode="&#xe651;"
d="M666.5 397q46.5 43 46.5 115q0 37 -14 69q-14 30 -39 51q-25 19 -59 27.5t-125 8.5h-113v-578h65v264h23l194 -264h82l-196 264q89 0 135.5 43zM516 420h-88v182h91q66 0 96 -22q31 -22 31 -69.5t-32 -69.5q-31 -22 -98 -21zM512 896q-139 0 -257 -68.5t-186.5 -186.5
t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="find" unicode="&#xe6db;"
d="M521 512q-58 4 -99.5 -37.5t-37.5 -99.5l-98 -217l217 98q58 -4 99.5 37.5t37.5 99.5l98 217zM551.5 344.5q-16.5 -16.5 -39.5 -16.5t-39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5zM512 896q-139 0 -257 -68.5t-186.5 -186.5
t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="copyright" unicode="&#xe6de;"
d="M518 176q-79 0 -121 56q-42 53 -42 150q0 96 43 152q44 58 121 58q63 0 101 -29q38 -31 49 -91h80q-14 96 -74 142q-59 46 -156 46q-119 0 -185 -83q-62 -75 -62 -195q0 -121 62 -195q65 -79 184 -79q96 0 156 51q59 50 78 153h-81q-19 -136 -153 -136zM512 896
q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="sound" unicode="&#xe6e9;"
d="M464 731l-233 -155h-166q-27 0 -46 -21t-19 -51v-240q0 -30 19 -51t46 -21h166l233 -155q23 -15 39.5 -5t16.5 40v624q0 30 -16.5 40t-39.5 -5zM448 134l-191 130h-185v240h185l191 127v-497zM640 232q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5
q93 0 158.5 65.5t65.5 158.5t-65.5 158.5t-158.5 65.5q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q63 0 107.5 -44.5t44.5 -107.5t-44.5 -107.5t-107.5 -44.5zM640 768q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q129 0 220.5 -91.5t91.5 -220.5
t-91.5 -220.5t-220.5 -91.5q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5z" />
<glyph glyph-name="earth" unicode="&#xe6f1;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM394 808q-46 -39 -80 -104q-31 16 -59 36h-2q65 47 141 68zM198 692q40 -31 87 -54q-35 -94 -41 -204h-169
q17 150 123 258zM72 362h170q4 -126 43 -232q-46 -23 -87 -54q-56 56 -88.5 130t-37.5 156zM253 28h2q28 20 59 36q35 -65 80 -104q-76 21 -141 68zM481 -10q-59 19 -103 100q50 16 103 20v-120zM481 182q-67 -4 -132 -25q-32 92 -35 205h167v-180zM481 434h-165
q6 97 33 177q64 -21 132 -25v-152v0zM481 658q-53 4 -103 20q44 82 103 100v-120zM949 434h-169q-6 110 -41 204q46 23 87 54q106 -108 123 -258zM771 740h-2q-28 -20 -59 -36q-35 65 -81 104q77 -21 142 -68zM553 774q53 -22 93 -96q-45 -15 -93 -19v115zM553 587
q62 4 122 24q27 -80 33 -177h-155v153zM553 362h157q-3 -113 -35 -205q-59 19 -122 24v181zM553 -6v115q48 -4 93 -19q-40 -74 -93 -96zM630 -40q46 39 80 104q31 -16 59 -36h2q-65 -47 -141 -68zM826 76q-40 31 -87 54q39 106 43 232h169q-4 -82 -36.5 -156t-88.5 -130z
" />
<glyph glyph-name="wifi" unicode="&#xe6d6;"
d="M964 576q-92 93 -212 140.5t-241 47.5t-240.5 -47.5t-212.5 -140.5q-10 -10 -10 -25t10.5 -25.5t25.5 -10.5t25 11q82 81 188 123.5t214 42.5t214 -42.5t188 -123.5q10 -11 25 -11t25.5 10.5t10.5 25.5t-10 25zM194 422q-10 -11 -10 -26t10.5 -25.5t25.5 -10.5t25 11
q54 54 124.5 82t141.5 28t141.5 -28t124.5 -82q10 -11 25 -11t25.5 10.5t10.5 25.5t-10 26q-86 86 -201.5 116.5t-231 0t-201.5 -116.5zM693 258v0q-75 75 -181 75t-181 -75q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11q54 54 130 54t130 -54v0l3 -3q10 -11 25 -11
t25.5 11t10.5 25.5t-10 25.5q-3 2 -3 3zM512 54zM458 54q0 -22 16 -38t38 -16t38 16t16 38t-16 38t-38 16t-38 -16t-16 -38z" />
<glyph glyph-name="sync" unicode="&#xe6da;"
d="M989 384q-15 1 -26 -8.5t-12 -24.5q-7 -83 -42.5 -157.5t-96.5 -131.5t-138.5 -87.5t-161.5 -30.5q-133 0 -243 73q-97 64 -149 167h100q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5v-184q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v86q59 -100 157 -165q128 -85 283 -85q98 0 188 35.5t161 101.5t112.5 153t48.5 183q2 15 -8 26.5t-25 12.5zM988 768q-15 0 -25.5 -10.5t-10.5 -25.5v-86q-59 100 -157 165q-128 85 -283 85q-98 0 -188 -35.5t-161 -101.5t-112.5 -153t-49.5 -183
q-1 -15 9 -26.5t25 -12.5h2q14 0 24.5 9.5t11.5 23.5q6 83 42 157.5t97 131.5t138.5 87.5t161.5 30.5q133 0 243 -73q97 -64 149 -167h-100q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5v184q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="login" unicode="&#xe657;"
d="M443 274q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l136 135q10 11 10 26t-10 26l-136 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l74 -74h-481q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h481zM984 583q-39 92 -110 163t-163 110q-95 40 -199 40
q-123 0 -231 -55q-105 -53 -177 -147q-9 -12 -7 -27t14 -24t27 -7t24 14q61 81 151 127q94 47 199 47q90 0 171 -35q79 -33 140 -94t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140t-140 -94q-81 -35 -171 -35q-105 0 -199 47q-90 46 -151 127q-9 12 -24 14t-27 -7
t-14 -24t7 -27q72 -94 177 -147q108 -55 231 -55q104 0 199 40q92 39 163 110t110 163q40 95 40 199t-40 199z" />
<glyph glyph-name="logout" unicode="&#xe65a;"
d="M772 29q-116 -85 -260 -85q-90 0 -171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35q144 0 260 -85q12 -9 26.5 -6.5t23.5 14.5t7 26.5t-14 23.5q-135 99 -303 99q-104 0 -199 -40q-92 -39 -163 -110t-110 -163q-40 -95 -40 -199
t40 -199q39 -92 110 -163t163 -110q95 -40 199 -40q168 0 303 99q12 9 14 23.5t-6.5 26.5t-23.5 14.5t-27 -6.5zM1014 410l-136 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l74 -74h-481q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h481l-74 -74
q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l136 135q10 11 10 26t-10 26z" />
<glyph glyph-name="reload1" unicode="&#xe616;"
d="M954 392q-2 15 -14.5 23.5t-27 6t-23 -14.5t-6.5 -27q5 -28 5 -60q0 -76 -28.5 -144.5t-81.5 -121.5t-122 -81.5t-144 -28.5t-144 28.5t-122 81.5t-81.5 122t-28.5 144t28.5 144t81.5 122t122 81.5t144 28.5h13l-82 -82q-11 -11 -11 -25.5t10.5 -25.5t25.5 -11t26 11
l135 136q11 10 11 25t-11 26l-135 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -25l66 -67q-89 -1 -171 -35q-81 -34 -143 -96t-96 -143q-35 -83 -35 -174t35 -174q34 -81 96 -143t143 -96q83 -35 174 -35t174 35q81 34 143 96t96 142q35 83 35 175q0 37 -6 72z" />
<glyph glyph-name="message1" unicode="&#xe6ab;"
d="M292 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM732 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM512 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM983 604q-39 86 -110 153
q-71 66 -163 102q-94 37 -198 37t-198 -37q-92 -36 -163 -102q-71 -67 -110 -153q-41 -90 -41 -187q0 -88 33 -169.5t94 -147.5l23 -196q3 -19 20 -28q7 -4 16 -4t18 5l148 84q78 -24 160 -24q103 0 198 37q92 37 163 103t110 152q41 89 41 188q0 97 -41 187zM918 259
q-33 -73 -94 -130q-61 -56 -140 -87q-82 -33 -172 -33q-79 0 -152 25q-16 5 -30 -3l-115 -65l-18 155q-1 12 -10 21q-56 56 -85.5 127t-29.5 148q0 82 34 157q33 73 94 130t140 88q82 32 172 32t172 -32q79 -32 140 -88.5t94 -129.5q34 -75 34 -157.5t-34 -157.5z" />
<glyph glyph-name="shake" unicode="&#xe94f;"
d="M760 896h-496q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h464q33 0 68.5 22t35.5 50v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM760 65h-496v704h496v-704zM80 870
l-44 -10q-19 -12 -29 -33t-6 -44l127 -832l-75 853q-3 39 27 66zM130 886q-20 -11 -31.5 -31t-10.5 -44l54 -839v856q0 39 32 63zM988 860l-44 10q30 -26 27 -66l-75 -853l127 832q4 23 -6 44t-29 33zM936 812q1 23 -10.5 43t-31.5 31l-44 6q32 -25 32 -64v-856z" />
<glyph glyph-name="API" unicode="&#xe951;"
d="M952 722l-183 106q-8 4 -16.5 4t-15.5 -4l-183 -106q-16 -9 -16 -27v-9l-10 6q-7 4 -15.5 4t-16.5 -4l-10 -6v9q0 18 -16 27l-183 106q-8 4 -16 4t-16 -4l-183 -106q-16 -9 -16 -27v-212q0 -18 16 -27l183 -106q8 -4 16 -4t16 4l10 6v-9q0 -18 16 -27l6 -4l-6 -4
q-16 -9 -16 -27v-212q0 -18 16 -27l183 -106q8 -4 16 -4t16 4l183 106q16 9 16 27v212q0 18 -16 27l-6 4l6 4q16 9 16 27v9l10 -6q7 -4 15.5 -4t16.5 4l183 106q16 9 16 27v212q0 18 -16 27zM271 424l-143 82v166l143 82l143 -82v-28l-101 -58q-16 -9 -16 -27v-120zM414 591
v-85l-71 -40v84zM655 261v-165l-143 -82l-143 82v165l23 13l104 -60q8 -4 16 -4t16 4l104 60zM438 301l74 43l74 -43l-74 -43zM681 355l-23 -13l-130 76q-8 4 -16 4t-16 -4l-130 -76l-23 13v28l127 73q16 9 16 27v150l26 15l26 -15v-150q0 -18 16 -27l127 -74v-27zM681 466
l-71 40v86l71 -41v-85zM896 506l-143 -82l-26 15v120q0 18 -16 27l-101 58v28l143 82l143 -82v-166z" />
<glyph glyph-name="appstore-o" unicode="&#xe695;"
d="M398 760v-262h-262v262h262zM398 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 760v-262h-262v262h262zM888 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262
q0 30 -21 51t-51 21zM398 270v-262h-262v262h262zM398 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 270v-262h-262v262h262zM888 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21
t21 51v262q0 30 -21 51t-51 21z" />
<glyph glyph-name="appstore1" unicode="&#xe696;"
d="M398 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM398 342h-262q-30 0 -51 -21t-21 -51v-262
q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21z" />
<glyph glyph-name="scan1" unicode="&#xe697;"
d="M768 200v368q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h368q30 0 51 21t21 51zM696 200h-368v368h368v-368zM100 572q15 0 25.5 10.5t10.5 25.5v152h152q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-152q-30 0 -51 -21t-21 -51
v-152q0 -15 10.5 -25.5t25.5 -10.5zM288 8h-152v152q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-152q0 -30 21 -51t51 -21h152q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM888 832h-152q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h152v-152
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v152q0 30 -21 51t-51 21zM924 196q-15 0 -25.5 -10.5t-10.5 -25.5v-152h-152q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h152q30 0 51 21t21 51v152q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="exception1" unicode="&#xe665;"
d="M888 832h-753q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h277q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-277v752h753v-752h-84q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h84q30 0 51 21t21 51v752q0 30 -21 51t-51 21zM640 -28
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM676 512q-15 0 -25.5 -10.5t-10.5 -25.5v-376q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v376q0 15 -10.5 25.5t-25.5 10.5zM540 640h-312q-15 0 -25.5 -10.5
t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 448h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 256h-184q-15 0 -25.5 -10.5t-10.5 -25.5
t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="contacts" unicode="&#xe6f0;"
d="M256 204q0 15 -10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h120q15 0 25.5 10.5t10.5 25.5zM100 526h120q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM888 832
h-688q-30 0 -51 -21t-21 -51v-56q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v56h688v-752h-688v54v0v1v1q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-2v0v-54q0 -30 21 -51t51 -21h688q30 0 51 21t21 51v752q0 30 -21 51t-51 21zM100 347h120
q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM575.5 312q-67.5 0 -115.5 48t-48 116t48 116t115.5 48t116 -48t48.5 -116t-48.5 -116t-116 -48zM576 568q-38 0 -65 -27t-27 -65t27 -65t65 -27t65 27t27 65
t-27 65t-65 27zM764 128q-13 0 -23 8t-12 21q-11 55 -54 91t-99.5 36t-99.5 -36t-54 -91q-2 -13 -12 -21t-23 -8q-3 0 -7 1q-14 2 -22.5 14.5t-5.5 27.5q15 80 78 132.5t145.5 52.5t145.5 -52.5t79 -132.5q2 -15 -6 -27.5t-23 -14.5q-3 -1 -7 -1z" />
<glyph glyph-name="solution1" unicode="&#xe66f;"
d="M959 -21q-10 50 -41.5 88t-77.5 56q28 18 43.5 47t15.5 63q0 55 -38.5 93.5t-93 38.5t-93.5 -38.5t-39 -93.5q0 -33 16 -62.5t44 -47.5q-46 -18 -77.5 -56t-41.5 -88q-3 -14 5.5 -26.5t23.5 -15.5t27 5.5t15 23.5q8 43 42 71t78.5 28t78.5 -28t42 -71q3 -13 13 -21.5
t22 -8.5q4 0 7 1q15 3 23.5 15.5t5.5 26.5zM767.5 293q24.5 0 42.5 -17.5t18 -42.5t-18 -42.5t-42.5 -17.5t-42 17.5t-17.5 42.5t17.5 42.5t42 17.5zM888 832h-752q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h276q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5
h-276v752h752v-340q0 -15 11 -25.5t25.5 -10.5t25 10.5t10.5 25.5v340q0 30 -21 51t-51 21zM228 568h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-312q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5zM412 448h-184q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5
h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 256h-184q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="fork" unicode="&#xe6f2;"
d="M896 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -43 26 -77t66 -46v-127l-220 -221l-220 221v127q40 12 66 46t26 77q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -43 25.5 -77t66.5 -46v-157h-1l257 -257v-108q-40 -12 -66 -46t-26 -77
q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 43 -26 77t-66 46v109l256 256v0v157q40 12 66 46t26 77zM200 768q0 23 16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5zM568 0q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5
t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5zM768 712q-23 0 -39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5z" />
<glyph glyph-name="edit1" unicode="&#xe692;"
d="M924 8h-824q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h824q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM296 126l236 100q5 2 10 6l397 398q21 21 21 51t-21 51l-79 79q-21 21 -51 21t-51 -21l-397 -397q-5 -5 -7 -11l-100 -235q-8 -20 7 -35t35 -7z
M809 760v0l79 -79l-62 -62l-79 79zM417 368l279 279l79 -79l-279 -279l-137 -58z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-49 141 512 512" style="enable-background:new -49 141 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D80027;}
.st1{fill:#FFDA44;}
</style>
<rect x="-49" y="141" class="st0" width="512" height="512"/>
<g>
<polygon class="st1" points="91.1,296.8 113.2,364.8 184.7,364.8 126.9,406.9 149,474.9 91.1,432.9 33.2,474.9 55.4,406.9
-2.5,364.8 69,364.8 "/>
<polygon class="st1" points="254.5,537.5 237.6,516.7 212.6,526.4 227.1,503.9 210.2,483 236.1,489.9 250.7,467.4 252.1,494.2
278.1,501.1 253,510.7 "/>
<polygon class="st1" points="288.1,476.5 296.1,450.9 274.2,435.4 301,435 308.9,409.4 317.6,434.8 344.4,434.5 322.9,450.5
331.5,475.9 309.6,460.4 "/>
<polygon class="st1" points="333.4,328.9 321.6,353 340.8,371.7 314.3,367.9 302.5,391.9 297.9,365.5 271.3,361.7 295.1,349.2
290.5,322.7 309.7,341.4 "/>
<polygon class="st1" points="255.2,255.9 253.2,282.6 278.1,292.7 252,299.1 250.1,325.9 236,303.1 209.9,309.5 227.2,289
213,266.3 237.9,276.4 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

-65
View File
@@ -1,65 +0,0 @@
@font-face {font-family: "antdadmin";
src: url('iconfont.eot?t=1494298210172'); /* IE9*/
src: url('iconfont.eot?t=1494298210172#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff?t=1494298210172') format('woff'), /* chrome, firefox */
url('iconfont.ttf?t=1494298210172') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('iconfont.svg?t=1494298210172#antdadmin') format('svg'); /* iOS 4.1- */
}
.antdadmin {
font-family:"antdadmin" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-home:before { content: "\e600"; }
.icon-user:before { content: "\e601"; }
.icon-timelimit:before { content: "\e602"; }
.icon-shopcart:before { content: "\e603"; }
.icon-message:before { content: "\e604"; }
.icon-remind:before { content: "\e605"; }
.icon-service:before { content: "\e606"; }
.icon-shop:before { content: "\e607"; }
.icon-sweep:before { content: "\e609"; }
.icon-express:before { content: "\e60a"; }
.icon-payment:before { content: "\e60b"; }
.icon-search:before { content: "\e60c"; }
.icon-feedback:before { content: "\e60d"; }
.icon-pencil:before { content: "\e60e"; }
.icon-setting:before { content: "\e60f"; }
.icon-refund:before { content: "\e610"; }
.icon-delete:before { content: "\e611"; }
.icon-star:before { content: "\e612"; }
.icon-heart:before { content: "\e613"; }
.icon-share:before { content: "\e615"; }
.icon-location:before { content: "\e616"; }
.icon-position:before { content: "\e617"; }
.icon-console:before { content: "\e618"; }
.icon-mobile:before { content: "\e61a"; }
Binary file not shown.
File diff suppressed because one or more lines are too long
-163
View File
@@ -1,163 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Tue May 9 10:50:10 2017
By admin
</metadata>
<defs>
<font id="antdadmin" horiz-adv-x="1024" >
<font-face
font-family="antdadmin"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="44 -69 970.781 847"
underline-thickness="0"
underline-position="0"
unicode-range="U+0078-E61A"
/>
<missing-glyph
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="home" unicode="&#xe600;"
d="M731 -52h-436q-72 0 -97.5 28.5t-25.5 104.5v457q0 10 7.5 17.5t18 7.5t18 -7.5t7.5 -17.5v-457q0 -56 10.5 -68.5t61.5 -12.5h436q52 0 66.5 13.5t14.5 67.5v457q0 10 7.5 17.5t18.5 7.5t18.5 -7.5t7.5 -17.5v-457q0 -75 -30 -104t-103 -29zM620 -39q-5 0 -9 4t-4 9v243
q0 18 -5.5 22t-27.5 4h-123q-8 0 -11.5 -0.5t-7 -0.5t-4 -3t-1 -4t0 -7.5t0.5 -10.5v-243q0 -5 -3.5 -9t-9 -4t-9.5 4t-4 9v243q0 32 10 42t39 10h123q31 0 45 -10.5t14 -41.5v-243q0 -5 -4 -9t-9 -4zM90 461q-13 0 -20 10q-7 9 -5.5 19.5t10.5 16.5l422 318q9 7 19.5 5.5
t17 -10t5 -19t-10.5 -16.5l-423 -319q-6 -5 -15 -5zM936 461q-9 0 -16 5l-423 319q-8 6 -9.5 16.5t5 19t17 10t18.5 -5.5l423 -318q8 -6 9.5 -16.5t-4.5 -19.5q-8 -10 -20 -10zM287 345q-5 0 -9 4t-4 9v146q0 8 3 10l167 129q10 8 17 -2q9 -12 0 -18l-161 -125v-140
q0 -5 -4 -9t-9 -4zM287 281q-5 0 -9 4t-4 9v13q0 5 4 9t9 4t9 -4t4 -9v-13q0 -5 -4 -9t-9 -4z" />
<glyph glyph-name="user" unicode="&#xe601;"
d="M513 -65h-298q-34 0 -59 24.5t-25 57.5q0 75 65 167.5t144 130.5q10 4 20 0.5t14.5 -13t1 -20t-13.5 -14.5q-68 -33 -123.5 -113.5t-55.5 -137.5q0 -11 10 -20.5t22 -9.5h298q11 0 18.5 -7.5t7.5 -18.5t-7.5 -18.5t-18.5 -7.5zM811 -65h-298q-11 0 -18.5 7.5t-7.5 18.5
t7.5 18.5t18.5 7.5h298q12 0 22 9.5t10 20.5q0 57 -55.5 137.5t-124.5 113.5q-9 4 -13 14.5t1 20t15 13t20 -0.5q79 -38 144 -130.5t65 -167.5q0 -33 -25.5 -57.5t-58.5 -24.5zM516.5 318q-105.5 0 -180 75t-74.5 180.5t74.5 180t180 74.5t180.5 -74.5t75 -180t-75 -180.5
t-180.5 -75zM517 777q-84 0 -143.5 -60t-59.5 -144t59.5 -143.5t143.5 -59.5t143.5 59.5t59.5 143.5t-59.5 144t-143.5 60zM370.5 560q-5.5 0 -9 4t-3.5 9q0 66 46.5 113t112.5 47q5 0 9 -4t4 -9.5t-4 -9t-9 -3.5q-55 0 -94.5 -39.5t-39.5 -94.5q0 -5 -3.5 -9t-9 -4z
M397 520.5q0 -5.5 -3.5 -9t-9 -3.5t-9.5 3.5t-4 9t4 9.5t9.5 4t9 -4t3.5 -9.5z" />
<glyph glyph-name="timelimit" unicode="&#xe602;"
d="M457 362l2 -2q1 0 1 -1q17 -21 44 -21q24 0 40.5 16.5t16.5 40.5q0 25 -19 42q-3 4 -5 5l-230 175q-11 9 -23 0q-6 -5 -7 -13t4 -14zM511 833q-12 0 -20 -8t-8 -19v-178q0 -11 8 -19t19.5 -8t19.5 8t8 19v149q99 -7 182.5 -61.5t133 -142t49.5 -187.5q0 -106 -52.5 -196
t-143 -142.5t-196.5 -52.5t-196.5 52.5t-143 142.5t-52.5 197q0 83 33.5 159t94.5 131q9 8 9.5 19t-7 19.5t-19 9t-20.5 -6.5q-69 -64 -107.5 -150.5t-38.5 -180.5q0 -91 35.5 -174t95.5 -142.5t142.5 -95t173.5 -35.5t173.5 35.5t142.5 95t95.5 142.5t35.5 173t-36.5 172.5
t-96.5 142.5t-142.5 96t-171.5 36zM607 54q2 0 4 1q109 32 177.5 125t68.5 207q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9q0 -105 -63.5 -190.5t-163.5 -115.5q-6 -2 -8.5 -7t-0.5 -10q3 -10 13 -10v0zM511 66q-6 0 -10 -4t-3.5 -10t4.5 -9.5t9 -3.5h1q23 1 45 5q6 1 9 5.5t2 10
t-5.5 9t-10.5 2.5q-20 -4 -41 -5z" />
<glyph glyph-name="shopcart" unicode="&#xe603;"
d="M879 167h-490q-63 0 -76 70l-63 475l-1 9q-2 21 -3.5 33t-10 32.5t-22 31.5t-40.5 20t-64 9q-12 0 -20 -8t-8 -19.5t8 -20t20 -8.5q29 0 45.5 -4t24.5 -16t10.5 -22t3.5 -32l1 -11l63 -477v-1q11 -55 46 -86t86 -31h490q12 0 20 8t8 19.5t-8 20t-20 8.5zM948 709
q-28 31 -76 31h-538q-12 0 -20 -8.5t-8 -20t8 -19.5t20 -8h538q23 0 34 -12t8 -37l-42 -249q-3 -19 -17.5 -37t-41.5 -23l-411 -27q-12 0 -19.5 -9t-6.5 -20t9 -19t19 -8h2l414 28q45 7 73 37.5t34 68.5l42 250l1 1q5 50 -22 81zM820.5 434.5q-5.5 0.5 -10.5 -3t-5 -8.5
q-1 -5 -8 -22q-5 -12 8 -18q2 -1 5 -1q9 0 13 9q8 19 9 28q1 5 -2.5 10t-9 5.5zM844 487l15 90q3 29 -12 47q-16 18 -46 18h-90q-6 0 -10 -4t-4 -10t4 -10t10 -4h90q17 0 25 -9q7 -8 5 -24l-15 -90q-1 -5 2.5 -10t9.5 -6h2q12 0 14 12zM367 83q-27 0 -45.5 -19t-18.5 -46
t18.5 -45.5t45.5 -18.5t46 18.5t19 45.5t-19 46t-46 19zM814.5 83q-26.5 0 -45.5 -19t-19 -46t19 -45.5t45.5 -18.5t45.5 18.5t19 45.5t-19 46t-45.5 19z" />
<glyph glyph-name="message" unicode="&#xe604;"
d="M320 -69q-11 0 -19 7q-14 13 -7 32l32 76q9 19 10 31q-12 19 4 34q8 8 19.5 8t19.5 -8q27 -27 -2 -88l-1 -2l126 69q6 4 13 4q106 0 196.5 46t142.5 125.5t52 172.5q0 87 -53.5 163.5t-144 122t-193.5 45.5q-101 0 -190.5 -45t-143.5 -121.5t-57 -164.5q-2 -77 36 -147
t110 -121q10 -7 11.5 -18t-5 -20.5t-18 -11.5t-20.5 5q-83 59 -127.5 141t-41.5 173q3 103 64.5 192t163.5 141.5t218 52.5q119 0 222 -52.5t164 -142t61 -192.5q0 -107 -59 -198.5t-160 -145.5t-220 -56l-190 -103q-6 -4 -13 -4zM586 489h-250q-6 0 -10 4t-4 10t4 10t10 4
h250q6 0 10 -4t4 -10t-4 -10t-10 -4zM697 489h-42q-5 0 -9 4t-4 10t4 10t9 4h42q6 0 10 -4t4 -10t-4 -10t-10 -4zM503 350h-153q-6 0 -10 4.5t-4 10t4 9.5t10 4h153q5 0 9.5 -4t4.5 -9.5t-4.5 -10t-9.5 -4.5zM586 350h-28q-6 0 -10 4.5t-4 10t4 9.5t10 4h28q6 0 10 -4
t4 -9.5t-4 -10t-10 -4.5z" />
<glyph glyph-name="remind" unicode="&#xe605;"
d="M578 474h-240q-6 0 -10 4t-4 9.5t4 9.5t10 4h240q6 0 10 -4t4 -9.5t-4 -9.5t-10 -4zM685 474h-40q-6 0 -9.5 4t-3.5 9.5t3.5 9.5t9.5 4h40q6 0 9.5 -4t3.5 -9.5t-3.5 -9.5t-9.5 -4zM498 341h-147q-5 0 -9 3.5t-4 9t4 9.5t9 4h147q6 0 9.5 -4t3.5 -9.5t-3.5 -9t-9.5 -3.5z
M578 341h-26q-6 0 -10 3.5t-4 9t4 9.5t10 4h26q6 0 10 -4t4 -9.5t-4 -9t-10 -3.5zM274 167q-69 49 -105.5 116.5t-34.5 140.5q2 85 54 159t138.5 117t183.5 43q104 0 196 -49q-1 6 -1 12q0 23 8 45q-95 46 -203 46q-111 0 -209.5 -50.5t-158 -136t-62.5 -184.5
q-2 -87 40.5 -166.5t122.5 -136.5q9 -6 20 -4.5t17.5 10.5t4.5 20t-11 18zM836 579q51 -73 51 -154q0 -90 -50.5 -166.5t-137.5 -121t-189 -44.5q-7 0 -13 -3l-121 -66l1 1q28 59 2 85q-8 8 -19 8t-19 -8q-15 -15 -4 -33q0 -11 -9 -30l-31 -73q-7 -18 7 -30q8 -7 18 -7
q7 0 13 3l182 100q115 2 212.5 53.5t154 140t56.5 191.5q0 88 -48 168q-26 -13 -56 -14zM956 718.5q0 -46.5 -33 -79t-79.5 -32.5t-79 32.5t-32.5 79t32.5 79t79 32.5t79.5 -32.5t33 -79z" />
<glyph glyph-name="service" unicode="&#xe606;"
d="M512 756q-127 0 -225.5 -78t-127.5 -199q-4 0 -10.5 -1.5t-23.5 -9.5t-29.5 -19.5t-22 -33.5t-8.5 -49.5t13 -48.5t26.5 -31.5t31.5 -16.5t25.5 -7t11.5 -1q3 -1 6.5 -1t13 2.5t11.5 2.5q-26 61 -26 127q0 91 45 168t122 121.5t167.5 44.5t167.5 -44.5t121.5 -121.5
t44.5 -168q0 -109 -63.5 -196t-163.5 -120q-4 -2 -8 -1.5t-7 1.5l-3 1q-22 4 -50 -4q-10 -3 -15 -12t-4 -20q2 -25 23 -29q50 -8 61 15q1 2 2.5 6t3 6t3.5 4.5t5 3.5q76 26 134.5 82t87.5 132q4 0 11 1.5t25 8.5t32 17.5t25.5 31.5t12.5 47.5t-8 48t-23 32.5t-27.5 19
t-23.5 10l-10 2q-30 121 -128.5 199t-225.5 78v0zM512 111q-119 0 -203.5 84.5t-84.5 203t84.5 203t203.5 84.5t203 -84.5t84 -203t-84 -203t-203 -84.5zM511.5 630q-95.5 0 -163.5 -68t-68 -163.5t68 -163.5t163.5 -68t163.5 68t68 163.5t-68 163.5t-163.5 68zM515 204
q-46 0 -86 23q-38 22 -61 60q-8 12 4 19t20 -5q19 -31 51 -50q33 -19 72 -19t72 19q32 19 51 50q8 12 20 5t4 -19q-23 -38 -61 -60q-40 -23 -86 -23zM668 331q-5 0 -9 4q-10 9 -1 20q6 6 6 21q0 6 4 10t10 4t10 -4t4 -10q0 -26 -13 -41q-5 -4 -11 -4z" />
<glyph glyph-name="shop" unicode="&#xe607;"
d="M820.5 287q-10.5 0 -18.5 -8t-8 -18v-154q0 -25 -21.5 -47t-45.5 -22h-456q-23 0 -38.5 21t-15.5 48v154q0 10 -7.5 18t-18.5 8t-19 -8t-8 -18v-154q0 -47 30 -84.5t77 -37.5h456q46 0 83 37.5t37 84.5v154q0 10 -8 18t-18.5 8zM597 90q6 0 10 4t4 9.5t-4 9t-10 3.5h-39
q-5 0 -9 -3.5t-4 -9t4 -9.5t9 -4h39zM742 142v119q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9v-119q0 -11 -8 -18t-13 -8q-6 0 -10 -3.5t-4 -9t4 -9.5t10 -4q14 0 31 14.5t17 37.5zM824 780q-7 5 -16 5h-594q-9 0 -16 -5q-46 -35 -91 -129t-45 -163q0 -66 47 -122t115 -56q47 0 87 19.5
t64 52.5q25 -33 64.5 -51.5t79.5 -18.5t77.5 19t58.5 52q26 -29 63.5 -47t70.5 -24q16 -2 30 -2q56 0 92 36q45 46 44 125q0 58 -44.5 167t-86.5 142zM874 383q-27 -27 -77 -19q-35 6 -72 28.5t-49 54.5v155q0 11 -7.5 18.5t-18.5 7.5t-18.5 -7.5t-7.5 -18.5v-152
q-1 -1 -1 -3q-3 -37 -34.5 -59.5t-69.5 -22.5q-40 0 -75.5 24t-41.5 61q-1 2 -1 5v147q0 11 -8 18.5t-18.5 7.5t-18.5 -7.5t-8 -18.5v-159q-10 -35 -44.5 -57.5t-79.5 -22.5t-77 39.5t-32 85.5q0 55 36.5 133.5t71.5 111.5h575q32 -32 68.5 -124.5t36.5 -137.5
q0 -58 -29 -88zM440 628q-5 0 -9 -4t-4 -9v-40q0 -5 4 -9t9 -4t9 4t4 9v40q0 5 -4 9t-9 4z" />
<glyph glyph-name="sweep" unicode="&#xe609;"
d="M94 526q-12 0 -20.5 8.5t-8.5 20.5v164q0 48 34.5 78.5t87.5 30.5h166q12 0 20.5 -8.5t8.5 -20t-8.5 -20t-20.5 -8.5h-166q-26 0 -45.5 -13t-19.5 -39v-164q0 -12 -8 -20.5t-20 -8.5zM353 -65h-166q-50 0 -86 36t-36 86v166q0 12 8.5 20.5t20.5 8.5t20 -8.5t8 -20.5v-166
q0 -26 19.5 -45t45.5 -19h166q12 0 20.5 -8.5t8.5 -20.5t-8.5 -20.5t-20.5 -8.5v0zM849 -65h-179q-12 0 -20.5 8.5t-8.5 20.5t8.5 20.5t20.5 8.5h179q26 0 39 19t13 45v166q0 12 8 20.5t20 8.5t20.5 -8.5t8.5 -20.5v-166q0 -53 -30.5 -87.5t-78.5 -34.5v0zM929 526
q-12 0 -20 8.5t-8 20.5v164q0 52 -52 52h-179q-12 0 -20.5 8.5t-8.5 20t8.5 20t20.5 8.5h179q51 0 80 -29t29 -80v-164q0 -12 -8.5 -20.5t-20.5 -8.5zM785 367h-706q-6 0 -10 4.5t-4 10.5t4 10t10 4h706q6 0 10.5 -4t4.5 -10t-4.5 -10.5t-10.5 -4.5zM944 367h-101
q-6 0 -10 4.5t-4 10.5t4 10t10 4h101q6 0 10 -4t4 -10t-4 -10.5t-10 -4.5z" />
<glyph glyph-name="express" unicode="&#xe60a;"
d="M931.5 70q-10.5 0 -18.5 8t-8 19v572q0 29 -20.5 49.5t-49.5 20.5h-409q-29 0 -49.5 -20.5t-20.5 -49.5v-70q0 -20 -19 -25q-51 -15 -116.5 -43.5t-93.5 -59.5q-7 -9 -9 -26t0 -29v-4v-308q0 -11 -8 -18.5t-18.5 -7.5t-18.5 7.5t-8 18.5v307q-7 61 23 94q54 62 215 114
v50q0 51 36 87t87 36h409q51 0 87 -36t36 -87v-572q0 -11 -8 -19t-18.5 -8zM314 325h-105q-5 0 -9 4t-4 9t4 9t9 4h105q10 0 16 10t6 22v115q0 5 4 9t9.5 4t9 -4t3.5 -9v-115q0 -23 -13 -40.5t-35 -17.5zM169 325h-20q-5 0 -9 4t-4 9t4 9t9 4h20q6 0 9.5 -4t3.5 -9t-3.5 -9
t-9.5 -4zM309 -28q-48 0 -82 34t-34 82t34 82t82 34t82.5 -34t34.5 -82t-34.5 -82t-82.5 -34zM309.5 152q-26.5 0 -45 -19t-18.5 -45t18.5 -45t45 -19t45 19t18.5 45t-18.5 45t-45 19zM709.5 -28q-48.5 0 -82.5 34t-34 82t34 82t82.5 34t82.5 -34t34 -82t-34 -82t-82.5 -34z
M709.5 152q-26.5 0 -45 -19t-18.5 -45t18.5 -45t45 -19t45 19t18.5 45t-18.5 45t-45 19zM619 62h-210q-11 0 -18.5 7.5t-7.5 18.5t7.5 18.5t18.5 7.5h210q11 0 19 -7.5t8 -18.5t-8 -18.5t-19 -7.5z" />
<glyph glyph-name="payment" unicode="&#xe60b;"
d="M235 87q-21 0 -35.5 15.5t-14.5 37.5v227q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9v-227q0 -33 22.5 -56.5t54.5 -23.5q6 0 9.5 4t3.5 9.5t-3.5 9.5t-9.5 4zM300 87h-13q-6 0 -10 -4t-4 -9.5t4 -9.5t10 -4h13q6 0 9.5 4t3.5 9.5t-3.5 9.5t-9.5 4zM866 407h-54v122q0 30 -20.5 54.5
t-51.5 32.5q2 8 -1 15l-58 154q-3 10 -13.5 14.5t-20.5 1.5l-462 -173q-7 -2 -11 -8h-21q-38 0 -63 -26.5t-25 -64.5v-469q0 -39 25 -66t63 -27h561q39 0 68.5 27.5t29.5 65.5v107h54q38 0 65.5 27t27.5 65v55q0 38 -27.5 65.5t-65.5 27.5zM641 741l45 -121h-370zM759 60
q0 -16 -14 -28t-31 -12h-561q-16 0 -25.5 11.5t-9.5 28.5v469q0 16 9.5 27t25.5 11h561q17 0 31 -11.5t14 -26.5v-122h-81q-39 0 -66 -27.5t-27 -65.5v-55q0 -38 27 -65t66 -27h81v-107zM905 259q0 -16 -11.5 -27.5t-27.5 -11.5h-188q-17 0 -28.5 11.5t-11.5 27.5v55
q0 16 11.5 27.5t28.5 11.5h188q16 0 27.5 -11.5t11.5 -27.5v-55zM705.5 313q-10.5 0 -18 -7.5t-7.5 -18t7.5 -18t18 -7.5t18 7.5t7.5 18t-7.5 18t-18 7.5z" />
<glyph glyph-name="search" unicode="&#xe60c;"
d="M216 525q3 -2 8 -2q9 0 13 8q35 57 93.5 90.5t125.5 33.5q6 0 11 4.5t5 11.5t-5 11.5t-11 4.5q-75 0 -141.5 -37.5t-104.5 -102.5q-3 -6 -1.5 -12.5t7.5 -9.5zM196.5 478.5q-6.5 1.5 -12 -2t-6.5 -9.5q-8 -32 -8 -56q0 -7 4.5 -11.5t11.5 -4.5t11.5 4.5t4.5 11.5
q0 20 7 48q1 7 -2.5 12.5t-10 7zM947 20l-163 163l-1 1q65 99 65 217q0 107 -52.5 197.5t-143 143t-197 52.5t-197 -52.5t-143 -143t-52.5 -197t52.5 -197t143 -143t197.5 -52.5q116 0 213 63l-46 47q-78 -46 -167 -46t-165 44t-120 119.5t-44 164.5t44 165t120 120t165 44
t164.5 -44t119.5 -120t44 -165q0 -127 -86 -221l36 -37q2 -3 5 -5l163 -163q9 -10 22.5 -10t23 9.5t9.5 22.5t-10 23v0z" />
<glyph glyph-name="feedback" unicode="&#xe60d;"
d="M512 -63q-91 0 -174 35.5t-142.5 95.5t-95 142.5t-35.5 173.5q0 90 33.5 171.5t97 144.5t145 97t171.5 34q137 0 250 -77q92 -63 144 -161t52 -209q0 -16 -1 -30q-7 -115 -69 -211t-161.5 -151t-214.5 -55zM512 775q-79 0 -150 -29.5t-126.5 -85t-85.5 -127t-30 -149.5
q0 -106 52.5 -196t142.5 -142.5t197 -52.5q101 0 188 48t141 132t61 185q1 12 1 26q0 97 -45.5 183t-126.5 141q-99 67 -219 67zM177 344q-12 0 -13 13q-2 13 -2 27q0 6 4.5 10t10 4t9.5 -4t4 -10q0 -12 1 -25q1 -6 -3 -10t-9 -5h-2zM302 120q-4 0 -8 3q-84 63 -116 162
q-4 13 9 17.5t17 -8.5q29 -91 106 -148q12 -9 3 -20q-4 -6 -11 -6zM505.5 197q-11.5 0 -20 8.5t-8.5 19.5v136q0 12 8.5 20t19.5 8q49 0 79.5 31t30.5 79q0 46 -30 78t-74 32t-73.5 -31.5t-29.5 -77.5v-24q0 -12 -8.5 -20t-20 -8t-19.5 8t-8 20v24q0 69 46 116.5t113 47.5
t113.5 -47.5t46.5 -117.5q0 -63 -38.5 -108.5t-99.5 -54.5v-111q0 -11 -8 -19.5t-19.5 -8.5zM532 146q0 -11 -8 -19t-19 -8t-19 8t-8 19t8 19t19 8t19 -8t8 -19z" />
<glyph glyph-name="pencil" unicode="&#xe60e;"
d="M97 -61q-12 0 -20 8l-6 6q-11 11 -7 26q8 35 19 74.5t34.5 100t42.5 79.5l562 562q37 37 90 37q57 0 98 -41l6 -6q39 -39 42 -95q4 -58 -35 -97l-561 -561q-20 -20 -81.5 -42t-102 -32.5t-75.5 -18.5h-6v0zM812 776q-30 0 -51 -21l-561 -561q-28 -28 -72 -192
q166 41 194 69l562 562q20 21 18 54q-2 34 -26 58l-6 7q-24 24 -58 24zM860 579q-6 0 -10 4l-150 150q-10 10 -0.5 20t19.5 0l151 -150q10 -10 0 -20q-4 -4 -10 -4zM350.5 69q-5.5 0 -9.5 4l-151 151q-10 10 0 20t20 0l151 -151q9 -10 0 -20q-5 -4 -10.5 -4zM240.5 -2
q-5.5 0 -9.5 4l-97 96q-10 10 0 20t20 0l96 -97q10 -9 0 -19q-4 -4 -9.5 -4zM258 162q-6 0 -10 4q-10 10 0 20l417 417q10 10 20 0t0 -20l-417 -417q-4 -4 -10 -4zM715 619q-6 0 -10 4q-10 10 0 20l52 52q10 10 20 0t0 -20l-52 -52q-4 -4 -10 -4zM304.5 116q-5.5 0 -10.5 4
q-9 10 0 20l510 509q10 10 19.5 0t0.5 -20l-510 -509q-4 -4 -9.5 -4z" />
<glyph glyph-name="setting" unicode="&#xe60f;"
d="M507.5 258q-52.5 0 -89.5 37t-37 89t37 89t89.5 37t89.5 -37t37 -89t-37 -89t-89.5 -37zM507.5 456q-29.5 0 -50.5 -21t-21 -50.5t21 -50.5t50.5 -21t50.5 21t21 50.5t-21 50.5t-50.5 21zM511 -63h-2q-38 0 -69 25.5t-43 65.5q-32 10 -62 26q-32 -18 -66 -18
q-45 0 -75 30l-2 2q-26 26 -30 66t16 77q-12 23 -24 63q-40 12 -64 41.5t-24 67.5v2q0 37 24 67.5t64 42.5q11 38 25 65q-20 36 -16.5 74.5t29.5 64.5l1 2q31 32 79 32q34 0 65 -17q28 14 58 24q10 40 42 65.5t72 25.5h2q40 0 70 -25.5t40 -65.5q30 -10 59 -25q29 18 63 18
q48 0 81 -34l2 -1q28 -28 31.5 -67.5t-17.5 -74.5q18 -36 26 -59q40 -9 66.5 -40.5t26.5 -71.5v-2q0 -40 -26.5 -71.5t-66.5 -40.5q-8 -24 -25 -56q21 -35 17 -76t-33 -69l-2 -3q-33 -33 -77 -33v0q-32 0 -64 19q-28 -15 -63 -26q-11 -40 -41 -65t-67 -25zM334 113
q7 0 13 -4q38 -22 80 -33q17 -4 20 -22q4 -26 22 -44t40 -18h2q23 0 38.5 18.5t18.5 43.5q3 18 21 22q42 12 81 34q16 10 31 -2q21 -17 45 -17v0q22 0 38 16l2 1q17 17 17 42.5t-16 45.5q-12 14 -3 31q22 39 32 75q5 19 26 21q26 2 44 19t18 41v2q0 24 -18 41t-44 20
q-20 1 -25 20q-10 38 -33 78q-10 16 2 31q17 21 17.5 44t-15.5 40l-2 1q-18 18 -43 18t-45 -16q-14 -12 -31 -3q-37 22 -78 33q-18 5 -20 24q-2 26 -18.5 43t-39.5 17h-2q-24 0 -42 -17.5t-21 -43.5q-2 -18 -20 -23q-40 -11 -76 -32q-16 -9 -30 2q-22 16 -48 16
q-25 0 -40 -16l-2 -1q-15 -18 -13.5 -41t16.5 -43q10 -15 1 -30q-21 -36 -33 -82q-5 -17 -21 -20q-26 -5 -42.5 -22t-16.5 -38v-2q0 -21 16.5 -38t42.5 -21q17 -3 22 -20q11 -45 32 -80q9 -15 -2 -30q-15 -22 -15 -47t15 -40l2 -3q13 -13 35 -13q25 0 48 17q8 5 17 5z
M742 460q-9 0 -13 9q-26 68 -87 110t-134 42q-6 0 -10 4t-4 9.5t4 9.5t10 4v0q82 0 150 -46.5t97 -122.5q5 -13 -8 -18q-2 -1 -5 -1zM278 262q-8 0 -12 6q-3 5 -6 14q-3 8 -4 12q-5 13 7.5 18t17.5 -8q2 -6 4.5 -12.5t4.5 -9.5q7 -11 -5 -18q-3 -2 -7 -2zM502 125v0
q-58 0 -111 24.5t-91 69.5q-9 10 1.5 19t19.5 -2q34 -40 81.5 -62t99.5 -22q6 0 10 -4t4 -9.5t-4 -9.5t-10 -4z" />
<glyph glyph-name="refund" unicode="&#xe610;"
d="M848 379q0 -6 4 -9.5t9.5 -3.5t9 3.5t3.5 9.5q0 110 -67 198t-173 117q-13 4 -16.5 -9t9.5 -16q98 -27 159.5 -108t61.5 -182zM547 680q9 0 17 -1h1q5 0 9 3.5t4 9t-3.5 9.5t-8.5 4q-10 1 -19 1q-5 0 -9 -4t-4 -9.5t4 -9t9 -3.5zM536 809q-115 0 -212.5 -56.5
t-154 -154.5t-56.5 -212q0 -26 3 -51l-31 -11q-15 -5 -18 -21q-3 -18 12 -30l89 -73q8 -7 18 -7q20 0 25 24l23 111q3 16 -7 28q-13 15 -31 8l-23 -8q-1 15 -1 30q0 98 48.5 182t133 133t183 49t182.5 -49t133 -133t49 -182.5t-49 -182.5t-133 -133t-183 -49q-136 0 -239 90
q-9 8 -21.5 7t-20.5 -10t-7 -21.5t10 -20.5q119 -104 278 -104q115 0 213 56.5t154.5 154.5t56.5 212.5t-56.5 212.5t-154.5 154.5t-213 56.5zM406 298q-12 0 -18 -5.5t-6 -19.5q0 -25 26 -25h100v-85q0 -17 5.5 -24t21.5 -7t21 7t5 24v85h102q26 0 26 25t-26 25h-102v41
h102q26 0 26 25t-26 25h-74l93 156q7 12 7 20.5t-10 15.5q-10 6 -20 6t-20 -16l-104 -176l-104 176q-9 15 -20.5 15t-19.5 -6t-8 -15.5t5 -19.5l93 -156h-75q-12 0 -18 -5.5t-6 -19.5q0 -25 26 -25h100v-41h-102z" />
<glyph glyph-name="delete" unicode="&#xe611;"
d="M703 -63h-406q-39 0 -62 4.5t-39.5 18.5t-23 39.5t-6.5 68.5v438q0 11 8 19t19.5 8t19 -8t7.5 -19v-438v-31.5t3 -20t6.5 -14.5t13.5 -6t21.5 -4.5t32.5 -0.5h406q23 0 33.5 0.5t22.5 3.5t16 7t8 13t5 21t1 32v438q0 11 8 19t19 8t19 -8t8 -19v-438q0 -77 -30 -104
t-110 -27zM694 655q-11 0 -19 8t-8 19v8q0 58 -15.5 72.5t-69.5 14.5h-163q-29 0 -43.5 -2.5t-22.5 -13.5t-9.5 -24.5t-1.5 -46.5v-8q0 -11 -8 -19t-19 -8t-19 8t-8 19v8q0 80 27.5 110.5t103.5 30.5h163q81 0 110 -33t29 -108v-8q0 -11 -8 -19t-19 -8zM342.5 73
q-5.5 0 -9.5 4t-4 9v27q0 6 4 10t9.5 4t9.5 -4t4 -10v-27q0 -5 -4 -9t-9.5 -4zM342.5 167q-5.5 0 -9.5 4t-4 10v230q0 6 4 10t9.5 4t9.5 -4t4 -10v-230q0 -6 -4 -10t-9.5 -4zM504.5 73q-5.5 0 -9.5 4t-4 9v325q0 6 4 10t9.5 4t9.5 -4t4 -10v-325q0 -5 -4 -9t-9.5 -4zM667 73
q-6 0 -9.5 4t-3.5 9v325q0 6 3.5 10t9.5 4t10 -4t4 -10v-325q0 -5 -4 -9t-10 -4zM951 590q0 -46 -32.5 -78.5t-78.5 -32.5h-657q-46 0 -79 32.5t-33 78.5v7q0 46 33 79t79 33h657q46 0 78.5 -33t32.5 -79v-7zM897 597q0 24 -16.5 41t-40.5 17h-657q-24 0 -40.5 -17
t-16.5 -41v-7q0 -23 16.5 -40t40.5 -17h657q24 0 40.5 17t16.5 40v7z" />
<glyph glyph-name="star" unicode="&#xe612;"
d="M737 -62q-22 0 -43 11l-183 99l-184 -99q-22 -12 -48 -10.5t-46 15.5q-22 14 -32 37.5t-5 48.5l36 215l-156 155q-18 18 -23.5 42t2.5 48t27.5 39.5t44.5 19.5l211 32l92 190q11 23 33 36.5t48 13.5t48 -13.5t33 -36.5l92 -190l211 -32q25 -4 44 -19.5t27 -39.5t2.5 -48
t-23.5 -42l-155 -155l36 -215q4 -25 -6 -48.5t-31 -37.5q-23 -16 -52 -16zM511 106q7 0 13 -4l196 -105q20 -11 38 2q18 12 14 32l-38 229q-2 14 8 24l165 165q15 14 8 34q-7 19 -28 22l-226 34q-14 2 -20 15l-98 203q-10 20 -32.5 20t-31.5 -20l-98 -203q-7 -13 -21 -15
l-225 -34q-22 -3 -28 -22q-7 -20 8 -34l165 -165q10 -10 7 -24l-38 -229q-3 -20 14 -32q19 -13 38 -2l197 105q6 4 13 4v0zM213 437q-11 0 -13 12q-1 5 2.5 9.5t8.5 5.5l9 2q6 1 10.5 -2.5t5.5 -9t-2.5 -10t-8.5 -5.5l-9 -1q-2 -1 -3 -1zM263 445q-11 0 -13 11q-1 6 2 10.5
t9 5.5l146 29l56 127q5 12 17.5 6.5t7.5 -17.5l-58 -134q-3 -6 -10 -8l-154 -29q-2 -1 -3 -1z" />
<glyph glyph-name="heart" unicode="&#xe613;"
d="M512 -27v0q-35 0 -71 36q-38 37 -307 361q-70 71 -70 171q0 101 71 172l7 6q71 72 172 72t172 -72q2 -1 3 -3v0q9 -10 22 -10q14 0 20 9l4 4q71 72 172 72t173 -72l6 -6q71 -71 71 -172q0 -99 -70 -171q-263 -319 -304 -361q-36 -36 -71 -36v0zM314 734q-77 0 -132 -55
l-6 -6q-55 -55 -55 -132t55 -131q1 -1 1 -2q268 -323 304 -359q19 -19 30.5 -19t30.5 19q42 42 302 359l2 2q54 54 54 131t-54 132l-7 6q-54 55 -132 55q-76 0 -130 -53q-24 -32 -66 -32q-40 0 -66 31q-54 54 -131 54zM188 558h-4q-5 2 -8 7t-2 11q11 37 38 65l4 4
q28 27 64.5 37.5t73.5 1.5q6 -1 9 -6t2 -11t-6 -9t-11 -2q-30 7 -59.5 -1t-51.5 -30l-4 -4q-23 -23 -31 -53q-3 -10 -14 -10zM415 620q-6 0 -10 5q-7 7 -15 13q-12 8 -4 19.5t20 3.5q10 -7 19 -16q10 -10 0 -20q-4 -5 -10 -5z" />
<glyph glyph-name="share" unicode="&#xe615;"
d="M746.5 476q-73.5 0 -125.5 52t-52 125.5t52 125.5t125.5 52t125.5 -52t52 -125.5t-52 -125.5t-125.5 -52zM747 774q-50 0 -85.5 -35.5t-35.5 -85t35.5 -85t85.5 -35.5t85 35.5t35 85t-35 85t-85 35.5zM681 683q-4 0 -8 3q-11 7 -4 19q28 41 78 41q5 0 9.5 -4t4.5 -10
t-4.5 -10t-9.5 -4q-35 0 -54 -29q-4 -6 -12 -6zM266 215q-82 0 -140 58t-58 140t58 140.5t140 58.5t140.5 -58.5t58.5 -140.5t-58.5 -140t-140.5 -58zM266 555q-59 0 -100.5 -41.5t-41.5 -100.5t41.5 -100.5t100.5 -41.5t100.5 41.5t41.5 100.5t-41.5 100.5t-100.5 41.5z
M176 399q-6 0 -10 4t-4 10v3q0 6 1 11q1 6 5.5 9.5t10.5 2t9.5 -6t1.5 -10.5v-4.5v-4.5q0 -6 -4 -10t-10 -4zM191 449q-4 0 -8 2q-11 8 -3 20q30 46 86 46q6 0 10 -4t4 -10t-4 -10t-10 -4q-40 0 -63 -34q-4 -6 -12 -6zM732.5 -63q-91.5 0 -156.5 65t-65 156.5t65 156.5
t156.5 65t156.5 -65t65 -156.5t-65 -156.5t-156.5 -65zM732.5 324q-68.5 0 -116.5 -48.5t-48 -116.5t48 -116.5t116.5 -48.5t116.5 48.5t48 116.5t-48 116.5t-116.5 48.5zM633 216q-4 0 -7 2q-12 8 -4 20q16 24 41.5 37.5t54.5 13.5q6 0 10 -4t4 -10t-4 -10t-10 -4
q-47 0 -73 -39q-4 -6 -12 -6zM409 457l-22 52l233 100l22 -52zM410 331l155 -76l-25 -51l-155 76z" />
<glyph glyph-name="location" unicode="&#xe616;"
d="M501 55q-91 0 -168.5 45t-123 122.5t-45.5 169t45.5 169t123 122.5t168.5 45t169 -45t123 -122.5t45 -169t-45 -169t-123 -122.5t-169 -45zM501.5 673q-116.5 0 -199.5 -82.5t-83 -199t83 -199t199.5 -82.5t199 82.5t82.5 199t-82.5 199t-199 82.5zM339 537q-6 0 -10 5
q-9 10 1 19q42 39 97 54q5 1 10 -1.5t6 -8.5q4 -13 -9 -17q-48 -13 -85 -47q-4 -4 -10 -4zM282 451q-2 0 -4 1q-13 4 -9 17q6 17 15 32q6 12 18 5.5t6 -18.5q-8 -14 -13 -28q-3 -9 -13 -9zM508.5 583q-11.5 0 -19.5 8t-8 20v192q0 12 8 20t19.5 8t19.5 -8t8 -20v-192
q0 -12 -8 -20t-19.5 -8zM508.5 -63q-11.5 0 -19.5 8t-8 20v192q0 12 8 20t19.5 8t19.5 -8t8 -20v-192q0 -12 -8 -20t-19.5 -8zM916 350h-193q-11 0 -19 8t-8 19.5t8 19.5t19 8h193q11 0 19 -8t8 -19.5t-8 -19.5t-19 -8zM270 350h-193q-11 0 -19 8t-8 19.5t8 19.5t19 8h193
q11 0 19 -8t8 -19.5t-8 -19.5t-19 -8z" />
<glyph glyph-name="position" unicode="&#xe617;"
d="M512 407q-52 0 -88.5 36.5t-36.5 88.5t36.5 89t88.5 37v0q52 0 89 -37t37 -89t-37 -88.5t-89 -36.5zM512.5 603q-29.5 0 -50 -20.5t-20.5 -50t20.5 -50t50 -20.5t50 20.5t20.5 50t-20.5 50t-50 20.5zM693 561q-11 0 -13 10q-1 5 -2.5 10t-1.5 7q-6 12 6.5 17.5t18.5 -6.5
l3 -12q1 -6 2 -10q1 -5 -1.5 -10t-8.5 -6h-3zM668 619q-7 0 -11 7q-45 70 -127 81q-5 1 -8.5 5.5t-3 10t5 9t10.5 2.5q45 -6 83 -30.5t63 -63.5q7 -11 -5 -19q-3 -2 -7 -2zM512 -63q-61 0 -101 80q-52 101 -122.5 276.5t-70.5 244.5q0 121 86 207t207 86t207 -86t86 -207
q0 -68 -70.5 -245t-120.5 -276q-40 -80 -101 -80zM510.5 776q-98.5 0 -168.5 -70t-70 -168q0 -56 67 -224t120 -272q26 -50 53.5 -50t52.5 50q49 98 116.5 269t67.5 227q0 98 -70 168t-168.5 70z" />
<glyph glyph-name="console" unicode="&#xe618;"
d="M964 34q0 -40 -28 -68.5t-68 -28.5h-714q-40 0 -68.5 28.5t-28.5 68.5v700q0 40 28.5 68.5t68.5 28.5h714q40 0 68 -28.5t28 -68.5v-700zM909 734q0 17 -12 29t-29 12h-714q-17 0 -29 -12t-12 -29v-700q0 -17 12 -29t29 -12h714q17 0 29 12t12 29v700zM931 621h-851
q-6 0 -10 4t-4 10t4 10t10 4h851q6 0 10 -4t4 -10t-4 -10t-10 -4zM177 691h-14q-5 0 -9.5 4t-4.5 10t4.5 10t9.5 4h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM275 691h-14q-6 0 -10 4t-4 10t4 10t10 4h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM373 691h-14q-6 0 -10 4t-4 10t4 10t10 4
h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM361 126q-6 0 -11 5l-128 158q-7 9 0 18l79 97q9 11 20 2t2 -20l-72 -88l121 -149q9 -11 -2 -20q-4 -3 -9 -3zM348 426q-5 0 -8 3q-11 9 -2 20l12 16q9 10 20 1.5t2 -19.5l-13 -16q-4 -5 -11 -5zM664 126q-5 0 -9 3q-11 9 -2 20l121 149
l-121 149q-9 11 2 19.5t19 -1.5l128 -158q8 -9 0 -18l-128 -158q-4 -5 -10 -5zM454 200q-5 0 -9 3q-10 9 -2 20l128 158q9 11 20 2t2 -20l-128 -158q-4 -5 -11 -5z" />
<glyph glyph-name="mobile" unicode="&#xe61a;"
d="M826 34q0 -40 -28.5 -68.5t-68.5 -28.5h-434q-40 0 -68.5 28.5t-28.5 68.5v700q0 40 28.5 68.5t68.5 28.5h434q40 0 68.5 -28.5t28.5 -68.5v-700v0zM770 734q0 17 -12 29t-29 12h-434q-17 0 -29 -12t-12 -29v-700q0 -17 12 -29t29 -12h434q17 0 29 12t12 29v700zM798 119
h-573q-6 0 -10 4t-4 10t4 10t10 4h573q5 0 9 -4t4 -10t-4 -10t-9 -4zM798 677h-573q-6 0 -10 4t-4 10t4 10t10 4h573q5 0 9 -4t4 -10t-4 -10t-9 -4zM547 59q0 -10 -7 -17t-18 -7h-7q-10 0 -17 7t-7 17v7q0 11 7 18t17 7h7q11 0 18 -7t7 -18v-7zM575 429q-2 0 -5 1
q-13 5 -8 18l4 11q4 13 17.5 8t8.5 -18l-4 -11q-3 -9 -13 -9zM522 278h-5q-13 5 -8 18l39 113q5 13 18 8.5t9 -17.5l-40 -113q-3 -9 -13 -9zM465 383q-2 0 -4 1q-14 4 -9 17l58 165q5 14 18 9t8 -18l-58 -165q-3 -9 -13 -9zM438 305q-2 0 -5 1q-13 5 -8 18l8 24q5 13 18 8.5
t9 -17.5l-9 -24q-3 -10 -13 -10z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg width="169px" height="141px" viewBox="0 0 169 141" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch -->
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="54.0428975%" y1="4.39752391%" x2="54.0428975%" y2="108.456714%" id="linearGradient-1">
<stop stop-color="#29CDFF" offset="0%"></stop>
<stop stop-color="#148EFF" offset="62.3089445%"></stop>
<stop stop-color="#0A60FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="14.2201464%" x2="50%" y2="113.263844%" id="linearGradient-2">
<stop stop-color="#FA816E" offset="0%"></stop>
<stop stop-color="#F74A5C" offset="65.9092442%"></stop>
<stop stop-color="#F51D2C" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group" transform="translate(0.000000, -5.000000)">
<rect id="Rectangle" fill="url(#linearGradient-1)" transform="translate(83.718923, 75.312358) rotate(-24.000000) translate(-83.718923, -75.312358) " x="68.7189234" y="0.312357954" width="30" height="150" rx="15"></rect>
<rect id="Rectangle" fill="url(#linearGradient-1)" transform="translate(129.009910, 75.580213) rotate(-24.000000) translate(-129.009910, -75.580213) " x="114.00991" y="0.580212739" width="30" height="150" rx="15"></rect>
<circle id="Oval" fill="url(#linearGradient-2)" cx="25" cy="120" r="25"></circle>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

+40
View File
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<rect style="fill:#D80027;" width="512" height="512"/>
<polygon style="fill:#6DA544;" points="196.641,0 196.641,264.348 196.641,512 0,512 0,0 "/>
<circle style="fill:#FFDA44;" cx="196.641" cy="256" r="96"/>
<path style="fill:#D80027;" d="M142.638,208v60c0,29.823,24.178,54,54,54s54-24.178,54-54v-60H142.638z"/>
<path style="fill:#F0F0F0;" d="M196.638,286c-9.925,0-18-8.075-18-18v-24.001h36V268C214.638,277.925,206.563,286,196.638,286z"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 973 B

+114
View File
@@ -0,0 +1,114 @@
/**
* Youdao Translate, My private account is for testing purposes only.
* Please go to the official account to apply for an account. Thank you for your cooperation.
* APP ID:055c2d71f9a05214
* Secret key:ZcpuQxQW3NkQeKVkqrXIKQYXH57g2KuN
*/
/* eslint-disable */
const md5 = require('md5')
const qs = require('qs')
const fs = require('fs')
const path = require('path')
const axios = require('axios')
const jsonFormat = require('json-format')
const { i18n } = require('../src/utils/config')
const { languages, defaultLanguage } = i18n
const locales = {}
languages.forEach(item => {
locales[item.key] = require(`../src/locales/${item.key}/messages.json`)
})
const youdao = ({ q, from, to }) =>
new Promise((resolve, reject) => {
{
const appid = '055c2d71f9a05214'
const appse = 'ZcpuQxQW3NkQeKVkqrXIKQYXH57g2KuN'
const salt = Date.now()
const sign = md5(appid + q + salt + appse)
const query = qs.stringify({
q,
from,
to,
appKey: appid,
salt,
sign,
})
axios.get(`http://openapi.youdao.com/api?${query}`).then(({ data }) => {
if (data.query && data.translation[0]) {
resolve(data.translation[0])
} else {
resolve(q)
}
})
}
})
const transform = async ({ from, to, locales, outputPath }) => {
for (const key in locales[from]) {
if (locales[to][key]) {
console.log(`add to skip: ${key}`)
} else {
let res = key
let way = 'youdao'
if (key.indexOf('/') !== 0) {
const reg = '{([^{}]*)}'
const tasks = key
.match(new RegExp(`${reg}|((?<=(${reg}|^)).*?(?=(${reg}|$)))`, 'g'))
.map(item => {
if (new RegExp(reg).test(item)) {
return Promise.resolve(item)
}
return youdao({
q: item,
from,
to,
})
})
res = (await Promise.all(tasks)).join('')
} else {
res = `/${to + key}`
way = 'link'
}
if (res !== key) {
locales[to][key] = res
console.log(`${way}: ${from} -> ${to}: ${key} -> ${res}`)
} else {
console.log(`same: ${from} -> ${to}: ${key}`)
}
}
}
await fs.writeFileSync(
path.resolve(__dirname, outputPath),
jsonFormat(locales[to], {
type: 'space',
size: 2,
})
)
}
;(async () => {
const tasks = languages
.map(item => ({
from: defaultLanguage,
to: item.key,
}))
.filter(item => item.from !== item.to)
for (const item of tasks) {
console.log(`start: ${item.from} -> ${item.to}`)
await transform({
from: item.from,
to: item.to,
locales,
outputPath: `../src/locales/${item.to}/messages.json`,
})
console.log(`completed: ${item.from} -> ${item.to}`)
}
console.log('All translations have been completed.')
})()
-67
View File
@@ -1,67 +0,0 @@
import React from 'react'
import PropTypes from 'prop-types'
import { TweenOneGroup } from 'rc-tween-one'
const enterAnim = [
{
opacity: 0,
x: 30,
backgroundColor: '#fffeee',
duration: 0,
}, {
height: 0,
duration: 200,
type: 'from',
delay: 250,
ease: 'easeOutQuad',
onComplete: (e) => {
e.target.style.height = 'auto'
},
}, {
opacity: 1,
x: 0,
duration: 250,
ease: 'easeOutQuad',
}, {
delay: 1000,
backgroundColor: '#fff',
},
]
const leaveAnim = [
{
duration: 250,
x: -30,
opacity: 0,
}, {
height: 0,
duration: 200,
ease: 'easeOutQuad',
},
]
const AnimTableBody = ({ body, page = 1, current }) => {
if (current !== +page) {
return body
}
return (
<TweenOneGroup
component="tbody"
className={body.props.className}
enter={enterAnim}
leave={leaveAnim}
appear={false}
>
{body.props.children}
</TweenOneGroup>
)
}
AnimTableBody.propTypes = {
body: PropTypes.element,
page: PropTypes.any,
current: PropTypes.number.isRequired,
}
export default AnimTableBody
-112
View File
@@ -1,112 +0,0 @@
import React from 'react'
import PropTypes from 'prop-types'
import { Table } from 'antd'
import { request } from 'utils'
import lodash from 'lodash'
import './DataTable.less'
class DataTable extends React.Component {
constructor (props) {
super(props)
const { dataSource, pagination = {
showSizeChanger: true,
showQuickJumper: true,
showTotal: total => `共 ${total} 条`,
current: 1,
total: 100 },
} = props
this.state = {
loading: false,
dataSource,
fetchData: {},
pagination,
}
}
componentDidMount () {
if (this.props.fetch) {
this.fetch()
}
}
componentWillReceiveProps (nextProps) {
const staticNextProps = lodash.cloneDeep(nextProps)
delete staticNextProps.columns
const { columns, ...otherProps } = this.props
if (!lodash.isEqual(staticNextProps, otherProps)) {
this.props = nextProps
this.fetch()
}
}
handleTableChange = (pagination, filters, sorter) => {
const pager = this.state.pagination
pager.current = pagination.current
this.setState({
pagination: pager,
fetchData: {
results: pagination.pageSize,
page: pagination.current,
sortField: sorter.field,
sortOrder: sorter.order,
...filters,
},
}, () => {
this.fetch()
})
}
fetch = () => {
const { fetch: { url, data, dataKey } } = this.props
const { fetchData } = this.state
this.setState({ loading: true })
this.promise = request({
url,
data: {
...data,
...fetchData,
},
}).then((result) => {
if (!this.refs.DataTable) {
return
}
const { pagination } = this.state
pagination.total = result.total || pagination.total
this.setState({
loading: false,
dataSource: dataKey ? result[dataKey] : result.data,
pagination,
})
})
}
render () {
const { fetch, ...tableProps } = this.props
const { loading, dataSource, pagination } = this.state
return (<Table
ref="DataTable"
bordered
loading={loading}
onChange={this.handleTableChange}
{...tableProps}
pagination={pagination}
dataSource={dataSource}
/>)
}
}
DataTable.propTypes = {
fetch: PropTypes.object,
rowKey: PropTypes.string,
pagination: React.PropTypes.oneOfType([
React.PropTypes.bool,
React.PropTypes.object,
]),
columns: PropTypes.array,
dataSource: PropTypes.array,
}
export default DataTable
-6
View File
@@ -1,6 +0,0 @@
{
"name": "DataTable",
"version": "0.0.0",
"private": true,
"main": "./DataTable.js"
}
+20 -11
View File
@@ -2,17 +2,26 @@ import React from 'react'
import PropTypes from 'prop-types'
import { Dropdown, Button, Icon, Menu } from 'antd'
const DropOption = ({ onMenuClick, menuOptions = [], buttonStyle, dropdownProps }) => {
const menu = menuOptions.map(item => <Menu.Item key={item.key}>{item.name}</Menu.Item>)
return (<Dropdown
overlay={<Menu onClick={onMenuClick}>{menu}</Menu>}
{...dropdownProps}
>
<Button style={{ border: 'none', ...buttonStyle }}>
<Icon style={{ marginRight: 2 }} type="bars" />
<Icon type="down" />
</Button>
</Dropdown>)
const DropOption = ({
onMenuClick,
menuOptions = [],
buttonStyle,
dropdownProps,
}) => {
const menu = menuOptions.map(item => (
<Menu.Item key={item.key}>{item.name}</Menu.Item>
))
return (
<Dropdown
overlay={<Menu onClick={onMenuClick}>{menu}</Menu>}
{...dropdownProps}
>
<Button style={{ border: 'none', ...buttonStyle }}>
<Icon style={{ marginRight: 2 }} type="bars" />
<Icon type="down" />
</Button>
</Dropdown>
)
}
DropOption.propTypes = {
+10 -4
View File
@@ -1,11 +1,17 @@
import React from 'react'
import { Editor } from 'react-draft-wysiwyg'
import styles from './Editor.less'
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'
import styles from './Editor.less'
const DraftEditor = (props) => {
return (<Editor toolbarClassName={styles.toolbar} wrapperClassName={styles.wrapper} editorClassName={styles.editor} {...props} />)
const DraftEditor = props => {
return (
<Editor
toolbarClassName={styles.toolbar}
wrapperClassName={styles.wrapper}
editorClassName={styles.editor}
{...props}
/>
)
}
export default DraftEditor
+4 -9
View File
@@ -10,6 +10,9 @@
box-sizing: content-box;
width: 100%;
border-radius: 0 0 2px 2px;
&:hover {
box-shadow: none;
}
}
.rdw-inline-wrapper {
@@ -25,12 +28,6 @@
box-shadow: 1px 1px 0 #e8e8e8 inset;
}
.rdw-dropdown-optionwrapper {
&:hover {
box-shadow: none;
}
}
.rdw-colorpicker-option {
box-shadow: none;
}
@@ -100,12 +97,10 @@
}
.editor {
border: 1px solid #F1F1F1;
border: 1px solid #f1f1f1;
padding: 5px;
border-radius: 2px;
height: auto;
min-height: 200px;
}
.toolbar {}
}
+10 -11
View File
@@ -2,21 +2,20 @@ import React from 'react'
import PropTypes from 'prop-types'
import styles from './FilterItem.less'
const FilterItem = ({
label = '',
children,
}) => {
const FilterItem = ({ label = '', children }) => {
const labelArray = label.split('')
return (
<div className={styles.filterItem}>
{labelArray.length > 0
? <div className={styles.labelWrap}>
{labelArray.map((item, index) => <span className="labelText" key={index}>{item}</span>)}
{labelArray.length > 0 && (
<div className={styles.labelWrap}>
{labelArray.map((item, index) => (
<span className="labelText" key={index}>
{item}
</span>
))}
</div>
: ''}
<div className={styles.item}>
{children}
</div>
)}
<div className={styles.item}>{children}</div>
</div>
)
}
-21
View File
@@ -1,21 +0,0 @@
import React from 'react'
import PropTypes from 'prop-types'
import './iconfont.less'
const Iconfont = ({ type, colorful }) => {
if (colorful) {
return (<span
dangerouslySetInnerHTML={{
__html: `<svg class="colorful-icon" aria-hidden="true"><use xlink:href="#${type.startsWith('#') ? type.replace(/#/, '') : type}"></use></svg>`,
}}
/>)
}
return <i className={`antdadmin icon-${type}`} />
}
Iconfont.propTypes = {
type: PropTypes.string,
colorful: PropTypes.bool,
}
export default Iconfont
-8
View File
@@ -1,8 +0,0 @@
:global .colorful-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
font-size: 16px;
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "Iconfont",
"version": "0.0.0",
"private": true,
"main": "./Iconfont.js"
}
+49 -55
View File
@@ -1,72 +1,66 @@
import React from 'react'
import React, { PureComponent, Fragment } from 'react'
import PropTypes from 'prop-types'
import { Breadcrumb, Icon } from 'antd'
import { Link } from 'dva/router'
import Link from 'umi/navlink'
import withRouter from 'umi/withRouter'
import { withI18n } from '@lingui/react'
import { pathMatchRegexp, queryAncestors, addLangPrefix } from 'utils'
import styles from './Bread.less'
import pathToRegexp from 'path-to-regexp'
import { queryArray } from 'utils'
const Bread = ({ menu }) => {
// 匹配当前路由
let pathArray = []
let current
for (let index in menu) {
if (menu[index].route && pathToRegexp(menu[index].route).exec(location.pathname)) {
current = menu[index]
break
}
}
@withI18n()
@withRouter
class Bread extends PureComponent {
generateBreadcrumbs = paths => {
return paths.map((item, key) => {
const content = item && (
<Fragment>
{item.icon && <Icon type={item.icon} style={{ marginRight: 4 }} />}
{item.name}
</Fragment>
)
const getPathArray = (item) => {
pathArray.unshift(item)
if (item.bpid) {
getPathArray(queryArray(menu, item.bpid, 'id'))
}
}
if (!current) {
pathArray.push(menu[0] || {
id: 1,
icon: 'laptop',
name: 'Dashboard',
return (
item && (
<Breadcrumb.Item key={key}>
{paths.length - 1 !== key ? (
<Link to={addLangPrefix(item.route) || '#'}>{content}</Link>
) : (
content
)}
</Breadcrumb.Item>
)
)
})
pathArray.push({
id: 404,
name: 'Not Found',
})
} else {
getPathArray(current)
}
render() {
const { routeList, location, i18n } = this.props
// 递归查找父级
const breads = pathArray.map((item, key) => {
const content = (
<span>{item.icon
? <Icon type={item.icon} style={{ marginRight: 4 }} />
: ''}{item.name}</span>
// Find a route that matches the pathname.
const currentRoute = routeList.find(
_ => _.route && pathMatchRegexp(_.route, location.pathname)
)
// Find the breadcrumb navigation of the current route match and all its ancestors.
const paths = currentRoute
? queryAncestors(routeList, currentRoute, 'breadcrumbParentId').reverse()
: [
routeList[0],
{
id: 404,
name: i18n.t`Not Found`,
},
]
return (
<Breadcrumb.Item key={key}>
{((pathArray.length - 1) !== key)
? <Link to={item.route}>
{content}
</Link>
: content}
</Breadcrumb.Item>
)
})
return (
<div className={styles.bread}>
<Breadcrumb>
{breads}
<Breadcrumb className={styles.bread}>
{this.generateBreadcrumbs(paths)}
</Breadcrumb>
</div>
)
)
}
}
Bread.propTypes = {
menu: PropTypes.array,
routeList: PropTypes.array,
}
export default Bread
+14 -6
View File
@@ -1,8 +1,16 @@
@import "../../themes/vars.less";
.bread {
height: 64px;
line-height: 64px;
padding: 0 24px;
margin-bottom: -24px;
margin-bottom: 24px;
:global {
.ant-breadcrumb {
display: flex;
align-items: center;
}
}
}
@media (max-width: 767px) {
.bread {
margin-bottom: 12px;
}
}
-9
View File
@@ -1,9 +0,0 @@
import React from 'react'
import styles from './Footer.less'
import { config } from 'utils'
const Footer = () => <div className={styles.footer}>
{config.footerText}
</div>
export default Footer
-12
View File
@@ -1,12 +0,0 @@
@import "../../themes/vars.less";
.footer {
height: 48px;
line-height: 48px;
text-align: center;
font-size: 12px;
color: #999;
background: #fff;
box-shadow: @shadow-2;
width: 100%;
}
+160 -52
View File
@@ -1,66 +1,174 @@
import React from 'react'
import React, { PureComponent, Fragment } from 'react'
import PropTypes from 'prop-types'
import { Menu, Icon, Popover } from 'antd'
import { Menu, Icon, Layout, Avatar, Popover, Badge, List } from 'antd'
import { Ellipsis } from 'ant-design-pro'
import { Trans, withI18n } from '@lingui/react'
import { setLocale } from 'utils'
import moment from 'moment'
import classnames from 'classnames'
import config from 'config'
import styles from './Header.less'
import Menus from './Menu'
const SubMenu = Menu.SubMenu
const { SubMenu } = Menu
const Header = ({ user, logout, switchSider, siderFold, isNavbar, menuPopoverVisible, location, switchMenuPopover, navOpenKeys, changeOpenKeys, menu }) => {
let handleClickMenu = e => e.key === 'logout' && logout()
const menusProps = {
menu,
siderFold: false,
darkTheme: false,
isNavbar,
handleClickNavMenu: switchMenuPopover,
location,
navOpenKeys,
changeOpenKeys,
@withI18n()
class Header extends PureComponent {
handleClickMenu = e => {
e.key === 'SignOut' && this.props.onSignOut()
}
return (
<div className={styles.header}>
{isNavbar
? <Popover placement="bottomLeft" onVisibleChange={switchMenuPopover} visible={menuPopoverVisible} overlayClassName={styles.popovermenu} trigger="click" content={<Menus {...menusProps} />}>
<div className={styles.button}>
<Icon type="bars" />
</div>
</Popover>
: <div className={styles.button} onClick={switchSider}>
<Icon type={siderFold ? 'menu-unfold' : 'menu-fold'} />
</div>}
<div className={styles.rightWarpper}>
<div className={styles.button}>
<Icon type="mail" />
</div>
<Menu mode="horizontal" onClick={handleClickMenu}>
<SubMenu style={{
float: 'right',
}} title={< span > <Icon type="user" />
{user.username} < /span>}
>
<Menu.Item key="logout">
Sign out
</Menu.Item>
render() {
const {
i18n,
fixed,
avatar,
username,
collapsed,
notifications,
onCollapseChange,
onAllNotificationsRead,
} = this.props
const rightContent = [
<Menu key="user" mode="horizontal" onClick={this.handleClickMenu}>
<SubMenu
title={
<Fragment>
<span style={{ color: '#999', marginRight: 4 }}>
<Trans>Hi,</Trans>
</span>
<span>{username}</span>
<Avatar style={{ marginLeft: 8 }} src={avatar} />
</Fragment>
}
>
<Menu.Item key="SignOut">
<Trans>Sign out</Trans>
</Menu.Item>
</SubMenu>
</Menu>,
]
if (config.i18n) {
const { languages } = config.i18n
const currentLanguage = languages.find(
item => item.key === i18n._language
)
rightContent.unshift(
<Menu
key="language"
selectedKeys={[currentLanguage.key]}
onClick={data => {
setLocale(data.key)
}}
mode="horizontal"
>
<SubMenu title={<Avatar size="small" src={currentLanguage.flag} />}>
{languages.map(item => (
<Menu.Item key={item.key}>
<Avatar
size="small"
style={{ marginRight: 8 }}
src={item.flag}
/>
{item.title}
</Menu.Item>
))}
</SubMenu>
</Menu>
</div>
</div>
)
)
}
rightContent.unshift(
<Popover
placement="bottomRight"
trigger="click"
key="notifications"
overlayClassName={styles.notificationPopover}
getPopupContainer={() => document.querySelector('#primaryLayout')}
content={
<div className={styles.notification}>
<List
itemLayout="horizontal"
dataSource={notifications}
locale={{
emptyText: <Trans>You have viewed all notifications.</Trans>,
}}
renderItem={item => (
<List.Item className={styles.notificationItem}>
<List.Item.Meta
title={
<Ellipsis tooltip lines={1}>
{item.title}
</Ellipsis>
}
description={moment(item.date).fromNow()}
/>
<Icon
style={{ fontSize: 10, color: '#ccc' }}
type="right"
theme="outlined"
/>
</List.Item>
)}
/>
{notifications.length ? (
<div
onClick={onAllNotificationsRead}
className={styles.clearButton}
>
<Trans>Clear notifications</Trans>
</div>
) : null}
</div>
}
>
<Badge
count={notifications.length}
dot
offset={[-10, 10]}
className={styles.iconButton}
>
<Icon className={styles.iconFont} type="bell" />
</Badge>
</Popover>
)
return (
<Layout.Header
className={classnames(styles.header, {
[styles.fixed]: fixed,
[styles.collapsed]: collapsed,
})}
id="layoutHeader"
>
<div
className={styles.button}
onClick={onCollapseChange.bind(this, !collapsed)}
>
<Icon
type={classnames({
'menu-unfold': collapsed,
'menu-fold': !collapsed,
})}
/>
</div>
<div className={styles.rightContainer}>{rightContent}</div>
</Layout.Header>
)
}
}
Header.propTypes = {
menu: PropTypes.array,
fixed: PropTypes.bool,
user: PropTypes.object,
logout: PropTypes.func,
switchSider: PropTypes.func,
siderFold: PropTypes.bool,
isNavbar: PropTypes.bool,
menuPopoverVisible: PropTypes.bool,
location: PropTypes.object,
switchMenuPopover: PropTypes.func,
navOpenKeys: PropTypes.array,
changeOpenKeys: PropTypes.func,
menus: PropTypes.array,
collapsed: PropTypes.bool,
onSignOut: PropTypes.func,
notifications: PropTypes.array,
onCollapseChange: PropTypes.func,
onAllNotificationsRead: PropTypes.func,
}
export default Header
+125 -30
View File
@@ -1,30 +1,79 @@
@import "../../themes/vars.less";
@import '~themes/vars.less';
.header {
:global .ant-menu-horizontal {
& > .ant-menu-submenu {
float: right;
}
border: none;
display: inline-block;
}
padding: 0;
box-shadow: @shadow-2;
position: relative;
display: flex;
justify-content: space-between;
height: 47px;
height: 72px;
z-index: 9;
align-items: center;
background-color: #fff;
z-index: 999;
.rightWarpper {
&.fixed {
position: fixed;
top: 0;
right: 0;
width: ~'calc(100% - 256px)';
z-index: 29;
transition: width 0.2s;
&.collapsed {
width: ~'calc(100% - 80px)';
}
}
:global {
.ant-menu-submenu-title {
height: 72px;
}
.ant-menu-horizontal {
line-height: 72px;
& > .ant-menu-submenu:hover {
color: @primary-color;
background-color: @hover-color;
}
}
.ant-menu {
border-bottom: none;
height: 72px;
}
.ant-menu-horizontal > .ant-menu-submenu {
top: 0;
margin-top: 0;
}
.ant-menu-horizontal > .ant-menu-item,
.ant-menu-horizontal > .ant-menu-submenu {
border-bottom: none;
}
.ant-menu-horizontal > .ant-menu-item-active,
.ant-menu-horizontal > .ant-menu-item-open,
.ant-menu-horizontal > .ant-menu-item-selected,
.ant-menu-horizontal > .ant-menu-item:hover,
.ant-menu-horizontal > .ant-menu-submenu-active,
.ant-menu-horizontal > .ant-menu-submenu-open,
.ant-menu-horizontal > .ant-menu-submenu-selected,
.ant-menu-horizontal > .ant-menu-submenu:hover {
border-bottom: none;
}
}
.rightContainer {
display: flex;
padding-right: 16px;
align-items: center;
}
.button {
width: 47px;
height: 47px;
line-height: 47px;
width: 72px;
height: 72px;
line-height: 72px;
text-align: center;
font-size: 18px;
cursor: pointer;
@@ -32,28 +81,74 @@
&:hover {
color: @primary-color;
background-color: fade(@primary-color, 15%);
background-color: @hover-color;
}
}
}
.popovermenu {
width: 280px;
margin-left: 6px;
.iconButton {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 24px;
cursor: pointer;
.background-hover();
:global .ant-popover-inner-content {
padding: 0;
.ant-menu-inline .ant-menu-item,
.ant-menu-vertical .ant-menu-item {
border-right: 0;
height: 48px;
line-height: 48px;
&:hover {
.iconFont {
color: @primary-color;
}
}
.ant-menu-inline .ant-menu-item-selected,
.ant-menu-inline .ant-menu-selected {
border-right: 0;
& + .iconButton {
margin-left: 8px;
}
.iconFont {
color: #b2b0c7;
font-size: 24px;
}
}
.notification {
padding: 24px 0;
width: 320px;
.notificationItem {
transition: all 0.3s;
padding: 12px 24px;
cursor: pointer;
&:hover {
background-color: @hover-color;
}
}
.clearButton {
text-align: center;
height: 48px;
line-height: 48px;
cursor: pointer;
.background-hover();
}
}
.notificationPopover {
:global {
.ant-popover-inner-content {
padding: 0;
}
.ant-popover-arrow {
display: none;
}
.ant-list-item-content {
flex: 0;
margin-left: 16px;
}
}
}
@media (max-width: 767px) {
.header {
width: 100% !important;
}
}

Some files were not shown because too many files have changed in this diff Show More