aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.all-contributorsrc61
-rw-r--r--.github/FEATURE_PROPOSAL_TEMPLATE.md2
-rw-r--r--.github/ISSUE_TEMPLATE.md4
-rw-r--r--.travis.yml57
-rw-r--r--.vscode/launch.json12
-rw-r--r--CHANGELOG.md32
-rw-r--r--CODE_OF_CONDUCT.md4
-rw-r--r--CONTRIBUTING.md8
-rw-r--r--README.md120
-rw-r--r--appveyor.yml13
-rw-r--r--branding/README.md13
-rw-r--r--branding/beard.pngbin0 -> 19806 bytes
-rw-r--r--branding/gradient.pngbin0 -> 582221 bytes
-rw-r--r--branding/logo.pngbin0 -> 122554 bytes
-rw-r--r--branding/logo.psdbin0 -> 806654 bytes
-rw-r--r--build-helpers/images/dmgInstaller.tiffbin34272 -> 111748 bytes
-rw-r--r--build-helpers/images/icon.icnsbin1057357 -> 214073 bytes
-rw-r--r--build-helpers/images/icon.icobin325490 -> 20327 bytes
-rw-r--r--build-helpers/images/icon.pngbin126364 -> 110275 bytes
-rw-r--r--build-helpers/images/icons/1024x1024.pngbin126364 -> 126795 bytes
-rw-r--r--build-helpers/images/icons/128x128.pngbin5538 -> 10996 bytes
-rw-r--r--build-helpers/images/icons/16x16.pngbin682 -> 2268 bytes
-rw-r--r--build-helpers/images/icons/24x24.pngbin1143 -> 2781 bytes
-rw-r--r--build-helpers/images/icons/256x256.pngbin13267 -> 22431 bytes
-rw-r--r--build-helpers/images/icons/32x32.pngbin1526 -> 3348 bytes
-rw-r--r--build-helpers/images/icons/48x48.pngbin2262 -> 4542 bytes
-rw-r--r--build-helpers/images/icons/512x512.pngbin38356 -> 50954 bytes
-rw-r--r--build-helpers/images/icons/64x64.pngbin2885 -> 5654 bytes
-rw-r--r--build-helpers/images/icons/96x96.pngbin4422 -> 8276 bytes
-rw-r--r--build-helpers/images/win-app-ico.icobin32038 -> 4286 bytes
-rw-r--r--build-helpers/images/win-installer-loading-splash.gifbin36630 -> 221086 bytes
-rw-r--r--docs/example-feature/api.js2
-rw-r--r--electron-builder.yml8
-rw-r--r--package-lock.json333
-rw-r--r--package.json20
-rw-r--r--packages/forms/src/button/index.tsx4
-rw-r--r--packages/theme/src/themes/default/index.ts2
-rw-r--r--packages/theme/src/themes/legacy/index.ts2
-rw-r--r--src/I18n.js4
-rw-r--r--src/api/apiBase.js32
-rw-r--r--src/api/server/ServerApi.js53
-rw-r--r--src/app.js11
-rw-r--r--src/assets/images/adlk.svg68
-rw-r--r--src/assets/images/logo.svg39
-rw-r--r--src/assets/images/sm.pngbin751417 -> 1575061 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-active.pngbin396 -> 1836 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-active@2x.pngbin1291 -> 2528 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-unread-active.pngbin424 -> 1879 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-unread-active@2x.pngbin1359 -> 2634 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-unread.pngbin424 -> 1879 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray-unread@2x.pngbin1359 -> 2634 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray.pngbin396 -> 1836 bytes
-rw-r--r--src/assets/images/tray/darwin-dark/tray@2x.pngbin1291 -> 2528 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-active.pngbin396 -> 1836 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-active@2x.pngbin1291 -> 2528 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-unread-active.pngbin424 -> 1879 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-unread-active@2x.pngbin1359 -> 2634 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-unread.pngbin1264 -> 1817 bytes
-rw-r--r--src/assets/images/tray/darwin/tray-unread@2x.pngbin2026 -> 2457 bytes
-rw-r--r--src/assets/images/tray/darwin/tray.pngbin1230 -> 1781 bytes
-rw-r--r--src/assets/images/tray/darwin/tray@2x.pngbin1545 -> 2375 bytes
-rw-r--r--src/assets/images/tray/linux/tray-unread.pngbin2786 -> 3839 bytes
-rw-r--r--src/assets/images/tray/linux/tray-unread@2x.pngbin6062 -> 6295 bytes
-rw-r--r--src/assets/images/tray/linux/tray.pngbin2847 -> 3753 bytes
-rw-r--r--src/assets/images/tray/linux/tray@2x.pngbin6318 -> 6143 bytes
-rw-r--r--src/assets/images/tray/win32/tray-unread.icobin39006 -> 7387 bytes
-rw-r--r--src/assets/images/tray/win32/tray.icobin33292 -> 4694 bytes
-rw-r--r--src/components/AppUpdateInfoBar.js2
-rw-r--r--src/components/auth/AuthLayout.js4
-rw-r--r--src/components/auth/Import.js4
-rw-r--r--src/components/auth/Login.js26
-rw-r--r--src/components/auth/Signup.js9
-rw-r--r--src/components/auth/Welcome.js15
-rw-r--r--src/components/layout/AppLayout.js22
-rw-r--r--src/components/layout/Sidebar.js86
-rw-r--r--src/components/services/content/Services.js23
-rw-r--r--src/components/settings/account/AccountDashboard.js2
-rw-r--r--src/components/settings/navigation/SettingsNavigation.js5
-rw-r--r--src/components/settings/services/EditServiceForm.js8
-rw-r--r--src/components/settings/settings/EditSettingsForm.js30
-rw-r--r--src/components/settings/team/TeamDashboard.js4
-rw-r--r--src/components/ui/AppLoader/index.js2
-rw-r--r--src/components/ui/Button.js2
-rw-r--r--src/components/ui/FullscreenLoader/styles.js1
-rw-r--r--src/components/ui/Input.js2
-rw-r--r--src/components/ui/Link.js4
-rw-r--r--src/components/ui/Loader.js2
-rw-r--r--src/components/ui/PremiumFeatureContainer/index.js6
-rw-r--r--src/config.js1
-rw-r--r--src/containers/layout/AppLayoutContainer.js1
-rw-r--r--src/containers/settings/AccountScreen.js9
-rw-r--r--src/containers/settings/EditSettingsScreen.js20
-rw-r--r--src/dev-app-update.yml4
-rw-r--r--src/electron/deepLinking.js2
-rw-r--r--src/features/announcements/api.js4
-rw-r--r--src/features/announcements/components/AnnouncementScreen.js7
-rw-r--r--src/features/announcements/store.js4
-rw-r--r--src/features/basicAuth/index.js2
-rw-r--r--src/features/delayApp/Component.js9
-rw-r--r--src/features/delayApp/index.js5
-rw-r--r--src/features/shareFranz/Component.js14
-rw-r--r--src/features/shareFranz/index.js12
-rw-r--r--src/features/workspaces/api.js10
-rw-r--r--src/features/workspaces/components/CreateWorkspaceForm.js4
-rw-r--r--src/features/workspaces/components/EditWorkspaceForm.js4
-rw-r--r--src/features/workspaces/components/WorkspaceDrawer.js9
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.js2
-rw-r--r--src/helpers/recipe-helpers.js2
-rw-r--r--src/helpers/service-helpers.js2
-rw-r--r--src/helpers/validation-helpers.js10
-rw-r--r--src/i18n/globalMessages.js2
-rw-r--r--src/i18n/locales/ca.json38
-rw-r--r--src/i18n/locales/cs.json42
-rw-r--r--src/i18n/locales/de.json50
-rw-r--r--src/i18n/locales/defaultMessages.json267
-rw-r--r--src/i18n/locales/el.json42
-rw-r--r--src/i18n/locales/en-US.json59
-rw-r--r--src/i18n/locales/es.json38
-rw-r--r--src/i18n/locales/fr.json34
-rw-r--r--src/i18n/locales/ga.json48
-rw-r--r--src/i18n/locales/hr.json24
-rw-r--r--src/i18n/locales/hu.json44
-rw-r--r--src/i18n/locales/id.json26
-rw-r--r--src/i18n/locales/it.json38
-rw-r--r--src/i18n/locales/ja.json28
-rw-r--r--src/i18n/locales/ka.json28
-rw-r--r--src/i18n/locales/nb-NO.json30
-rw-r--r--src/i18n/locales/nl-BE.json44
-rw-r--r--src/i18n/locales/nl.json8
-rw-r--r--src/i18n/locales/pl.json32
-rw-r--r--src/i18n/locales/pt-BR.json38
-rw-r--r--src/i18n/locales/pt.json22
-rw-r--r--src/i18n/locales/ru.json36
-rw-r--r--src/i18n/locales/sk.json20
-rw-r--r--src/i18n/locales/sr.json20
-rw-r--r--src/i18n/locales/tr.json20
-rw-r--r--src/i18n/locales/ua.json24
-rw-r--r--src/i18n/locales/uk.json24
-rw-r--r--src/i18n/locales/zh-Hant.json16
-rw-r--r--src/i18n/locales/zh-TW.json16
-rw-r--r--src/i18n/messages/src/components/AppUpdateInfoBar.json2
-rw-r--r--src/i18n/messages/src/components/auth/Import.json4
-rw-r--r--src/i18n/messages/src/components/auth/Login.json42
-rw-r--r--src/i18n/messages/src/components/auth/Signup.json2
-rw-r--r--src/i18n/messages/src/components/layout/AppLayout.json17
-rw-r--r--src/i18n/messages/src/components/services/content/Services.json28
-rw-r--r--src/i18n/messages/src/components/settings/account/AccountDashboard.json2
-rw-r--r--src/i18n/messages/src/components/settings/services/EditServiceForm.json6
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json89
-rw-r--r--src/i18n/messages/src/components/settings/team/TeamDashboard.json4
-rw-r--r--src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json4
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json21
-rw-r--r--src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json6
-rw-r--r--src/i18n/messages/src/features/delayApp/Component.json2
-rw-r--r--src/i18n/messages/src/features/shareFranz/Component.json4
-rw-r--r--src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json8
-rw-r--r--src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json28
-rw-r--r--src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json2
-rw-r--r--src/i18n/messages/src/i18n/globalMessages.json2
-rw-r--r--src/i18n/messages/src/lib/Menu.json2
-rw-r--r--src/index.js18
-rw-r--r--src/lib/Menu.js24
-rw-r--r--src/lib/Tray.js6
-rw-r--r--src/lib/analytics.js55
-rw-r--r--src/models/Recipe.js2
-rw-r--r--src/models/Service.js6
-rw-r--r--src/models/User.js6
-rw-r--r--src/stores/AppStore.js20
-rw-r--r--src/stores/GlobalErrorStore.js5
-rw-r--r--src/stores/PaymentStore.js3
-rw-r--r--src/stores/RecipePreviewsStore.js10
-rw-r--r--src/stores/ServicesStore.js26
-rw-r--r--src/stores/SettingsStore.js2
-rw-r--r--src/stores/UserStore.js26
-rw-r--r--src/styles/auth.scss2
-rw-r--r--src/styles/colors.scss1
-rw-r--r--src/theme/default/legacy.js2
-rw-r--r--uidev/src/stories/infobox.stories.tsx2
178 files changed, 1750 insertions, 1199 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
new file mode 100644
index 000000000..1c053d4fd
--- /dev/null
+++ b/.all-contributorsrc
@@ -0,0 +1,61 @@
1{
2 "projectName": "ferdi",
3 "projectOwner": "kytwb",
4 "repoType": "github",
5 "repoHost": "https://github.com",
6 "files": [
7 "README.md"
8 ],
9 "imageSize": 100,
10 "commit": true,
11 "commitConvention": "none",
12 "contributors": [
13 {
14 "login": "kytwb",
15 "name": "Amine Mouafik",
16 "avatar_url": "https://avatars0.githubusercontent.com/u/412895?v=4",
17 "profile": "https://twitter.com/kytwb",
18 "contributions": [
19 "question",
20 "code",
21 "doc",
22 "ideas",
23 "maintenance",
24 "platform",
25 "projectManagement",
26 "review"
27 ]
28 },
29 {
30 "login": "vantezzen",
31 "name": "Bennett",
32 "avatar_url": "https://avatars2.githubusercontent.com/u/10333196?v=4",
33 "profile": "https://vantezzen.io",
34 "contributions": [
35 "code",
36 "design",
37 "doc",
38 "ideas",
39 "translation"
40 ]
41 },
42 {
43 "login": "adlk",
44 "name": "Stefan Malzner",
45 "avatar_url": "https://avatars1.githubusercontent.com/u/3265004?v=4",
46 "profile": "http://www.adlk.io",
47 "contributions": [
48 "code",
49 "content",
50 "design",
51 "doc",
52 "ideas",
53 "infra",
54 "projectManagement",
55 "test",
56 "translation"
57 ]
58 }
59 ],
60 "contributorsPerLine": 7
61}
diff --git a/.github/FEATURE_PROPOSAL_TEMPLATE.md b/.github/FEATURE_PROPOSAL_TEMPLATE.md
index 164844c54..e8cdd41ed 100644
--- a/.github/FEATURE_PROPOSAL_TEMPLATE.md
+++ b/.github/FEATURE_PROPOSAL_TEMPLATE.md
@@ -6,7 +6,7 @@
6### Motivation and Context 6### Motivation and Context
7<!--- 7<!---
8* Why is this change required? 8* Why is this change required?
9* How is this improving the Franz experience? 9* How is this improving the Ferdi experience?
10* What problem does it solve? 10* What problem does it solve?
11--> 11-->
12 12
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 9cb983771..c0ce853ae 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,6 +1,6 @@
1<!--- Provide a general summary of the issue in the Title above --> 1<!--- Provide a general summary of the issue in the Title above -->
2 2
3<!-- This repository is only for the Franz client. Please use this form ( https://bitly.com/franz-service-request ) for service requests or check out the guide ( https://github.com/meetfranz/plugins ) to create your own service integration. --> 3<!-- This repository is only for the Ferdi client. Please use this form ( https://bitly.com/franz-service-request ) for service requests or check out the guide ( https://github.com/meetfranz/plugins ) to create your own service integration. -->
4 4
5<!--- If you want to propose a feature, use this template: https://raw.githubusercontent.com/meetfranz/franz/master/.github/FEATURE_PROPOSAL_TEMPLATE.md --> 5<!--- If you want to propose a feature, use this template: https://raw.githubusercontent.com/meetfranz/franz/master/.github/FEATURE_PROPOSAL_TEMPLATE.md -->
6 6
@@ -32,5 +32,5 @@
32 32
33### Your Environment 33### Your Environment
34<!--- Include as many relevant details about the environment you experienced the bug in --> 34<!--- Include as many relevant details about the environment you experienced the bug in -->
35* Franz Version used: 35* Ferdi Version used:
36* Operating System and version: 36* Operating System and version:
diff --git a/.travis.yml b/.travis.yml
index c7e2c714c..ca238e86b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,53 +1,36 @@
1matrix: 1matrix:
2 include: 2 include:
3 - os: linux 3 - os: linux
4 dist: xenial 4 dist: xenial
5 addons: 5 addons:
6 apt: 6 apt:
7 packages: 7 packages:
8 - libx11-dev 8 - libx11-dev
9 - libxext-dev 9 - libxext-dev
10 - libxss-dev 10 - libxss-dev
11 - libxkbfile-dev 11 - libxkbfile-dev
12 - os: osx 12 - os: osx
13 osx_image: xcode8.3 13 osx_image: xcode8.3
14
15language: node_js 14language: node_js
16
17install: 15install:
18- echo do nothing 16 - echo do nothing
19
20before_script: 17before_script:
21- npx lerna bootstrap 18 - npx lerna bootstrap
22- npm install node-sass -g 19 - npm install node-sass -g
23
24script: 20script:
25- npm run test 21 - npm run test
26- travis_wait 30 npm run build 22 - travis_wait 30 npm run build
27
28cache: npm 23cache: npm
29
30notifications:
31 email: false
32 slack:
33 secure: GMiD9uhGUNkJbasOMvfUmQx/SKG8wd/MC4IPtiZZnlLkiN6eJQnV3p9OeMaiSCcq19gQ65z898h55PXwFX5pFqmGMQF0zdA3VXlVh7wrUU/Z8cYxCBaZTIOgNwtrteT9V9easV/5BuUGLHVgAFYEhS5tJDu2GU4UKdm6mko4YyxKHdsCsvkRpv+zpFF1a+G2ZUwWHDhTZsBJbx7SW7xzPKYI+vq+bNnbyC6p0kpeTehf29A8CoIgQlDctzk4aOHkj35WHIiKS5yzr/nb8oY/B6vCdfFHCrCkZxQrxPEagyYTfEusWwQRJ4rvwt8dgBO1A3ckO+AC1MEAYRYHgQMI5K86tcQ7/su5iOhu9NDbZ/BfriaTDlrurKMWPhZ/RVnFUT4tn7XVVcMxz6/FYFDYIDSHEn5E20a7qV1ixF7XKoJU6eOfo3qZ7euxiZIbDbHBH+Y2ZmzUGfrQ7DFlefMEM/6Laa0jNGOSvfc6mvk1x63bVTT5KfYEX4ztXnBY77haG4/h5bIHyNDzLsZ5vxXbvmHZb6ToMVn9UT6HS0sZQ/B4bghJbdZuOrPFlz8UNRpwoBS4HpLUndhYCo0ppxd3yCd5gqEhIJzEiJNoMq+LA9/iheLbWlJVdjP2WRQ2/m9VCSxnivTdNhnp6lSATiXAgq2WN2LGhTSGtXgqtcYGXhk=
34
35deploy: 24deploy:
36 provider: s3 25 provider: s3
37 access_key_id: AKIAIVRBS4YFL4ZBLCLA 26 access_key_id: AKIAQ5BBD2PS3SMVP3EZ
38 secret_access_key: 27 secret_access_key:
39 secure: LZ38b5DmVisSBfpuPN8IVNCe3C+hJYX88jV+/ifzlB6/h1VUU/w5B3xHNBoOC2P53D2htMtL7K1/JLxzKGmUsnOJe5boF0QmBPTXUVosurxwMPEuLotQucgqcOoFnJkq+BUziBy+uWsZnk6ECbI5hFHQJAM9iNjOcgrfK08NLYvtdwYKYXwhwSrN4dxBKkfRINgAqHCp6bMuH2Imgy9iM+Iy5ydMPUsKDRHj1ByJrhcb1nJTjWImH08IU970fEl0P2+bCV6nUTzc9x9mwaJAF6uaH9L44lLptHIhGgqAZGzwQ7z6ANJj3CJRWFbqW2/9/0+4YKhyBbE9TPIvWIXmVeoPm0nWLDfVDN2RwTGtv+oSgPS+UhcFTVanekKfrzMTVdi1jQ8LIL7Ur3DcXNhwTPuc7PjLPPuwTS2AQRkPMyyWLRAz40/YUepASRdqoVMYI+CZiwu2AZIoUr1HO1eXj/0rqC8t/mhUSOXTxNGRCP9SQTJ/FSaI5dZh3oY7bkz7uxDNbPvChcs7hPFqqhPUFIkX36DaDqjze6IqtZ6pDz7XTqzUET/Jgny9vGBypvGj5fJpYZJytqEs0SsPGQGaxSmAWjcPWQX56Tr98iwVvzAJ0hl7lJHVaEzuxoYmD0ijg2zysoZ7GPBXJg2n9W+QaS0KVuda1r+sQ6C2wY8yvi8= 28 secure: E57KoS2chEeYbW3LNXDpXIUAHWRV0IXSu6QxondJqXTK+Nh486+RaOx2Ln8xwjsN57rgE1nJkRrWzOzTGXjU1AEWWk4BLXeKrd/1nAK0akw7BYB7+IOPX15+n+PxO057oHyhzpf36iPhmXc3xz6mI8qvF6g5XIHGlTTs/+W6Va+OuhlXlotT5i4bRhsszpn7Mjd0fc5pVergFTu279eQtPkKEGfAyX1pAZJ5OObbsUckpFYTw2UG26qvAGZhzN6NdzNItKjDLzTw6WN1AJ6PZUu78xQRCbHJ0D+2BZSw+yvVx4UxC+ifJuouyzSlsRgRoOI4zNHDzOqDbiZ0gxbq7Eh0M+mFqMMq9U4FTZw7EjUuF3+929fLiyrdC+MD5+S98O3xZMdNl8C1rBUunWo/0nLMLROElZ/Zq9C7+Hfzz3HsN6+YHcvkKCBibHUmQB970090NspVy4fFCjze3XyJGDVgYMSB7dJ+zjawkZ3irEsA9g1h9V9GXiwHQ5Anuek1PtLHlwfNg9rOZDJQyaaZ96D6F1jYPw+JSDhiSvQgjeLbCPVdkp/UPWu8Aiks6p9oqMheKmd6J647H+/wrjU2GDbZiBOv0bSlPnaoBnapM3yVUSX8nkfVBpbewvIC+U9duzq7rZTVEwRWS3AIh1Z6aLYpGss9iZHE7vxJUKWVpyk=
40 bucket: franz-travis 29 bucket: ferdi-travis
41 region: eu-central-1 30 region: ap-southeast-1
42 local_dir: out 31 local_dir: out
43 upload-dir: "$TRAVIS_BUILD_NUMBER" 32 upload-dir: "$TRAVIS_BUILD_NUMBER"
44 skip_cleanup: true 33 skip_cleanup: true
45 acl: public_read 34 acl: public_read
46 on: 35 on:
47 all_branches: true 36 all_branches: true
48
49env:
50 global:
51 - secure: fddJzSmNYVX024jnhnFXEuAK1spEYi3y3RZdWaBtjQnzoObAxkcRW263JNpXQy+b7egnp2hSy8FvlQU+L967911F5Y70Pe3An4oI72hnS3DL4Njp2Dw5PwviwMA+X2ddWhzK4+k/JU6r8jBv1FGQ6ZjwSeaO/t8UKOsE8wDBFLRhnHqoR7QbM7zmKjzh/1oofunGbHsPOHmN4f7jBwSuSFTZltEENcQg3ZP++0NHU8UJdlpfqZOkro8v4AJMngAHeHlNtjwaAHdVv+6+kkwc4E/0Cy6YNyyBkbzipyngNY3GwnwzmNzvsfICD1TGklksjBlMQq7ld7eCiaYRNvyHVEmXJ17qlq7HhxkYgNy32hPRwb5Cv6o4M4tv8qS8UUk4W1RvBJ5fcmfZGQwGXPyQ/m85RJtrNfbYtr84jYcprTnSeji/9PuZv0f87dxELYm3DYmNUa1cgJqEdLUsEd0bMwUYNLnCSfu4ea2zxwir6LSBtJJCbGKxX87s5IOTrHkrWDe+PWd52v+UjQks7MBRlJnntTWo69Yy+ayXV1TnGVOHA5znHvPOvFlAF+y8tLGd4AGvehK1SAkf0+idmc9Q9xKk0QypT3ibjJui4D50p7sSajkzz3P2pUqOS/9HmjMfPMPN+Nl+48GU0CvB2aBGhdmp9vu54VaFzUaAGNGj4WI=
52 - secure: AjJvKhQ1jIloxogMdtOzJqovPQUBSA0lfHcRsmGdP8HIRKSRi9tKxCCgicTMpMWfvY7qtdexXBbl2/zl6cOhjfTYeAhNwwCg+dw7OVcE8LUn4E+gYZCYIKbNmmkVKsSckQd4h2IcyvqdqLwzjrEzdF95MoUI8WqdLwvQJLkoIaXju6ZT76FslGSUVXk58ZN7p2nr3kW8V7KclIzn/yyyYXE4bjBmS4djuvCReeSfSViCuX5CGT8avBb/IF/M5S7hcQVybmmalysOrranzSx0o9PPUIT9hHqqRpXW6iss2qVj+kCaFiC3ftlApVgizBoGcNAMA8N7hX8kkEjJSpiy7Vswuev9mVN9X94VwVZGyNvdYD8cKKxqTsfFDZDgefnuSYUhymKSBgM4yScYF6IPNJWFWJTugtVeMJ8ivqZhwJuD20nt6x7gGB1FS6m7axxRWeyp7h0FqWU9l6ZfmwHcRziVKNTk9BB4XIqco9M2wjV/YH321IGVwtVR5y6zty10+xk38TthCOidgBurFlMKbFKH5g9K5+84dhsCW0avMlJ0+QkgId0uAVyho+09Wx4cKqXLfobpznkUX+S0Um6G/NbAaUAU+SqBsm+X9CKFsPd/YJoxLdF7eBCG/3Fy4roKg3J4mBYeXe3wVnGft8Eeg0aNpOArMSStMY337UpdV80=
53 - secure: WNQBUyNvjTwMFm6pPzNXZYRvgLCTgEm93vLX/0amtr6gT6N8ZsTLL5+Ht3+v51MUOsjEe6tCM4cLSh4wSuwWcSEsUjK0jiqknlpgKKl6xLeo+1t8u6BKSgTpipWqrSD24TbvMrFUyeQrqCGRdZc3Ax/F1ERD81SXcsrg2evCL8g8zsYjxSMXc44drKrvYi68s/5ALrI+oH3t2PYsGuuP1ipj5CbaizUHEa5d8TukHRl96lxoEKCQ4Sa8UXRPNQsdb3TdkVmIEPIoioWU6AMPweBWR6Ky994aKwp0wWn1adWP49v8skMYWbirENniSxShtztF/NYqPQFyoyh0WD/C/ZJPh04HlMxnmQPUROq+LxBFz8WBY1eHDmz6GxH1lDYzneTtlRa5K8izvs2+ROhpVmmKeOgWHaL1ZRMy8Cn3V88kadF7i1K9NnqB6ZPyynJJctj7o0af6Os9/ZPqWfqIOWWeXgfXVzj17xJADfh6Z9epW95hdKZjnIf9IqGAI8aYTqhVL8DKTJ+PSGhJIOEX+ERm+0U9gMlwllwjHCDhBe42zCGuLaWZ239yD1eacM0Ko7yUM+xobiiF0FlB8VI/nBOpGdeUKNLeUfikLHILWd04AVRCNaQU67GMOHekfWdGR8tEh9I/5Y6GJR0IQL5eGmDUjSN0u/Ovss4jSEBOaXo=
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 17d506895..f6c7458bf 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -4,7 +4,7 @@
4 { 4 {
5 "type": "node", 5 "type": "node",
6 "request": "launch", 6 "request": "launch",
7 "name": "Franz - Test API", 7 "name": "Ferdi - Test API",
8 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 8 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
9 "program": "${workspaceFolder}/build/index.js", 9 "program": "${workspaceFolder}/build/index.js",
10 "protocol": "inspector", 10 "protocol": "inspector",
@@ -16,7 +16,7 @@
16 { 16 {
17 "type": "node", 17 "type": "node",
18 "request": "launch", 18 "request": "launch",
19 "name": "Franz – Live API", 19 "name": "Ferdi – Live API",
20 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 20 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
21 "program": "${workspaceFolder}/build/index.js", 21 "program": "${workspaceFolder}/build/index.js",
22 "protocol": "inspector", 22 "protocol": "inspector",
@@ -28,7 +28,7 @@
28 { 28 {
29 "type": "node", 29 "type": "node",
30 "request": "launch", 30 "request": "launch",
31 "name": "Franz – Local API", 31 "name": "Ferdi – Local API",
32 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 32 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
33 "program": "${workspaceFolder}/build/index.js", 33 "program": "${workspaceFolder}/build/index.js",
34 "protocol": "inspector", 34 "protocol": "inspector",
@@ -40,7 +40,7 @@
40 { 40 {
41 "type": "node", 41 "type": "node",
42 "request": "launch", 42 "request": "launch",
43 "name": "(Win Sim) Franz - Test API", 43 "name": "(Win Sim) Ferdi - Test API",
44 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 44 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
45 "program": "${workspaceFolder}/build/index.js", 45 "program": "${workspaceFolder}/build/index.js",
46 "protocol": "inspector", 46 "protocol": "inspector",
@@ -53,7 +53,7 @@
53 { 53 {
54 "type": "node", 54 "type": "node",
55 "request": "launch", 55 "request": "launch",
56 "name": "(Win Sim) Franz – Live API", 56 "name": "(Win Sim) Ferdi – Live API",
57 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 57 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
58 "program": "${workspaceFolder}/build/index.js", 58 "program": "${workspaceFolder}/build/index.js",
59 "protocol": "inspector", 59 "protocol": "inspector",
@@ -66,7 +66,7 @@
66 { 66 {
67 "type": "node", 67 "type": "node",
68 "request": "launch", 68 "request": "launch",
69 "name": "(Win Sim) Franz – Local API", 69 "name": "(Win Sim) Ferdi – Local API",
70 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 70 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
71 "program": "${workspaceFolder}/build/index.js", 71 "program": "${workspaceFolder}/build/index.js",
72 "protocol": "inspector", 72 "protocol": "inspector",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b51582088..72794b646 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,16 @@
1## [5.3.1](https://github.com/meetfranz/franz/compare/v5.3.0...v5.3.1) (2019-09-06) 1## [5.3.1](https://github.com/kytwb/ferdi/compare/v5.3.0...v5.3.1) (2019-09-06)
2- Fix WhatsApp recipe not working (#19 and #21)
3
4
5## [5.3.0](https://github.com/kytwb/ferdi/compare/v5.2.1-beta.1...v5.3.0) (2019-09-06)
6- Removes pages begging you to donate after registration
7- Makes all users Premium by default
8- [Add option to change server to a custom](https://github.com/kytwb/ferdi#servers) [ferdi-server](https://github.com/vantezzen/ferdi-server)
9- Remove "Franz is better together" popup
10- Makes RocketChat self-hosted generally available
11- Comes with a custom branding proper to Ferdi
12
13## [5.2.1-beta.1](https://github.com/meetfranz/franz/compare/v5.2.0...v5.2.1-beta.1) (2019-07-30)
2 14
3### Features 15### Features
4 16
@@ -127,7 +139,7 @@
127* **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a)) 139* **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a))
128* **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e)) 140* **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e))
129* **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325)) 141* **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325))
130* **Windows:** Add option to quit Franz from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b)) 142* **Windows:** Add option to quit Ferdi from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b))
131 143
132### Bug Fixes 144### Bug Fixes
133 145
@@ -136,7 +148,7 @@
136* **Service:** Fix service zoom (cmd/ctrl+ & cmd/ctrl-) ([91a0f59](https://github.com/meetfranz/franz/commit/91a0f59)) 148* **Service:** Fix service zoom (cmd/ctrl+ & cmd/ctrl-) ([91a0f59](https://github.com/meetfranz/franz/commit/91a0f59))
137* **Service:** Fix shortcut for (un)muting notifications & audio ([1df3342](https://github.com/meetfranz/franz/commit/1df3342)) 149* **Service:** Fix shortcut for (un)muting notifications & audio ([1df3342](https://github.com/meetfranz/franz/commit/1df3342))
138* **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316) 150* **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316)
139* **Windows:** Fix losing window when "Keep Franz in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722)) 151* **Windows:** Fix losing window when "Keep Ferdi in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722))
140 152
141### General 153### General
142 154
@@ -153,7 +165,7 @@
153### Features 165### Features
154 166
155* **Spellchecker:** Add automatic spellcheck language detection ([a5e7171](https://github.com/meetfranz/franz/commit/a5e7171)) 167* **Spellchecker:** Add automatic spellcheck language detection ([a5e7171](https://github.com/meetfranz/franz/commit/a5e7171))
156* **Windows:** Add option to quit Franz from Taskbar ([8808601](https://github.com/meetfranz/franz/commit/8808601)) 168* **Windows:** Add option to quit Ferdi from Taskbar ([8808601](https://github.com/meetfranz/franz/commit/8808601))
157 169
158### Bug Fixes 170### Bug Fixes
159 171
@@ -235,7 +247,7 @@
235 247
236### Features 248### Features
237 249
238* **Windows:** Add taskbar action to reset Franz window ([08fa75a](https://github.com/meetfranz/franz/commit/08fa75a)) 250* **Windows:** Add taskbar action to reset Ferdi window ([08fa75a](https://github.com/meetfranz/franz/commit/08fa75a))
239* **Context Menu:** Add "Go Back" and "Go Forward" ([5c18595](https://github.com/meetfranz/franz/commit/5c18595)) 251* **Context Menu:** Add "Go Back" and "Go Forward" ([5c18595](https://github.com/meetfranz/franz/commit/5c18595))
240* **Context Menu:** Add Lookup, Search Google for ([5d5aa0c](https://github.com/meetfranz/franz/commit/5d5aa0c)) 252* **Context Menu:** Add Lookup, Search Google for ([5d5aa0c](https://github.com/meetfranz/franz/commit/5d5aa0c))
241* **App:** Add `--devtools` command line arg to automatically open Dev Tools ([84fc3a0](https://github.com/meetfranz/franz/commit/84fc3a0)) 253* **App:** Add `--devtools` command line arg to automatically open Dev Tools ([84fc3a0](https://github.com/meetfranz/franz/commit/84fc3a0))
@@ -330,7 +342,7 @@
330 342
331* **App:** Fix memory leak in recipe polling loop ([c99848f](https://github.com/meetfranz/franz/commit/c99848f)) 343* **App:** Fix memory leak in recipe polling loop ([c99848f](https://github.com/meetfranz/franz/commit/c99848f))
332* **App:** Fix validation for side-by-side teamId & customURL ([bd51150](https://github.com/meetfranz/franz/commit/bd51150)) 344* **App:** Fix validation for side-by-side teamId & customURL ([bd51150](https://github.com/meetfranz/franz/commit/bd51150))
333* **App:** Reload Franz instead of all services one by one on sleep resume ([4e5f7af](https://github.com/meetfranz/franz/commit/4e5f7af)) 345* **App:** Reload Ferdi instead of all services one by one on sleep resume ([4e5f7af](https://github.com/meetfranz/franz/commit/4e5f7af))
334* **App:** Fix toggle buttons shown during import ([1220e2c](https://github.com/meetfranz/franz/commit/1220e2c)) 346* **App:** Fix toggle buttons shown during import ([1220e2c](https://github.com/meetfranz/franz/commit/1220e2c))
335fix(App): Bugfix Fix memory leak in recipe polling loop 347fix(App): Bugfix Fix memory leak in recipe polling loop
336* **App:** Fix invite screen [object Object] values ([81c4e99](https://github.com/meetfranz/franz/commit/81c4e99)) 348* **App:** Fix invite screen [object Object] values ([81c4e99](https://github.com/meetfranz/franz/commit/81c4e99))
@@ -429,8 +441,8 @@ fix(App): Bugfix Fix memory leak in recipe polling loop
429### Bug Fixes 441### Bug Fixes
430 442
431* **App:** Add checks to service url validation to prevent app freeze ([db8515f](https://github.com/meetfranz/franz/commit/db8515f)) 443* **App:** Add checks to service url validation to prevent app freeze ([db8515f](https://github.com/meetfranz/franz/commit/db8515f))
432* **macOS:** Fix disable launch Franz on start ([34bba09](https://github.com/meetfranz/franz/commit/34bba09)) 444* **macOS:** Fix disable launch Ferdi on start ([34bba09](https://github.com/meetfranz/franz/commit/34bba09))
433* **Windows:** Launch Franz on start when selected ([34bba09](https://github.com/meetfranz/franz/commit/34bba09)) 445* **Windows:** Launch Ferdi on start when selected ([34bba09](https://github.com/meetfranz/franz/commit/34bba09))
434* **Onboarding:** Fix issue with import of on-premise services ([7c7d27d](https://github.com/meetfranz/franz/commit/7c7d27d)) 446* **Onboarding:** Fix issue with import of on-premise services ([7c7d27d](https://github.com/meetfranz/franz/commit/7c7d27d))
435* **Shortcuts:** Flip shortcut to navigate to next/previous service ([37d5923](https://github.com/meetfranz/franz/commit/37d5923)) 447* **Shortcuts:** Flip shortcut to navigate to next/previous service ([37d5923](https://github.com/meetfranz/franz/commit/37d5923))
436* **Windows:** Open Window when app is pinned to taskbar and minimized to system tray ([777814a](https://github.com/meetfranz/franz/commit/777814a)) 448* **Windows:** Open Window when app is pinned to taskbar and minimized to system tray ([777814a](https://github.com/meetfranz/franz/commit/777814a))
@@ -460,10 +472,10 @@ e58f558)) ([GustavoKatel](https://github.com/GustavoKatel))
460 472
461### Bug Fixes 473### Bug Fixes
462 474
463* **App:** Force Franz to use single window ([2ae409e](https://github.com/meetfranz/franz/commit/2ae409e)) 475* **App:** Force Ferdi to use single window ([2ae409e](https://github.com/meetfranz/franz/commit/2ae409e))
464* **Onboarding:** Fix enable/disable service import toggle ([23174f9](https://github.com/meetfranz/franz/commit/23174f9)) 476* **Onboarding:** Fix enable/disable service import toggle ([23174f9](https://github.com/meetfranz/franz/commit/23174f9))
465* **Onboarding:** Fix service import ([99d1c01](https://github.com/meetfranz/franz/commit/99d1c01)) 477* **Onboarding:** Fix service import ([99d1c01](https://github.com/meetfranz/franz/commit/99d1c01))
466* **Payment:** Fix payment window when name contains special character ([a854614](https://github.com/meetfranz/franz/commit/a854614)) 478* **Payment:** Fix payment window when name contains special character ([a854614](https://github.com/meetfranz/franz/commit/a854614))
467* **macOS:** Add macOS dark theme system tray icon ([55805f1](https://github.com/meetfranz/franz/commit/55805f1)) 479* **macOS:** Add macOS dark theme system tray icon ([55805f1](https://github.com/meetfranz/franz/commit/55805f1))
468* **Windows:** Fix enable/disable autostart on login ([eca7f3b](https://github.com/meetfranz/franz/commit/eca7f3b)) 480* **Windows:** Fix enable/disable autostart on login ([eca7f3b](https://github.com/meetfranz/franz/commit/eca7f3b))
469* **Windows:** Fix multiple system tray icons when opening/closing Franz ([5b9b0c7](https://github.com/meetfranz/franz/commit/5b9b0c7)) 481* **Windows:** Fix multiple system tray icons when opening/closing Ferdi ([5b9b0c7](https://github.com/meetfranz/franz/commit/5b9b0c7))
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index e457e187e..0b41fc123 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1,11 +1,11 @@
1# Contributor Code of Conduct 1# Contributor Code of Conduct
2 2
3As contributors and maintainers of the Franz project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities. 3As contributors and maintainers of the Ferdi project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities.
4 4
5Communication through GitHub, Slack, email or any other channel must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. 5Communication through GitHub, Slack, email or any other channel must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
6 6
7We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the project to do the same. 7We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the project to do the same.
8 8
9If any member of the community violates this code of conduct, the maintainers of the Franz project may take action, removing issues, comments, and PRs or blocking accounts as deemed appropriate. 9If any member of the community violates this code of conduct, the maintainers of the Ferdi project may take action, removing issues, comments, and PRs or blocking accounts as deemed appropriate.
10 10
11If you are subject to or witness unacceptable behavior, or have any other concerns, please open an issue or send an email to [Stefan](stefan@adlk.io). 11If you are subject to or witness unacceptable behavior, or have any other concerns, please open an issue or send an email to [Stefan](stefan@adlk.io).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 57146bd43..010777a05 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
1# Contributing to Franz 5 1# Contributing to Ferdi 5
2 2
3:tada: First off, thanks for taking the time and your effort to make Franz better! :tada: 3:tada: First off, thanks for taking the time and your effort to make Ferdi better! :tada:
4 4
5#### Table of contents 5#### Table of contents
6<!-- TOC depthFrom:2 depthTo:2 withLinks:1 updateOnSave:1 orderedList:0 --> 6<!-- TOC depthFrom:2 depthTo:2 withLinks:1 updateOnSave:1 orderedList:0 -->
@@ -14,10 +14,10 @@
14 14
15## Code of Conduct 15## Code of Conduct
16 16
17This project and everyone participating in it is governed by the [Franz Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [stefan@adlk.io](mailto:stefan@adlk.io). 17This project and everyone participating in it is governed by the [Ferdi Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [stefan@adlk.io](mailto:stefan@adlk.io).
18 18
19## What should I know before I get started? 19## What should I know before I get started?
20With Franz 5, we have completely separated the client and the services. If you have any issues with a service recipe, please do not open an issue at this repository. Instead head over to the [Franz Recipe Repository](https://github.com/meetfranz/plugins) and open a new issue there. 20With Ferdi 5, we have completely separated the client and the services. If you have any issues with a service recipe, please do not open an issue at this repository. Instead head over to the [Ferdi Recipe Repository](https://github.com/meetfranz/plugins) and open a new issue there.
21 21
22If you need help with development, want to discuss a new feature or improvement please talk to us either on [Slack](http://slack.franz.im) or open a new issue with the [feature proposal template](.github/FEATURE_PROPOSAL_TEMPLATE.md). 22If you need help with development, want to discuss a new feature or improvement please talk to us either on [Slack](http://slack.franz.im) or open a new issue with the [feature proposal template](.github/FEATURE_PROPOSAL_TEMPLATE.md).
23 23
diff --git a/README.md b/README.md
index 5397189c6..b2ee68a9f 100644
--- a/README.md
+++ b/README.md
@@ -1,63 +1,85 @@
1<img src="./build-helpers/images/icon.png" alt="" width="150"/> 1<p align="center">
2 <img src="./build-helpers/images/icon.png" alt="" width="200"/>
3</p>
2 4
3# Franz 5 5# Ferdi
4[![Build status Windows](https://ci.appveyor.com/api/projects/status/9yman4ye19x4274o/branch/master?svg=true)](https://ci.appveyor.com/project/adlk/franz/branch/master)
5 [![Build Status Mac & Linux](https://travis-ci.com/meetfranz/franz.svg?branch=master)](https://travis-ci.com/meetfranz/franz) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://meetfranz.com/payment.html)
6 6
7Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more. 7🤴🏽 Hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted features.
8 8
9## [Download Franz](https://www.meetfranz.com) 9## Features
10👉 www.meetfranz.com 10- [x] Removes the counter-productive fullscreen app delay inviting users to upgrade
11- [x] Removes pages begging you to donate after registration
12- [x] Makes all users Premium by default
13- [x] [Add option to change server to a custom](#servers) [ferdi-server](https://github.com/vantezzen/ferdi-server)
14- [x] Remove "Franz is better together" popup
15- [x] Makes RocketChat self-hosted generally available
16- [x] Comes with a custom branding proper to Ferdi
11 17
12### Or use homebrew (macOS only) 18## Servers
19Ferdi adds the option to change your Ferdi server. By default, this will be `https://api.franzinfra.com` - the official Franz server. This allows Ferdi to stay compatible with your current Franz account.
13 20
14`$ brew cask install franz` 21If you want to experience all Ferdi features, you may want to use a custom [ferdi-server](https://github.com/vantezzen/ferdi-server). ferdi-server allows you to use Premium features without restrictions and adds the ability to package and add additional recipes. You can also import your existing Franz account into your ferdi-server to start right where you left off.
15 22
16(Don't know homebrew? [brew.sh](https://brew.sh/)) 23More information on how to set up a ferdi-server can be found at <https://github.com/vantezzen/ferdi-server/blob/master/README.md>.
17 24
18## Development
19
20### Preparations
21
22#### Install Linux OS dependencies
23[Guide: Linux distribution specific dependencies](docs/linux.md)
24
25#### Fix native modules to match current electron node version
26```bash
27$ npm run rebuild
28```
29
30### Install dependencies
31Run the following command to install all dependencies, and link sibling modules with Franz.
32```bash
33$ npx lerna bootstrap
34```
35
36If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`.
37
38### Run Franz Development App
39Run these two commands __simultaneously__ in different console tabs.
40
41```bash
42$ npm run dev
43$ npm run start
44```
45Be aware that the development database will be reset regularly.
46 25
47## Packaging 26## Packaging
27
48```bash 28```bash
29$ npm install
49$ npm run build 30$ npm run build
50``` 31```
51 32
52## How can I support the project? 33Deliverables will be available in the `./out` folder.
53If you have found a bug that hasn't been reported yet or want to request a new feature, please open a new issue.
54
55## I need help?
56Join the Franz community on [Slack](http://slack.franz.im) and get in touch with us.
57 34
58## Create your own plugins/recipes 35## Developing
59You can find all the Information at the [Plugins repository](https://github.com/meetfranz/plugins). 36### Preparations
60For questions feel free to ask in the [community Slack](http://slack.franz.im) 37- [Install Linux dependencies](docs/linux.md) if you are developing on Linux
61 38- Make sure you are running NodeJS v10. Versions above will throw an errow when trying to install due to an [old fsevent dependency](https://github.com/fsevents/fsevents/issues/278)
62## License 39
63Franz 5 is open-source licensed under the Apache-2.0 License. 40### Setup
411. Fix native modules to match current electron node version
42 ```
43 npm run rebuild
44 ```
452. Install dependencies using lerna
46 ```
47 npx lerna bootstrap
48 ```
493. Run Ferdi Development App
50 Run these two commands *simultaneously* in different console tabs.
51 ```
52 npm run dev
53 npm run start
54 ```
55
56## Releases
57
58You can find the binaries for Linux, MacOS and Windows in the [latest release](https://github.com/kytwb/Ferdi/releases/tag/Ferdi-5.2.0-beta.3) assets. Assets are continuously delivered through [Travis](https://travis-ci.org/kytwb/Ferdi) for Linux/MacOS and [Appveyor](https://ci.appveyor.com/project/kytwb/Ferdi) for Windows.
59
60## Contributors ✨
61
62Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
63<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
64<!-- prettier-ignore-start -->
65<!-- markdownlint-disable -->
66<table>
67 <tr>
68 <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="100px;" alt="Amine Mouafik"/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="#question-kytwb" title="Answering Questions">💬</a> <a href="https://github.com/kytwb/ferdi/commits?author=kytwb" title="Code">💻</a> <a href="https://github.com/kytwb/ferdi/commits?author=kytwb" title="Documentation">📖</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-kytwb" title="Maintenance">🚧</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">📦</a> <a href="#projectManagement-kytwb" title="Project Management">📆</a> <a href="#review-kytwb" title="Reviewed Pull Requests">👀</a></td>
69 <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="100px;" alt="Bennett"/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=vantezzen" title="Code">💻</a> <a href="#design-vantezzen" title="Design">🎨</a> <a href="https://github.com/kytwb/ferdi/commits?author=vantezzen" title="Documentation">📖</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#translation-vantezzen" title="Translation">🌍</a></td>
70 <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="100px;" alt="Stefan Malzner"/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Code">💻</a> <a href="#content-adlk" title="Content">🖋</a> <a href="#design-adlk" title="Design">🎨</a> <a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Documentation">📖</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-adlk" title="Project Management">📆</a> <a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Tests">⚠️</a> <a href="#translation-adlk" title="Translation">🌍</a></td>
71 </tr>
72</table>
73
74<!-- markdownlint-enable -->
75<!-- prettier-ignore-end -->
76<!-- ALL-CONTRIBUTORS-LIST:END -->
77
78<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
79<!-- prettier-ignore-start -->
80<!-- markdownlint-disable -->
81<!-- markdownlint-enable -->
82<!-- prettier-ignore-end -->
83<!-- ALL-CONTRIBUTORS-LIST:END -->
84
85This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
diff --git a/appveyor.yml b/appveyor.yml
index 1dd0dbd92..8df0934df 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,10 +1,4 @@
1environment: 1environment:
2 GH_TOKEN:
3 secure: LiO1Z/i16UV5YyElROSUykQqpJowSMK86I7Nw4G/NMa0q5yNA7EsUqEiJUL+OG01
4 CSC_LINK:
5 secure: NEYFWgUIAB//y2GR4AJOaegwuNjkxyNsdDf5A40dYovebTUsnIB5k4GCbU3I6JKW9iwH2ldU7Z+QawfyFerNgw==
6 CSC_KEY_PASSWORD:
7 secure: t8ypNTPKTmvRfd3hHA4aMOtC5KOFqOw3AsKhpU7140Q=
8 APPVEYOR_CACHE_SKIP_RESTORE: true 2 APPVEYOR_CACHE_SKIP_RESTORE: true
9 3
10version: 5.0.1.{build} 4version: 5.0.1.{build}
@@ -14,7 +8,7 @@ install:
14 - npx lerna bootstrap 8 - npx lerna bootstrap
15 9
16cache: 10cache:
17 - '%APPDATA%\npm-cache' 11 - '%APPDATA%\npm-cache'
18 12
19before_build: 13before_build:
20 - npm run lint 14 - npm run lint
@@ -23,11 +17,6 @@ before_build:
23build_script: 17build_script:
24 - npm run build 18 - npm run build
25 19
26notifications:
27 - provider: Slack
28 incoming_webhook:
29 secure: 2NnhP/L7Jk9PDE0JvdNnYVBnmDHFRWHmTQBQ1492ZQ7TpD2xQ/cXi3+G1Spr8zN5O8H+MQi4oMn3Ih2w0e8ZkHgQw138jvK/OfZO+FlF/mI=
30
31artifacts: 20artifacts:
32 - path: out\*.exe 21 - path: out\*.exe
33 - path: out\*.yml 22 - path: out\*.yml
diff --git a/branding/README.md b/branding/README.md
new file mode 100644
index 000000000..0abb2b016
--- /dev/null
+++ b/branding/README.md
@@ -0,0 +1,13 @@
1# Ferdi branding
2Ferdi uses a custom branding, inspired by Franz's.
3
4## Logo
5<img src="logo.png" alt="Logo" width="200"/>
6
7## Beard
8<img src="beard.png" alt="Ferdi's Beard" width="200"/>
9
10## Gradient
11<img src="gradient.png" alt="Gradient" width="200"/>
12
13Ferdi's Gradient is rotated by 45°. It goes from `#CE9FFC` in the top left to `#7367F0` in the bottom right. \ No newline at end of file
diff --git a/branding/beard.png b/branding/beard.png
new file mode 100644
index 000000000..3c1f92842
--- /dev/null
+++ b/branding/beard.png
Binary files differ
diff --git a/branding/gradient.png b/branding/gradient.png
new file mode 100644
index 000000000..06d117541
--- /dev/null
+++ b/branding/gradient.png
Binary files differ
diff --git a/branding/logo.png b/branding/logo.png
new file mode 100644
index 000000000..3f0643121
--- /dev/null
+++ b/branding/logo.png
Binary files differ
diff --git a/branding/logo.psd b/branding/logo.psd
new file mode 100644
index 000000000..baec1c0aa
--- /dev/null
+++ b/branding/logo.psd
Binary files differ
diff --git a/build-helpers/images/dmgInstaller.tiff b/build-helpers/images/dmgInstaller.tiff
index faff9f245..f09096221 100644
--- a/build-helpers/images/dmgInstaller.tiff
+++ b/build-helpers/images/dmgInstaller.tiff
Binary files differ
diff --git a/build-helpers/images/icon.icns b/build-helpers/images/icon.icns
index 15120c210..e3a0b93e2 100644
--- a/build-helpers/images/icon.icns
+++ b/build-helpers/images/icon.icns
Binary files differ
diff --git a/build-helpers/images/icon.ico b/build-helpers/images/icon.ico
index db626c20b..b7667d97f 100644
--- a/build-helpers/images/icon.ico
+++ b/build-helpers/images/icon.ico
Binary files differ
diff --git a/build-helpers/images/icon.png b/build-helpers/images/icon.png
index 9c39f06e0..2b8d83b56 100644
--- a/build-helpers/images/icon.png
+++ b/build-helpers/images/icon.png
Binary files differ
diff --git a/build-helpers/images/icons/1024x1024.png b/build-helpers/images/icons/1024x1024.png
index 9c39f06e0..a89df7d40 100644
--- a/build-helpers/images/icons/1024x1024.png
+++ b/build-helpers/images/icons/1024x1024.png
Binary files differ
diff --git a/build-helpers/images/icons/128x128.png b/build-helpers/images/icons/128x128.png
index 8eb811283..248905851 100644
--- a/build-helpers/images/icons/128x128.png
+++ b/build-helpers/images/icons/128x128.png
Binary files differ
diff --git a/build-helpers/images/icons/16x16.png b/build-helpers/images/icons/16x16.png
index 2523dd8a7..353dc1590 100644
--- a/build-helpers/images/icons/16x16.png
+++ b/build-helpers/images/icons/16x16.png
Binary files differ
diff --git a/build-helpers/images/icons/24x24.png b/build-helpers/images/icons/24x24.png
index 9cb17a0b1..135dd0988 100644
--- a/build-helpers/images/icons/24x24.png
+++ b/build-helpers/images/icons/24x24.png
Binary files differ
diff --git a/build-helpers/images/icons/256x256.png b/build-helpers/images/icons/256x256.png
index 5742147b8..a2f83bf63 100644
--- a/build-helpers/images/icons/256x256.png
+++ b/build-helpers/images/icons/256x256.png
Binary files differ
diff --git a/build-helpers/images/icons/32x32.png b/build-helpers/images/icons/32x32.png
index 09b88a805..f6f5cf406 100644
--- a/build-helpers/images/icons/32x32.png
+++ b/build-helpers/images/icons/32x32.png
Binary files differ
diff --git a/build-helpers/images/icons/48x48.png b/build-helpers/images/icons/48x48.png
index c9d2f331c..7999ef39f 100644
--- a/build-helpers/images/icons/48x48.png
+++ b/build-helpers/images/icons/48x48.png
Binary files differ
diff --git a/build-helpers/images/icons/512x512.png b/build-helpers/images/icons/512x512.png
index 9d5f1c658..d219c64ae 100644
--- a/build-helpers/images/icons/512x512.png
+++ b/build-helpers/images/icons/512x512.png
Binary files differ
diff --git a/build-helpers/images/icons/64x64.png b/build-helpers/images/icons/64x64.png
index 7842217ed..94960c0e2 100644
--- a/build-helpers/images/icons/64x64.png
+++ b/build-helpers/images/icons/64x64.png
Binary files differ
diff --git a/build-helpers/images/icons/96x96.png b/build-helpers/images/icons/96x96.png
index bbae07f45..4dee83800 100644
--- a/build-helpers/images/icons/96x96.png
+++ b/build-helpers/images/icons/96x96.png
Binary files differ
diff --git a/build-helpers/images/win-app-ico.ico b/build-helpers/images/win-app-ico.ico
index 339ba79ca..658826324 100644
--- a/build-helpers/images/win-app-ico.ico
+++ b/build-helpers/images/win-app-ico.ico
Binary files differ
diff --git a/build-helpers/images/win-installer-loading-splash.gif b/build-helpers/images/win-installer-loading-splash.gif
index 02598281f..2f1c9d827 100644
--- a/build-helpers/images/win-installer-loading-splash.gif
+++ b/build-helpers/images/win-installer-loading-splash.gif
Binary files differ
diff --git a/docs/example-feature/api.js b/docs/example-feature/api.js
index 65207e877..d9c769c91 100644
--- a/docs/example-feature/api.js
+++ b/docs/example-feature/api.js
@@ -1,5 +1,5 @@
1export default { 1export default {
2 async getName() { 2 async getName() {
3 return Promise.resolve('Franz'); 3 return Promise.resolve('Ferdi');
4 }, 4 },
5}; 5};
diff --git a/electron-builder.yml b/electron-builder.yml
index 97aafa207..77e3cdd6b 100644
--- a/electron-builder.yml
+++ b/electron-builder.yml
@@ -2,7 +2,7 @@ directories:
2 app: ./build 2 app: ./build
3 output: ./out 3 output: ./out
4 4
5appId: "com.meetfranz.franz" 5appId: "com.kytwb.ferdi"
6 6
7compression: maximum 7compression: maximum
8 8
@@ -27,9 +27,9 @@ win:
27linux: 27linux:
28 icon: ./build-helpers/images/icons 28 icon: ./build-helpers/images/icons
29 category: Network;InstantMessaging; 29 category: Network;InstantMessaging;
30 executableName: franz 30 executableName: ferdi
31 synopsis: "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more." 31 synopsis: "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more."
32 description: "Franz is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Franz currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts, GroupMe, Skype and many more. You can download Franz for free for Mac & Windows." 32 description: "Ferdi is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Ferdi currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts, GroupMe, Skype and many more. You can download Ferdi for free for Mac & Windows."
33 target: 33 target:
34 - target: AppImage 34 - target: AppImage
35 - target: deb 35 - target: deb
@@ -40,7 +40,7 @@ nsis:
40 oneClick: true 40 oneClick: true
41 41
42protocols: 42protocols:
43 name: Franz 43 name: Ferdi
44 schemes: [franz] 44 schemes: [franz]
45 45
46asarUnpack: 46asarUnpack:
diff --git a/package-lock.json b/package-lock.json
index 048425eb6..4ce2893a3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "franz", 2 "name": "ferdi",
3 "version": "5.2.1-beta.1", 3 "version": "5.3.0",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
@@ -2184,7 +2184,8 @@
2184 }, 2184 },
2185 "@meetfranz/theme": { 2185 "@meetfranz/theme": {
2186 "version": "1.0.14", 2186 "version": "1.0.14",
2187 "bundled": true, 2187 "resolved": "https://registry.npmjs.org/@meetfranz/theme/-/theme-1.0.14.tgz",
2188 "integrity": "sha512-iWP+3ifiNum98sHKiNdUJK+R0p4Z7TT8OenA1N2BnSC6CFob+dLhzAK+o5lxcyEcKZKYDwd7JKRZj93wqpBPpg==",
2188 "requires": { 2189 "requires": {
2189 "color": "^3.1.0" 2190 "color": "^3.1.0"
2190 } 2191 }
@@ -2212,7 +2213,8 @@
2212 }, 2213 },
2213 "@meetfranz/theme": { 2214 "@meetfranz/theme": {
2214 "version": "1.0.14", 2215 "version": "1.0.14",
2215 "bundled": true, 2216 "resolved": "https://registry.npmjs.org/@meetfranz/theme/-/theme-1.0.14.tgz",
2217 "integrity": "sha512-iWP+3ifiNum98sHKiNdUJK+R0p4Z7TT8OenA1N2BnSC6CFob+dLhzAK+o5lxcyEcKZKYDwd7JKRZj93wqpBPpg==",
2216 "requires": { 2218 "requires": {
2217 "color": "^3.1.0" 2219 "color": "^3.1.0"
2218 } 2220 }
@@ -2787,6 +2789,127 @@
2787 "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", 2789 "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
2788 "dev": true 2790 "dev": true
2789 }, 2791 },
2792 "all-contributors-cli": {
2793 "version": "6.9.0",
2794 "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.9.0.tgz",
2795 "integrity": "sha512-zIzES49OCnhaf7Q7KxyVhe6wYDvrvMKbWZh+hHJigN1VYEW8EQjbpXYf3IEaqB4gC/TDs/CYcINzstgnwlN/Lg==",
2796 "dev": true,
2797 "requires": {
2798 "@babel/runtime": "^7.2.0",
2799 "async": "^3.0.1",
2800 "chalk": "^2.3.0",
2801 "didyoumean": "^1.2.1",
2802 "inquirer": "^6.2.1",
2803 "json-fixer": "^1.3.1-0",
2804 "lodash": "^4.11.2",
2805 "pify": "^4.0.1",
2806 "request": "^2.72.0",
2807 "yargs": "^14.0.0"
2808 },
2809 "dependencies": {
2810 "ansi-regex": {
2811 "version": "4.1.0",
2812 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2813 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2814 "dev": true
2815 },
2816 "async": {
2817 "version": "3.1.0",
2818 "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz",
2819 "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==",
2820 "dev": true
2821 },
2822 "cliui": {
2823 "version": "5.0.0",
2824 "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
2825 "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
2826 "dev": true,
2827 "requires": {
2828 "string-width": "^3.1.0",
2829 "strip-ansi": "^5.2.0",
2830 "wrap-ansi": "^5.1.0"
2831 }
2832 },
2833 "get-caller-file": {
2834 "version": "2.0.5",
2835 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2836 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2837 "dev": true
2838 },
2839 "pify": {
2840 "version": "4.0.1",
2841 "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
2842 "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
2843 "dev": true
2844 },
2845 "require-main-filename": {
2846 "version": "2.0.0",
2847 "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
2848 "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
2849 "dev": true
2850 },
2851 "string-width": {
2852 "version": "3.1.0",
2853 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2854 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2855 "dev": true,
2856 "requires": {
2857 "emoji-regex": "^7.0.1",
2858 "is-fullwidth-code-point": "^2.0.0",
2859 "strip-ansi": "^5.1.0"
2860 }
2861 },
2862 "strip-ansi": {
2863 "version": "5.2.0",
2864 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2865 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2866 "dev": true,
2867 "requires": {
2868 "ansi-regex": "^4.1.0"
2869 }
2870 },
2871 "wrap-ansi": {
2872 "version": "5.1.0",
2873 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
2874 "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
2875 "dev": true,
2876 "requires": {
2877 "ansi-styles": "^3.2.0",
2878 "string-width": "^3.0.0",
2879 "strip-ansi": "^5.0.0"
2880 }
2881 },
2882 "yargs": {
2883 "version": "14.0.0",
2884 "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.0.0.tgz",
2885 "integrity": "sha512-ssa5JuRjMeZEUjg7bEL99AwpitxU/zWGAGpdj0di41pOEmJti8NR6kyUIJBkR78DTYNPZOU08luUo0GTHuB+ow==",
2886 "dev": true,
2887 "requires": {
2888 "cliui": "^5.0.0",
2889 "decamelize": "^1.2.0",
2890 "find-up": "^3.0.0",
2891 "get-caller-file": "^2.0.1",
2892 "require-directory": "^2.1.1",
2893 "require-main-filename": "^2.0.0",
2894 "set-blocking": "^2.0.0",
2895 "string-width": "^3.0.0",
2896 "which-module": "^2.0.0",
2897 "y18n": "^4.0.0",
2898 "yargs-parser": "^13.1.1"
2899 }
2900 },
2901 "yargs-parser": {
2902 "version": "13.1.1",
2903 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
2904 "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
2905 "dev": true,
2906 "requires": {
2907 "camelcase": "^5.0.0",
2908 "decamelize": "^1.2.0"
2909 }
2910 }
2911 }
2912 },
2790 "amdefine": { 2913 "amdefine": {
2791 "version": "1.0.1", 2914 "version": "1.0.1",
2792 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 2915 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
@@ -6060,6 +6183,12 @@
6060 "wrappy": "1" 6183 "wrappy": "1"
6061 } 6184 }
6062 }, 6185 },
6186 "didyoumean": {
6187 "version": "1.2.1",
6188 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz",
6189 "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=",
6190 "dev": true
6191 },
6063 "diff": { 6192 "diff": {
6064 "version": "3.5.0", 6193 "version": "3.5.0",
6065 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 6194 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
@@ -7913,10 +8042,13 @@
7913 } 8042 }
7914 }, 8043 },
7915 "eslint-utils": { 8044 "eslint-utils": {
7916 "version": "1.3.1", 8045 "version": "1.4.2",
7917 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", 8046 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
7918 "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", 8047 "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
7919 "dev": true 8048 "dev": true,
8049 "requires": {
8050 "eslint-visitor-keys": "^1.0.0"
8051 }
7920 }, 8052 },
7921 "eslint-visitor-keys": { 8053 "eslint-visitor-keys": {
7922 "version": "1.0.0", 8054 "version": "1.0.0",
@@ -9037,22 +9169,22 @@
9037 "dependencies": { 9169 "dependencies": {
9038 "abbrev": { 9170 "abbrev": {
9039 "version": "1.1.1", 9171 "version": "1.1.1",
9040 "resolved": false, 9172 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
9041 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 9173 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
9042 }, 9174 },
9043 "ansi-regex": { 9175 "ansi-regex": {
9044 "version": "2.1.1", 9176 "version": "2.1.1",
9045 "resolved": false, 9177 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
9046 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 9178 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
9047 }, 9179 },
9048 "aproba": { 9180 "aproba": {
9049 "version": "1.2.0", 9181 "version": "1.2.0",
9050 "resolved": false, 9182 "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
9051 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 9183 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
9052 }, 9184 },
9053 "are-we-there-yet": { 9185 "are-we-there-yet": {
9054 "version": "1.1.5", 9186 "version": "1.1.5",
9055 "resolved": false, 9187 "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
9056 "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 9188 "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
9057 "requires": { 9189 "requires": {
9058 "delegates": "^1.0.0" 9190 "delegates": "^1.0.0"
@@ -9060,12 +9192,12 @@
9060 }, 9192 },
9061 "balanced-match": { 9193 "balanced-match": {
9062 "version": "1.0.0", 9194 "version": "1.0.0",
9063 "resolved": false, 9195 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
9064 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 9196 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
9065 }, 9197 },
9066 "brace-expansion": { 9198 "brace-expansion": {
9067 "version": "1.1.11", 9199 "version": "1.1.11",
9068 "resolved": false, 9200 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
9069 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 9201 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
9070 "requires": { 9202 "requires": {
9071 "balanced-match": "^1.0.0", 9203 "balanced-match": "^1.0.0",
@@ -9074,27 +9206,27 @@
9074 }, 9206 },
9075 "chownr": { 9207 "chownr": {
9076 "version": "1.1.1", 9208 "version": "1.1.1",
9077 "resolved": false, 9209 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
9078 "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" 9210 "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
9079 }, 9211 },
9080 "code-point-at": { 9212 "code-point-at": {
9081 "version": "1.1.0", 9213 "version": "1.1.0",
9082 "resolved": false, 9214 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
9083 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 9215 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
9084 }, 9216 },
9085 "concat-map": { 9217 "concat-map": {
9086 "version": "0.0.1", 9218 "version": "0.0.1",
9087 "resolved": false, 9219 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
9088 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 9220 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
9089 }, 9221 },
9090 "console-control-strings": { 9222 "console-control-strings": {
9091 "version": "1.1.0", 9223 "version": "1.1.0",
9092 "resolved": false, 9224 "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
9093 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 9225 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
9094 }, 9226 },
9095 "core-util-is": { 9227 "core-util-is": {
9096 "version": "1.0.2", 9228 "version": "1.0.2",
9097 "resolved": false, 9229 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
9098 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 9230 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
9099 }, 9231 },
9100 "debug": { 9232 "debug": {
@@ -9104,22 +9236,22 @@
9104 }, 9236 },
9105 "deep-extend": { 9237 "deep-extend": {
9106 "version": "0.6.0", 9238 "version": "0.6.0",
9107 "resolved": false, 9239 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
9108 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 9240 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
9109 }, 9241 },
9110 "delegates": { 9242 "delegates": {
9111 "version": "1.0.0", 9243 "version": "1.0.0",
9112 "resolved": false, 9244 "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
9113 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 9245 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
9114 }, 9246 },
9115 "detect-libc": { 9247 "detect-libc": {
9116 "version": "1.0.3", 9248 "version": "1.0.3",
9117 "resolved": false, 9249 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
9118 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 9250 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
9119 }, 9251 },
9120 "fs-minipass": { 9252 "fs-minipass": {
9121 "version": "1.2.5", 9253 "version": "1.2.5",
9122 "resolved": false, 9254 "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
9123 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", 9255 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
9124 "requires": { 9256 "requires": {
9125 "minipass": "^2.2.1" 9257 "minipass": "^2.2.1"
@@ -9127,12 +9259,12 @@
9127 }, 9259 },
9128 "fs.realpath": { 9260 "fs.realpath": {
9129 "version": "1.0.0", 9261 "version": "1.0.0",
9130 "resolved": false, 9262 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
9131 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 9263 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
9132 }, 9264 },
9133 "gauge": { 9265 "gauge": {
9134 "version": "2.7.4", 9266 "version": "2.7.4",
9135 "resolved": false, 9267 "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
9136 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 9268 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
9137 "requires": { 9269 "requires": {
9138 "aproba": "^1.0.3", 9270 "aproba": "^1.0.3",
@@ -9145,7 +9277,7 @@
9145 }, 9277 },
9146 "glob": { 9278 "glob": {
9147 "version": "7.1.3", 9279 "version": "7.1.3",
9148 "resolved": false, 9280 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
9149 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 9281 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
9150 "requires": { 9282 "requires": {
9151 "fs.realpath": "^1.0.0", 9283 "fs.realpath": "^1.0.0",
@@ -9158,12 +9290,12 @@
9158 }, 9290 },
9159 "has-unicode": { 9291 "has-unicode": {
9160 "version": "2.0.1", 9292 "version": "2.0.1",
9161 "resolved": false, 9293 "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
9162 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 9294 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
9163 }, 9295 },
9164 "iconv-lite": { 9296 "iconv-lite": {
9165 "version": "0.4.24", 9297 "version": "0.4.24",
9166 "resolved": false, 9298 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
9167 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 9299 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
9168 "requires": { 9300 "requires": {
9169 "safer-buffer": ">= 2.1.2 < 3" 9301 "safer-buffer": ">= 2.1.2 < 3"
@@ -9171,7 +9303,7 @@
9171 }, 9303 },
9172 "ignore-walk": { 9304 "ignore-walk": {
9173 "version": "3.0.1", 9305 "version": "3.0.1",
9174 "resolved": false, 9306 "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
9175 "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", 9307 "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
9176 "requires": { 9308 "requires": {
9177 "minimatch": "^3.0.4" 9309 "minimatch": "^3.0.4"
@@ -9179,7 +9311,7 @@
9179 }, 9311 },
9180 "inflight": { 9312 "inflight": {
9181 "version": "1.0.6", 9313 "version": "1.0.6",
9182 "resolved": false, 9314 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
9183 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 9315 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
9184 "requires": { 9316 "requires": {
9185 "once": "^1.3.0", 9317 "once": "^1.3.0",
@@ -9188,17 +9320,17 @@
9188 }, 9320 },
9189 "inherits": { 9321 "inherits": {
9190 "version": "2.0.3", 9322 "version": "2.0.3",
9191 "resolved": false, 9323 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
9192 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 9324 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
9193 }, 9325 },
9194 "ini": { 9326 "ini": {
9195 "version": "1.3.5", 9327 "version": "1.3.5",
9196 "resolved": false, 9328 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
9197 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 9329 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
9198 }, 9330 },
9199 "is-fullwidth-code-point": { 9331 "is-fullwidth-code-point": {
9200 "version": "1.0.0", 9332 "version": "1.0.0",
9201 "resolved": false, 9333 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
9202 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 9334 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
9203 "requires": { 9335 "requires": {
9204 "number-is-nan": "^1.0.0" 9336 "number-is-nan": "^1.0.0"
@@ -9206,18 +9338,6 @@
9206 } 9338 }
9207 } 9339 }
9208 }, 9340 },
9209 "fstream": {
9210 "version": "1.0.11",
9211 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
9212 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
9213 "dev": true,
9214 "requires": {
9215 "graceful-fs": "^4.1.2",
9216 "inherits": "~2.0.0",
9217 "mkdirp": ">=0.5 0",
9218 "rimraf": "2"
9219 }
9220 },
9221 "function-bind": { 9341 "function-bind": {
9222 "version": "1.1.1", 9342 "version": "1.1.1",
9223 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 9343 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -10898,26 +11018,15 @@
10898 "dev": true 11018 "dev": true
10899 }, 11019 },
10900 "handlebars": { 11020 "handlebars": {
10901 "version": "4.1.0", 11021 "version": "4.1.2",
10902 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", 11022 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
10903 "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", 11023 "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
10904 "dev": true, 11024 "dev": true,
10905 "requires": { 11025 "requires": {
10906 "async": "^2.5.0", 11026 "neo-async": "^2.6.0",
10907 "optimist": "^0.6.1", 11027 "optimist": "^0.6.1",
10908 "source-map": "^0.6.1", 11028 "source-map": "^0.6.1",
10909 "uglify-js": "^3.1.4" 11029 "uglify-js": "^3.1.4"
10910 },
10911 "dependencies": {
10912 "async": {
10913 "version": "2.6.1",
10914 "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
10915 "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
10916 "dev": true,
10917 "requires": {
10918 "lodash": "^4.17.10"
10919 }
10920 }
10921 } 11030 }
10922 }, 11031 },
10923 "har-schema": { 11032 "har-schema": {
@@ -12817,9 +12926,9 @@
12817 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 12926 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
12818 }, 12927 },
12819 "js-yaml": { 12928 "js-yaml": {
12820 "version": "3.12.1", 12929 "version": "3.13.1",
12821 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", 12930 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
12822 "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", 12931 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
12823 "requires": { 12932 "requires": {
12824 "argparse": "^1.0.7", 12933 "argparse": "^1.0.7",
12825 "esprima": "^4.0.0" 12934 "esprima": "^4.0.0"
@@ -12899,6 +13008,17 @@
12899 "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 13008 "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
12900 "dev": true 13009 "dev": true
12901 }, 13010 },
13011 "json-fixer": {
13012 "version": "1.3.2",
13013 "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.3.2.tgz",
13014 "integrity": "sha512-9Z60lwBP3/SnwnvmIIb13xjXyOpD0ezVAcjfQQHgMbs2Gsl5g5mogfobQO8C0mCSafLwC5lHtxYPwdT1dADrzw==",
13015 "dev": true,
13016 "requires": {
13017 "@babel/runtime": "^7.4.5",
13018 "chalk": "^2.4.2",
13019 "pegjs": "^0.10.0"
13020 }
13021 },
12902 "json-parse-better-errors": { 13022 "json-parse-better-errors": {
12903 "version": "1.0.2", 13023 "version": "1.0.2",
12904 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 13024 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -13448,9 +13568,9 @@
13448 } 13568 }
13449 }, 13569 },
13450 "lodash": { 13570 "lodash": {
13451 "version": "4.17.11", 13571 "version": "4.17.15",
13452 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 13572 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
13453 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" 13573 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
13454 }, 13574 },
13455 "lodash._basecopy": { 13575 "lodash._basecopy": {
13456 "version": "3.0.1", 13576 "version": "3.0.1",
@@ -13609,9 +13729,9 @@
13609 "dev": true 13729 "dev": true
13610 }, 13730 },
13611 "lodash.mergewith": { 13731 "lodash.mergewith": {
13612 "version": "4.6.1", 13732 "version": "4.6.2",
13613 "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", 13733 "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
13614 "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", 13734 "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
13615 "dev": true 13735 "dev": true
13616 }, 13736 },
13617 "lodash.once": { 13737 "lodash.once": {
@@ -13830,9 +13950,9 @@
13830 } 13950 }
13831 }, 13951 },
13832 "marked": { 13952 "marked": {
13833 "version": "0.6.1", 13953 "version": "0.7.0",
13834 "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", 13954 "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz",
13835 "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==" 13955 "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg=="
13836 }, 13956 },
13837 "matchdep": { 13957 "matchdep": {
13838 "version": "2.0.0", 13958 "version": "2.0.0",
@@ -14136,9 +14256,9 @@
14136 } 14256 }
14137 }, 14257 },
14138 "mixin-deep": { 14258 "mixin-deep": {
14139 "version": "1.3.1", 14259 "version": "1.3.2",
14140 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", 14260 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
14141 "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", 14261 "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
14142 "dev": true, 14262 "dev": true,
14143 "requires": { 14263 "requires": {
14144 "for-in": "^1.0.2", 14264 "for-in": "^1.0.2",
@@ -14510,6 +14630,18 @@
14510 "which": "1" 14630 "which": "1"
14511 }, 14631 },
14512 "dependencies": { 14632 "dependencies": {
14633 "fstream": {
14634 "version": "1.0.12",
14635 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
14636 "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
14637 "dev": true,
14638 "requires": {
14639 "graceful-fs": "^4.1.2",
14640 "inherits": "~2.0.0",
14641 "mkdirp": ">=0.5 0",
14642 "rimraf": "2"
14643 }
14644 },
14513 "semver": { 14645 "semver": {
14514 "version": "5.3.0", 14646 "version": "5.3.0",
14515 "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 14647 "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
@@ -14517,13 +14649,13 @@
14517 "dev": true 14649 "dev": true
14518 }, 14650 },
14519 "tar": { 14651 "tar": {
14520 "version": "2.2.1", 14652 "version": "2.2.2",
14521 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", 14653 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
14522 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 14654 "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
14523 "dev": true, 14655 "dev": true,
14524 "requires": { 14656 "requires": {
14525 "block-stream": "*", 14657 "block-stream": "*",
14526 "fstream": "^1.0.2", 14658 "fstream": "^1.0.12",
14527 "inherits": "2" 14659 "inherits": "2"
14528 } 14660 }
14529 } 14661 }
@@ -16128,6 +16260,12 @@
16128 "sha.js": "^2.4.8" 16260 "sha.js": "^2.4.8"
16129 } 16261 }
16130 }, 16262 },
16263 "pegjs": {
16264 "version": "0.10.0",
16265 "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz",
16266 "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=",
16267 "dev": true
16268 },
16131 "pend": { 16269 "pend": {
16132 "version": "1.2.0", 16270 "version": "1.2.0",
16133 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 16271 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -18192,9 +18330,9 @@
18192 "dev": true 18330 "dev": true
18193 }, 18331 },
18194 "set-value": { 18332 "set-value": {
18195 "version": "2.0.0", 18333 "version": "2.0.1",
18196 "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", 18334 "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
18197 "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", 18335 "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
18198 "dev": true, 18336 "dev": true,
18199 "requires": { 18337 "requires": {
18200 "extend-shallow": "^2.0.1", 18338 "extend-shallow": "^2.0.1",
@@ -20056,38 +20194,15 @@
20056 "dev": true 20194 "dev": true
20057 }, 20195 },
20058 "union-value": { 20196 "union-value": {
20059 "version": "1.0.0", 20197 "version": "1.0.1",
20060 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", 20198 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
20061 "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", 20199 "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
20062 "dev": true, 20200 "dev": true,
20063 "requires": { 20201 "requires": {
20064 "arr-union": "^3.1.0", 20202 "arr-union": "^3.1.0",
20065 "get-value": "^2.0.6", 20203 "get-value": "^2.0.6",
20066 "is-extendable": "^0.1.1", 20204 "is-extendable": "^0.1.1",
20067 "set-value": "^0.4.3" 20205 "set-value": "^2.0.1"
20068 },
20069 "dependencies": {
20070 "extend-shallow": {
20071 "version": "2.0.1",
20072 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
20073 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
20074 "dev": true,
20075 "requires": {
20076 "is-extendable": "^0.1.0"
20077 }
20078 },
20079 "set-value": {
20080 "version": "0.4.3",
20081 "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
20082 "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
20083 "dev": true,
20084 "requires": {
20085 "extend-shallow": "^2.0.1",
20086 "is-extendable": "^0.1.1",
20087 "is-plain-object": "^2.0.1",
20088 "to-object-path": "^0.3.0"
20089 }
20090 }
20091 } 20206 }
20092 }, 20207 },
20093 "unique-filename": { 20208 "unique-filename": {
diff --git a/package.json b/package.json
index 980242e5f..36580a0f7 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
1{ 1{
2 "name": "franz", 2 "name": "ferdi",
3 "productName": "Franz", 3 "productName": "Ferdi",
4 "appId": "com.meetfranz.franz", 4 "appId": "com.kytwb.ferdi",
5 "version": "5.3.1", 5 "version": "5.3.1",
6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", 6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.",
7 "copyright": "adlk x franz - Stefan Malzner", 7 "copyright": "kytwb",
8 "main": "index.js", 8 "main": "index.js",
9 "homepage": "https://meetfranz.com", 9 "homepage": "https://github.com/kytwb/ferdi",
10 "repository": "https://github.com/meetfranz/franz.git", 10 "repository": "https://github.com/kytwb/ferdi.git",
11 "private": true, 11 "private": true,
12 "scripts": { 12 "scripts": {
13 "prestart": "npm run rebuild", 13 "prestart": "npm run rebuild",
@@ -17,7 +17,7 @@
17 "dev": "cross-env NODE_ENV=development gulp dev", 17 "dev": "cross-env NODE_ENV=development gulp dev",
18 "test": "jest", 18 "test": "jest",
19 "test:watch": "jest --watch", 19 "test:watch": "jest --watch",
20 "lint": "eslint src", 20 "lint": "eslint --quiet --fix src",
21 "manage-translations": "node ./src/i18n/manage-translations.js", 21 "manage-translations": "node ./src/i18n/manage-translations.js",
22 "sign": "gulp sign", 22 "sign": "gulp sign",
23 "prebuild": "gulp build", 23 "prebuild": "gulp build",
@@ -25,6 +25,7 @@
25 "rebuild": "npx electron-rebuild", 25 "rebuild": "npx electron-rebuild",
26 "commit": "git-cz", 26 "commit": "git-cz",
27 "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", 27 "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
28 "contributors": "all-contributors",
28 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"", 29 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"",
29 "packages": "npx lerna publish --no-git-tag-version", 30 "packages": "npx lerna publish --no-git-tag-version",
30 "uidev": "cd uidev && webpack-dev-server", 31 "uidev": "cd uidev && webpack-dev-server",
@@ -56,8 +57,8 @@
56 "fs-extra": "7.0.1", 57 "fs-extra": "7.0.1",
57 "hex-to-rgba": "1.0.2", 58 "hex-to-rgba": "1.0.2",
58 "jsonwebtoken": "8.5.1", 59 "jsonwebtoken": "8.5.1",
59 "lodash": "^4.17.4", 60 "lodash": "4.17.15",
60 "marked": "0.6.1", 61 "marked": "0.7.0",
61 "mdi": "^1.9.33", 62 "mdi": "^1.9.33",
62 "mime-types": "2.1.21", 63 "mime-types": "2.1.21",
63 "mobx": "5.7.0", 64 "mobx": "5.7.0",
@@ -113,6 +114,7 @@
113 "@types/react-dom": "16.0.11", 114 "@types/react-dom": "16.0.11",
114 "@types/react-jss": "^8.6.0", 115 "@types/react-jss": "^8.6.0",
115 "@types/uuid": "3.4.4", 116 "@types/uuid": "3.4.4",
117 "all-contributors-cli": "6.9.0",
116 "babel-eslint": "10.0.1", 118 "babel-eslint": "10.0.1",
117 "babel-loader": "^8.0.4", 119 "babel-loader": "^8.0.4",
118 "babel-plugin-react-intl": "3.0.1", 120 "babel-plugin-react-intl": "3.0.1",
diff --git a/packages/forms/src/button/index.tsx b/packages/forms/src/button/index.tsx
index b53c2da05..b81154a43 100644
--- a/packages/forms/src/button/index.tsx
+++ b/packages/forms/src/button/index.tsx
@@ -14,7 +14,7 @@ interface IProps extends IFormField, IWithStyle {
14 className?: string; 14 className?: string;
15 disabled?: boolean; 15 disabled?: boolean;
16 id?: string; 16 id?: string;
17 type?: string; 17 type?: "button" | "reset" | "submit" | undefined;
18 onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void; 18 onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
19 buttonType?: ButtonType; 19 buttonType?: ButtonType;
20 stretch?: boolean; 20 stretch?: boolean;
@@ -187,7 +187,7 @@ class ButtonComponent extends Component<IProps> {
187 let showLoader = false; 187 let showLoader = false;
188 if (loaded) { 188 if (loaded) {
189 showLoader = !loaded; 189 showLoader = !loaded;
190 console.warn('Franz Button prop `loaded` will be deprecated in the future. Please use `busy` instead'); 190 console.warn('Ferdi Button prop `loaded` will be deprecated in the future. Please use `busy` instead');
191 } 191 }
192 if (busy) { 192 if (busy) {
193 showLoader = busy; 193 showLoader = busy;
diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts
index 4e042afce..79a6d676f 100644
--- a/packages/theme/src/themes/default/index.ts
+++ b/packages/theme/src/themes/default/index.ts
@@ -11,7 +11,7 @@ export interface IStyleTypes {
11 }; 11 };
12} 12}
13 13
14export const brandPrimary = '#3498db'; 14export const brandPrimary = '#7367F0';
15export const brandSuccess = '#5cb85c'; 15export const brandSuccess = '#5cb85c';
16export const brandInfo = '#5bc0de'; 16export const brandInfo = '#5bc0de';
17export const brandWarning = '#FF9F00'; 17export const brandWarning = '#FF9F00';
diff --git a/packages/theme/src/themes/legacy/index.ts b/packages/theme/src/themes/legacy/index.ts
index 2114b92c1..17dcf883e 100644
--- a/packages/theme/src/themes/legacy/index.ts
+++ b/packages/theme/src/themes/legacy/index.ts
@@ -1,5 +1,5 @@
1/* legacy config, injected into sass */ 1/* legacy config, injected into sass */
2export const themeBrandPrimary = '#3498db'; 2export const themeBrandPrimary = '#7367F0';
3export const themeBrandSuccess = '#5cb85c'; 3export const themeBrandSuccess = '#5cb85c';
4export const themeBrandInfo = '#5bc0de'; 4export const themeBrandInfo = '#5bc0de';
5export const themeBrandWarning = '#FF9F00'; 5export const themeBrandWarning = '#FF9F00';
diff --git a/src/I18n.js b/src/I18n.js
index e33141576..14ee6599c 100644
--- a/src/I18n.js
+++ b/src/I18n.js
@@ -9,7 +9,7 @@ import UserStore from './stores/UserStore';
9 9
10export default @inject('stores') @observer class I18N extends Component { 10export default @inject('stores') @observer class I18N extends Component {
11 componentDidUpdate() { 11 componentDidUpdate() {
12 window.franz.menu.rebuild(); 12 window.ferdi.menu.rebuild();
13 } 13 }
14 14
15 render() { 15 render() {
@@ -18,7 +18,7 @@ export default @inject('stores') @observer class I18N extends Component {
18 return ( 18 return (
19 <IntlProvider 19 <IntlProvider
20 {...{ locale, key: locale, messages: translations[locale] }} 20 {...{ locale, key: locale, messages: translations[locale] }}
21 ref={(intlProvider) => { window.franz.intl = intlProvider ? intlProvider.getChildContext().intl : null; }} 21 ref={(intlProvider) => { window.ferdi.intl = intlProvider ? intlProvider.getChildContext().intl : null; }}
22 > 22 >
23 {children} 23 {children}
24 </IntlProvider> 24 </IntlProvider>
diff --git a/src/api/apiBase.js b/src/api/apiBase.js
new file mode 100644
index 000000000..e8d571171
--- /dev/null
+++ b/src/api/apiBase.js
@@ -0,0 +1,32 @@
1/**
2 * Get API base URL from store
3 */
4import {
5 API_VERSION,
6} from '../environment';
7
8const apiBase = () => {
9 let url;
10
11 if (!window.ferdi
12 || !window.ferdi.stores.settings
13 || !window.ferdi.stores.settings.all
14 || !window.ferdi.stores.settings.all.app.server) {
15 // Stores have not yet been loaded - send invalid URL to force a retry when stores are loaded
16 // "Why 1.1.1.1 as the default, invalid URL?"
17 // 1.1.1.1 is the server for Cloudflare's DNS service and will be the same across most networks.
18 // Using a random IP could result in unwanted connections, using localhost could unwantedly
19 // connect to local develoment servers.
20 // 1.1.1.1 also sends a status 400 response for invalid routes. Other servers may return status 401
21 // on some routes. This would result in Ferdi deleting its current authToken as it thinks it
22 // has gone invalid.
23 url = 'https://1.1.1.1';
24 } else {
25 // Load URL from store
26 url = window.ferdi.stores.settings.all.app.server;
27 }
28
29 return `${url}/${API_VERSION}`;
30};
31
32export default apiBase;
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js
index f56c7b6e4..293fcda26 100644
--- a/src/api/server/ServerApi.js
+++ b/src/api/server/ServerApi.js
@@ -15,6 +15,7 @@ import OrderModel from '../../models/Order';
15import { sleep } from '../../helpers/async-helpers'; 15import { sleep } from '../../helpers/async-helpers';
16 16
17import { API } from '../../environment'; 17import { API } from '../../environment';
18import apiBase from '../apiBase';
18import { prepareAuthRequest, sendAuthRequest } from '../utils/auth'; 19import { prepareAuthRequest, sendAuthRequest } from '../utils/auth';
19 20
20import { 21import {
@@ -38,8 +39,6 @@ const { app } = remote;
38const { default: fetch } = remote.require('electron-fetch'); 39const { default: fetch } = remote.require('electron-fetch');
39 40
40const SERVER_URL = API; 41const SERVER_URL = API;
41const API_VERSION = 'v1';
42const API_URL = `${SERVER_URL}/${API_VERSION}`;
43 42
44export default class ServerApi { 43export default class ServerApi {
45 recipePreviews = []; 44 recipePreviews = [];
@@ -48,7 +47,7 @@ export default class ServerApi {
48 47
49 // User 48 // User
50 async login(email, passwordHash) { 49 async login(email, passwordHash) {
51 const request = await sendAuthRequest(`${API_URL}/auth/login`, { 50 const request = await sendAuthRequest(`${apiBase()}/auth/login`, {
52 method: 'POST', 51 method: 'POST',
53 headers: { 52 headers: {
54 Authorization: `Basic ${window.btoa(`${email}:${passwordHash}`)}`, 53 Authorization: `Basic ${window.btoa(`${email}:${passwordHash}`)}`,
@@ -64,7 +63,7 @@ export default class ServerApi {
64 } 63 }
65 64
66 async signup(data) { 65 async signup(data) {
67 const request = await sendAuthRequest(`${API_URL}/auth/signup`, { 66 const request = await sendAuthRequest(`${apiBase()}/auth/signup`, {
68 method: 'POST', 67 method: 'POST',
69 body: JSON.stringify(data), 68 body: JSON.stringify(data),
70 }, false); 69 }, false);
@@ -92,7 +91,7 @@ export default class ServerApi {
92 } 91 }
93 92
94 async inviteUser(data) { 93 async inviteUser(data) {
95 const request = await sendAuthRequest(`${API_URL}/invite`, { 94 const request = await sendAuthRequest(`${apiBase()}/invite`, {
96 method: 'POST', 95 method: 'POST',
97 body: JSON.stringify(data), 96 body: JSON.stringify(data),
98 }); 97 });
@@ -105,7 +104,7 @@ export default class ServerApi {
105 } 104 }
106 105
107 async retrievePassword(email) { 106 async retrievePassword(email) {
108 const request = await sendAuthRequest(`${API_URL}/auth/password`, { 107 const request = await sendAuthRequest(`${apiBase()}/auth/password`, {
109 method: 'POST', 108 method: 'POST',
110 body: JSON.stringify({ 109 body: JSON.stringify({
111 email, 110 email,
@@ -121,7 +120,7 @@ export default class ServerApi {
121 } 120 }
122 121
123 async userInfo() { 122 async userInfo() {
124 const request = await sendAuthRequest(`${API_URL}/me`); 123 const request = await sendAuthRequest(`${apiBase()}/me`);
125 if (!request.ok) { 124 if (!request.ok) {
126 throw request; 125 throw request;
127 } 126 }
@@ -134,7 +133,7 @@ export default class ServerApi {
134 } 133 }
135 134
136 async updateUserInfo(data) { 135 async updateUserInfo(data) {
137 const request = await sendAuthRequest(`${API_URL}/me`, { 136 const request = await sendAuthRequest(`${apiBase()}/me`, {
138 method: 'PUT', 137 method: 'PUT',
139 body: JSON.stringify(data), 138 body: JSON.stringify(data),
140 }); 139 });
@@ -149,7 +148,7 @@ export default class ServerApi {
149 } 148 }
150 149
151 async deleteAccount() { 150 async deleteAccount() {
152 const request = await sendAuthRequest(`${API_URL}/me`, { 151 const request = await sendAuthRequest(`${apiBase()}/me`, {
153 method: 'DELETE', 152 method: 'DELETE',
154 }); 153 });
155 if (!request.ok) { 154 if (!request.ok) {
@@ -163,7 +162,7 @@ export default class ServerApi {
163 162
164 // Services 163 // Services
165 async getServices() { 164 async getServices() {
166 const request = await sendAuthRequest(`${API_URL}/me/services`); 165 const request = await sendAuthRequest(`${apiBase()}/me/services`);
167 if (!request.ok) { 166 if (!request.ok) {
168 throw request; 167 throw request;
169 } 168 }
@@ -176,7 +175,7 @@ export default class ServerApi {
176 } 175 }
177 176
178 async createService(recipeId, data) { 177 async createService(recipeId, data) {
179 const request = await sendAuthRequest(`${API_URL}/service`, { 178 const request = await sendAuthRequest(`${apiBase()}/service`, {
180 method: 'POST', 179 method: 'POST',
181 body: JSON.stringify(Object.assign({ 180 body: JSON.stringify(Object.assign({
182 recipeId, 181 recipeId,
@@ -206,7 +205,7 @@ export default class ServerApi {
206 await this.uploadServiceIcon(serviceId, data.iconFile); 205 await this.uploadServiceIcon(serviceId, data.iconFile);
207 } 206 }
208 207
209 const request = await sendAuthRequest(`${API_URL}/service/${serviceId}`, { 208 const request = await sendAuthRequest(`${apiBase()}/service/${serviceId}`, {
210 method: 'PUT', 209 method: 'PUT',
211 body: JSON.stringify(data), 210 body: JSON.stringify(data),
212 }); 211 });
@@ -234,7 +233,7 @@ export default class ServerApi {
234 233
235 delete requestData.headers['Content-Type']; 234 delete requestData.headers['Content-Type'];
236 235
237 const request = await window.fetch(`${API_URL}/service/${serviceId}`, requestData); 236 const request = await window.fetch(`${apiBase()}/service/${serviceId}`, requestData);
238 237
239 if (!request.ok) { 238 if (!request.ok) {
240 throw request; 239 throw request;
@@ -246,7 +245,7 @@ export default class ServerApi {
246 } 245 }
247 246
248 async reorderService(data) { 247 async reorderService(data) {
249 const request = await sendAuthRequest(`${API_URL}/service/reorder`, { 248 const request = await sendAuthRequest(`${apiBase()}/service/reorder`, {
250 method: 'PUT', 249 method: 'PUT',
251 body: JSON.stringify(data), 250 body: JSON.stringify(data),
252 }); 251 });
@@ -259,7 +258,7 @@ export default class ServerApi {
259 } 258 }
260 259
261 async deleteService(id) { 260 async deleteService(id) {
262 const request = await sendAuthRequest(`${API_URL}/service/${id}`, { 261 const request = await sendAuthRequest(`${apiBase()}/service/${id}`, {
263 method: 'DELETE', 262 method: 'DELETE',
264 }); 263 });
265 if (!request.ok) { 264 if (!request.ok) {
@@ -275,7 +274,7 @@ export default class ServerApi {
275 274
276 // Features 275 // Features
277 async getDefaultFeatures() { 276 async getDefaultFeatures() {
278 const request = await sendAuthRequest(`${API_URL}/features/default`); 277 const request = await sendAuthRequest(`${apiBase()}/features/default`);
279 if (!request.ok) { 278 if (!request.ok) {
280 throw request; 279 throw request;
281 } 280 }
@@ -287,7 +286,7 @@ export default class ServerApi {
287 } 286 }
288 287
289 async getFeatures() { 288 async getFeatures() {
290 const request = await sendAuthRequest(`${API_URL}/features`); 289 const request = await sendAuthRequest(`${apiBase()}/features`);
291 if (!request.ok) { 290 if (!request.ok) {
292 throw request; 291 throw request;
293 } 292 }
@@ -321,7 +320,7 @@ export default class ServerApi {
321 } 320 }
322 321
323 async getRecipeUpdates(recipeVersions) { 322 async getRecipeUpdates(recipeVersions) {
324 const request = await sendAuthRequest(`${API_URL}/recipes/update`, { 323 const request = await sendAuthRequest(`${apiBase()}/recipes/update`, {
325 method: 'POST', 324 method: 'POST',
326 body: JSON.stringify(recipeVersions), 325 body: JSON.stringify(recipeVersions),
327 }); 326 });
@@ -335,7 +334,7 @@ export default class ServerApi {
335 334
336 // Recipes Previews 335 // Recipes Previews
337 async getRecipePreviews() { 336 async getRecipePreviews() {
338 const request = await sendAuthRequest(`${API_URL}/recipes`); 337 const request = await sendAuthRequest(`${apiBase()}/recipes`);
339 if (!request.ok) throw request; 338 if (!request.ok) throw request;
340 const data = await request.json(); 339 const data = await request.json();
341 const recipePreviews = this._mapRecipePreviewModel(data); 340 const recipePreviews = this._mapRecipePreviewModel(data);
@@ -344,7 +343,7 @@ export default class ServerApi {
344 } 343 }
345 344
346 async getFeaturedRecipePreviews() { 345 async getFeaturedRecipePreviews() {
347 const request = await sendAuthRequest(`${API_URL}/recipes/popular`); 346 const request = await sendAuthRequest(`${apiBase()}/recipes/popular`);
348 if (!request.ok) throw request; 347 if (!request.ok) throw request;
349 348
350 const data = await request.json(); 349 const data = await request.json();
@@ -356,7 +355,7 @@ export default class ServerApi {
356 } 355 }
357 356
358 async searchRecipePreviews(needle) { 357 async searchRecipePreviews(needle) {
359 const url = `${API_URL}/recipes/search?needle=${needle}`; 358 const url = `${apiBase()}/recipes/search?needle=${needle}`;
360 const request = await sendAuthRequest(url); 359 const request = await sendAuthRequest(url);
361 if (!request.ok) throw request; 360 if (!request.ok) throw request;
362 361
@@ -371,7 +370,7 @@ export default class ServerApi {
371 const recipesDirectory = path.join(app.getPath('userData'), 'recipes'); 370 const recipesDirectory = path.join(app.getPath('userData'), 'recipes');
372 const recipeTempDirectory = path.join(recipesDirectory, 'temp', recipeId); 371 const recipeTempDirectory = path.join(recipesDirectory, 'temp', recipeId);
373 const archivePath = path.join(recipeTempDirectory, 'recipe.tar.gz'); 372 const archivePath = path.join(recipeTempDirectory, 'recipe.tar.gz');
374 const packageUrl = `${API_URL}/recipes/download/${recipeId}`; 373 const packageUrl = `${apiBase()}/recipes/download/${recipeId}`;
375 374
376 fs.ensureDirSync(recipeTempDirectory); 375 fs.ensureDirSync(recipeTempDirectory);
377 const res = await fetch(packageUrl); 376 const res = await fetch(packageUrl);
@@ -408,7 +407,7 @@ export default class ServerApi {
408 407
409 // Payment 408 // Payment
410 async getPlans() { 409 async getPlans() {
411 const request = await sendAuthRequest(`${API_URL}/payment/plans`); 410 const request = await sendAuthRequest(`${apiBase()}/payment/plans`);
412 if (!request.ok) throw request; 411 if (!request.ok) throw request;
413 const data = await request.json(); 412 const data = await request.json();
414 const plan = new PlanModel(data); 413 const plan = new PlanModel(data);
@@ -417,7 +416,7 @@ export default class ServerApi {
417 } 416 }
418 417
419 async getHostedPage(planId) { 418 async getHostedPage(planId) {
420 const request = await sendAuthRequest(`${API_URL}/payment/init`, { 419 const request = await sendAuthRequest(`${apiBase()}/payment/init`, {
421 method: 'POST', 420 method: 'POST',
422 body: JSON.stringify({ 421 body: JSON.stringify({
423 planId, 422 planId,
@@ -434,7 +433,7 @@ export default class ServerApi {
434 433
435 // News 434 // News
436 async getLatestNews() { 435 async getLatestNews() {
437 const url = `${API_URL}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`; 436 const url = `${apiBase()}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`;
438 const request = await sendAuthRequest(url); 437 const request = await sendAuthRequest(url);
439 if (!request.ok) throw request; 438 if (!request.ok) throw request;
440 const data = await request.json(); 439 const data = await request.json();
@@ -444,7 +443,7 @@ export default class ServerApi {
444 } 443 }
445 444
446 async hideNews(id) { 445 async hideNews(id) {
447 const request = await sendAuthRequest(`${API_URL}/news/${id}/read`); 446 const request = await sendAuthRequest(`${apiBase()}/news/${id}/read`);
448 if (!request.ok) throw request; 447 if (!request.ok) throw request;
449 debug('ServerApi::hideNews resolves', id); 448 debug('ServerApi::hideNews resolves', id);
450 } 449 }
@@ -469,7 +468,7 @@ export default class ServerApi {
469 if (Object.prototype.hasOwnProperty.call(config, 'services')) { 468 if (Object.prototype.hasOwnProperty.call(config, 'services')) {
470 const services = await Promise.all(config.services.map(async (s) => { 469 const services = await Promise.all(config.services.map(async (s) => {
471 const service = s; 470 const service = s;
472 const request = await sendAuthRequest(`${API_URL}/recipes/${s.service}`); 471 const request = await sendAuthRequest(`${apiBase()}/recipes/${s.service}`);
473 472
474 if (request.status === 200) { 473 if (request.status === 200) {
475 const data = await request.json(); 474 const data = await request.json();
diff --git a/src/app.js b/src/app.js
index cb3e37c64..797c178a3 100644
--- a/src/app.js
+++ b/src/app.js
@@ -18,7 +18,6 @@ import apiFactory from './api';
18import actions from './actions'; 18import actions from './actions';
19import MenuFactory from './lib/Menu'; 19import MenuFactory from './lib/Menu';
20import TouchBarFactory from './lib/TouchBar'; 20import TouchBarFactory from './lib/TouchBar';
21import * as analytics from './lib/analytics';
22 21
23import I18N from './I18n'; 22import I18N from './I18n';
24import AppLayoutContainer from './containers/layout/AppLayoutContainer'; 23import AppLayoutContainer from './containers/layout/AppLayoutContainer';
@@ -54,20 +53,20 @@ webFrame.setVisualZoomLevelLimits(1, 1);
54webFrame.setLayoutZoomLevelLimits(0, 0); 53webFrame.setLayoutZoomLevelLimits(0, 0);
55 54
56window.addEventListener('load', () => { 55window.addEventListener('load', () => {
57 const api = apiFactory(new ServerApi(), new LocalApi()); 56 const serverApi = new ServerApi();
57 const api = apiFactory(serverApi, new LocalApi());
58 const router = new RouterStore(); 58 const router = new RouterStore();
59 const history = syncHistoryWithStore(hashHistory, router);
60 const stores = storeFactory(api, actions, router); 59 const stores = storeFactory(api, actions, router);
60 const history = syncHistoryWithStore(hashHistory, router);
61 const menu = new MenuFactory(stores, actions); 61 const menu = new MenuFactory(stores, actions);
62 const touchBar = new TouchBarFactory(stores, actions); 62 const touchBar = new TouchBarFactory(stores, actions);
63 63
64 window.franz = { 64 window.ferdi = {
65 stores, 65 stores,
66 actions, 66 actions,
67 api, 67 api,
68 menu, 68 menu,
69 touchBar, 69 touchBar,
70 analytics,
71 features: {}, 70 features: {},
72 render() { 71 render() {
73 const preparedApp = ( 72 const preparedApp = (
@@ -114,7 +113,7 @@ window.addEventListener('load', () => {
114 render(preparedApp, document.getElementById('root')); 113 render(preparedApp, document.getElementById('root'));
115 }, 114 },
116 }; 115 };
117 window.franz.render(); 116 window.ferdi.render();
118}); 117});
119 118
120// Prevent drag and drop into window from redirecting 119// Prevent drag and drop into window from redirecting
diff --git a/src/assets/images/adlk.svg b/src/assets/images/adlk.svg
index eb50f345a..fac6e1051 100644
--- a/src/assets/images/adlk.svg
+++ b/src/assets/images/adlk.svg
@@ -1,53 +1,19 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="120px" height="65px" viewBox="0 0 120 65" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3 <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch --> 3<svg width="100%" height="100%" viewBox="0 0 120 65" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
4 <title>adlk-group</title> 4 <g id="adlk-group" transform="matrix(1,0,0,1,3,1)">
5 <desc>Created with Sketch.</desc> 5 <g id="Page-1" transform="matrix(1,-0,-0,1,-3,-1)">
6 <defs> 6 <use xlink:href="#_Image1" x="35.255" y="0" width="84.82px" height="65px" transform="matrix(0.997877,0,0,1,0,0)"/>
7 <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1"> 7 </g>
8 <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> 8 <g id="Fill-1" transform="matrix(1,0,0,1,2,1)">
9 <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> 9 <path id="path-3" d="M29.567,59.968C13.238,59.968 0,46.73 0,30.4C0,14.071 13.238,0.833 29.567,0.833C45.897,0.833 59.134,14.071 59.134,30.4C59.134,46.73 45.897,59.968 29.567,59.968Z"/>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix> 10 <path id="path-31" serif:id="path-3" d="M29.567,59.968C13.238,59.968 0,46.73 0,30.4C0,14.071 13.238,0.833 29.567,0.833C45.897,0.833 59.134,14.071 59.134,30.4C59.134,46.73 45.897,59.968 29.567,59.968Z" style="fill:rgb(229,31,91);stroke:white;stroke-width:2.5px;"/>
11 <feMerge> 11 </g>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode> 12 <g transform="matrix(0.576271,0,0,0.547458,9.9661,14.2627)">
13 <feMergeNode in="SourceGraphic"></feMergeNode> 13 <path d="M36.5,21.601C42.711,5 55.132,5 61.342,10.9C67.553,16.8 67.553,28.6 61.342,40.4C56.995,49.25 45.816,58.1 36.5,64C27.184,58.1 16.005,49.25 11.658,40.4C5.447,28.6 5.447,16.8 11.658,10.9C17.868,5 30.289,5 36.5,21.601Z" style="fill:white;"/>
14 </feMerge>
15 </filter>
16 <linearGradient x1="30.4719662%" y1="95.2408507%" x2="68.063052%" y2="3.5648771%" id="linearGradient-2">
17 <stop stop-color="#318CC8" offset="0%"></stop>
18 <stop stop-color="#5EC0FF" offset="100%"></stop>
19 </linearGradient>
20 <path d="M29.5671186,59.9675705 C13.237647,59.9675705 0,46.7299236 0,30.4004519 C0,14.0709803 13.237647,0.833333333 29.5671186,0.833333333 C45.8965902,0.833333333 59.1342372,14.0709803 59.1342372,30.4004519 C59.1342372,46.7299236 45.8965902,59.9675705 29.5671186,59.9675705 Z" id="path-3"></path>
21 <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-4">
22 <feMorphology radius="1.25" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
23 <feOffset dx="0" dy="1" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
24 <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
25 <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
26 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
27 </filter>
28 </defs>
29 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
30 <g id="logo" transform="translate(-1.000000, 0.000000)">
31 <g id="adlk-group" transform="translate(4.000000, 1.000000)">
32 <g id="Page-1" filter="url(#filter-1)" transform="translate(53.333333, 0.000000)">
33 <path d="M29.951734,59.6153846 C13.6222624,59.6153846 0.384615385,46.3777376 0.384615385,30.048266 C0.384615385,13.7187944 13.6222624,0.481147424 29.951734,0.481147424 C46.2812056,0.481147424 59.5188526,13.7187944 59.5188526,30.048266 C59.5188526,46.3777376 46.2812056,59.6153846 29.951734,59.6153846 Z" id="Fill-1" stroke="#FFFFFF" stroke-width="2.5" fill="url(#linearGradient-2)"></path>
34 <path d="M40.8193218,39.7759515 C40.2991334,39.7759515 39.777752,39.7461242 39.2560451,39.6885303 L39.2560451,43.1660699 C39.2560451,44.2684875 40.4320006,44.8564652 42.0489665,44.8564652 C43.6659324,44.8564652 47.3407661,45.1505083 48.8106562,42.5780922 C49.5666431,41.2550609 50.049954,39.777253 50.341611,38.5380637 C47.7706048,39.3483905 44.5464347,39.7759515 40.8193218,39.7759515" id="Fill-3" fill="#FEFEFE"></path>
35 <path d="M50.721253,36.0215602 C50.7213615,36.014727 50.7215784,36.0067007 50.7215784,36.0001929 C50.7215784,35.7047398 50.6497759,34.0216115 50.5562809,31.8479052 C50.5492308,31.8480137 50.5428315,31.8482306 50.5356729,31.8482306 C48.6476581,31.8482306 45.8548452,30.9165338 44.4370173,29.8136823 C44.0945997,29.5474057 43.7123762,29.1917557 43.3041216,28.7844772 C41.4215299,31.2340049 39.6248409,34.689418 39.3072613,37.4257217 C39.8033709,37.4891725 40.3081576,37.5235553 40.8193435,37.5235553 C44.8576366,37.5235553 48.2724847,36.9929545 50.721253,36.0215602" id="Fill-5" fill="#FEFEFE"></path>
36 <path d="M45.8200177,28.0358333 C46.832411,28.8233829 49.0605657,29.5681981 50.4596295,29.5945546 C50.3027921,25.9124538 50.1335898,21.76201 50.1335898,20.3820357 C50.1335898,17.809728 50.2079954,15.494586 49.3986448,15.494586 C47.3407769,15.494586 47.8552168,24.4244504 45.2828006,26.6292856 C45.1214077,26.7676843 44.956544,26.9196409 44.7892941,27.0838539 C45.1781339,27.4760559 45.5348686,27.8140265 45.8200177,28.0358333" id="Fill-7" fill="#FEFEFE"></path>
37 <path d="M10.0610578,29.5501499 C11.4368021,29.3757414 13.2421681,28.7220351 14.1242974,28.0358984 C14.475609,27.7625717 14.9354919,27.3128843 15.4306254,26.8023491 C15.3653307,26.7431283 15.3002529,26.6843414 15.2360428,26.6293506 C12.6636267,24.424407 13.1780665,15.4945426 11.1201987,15.4945426 C10.3109565,15.4945426 10.3852536,17.8096846 10.3852536,20.3821008 C10.3852536,21.756435 10.2173529,25.8792208 10.0610578,29.5501499" id="Fill-9" fill="#FEFEFE"></path>
38 <path d="M21.2005731,37.3395804 C20.8402592,34.4934037 18.9129807,30.8970972 16.9604304,28.4603682 C16.4311312,29.0030084 15.9377331,29.4788355 15.5071352,29.8137691 C14.2229336,30.812713 11.8100665,31.6713058 9.96359298,31.8240217 C9.86966405,34.0092251 9.79721079,35.7036335 9.79721079,36.0001713 C9.79721079,36.0653575 9.80024775,36.1457286 9.80577936,36.2371628 C12.2015093,37.0708092 15.3970452,37.5235336 19.1249174,37.5235336 C19.8311197,37.5235336 20.5248489,37.4573712 21.2005731,37.3395804" id="Fill-11" fill="#FEFEFE"></path>
39 <path d="M19.1249499,39.7759515 C15.6917717,39.7759515 12.6843105,39.4137936 10.2218758,38.7234269 C10.517329,39.9228103 10.9894682,41.3204641 11.7081439,42.5780922 C13.1781424,45.1505083 16.8529762,44.8564652 18.4698336,44.8564652 C20.0867995,44.8564652 21.262755,44.2684875 21.262755,43.1660699 L21.262755,39.6133655 C20.549394,39.7209608 19.8361416,39.7759515 19.1249499,39.7759515" id="Fill-13" fill="#FEFEFE"></path>
40 <path d="M52.954538,31.2252844 C52.5192762,31.2252844 52.057007,31.3746379 51.5802038,31.6691149 C51.5121975,31.7110901 51.2357254,31.8481872 50.5357054,31.8481872 C48.6475821,31.8481872 45.8548777,30.9165988 44.4370498,29.8137474 C43.7290036,29.2630809 42.8517551,28.3324687 41.9229867,27.3472996 C39.9696772,25.2753315 38.1247221,23.3183342 36.5281473,23.3183342 C35.3931908,23.3183342 34.0862121,23.8471997 32.8221847,24.3588195 C31.7693347,24.784862 30.6805834,25.2254386 29.9721033,25.2254386 C29.2636232,25.2254386 28.1749804,24.784862 27.1221304,24.3588195 C25.858103,23.8471997 24.5510158,23.3183342 23.4161678,23.3183342 C21.8194845,23.3183342 19.974421,25.27544 18.0212199,27.347408 C17.0924515,28.3325771 16.2152031,29.2630809 15.5071568,29.8137474 C14.0895459,30.9164904 11.296733,31.8480788 9.40850121,31.8481872 C8.7085897,31.8481872 8.4321176,31.7110901 8.36411132,31.6691149 C7.88730812,31.3746379 7.4249305,31.2252844 6.98977708,31.2252844 C6.3738159,31.2252844 5.85416983,31.547311 5.63366462,32.0656555 C5.36185643,32.7047193 5.58821864,33.4896658 6.23899643,34.1654985 C8.29393578,36.2996158 12.9907076,37.5235119 19.1249391,37.5235119 C23.1527113,37.5235119 26.7888237,35.4106533 28.8485355,33.4333735 C29.2664433,33.0322774 29.8115781,33.0118864 29.9165703,33.0118864 L29.9199326,33.0114525 L29.9396729,33.0186111 L30.0136446,33.0121033 L30.0276364,33.0118864 C30.1326285,33.0118864 30.6778718,33.0322774 31.0957796,33.4333735 C33.1554914,35.4106533 36.7914954,37.5235119 40.8192676,37.5235119 C46.9534991,37.5235119 51.6502709,36.2996158 53.7053187,34.1654985 C54.3560965,33.4897742 54.5822418,32.7047193 54.310542,32.0656555 C54.0900368,31.547311 53.5703908,31.2252844 52.954538,31.2252844" id="Fill-15" fill="#FEFEFE"></path>
41 </g>
42 <g id="Fill-1">
43 <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
44 <use stroke="#FFFFFF" stroke-width="2.5" fill="#E51F5B" fill-rule="evenodd" xlink:href="#path-3"></use>
45 </g>
46 <path d="M18.53613,36.1383525 C18.402105,36.1383525 18.134205,36.1215525 17.882955,36.0378525 C17.531205,35.9373525 17.045505,35.6693775 16.44258,34.1787525 C15.42093,31.6330275 12.79143,24.7158525 12.54018,24.0794775 C12.339255,23.5602525 12.272205,23.4764775 12.171705,23.4764775 C12.071205,23.4764775 12.00423,23.5769775 11.803305,24.1297275 L8.001405,34.5305025 C7.699905,35.3679525 7.364955,36.0043275 6.59448,36.1048275 C6.46053,36.1215525 6.30978,36.1383525 6.192555,36.1383525 C6.041805,36.1383525 5.95803,36.1718025 5.95803,36.2388525 C5.95803,36.3393525 6.05853,36.3728025 6.276255,36.3728025 C7.063455,36.3728025 7.984605,36.3225525 8.16888,36.3225525 C8.35308,36.3225525 9.023055,36.3728025 9.42498,36.3728025 C9.57573,36.3728025 9.72648,36.3393525 9.72648,36.2388525 C9.72648,36.1718025 9.67623,36.1383525 9.508755,36.1383525 L9.358005,36.1383525 C9.073305,36.1383525 8.755005,35.9876025 8.755005,35.6525775 C8.755005,35.3511525 8.83878,34.9492275 8.98953,34.5305025 L11.76978,26.1897525 C11.85348,25.9385025 11.937255,25.9385025 12.020955,26.1897525 L15.47118,35.6525775 C15.57168,35.9206275 15.47118,36.0713025 15.37068,36.1048275 C15.303705,36.1215525 15.253455,36.1550775 15.253455,36.2220525 C15.253455,36.3225525 15.437655,36.3225525 15.75588,36.3393525 C16.911555,36.3728025 18.134205,36.3728025 18.38538,36.3728025 C18.569655,36.3728025 18.720405,36.3393525 18.720405,36.2388525 C18.720405,36.1550775 18.63663,36.1383525 18.53613,36.1383525" id="Fill-3" fill="#FEFEFE"></path>
47 <path d="M22.0194975,30.37683 C22.0194975,32.15223 22.0362225,33.693105 22.0530225,34.011255 C22.0697475,34.42998 22.1032725,35.099955 22.2372225,35.284155 C22.4549475,35.60238 23.1081225,35.954055 25.0844475,35.954055 C26.6420475,35.954055 28.0824225,35.384655 29.0706225,34.39653 C29.9415225,33.54228 30.4104225,31.934505 30.4104225,30.39363 C30.4104225,28.266555 29.4892725,26.893155 28.8025725,26.173005 C27.2282475,24.514905 25.3189725,24.280455 23.3258475,24.280455 C22.9908975,24.280455 22.3711725,24.330705 22.2372225,24.397605 C22.0864725,24.464655 22.0362225,24.548355 22.0362225,24.73263 C22.0194975,25.302105 22.0194975,27.01038 22.0194975,28.30008 L22.0194975,30.37683 Z M20.6126475,28.568055 C20.6126475,25.95528 20.6126475,25.486305 20.5791225,24.950355 C20.5456725,24.380955 20.4618975,24.112905 19.9092225,23.99568 C19.7751975,23.96223 19.4904975,23.94543 19.3397475,23.94543 C19.2225225,23.94543 19.1554725,23.91198 19.1554725,23.84493 C19.1554725,23.74443 19.2392475,23.71098 19.4235225,23.71098 C20.1771975,23.71098 21.2322975,23.76123 21.3160725,23.76123 C21.5170725,23.76123 22.5721725,23.71098 23.5770975,23.71098 C25.2351975,23.71098 28.3001475,23.56023 30.2932725,25.620255 C31.1307225,26.491155 31.9177725,27.881355 31.9177725,29.874405 C31.9177725,31.98468 31.0469475,33.60933 30.1089975,34.597455 C29.3887725,35.35113 27.8814225,36.52353 25.0341975,36.52353 C24.3140475,36.52353 23.4263475,36.47328 22.7061975,36.42303 C21.9692475,36.37278 21.3997725,36.32253 21.3160725,36.32253 C21.2825475,36.32253 20.9978475,36.32253 20.6460975,36.33933 C20.3111475,36.33933 19.9259475,36.37278 19.6746975,36.37278 C19.4904975,36.37278 19.4067225,36.33933 19.4067225,36.23883 C19.4067225,36.18858 19.4402475,36.13833 19.5741975,36.13833 C19.7584725,36.121605 19.8924225,36.104805 20.0431725,36.071355 C20.3781225,36.004305 20.4618975,35.63583 20.5288725,35.150205 C20.6126475,34.44678 20.6126475,33.12363 20.6126475,31.51578 L20.6126475,28.568055 Z" id="Fill-5" fill="#FEFEFE"></path>
48 <path d="M35.61885,31.54929 C35.61885,34.01124 35.685825,35.08314 35.98725,35.38464 C36.2553,35.652615 36.690675,35.76984 37.997025,35.76984 C38.884725,35.76984 39.621675,35.753115 40.0236,35.267415 C40.241325,34.99944 40.408875,34.580715 40.459125,34.26249 C40.47585,34.12854 40.509375,34.044765 40.609875,34.044765 C40.69365,34.044765 40.710375,34.11174 40.710375,34.296015 C40.710375,34.480215 40.59315,35.48514 40.459125,35.97084 C40.341975,36.35604 40.291575,36.423015 39.404025,36.423015 C37.96365,36.423015 36.539925,36.32259 34.915425,36.32259 C34.396125,36.32259 33.8937,36.372765 33.27405,36.372765 C33.089775,36.372765 33.006,36.339315 33.006,36.238815 C33.006,36.188565 33.039525,36.13839 33.140025,36.13839 C33.290775,36.13839 33.491775,36.10479 33.64245,36.07134 C33.977475,36.00429 34.06125,35.635815 34.128225,35.15019 C34.212,34.446765 34.212,33.123615 34.212,31.515765 L34.212,28.56804 C34.212,25.955265 34.212,25.48629 34.178475,24.950415 C34.14495,24.38094 34.011075,24.112965 33.458175,23.995665 C33.3243,23.962215 33.039525,23.945415 32.88885,23.945415 C32.821875,23.945415 32.75475,23.911965 32.75475,23.844915 C32.75475,23.74449 32.8386,23.710965 33.022875,23.710965 C33.77655,23.710965 34.83165,23.761215 34.915425,23.761215 C34.99905,23.761215 36.221775,23.710965 36.7242,23.710965 C36.908475,23.710965 36.992175,23.74449 36.992175,23.844915 C36.992175,23.911965 36.9252,23.945415 36.858225,23.945415 C36.740925,23.945415 36.50655,23.962215 36.30555,23.995665 C35.81985,24.07944 35.685825,24.36414 35.652225,24.950415 C35.61885,25.48629 35.61885,25.955265 35.61885,28.56804 L35.61885,31.54929 Z" id="Fill-7" fill="#FEFEFE"></path>
49 <path d="M44.428275,29.63994 C44.947575,29.137515 47.2254,26.74239 48.246975,25.68729 C49.251825,24.64884 49.31895,24.48144 49.31895,24.28044 C49.31895,24.146415 49.235175,24.012465 49.10115,23.962215 C48.983925,23.911965 48.9504,23.878515 48.9504,23.811465 C48.9504,23.74449 49.0509,23.710965 49.20165,23.710965 C49.68735,23.710965 49.6371,23.761215 50.2065,23.761215 C50.7258,23.761215 51.71385,23.710965 51.9819,23.710965 C52.216425,23.710965 52.266675,23.761215 52.266675,23.828265 C52.266675,23.895165 52.233075,23.928765 52.0824,23.945415 C51.76425,23.979015 51.46275,24.045915 51.228225,24.146415 C50.809425,24.31389 50.491275,24.51489 49.48635,25.48629 C48.01245,26.90994 46.103175,28.80249 45.66765,29.288265 C46.722825,30.443865 49.771125,33.542265 50.558175,34.279215 C51.93165,35.568915 52.51785,35.93739 53.321775,36.08814 C53.472525,36.12159 53.639925,36.13839 53.80755,36.13839 C53.941425,36.13839 54.041925,36.17184 54.041925,36.25554 C54.041925,36.339315 53.97495,36.372765 53.790675,36.372765 L52.5513,36.372765 C51.0942,36.372765 50.708925,36.188565 49.921875,35.568915 C48.916875,34.781715 45.902175,31.54929 44.428275,29.79069 L44.428275,31.515765 C44.428275,33.123615 44.428275,34.446765 44.51205,35.15019 C44.5623,35.635815 44.6628,36.00429 45.165225,36.07134 C45.39975,36.10479 45.734775,36.13839 45.835275,36.13839 C45.986025,36.13839 46.0362,36.20529 46.0362,36.25554 C46.0362,36.339315 45.96915,36.372765 45.785025,36.372765 C44.8638,36.372765 43.808625,36.32259 43.72485,36.32259 C43.641225,36.32259 42.653025,36.372765 42.1506,36.372765 C41.966325,36.372765 41.88255,36.35604 41.88255,36.25554 C41.88255,36.20529 41.916075,36.13839 42.066825,36.13839 C42.167325,36.13839 42.3516,36.12159 42.502275,36.08814 C42.8373,36.02109 42.9378,35.635815 43.004775,35.15019 C43.08855,34.446765 43.08855,33.123615 43.08855,31.515765 L43.08855,28.56804 C43.08855,25.955265 43.08855,25.48629 43.05495,24.950415 C43.021425,24.38094 42.854025,24.096165 42.485475,24.012465 C42.30135,23.962215 41.99985,23.945415 41.88255,23.945415 C41.7486,23.945415 41.698425,23.911965 41.698425,23.844915 C41.698425,23.74449 41.78205,23.710965 41.966325,23.710965 C42.519,23.710965 43.641225,23.761215 43.72485,23.761215 C43.808625,23.761215 44.8638,23.710965 45.366225,23.710965 C45.5505,23.710965 45.634275,23.74449 45.634275,23.828265 C45.634275,23.895165 45.60075,23.928765 45.45,23.945415 C45.265725,23.962215 45.249,23.962215 45.0816,23.979015 C44.629275,24.02919 44.4954,24.36414 44.4618,24.950415 C44.428275,25.48629 44.428275,25.955265 44.428275,28.56804 L44.428275,29.63994 Z" id="Fill-9" fill="#FEFEFE"></path>
50 </g>
51 </g> 14 </g>
52 </g> 15 </g>
53</svg> \ No newline at end of file 16 <defs>
17 <image id="_Image1" width="85px" height="65px" xlink:href="data:image/png;base64,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"/>
18 </defs>
19</svg>
diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg
index 87188f4aa..7f6df3ae4 100644
--- a/src/assets/images/logo.svg
+++ b/src/assets/images/logo.svg
@@ -1,35 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg width="80px" height="80px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3 <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch --> 3<svg width="100%" height="100%" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
4 <title>franz</title> 4 <use id="Page-1" xlink:href="#_Image1" x="0" y="0" width="1000px" height="1000px"/>
5 <desc>Created with Sketch.</desc>
6 <defs> 5 <defs>
7 <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1"> 6 <image id="_Image1" width="1000px" height="1000px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOydeXwV1fn/n5m5c7MSQhJIIGwhQNhEZVNUQFAqiliXusRfqdSKWrX1a/1aW7+tom2tS7Vqq8W1rbVa9ypWRZRFWQVRQSprCGsISci+3Zs78/sjuXAzmeWcmbm5d24+79frvmbmzPPMyYRkMm+eM2cEAgAAkMgIDvbz5lpt67Wz5JjFWMXzHp+lf952q+8jz7HdRHUYb5TP065y7OeNZ/l6eY/Pclyr76vZfie5AAAAEoDuuAEAAADQfURLyO3IuBtibSXBdmXdDbFnOY5VPusxowGP7LHIrdkx3RJt1lirr6M7Rd/s63Gyj2U/AAAAjwFBBwAAb2NXyKMp46wizCrwLOLMI9dm8u9mdZ+l3W6cW7AKnt1qsl47qxzzSC9LDuvXYCb5dv/jgGWbZR+EHQAAEhwIOgAAeAs7Qh4rGWepiPPEuHEMs3WefSzbVu2s++3GOx3Czrqft8LMWp3mlWirGDeOYRZjFWeVa5TDczze/QAAAOIMCDoAAMQ30a6QuzFE3O66WRtvpZx1P0sfZuss+6PxbxZN3KrWujVs3UqKrSrnPJV1s3ze6rudaj1vrNU+CDsAAHgcCDoAAMQnTp95NtrnxnPgvDLNKuLRPi7Lsc1iWI5rhFsS7xZO5Nsq3s4QdruSziLYTuTcreNaHVMvzuwYevBU2CHqAAAQp0DQAQAgPuCtqrpRIbcj41Z52n1uSnpkWzTk3M7Qd9b/MOH9jxUjeHPsiBir6Lk9lN1tSXdTwCPbeHOM9rPksRxTD14xh7ADAECcAEEHAIDYwFP1NmvnqZDzDjO32s8q427INu/Sqo1lv1GMG9taWP8eR0vQnVbUWbd5RZ11v9NleN2unLsl7U6EXW/bqM2s3WofAACAKAJBBwCA7sHNIdC8FXK7wu320krcef8DwG4l3s5+sxirfU7a7caFcSrorO2sw7bdGh7OK+lO4936jwC7lXuj/SzxerCIPc9+AAAALgFBBwCA6OKkGq7Xzjq8mldaWSradmScV9DdknPWSjlPdZ0lvhP5+fn+008/vdfo0aN79+/fPz05OTnJ7/f7kpKSfH6/X5Zl2SfLsuxrR5ZlWZYkyefz+WSfz+cTRdHn8/lkURR9kiTJkiT5wuuiKPpEUQwvfaqqkqIoAUVRgqFQKKgoSrCtrS0YCoUCoVAoGAqFgm1tbYG2tra2YDAYaF8Eg4FAINDW1hZsbW0NtLa2BltbW4PNzc3BpqamQEtLS6ChoSFYVVXVumXLlrpNmzY1BoNBqyotS4XXjaqyW5JuV9DtSDlvxV67j2e/2bpRvJ1YAAAALgJBBwAAd3GjcmpnmLUdUXVa7WYVdLu5LLEsSyf7SJZlcfTo0cmTJk3KKCws7D1gwICM7Ozs3hkZGRm9evXKSE1NzUhJSclISkrq7ff7M/x+f4YsyxmyLGeIophCCYSqqm1tbW11wWCwNhAI1AUCgdqWlpba5ubm2sbGxtr6+vra6urq2srKyppDhw7V7dixo+bTTz+tPXToUJDcqYqb7XO7Mm7VxptrJyZyybuPtd2qzU47AAAAm0DQAQDAHZxWylkrs3ZEM5rizXo8O8fn+Zr1lqb7zjrrrF5z5szpX1RUlDdgwIC8rKysvPT09OykpKQMWZYz/H5/hs/ny5BlOUMQBJmAbUKhUHNbW1ttIBA4/mlpaaltamqqbWxsrK2oqKjYs2dP2cqVK8vee++9YxFVeqei7rQSrl1n7cOJyLNW2Z1U383Wzdp4YwEAAHACQQcAAHu4XSlnHWpttyIeXhoJL68ss+bxxvN8DUYxlJWV5bv44otzpkyZMmDo0KF5/fr1y8vMzMxNT0/vn5qampucnJwnSVIagbhDUZTWlpaWI83NzUcaGhrKqqury44ePXpk7969ZZ9//vnhN954o6Kuri4UkeKGkFtJNE8VnTXGLM/oWDxL1n1m61pYqvBWxwAAAGACBB0AAPhgrYjrtTutkrtZIWeRYDuibee4rF/z8bbJkyenXXDBBXmjR4/un5+f3z87OzsvIyMjNy0tLS8lJSXP7/f3EwRBJJBwqKoaam1tLW9ubj7S2NhYVlNTc6SioqJs//79h7/66quy119/vfzQoUOBcHjE0o6sO42J1nHJIMdsaRRPBnF660bxRnEQdQAA4ASCDgAA5tiRb6NYp1VyXvnWa3NDpO1s6/Vl+rVmZGRI119/ff4ZZ5xRWFBQMKxfv37DMjIyhiYnJw/w+Xy9CAB91EAgUNXc3FzWIfCHDhw4ULJx48bdixcv3qeRd1ZR1tvv5rZRv3Yr7EZV9GhV11FZBwAAl4CgAwCAPixizhMTjSp5d8m1G9uGX2NGRob0ox/9aOC0adOGFRQUFPTt23dY7969h6Wmpg4VRdFPALiEqqqh5ubm/XV1dSUVFRV79u7du2f16tV7nn766QMRw+bdEOhYbOt9jdo2sxi9JZm0o7IOAABRAIIOAADtOK2U80q5VTU8sp2nEu3mtqvHTk1Nla6//voB06ZNKxw2bNiwnJycYZmZmRBxEHMURQk2NTXtra2t3VNeXl5SUlKyZ/ny5bv//ve/lzc1NZmJu93t7hJ4YmjT7jOKJc02KusAABAFIOgAgJ4Oq5jrtbkt5awCrm1nbdOLcT02NTVVvO666wZMnz69cNiwYYV9+/Yt6N2797C0tLShoigmEQAeIRQKNTc2NpbU1NTsOXLkSMnOnTv3vP/++7vfeOONyo6Z5qMl5byxZjEs+7TLaMs6RB0AAAyAoAMAeiJm1z6rirmVlJtJt9HSdAi4xTaPoEdjH/3gBz/o973vfW98UVHRSf369RubkZExShTFZAIgQWlra6traGgoqa6u3l1SUvLNRx99tPWPf/zjfgZpj9Y+u22k065tY1latZFBm5mQQ9YBAD0SCDoAoKdhJeBWMWaVchYJj9xmrZhHW7qZjzF27NiUW2+9dfSECRNOys/PH5eVlTXO7/f3JQB6OG1tbXXV1dXfHD58eOvXX3+9ZfHixdvWrVvX0LHbjoh3l8yTxT69/WZLqzajbdYYAABIaCDoAIBEx+g6xyPqeoIeXrdTGY9c56mS84q2aCPn+HZqaqr0k5/8ZPDs2bNPKiwsHJeTkzMuLS1tOF5fBgATamNjY0llZeXWkpKSrR9//PHWxx57bF/HM+1OJF2xkcOyz2ybGNr0llZtrNtW7QAAkDBA0AEAiQpvZVy7bVYpDy9ZBJxlPRrVbm6JnzNnTuaCBQvGjR079qS8vLyxmZmZ43w+XzoBAFyhra2toaam5puysrKtW7du3fLMM89sW7VqVV3HbhbhNpNthbpKtBvyzrOuXRqJt1NZh6gDABIWCDoAIJGwI+WRbWaV8vDSiZS7XSW3/cnNzfXdcccdI6dOnXrS4MGDx2VnZ49LSUkZpPO9AQBED7Wpqam0srLym717925dvnz5lj/84Q97dars0fiQjX3Esa5dGkm5nrTrxbHGAACAp4GgAwASBZZquNV+szY9cSaGdafiTdR5qLpoEaPbnpqaKi1atKjonHPOmTJ06NApmZmZp+DVZgDEH6FQqLGmpmZbWVnZ1vXr13++aNGirYcOHQpQu4gaDW9nGfbOMzQ+WrJuVkE3q6pb7YekAwASBgg6AMCrGF2/zMTcqZRHrkdTylk/YsTxw+vHZf6GG24YUFxcfPrIkSMn5+TkTJZlOZMAAJ5CUZTmqqqqL/bs2bNhyZIl6x9++OHSiNniw9IdObw9vO52pd1M8EmzNJJ70rSRTrtRm962kZhD2AEAngWCDgDwGlbVcLNtI3nXyrRVm1MpFw1iukg26VfGdT8zZszIuO222yaNHz/+tLy8vCkYsg5A4tHa2lpeXl6+Ydu2bRuefPLJz//zn/9UkzMB1xN6In3pp4gc0smxqr6Tzrre0mofy7ZRGwAAxDUQdACAF3Ai5ZHrLFKut49FvInMZ023K9/avOOf/Px8/6JFi06aOnXqaQMHDpzSu3fvMRHxAIDER62vr99x8ODBDevWrVt/3333bdm3b18rmQ9v11bdeWK17ayVdatqu1Gbtl3bxrpt1AYAAHEHBB0AEO/wiHjkttUQdreknGfYuS0RD++XZVn45S9/WTh37tzTCgoKTsvOzj5VFMUUAgAAIlIUpaWqqmrz3r17NyxZsmT9gw8+WNIxHN5q2DvLsHg9EWeprNutqNupqhvFG20DAEDcAUEHAMQbRtcllgp55DrrEHaebaOh6TyiHRlnmV9cXNz32muvPW3UqFGn9evXb7Lf788hAABgIBAIVJSXl2/473//u+Gpp57a8O677x4jPjHnFXfWyrqVrGsl22lV3UjMIewAgLgDgg4AiBdYxDza1XLWyjl39Zs1R5Zl8be//W3R3LlzZw0dOnRGWlpaocH3BQAAuGhoaNh58ODB9Rs2bFh3++23b66qqmojfdk2G/5ud/h8ZDvp7DeqnjutqmP4OwDAU0DQAQCxxOwapCfdRvvcrJZHW8q7tKWmpooPP/zw+NmzZ88aNGjQzOTk5P4m3xcAAHBMW1tb7eHDhz9dv3798jvvvHNDaWlpgIwFnLe6bncmeWLcZllq1632WbUDAEC3AEEHAMQKM/HW2zYbxs5SLXcq5KzD063aRCIScnNz5YcffnjiWWedNTM/P/9sv9+frfP9AACAqBMKhRqPHDny2aZNm5bfeeeda3fs2NFC5hVznsq6W7JuJeluVtUh6QCAmAFBBwB0J7xSHrnNM4zdTMb12lyviuu1FRYWJj344IOnT5kyZWb//v2n+3y+DJ3vBwAAxAxFUZqPHj26dvPmzSsWLVr02caNGxtJX8J5h8HzCDwZHNtsuLs2RruPNPtYto3aAAAgakDQAQDdBauIG63zDGN3WjG3km49kdetlE+ePDlt0aJFZ5566qkz+/Xrd5YkSZh1HQDgCRRFCVZWVq7fsmXL8t///vefLl++vJbYJdwqxk5lnSza9Nb1ltp1nn0AABBVIOgAgGhidxi71XB21mq5dp8bFXJLeZ89e3bvO++8c8ZJJ500Mycn53RRFGWd7wMAAHgGVVVDVVVVG7dt27b80UcfXRkxI7yZmNsVeb0KOxnEGVXQzYRdu5902vX2GbUBAIBrQNABANGCtUIeuW2nWh7eZnkFmtVwdjMZN913xRVX5Pz0pz89e9SoUbOysrImCoIg6X1TAAAgAVCOHTv25fbt25c/9dRTK/75z38eJX5ZZ91np6ru9vB3VNQBAN0GBB0A4CZWFXMnYm5WJSc6Icx6MbyVcaN9nWLmzp3b59e//vWcoqKiczMzM8cbnD8AACQyam1t7dZdu3Ytf+6555Y//fTTh8kdMWd5RzuZ7NfuI511syXpbKOiDgCIOriZBAC4hRsVcyfD2K2q5Y5kPLzMzc2Vn3zyyTPOOuusef369TtLEASfxfcFAAB6DLW1tVu3bNmy5M477/xo3bp1DXRCtHnF3K2Z4clgm0zaiGNdbxsAAGwDQQcAOIGnYq637paY8zxbbrWuK+z33nvvyOLi4guHDh16vizLfYy+IQAAAIgURWktKytb/vHHHy+56aabNjU1NYXIXNR5142kXbtuJe3adaKusm4k5KioAwBcB4IOALALa8WcZxh7ZBvLMHa7Q9etquYiEQlz5szJvPvuu+eMGzfuwl69eo0y/W4AAADQpaWlpWzXrl3vPfXUU+8tXrz4EJlXys0q7qyvcHNSWWcVdVTUAQBRAYIOAODBTsXcTMxZ5ZxnCDuTfBvty8rK8i1evHjqtGnT5uXm5k4TBAEzsAMAgEscO3Zs06ZNm9772c9+9sm2bduaiU3Iu2uCOb1t0uwj6irgZhV1s3YAAOgCBB0AwIqbFXOrIe2sMs5SJWca0v6rX/2q8Pvf//68goKC8/1+fzbLNwQAAIA9QqFQ48GDB5e99957S2677bYtwWCQR9R5Bd1o+LvRUHi9bSJzUTerqFu1AwDAcSDoAAAzolkxZ5Fz1veVM1XHtctZs2b1vu+++8476aSTLszIyBhj+d0AoBtQlfaPEupYKmp7W4hI0ew7sa4SCQKJEpEoEgkSkSidWLa3CSSKJ9oF3AGAOKGpqWnf9u3bl/zhD3/4zyuvvFJB/JLOKu964k4m+7X7KKJNb2m0X28fAADogj/PAAAjolkxj9wWdda1oq3XZkvOMzIypGeeeeaM6dOnX5iXlzcDQ9iBU5QQUVuLSsFWorZWorZWldpaqGO783qwlUgJdoh2h1h3kW69Tjhu6VlDBSFC4kUiURKIOgRelIiEjnWfXyA5mUhOJvIln1iXO9Z9Se3rosT+NQKgh6qqSmVl5br169cv+fGPf/zpoUOHAmQt6E6r67xD4Ylhabautw0AAMeBoAMAIumOirl2H2+VnKk6rl3eddddBfPnz583bNiwC/x+f471twL0RFSVKNCoUmsDUaCpq1y3tXRId+uJdqUt8gA6x+Tpn7mRI58116EyiDKRnNRZ4Nvl/YTMyxGCn5QOqQfGtLW11e7bt+/D1157bcldd921nexJutuyTpoli6ibtRu1AQB6MBB0AECYaFfMWT52JnszXKampkp///vfz5o1a9ZVWVlZU9i/FSBRCQWJWuvbBby1QaWW+vZleDvQ1D6cPAzXnXMPlnO7X7s/lSi5l9Dx6byekiGQhPEtgIgaGhp2bt269Z1bbrnlvc2bNzdQVwl3OgyedGJ5qumoqAMAXAOCDkDPprsr5npCTmR/+LqoEyNOnjw57YknnvjuySeffEVKSspAhu8DSBACjZ2Fu5OA16vUFjDK7Hp/DDl30LdLX7sviSglLO0Z1EnkU3q1V+NBzyEUCjWUlJS8+8QTT7z65z//+RDZr6izvFsdFXUAQEyAoAPQc4llxdzV4evh9VtvvXXwLbfccmVBQcE8SZJS2b8VwEsEmoiaqlVqrlapqZqouVallnqVAo3UufrNfJsLObedz9zIkc8RJ/lOSHtKL4FSMgRKyyJKy2pfBwmLUl5evmrJkiX/uummmzZ3zACvJ+E8gm5X1MliXW9ptq63DQDoQeCvFwA9i1hWzM1ej8Y60VuXNlmWpeeee27ynDlzivv163emwTkCDxJsbhfxpmPtIt5UrVJTdfvz31ZAzhlyPS7nVl+A5CdK7yNQWrZA6dkCpWUJlJ4lUFIaLhGJRENDw87169e/ct111320b9++FuKXdNZ3rZNOjFbK3RZ1ozYAQAKDv1IA9BxiVTHnEXPWark4duzYlKeeeuqCiRMnXpGWllbI8X0AccZxEa9WqbmaqDEs4i32jgc5Z8hNcDk3C5OTidKzOoQ9W6T07HZxx3B5bxMMBo9t3779zXvvvfeNN998s4qsJZ21ms5aWSfq+to2vXW9pdm63jYAIIGBoAOQ2PBUzMPb0RBzOxO+6VbMr7nmmrxf/OIXlw8fPvwSn8+Xwfh9AHFAW0u7fIeHpjcda18PRoi407tQyDlDbg+Wc7POktLC0i4cl/b0bExU5zVUVQ0ePHhw6UsvvfQvzezvZpJup8Ie2UYG+0mzREUdAGAJBB2AxMWsYq7d1oo3abajIeaWz5SH12VZFh977LGTL7nkkqvy8vJmCYIQnlwOxCmqQtRYpVJ9uUr1FSo1lBO11EfcVzoUXN0+IefWuZBzpmNGNqX0EqhXX4F65wmUmSdS71yBRB9PByBWVFdXf7lq1aqXr7nmmlV1dXUhcjb03e4r28hg22xptq63DQBIICDoACQedp8z7+6KuZGkH1/Pz89PeuGFF74zderUK3v16jWa55sAupfWepXqjxLVH1Wp4ahKjVUqKSGDYMi57QNAzq0bo/3vKYhEvbI7hL2/SL3zBErtjdupeKalpeXwli1bXrv99tvfWb16dT2dEHSnz6rzvluddNa1SzMZR0UdgB4A/qIAkDgY/T4bDVk3Wrot5kyTvUWuX3bZZTn33HPPZUVFRZf5/f5snm8CiD6hIFFDRbuI13d8gs2MyZBz2weAnFs3due/ZyT+FKLeuSL17i9QZp5AvXNFDI2PQ0KhUHNpaem7Tz311KuPPvroftIXdV5hdyrqWgG3qqazbAMAPAwEHYDEwKxqHisxZ66Uhz8///nPh9xyyy0/HDhw4HmCIOD2Nk5oqg7LOFHD0fbnxsPCFyshOp4PObfOhZwzHdPxz2LEuiAQpWcLlJkrUO/+ImXmCZTWB7dccYRaUVGx+v33339l4cKFG4PBYIg6i7kXRB3VdAASFPy1AMD7sDxbHl5nEXQeObeqmDOJ+a9+9athN95447X5+fnf6WgDMUIJEdUfUam2rF3KGypUCgX0Y2MuRJBz61zIOdMx3ZRzo0Y5ub3KnhmusueJ5PM77Bg4pqGhYdfy5cufKy4uXtHU1NRGxqLOWmE3auMVdaOlURvp7AcAeBAIOgDexOlz5kZtYTnWezWaWdWctWLead+iRYtGXH/99df279//XINzAt1AY6VKtYfaP3VHTJ4djyDmQgQ5t86FnDMdszvkXA9BIMroJ1D2YJGyB4vUp79AmP4ydjQ2Nu5ZsWLFc1deeeUnTU1N4QnltELuVmW9O0Qdkg6AR8ENMQDeg6diHl5aiblWwomcT/pmuO83v/nNyOuuu+66vLy8WXynDtygtf6EkNcePvG+ccdCxRgMOXeQz5oLOWc6ZqzkXC/U5yfqky9SzmCBcgaLGBIfIxobG/esWrXq+csvv/zjGIq6laDrSbp2XW8bAOABcPUHwBvYrZhrlyzPmRvJuJGYG1bItdsPPPDA6AULFlyXm5s7g+vsgSPaAkR1hzuE/KBKLXX2RSfmQgQ5t86FnDMdM57kXI/kXgLlDBYoe5BIOYNFkpM5vjjgmKampr2rVq16/qqrrvoo4hVtboi6kaQrHV1HvlvdSNTNqunadbM2AEAcAkEHIP4xq5hrt82q5SzPm7NUyq2eNe8i5o888sjY+fPnX9e3b99p3GcPuFEVovryE1XyxsqOSd0Mbs8g59bBkHMH+TxxkHPdOEEgyujbXlnPGSxQnwEihsN3E01NTftWr1793OWXX740iqKulXO9Krpe5ZxX1CHpAHgACDoA8Y3T4ewsUs4q5CxD2ju1Pf744+OLi4uv69u37xm2zh4w03Ssfbh67SGV6spUUto0AZBzu+mQcyf5PHGQc+Z+JJkoK1+knCHt0p6ehdu5aNMh6n8tLi7+8NixY0EyFnW7E8qZVdeNRN1oabautw0AiCNwRQcgfjGSc97h7NoKut4EcGYTvnGL+ZNPPnnKlVdeuTA7O/s0e6cOrFBCRLWHVDpWqlLNAcX8PeSQc7vpkHMn+TxxkHNH/SSntw+HzxkiUs4QkeQk9q8J8NHc3HxgzZo1L1x11VXvV1VVtZGxnJtV2e1KOouos0q6URsAIMZA0AGIL8yeNdcTdt7h7NoJ4KyeL+d61vzZZ5+deOmll16XlZU1mfO8AQNKG1H1fpWqSxWqPqBSKMiQBDm3mw45d5LPEwc5d7UfEomyB4rUf4RIuYUi+VM4cgEzzc3NB9etW/fXK6644j0GUXfjGXUrWddbJ806JB0ADwBBByB+cGM4O89z5qzD2E0r57IsS88888yk7373uwv79Okzwea5AwPaWomq9ylUXdo+fF0JcdxNQc7tpkPOneTzxEHOo9qPILQPhc8bLlDucJGS03Db5zYtLS2H1q9f/9errrrqvfLy8sih72aybiTmVpX08LPqVsJOmjYyWdfbBgDEEFypAYgtZhVzo3W7z5ibTQBnVi0XiEjSxsqyLD3//POnzZs377rMzMxTbJw7MCDYTHSstF3K68pUUpUT+yDn1j1Bzh30DTlny/eAnGsRBKLMPIHyhouUN1yklAzcArpJS0vL4c8///yvV1999XuHDh0KkLGoh8hYzN2cSM6qmq5dN2sDAHQjuDoDEDt45ZxlOLveO8xZKuess7KLRCQ++uijYxYsWPA/qJi7R2t9+/Pk1aUq1R9VnYkG5NxuOuTcST5PHOQ8Jv1EBvbuJ1DeiHZZxzvX3aO1tfXI559//tfLL7/8nfLy8gB1lXKW59X15Nyoqs5TSUdFHQAPgCsyALGB9VlzJ8PZeZ4vNxL0TpXzhQsXDrjnnntuzs/Pn2PzvEEEzTUnpLyx0vx+CHJu3RPk3EHfkHO2/ASRc21zr+x2We8/XKReObg1dIPm5uYDS5cufeKKK65YGQwGI1/PpldJtzuhnF5lnTT7iWGpXdfbBgB0E7gKA9D98DxrblY1Zx3Obuvd5ZGfqVOn9nr++ed/WFRUVCyKot/Bufd4GivbhfxYqUrNNWz3P5Bz654g5w76hpyz5SeonGtJ6yNQ/+Ei5Y0QqXc/3CY6pbq6evPzzz//2B133PFf0h/27mRCOSNpZxF1PTmHpAMQB+DKC0D3YPdZczeHs3MNYyciMSsrS3733XcvnTJlyvWyLGdynzUgIqJAA1HFLoUqd6nUUsd3vwM5t+4Jcu6gb8g5W34PkXMtKRntsj5gFGTdKQcPHvzgnnvuefKFF14oI+tKOs9z6kaCbiTreuukWdf78YCsA9BN4GoLQPQxq5hHbtsZzm4l56zvL+80pF2WZenll1+edsEFF9yampo6xO6J92SUENGxvSpV7FSorky1dWsDObfuCXLuoG/IOVt+D5VzLb1yBBo0RqT80RJe3WYTRVEC33777Us//OEP/75x48YG4quk875LnSK2jYSdNG1ksq63DQCIAhB0AKJLdw5nt/WaNO3ngQceGL1w4cJbs7KyJjk47x5LQ7lKFbtUqtqjsL2n3ADIuXVPkHMHfUPO2fIh510QJJX6DRVp0FiJ+hWIJOBOkptgMHhs3bp1T8+bN+/fdXV1eu9Qdzr8nYh0q+pksk3U+ceDVdoBAC6DyyoA0cOqUq5ti8Zwdksh79gvLViwIPc3v/nNTQMHDrxA52sHJgQaiSp3dwxhr1WjI6o89qgAACAASURBVFQcgZBz62DIuYN8njjIeUz6iZacq5ojJKUJNLBIpIFjJeqVjT8bvDQ2Nu559913H7/66qvXUufh7UZibjXju93Z3nmr6ZB0AKIIrqYAuAvvs+Z6Yq7dx1Mx5xb0yZMnp//tb39bMGrUqKtFUUyye+I9DSVEVF2qUuUuheoOn5ByyDnjISHn1rmQc6ZjQs7ZAt2Wc+1BM/MEGjRWovwiiXz4S8JFZWXl+j/96U+P3XfffbvJvJrO83o2u7O9m1XT9X6MIOsAuAwEHQD34BnOHl5Gezi73uvSJCISs7OzfW+//fbFp59++g2yLGc5OfGeRMNRlSp3qVRVolAo0Hkf5JzxkJBz61zIOdMxIedsgdGW80gkH1FeoUiDxkmUM1jUDwJ6KKWlpe/+7//+71/efPPNSjIWc9ZJ5bRLIuPKOplsU8S23rreNgDAARB0ANyBRc6tnjHXa9MOaXc6nF2UZVn6xz/+ceaFF17407S0tGGOzrqHEGgiqtqlUMVulVoMXo0GOWc8JOTcOhdyznRMyDlbYHfKuZbkXu0Tyw0aK1Fqb9xyshAKhZq3bt36t6uuuuqfO3bsaCa2arrRO9XNKupmH9JZJ451AIADcLUEwDmsz5rbmQSO9X3mRm2dKue/+93vim688cZbs7Kypjg96URHVdqHsFfsUqjukPlz5ZBzxkNCzq1zIedMx4ScswXGUs4jwwSBKCtfpEFjRRowUiLJ5/AL6wG0traWr1q16i+XXHLJ+01NTWYTyekJOuuQd6tKOm81HZIOgAtA0AGwh9mz5nrCbjUJHG/F3LJSHvkpLi7u9+CDD948aNCguQZfO+gg2Ex09FuFjm5XKNhsHQ85Zzwk5Nw6F3LOdEzIOVtgvMi5Fp+faMBIiYaeLOHd6gzU19d/++qrrz62cOHCL6izfEdKuZWg672OzclEcqRZ1/snh6wDYBNcGQHgJ9rPmltNAhdZFTf9ZGRk+D788MPLp0yZcrMkSamOzjrBaaxQ6cg2hY7tVUlVrOOJIOfMh4ScW+dCzpmOCTlnC4xXOdeSNUCkYRMkyhuO17VZUV5evvL+++9/7IknnjhAbBPJsb6SzaiiTppt3mq63jYAgAFcDgHgI9rPmrNMAsci6NL9998/6uabb74rIyNjjKMzTmBUlah6b7uYNxzlu4+AnDMeEnJunQs5Zzom5Jwt0CtyHvlzn5ohUMGpEg0eJ5GMGeANURQl8PXXXz93/vnnv1heXh6g9m95+LVsrO9RtxJ1t6vpkHQAOIGgA8BOdzxrzjIJXJcZ2SM/EyZMSH/llVeuHzFiRLEgCJhCV4e2VqKj2xU6+q1CgUb+fMg54yEh59a5kHOmY0LO2QK9KOeR+GSiQWMlGnaqRGl9cItqRGNj456//e1v999yyy1fU9dh73rvU+edRM5pNR2SDoADcPUDwByzZ8311q2eNQ8Ls9HkbyyTwHWR8vDn9ddfnz5v3ryfJyUl5dk73cSmuVqlI9tUqtqtkBKydwzIOeMhIefWuZBzpmNCztkCvS7nkQgCUb8CkYadKlHfIfh/ZgPU0tLStxcsWPDnVatW1ZJ5FZ1nEjk8mw5AjIGgA2AMq5zzPmuulXTbz5h3fKT58+fnPvTQQ/+bl5c30/7pJi41+1Uq36ZQ7WFn9wWQc8ZDQs6tcyHnTMeEnLMFJpKca+mVI9CwUyUaNFoiEbO/dyEQCFQtW7bs0UsuueSjYDBoNdyd9xn18DpFtFHEPpZqunZdbxsAEAEEHQB9WGdpN5NybZvdqrmulFPHJHBLly69YvLkyT/GJHCdCQWJKncqVP5flVrrdG8/uYCcMx4Scm6dCzlnOibknC0wkeU8EjlFoCEniTTsFImS03H7qqWiomLt3Xff/eDixYsPkfVz6bzPqEejmg5JB8AAXOEA6ArPLO1uzNDOKuedhrY/8MADo2+66aa7evXqNdrxGScQrXUqlW9TqXKXQqFgexvknC0Ycu4gnzUXcs50TMg5W2BPkfPIdFEkGjBSpGETfNQnD7exkSiK0vrll18+M3fu3Jc7JpGLfC6dR9TNqulGYs5STYekA8AArmwAdIZ1Irjw0krOWavmRsPadSeB+9e//nXDiBEjrqITw+V7PHWHVSr/RqGag2qnP/mQc7ZgyLmDfNZcyDnTMSHnbIE9Uc619OkvUuEEiQaMxGvaImloaNj9wgsv3H/rrbduIf1J5GJRTdcTdrJoA6BHgssZACewM0u7toou6rS7VjV//fXXz543b94dSUlJuc5PNzGoPajS4a8Uaih3KAo6QM4ZDwk5t86FnDMdE3LOFgg570xKukDDJkhUcLJEkuyszwRCLSkpefOaa655cvXq1XUU/Wo6JB0Al4Cgg54Oz7Pm4SXrRHB2nzXvUjVfsGBB3gMPPHBHbm7u2Y7ONoGo2d8u5o2Vqu6fdMg5WzDk3EE+ay7knOmYkHO2QMi5cWBSikCFk9pf0wZRbycQCFR++OGHf/je9773iWYSOTNZ11bS7VbT9WSdNO1aIOmgxwNBBz0Z3mfNI9e1bdrKuStV845J4K7qmAQuxeH5JgTV+9rFvKmq42845Nx2MOTcQT5rLuSc6ZiQc7ZAyLl1oEpE/hSBhk+UaNgEiXwQdSIiqqioWP1///d/Dz777LOHSf81bHpCzvv+dCtBN6qga/8lIemgRwNBBz0VFjm3WzU3E3PmZ80feuihsTfeeOMvMQlcO9WlHWJ+LOLvNuTcdjDk3EE+ay7knOmYkHO2QMi5daC26bionyqRz+/s60oEFEVp/uKLL545//zzX66qqgoS37PpkbJuJejhV7OZCTtp1iHpAHQAQQc9EVY5NxJ1KzG3817z44J+8sknp73++us3jRgx4krCJHB0bG+7mDdXa/5WQ85tB0POHeSz5kLOmY4JOWcLhJxbB5rl+pOJCif6qHACRJ2IqKGhYcezzz77u5/97GfbiK2abjbUnfW5dJZqOiQdAIKgg54Hz0RwemJOZD0RnK0J4IhIevzxx8cvXLjw3pSUlEEunKt3UYmqSlQq+1qh5hq2OzHIOVsw5NxBPmsu5JzpmJBztkDIuXUga66cTFQ4oV3U5STWDhMWZffu3a9ffPHFf9q2bVsTsQu61URykRV0PWEnnXXSrOv9k0LWQY8Bgg56ElZy7sbr01jEvIug5+bm+j/++OPrxo4de60gCD23aq4SVe1R6fDXCrXUdjToxDA08XULOWc7JOTcOhdyznRMyDlbIOTcOtBO13ISUeEEiQon+nq8qDc3N+9/+umnf33bbbd9Q84k3c6Qd9Ksk8m63jYACQkEHSQ6PLO0uzkRXOTwdtNnze+8885hd911170ZGRljHJ6rZ1FVoqrd7WLeWne8VSeQqYm7b0f5DgMh59bBkHMH+TxxkPOY9AM5tx/o9Hvk87eL+vCJPpKTHR7Mw6iqqnzzzTfPzZw583nOZ9NZZnl3+3VskHSQ8Eix/gIAiCJ6FXOrIe1G1XKthEs6y8iPXlunjyzLvk8//fSKBQsWPJScnNzftbP2EKpCVLlLpT0rFKrcpVKo9fgenWCmJr7+Iedsh4ScW+dCzpmOCTlnC4ScWwe6cV1TQkSVB1Uq+SpEoSBR734iST6HB/YggiAIubm5E2+88capgUDgy3Xr1tUR2+S42mIGUdf7LL2YTt2b5GrX9bYBSDjwQw4SFbdnaeeZCE673qWCXlxc3O+JJ564OycnZ6oL5+o5VJWocmf7M+atDV326iQwNXF/DY7yHQZCzq2DIecO8nniIOcx6Qdybj8wWtc1n59o2KkSjZgkkT+lZ94iK4rSvHr16sfOPffctyzem659BZvZ8+l6VXWK2DaqqJOmnXTaAUg4eubVByQ6TuQ8/Py3k4ngwoKuK+f//ve/z507d+4vfT5fb6cn6kVqDqh0cKNCzTV6eyHntvoxCIacO8hnzYWcMx0Tcs4WCDm3DuyO65rPT1R4qkQjT/P12FnfKyoqPrvhhht++/bbb1eSsaBHvoKN5d3p2nW9D2nWSdNOOu0AJBQQdJBo8MzSHrluVTm3et7cdHZ2IhKnTp3a67XXXrtj4MCBc106V0/RdEylg5+rVHvY6O8p5NxWPwbBkHMH+ay5kHOmY0LO2QIh59aB3X39T0oVaPSZEg0dL5HQA++Yg8FgzTvvvPPbyy+/fCWZV9LtPJtuJOuksx65NFsHICHogZcbkMC4Ked2xNxQ0J999tmJ3//+9+9NTk7Oc+lcPUOgiejQFwpV7VZNbo4g57b6MQiGnDvIZ82FnDMdE3LOFgg5tw6M5fU/I0egcTN8lFvQM1+ysm/fvn9feumlf9y8eXMDdZVylonk9CTdzpB3SDroEUDQQaJgNKEIz/PmerO0Gw1rN3rOvJOcDxkyJGXp0qU3FhUVfZ962O+b0kZUtkWh8m9UUtrM/npCzm31YxAMOXeQz5oLOWc6JuScLRBybh0YL9f/fkNEGj/TRxk5PerPORERNTc3H3z++efv/slPfrKFrKvoRkPeVeos7UZVdD1B1xNyvX9ZyDrwPD3vCgMSEV45184oavROczNJ16uYd5LzRYsWjbz99tvvS09PH+HWiXoClahip0qHNysUbD7eZBxsr4nvS4Kcsx0Scm6dCzlnOibknC0Qcm4dGG/Xf0EgGjJOojFnSZSc1uNuo5Vt27b99Zxzznm2vLw8QHzD3lWD7UgBtxryzlpBh6QDT4PXrAGvYvVqDzvPmJuJuNHr0nyapZSamiqvWbNmfnFx8f1JSUl93T7xeKb2oEp7lqtUubO9ak4EOYecWwdDzh3k88RBzmPSD+TcfmC8Xv9rjqq09+sQqapAffqLJPacke9Cv379Jlx//fVnqKr69Zo1a2pJ/54rcl17r0aaGO1Sb90oV+9RRr1tADwFfoCBF2GZpT28zjukXU/Q9WZk1x3afu211/Z/+OGH783Kyproxol6heZqlQ58rlLdoc63M5Bzl/sxCIacO8hnzYWcMx0Tcs4WCDm3DvTK9T+ll0BjzpRoyLieVfNSFKV13bp1j8+cOfP1iNexaZesz6ZjlncAIoCgA6/BIudOh7RzD2eXZdn33nvvzTnnnHPulCQp3ZUz9QDBJqJDmxWq2tV1AjjIucv9GARDzh3ks+ZCzpmOCTlnC4ScWwd65vof0VdmrkDjZ/qo76CeU04nIqqsrFx788033/faa69VkLGkR2vIO5ksyWAbgLgHgg68BKucuz283VTQZ82a1eell176Rf/+/We7daLxjtJGdGSrQke+UUkJdt0POXe5H4NgyLmDfNZcyDnTMSHnbIGQc+tAz1z/DfrqP1yk8Wf7KL1Pz7nFbmtrq/3Pf/7zu4svvng56Yu5nVexaZekWYekg4Sl51w9gNexen4pvM4i6FbVcqMh7V0E/YEHHhhz6623PpicnDzArRONdyp3qnRos0LBJv39kHOX+zEIhpw7yGfNhZwzHRNyzhYIObcO9Mz136IvUSQqOEWiMWdI5E/pObfaBw4ceO/iiy9+KOJ1bFYVdZU6z/Ju9d50ow/pLM3WAYhretYDM8CrsEwuwvK8uV6lnOXZcu2EcBIRScuXL7/k6quvfliW5UwXzzVuqS9TafcnKlXu0K+aE0HOIefWwZBzB/k8cZDzmPQDObcf6JnrP0NfqkpUXabS3q/bSBCJ+uSJJPSAke+9e/ceOX/+/LOJ6IvPPvssPIEcUdd7M21bJFb79TCbi0hvHYC4Bj+sIN7hnfmT93lzroo5EYnDhw9P/uSTT34xePDgi1w7yzimrYXowOcKVe02vyOBnLvcj0Ew5NxBPmsu5JzpmJBztkDIuXWgZ67/XH2dCEzLFOjkmTL1H94DLJ2IQqFQ8wcffHDfvHnzlhH7M+lWz6erEe1GFfTIbdLs04KKOohbIOggnnEi50aztfO817yLoN9yyy0D77///od69epV5OaJxiuVO1U6uFGhtlbzOMi5y/0YBEPOHeSz5kLOmY4JOWcLhJxbB3rm+s/Vl/7vXP4IiU4510cp6T3j9nvnzp3/nD59+p8i3plu9Ew675B3vC8dJDQ94woBvIjZ7OzhdRZBZ52d3VLQX3vttWmXXHLJb3w+X8LP0t5SS7RvjUL1R6z/dkHOXe7HIBhy7iCfNRdyznRMyDlbIOTcOtAz13+uvsx/52Q/0dhpMg2f0DOeMq2pqfnqpptu+uUrr7xylE7IuJGgs7yKTftKNorY1hP2yKV2XW8bgJgDQQfxCKucmz1vzjNTu3Z4e6eqeUZGhrx27dobxo4de62rZxmHqCGisq8VKtuqkhpiiOfZ4+WbM8i53XTIuZN8njjIeUz6gZzbD/TM9Z+rL/bfuT55Ik08z0eZ/RJ/2HsgEKh68cUX71q4cOEXxDbkPbKibjXbu9GHdNZJZ11vG4CYAkEH8YYdOQ//dWN53py1ai4RkTh37tysv//977/Lzs6e4t4pxif1h1Xat1ahljq2eMi5y/0YBEPOHeSz5kLOmY4JOWcLhJxbB3rm+s/VF8fvXMcOQSQaMdFHY8/ykSRzfFEeRFVV5YsvvvjzGWec8Y9gMKitorO8jk1P1iMr6WaCrifnkHQQt0DQQTxhJOSR60YTwBkNa9cTdLOZ248vH3/88fE33HDD75OSknJdPcs4o62F6MAGhY7t0b0t1AVy7nI/BsGQcwf5rLmQc6ZjQs7ZAiHn1oGeuf5z9cUv55GkZgh06myZ+hcmfjX9yJEjKy699NJ7161bV09dxdxI0KP1XDokHcQlPeMBGBDPaKWbqKuoW038pvcqNa18R37M9kmyLPs+++yzKy+77LL7fT5fhvunHD9U7lRpz8cKNVa4IZ2Qc1v9GARDzh3ks+ZCzpmOCTlnC4ScWwd65vrP1ZczOSciCrYSHfg2RHWVKuUMFMnnT9z6WXp6ekFxcfFMn8+3edWqVdVk/io20uzT2zbLM4u1Oi4AMQM/iCCW8F5wWSeD433e/Hjb+PHj099///278vPz57h2lnFIS037JHAN5e13C5BztkDIuXUw5NxBPk8c5Dwm/UDO7Qd65vrP1ZdzOdfiSyI6abpMhacmdg1NUZSWjz766Hfnn3/+B8Q23F1bRdcb7h5ZTaeIbYqIIZMlGWwD0K1A0EGssHqFWnidZzI4lufNDQX95z//+dC777774bS0tGGunWWcoYaIyr5S6MhWldSOP1+Qc7ZAyLl1MOTcQT5PHOQ8Jv1Azu0Heub6z9WX+3IeGZY9QKSJ58nUu29i36rv2bPntRkzZvzx0KFDrWQs6KzvTY9cmn1IZ2m2DkC3ktj/PQfiFTfl3KpibjiUnYh84fV33nnn3B//+MePJyUl9XPtLOOMusMq7V6mUM1+Ov5nB3LOFgg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oqunBMRNdertHdLiNqCRDkDRRIT9PH0rKyssT/60Y9OO3LkyIavvvqqqaOZ5VFH0sQYbethNtcRz3EAiAr44QPdjZWcGw1tt5qpPbyuNwGc7nB2IpKys7PltWvX/nTkyJH/z6XzizsiJ4GLBHLOFgg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oq+nGtJ6y3QhO/IlFeQoJZORMFgsObll1++a8GCBRvIeSVdb9i7XgU9cps0+7RtAHQbEHTQnbgl53pD27mGsxORWFxcnPvUU0/dn5mZeapL5xd3VO5S6dDnCrW1dm6HnLMFQs6tgyHnDvJ54iDnMekHcm4/0DPXf66+ul/OIxk0SqJTzvFRclrC3r4rmzdv/svpp5/+t2Aw2EZsz6WzDHeHpANPkbC/4SDu4JVzlsngjARd+07zLoL+7LPPTvzBD37we7/fn+3qWcYJbS1EpasVqt1v/wYecu5yPwbBkHMH+ay5kHOmY0LO2QIh59aBnrn+c/UVWzkPIycRnTxTpoLxifuU6tGjRz+98sor71m5cmUt6Qu6ndexhddJZx2SDuKKxP3tBvFENOTcSL4lne1OnxUrVlxyySWXPODz+dJcPcs4oWa/Srs+Uqi5qus+yDlbIOTcOhhy7iCfJw5yHpN+IOf2Az1z/efqKz7knIhICREd3q1QTblCuUNE8smJV2tLS0sbctVVV81OSUn5cvny5cc6ms3mKSKdmMhto7mOVJ0cs3gAugX8sIFoYzX5htVr1OzO1B4p6iIRiampqfKmTZtuHj169DXunmJ8oATbnzWv3KU6ummCnLvcj0Ew5NxBPmsu5JzpmJBztkDIuXWgZ67/XH3Fj5wfz+84QHKaQJPOl2lAYWI+m64oSvNbb731f5dffvkqOlEht3omPdymkvHQd7MPmSy16wBEBQg6iCascs4yU7vZsHazZ80lIhKLiopSV6xYsah///7nunuK8UHDUZVKP1WotZ4g5w4CIefWwZBzB/k8cZDzmPQDObcf6JnrP1df8SvnkQw7RaJTZ8kkyQ4PHp8o69ate/SMM874FxkPdWd9ZzqLpJPOOmnWIekgqkDQQbQwEvLINiM5tztTu3Z4u0hE0kUXXZT94osvPtK7d++T3D3F2KMqRIe/VKh8q9r+RxtybjsQcm4dDDl3kM8TBzmPST+Qc/uBnrn+c/XlDTkPk95HoNMulCl7QGJW03fv3v3qxIkTH6mrq2sjdlG3M8O7maTr/QtA1oHrQNBBNIiWnLNOCHdc0H/xi18U3nPPPX9MTk7Od/cUY09LDdHeTxVqqur42wA5tx0IObcOhpw7yOeJg5zHpB/Iuf1Az1z/ufrylpyHEUSi0VN9NPZMHwkJeIdfUVHx2Zw5c361efPmeuoq5m7O8G4m6dp1vW0AHIFJ4oDb8Mq59rlyKyE3q5h3+jz//PNTbrvttif9fn+Ou6cYe47+V6WSFQoFGjsaIOe2AyHn1sGQcwf5PHGQ85j0Azm3H+iZ6z9XX96U83BHFQcUOlKiUL/BIvlTEsvS09LShlx99dVn7N+/f83WrVubOpr17jEj17VtpFnXm2xOG6t3bLNYABwBQQduYkfOrZ43N5qp3fTz8ccfX3TppZf+XpKkZHdPMbYEm4hKlitUsV098Qcbcm47EHJuHQw5d5DPEwc5j0k/kHP7gZ65/nP15WE5j6C5QaW9W0LkTxYoq39iDXlPSkrKmTt37uykpKRNK1asOEbs0m0l4bwzt0PSQdTADxNwCydyzjOk3WymdkmWZenLL7/88dixY691+fxiTvVelfavU6itNaIRcm47EHJuHQw5d5DPEwc5j0k/kHP7gZ65/nP1lRhyru2/f6FIU86XKTktsW75Q6FQ8+uvv/6L4uLiNdR5iLveLO9Gz6arBkuK2KaOpUqd/0mNyiRO/9kBgKADV+CRc6OPnefNOwl6YWFhyqeffnrPgAEDvuP+KcaOUIBo/zqFjpVorvmQc9uBkHPrYMi5g3yeOMh5TPqBnNsP9Mz1n6uvxJTzMEmpAk2e46P8EYk1cFZVVWXt2rV/OOuss14jvhnew/IdOds7JB3EDRB04BQzOTd6DshoQjiW16jpztQ+d+7crJdeeumRzMzM8e6fYuyoL1Op9LOIZ83DQM5tB0LOrYMh5w7yeeIg5zHpB3JuP9Az13+uvhJbziMpOEmiCefK5PM7O368sWvXrpcnTZr0mMkM726+hk0r5ZB04DoQdOAE1kk3oiXnEhGJd9xxR8F99933eCLN1K6GiA5+odDR/6pMl3zIOVsg5Nw6GHLuIJ8nDnIek34g5/YDPXP95+qr58h5mPRMgU6bK1POwMR6Nr28vHzlOeec8+tt27Y1krGgm72GDZIO4obEGusCuhOryjmLnJs9W64dwq77ee655ybffvvtCTVTe/MxlXYtU6l2v7vSDDl3uR+DYMi5g3zWXMg50zEh52yBkHPrQM9c/7n66nlyTkQUaCHauzVESoio32AxYV7Hlp6ePvT73//+6SUlJau3bdvW3NHMM2t7eJ9qsl8vXm+p3Q8AFxB0YAcjEddrM5NzbfU8slpuOWv7Rx99dOFll132gCRJKVE5yxhQtUulPcsVCjbp7ISc2w6EnFsHQ84d5PPEQc5j0g/k3H6gZ67/XH31TDmP7KfioEKH9yiUO0SkpAR5HVtSUlLfiy666Fyfz7dp5cqV1WQuzJB0ELdA0AEvblXOtRV0ZjmXZdn39ddf/3jq1Kk/EwQhIcZoqQrR/rUKHf5S1f8jDTm3HQg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oKch2lpUKn0mxBlZAmUkZMQt1Pk8/nSp02bdv6IESN2vP3224c0u63uV7Vx2lgjIOnAVfADA3hw45lzq9nau7w6LWIpDR06NHn16tV35+fnz4nC+cWEQAPRnhUKNVWy30VCztkCIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHMjRp3mo5PP9iXMkHdVVZXPPvvswRkzZrxJJ55DN3sVm94s70ZLvQ+ZLMlgGwBdEuTXEHQDdivnLJPBGVXPOwn6nDlzsl555ZU/ZGZmnhKF84sJtQdVKv1U827zSCDntgMh59bBkHMH+TxxkPOY9AM5tx/omes/V1+Qcyv6DRbpjO8m1jvTt2/f/uLEiRP/3NTUFCS+V7GppD9xHCQdRJ3E+Q0E0YS3ch4eJ6VXNQ8/ax7eZpLzhQsX5j/++ONPpqSkDHb75GLF4S8VKvtaNb5UQ85tB0LOrYMh5w7yeeIg5zHpB3JuP9Az13+uviDnrKSkC3TmxYk1y/uRI0eWn3322b/esWNHE5kLutks75B00G3gGXRgBUvlXFsxJ+KXc8Nnzn/2s58NfeSRR55OlNeotbUS7VmuUNUuk+sz5Nx2IOTcOhhy7iCfJw5yHpN+IOf2Az1z/efqC3LOQ1uAqPSbEPn8RDn5iSHp6enpBfPnz5+8fv36laWlpYGOZrP7WyPsxuGZdMAFBB2YwTJbe+S2EznXq55L995778hFixYtTkpKqpow1wAAIABJREFU6heF8+t2GitV2rVUoaYqkyDIue1AyLl1MOTcQT5PHOQ8Jv1Azu0Heub6z9UX5NxWHypR2V6F6ipVGlAokZgAtpCcnJz7ve99b+qWLVtW7tq1q6WjGZIO4pIE+JUDUYK1ch7eNpNzUwkngwr6ww8/PPaOO+74iyzLfdw+uVhQsV2lkpUKhYyeNyeCnDsIhJxbB0POHeTzxEHOY9IP5Nx+oGeu/1x9Qc6d9lNbqdLBnSHKGypRUqr3fdLv9+dcfPHF0/bt2/fp1q1bm8h65na9k+aZ4R2SDmwBQQd6uFk5N5qp3Wh4u0hE0uLFiyfefPPNf/L5fL2icH7dihIi2rdaoSNbVPO/rpBz24GQc+tgyLmDfJ44yHlM+oGc2w/0zPWfqy/IuVv9tDYTlW4NUXofgXr39f6Qd1mW+1xwwQVnV1ZWfvbFF1/Uk3VF3ErSzXIj90HSATMQdKDF7cq50WvUDJ87/8c//nHGggUL/ihJUqrbJ9fdtNYR7VqqUN1hi7+YkHPbgZBz62DIuYN8njjIeUz6gZzbD/TM9Z+rL8i5q/2o7YWGA9sVCrYS5Q0VPf8qNp/PlzF79uxzAoHAmjVr1tRF7DKrqGthFW2WYfQe/44Ct4Ggg0i6o3JuNORdIiLprbfemnXFFVc8JIpiUhTOr1up2afS7o8VCjRaBELObQdCzq2DIecO8nniIOcx6Qdybj/QM9d/rr4g5672o2msOqxQ+T6F+heKJPu97ZQ+ny/t7LPPnu3z+T5fuXLlsYhdRkPY7Uq6UQwkHRgCQQdhuqtybjhb+wcffHD+hRde+DtBEHxun1y3ohId/EKhAxtUUkPWsQxNrKlcB/XKTQfk3HY65NxJPk8c5Dwm/UDO7Qd65vrP1Rfk3NV+DI7ZVKdS6TaFsvuLlNbb204pSVLKmWee+Z3s7OzNH374YUVHs9X9sHafFgx3B46BoAOi7pVzXVlfuXLlpeeee+7dgiB4+gGnYDPRno8VOlbC8NcScm47EHJuHQw5d5DPEwc5j0k/kHP7gZ65/nP1BTl3tR+LY7YFiUq3hUjyEfX1+PvSRVFMmjx58nmDBg3asmTJkiNkXfFmmcUdkg4cAUEHMZfzDRs2/L8zzzzz5+Txi1LD0fZXqDVXMwRDzm0HQs6tgyHnDvJ54iDnMekHcm4/0DPXf66+IOeu9sPxC19WqlDNUZUGDJdI8rBRiKIon3LKKd8ZNWrU9jfffPOQTgiPnGtzzPZB0oEuHv51Ai4QUzmXZdm3efPmhRMnTrzF9TPrZqr2qFSyQqFQgCEYcm47EHJuHQw5d5DPEwc5j0k/kHP7gZ65/nP1BTl3tR8bv7N1VSod2NH+KrZkD7+KTRAE37hx42afcsope1999dVSvRDNkumwDPsg6aAL+MfvubDIeeS6G3J+fF2WZd/WrVt/WlRUNN/1M+tmDn+pUNlX9v/yQ87ZAiHn1sGQcwf5PHGQ85j0Azm3H+iZ6z9XX5BzV/tx+DsrJxGddYmf+hd4e8i7qqrKsmXL7jvvvPPeI6KQ5qNELLXreh+14xO5HvkhkyUZbIMeAAS9ZxIrOZeISExNTZW/+eabOwsKCi5z/cy6EVUhKl2t0LE9kHPLfIeBkHPrYMi5g3yeOMh5TPqBnNsP9Mz1n6svyLmr/bj0OyuKRJO+I9PwUz0/QFf97LPPHpg+ffqbBEkHMQCC3vOIqZxnZ2f7v/rqq3sGDhx4getn1o20tRLt+UShhnLIuWW+w0DIuXUw5NxBPk8c5Dwm/UDO7Qd65vrP1Rfk3NV+ovA7O/o0H506y9sv5CEi2rhx4+NTpkz5B+kLOiQdRA0Ies8ipnKen5+fvGnTpvvz8vJmun5m3UhrHdGuZSFqrWNMgJzbDoScWwdDzh3k88RBzmPSD+TcfqBnrv9cfUHOXe0nitf/QUUSnXGRTJLHPX3r1q3PTpw48ZlgMNhGXQUdkg6iAgS958Ar55GS7lTOpaKiopTVq1c/nJOTc0Y0Tq67aChXac8nCrW1MiZAzm0HQs6tgyHnDvJ54iDnMekHcm4/0DPXf66+IOeu9tMN1//sASLNuFz29ORxREQ7d+7857hx4x5zSdKNBB2SDo7j7d8YwEpM5Xzy5Mm9li5d+sc+ffpMiMbJdRfH9qhUukYhNcSYADm3HQg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oKcu9pPN13/iYhSM4hmXplEvXO8rRylpaVvjR079oGmpqYgQdJBlPH2bwtgwUzOw+t6H1eGtZ999tmZ77zzzp8zMjLGRuHcuo2yr1Q6/KXCngA5tx0IObcOhpw7yOeJg5zHpB/Iuf1Az1z/ufqCnLvaTzfKudpxAv5kgaZd6qe8od6e4f3gwYMfnHLKKYuqqqoCBEkHUQSCntjYlfNIIbct5yeffHL6qlWrnuzdu/f4aJxcd6AqRPtWK1TFOlM7EeTcQSDk3DoYcu4gnycOch6TfiDn9gM9c/3n6gty7mo/MZDzMKJINOV8PxWe7O0Z3svLy1ecfPLJvywvL28la0kP0QkZj1x3Q9Ih6AkMBD1xcSrnWkmXiEPOhw8fnrJhw4bHs7KyJkfj5LqDUKB9pvb6I5BzpnyHgZBz62DIuYN8njjIeUz6gZzbD/TM9Z+rL8i5q/3EUM4jGTvVR6fMlB32EFsOHz780ejRo39VV1dnNtxd75VsenJuV9Ih6AkMBD0xiamc5+bmJm3duvXhvn37TovGyXUHrfVEe5aFqLmWIwlybjsQcm4dDDl3kM8TBzmPST+Qc/uBnrn+c/UFOXe1nziR8zBDRks09SI/SR4upu/bt++dESNG/DZi4ji9V7C5Iel6Qg5JT3Ag6ImH9t/UaFI4HjmPlHRTOc/IyJC3b9/+u/79+8+Oxsl1Bw1HVSr5RKFgC0cS5Nx2IOTcOhhy7iCfJw5yHpN+IOf2Az1z/efqC3Luaj9xJudhcvJFOvtyPyV5eIb33bt3/2vMmDGPaCTdSM7dlHQ9WQcJhHd/K4AePHJOdELCjSaFkzTrkZV0SdMmpaamyt9+++2vBg8efJHrZ9ZNVJeotG+1QiHWmdqJIOcOAiHn1sGQcwf5PHGQ85j0Azm3H+iZ6z9XX5BzV/uJUzkPk54p0Mwrkygj27s6sm3btufHjRv3F+os6G5IenhmYiNJJ4M2kAB49zcCaHFbzlmGtB9fl2XZ9+233/5vYWHhla6fWTdR9pVKZV8q3XYDDjl3uR+DYMi5g3zWXI/cWELO46sfyLn9QM9c/7n6gpy72k+cy3kYOVmgGZf5KXeId2d437x5858nTpz4NzKWdKsZ3vUkPbwkMpZ0PVkHCQAEPTFwIudWM7azDG2Xtm3bdvOYMWN+6PaJdQeqQrR/jUJVu3Vv60wSmZpYU7kO6pWbDsi57XTIuZN8njjIeUz6gZzbD/TM9Z+rL8i5q/14RM7DmaJEdNr5fioc792H0teuXfvwmWee+Sp1lXSWKnqklGur6JD0Hoh3fxNAGDfk3OhVatoh7V3EnIikL7744ofjx4+/3u0T6w6UEFHJJwrV7IOcM+c7DIScWwdDzh3k88RBzmPSD+TcfqBnrv9cfUHOXe3HY3LefhyigztDpChEeUO9qSaDBg06c9q0aUdefPHFXRxp4W+DXsFU1WlnmQQaJADe/C0AYXjlPFLItdVz3vecS0QkrVmz5sopU6b8j9sn1h2EgkR7lilUXwY5Z853GAg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oKcu9qPB+U8kqP7FWqqJxo40pt6MmzYsGkTJ04sfeWVV/aahBkJtd49PSS9h+LN3wBAxCbn4aXVbO1Gr1QzFHMikj755JPvTp8+/Zdun1h3EAoQ7VqqUONRyDlzvsNAyLl1MOTcQT5PHOQ8Jv1Azu0Heub6z9UX5NzVfjwu5+Edx44oVHdMpUFFEgneU01h5MiRZ48ZM2bHG2+8sZ+MZdlM0iOlPLxt2qfFMYEHgaB7F7P/QWOV88jXqDEPaSciacmSJd8577zzFpEHLwJtLUS7PlCo+RjknDnfYSDk3DoYcu4gnycOch6TfiDn9gM9c/3n6gty7mo/CSLnYWoqVKouV2nwKIkEj80dJwiCOHr06FlDhgzZ+u677x4mfknXtrHcZ0PSEwwIuncxk/Lw0krOjZ43NxJzkYik1157bfrFF1/8gCAInvv5CTQS7fwgRC213XcDDjl3uR+DYMi5g3zWXI/cWELO46sfyLn9QM9c/7n6gpy72k+CyXm4qa5KpcpDCg0e5SPRY3ebgiBI48ePPyc7O/uLDz/88Kh2N8+hbOTY7QvEER77kQcdmP1PmZ6Y88zWrifnx9v++te/TikuLn5UFEVftE4uWrTWE+36IESBesg5c77DQMi5dTDk3EE+TxzkPCb9QM7tB3rm+s/VF+Tc1X4SVM7DNNSodHS/QkNG+Ujy2F2nKIryxIkTz0lOTl6/fPnyYzohbsuzkcxD0j0IBN17WA1tN5Nzs0nhLCeE+9Of/nTydddd94QoiknROrlo0VJDtOvDEAUbIefM+Q4DIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHNX+0lwOQ/TWKdS2V6FBo+SyCd7yzVFUfSffvrp5wSDwTWrV6+uMQgzOimV9O/5jfZHxkDSPQ4E3VuwyjlR59natXKunQwuUsh15fz+++8ffeuttz4pSVJaVM4sijRVqbRrqUJtzZBz5nyHgZBz62DIuYN8njjIeUz6gZzbD/TM9Z+rL8i5q/30EDkP09yg0qHdCg0ukkj2e8s1JUlKnj59+tk1NTUrP//88/qOZhaBjpwgzmjkLCQ9QYGgewceOTd63tzouXOtmHeS9LvuuqvwrrvuWizLckZUziyKNBxVafdHCoVaIefM+Q4DIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHNX++lhch6mpUmlA7tCNKhIIn+St1xTkqS0WbNmTT9w4MCKr7/+uskkNPLEtN8WO5PFQdI9CgTdG9iVc5bnzk2Htt9yyy2D7r///qf9fn92VM4sitQfVmnPMoWUIOScOd9hIOTcOhhy7iCfJw5yHpN+IOf2Az1z/efqC3Luaj89VM7DBJqJ9m8P0cCREiWleMs1fT5fxnnnnXfWN99888mOHTtadEJYJ4Tjnf3dW98oQEQQdC+g979f2l/OqDxz/oMf/CDviSeeeCYpKSkvKmcWRWr3q1SyXCElBDlnzncYCDm3DoacO8jniYOcx6QfyLn9QM9c/7n6gpy72k8Pl/MwwVaifd+GaEChSMlp3nJPWZYz582bd9q6deuWlZaWtkbsMhNtM4y+hZB0j4N/sPgmWnJuJObHt6dOnZqxbNmyF9LS0gqjcmZRpLpEpdLPFFIVyDlzvsNAyLl1MOTcQT5PHOQ8Jv1Azu0Heub6z9UX5NzVfiDnXfCnCHRusZ+y+3vsRelEVFdX983MmTNv2rx5cz0RhSI+is66YvJRI5Z6H6LO32q9NhCHQNDjF6tJH1jkPDwZXHhb71VqXarn2dnZ/u3btz+Wk5MzNSpnFkUqd6p0YK1Cqgo5Z853GAg5tw6GnDvI54mDnMekH8i5/UDPXP+5+oKcu9oP5NwwX04iOufKJOo3yHuSXlFRsWb48OG31dXVBamzpBsJulbWVc06i6TryTqIQ7z3E90zsCvnRpKuJ+e67zyXZdm3cePGn3tRzo9uU2n/Gsg5V77DQMi5dTDk3EE+TxzkPCb9QM7tB3rm+s/VF+Tc1X4g56b5wVaij19ppbISxeFRu5++ffueuXnz5v8lnUdMqetjqHof7T2/dj4q7XbkUrsO4gwIevzBI+fabb3J4YwmidO9IKxevfr/FRQUXOb6WUWZsq9UOvh5+wUacs6Y7zAQcm4dDDl3kM8TBzmPST+Qc/uBnrn+c/UFOXe1H8g5U35bgGj5q610YEfI4dG7n8LCwivWrVt3NZlLutUHkp6AYJK4+MPN16kZvetcd3j722+/Peucc875NXnsF/bQJoWOfN1+2YacM+Y7DIScWwdDzh3k88RBzmPSD+TcfqBnrv9cfUHOXe0Hcs6W39Goqu2zu/fqI1Kfft6qPQ4cOPC0k046aedrr722T2e32f24arDfTMAh6R4Bgh5/GP1PF2vFXK9SbvrMORFJjzzyyLhrrrnmj4Ig+KJ2ZlHg4OcKHf0Gcs6V7zAQcm4dDDl3kM8TBzmPST+Qc/uBnrn+c/UFOXe1H8g5W76mUVWJDuwIUWovwWsTxwmjRo2akZ6evmHZsmWVZnEdS6tvp5G4a49j1QZiCAQ9vjD7ny0nr1MzFHMikq677rr8e++99y8+n69X1M4sChzerFD5Vsg5V77DQMi5dTDk3EE+TxzkPCb9QM7tB3rm+s/VF+Tc1X4g52z5Jgc9uEuh5DSBcgZ4R9IFQfBNnjx52uHDhz/58ssvG/RCDNZ1D0fW33ZIepyDf4z4gXVou9WM7VzvOu94ndrzXnudWvlWlQ5twjPnXPkOAyHn1sGQcwf5PHGQ85j0Azm3H+iZ6z9XX5BzV/uBnLPlMxxUEIjOuMhPhSd5qw7Z0NCwe9asWT/auHGj9vVr2tnd9WZ1D1H7d4f39Wva76jTfzbgAhD0+IDnuXPeYe2GlfPc3Nykbdu2PZadnX1adE4rOlR8q9KB9ZBzrnyHgZBz62DIuYN8njjIeUz6gZzbD/TM9Z+rL8i5q/1AztnyOX6WBJFoxqV+GjLKW5JeWVm5btSoUf9TVVUVIPNXrxm9K10lvH7N83hn/EfiwjspHMuM7ZYfWZal9evX/9xrcl61W6UDGyDnXPkOAyHn1sGQcwf5PHGQ85j0Azm3H+iZ6z9XX5BzV/uBnLPlc/4sqQrRp28H6NAeb83unpOTM3Xjxo13yLLsI/uzujuZ2R3EARD02GJ3xnarCrrl69TWrl07f+jQoZdE5ayiRE1p+3vOSYWcM+c7DIScWwdDzh3k88RBzmPSD+TcfqBnrv9cfUHOXe0Hcs6Wb/NnSQkRrXwjQOX7vPWe9IKCgu+tXr3azuvXjB6B5ZF0yHocAEGPHTy/AEa/WGYTxen9EktEJP373/8+d9KkST9x4Ry6jdqDKu1dpZCqQM6Z8x0GQs6tgyHnDvJ54iDnMekHcm4/0DPXf66+IOeu9gM5Z8t3+LPUFiT65NVWqjzsLUmfMmXK/7z11lszyXoCaL1inVbOSbNOEW1k0g5ihLcezEgsnE4KZ2vG9scee2z8/PnzH/HS69Tqj6hU8jHknCvfYSDk3DoYcu4gnycOch6TfiDn9gM9c/3n6gty7mo/kHO2fJd+lpQQ0f7tCuUPFyklzTPuKRQVFU3v1asX6+vXTI/F2qeNHBAFIOixw2xoiZmg256x/cYbbxx09913/8Xn86VH9cxcpLFCpT3LFFLaIOfM+Q4DIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHNX+4Gcs+W7/LMUaiPa/61Cg0ZKlJTqDfcUBME3adKk6eXl5Z9s3rxZ7/VrncJ12lSDdrN8SHocgG98bGCRcyLj50msxDy8PD7BxIwZMzLff//951NTUwuid1ru0nxMpZ0fKBQKQM6Z8x0GQs6tgyHnDvJ54iDnMekHcm4/0DPXf66+IOeu9gM5Z8uPxs9SR3BahkBzFiRRem/vKFBjY+Oe2bNn/2jdunV1ZP76NaOZ3fVevRYe869GfEhnqV0H3YB3fjoTB+3/TJlJuvY5EqNh7aaV89zc3KT//ve/T2RlZU2J3mm5S0st0c73Q9TWAjlnzncYCDm3DoacO8jniYOcx6QfyLn9QM9c/7n6gpy72g/knC0/inIeplcfgc5fkEQp6d7RoKqqqvVFRUW3Grx+jUXQtZKu9xq2MNpt0tkGUQSTxHUvVsNGjF6jZvZatcjtLnIuy7Jvw4YNv/SSnAcaiHYthZxz5TsMhJxbB0POHeTzxEHOY9IP5Nx+oGeu/1x9Qc5d7QdyzpbfDXJORFRXrdLSl1qppck7zpmdnX36pk2bfmHw+rXIx171PMHKK7QTyJlNKAe6AQh698E7KZxeu94vm9krF6T169dfM2TIkO9G55TcJ9hEtOvDEAUbIefM+Q4DIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHNX+4Gcs+V3k5yHm2oqVFr2coCCrTwHjC1Dhw69ZO3atfPJ+rXKRjO7W3mGlZRD0rsJCHr3wCrnkdtWw9vN3oMoEZG0ZMmS2RMmTLglOqfkPm0t7ZXz1nrIOXO+w0DIuXUw5NxBPk8c5Dwm/UDO7Qd65vrP1Rfk3NV+IOds+d0s52GqyhRa9nIrtQV5DhxbJk2a9JN///vf5xD7u9HN3pdu9CGdJehGMIt79DH63yezKjnvpHBdPr/5zW+Krr322se88jq1UIBo91KFmqsh58z5DgMh59bBkHMH+TxxkPOY9AM5tx/omes/V1+Qc1f7gZyz5cdIzsM01qlUcUihgrE+Er1RthRGjhw5vU+fPhuWLl1awZijd/paP1F12iDpMQKCHn14hrYbPWfOJehTp07tvXjx4r/4/f6s6J2WeyhtRLs/UqipUve2zhjIue1AyLl1MOTcQT5PHOQ8Jv1Azu0Heub6z9UX5NzVfiDnbPkxlvMwDTUqVZerNHSMRIIHVFQQBN+ECRPO2rJly4c7duxoIfv/PGZnC1mPIfgmRx+WV6oZVdCNhrPrVs2pY1K4AwcOPJSbmzszuqflDmqIaPcyherLIOfM+Q4DIefWwZBzB/k8cZDzmPQDObcf6JnrP1dfkHNX+4Gcs+XHiZxHUjBWohmX+nl6jCnHjh3bWFBQcHNdXV2Q2F6/FrmuUtcZ3vU+pLPUrgOX8cZgDu/ihpxzTQq3du3a+V6Rc1KJSlZCzrnyHQZCzq2DIecO8nniIOcx6Qdybj/QM9d/rr4g5672Azlny49DOSci2rstRGuWBDizYkdWVtbkdevW/ZiM3UA7YZzRpHFmz6WTzlK7DlwGgh49zIaGWM3UrtdmOSncc889N2nixImemRTu4OcK1e6HnDPnOwyEnFsHQ84d5PPEQc5j0g/k3H6gZ67/XH1Bzl3tB3LOlh+nch5m11ch2rjMO7PGjRkz5odvvPHGDNIfYWs1ubSRd5DBthZIepTAM+jRwc5z50bVc8sJ4YhIKi4uzl20aNFTkiSlRu+03KPiW5XKvoScM+c7DIScWwdDzh3k88RBzmPSD+TcfqBnrv9cfUHOXe0Hcs6WH+dyHuboQYVS0gXKGeCNOmZRUdGZNTU1n2zYsKGOMUXvW2Qk4CpDDHAZfFPdh0fO9SaE06uYmwp6bm5u8vbt2xdnZmaeHL3Tco/aAyqVfKKQ4tCIIOdsgZBz62DIuYN8njjIeUz6gZzbD/TM9Z+rL8i5q/1AztnyPSLn4XxRJDr3Kj/lF3qjltnQ0LBz0qRJ1+7YsaORzJ9Ft3oeXSXjZ9JJZ0kG28AB3vivIe9gV871ZF27bVg9/+yzz37iFTlvqlJp7yrIOXO+w0DIuXUw5NxBPk8c5Dwm/UDO7Qd65vrP1Rfk3NV+IOds+R6TcyIiRSFa8WaAqo8qDo/aPaSnp4/86KOP7iRjXzAa3s7yXnSr59GBy0DQ3YPnB5V1cjiz585FIhLffffd2SNGjLjapXOIKsEmoj0fKxTiebTn/7P35lFyXPX591PV3bNpZjSj0YxGo2UkaxkttmRJliXvtrCNwBuywcYYsHBsEwIEwhswvxyTN34TOIGYxInx4Q+cnAAJP2GcsNsGYYwNFrYBI294ka19l7VLI2mWrvePUUtdPXWr7tbTt2ae55w+3X37+62nqrrnTn3qboRz7UDCeXIw4dwgXyWOcF4RH8K5fmBq6n8lL8K5VR/CuVx+CuG8oN7jwOrv9KD7iOnWh0aTJ0++5oknnliBeHYQsYXOeHRCepmUjn4b6ZDNceeJa50DyNx1113T/vzP//w+3/dz5TssO8r3Aut+lsdx2dExAOHcIJBwnhxMODfIV4kjnFfEh3CuH5ia+l/Ji3Bu1YdwLpefYjgvFPaeAHZuzGPavCz8FFDT5MmTz2toaPjt6tWr34bcqYmKKWWauO0Q1sugFPzUUiPRXSWTcedRgJ4FkFm4cGHDN7/5zQeqq6tby3tYFhQA63+Zx+FdZv/RCOdygYTz5GDCuUG+ShzhvCI+hHP9wNTU/0pehHOrPoRzufxhAOcFHTsS4MCeAGec6T42eZ6XWbhw4dLnnnvukfXr158o+ijpVBU+lwVtThhXRvFE2pEOnItmbI8dbw4gk8vlshs3bvxiR0fHleU9LDva8kweu18lnEvlGwYSzpODCecG+SpxhPOK+BDO9QNTU/8reRHOrfoQzuXyhxGcFxfPXZLFknc632kVALBnz541U6ZM+XR3d3cvoieNK508Lh/xCCCeMK5wpkqfS19TGuIYdHPFrXdeWm663rkPIPPkk0/elBY43/1KQDiXzTcMJJwnBxPODfJV4gjnFfEhnOsHpqb+V/IinFv1IZzL5Q9TOAeAV57tw59+12foPDRqbW09f82aNX8G8SRxtsejF4sNwIZyv6+G2xrq9c6zX/va185esWLFFz3Pc/7mysHNATY9rTD7JeFcO5BwnhxMODfIV4kjnFfEh3CuH5ia+l/Ji3Bu1YdwLpc/jOG8oO3r82gZ72N0i/OX4Whvb180ffr0l7///e9vPVmUdOqiPo+DbY4/L5MI6PoaqvXOs4XX11577dh//Md//Ho2m20o32HZUffeAG/+Io9Als8J59qBhPPkYMK5Qb5KHOG8Ij6Ec/3A1NT/Sl6Ec6s+hHO5/BEA58DAb2zLG/2YNCOD2nrnudSbM2fOBTt37lz9/PPPH1HICzAYumVOvfMnJC3iidSXzLhzQK7lPHHceWNjY27Dhg0PjBkzZnEZj8mKeo8Cr/6kH73dkgmEc+1AwnncxYNcAAAgAElEQVRyMOHcIF8ljnBeER/CuX5gaup/JS/CuVUfwrlc/giB82KNavRwzZ9Vo67BfZQ6dOjQn+bNm3fHpk2bujG049FNv7IRK/f7Z6RbopZ0lXHnGQCZZ5555i/SAOf5XmDd6jzhXCbfMJBwnhxMODfIV4kjnFfEh3CuH5ia+l/Ji3Bu1YdwLpc/AuEcAI4eCrD6//agr9dgp4ZIjY2Nc5544om/Qrjxz8Z49ILi5t+iNERA15PsrO2lP+jSH3vSIwPAf/jhhy+ZPXv2yrIekQUFAfDWE3kc269fWxPO5QIJ58nBhHODfJU4wnlFfAjn+oGpqf+VvAjnVn0I53L5IxTOC9q7M48n/qfH+Dc4FJo6dep7f/7zn1+FZCAvZpVSlokC9aRJ4gjpGuIYdHWV/uh0l1TLRDwPGnv+l3/5l5M/9alP3e/7flV5D8tcW57JY/8GwnlivmEg4Tw5mHBukK8SRziviA/hXD8wNfW/khfh3KoP4Vwuf4TDeUGH9gboOQZMnOE+Uk2dOvX8XC736yeeeGJfUXFQ8ix67Qk+LxVndbcg939Nbkk0MZxo3Hlpq3np3arSribZ4rIpU6bUPvzww1+rqanpKOMxWdGulwPsfJFwnphvGEg4Tw4mnBvkq8QRziviQzjXD0xN/a/kRTi36kM4l8snnIe0e1s/qms9tE10u2Oy53nZxYsXL3nqqace2bx5c09CuCyEBxgM4ARyQ7n9S3JLcbO2l8YldQuRWYsw89hjj/1FfX19l/UjsawDmwNs+73kdO2Ec+1AwnlyMOHcIF8ljnBeER/CuX5gaup/JS/CuVUfwrlcPuE8nHvyu3z2Zz3Y/Ea/wZaGRrW1tZMeeuih/zeXyxUaBWOH2UJuPi2RCOqaIqDLSXVJNdHnsmPQMw8++OA5XV1dt5TjYGzq2IEAG57Ky/2zJJxrBxLOk4MJ5wb5KnGE84r4EM71A1NT/yt5Ec6t+hDO5fIJ5+Hcou8yCIBf/c8J7N0hu75w5dTe3n7ZY489djXkxqLHjUmPm0BO9ExJiF3ck5U0U2HhxwlEL6lW2rVdNOb81NjzCy+8cPS99977NdfXO+/vBdb9THLGdsK5diDhPDmYcG6QrxJHOK+ID+FcPzA19b+SF+Hcqg/hXC6fcB7Ojfgu8/3AlnX9mHF2Ftmc2zw6efLkc/ft27f6ueeeO3yyqPSAAsHrUsV9xq7vmuKJSpZK63nSmuelY84HTQoHILNly5b/b+LEie8u3yHZ0fon8ti/UaJ6I5xrBxLOk4MJ5wb5KnGE84r4EM71A1NT/yt5Ec6t+hDO5fIJ5+HchO9ywhkZLP9gtfOUdeDAgbWdnZ13Hjp0qBfh9dD7cHpNdNEa6UHJ6wCD10lHxHPpaypC7OIuL5Wu7UljzoVd3H/84x9fkQY43/VyQDhPyjcMJJwnBxPODfJV4gjnFfEhnOsHpqb+V/IinFv1IZzL5RPOw7kS3+W29f34w6/cXyC9qanp7CeeeOLDiJ7EOmk4ruzY9Kgu7o7fuqi82MU9XqIfVdwjbqKF2CXVbrnllva//uu//lff96vLe1hmOrIrwMZf55NrOMK5diDhPDmYcG6QrxJHOK+ID+FcPzA19b+SF+Hcqg/hXC6fcB7OVfgud23OY2yHj9EtbreFtre3L6yurv7N448/vhfh0xNEvI96HVdWEMehK4onSixbXdujoHzQkmq5XC67Y8eO+1taWpaW8ZiM1XsMePVH/cnjzgnn2oGE8+RgwrlBvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4V+O7rK7x8J6P1qC+yW3cOnr06Pr58+d/6K233upGuFt71CNf9OjHwGnV6epu+tUPa7l9W6dy0p21XaY7e+TY9F/96lc3ug7nQQCs/5XEpHCEc+1AwnlyMOHcIF8ljnBeER/CuX5gaup/JS/CuVUfwrlcPuE8nKv5XZ44HuAXD51Av+Orr40aNeqMRx999BMINyTqzOiu0tXd7bsWFRYBfbBkfjCiFvSk7u6RXeDvuuuuqUuXLv1Lu4dhX9t+n8eRnQmVFOFcO5BwnhxMODfIV4kjnFfEh3CuH5ia+l/Ji3Bu1YdwLpdPOA/nGv4Y396Rx5qf9hhtYyg0Y8aMm7/5zW8uQfLSa6XLRsc1WoogHYL31ElxDPpgybaeR91BKu3WHrecWgZAZty4cTXf+9737qupqWkv4zEZ68CmAFueJZwL8w0DCefJwYRzg3yVOMJ5RXwI5/qBqan/lbwI51Z9COdy+YTzcK7hj7GQvXdnHvWjPbSMd7tddNasWYvXrFnz0w0bNpxA/Kkr/SxANGyLyjlhXILc/qW4obi7QaLW8qSZD0+B++OPP357Q0PD7KE6GB2dOISBSeHiRDjXDiScJwcTzg3yVeII5xXxIZzrB6am/lfyIpxb9SGcy+UTzsO5luC8oDWP9GDvzoRr6Qqrurq67dvf/vbnEG5gjJv8Oq7RsrjlvFic1V1CBPSwRD8WlS4cosniBj3uv//+eXPnzv1IuQ7GhvJ9wFu/zKM/brUIwrl2IOE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs61DOcA0NcH/OKhE+g5bnoWyquOjo53PvLII8sR3Ss4bn4t0XhzmfHoVInYxf20TGdtj1pDUPhYuHBhwwMPPPBANpsdXcZjMtbG3+RxeHtMZUI41w4knCcHE84N8lXiCOcV8SGc6wempv5X8iKcW/UhnMvlE87DuWWA84J6jgP79wSYdlbWyKPcmjp16rlbtmx5bO3atUdPFkUdVhDxWYD4ru5u351wSLxzcVpxswzKTAAXt6zaoDXPN2zYcPeUKVPeU95DMtOeVwNsfiamOw7hXDuQcJ4cTDg3yFeJI5xXxIdwrh+YmvpfyYtwbtWHcC6XTzgP55YRzot1zrIczr4oZ+RVbu3bt+93kyZN+nh3d3cvTi+x1ofwcmui5deSll0rhfso2B/RYhd3OUUtpSYCdtHrU4/vfe97F7sO50f3BNjyO8J5ZL5hIOE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4dIjgHgD880Ytt691ee23MmDGLf/nLX74f0Y2QIsbhrO6WxC7uA5JtPY/q2q4ya3t2xYoVrXfffff9mUymtszHpK2+E8C6x/LoPyEIIJxrBxLOk4MJ5wb5KnGE84r4EM71A1NT/yt5Ec6t+hDO5fIJ5+HcIYRzBAOPrW/mMe2sLKqq3WXSjo6Oc/L5/K+eeuqp/UXFQcnrQFAu6uoeJU4YVyKehOjJ4IpfW+vansvlslu3bv1qW1vbxWU+JiOt+1keh0Tjzgnn2oGE8+RgwrlBvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4d6jhvEhtE31c/ZEa+A43lx45cuSNWbNm3bpt27bjCHdpF3V3j+rmXvpc/EDJaxSVjViN9C7uMrO2l77XmbU9A8BfvXr1da7D+fbnCeeR+YaBhPPkYMK5Qb5KHOG8Ij6Ec/3A1NT/Sl6Ec6s+hHO5fMJ5OLeCcA4Au7bm8duf9RjtQ7lVX18/c/Xq1X8O8ZJrtmZ1Z6NxkRy+Z1N2RY17UO3aLtNyngGQ+fSnP915xx13fNXzPGdnhTi4JcDmZwjn2v6Ec910wrlJvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4t8JwXijasz2P0S0exoxzt820tbV13vjx4//wk5/8ZEdRcelRBRHlAfS7uo9ojeQTodO1XQfOs42NjbnNmzd/Y/To0fPLfEza6jkKvPrDfvRFjTsnnGsHEs6TgwnnBvkqcYTzivgQzvUDU1P/K3kRzq36EM7l8gnn4VxH4LygbBXwnttr0NzmLqQfP358+7Jly27+7W9/ewh6Xd3jurmXwn0U7I8ouftLGDrF3aRIgvSoLh2Dun48+uij73UZzgFg46/zhHNdf8K5bjrh3CRfJY5wXhEfwrl+YGrqfyUvwrlVH8K5XD7hPJzrGJwDQF8P8IuHetDXq7lTQ6CampqOVatW/T8Qd3Mv7toeN6u76AEMZrIR25A8UgFddc3zKEiPgvHS8RmZW265ZdySJUs+XubjMdLuVwIc3mEXmgnnln0EwYRzg3zZ3JRcWBLO3fIhnOsHpqb+V/IinFv1IZzL5RPOw7kOwnlBB97O49nVbo9Hnzx58rX//u//fi7iIV0E6lFj00Ua8bO6j8SDLkfX9sLrbFFZFkBmx44dX25vb39HeQ9JX8cPAK/+qB/50uUYCefagYTz5GDCuUG+ShzhvCI+hHP9wNTU/0pehHOrPoRzuXzCeTjXYTg/JQ941y3VmDjd3SnCuru7N82dO/fmjRs3HkN0N3eZru6ibu6F01T8GjD/maVOI60FXeWOjEzXdtEdIh+A/9BDD13kMpwHeWDDU3nCuY4/4Vw3nXBukq8SRziviA/hXD8wNfW/khfh3KoP4Vwun3Aezk0DnJ8MfPKHPThxzF0eraur6/zRj360Eva6uiPiPWJejwi5e4umPNJpPRctm1bail7cep6ZN29e/b333vuv2Wy2vszHpK3tz+exf2NJJUA41w4knCcHE84N8lXiCOcV8SGc6wempv5X8iKcW/UhnMvlE87DuWmB85Pq7QEO7Q9wxtysYubQqa2tbd6xY8d+8fTTTx88WSQ6zEDwWqWL+4jUSDoBUXdiou7iyIwxj5q9PdS9/bXXXvt0V1fXB8t4PEY6sivAG4/mw/9ECefagYTz5GDCuUG+ShzhvCI+hHP9wNTU/0pehHOrPoRzuXzCeTg3ZXBerEtXVGHGfHchfd++fX9ob2//897e3kL39tJu7qXd3QvPQdFzXFf3wulLIJXhqZHWxb1YUTcnRJPBid5HPr74xS92zZw58wPlPgBd9fcOzNpOOFf0J5zrphPOTfJV4gjnFfEhnOsHpqb+V/IinFv1IZzL5RPOw7kphnMAePqRXhw56C6PjhkzZtEjjzxyNZK7uJc+A4OZSsRkQHQD67DXSOniLtN6HgXjmaLnuHXPT7WeNzY2Vq1aterempqacWU+Jm1t/m0eh3cUFRDOtQMJ58nBhHODfJU4wnlFfAjn+oGpqf+VvAjnVn0I53L5hPNwbsrhPAiA/j7g7R15dJ2ddRZLJ0+evOD555//8bp1644j/rCDkmfR56USLb827DUSWtBFcB4VJ5oYTjSb+6Au8I8++uh7Gxsb59o/DDs6sCnA3nVFfweEc+1AwnlyMOHcIF8ljnBeER/CuX5gaup/JS/CuVUfwrlcPuE8nDsM4LygHRvzeHGNu4ujZ7PZ0V//+tc/heilpuOYKmnCuBGvkQDoBZV+8UmzCCYttTbo8YEPfGDckiVL/qLsR6Kp3mPApjX50wWEc+1AwnlyMOHcIF8ljnBeER/CuX5gaup/JS/CuVUfwrlcPuE8nDuM4Lyg3/2yF/t25Qd/4IgmTZp09b//+78vRvKs7qqQHsVtxc/DWiPhIOO+4NKxEDJrngu7t2/fvv3L48ePd3ZZtTdX53Fw68m/fsK5diDhPDmYcG6QrxJHOK+ID+FcPzA19b+SF+Hcqg/hXC6fcB7OHYZwXtCYcT6u/2gNfEcHJnd3d2+aM2fOBzZt2tSN8ARxxRPHcW10BQ33FvQ4OJddYk10tyd0d2jVqlUXuQzne14LCOcq/oRz3XTCuUm+ShzhvCI+hHP9wNTU/0pehHOrPoRzuXzCeTh3GMM5AOzblcdzj7vb1b2urq7zxz/+8a0Id3MvZSXRpNuiVvQojYSGZQDDe5K40rHnst3YS8dQpH7N8xOHgLd+mUdQuDdVIsK5XCDhPDmYcG6QrxJHOK+ID+FcPzA19b+SF+Hcqg/hXC6fcB7OHeZwXtCurXmMn+KjocnNttW2trZ53d3dj69Zs+bAySLRkQUJn4s0YuAcGN4Hm9R6LjO+PK57ewHSs6+99tqnurq6PlTm49FSEACv/zSPo3sCwrlBIOE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4dIXBeCGto8vDev6hBVbWb+KawNnrp+ujFXdyLn3HydfEDEc/DTm7ehrGvuNZzUbnUxHB///d/P3PmzJm3DM1hqGvnCwHh3DCQcJ4cTDg3yFeJI5xXxIdwrh+YmvpfyYtwbtWHcC6XTzgP544wOAeAwwcC/Oan7nZ1T1gbXbQ+elyX91KVlrl5p8KChmsXd5WJ4aIgXGpiuLq6utz3vve9r7q65vnRPQE2/iZ/+h5UkQjncoGE8+RgwrlBvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4dwTCeUH7ducxptVHc5ubbawKa6Mj4vNAUF6q0mHMw05ufrtmEt1dEbWYq6zVFwL5n//8586ueZ7vBzY+lUfQP/gzwrlcIOE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4dwXBe+ODXP+lB92HTPSmPYtZGj+utHDeBXKlky1Kt4QboojsqUV3ai5/jllkrbVX3Afg333xz29KlSz9ehmOwoq3P5XH84OBywrlcIOE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4d6XB+Use7A/zqBz2Ge1M+Fa2NnsRWSbO6I6Fs2Go4HVxUy7nsxHDFs7eLurdni5+3b9/+j+PHj7+8jMejrcM7Arzx6OB+7YRzuUDCeXIw4dwgXyWOcF4RH8K5fmBq6n8lL8K5VR/CuVw+4TycSzgfpAveXYUzl2S19qfc6u7u3jR37tybN27ceAz2JowrXo9K9DwsNNxa0AtKmgCutDyqi4XwLs93v/vdi1yF8yAPbF5DONcNJJwnBxPODfJV4gjnFfEhnOsHpqb+V/IinFv1IZzL5RPOw7mE80g9+4seHD7gJpfW1dV1/uhHP1oJ8URxpQ2lMhPGRfWGhuB9qjWcJomL6tJe/LoUxLUmhps+fXrtv/7rv/5rNpttKPcB6WjHH/M4sClcRjiXCyScJwcTzg3yVeII5xXxIZzrB6am/lfyIpxb9SGcy+UTzsO5hHOh8v3Agb0BZsxzsxW9ra1t3rFjx37x9NNPH0T4EKMONyh69krex2lYThg3XFrQZeA8rkU97hG6u/Pd73735pqamo5yHoyujh8Edr4U/h0TzuUCCefJwYRzg3yVOMJ5RXwI5/qBqan/lbwI51Z9COdy+YTzcC7hPFFb1vXjrZcjZoR2QJ7n5T73uc/dlcvlSieLE7WmF54R8XmkRcnzsNFwAPSkL634fRyEx7Wq+wD8q666asz8+fM/YvsAbGnz0+FZ2wnncoGE8+RgwrlBvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Au7fP0oz3oOWG6pfKopaXl3G9/+9sXQLw2ehysywxZHpYaDoBerNIvLOnLjbqbEzXu3AeQ+bd/+7c7M5lMffkPQ1171wU4vPP0HyfhXC6QcJ4cTDg3yFeJI5xXxIdwrh+YmvpfyYtwbtWHcC6XTzgP5xLOlXy6Dwd4dnWv4dbKp2uuueZTLS0tOSRDusw49FKVtqIPC3AfToAuC+al70VwHoL0u+66a+rUqVOvL/MxaKnv+MCyagURzuUCCefJwYRzg3yVOMJ5RXwI5/qBqan/lbwI51Z9COdy+YTzcC7hXMvnT7/rw+6tgyeJdkF1dXVTv//976+APIiL1kNXhfbUKu2ALnPXRKZbe9zY8wwA/zOf+cwnPc9zclK9rb/Lo+/EwGvCuVwg4Tw5mHBukK8SRziviA/hXD8wNfW/khfh3KoP4Vwun3AeziWca/sEAfDkD3sQuMnoWLp06UfPO++8Bpi1oIugfFi1ngPpBvS4uyZxd13ipvmPfDz44IPntLW1XVyewzDT4R0B9q4b+EslnMsFEs6TgwnnBvkqcYTzivgQzvUDU1P/K3kRzq36EM7l8gnn4VzCubHP3l15vLDGza7uuVyu+cEHH7wVJfN7RTxEvKba9T3VSjOgF5R01ySuBT3xUVdXl7nxxhv/qmx7b6DiNc8J53KBhPPkYMK5Qb5KHOG8Ij6Ec/3A1NT/Sl6Ec6s+hHO5fMJ5OJdwbs3n97/qdXZt9FmzZt1y2223tSN+/i9RKzpinpM+S52GA6AXK6n1XOYR+oH84Ac/eHdDQ0PXEB6DtHaszeP4QcK5bCDhPDmYcG6QrxJHOK+ID+FcPzA19b+SF+Hcqg/hXC6fcB7OJZxb9enrAX79kx5Dt/LI9/2qe+655+MYvFKWzlDkUsYDBkN5aiE9rYAue5dEZvy58M5NV1dX7cUXX/wX5TgAUxXWPCecywUSzpODCecG+SpxhPOK+BDO9QNTU/8reRHOrfoQzuXyCefhXMK5VZ+CNr/Rj7decXNt9IkTJ77rK1/5yhwk81hU4ykQzYClXd1TC+YFpRHQRXdHVFrI41rNC+8zq1atuqW6urqtnAejq81P55GX/NsjnFv2EQQTzg3yZXNTcmFJOHfLh3CuH5ia+l/Ji3Bu1YdwLpdPOA/nEs6t+pRqzSPuro1+++23fzqXyxVa0EUt6aVliIiJmzAu1UojoBcU9wUodWOPetxwww0tZ5111spy7byJ9q4LcGin3B8d4dyyjyCYcG6QL5ubkgtLwrlbPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Bu1SdKRx1eG725uXnhqlWrLsHgbuyiyeKiGlhR8izb7T0VSjOgA+LW86gy0eyAkWX33nvvn2cymdqhOQx59R0Htjwnt4YC4dyyjyCYcG6QL5ubkgtLwrlbPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Bu1SfO/5Xf92GXo2ujL1++/JPjxo2rQsmy1hGPpHHoMgCeOkhPG6DL3A2RBXXh4+677542ZcqU66zvvQVtee70mudxIpxb9hEEE84N8mVzU3JhSTh3y4dwrh+YmvpfyYtwbtWHcC6XTzgP5xLOrfok+Qd54Mkfubk2el1dXef//u//Xg81EJdpkB0WY9Ezld4BBZWe8LgvZtB4csTfnckUPx5++OF7Ro0aNbnMx6OswzsCbHku+a+WcG7ZRxBMODfIl81NyYUl4dwtH8K5fmBq6n8lL8K5VR/CuVw+4TycSzi36iPrf+xIgFwV0D7ZPeRrb2+f+8QTT/xg8+bNPQjveulhBIJyUTyQYjgH0teCDkSDumgMQtykA1HdJ/xvfetbS1tbW88v8zEoK8gDm9Yk3wIjnFv2EQQTzg3yZXNTcmFJOHfLh3CuH5ia+l/Ji3Bu1YdwLpdPOA/nEs6t+qj6u7o2ei6Xa/rGN77xEYiHHCeNQ09qRU/tWHT3bqeIJTrZpfAd1YIuaj0vtJpnAWQaGxuz3/jGN/6pqqpqzFAckIp2/DGP/ZviYwjnln0EwYRzg3zZ3JRcWBLO3fIhnOsHpqb+V/IinFv1IZzL5RPOw7mEc6s+Ov75fuDA3gAz52XNTMqgMWPGzNm9e/djv//97w9j8GEEEc9xh5p0FlMD6WlpQY+6+xE3k1/hOan1PAT1P/zhD6+pr6+fXqZj0NaJw8COl+J/c4Rzyz6CYMK5Qb5sbkouLAnnbvkQzvUDU1P/K3kRzq36EM7l8gnn4VzCuVUfE//Nb/TjrZfdWxvd9/3cF77whY8jYfLuiDLRmPNhMRY9DYBeelKjTnJS14bEbu7z5s0bdf7553/M+t5b0Nbf5RHE/E0Rzi37CIIJ5wb5srkpubAknLvlQzjXD0xN/a/kRTi36kM4l8snnIdzCedWfYz9A+DpR3vQ5+DKax0dHVfed999Z0FiIm/Ed2sXMWLqlAZAL0il9TyyhRzRd2E8AP5//dd/faiqqmpsOQ9AR0d2Bdi/UQnBxZ+k+eKMcK6bTjg3yVeJI5xXxIdwrh+YmvpfyYtwbtWHcC6XTzgP5xLOrfoY+58MPHoowNrfOEjoAG699dZP53K50uHIIggXfY6EMiAlwJ4mQAfkWs/9ovIoOB80Jv2WW24ZN3fu3A+Vd9f1FDdrO+Hcso8gmHBukC+bm5ILS8K5Wz6Ec/3A1NT/Sl6Ec6s+hHO5fMJ5OJdwbtXH2L8kcO1vetF92HTv7aupqWn+ww8/vAzJ/CYCd5S8jpPzkO46oKuOPRd1aY+dTO6LX/zinb7v15TvMPS0b32Ao3ui/4gI55Z9BMGEc4N82dyUXFgSzt3yIZzrB6am/lfyIpxb9SGcy+UTzsO5hHOrPsb+EYG9PcCzv3CzFf2KK6745IQJE6qRDONRs7rHdX9HUXkq5DKg6449j4RwwcP72Mc+NmHy5MnXlOMATBT0A9t+H72sGuHcso8gmHBukC+bm5ILS8K5Wz6Ec/3A1NT/Sl6Ec6s+hHO5fMJ5OJdwbtXH2D/mO35tbR/27kxeunmoVVtbO/Hhhx++AdGrccVBe3Hv6WExFt1lQC8o7iQnTRSQBO6Zz33uc7d5nufccnO7/hTgxJHB5YRzyz6CYMK5Qb5sbkouLAnnbvkQzvUDU1P/K3kRzq36EM7l8gnn4VzCuVUfY/+E7zjIA2sec7MVfeHChSunT5+u2ooODIbzVI9FTwOgA+ITa9J67t9xxx3jOzs7rx6iY5BW3wlgxwuD72wRzi37CIIJ5wb5srkpubAknLvlQzjXD0xN/a/kRTi36kM4l8snnIdzCedWfYz9Jb/jLW/1Y/Mb7i27VlVVNfab3/zmCqi3okfxYZKchXRXAT3u7oat1nP///yf/7PS87xsOQ7ARNv/mEd/T7iMcG7ZRxBMODfIl81NyYUl4dwtH8K5fmBq6n8lL8K5VR/CuVw+4TycSzi36mPsr/QdB1jzsx7jfSuHFi1adOuUKVMKrejFM7vLjEWPexTkLJgX5CKgi8aeW209X7ly5bgpU6ZcW77D0NPxg8Ce18J/LYRzyz6CYMK5Qb5sbkouLAnnbvkQzvUDU1P/K3kRzq36ED0lmQUAACAASURBVM7l8gnn4VzCuVUfY39FOAeAfbvzePUPfeo7VWZVV1e3ffvb374O8UtmJ41FL34ulvNwDrgJ6AXZbD0f1E3iC1/4wkrP83Jl23tNbf1dHkFR73bCuWUfQTDh3CBfNjclF5aEc7d8COf6gamp/5W8COdWfQjncvmE83Au4dyqj7G/BpwX9NzjPejtMT1S+1q8ePGtETO6R4H5sByL7jKgA/Zaz0Nlt9xyS9uUKVPeM0THIK3DOwMc2Hz6j4RwbtlHEEw4N8iXzU3JhSXh3C0fwrl+YGrqfyUvwrlVH8K5XD7hPJxLOLfqY+xvAOcA0H0kwPNPuTdhXHV1dft3vvOdayBeUm1Yj0V3DdBl7mbotKKHIP3v/u7vbvV937nW8y3PEc5V89NS0Vca5gjnBnGE84r4EM71A1NT/yt5Ec6t+hDO5fIJ5+FcwrlVH2N/Qzgv6IU1vTh6yPSo7evcc89dOW7cuCrIdW0fVmPRXQL0pLHncSdZeuz5zTff3HrGGWesKN9h6GnvmwG63x744yCcW/YRBBPODfJlc1NyYUk4d8uHcK4fmJr6X8mLcG7Vh3Aul084D+cSzq36GPtbgnMA6OsFnlndExtTCdXU1IxftWrV1RiBY9FdAvSCVFrP47o3RI49v+eeez7k+35VGfZbW/l+YNsfBgaeE84t+wiCCecG+bK5KbmwJJy75UM41w9MTf2v5EU4t+pDOJfLJ5yHcwnnVn2M/S3CeUGvr+3Dnu2Dl3iutJYuXfoRQSv6sB6L7iKgA3Ins/gLkBp7fsMNN7RMmzbthqE4ABXtejlAz1HCOeE8OZhwbpCvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4lnFv1MfYvA5wHwcDj6cecbEXv+M53vvNu6I9FB+Th2xlIdwXQZceei7q1S409/+IXv/gh3/erre+9gfqOAztfzBPObfsIggnnBvmyuSm5sCScu+VDONcPTE39r+RFOLfqQziXyyech3MJ51Z9jP3LBOcFbVvfj42v9cvuzZDpvPPO+0hLS0sW+mPRERHr9Fh0FwBddFLiWs9Vx55711577ZgZM2a8txwHYKJtz+fRJ5w8kXCu5SMIJpwb5MvmpuTCknDulg/hXD8wNfW/khfh3KoP4Vwun3AeziWcW/Ux9i8znBe05mc9oeWeXVBtbe3EVatWvQvqY9FFQF4s5+AccAPQC0oayF98cou/iNLPI1vPv/zlL9/i+35NeXZdT8cOAHveEP0REc61fATBhHODfNnclFxYEs7d8iGc6wempv5X8iKcW/UhnMvlE87DuYRzqz7G/kME5wCwf08eL//OvWXXLrjggtsaGxszkIdy3RndnQB2lwC9WKLW89Ln0ongIu+mLF++vHnGjBk3Ds2uy2vLc3nBXSrCuZaPIJhwbpAvm5uSC0vCuVs+hHP9wNTU/0pehHOrPoRzuXzCeTiXcG7Vx9h/COG8oN/9shc9J0zPkF3V1tZOfuihh5YjenI4GWgHxPBdWl5xSK80oMuekLiW8ihQD7Wef/WrX70lk8nU2t11Mx3ZFeDg1qgfP+Fcy0cQTDg3yJfNTcmFJeHcLR/CuX5gaup/JS/CuVUfwrlcPuE8nEs4t+pj7F8BOAeAY0cD/OFJ91rRL7rooqhWdJm5yEQNvs6ORa80oBdUenKSxp/HLUgf+uyKK65o6urqumkIjkFJ2/5IOLfmIwgmnBvky+am5MKScO6WD+FcPzA19b+SF+Hcqg/hXC6fcB7OJZxb9TH2rxCcF/TCb3vRfcT0bNlVXV3dlFWrVl2B6NW6ohpsgWiuFA2ndkaVBHSV1vM4YI9dWu2f//mfP5DJZOrs7rqZjuwOcGh76Y+ecK7lIwgmnBvky+am5MKScO6WD+FcPzA19b+SF+Hcqg/hXC6fcB7OJZxb9TH2rzCcBwD6eoHnn3KvFf3iiy/+s7q6uqhW9Li10ZOGTRfLibHorrSgFyTTeh438D/0ZV1yySWjZ8+e7Vzr+fZBreeEcy0fQTDh3CBfNjclF5aEc7d8COf6gamp/5W8COdWfQjncvmE83Au4dyqj7G/A3Be0Mu/68Wxo6Znzq5GjRp1xne/+913IGJIM+RYUcSYwGAorxikuwDocQcvM+Y86g6KB8C///7735/JZOrLt+vqOronwMFtxT92wrmWjyCYcG6QL5ubkgtLwrlbPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Bu1cfY3yE4B062ov/avVb0Sy+99M/q6upK10UXgbrqhHFJnw2JXAB0ILmLgewdkVNf1IUXXtg4e/bsm8u838oKjz0nnGv5CIIJ5wb5srkpubAknLvlQzjXD0xN/a/kRTi36kM4l8snnIdzCedWfYz9HYPzgl5+rhfHu03Pol3V19dP/853vnMpohmwlBWTZnVXAfchU6UAXdStQPYhmmL/1Pv77rvv+mw22zAUByOro28Xz9xOONfyEQQTzg3yZXNTcmFJOHfLh3CuH5ia+l/Ji3Bu1YdwLpdPOA/nEs6t+hj7OwrnANDbAzz/G/da0d/xjnfcnsvliseiy3ZtR8T7KFUU2CsB6DIHqgLtgyaGa2lpyZ555pnOrXu+fS3h3MhHEEw4N8iXzU3JhSXh3C0fwrl+YGrqfyUvwrlVH8K5XD7hPJxLOLfqY+zvMJwX9PKzfTh+zPSM2lV9ff3Mb33rW+cjunu7aPgzINeKXnG5Mou7Tsu5aN1z7z//8z+XVVdXjxuaw5BT994ABzYHIJxr+giCCecG+bK5KbmwJJy75UM41w9MTf2v5EU4t+pDOJfLJ5yHcwnnVn2M/VMA5wDQcyLAWgdb0S+//PL3Q64FHQizIyI+L1Zp2ZCDe6XHoCeNPS88x93pGATpF1544fvLtcO6Gmg9J5xr+QiCCecG+bK5KbmwJJy75UM41w9MTf2v5EU4t+pDOJfLJ5yHcwnnVn2M/VMC5wW9+EwfTjjWij527Njz/uZv/mYqxC3mUdAOwbNTrehDDehR/fllxgaUtpoLZ3D/yle+MqepqWl+GY9BWd37AuzflB/8QZovzgjnuumEc5N8lTjCeUV8COf6gamp/5W8COdWfQjncvmE83Au4dyqj7F/yuAcONmKvsa9VvTbb7/9Joh7VSfN6g7EA3nFYN2VLu6ictmu76e+iJtvvtnB1nPCuZaPIJhwbpAvm5uSC0vCuVs+hHP9wNTU/0pehHOrPoRzuXzCeTiXcG7Vx9g/hXBe0Iu/7UPPcdMzbVednZ1XXXLJJY2I7lWdNFw6DtIr2pI+lIAucxKiWtBFJ3lQK/qNN944dsKECVeUZe81dWx/gP2bSn7Mab44I5zrphPOTfJV4gjnFfEhnOsHpqb+V/IinFv1IZzL5RPOw7mEc6s+xv4phnMAOH4swNo1fYZbsSvf92vvvffe9yC5BV00UVxS67pMS7t1pWGZtcJnUV3aQxD/hS984b2e5+WG4gBktX1tPvwXkeaLM8K5bjrh3CRfJY5wXhEfwrl+YGrqfyUvwrlVH8K5XD7hPJxLOLfqY+yfcjgveK1d04ueE6Zbs6szzzzzfY2NjYUl15LGoOt0dS9oyCB9qABdpZ+/Upf2kw+vs7Ozpqur6wb7u66vYwcC7NtY9CNO88UZ4Vw3nXBukq8SRziviA/hXD8wNfW/khfh3KoP4Vwun3AeziWcW/Ux9h8mcA4AJ44FeMGxVvSamprx3/rWty5F9FJrSV3ck8AdGEIwL6jSY9BlQTwKzENlDz744JW5XK55iI8hVqHW8zRfnBHOddMJ5yb5KnGE84r4EM71A1NT/yt5Ec6t+hDO5fIJ5+FcwrlVH2P/YQTnBa1d04veHtMt29XFF198M+LBXNRrGxHPxarIWPShAPTSA1Mdg176flALei6X85csWeLU5HDHDwbYv+HkjzfNF2eEc910wrlJvkoc4bwiPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Bu1cfYfxjCOQAc7w7wwm/dakVvbm5e8KUvfWkWBPOUIXqYNJDMnCgqB4YI2Cs5Bj3p7kVUV/aoCQC8+++/f0FDQ0PX0Oy6nLavzQ/8sNN8cUY4100nnJvkq8QRziviQzjXD0xN/a/kRTi36kM4l8snnIdzCedWfYz9hymcF7T2N73o7TE0sawPfvCD74fcTO6qXdmHdRd3W+PPB0H6ddddd3OZ9llLxw8F2LchSPfFGeFcN51wbpKvEkc4r4gP4Vw/MDX1v5IX4dyqD+FcLp9wHs4lnFv1MfYf5nAOAMe6A7z0jFvrok+cOPGdK1asaIH8WuhxS67J9Pgum4a6BT3pYOMG8Ee2oN95550T2tvbLynzfitpx9o8gv7B5cOzYjHwEQQTzg3yZXNTcmFJOHfLh3CuH5ia+l/Ji3Bu1YdwLpdPOA/nEs6t+hj7jwA4L+j53/SizyFG9zwv93d/93c3IH4Os2KeBKLBvfQzYAigvFjlBnTRAcp0NRDd+QhB+mc+85n3DcFxSKvnKLD3LUNQiJCbFYuBjyCYcG6QL5ubkgtLwrlbPoRz/cDU1P9KXoRzqz6Ec7l8wnk4l3Bu1cfYfwTBOQAcOxrgpWcdInQAs2bNumHChAnVkGtBj2PQiqqcYCtzcCrQPgjO582bN2ratGnvsbzfRtr9pzyCfLhseFYsBj6CYMK5Qb5sbkouLAnnbvkQzvUDU1P/K3kRzq36EM7l8gnn4VzCuVUfY/8RBucF/fHpXuTzyXFDpaqqqpb/+I//uAJya6E7u+TaUM/iHtd9QPYknnp+4IEHrspms/VDcAxSyvcDe14P/0qHZ8Vi4CMIJpwb5MvmpuTCknDulg/hXD8wNfW/khfh3KoP4Vwun3AeziWcW/Ux9h+hcA4ARw8FWPeSWzO6n3feee/P5XKimdvjOBSIB/AhA/Wh6houOggRvJe+HwTpdXV1mYULFzq1tNrb6/LoO3H6/fCsWAx8BMGEc4N82dyUXFgSzt3yIZzrB6am/lfyIpxb9SGcy+UTzsO5hHOrPsb+IxjOC/5r17jVzb2hoWH2fffdNx/iucyiGoSBaACXBXarKhegqxxUFJSXjjkfNEHcgw8+uLSurq7T8n4bafcrp3/lLvzBmAQSzpODCecG+SpxhPOK+BDO9QNTU/8reRHOrfoQzuXyCefhXMK5VR9jf8I5AGDX1jx2bHaonzuAFStWFJZci5rLLGk9dFGjMYrel1VDvcya7MD8pDsd/hVXXOFU6/nBbQGOHRj4qbryB6MbSDhPDiacG+SrxBHOK+JDONcPTE39r+RFOLfqQziXyyech3MJ51Z9jP0J5yG94Fgrent7+7LbbrutHYOXXJMdWg1Eg3hqx6CXHlTcwckOzA+1oH/+85+fMnbs2PPLsO/a2vXKwJ0j1/5gVAMJ58nBhHODfJU4wnlFfAjn+oGpqf+VvAjnVn0I53L5hPNwLuHcqo+xP+F8kN58pQ9HDpnumT15nud/9rOffR/EPbPj4DyuZR1F5UA05xprKMegq4wxF5X5ALw77rjDqdbz4wcDHNwaefmpJDcrFgMfQTDh3CBfNjclF5aEc7d8COf6gamp/5W8COdWfQjncvmE83Au4dyqj7E/4TyyMN8PvPhbt1rRp0+fvmLu3Ll1iG9Bh6AMEMN36ru4xx2YTCt66czt3vz58+s6OzuvKudOq2rXnwLzH7yTFYuBjyCYcG6QL5ubkgtLwrlbPoRz/UAnL5iMvQjnVn0I53L5hPNwLuHcqo+xP+E8tvDl3/WhzyFGz2azjV//+tffhegWc9EM74h4XfxcrLK1opd7krikz6IgfdByasWff/WrX31HJpOptb7HmurvGZi93URuViwGPoJgwrlBvmxuSi4sCedu+RDO9QOdvGAy9iKcW/UhnMvlE87DuYRzqz7G/oTzxMLj3QFeW+vWkmsLFix4L5LHoMs0HCPiddlkG9CT4Fv2hERNDucD8BcuXHit5X020p438ug3uFvkZsVi4CMIJpwb5MvmpuTCknDulg/hXD/QyQsmYy/CuVUfwrlcPuE8nEs4t+pj7E84lyx0b7K4+vr6mV/60pdmIoIpocaoQyqbgC6z8yrQPgjUP/GJT0xobm5eaHGfzRQMdG/XTneyYjHwEQQTzg3yZXNTcmFJOHfLh3CuH+jkBZOxF+Hcqg/hXC6fcB7OJZxb9TH2J5xLFg5o7648trzVb2ZqWe973/uuhdzcZ7LQLjNO3UjlnMW9tCwKzgvvRS3moa7uH/3oR68pw/5qa//mACcO6/3y3axYDHwEwYRzg3zZ3JRcWBLO3fIhnOsHOnnBZOxFOLfqQziXyyech3MJ51Z9jP0J55KFYa192q1W9M7OzuUTJkyogmD4NJI5VaSygXq5x6An3WVI6vN/6kTW1dVlpk+f7tbkcK/ojT13s2Ix8BEEE84N8mVzU3JhSTh3y4dwrh/o5AWTsRfh3KoP4Vwun3AeziWcW/Ux9iecSxYO1obX+3Fgr9n8XDaVy+Wavva1r10I8VxnUeAOqAO4NUgfqmXWADkQjzpxHgDvgQceWFRTUzN+CPc3Vt37Ahzaof7rd7NiMfARBBPODfJlc1NyYUk4d8uHcK4f6OQFk7EX4dyqD+FcLp9wHs4lnFv1MfYnnEsWRocFAfDCb92aLO7888+/FvEt6FFwXrFu7uWeJE7lIRqw7wPwL7/8cqe6t+96hXAuCiacG+TL5qbkwpJw7pYP4Vw/0MkLJmMvwrlVH8K5XD7hPJxLOLfqY+xPOJcsjA/70x/60HPC9GjsqbW19YIbbrihBdEt57IwLhrGbV22AF32LoLsXYnQHY7FixeP6ujoWGZpX43VdxzY+5Za1w03KxYDH0Ew4dwgXzY3JReWhHO3fAjn+oFOXjAZexHOrfoQzuXyCefhXMK5VR9jf8K5ZGFyWM+JAH/6gzut6J7n+Xfddde7Id9AHNXoXPoaJTEQfKYsG4AuC+RRZUnd3T0A/pe//OUrfN+vsbCvVrT7tTzyChMUulmxGPgIggnnBvmyuSm5sCScu+VDONcPdPKCydiLcG7Vh3Aul084D+cSzq36GPsTziUL5cPWrukzPzCLmjNnztW5XE405ly1K7sI1K2oXMusyfThj/ssdEdjwYIFznRvD/LA7lflW8/drFgMfATBhHODfNnclFxYEs7d8iGc6wc6ecFk7EU4t+pDOJfLJ5yHcwnnVn2M/QnnkoVqYQf35bH+NXeWXBs1atS0L33pS7MR02s74QFEQ3mqxqCXlsmOQw+dpL/6q7/qbGpqmm95P7W1b0OAnm65WDcrFgMfQTDh3CBfNjclF5aEc7d8COf6gU5eMBl7Ec6t+hDO5fIJ5+FcwrlVH2N/wrlkoV7Y2jVuLbl2/fXXFyaLi5soLg7WUfI6SsbAbgroorsJSQci1bUdgHf77bdfbbiPViW7tJqbFYuBjyCYcG6QL5ubkgtLwrlbPoRz/UAnL5iMvQjnVn0I53L5hPNwLuHcqo+xP+FcslA7DFvW92PvLneWXJs8efI7Ozs7qxEP5IAcmMd1gTdSOZZZi4L14tcyreg+AK+xsTE7bdo0Z9Y+794f4Mie5J+kmxWLgY8gmHBukC+bm5ILS8K5Wz6Ec/1AJy+YjL0I51Z9COdy+YTzcC7h3KqPsT/hXLJQO+xUsEut6NlstuGBBx64GIKGYUS3rgPJIG61m3vW4rZMureL1j4/t7q6us3iPhrp7TcI51r5UZsknCfnpuTCknDulo9u3eB5QK4GqKn3UFMPVI/yUFPvoXrUQIWczwP5fICg/+TrfiA4+dx7PED3QaD7YIDjR4JBv13CuWR+WbwI5zZ9sjmgodlDfZOH2gYPmSzgZwDf9waeM4DvDzzDA04cA44dDnDsSIDuw8CxIwOvA4kGJcJ5cjDhXC6YcC4XSDjXzE3QGy/245KrB+pPF7RkyZJrAKzGafYs1Miyc6YBg7k3KCoPip61ZALoSX3vk+A8qZ+/v2zZMqcmh0taWs3NisXARxBMODfIl80lnEttk3AuF1haXNfkYUyHh+YOD/VjBoC8ZpQHz0Kfqnz/AKh3Hwxw9ECAoweAw3sDHNiZR3/CiiuEc9tehHNd1Y320NLhoaF54FF/8lFTZ95IEgTAie4BYD9yIMDb2/LYsyWP/btO39winCcHE87lggnncoGEc81cCfWcCLDu5T7MXmCzXVhfY8eOXXrLLbe0/fd///cOhLk0DzG3FnOt6FQYQXnphkxz40C8uJtApuh9pug5G/V8ySWXNP/yl798zPf9KoN9tKb9mwOsWy2eidDNisXARxBMODfIl80lnEttk3AuGegDja0DMD4A5T6q6+T9bSnIAwd2Bdi3LY992wLs255H74mizwnnlr0I5ypqbPHQOskfeEz0UNdotbeilPp6gLe357F7ywCw792eR59iz1DCuYE/4Xxw/jCrGwjnsoXaYUJNmJrBe+9wZsVsPP/88w8sWrToPwD0nXz0n3wUvy488kXPhUeA0y3vhfeIeVaSLUCPgvTSvvylYF78yJa8zj711FPvu+iiiz5vsH9Wte4X/di/SfAn7GTFYuAjCCacG+TL5hLOpbZJOI8PrGnw0NHloWWSj+bxHjKOdCsr1eG3A+zdlsfujQH2bM4jn9DCLhLhPHmrhPOwaus9TJjhY1ynj7GT7LSM21Y+D+zfmceuzXlsfKUfB3bHHxzh3MCfcD44f5jVDYRz2ULtMHF+MDCM7iOfrUNjsxt1bXd396ampqb39vb2FgC9AOZRgF4K58WQHvVAxLOSdM9SVOs5EO6uHgXoUXAeAvPC6wMHDvzn6NGjz9TcP6vqOw788f/2RY4Zc7NiMfARBBPODfJlcwnnUtsknEcHZnJA+3QfE2b7aJnkxj9AFfX1ArvW57HzzTx2b5BvOSScJ2+VcD6gukYPk7p8TOzyMXZCOebILa/27w6w4aV+bHy5H8e7wwdLODfwJ5wPzh9mdQPhXLZQO0ycX7SBpe/IYenlTnSMBgB87Wtfu+2Tn/zkWgyGc1EreqElPUA8pCPiWUk2AF3UxV27e/vdd9894+///u8f0tw369r5Sh6bnxlM525WLAY+gmDCuUG+bC7hXGqbhPOwPABjJnmYMNtH+3QfGTeGdxkr3wfs3pTHjnV57Fof7gpfLMJ58lZHOpyPGu1h0iwfk7oyGDM+fTeuohTkgR3r81j/cj+2vtGPftHoO8fq0DTV/4RzLeuy+Bj7E84lC7XDxPklG2hs9nDb5yowxk6gjRs3fn/q1KlfxOkWdFFX9zyiW9IDDIZ0RLxWVrkA3ah7+6uvvvqpWbNmfVhz36zr5e/3o3tfyd1qJysWAx9BMOHcIF82l3AutU3C+WnVj/EwYZaPjlkDM60PZ+X7gZ1v5bHllTz2bMqfnkRLdgOEc+0dSMt5KvXJ5IDJszI4Y346W8pV1HM8wObX8lj/Uj/2bC1qSHCsDk1T/U8417Iui4+xP+FcslA7TJwv2MANd9Rg0hkZw63bUX9//5G5c+cuf/31148iuRU9bhx6EPFAxLO0dK7sZNc1L+3aLureXtx6nm1paanavn37T6uqqsZq7Jt1de8N8PIPwren3axYDHwEwYRzg3zZXMK51DYJ5wNq7vAwY0kmlV3Ybej4kQBbXslj0yt5dB+UOLGEc+0dSMt5KvYZM97DGfMymDw7g1y1mX8adWB3gJd+04fNrw1uUiecy22UcK5lXRYfY3/CuWShdpg4P2YDsxdk8c4b3amgf/azn31h+fLlP0V063lUK7rMWHREvFZSJZdZi2px9+6///4lrsA5AOwpWfvczYrFwEcQTDg3yJfNJZxLbZNwTjAvqKZ+4DzMWJLB21vy2PxyHjveFCzfRjjX3oG0nKcgAHLVwJQzMzhjXgZNbSP776OpzcNF1+ewf3cWL/26D1teHwB1wrncRgnnWtZl8TH2J5xLFmqHifMTNvDmK3247EQVqqrdqK/POeecawA8iuj10EVLrxUrbt1z7TXRdfoYyHZvj5soLqrbuw8g89WvfvUjTU1NszT2y7qCPLD+1/2nZhZ2s2Ix8BEEE84N8mVzCedS2xzpcN7c4WHe5VnMPC+DutFu/DNzRXWjPYyf4WPK/AxyNcDR/QPLVAEgnBvsQFrOU8MYD2ddnMXSq3KYMMNHzSj+fRRUO8pD55wMJnVlcOwocGiv/pdCOJfwIZxb9TH2J5xLFmqHifMlNpDvB5pafLR1uDH8qK6urmPDhg0/fOGFF47g9CkITj5E48vLLtX/aLZnbx/UvX3Hjh0/y+VyTVpHY1n7NgZ48/GTd6CdrFgMfATBhHODfNlcwrnUNkcynLPFXF1BAOx4M48Nf+zH3q3hs+rkBZOx18iE8/Fn+JixKIP2qW5c3KVB+3fl8eJv+k+1qMuKcC7hQzi36mPsTziXLNQOE+crbKBjSgY3ftSdNdGfeeaZe88777zvQK2be/Fs7lEwXwr0SqfYxpy/UVeQMt3b/ZJn7ytf+cpCV+AcAN5eN9DTwc2KxcBHEEw4N8iXzSWcS21zpMI5wVxfngd0zPDRMcPHoT0B1v+xH9tey6NPc231ggjnkvllPE/Z3EA39hmLMmgYw78NVTWP83HJDT7278rgxV/3Y8sbyaBOOJfwIZxb9TH2J5xLFmqHifMVz9O2Tf048HYeTWPduNHa1dV1GYBViO7SHlUGxHdpF30uLdUu7qLu7YUzrNu9PQPA/5d/+ZcPNTc3z9U6EsvqPQZsWpOPXPtcRYTzZCfCuYE34Vwu33E4Z1d2u6oe5aF92kD396pq4Ehx93cFEc4l88t0nuoaPcw5L4ul1+QwcaaP6lr+bZiott7DlDkZTJzp49jRQNj1nXAu4UM4t+pj7E84lyzUDhPna56nqhoPk6e5MZt7bW1t+x//+Mf/ef3117tPFgVFD9Nu7qW9zpWSVGOtz95eV1eX279/ZSv46QAAIABJREFU/0+rqqpaVQ6gXNrxUh6bnzWjc8J5shPh3MCbcC6X7zCcj27z0HUBW8zLrSAAdqzLY/0f+7F3m/2Ls8h8lVjCeUitE33MOCeDCTN8ePzTKJv27cxj7a/6sH396WsdwrmED+Hcqo+xP+FcslA7TJxvcJ4aRnu4/a46/QW/LevJJ5/8h0svvfR/Ed29vfAsWg/d+proOl3cyzJ7+5e//OUzXYFzYPDs7aoinCc7Ec4NvAnncvmOwnkmB8w8L4PO+QSQoZDnAR0zfXTM9HFw90D3962v509NAFoqwrlkvsXz5GcG1i6fcU4GzeP4RzEUGtPuY9n7q7DxT/34/eo+HDuqXzGnqf4nnGtZl8XH2J9wLlmoHSbONzxPhw8G2PRmPzpnuNGKPnfu3GUAfoDoWdt9nAbtqK7uxbO1A4MPWXk2d5WzUtbZ2++7775bWlpa5insT9l0dE+A7Wv1W88J58lOhHMDb8K5XL6jcN46xcM512XR2kk4r4RqRnkYP93H1HkZVNUARw8AvSdOf044l8y3dJ5q6z10Lc5i6dVZdM7NoLaefxRDraZWH9PmZ3C8G9i/q+iLJZyHcwnnVn2M/QnnkoXaYeJ8S+cpnwdmnGljOjRz1dbWjn/88ce/u3nz5sIVQVD0iOvmHlVmLNn/hDKzt2t3b8/lctlDhw79oKamZoLR0VjSxqfz2PWqHqATzpOdCOcG3oRzuXwH4byqDph9cQbjZ7oxKQp1Wrs35rHhhTx2rjebd4RwLu/fPsXHtAUZdEzz4fFPwhnt3JjHM4/24vA+SaBR2TjhXDuYcC4XSDjXzFXxtniesjngzr+pQ3WNGzdmV69e/bdXXnnlTzHQpV3UzX1IZnM3uW0RtVC71uzt99xzT5crcJ7vB/auJ5zHbpJwnpxLOJfa5kiB8wlzfMy6KINctXwONXRqm+KjbYqP40cCbHwpj00v5XHssNqvk3CerKpaD1POGmitrW9244KMCqt9io9r7qjGC0/14U/P9sXesEpT/U8417Iui4+xP+FcslA7TJxv+Tz19QKvv9CPeUvcaEWfN2/eMgCPQMyvsrO5F0trNnedFvS47u1xs7RHtp4DyLz88st/MXfu3D9T3flyaO/6AG/+Um2tUIBwLuNEODfwJpzL5TsG53VNHuYuy6BlImEkTQoCYNf6PDa+mMeuDfnEv2nCebzGTvAxbYGPiV0Z+G4MN6QktG9XHs/8tA97dwym9DTV/4RzLeuy+Bj7E84lC7XDxPnlOE8B0D7Jx80fr9XZJevK5/MnFixYcMWLL754GKdbzaNa0Etb0UUTxRUqz0DwLJQpoJeOO1fu3g4gc/To0e/V1dVNldyXsur1n/XjwJYytZwQznXTCecm+SpxhHMrPp4PTF3oY/oSAknadezQ6Vb14xGTaBHOo5WtAjrnZjDt7AxGt/IGVVoVBMCrz/XhhSf70Nd7skxpA1JFavskXUg417Qui4+xP+FcslA7TJxfJjgHAHjArZ+pxZhWN8Y6/fjHP/78tdde+3PEz+Yumsm9GNRLH4h4FkqmT0HU+m1ezHul2ds///nPn+EKnPf3AAcll+ApiHCe7EQ4N/AmnMvlOwTnTe0e5r4jg4YWQslwUG2jh9kXZDDr/Ax2vDnQqr5n00CrOuF8sJraPExbkMHk2RlkqwyNqYrL84A5S7KYPCuDZx/pxTaVIYCEc+1gwrlcIOFcM1fFu5xwfvL1n/7QhwuXu/EPY9GiRZcB+AXEs7lHdXNHSVlQ9IyIssRu76qd/qOuOEt3rnQno8D8VMxNN910meI+lE37NwdKEwQRzpOdCOcG3oRzuXxH4NzzgZnnZzB1oRt3gSm78jygY4aPjhk+jh4MsPHFPLa+lkf3oeRf1XCH81w1MGFGBmec7aOlg7//4aj60R7ecXMV3nqxH88+1nuqNV0owrl2MOFcLpBwrpmr4l1uOD+pdS+7A+jjxo27sLOzs3rTpk39GAzkwGA4L4by0veiZdcSJdPEE9W9XXf29uKu7VkAmUOHDv1XQ0PDLNUdL4feWN2P/Zsk/7hlN0o4100nnJvkq8QRzo19qkd5OPtdGTR3sNV8pGn/zgDb3shj+7o8jh6I+LsZpnBeVQN0TM9gYpePcVN8DuUYQTqwJ8Cv/qcHh/bKX+AQzuWCCedygYRzzVwV7yGC8+Bk4Yc/XYex7W7c4H3ooYf+6qabbnoSyV3ci7u5F8/mbtzNXbYFPaqVPO59Ytd2APjYxz7W4Qqc5/vku7cTzpOdCOcG3oRzuXxH4Lxloof578qiyo05TqghVnO7h+b2DM68OIODe07C+ht5HN4XDDs4r6r1MGGGj4ldPto6ffhuXEtRQ6ymVg9X3VaNNT/pxaZXSybVJZxrBxPO5QIJ55q5Kt5DDOfAQCv62HY3WtGXLl26DMCvMbgFPaqLe9Rs7lFd2JVmc08C9DgwLy4TNffHwvrKlSuXye5ouXVgS4B8X3Ic4TzZiXBu4E04l8t3AM49D5h6jo8ZSzPw2HBOARjd6mF0awZzLsjg0N4AuzfmsWdzgLe35dF7XJTlLpx7PjCm3UfrZA9tnT7aJnHNcmpAuSrgkutzePU5H394vBf5QntRiQjncsGEc7lAwrlmrop3BeAcGAD08y53A9A7OjouHjNmTHbfvn2Fbu4FMAfEcB41Br2g4oOVGoduY+G5uEHysa3oM2fOdAbQ921MHnxOOE92IpwbeBPO5fIdgPNcDTDvyixap5DMqWg1tnhobMlg+qKB9wd3B9izJY+3twR4e2sePccB1+Dc84HmcQNA3jrJx9gJPid6o2I1+9wMxnZ4ePJ/etF9OPzrI5zLBRPO5QIJ55q5Kt4VgnMAeHtXHvvfzqN5bOXvAmez2dH//M//vHDlypXPnCxKakGPG5OOiPfJ+xDzmVfyXPpZHJjHxXsAvJtvvrm1qanpLJWdLZeCPHBgc/x5I5wnOxHODbwJ53L5DsD56DYPZ787g9pGwjklr9FtHka3FQH7ngD7tudxaG+AI/sCHN4XDABO1G+vDBdnuSqgocVDQ4uPhjEemto8AjmlpdaJPq6+owq//n4vdmwYaOwgnMsFE87lAgnnmrkq3hWE80Lsm6/0YfElbvwTuvjii5cBeBbJUF6Wbu6qY9CjAFy2xTy0ZvonPvGJSyO2VREd3BqgP2ZGUsJ5shPh3MCbcC6X7wCcTzrTx+xLuLY5Za5Cd/hi9fcCh/cPwPrhfQPj2I8dAvp6AvSeOPncg8jVRop/ttkckK3ykKseWI+8qsZDw5iBR2OLh4YWDzWjnPj3Sw0T1dR5uPwDVVj7ZB9e/I3EeMEYEc4lN+kguBn5E84lC7XDxPmVhvOTWveSO4A+YcKES+vq6r7S3d2tAueibu7KX5FJF3eplnIIdn7WrFkOdW8XnzfCebIT4dzAm3Aul19hOM/kgLmXZdAxq/Jdr6jhq0xuYB3xprbCPe1o9fcBfScGYD1XDfT1DHRPz1V7yFaBcyJQFZHnAQsuzaJ1oo9f/6AXPcfV/xsQziU36SC4GfkTziULtcPE+Y7AOQDs3JbH4YMBGkZX/p9YVVXV2H/6p3+a9/GPf/x5yHVvj2rALm5NR8n7oCQmJNWrTZk7CKK4Uy3oy5cvb2publ6k6F0WBQGwf1P0+HPCebIT4dzAm3Aul19hOB/V7OG8G7OEc8oZZbIDS/vVN3uorvMwqslDXeNAiznhnKq0Jk73cc3tVWgZr1ZnEs4lN+kguBn5E84lC7XDxPkOwXkhd93LZj1wbOryyy+/DIMbmkuXGhe1ogODoV1UNkii2jNqw3EmSeAeetx1112XeJ4bc8Ee3hGg78TgcsJ5shPh3MCbcC6XX2E4HzPRw3k3ZVHfQuqhKIqSVX2Th3fdWoXOWXLjgQjnkpt0ENyM/AnnkoXaYeJ81+D8pN50CNAnT568LJfLFWZxL4A5IN9QrS1dSI4Cd2lAnz179kWavta1b4MBqBDOddMJ5yb5KnGEc22f8TN9LH5PlpNmURRFaSiTBS65IYdZ58RDOuFccpMOgpuRP+FcslA7TJzvKJwDwLZN/eg+YnqEdlRTUzP+H/7hH7pOvo3rzo6SmNL3IogXSgbQRRuLasJPavL3W1pasmPHjj1HwndItK+kezvhPNmJcG7gTTiXy68wnE9Z4GP+8gzXfKYoijKQ5wFLluewcFn0lEeEc8lNOghuRv6Ec8lC7TBxvsNwDgBBHnjzT+60or/rXe+6GCUTnSOad2W6tyPis8g4lcvPUtiOKi+NH3Qg99xzz9xMJlOv4Fs2Hd4VoLf79HvCebIT4dzAm3Aul19BOPc8YNZFGcy6iNO0UxRF2dJZ52dx4bW50E1PwrnkJh0ENyN/wrlkoXaYON9xOC9o3UvuAPqkSZOWIBq+k8aiI+K1tKIAvazjzy+66KKlOjtaDhV3byecJzsRzg28Cedy+RWEcz8DzF+ewZQFbDanKIqyrWnzMrj8pipkqwjn0pt0ENyM/AnnkoXaYeL8lMB5AGDz+n6cOGZ6xHY0evToMxcvXjwKgxueATGci8pKJWxtT7oSTZp9TrQzwub/yZMnL0nwHDIVZm8nnCc7Ec4NvAnncvkVhPNcNXDOdVm0zyCcUxRFlUsd03ws/1AVakeVXF4SzgfnOwhuRv6Ec8lC7TBxforgHADy/cBbr/YbbcuWPM/L3HXXXedAsUG6eBMlr6Va1GWvRmXuDkQZh4B98eLFo0aPHn2mpGdZdfTtACcOE85lnAjnBt6Ec7n8CsJ5Tb2HJe/NYsxErV5IFEVRlIJaxvt498oqNI45WecSzgfnOwhuRv6Ec8lC7TBxfsrgvKA3HJrN/eyzzy7t5p40Fh0Rr5WUtMxa1EajADzqUbzjAODddddd53ie58Tgzn0bFX5KhHPddMK5Sb5KHOFcy6e+xcPSGzNcRo2iKGoI1dDs4d0rqzBWsFY64VzLuiw+xv6Ec8lC7TBxfkrhHAA2vdGH3h7TM2BH48ePLwD6ILaNeCDic5SUl74epNKaUXXcuWjnomDdP3kHwglFLa8WKcK5bjrh3CRfJY5wruXT3DHQcl5TTzinKIoaatXUeVj+4SpMnB6+FCWca1mXxcfYn3AuWagdJs5PMZwjAPp6gfWvudHNva6urnPlypXjTr6NGoteLNFcbqLW9MhyG+ugFxvHdYUv3IGouI4dCHDsoMQPinCum044N8lXiSOca/mMm+Zj8YosctXy+0BRFEXZVTYHLLupCtPnD3SuJJxrWZfFx9ifcC5ZqB0mzk85nBe0zqFu7rfeeutSqC2xFte9PbFlqBjQkzYUC98J8d6tt97aXldX15m0Q0OhfRsJ53FOhHMDb8K5XH4l4Xy6j7PflYHvxGAbiqKokS3fBy64JofpZ+tXyoRzuz7G/oRzyULtMHH+MIFzANjwWj/6HWH0mTNnipZbSwJ1RLyOKwMgN4t7XFN83A6G7jLceuutTrSeA8CBrQk/KsK5bjrh3CRfJY5wruVTgHOPk7VTFEU5I88DLrg6hxkakE44t+tj7E84lyzUDhPnDyM4B4CeEwE2rXOD0FtbW8+tq6vLQG5oNwRlQAyUF0vlMjVq49I719XV5QSg9/cCR3bH/LAI57rphHOTfJU4wrmWT3sBzjnknKIoyjl5HnDhNWqQTji362PsTziXLNQOE+cPMzgvaOMbboxDz+VyTX/7t387E4KGaMGjWKIu8CgpB6A+i3tUs33cxHAeAK+uri7T2tp6rsBrSHVoR4AgL/iQcK6bTjg3yVeJI5xr+bTP8DGfcE5RFOW8ZCGdcG7Xx9ifcC5ZqB0mzh+mcA4Am9a5AegAcMUVVxR3cweS4Txu+DjiPpPp4l68AzLlgx533333jFwu15TgNSQ6uE2NwgnnycGEc4N8lTjCuZZP+wwf85cTzimKotKiJEgnnNv1MfYnnEsWaoeJ84cxnAPAvrfzOHzA9CzZUWdnZ/Fya1Et6AWpjEOPlOkya3F3EE6VX3nllU50bwcEgE44100nnJvkq8QRzrV8xs8knFMURaVRF16Tw8wFgyGdcG7Xx9ifcC5ZqB0mzh/mcF6I2+jIOPTm5uazu7q6ak6+TQLz0hglUC8Ausosc7Jd3E89pkyZ4gSg9xwdWGItJMK5bjrh3CRfJY5wruUzfqaPee8knFMURaVVF1wdhnTCuV0fY3/CuWShdpg4fyTA+clQV7q5+76fu/vuuxdAgYFLNiFqWUdpueokcUkt58VlPgYmh6tpbm5eoOBTNh3cVjL4nHCum044N8lXiSOca/kQzimKooaHCpBOOLfrY+xPOJcs1A4T548gOAeAzW+6AegAsHjx4tLl1uImjEPEc7GEV6k+khOj7gCUxgt36u67717g+35OtANDqVD3dsK5bjrh3CRfJY5wruVDOKcoihpeGoD0rHZ+xf9POghuRv6Ec8lC7TBx/giDcwDoPhpg93bRDN9DqwkTJpyLwVAOiLk46rNSDSqLm8U9ruk97nXo/ck7DU7oFKATznXTCecm+SpxhHMtH8I5RVHU8JRoTHqSKv5/0kFwM/InnEsWaoeJ80cgnBfkyjj0+vr6mStWrGg5+VbUi7xYcb3NhZLp4i4afy71OHmnoeI6ujdA73EQzvXTCecm+SpxhHMtn9YpHuZdSTinKIoarrrg6ipMnaOwTrrKxgnn2oGEc81cFe8RDOeAO+PQAeDOO+88F3LroMc1eCPi81OcLTuLu+r4cw+At2LFipb6+vqZSQc6FDq4LSCc66cTzk3yVeII51o+YyZ4WHBVdnCNRlEURQ0beR5wyYoqTJiWXNlX/P+kg+Bm5E84lyzUDhPnj3A4B4BtG/rR50YjOubOnaszDj2x1bxYUbO4F7+PG3+eNAbd++hHP+pE6zkAHNxqUoWkp6KvNMwRzg3iCOdaPo1tHhZek4Wv3vORoiiKSpn8DPCOG6vRNlEM6RX/P+kguBn5E84lC7XDxPmEcwBAXx+wdb0brehtbW3n5nI5ma7rMvO4RSqqdovbUFIreqh8zpw5Tow/z/cDh3fqg05aKvpKwxzh3CCOcK7lM6rZwznXZZGtkt8HiqIoKt3K5oArPlCF5rbBl7EV/z/pILgZ+RPOJQu1w8T5hPOQNjkyDr26urrts5/97JSTb1VAXdSlvfR1CNCTCL90JjpRP/tTTfytra1OLK92eGeAfMlNF8J5cjDh3CBfJY5wruVT0+Bh8XsyqKqV3weKoihqeKi6xsPyD1ahofn0pWrF/086CG5G/oRzyULtMHE+4XyQNr7hRgs6AFxzzTVLYTYOvZSriz+TniROtGFha/q11147pqamZoLE9suu0u7thPPkYMK5Qb5KHOFcy6eqFli8IoOaBs4IR1EUNVJVW+9h+YeqUdfgVf7/pIPgZuRPOJcs1A4T5xPOI4Pf3plH9xHTs2tHU6ZMWQA5II9q4C7VoLKkZdZEzfOi2FPmH/rQh84UbHvIVbz+OeE8OZhwbpCvEkc41/LJVgHnvCeLUU2Ec4qiqJGuhiYP7/xgFaprJf8nEM61Awnnmrkq3oRzYXAQuDObe3Nzc4FzoxqsEVOGiNeDyqJmcZeZMC6ur31h/PlZEcZDrt7jwNF9A98s4Tw5mHBukK8SRzjX8slkgUXXZtHYSjinKIqiBtTc6uOdH6hCNpcQSDjXDiSca+aqeBPOE4NdAfTq6uq2lStXjjv5NmmONlGZUH5MkKh5XurR3t7uRAt6YXk1wnlyMOHcIF8ljnCu5eP5wNnvzqK5g3BOURRFhdU6wccVN1WLV/QgnGsHEs41c1W8CedSwRscmSgOAK6//vqzkDxxOhDN2rGwLlpmLUrSkN7Y2JgZPXr0XIltll0Ht8r/FCsORITz5FzCudQ2hx2ce8C8KzNonUI4pyiKoqLVcYaPy66vglf6r4Jwrh1IONfMVfEmnEsFBwCOHAywd3deZUtlU1dXVwHQpXuYF70u1iBQF3VxjzMq1SBA/8xnPnNGJpOpSzqwodCBbXJfYsWBiHCenEs4l9rmcINzAJh1cQbjZ8rMaUlRFEWNZE2ZncH57y7q60441w4knGvmqngTzqWCi4s2OTKbe1tb25lQ6F1+Mi2pZR0Y6DQqDEoaiy7sX3/ppZc6Mf782IEAPUeT4yoORITz5FzCudQ2hyOcT13oo3M+4ZyiKIqS06xFWZx9UZZwbhBIONfMVfEmnEsFlxZtdGQcemNj4+xx48blID/mPKo1HVGvk656RRuM3ZGpU6c6Mf780I7kn0TFgYhwnpxLOJfa5nCE844uH10XigYUUhRFUVS0Fl2Ww4yzw/8/COdygYRzzVwVb8K5VHBU/pb1/cg70Mvd9/2qv/7rv56BeD4uSNSCHtlLPW6ZtagNxm301PuWlhYnAP3w7vjPKw5EhPPkXMK51DaHI5y3TPJw1hWEc4qiKEpPF15ThYnTB/6PEM7lAgnnmrkq3oRzqWBRfs+JALu2udGKfv7554vGoRe/jhsqXqxTn5fO4i4zmF0E6h4AXHjhhQ2jRo2amrADQ6Iju8U/jYoDEeE8OZdwLrXN4Qjnja0eFlyVDQ/CoSiKoigF+T6w7H1VaBlv9s+EcC6xScK5XD7hXCo4KX/HJgea0AF0dnaWjkNHyfu4bu5Cicagq7Sgh0zvvPPOuUmmQ6G+HuDYQZOqRhxMODfIl80lnEttczjCeW2jh0XXZZGtkt8PiqIoiopSrgp45y1VaGjSuzQlnEtsknAul084lwqWyd++2Y0W9DFjxhTmXRNBOiLeJ04UJ7PMmsxdgVPl8+bNc2KCuCO7A3OgIZxrb4BwnlxY8d+idKFCvqFPrgY457oMqp1YA4KiKIoaDqod5WH5B6tRU6cG6YRziU0SzuXyCedSwbL52za70YJeW1s78aqrrmo++TZujjYUvS8tHxQT1+cnbtY5YXlHR4cT48+jurdXHIgI58m5hHOpbQ5HOM9kgUXXZDGqueIdcCiKoqhhptEtHq68uQrZrFw84Vxik4RzuXzCuVSwyrXlwf15dB8x/Wbs6NZbb41abg0RZUkt6KEx6KUSXR0nThCXy+X85uZmJwD9cAmgVxyICOfJuYRzqW0ORzj3PGDeOzNoGk84pyiKosqjtok+LntvFbyEfzWEc4lNEs7l8gnnUsHK15aBO93c58yZU5goriDRbO4yk8Z5QPwY9LgNR8V4n/jEJyZls9nR8odUPh3Zc/qrrjgQEc6TcwnnUtscjnAOALMvyWDcNM4IR1EURZVXnV0ZXHBVTvg54Vxik4RzuXzCuVSw7rXldke6ube3txfP5J7UzV1qHHrpGPRSIEdJeexj+fLlTow/P34wQN/xgdcVByLCeXIu4Vxqm8MVzs84x8fkeYRziqIoamg0a1EWCy4e3NedcC6xScK5XD7hXCrY5NpyhyMt6E1NTXMbGxszkOvmLqXSZdYKEo05B2JMp0+f7kj39oHnigMR4Tw5l3Autc3hCucTZvuYeT7XOqcoiqKGVosuy2Hm2af//xDOJTZJOJfLJ5xLBZteg+/Ykjf/siwok8nUffrTn56K+InfipU4mVzSJHGlz7Gmra2tjgC64k+WcK69AcJ5cmHFf4vShQr5FnzGdno48x2Ec4qiKKoyuvCaKkycniGcy2yScC6XTziXCja+BgfQcyLAnl1udHO/7LLLSru5A4NBPK6neuh1KaDrkL4HwJs7d25tfX39DJWDKZcO7zL7hRHODfJlcwnnUtscrnDe2OZhwbuz8etIUBRFUVQZ5fvAO95XhbEdyf+MnIROhUDCuWauijfhXCrYBpwXtH2TG93cp06dGjWTu/ZEcX5JcGmiLLB7n/zkJ2d7nlfx5rB8H9C9X/8vkXBukC+bSziX2uZwhfO60R7OuS6LjHiOHoqiKIoaEuWqgOUfqEJDzBKfTkKnQiDhXDNXxZtwLhVsE84BdyaKGzt2bHEvctGkcHETxYVUOgZdZYK40GeLFi1yonv7kT0BApnvinCuvQHCeXIh4TxaVbXAOddlUFUrvy8URVEUVU7V1nt41werUVM3+DLYSehUCCSca+aqeBPOpYJtwzngTgv6qFGjzli8ePEo6E8UFypPGoOeNEHcKU2cONEJQC9d/zxShHPtDRDOkwsJ59HK5IBF12ZR1yQ9iSVFURRFDYlGt3h45weqkC3q3eUkdCoEEs41c1W8CedSweWAcwTAvt159Bw3/RatyPv4xz8+F2JuHhQPMchHArpMs/ygR1NT02zVIymHEgGdcK69AcJ5ciHhPFqeD5y9PIvR4wjnFEVRlJtqm+hj2Xur4PmOQqdCIOFcM1fFm3AuFVwuOAcGvgNXurnPnz/f2kRxvuCDqISoDXoAvIULF46qqakZL30EZdSROEAnnGtvgHCeXEg4F2vOpRm0TiWcUxRFUW6rsyuDC95tNkkK4Vwyn3CeGEg4Tw7e7sh66OPHjy9trBYxdFJ398gx6FFd2CPBvPD48Ic/fIbUnpdZJ44APd2CDwnn2hsgnCcXEs7Fmn6uj0lncrp2iqIoKh2afU4WCy/OauUSziXzCeeJgYRzuWBXxqE3NjaeAbm52yAoO6WoWdxLk1BSPoj658+f7wSgC7u3E861N0A4Ty4knIs1ca6P6UsrvrgDRVEURSnpnGU5zDxb7f8X4Vwyn3CeGEg4l/dxpYt7bW3txGnTplUjptd50esonSpPmiSueIPC8egdHR1OAHpk93bCufYGCOfJhYRzsVqnepi7jHBOURRFpVMXX1uFSTPk/o8RziXzCeeJgYRzNZ9j3QH2v+0EpPu33XbbFMSPORc1iAvHoJcGRiVGDnofM2bMNK3DsKxBLeiEc+0NEM6TCwnnYjV3eFjw/7P3ns+RHGe+7q+q2sG7GQzGcyzJMfRmSdGIlCNFUpQjpd3V2rvavXvvifvp/Bkbe+JE3HM3dKSVViuzWmnlKIkUKZKkbfReAAAgAElEQVQyJEUOh27IMRw/GPiB9+2q8n5oNNBdXdWVVdVAZQO/JwIBIPt9861uAIV6OrMyPx2DxtvOCSGE1Cm6Dnzi6QS6d1S/TYtyLplPOfcMpJwHqzPYq4Sg44477igdtK62MJzbLeVlq7hXm97utZI7WlpaIh9BFwKYHyv5cVHOA3dAOfdupJy709Kl4bYnYtA5eE4IIaTOicWBR/88gfbNzu84U84l8ynnnoGU8+B1BhRZKG7nzp37Uf1ec5mp7hVT3Kvdc+7Ydt9997Ukk8lun8dfc9LTAlbxZ0M5D9wB5dy7kXLuTkOrhjs+G0M8KX88hBBCiMokGzR8+itJNLeVXyZTziXzKeeegZTzcHWG+9QQ9K6uLvtCcYD7YLfTZwDlgl51NTnbY8uxX/7ylyMfPQeAhcmlLyjngTugnHs3Us7dSTQAd37WQLJJ/ngIIYSQeqC5rSDpqcbCJTDlXDKfcu4ZSDkPX2dsRIT/gdeApZXcAfkV3Es/L39t32at9EG3Ke1lbUeOHFHi/vOFSecfDOU8RL5sLuVcqs/1LOexBHDHkzE0tvOmc0IIIeuT9s0aHvmzBIxgO7AtQzkPUZ9y7l17g8k5AOSyAlMT0d+Hnkqlth0+fLhh6VvPmehuhL4Hffv27WqMoE+EFCoHKOcSuZRzqT7Xs5zrBnDrYzG0dlPOCSGErG+6d+j45JcTgddZoZyHqE859669AeW8yNhI9IIOQPvrv/7rPXDfDa0i3inGPsW92j3ojnPkOzo6lBhBX5ws/55yHiJfNpdyLtXnepZzTQNu+pSBrp2Uc0IIIRuDnfsNfPSzCY8xsEoo5yHqU869a29gOQeUEXTccsst++A9Ex2oIu3Vprg7fV9RqKWlZY/P4645wgIWp1d+hJTzEPmyuZRzqT7Xs5wDwKGPGujZX337GUIIIWS9ceAmA/d+Ki4dTzkPUZ9y7l17g8s5AIwNqyHoO3futG+1Vvxc7X70svhqV9bV9m3TAODhhx9uTSQSm/wddu1ZnBIQSz+TepLzWAJItmB5mhTlPES+nzjKeU3q7L/bwM6jlHNCCCEbk6P3xHDL/d43pFPOQ9SnnHvXDnDsyQYN7V0e13B1JOcAMKqIoHd2dpau5F6KfSTddbG4mEuCExWdPf3000pMby+u4F5Pct7UqeHQowaSzUA+A1w5bmH4tCV1DJTzEHGU85rU2XWTjv13U84JIYRsbO7+eBzpeYEP33He5olyHqI+5dy7ts9jb27V8OBjCdxwc0EBT72dx/P/lal8DepMzgFg4lrBo7SI77psaWlxW8kdcBkxX/pcfOpSU9xdV6A7dOiQGgvETYb9lV9bOQeAvffpSDYXvo4lgf336bj5SQPxlN/q/g6Acu7dSDmvzvYbdRz6aMDVcQghhJB1xgNPJLDvSOX/Rcp5iPqUc+/aPo99340G/va/Ny7LOQAcvj2GA0dilcEBS0V5DZ3PA1Pj0Y+ip1Kprbfddltx0+FAK7k7DYHJ7NcGFFZwV2QEPeQv/RrLefNmDW1bK38mLVs03PQZ932kKech4ijnNamz9XodRz9BOSeEEEKKaDrw8BcS2HPjyv9HynmI+pRz79o+j/3QbTF85i9SiCcqH7/j/nh5cMBSKlxDqzLN/S//8i+L09yLeM1SL4uxb7Pmte95WXJ7e7saI+gTwXOjWBCupcp2VI0dGm5+MoaGtvIYynmIOMp5Ter07Ndx0ycp54QQQogdXQc+/lQCuw4alPMw9Snn3rV9Hvut98bx6FNJ6C53Jm7Zrhceq3M5B9RZyf3mm2+utlBcte3NgaUp7tUCSjur6Lhkjn1kWCaQngn2Y41qtfbG9urhyRbg5icNNHVp7rUo53JxlPOa1Oneq+PmR4zI7+shhBBCVEU3gE9+KYEd+yTWaKGcSzYGDnPP30Byfs/H4nj4M9W3BNQNoL2z8ne23uQcUGcEfdu2bfaF4lwHvOHw03E7g1SbLw8AeOyxxzri8XhHsMOuHYtTItBJIsqt1Bo6vC0n3gDc9BkDrT0OsZRzuTjKeU3qbN6t4dZPG+Vv5xFCCCGkAiMGPPKnSWy7rso/Tcq5ZGPgMPf8jSLnGvDRxxO49xMOc9od6NwsMXM33CGtyTW0KiPotpXcq94y7vS5uEicq8G7dKR97nOfU+T+c/85Ue9z3tguNwwZSwBHHjPQuqUknnIuF0c5r0mdrp0abn08RjknhBBCJInFgU//eRI9uxz+eVLOJRsDh7nnbxQ5B/DQ4wncfl/cM7ZIZ/fK72q9yjmwtJK7Ao7e0tJS9GTPW8YdPkN2iru9Ixw6dEgNQZ/w9+ONWs6NOJBwWQTOCSMGHHnUQFOnRjmXjaOc16RO53YNtz0Rg87bzgkhhBBfxBLAp7+SRPf2kkttyrlkY+Aw9/wNJOf3fDyO2z4iL+cA0LlZ91VK1WtoMw9MjEVv6Mlksvu+++5rsTVLTW8HKqe4u93EXvF1T09P5PefA/5WcI9azgEg0ej/Jt5YEjj6mFGxcJyP8tJQzuX6XO9y3r5Vw+2ficGIeccSQgghpJJEEnjsLxLYtFWnnEs3Bg5zz99Acn7bR+K49+Ny09pLaWrR6l7Oi4wpch/6l7/85WrT3Kt97TmC7ibqWnt7+55wh10bZKe4qyDnAAJPu0g0Akcf1123YKtSXhrKuVyf613O27ZouOPJGAx/b74SQgghxEayQcPjf5kom0JchHIeMNdP7Q0k54dvj+Ghx/3LOQBYq/HziOgaWpX70I8ePWpfyV3mlnINS6u4u92oXrWThoaGrYGOtoZYeSA96/2jVkXOC8cS/Fcz1aLh6OMG4inp8tJQzuX6XO9y3rpZwx2fjSEW7PxOCCGEEBupRg1P/HUC7ZtWLqkp5wFz/dTeQHK+/7CBT30hWXW19qp9SDhtvVxDq7KS+9atW/eg+rZqnqu4Sy8OB0BrbW3Vk8lkd+AjrhELU8Lzp62SnPs7HmcaOzQcecyAYRMoyrl3Y72cWHzl17BOe4+GOz8XQzwpf0yEEEII8aahWcNn/jaJzi065Txorp/aG0jOd+038PifpkIt6Gt5DKHX0zW0KlPcW1tb7YPZXqu4Oy4SB1uA61T3z3/+85s1TYt86aiFieqPqybnQPAp7qW0bNZw5BEDeqx6LRko53J9rnc579q5JOcuszMIIYQQEo7GZg1P/m0CW3baL78p5wHC3PM3kJz37NTx2b9Mhl4zyKriJ/V2DT0xZsEyQxatAY2NjT3wt4p7Ec3pHnQ7FUl33333toDHWlOqLRCnopz779ydtm0aDn3CcN/JXgLKuVyf613Ot+zTCwvC8Z5zQgghZFVJNmh44q+S2LGveAFHOQ8Q5p6/geS8a4uOL/xNCvFEwHntpf251K7Ha2jLBCZGox9FT6VSxRF0r8XXKz577YPuOOy+d+/enloceFgWp10mCakq56jNCHqRzt0abnjICHS/CeVcrs/1LufbD+m45dMGt1IjhBBC1oh4AnjsK0nsPSQ3ykI5l8zfQHLe1qnhi/9HCqkAu0M54TSCXs/X0CosFBePx9sPHz7cYGt2m95ehtsIuubwsdze3d0d+QJxAJCZrWxTWc4BIJ8tLG5XK7oPaDhwn79hdMq5XJ/rXc6vu0XH0Y8b0GpzbieEEEKIJLoBfPLpJG64tfrcZMq5ZP4GkvOmFg1P/V0DmltrdwE3N1N+EPV+DT1+LXpBB4Ann3yyOKjta6s1p0Xi3Ibclx9vb29XYgQ9M2f7ZVJczosszoT9tS1n22Ede+6u/buwjvnSjT7y/cRRzmtS58CfGLjhAQ6bE0IIIVGh6cBDn03g5nudJZ1yLpm/geQ81ajhi3+XQltnbUdXpsdXhHY9XENPV7kNei05fPhw8T50wMdWa3arqybny502NzdHPoJu5oB8ZuX7epFzASA946egHLtu1bHr1uqSTjmX61OFE8tq1dE04NCDBvbdFWLxAkIIIYTUBg2495EE7vpY+UIwlHPJ/A0k54mkhs//TQqbttT+Gm5qQvg9JKWvoacn1RhB37FjxzZU32rN3gZg5R50p2DXVdyXVqWLlNLR83qSc0Bu7/Yg7Llbx67bnP9oKedyfapyYlmNOpoOHP2kgV03U84JIYQQlbj9wTjufywBaJRz6dobSM6TqcLI+daKHQBqw/SEz2ep+DX0jCIj6Js2bbI7s9Rq7vY5NZ5GH4/H9WQyGb2gL91/Xm9yDqzOCHqRPXfp0HXgylslU1Uo51J9qnRiqXUdIwbc8mgMm/fwhnNCCCFERY7cHUM8Cfz2p9mq214VoZzXuJaicp5qKMj5lu2rI+fCAqanfIw418E19Iyf57OKtLa2em21Bqc2t33QnYI1APjoRz/aYhiGfUW6NSczJ+pSzoHa34NuZ/cdOvYsTWGmnMv1qdqJpZZ14kng9icp54QQQojqXH9LDI/8aRIxj61PKec1rqWonDc0anjqq6sn5wAwMy3k9w2vk2vofF5gfpVmLPuhqanJbVDbcae0YpvTInHV0D72sY8psQd62mEFd2fUknMAmLu2+r8wu27TsfdPwv0xU84Dd6mMnDd1aLjnSzF0bqecE0IIIfXAdTcY+PxXU2huc/7fTTmvcS1V5bxJw9N/n0L3ttW9NXG4T9LO6+YautCqwn3ojY2NbnuhAw5iXvzC6R50e1BZZwcPHox8ejtQuYK7M+rJOQSQXVz9UXQA2HmLjv0fCfZHTTkP3KUycr55T0HOG9sp54QQQkg9sWmrjqf+MYWtu8uv4yjnNa6lqJw3tWj40j+ksKln9dcNGugNdj+FmtfQK60zU9GPoCcSie7W1lb7tkmee6H7XsV969atka/gDjjvgV6OmnJeZGbYz8EEZ8dNOg4+oMvPkQDlPESXysj53jt03P5EDLGE/PEQQgghRB0amjQ8+TcpHLqjsGQU5bzGtRSV8+bWwsh5V/faLOo7cMVjBL1urqHLW1UYQdc0Tf/iF7+4ufgtJNZ7AwLsg97V1aXECHq66gi62nIOADPDa/euzrbDOq5/UE7SKeeBu1RCzo0YcPMjBg7eyz3OCSGEkHpHN4CPPpnAA08koIfwNcq5d6AKct7SVhg579y8NnKeywHXBquIbN1cQ1e2zkxEP4IOAHfddVdxq7Ui1fZC1wBosSoP2j9rALSWlpbIBV1YQG7B9VGJlmqdSzX5SXdsnF5DQQeArTfq0HQNZ39rup7oKOeBu1RCzlMtGm573EDrZk5pJ4QQQtYTR+6KobNbx3P/kUF6wd+VDOXcO1AFOW/t0PD0VxvQ1rl213HDfab7jgF1cw3tfKAqjKADwHXXXVfqzlI/3NK3Z9yWgC9DiT3Q591WcK8POQeAhUmBfMZH5zWg53oNN3zMWFkasATKeeAulZDzzu0a7v1yjHJOCCGErFO2Xafj6X9MocvHfcmUc+9AFeS8rVPDl/5+beUcAAauuEhs3VxDux+oKlutbdmypXSrtSJV90GXWcW9TNwbGhoivwfd+f7z+pHz4mMzI2s/9WLLAQ03frxc0inngbtUQs53HtVx5+diSES++SEhhBBCVpOWdg1f+GoK+w5738pGOfcOVEHO27t0fOkfGtDasfaDLP1O95/XzTV09QOdVmSKe3t7u92dfe2D7jk3/vrrr0/F4/GOkMcZmsycvaXO5HyJtbwPvZTufRoOf9KArlPOQ3QZuZzrBnD4IQOHH3KeFUEIIYSQ9Uc8ATzypSTuejjuOsRGOfcOVEHOOzfr+NI/pNDisqXeqiKAwatWRZtDWNgyoToNIucAkE4LZDPRS3pzc3PpCLrXguwAKi/rHTdLL7Y9+eSTW2p2tCEo32KtPuUciE7QAWDTHg2HHzGg29+ApZzL5Ucs56lmDXd8NoadR2nmhBBCyIZDA+58KI5H/zSJZEP5pTvl3DtQBTnv6i7IeXNrNLcnjl2zkFksOei6uYaWO1AhgOnJ6AW9yu3hjluaA5XbrNmTyqz+6NGj24IfXu1IL09xr185B4DpawIiwtsjunZrOPqIAT221EA5l8uPWM63Xq/jI38eQ+d23m9OCCGEbGT23mjgT/9bCrv2F0ZcKOfegSrI+aaegpw3Nkd3LVd2/3ndXENLyvnS5xkFFopLpVI98Xi8dAS92hZry1Pcq63iXvb1rl27Il8gDiiOoNe3nAsAVh6YGoz2nZ3OXRpuetSA4WNXLsp5iPwQdRINwK2fNnDzpwzEk/LHQQghhJD1S1Orhif+KokHn0ggngjeD+U8YG2fx969TcfTf59CQ1O0Ay2XPsyvHJQNNa+h/ck5oMYIuq7rDR/72MfabM2h90Evfq2psgd6Zrb+5bzI+JXof3E6dmi4+QkDMQnpo5yHyA9Rp3uvjvu+EseW/ZzSTgghhJBKjtwVw5f/WwO27vZ/rUA5D1jb57Fv263jqa+m0NAYrZzn80DvebOOrqH9yzmgzlZrDz30UNGhnW4nr2gvHUF3u/98maampq7aHGY4MvPlL3+9yjkAjPdGL+gA0LZVw62fNZBodI+hnIfID1gnlgCOfsLAbY8bXKWdEEIIIVVp69Tw+b9L4d5PxWHEvOMBynng2j6Pfc/1Bp76uwakGqK/RfHqBRO5bGW7mtfQweQcAGYUGEEHgIMHD26Fw+C3S7jr2s+OCalUqjXEsdWE3GJhaniRepZzAEjPCswrsg1Ac5eG279goMFhJUnKeYj8gHW6dmi4789j2H4jR80JIYQQIoemAbfdH8fT/5jCpq3VryEo5wFr+zz2Q7fF8Nm/SiEWD3UoNePimcrt1dS8hg4u54A6I+hdXV2dJd9Wnd4OyE1xX76hPZlM2ufPrzmlK7jXu5wXUWUUHQBSLRpu/7yBls0rvxKU8xD5AeoYMeDGBw3c+fkYUi3Rv8tKCCGEkPqja4uOp//PFO78aNxxSI5yHrC2z2O//b44Hn0qCV2h8ZaLZ/Jl36t5DR1OzgF1BL25ubkN1ae3l31t3we9qg3E4/HIR9CzS9Pb14ucA2oJOgDEG4BbP2ugY7tGOQ+TH6BOe4+Gj/xZDLtvVugsTgghhJC6RDeAuz8exxf/PoWOTSvXFpTzgLV9Hvv9jybw0ccTHoa1tlwbsjA7FXDA0wFV5RwA5mYErMrJAmtOU1OT0yJxrlPevaa4ly0Hr4Kg5zLrS84BYHZEIJeW73MtMOLATU8Y6N7nfUahnIevY8SBg/cauPupGBrbFTqLE0IIIaTu2bJDx5f+7xRu+UgMmtPOPZRz79p+utSBT34hibseVGROewkXT68Yq5rX0LWRc6Dw+zY/F/ZZhqfKbeKOI+pO26y52kE8Ho98insu4yO4DuQcKPzyTFyN/pfHjq4DRz5lYPth99Fcynm4OpoO7Dyq48G/imPvHTo0ujkhhBBCVoFYHLjv0QS+8v80YP+REkunnHvX9tGlEQM+85UUjt4puUrfGlOc3q7mNXTt5LzI4kL0jpVMJltRuQ+661V/rEpA2VD7vn37krqup2p0nIHJp4OfRVSU8yLjVyxsOehjM/I15PoHdTS0AhePWRAlt3JQzsPV2bJPx8F7dTR10MoJIYQQsja0dWl49MtJDPdbeO25LAaveN+nSzmXo6lVwxN/nsS23Wpe08/PCQz1WYpeQ9dezgWUEfRqg9wV96DHbA2uN67fddddkU9vB4C8zAh6nck5AEz0CVh5QFfzzTbsulVHS7eGU78xkV2gnIeR8/YeDTfcZ6B9K8WcEEIIIdHQs0PHF76awuUzJl57PofJUWdRp5zLsX2vgSf+LInGZnWv7y6cNH39PJyoJzkH1BB0h9vE3RZlB1Au6E5Jy99ff/317eEPLzye92rXoZwDgJkDhs9Z2HZI3cXBOrZruOvpGN5/3sT0kOwLTTkv0tSu4eC9OrbsU/dnTAghhJCNxZ4bDVx3vYFTb+dx7KUcFmZXrmAo53Lc/kAc9z+SUGqldifefSMXKr/e5BwAFueVEXT7FHc3tGrjtWXJ27dvV2QEvcqLXKdyDhROYIOnBLYdCtHJGpBoBG5/0sD5P1roe99rvjvlHCi8ZvvvMrDzCO8xJ4QQQoh6aDpw5M4Yrr85hndfzeGdV3LIZsP1uRHkPJHU8KmnEjhwRNEpsCUMXrVwbTD4tmP1KOcAkFZjBL0tHo9ruVzZGySu96I7/TY5bp6+adMmJQTddQS9zuUcAObGBKaHBdp61LY4TQcO3qejrUfDmd+aMB1P4JRzIw7suVXHntsMGOot4kkIIYQQUkY8Adz1cBxH7orh2Ms5nDqehxXA6TaCnHd163jiL5Lo3Kz4sPkS7/4x+Oh5vco5oMYUd03T4jfeeGPq/fffz8F5FL1sdD0GZyGv2Jetvb1diSnujvegrwM5LzJ40kJbj5oLS9jZsl9Dc5eBD56zMD9Z+kQ2tpzHEsD2G3XsvcNAslG+BiGEEEKICjQ2a3joMwnccm8Mb76cx4VTeZh5udyNIOfX3xzDJ7+QRDwR6hDWjMV5gQ/fl/wB2qhnOQfUEHQAuOOOO1rff//9WZnY0lXcq2631tLSosQIesUU93Uk5wAweklgfxqIR75evhxNHRrufMrA2VcsDH9oQTg8qY0i5y2bNew8qmPbQZ0j5oQQQgipezo26fjU0wk8MB/H6bfzOHk8j+kJ9yuj9S7niaSG+x6J45Z76utC7/3j8m+wlFLvcg6oI+j79+9vBzBoa3acNu01xX2ZpqamyAVdWIXF1FYaHGL89Cfd6CNfNtcl2TKBoTMWdt1aH9NlgMJU7kMP69h+SMPZP5iYHV15cutdzo0Y0HNAx86jOtq2qH1rAiGEEEJIEBqaNNz+QBy33x9H73kTH7yZx+WzZvn2u+tZzjXg0K0x3P9oAk0t9XW9JwRwIsDicOtBzgF1BH3btm2lLl11sTivVdyX58M3NDRU279tTSi7/3wdynmRwdMCu24NUSAi2noKq7wPnLZw6Q0TmUUfyXUm503tS6PlN+qIJ30eGCGEEEJIPaIBuw8a2H3QwOyUwMnjeZx6K4/5WfkLrHqT8+5tOh5+MqHs3uZeXD5rYqrKrAcn1oucA2qs4g4AnZ2dbi7tuUicq8l7bLC+JixPb1/Hcg4A6RmB8V6Brt319Q5dke2HCluJXTxmov+UVfbuqiN1IueaDnTv1bHrqI7OHfX5syGEEEIIqQUt7Rru+UQcdz8cx8XTJt4/lkf/JbNqTj3JeapRw32fSuDoXbG63oXn3df9jZ6vJzkH1FjFHQDa29vbUDly7rj+W8whwJFEIhH5FPdcGutezosMnLTQVafv1AFALAlc/4CB7Yd1nP2DiclBlydfB3Keataw44iOHYd0JJtCHBghhBBCyDpDN4ADRw0cOGpg4pqFD97M48w7JjLp8iuqepFzTQduujuOj3wijlRjHZs5gOkJgUsfVn/TpJT1JueAOiPoDuu5ua3kvryKu5fJI5FIqDOCXsJ6lHMAmLgqMDUg0L69vk8MzV0abv9cDCPnLVw6blvtXWE5b9mkYdMuDZt26+jYrtX1O6eEEEIIIWtBZ7eOBx9P4COfAnrPm4WPcyamJyUvxqKUcw247oCB+x9JYPO2+lkLqhq/fy4r7SDrUc4hgHweyGUF4oloL+YbGxsDT3F3StAAIB6PRz6Cnrftgb5e5bzI+Vct3PG0sS7kcMsBHVsO6BjvE+g7YWK8t/J0G6WcJxqAzp06Nu3W0LVL5/ZohBBCCCEBicWBfYcM7DtUmA06OSaWZb3vkom806zriOQ8ngAO3R7HrffE0Nm9PsQcAK5eNPHhCbml29ernBdZXEDkW+ItredWtt+5G16CvowKgp4r2QN9vcs5AMxPCPR/YGHnTevnZNG1U0PXzhgWpwX6T1oYuSCQng17+vX/M9Z0oL2nMELetUtDa/c6eBeEEEIIIURBOjZp6NgUwy33xGDmgcFeE1fOWeg9b2Js2IpEzrfs0HHDLTEcuSOGZGp9XQdaFvDiz7NSsetdzoHCfeit7dH+jJPJpLRLuy0SV/YM9u3bl9R1PfKdufNL97JsBDkv1r5y3MKWAzoSDeH6Uo2GNg0HPmLgwEeA2VGBa5csXLskMDfu/0WT/Rk3tBamrXft1tC5Q0cs4nfSCCGEEEI2GkYM2LnPwM59Bu5/NI75GbEyHf68hfSCWBU51zVgxz4D+w8Z2Hc4hpa29SXlpbz7x1zhjQ8PNoKcA8CCAgvFuazn5roPuttv53L7n/zJn0R+/zkA5DMbS84BIJ8FLr1h4YaH1s8oup2WzRpaNhvYdzeQmReYuVb4mB0VmBkVyMy757rcQoSGNg1NHUBTp4amDg0d2zQ0RvzOGSGEEEIIKaepVcOh22M4dHsMQgAj/RaG+01MjApMXLMwOWphbkb+wloAgAZ0dOno3q5jy3Yd3dsKn9fbSLkTC/MCr/7Ge+X2jSLnAmqs5O6xnpvjKu5uc+E1ADh48GDk09sBIJv2jimyHuS8yPBZC9sOaWjdsv5PKskmDZv3aNi8Z6UtlwGyCwK5NJBLC2QXC2/WaDpgxAvvxBpxQI9pSDYCje0a9PpdAJ8QQgghZEOiaUDPTh09O8sHpjJpgakxgfSCQC5XWPQrnwNyOQGIwpZoDU0aGpY+NzZrkd9zHBV/eC6LzGJ1GdlIcg4AiwoIeiwWK/q0233oZau4e9LT09NSs6MLgdMq7k6sJzkHAGEB51+xcPsXN6Z1xpNAPOl49wUhhBBCCFnnJFMatuzgNaAXQ30W3j9efWG4jSbngBpbrcXj8dZ4PK7lchWzGyp+sWXmTWupVEqJ96DyGe+Y9SbnxcaZawJDp73vJSGEEEIIIYRsMATw4s+q3w+8EeUcUGMEXdO0+MGDB6XWdHMS9AqLTyaT8dBHVQNMj8UI16ucF7l4zEJ2IVwdQgghhBBCyPri3TdyGOpzH8zbqHIOqCHoALBp0yY3py7zb7cR9LJ58aoIulVlAHm9y9XVWBMAACAASURBVDkA5BaBk782ITiQTgghhBBCCAEweNXCy8+4j2RuZDkHgKzkbdKrTWdnp92pHe/bkFoaPJFIKCHowpT+9Vh3cl5keljg3B9o6IQQQgghhGx05mcFfvbvaZim8+MbXc4BuL42a01bW1vp+m+uO6lJCXospsaO0U4j6BtJzosMnrYwyPvRCSGEEEII2bBYJvDz72Rct6GjnBdQRdBbW1uLg95uu6dpQOUIuqPJx+NxqdXeVxthe3E3opwXOfeKhZkRNaZrEEIIWTuEVdjTdWFGwMwVvs55rNFCCCFk/fHyL7Lov+Jsn5TzFazqC9uvGc3NzVKz0r3EWwOgxeNxJaa4l46gb2Q5Fyi8WfHBr03c+VQMicZwx0MIIUQd8jlgYsjC6KCFyRGB9LxAdrGwD3B20V3GNR1INmhIpFY+t3Tq2LRVw6btOprbuUURIYSsF06+lcc7f6zYsgsA5dyO6XKb9FrT0NAQh8Se0U6CXpEUi8WUEPTi4mgbXc6LZOaBk8+buPVJQ/JmBUIIIaqRWRToP29hrN/C2KCF6VEBK8D/GmEB6XmB9Dwglv9brLyznWrQ0LWtIOvb9urYtI3/OAghpB4Z7rfwwk+c95+mnFeiyhT3xsZGJ6eudO9qDy4HxWKRT3GnnDuHTg0JnHvVwvUP8EKLEELqBTMP9J8zcfmkiaHLFqySi4ew7/O7/a9JLwgMXBAYuGDhxO+Blg4Ne44Y2HvEQEsnR9cJIaQeWJgvLAqXd5i2TTl3xlRkinsqlZKe4l62pZpjkAIj6JZJOXdj4KSF1m5g6w2UdEIIUZlrfRYunjDRd9ZEzmHwY7Xk3InZSYH3X8nj/Vfy6NqmY+8RA/tvNqDGsrCEEELsCAt45rsZzExVntgp5+7k82pMcXcZQa/AbWS8TNhVEHTHvb8p58uc/b2Fpk4Nrd0cBSGEENUYvmLhg1fzuNbnPh1sLeXczthgYXr9iVfyOHS3gRvujCFOUSeEEKX43bNZXL1YOV+bcl4dVaa4J5PJUqd2HSSXmrqugqBb9heWcl6GWbpoXIN8/4QQQlaPoUsWPngtj9H+6qucRinnZWubLAq8+7s8Tr1hLot6Ihny4AghhITmzHt5HP9D5aJwlHNvKjwyIhKJRE1WcQcAGIahgKCX/Fgo545x6TngxLMmbvuMgeh/YoQQsnEZH7Lw1m/yGBuwTf9SWM5LyaYF3vt9HqeP5XH0IzEcuivGxUgJISQi+i6ZeO5HlfdFUc7lUGWKu+zOaFL7oKsg6MtT3CnnVeNmRgTe+6WpzGIIhBCykchlgbd+k8Pz387WrZyXkk0Db7+Uxy//NVP5fAghhKw6A70mfvzNDPK2wXPKuWSXQp1F4qqMoJc5eLX3w4vz4jVd1yMXdMsE5VwybmpQ4MQvTWWmcxBCyEbg6ocmfvm/Mzj7lln5f6QO5bw0eHJE4Ll/y+LYr3PIOu/sQwghpMYM9Vn40b9mkM2Wn7Up55JdLnWgyj3oSyPongu0Owl6RYJhGMpssyYVG6ZOnct58YHJAYETv6KkE0LIapOeF/jdj7J45ac5LMzW/gLHibWU8+UvBXD2LRM/+5cM+s5xNJ0QQlaTkQELP/pGGtk05TwIpU5nqj3FvcK9pe4oU2GKu6xoUs5XmOgT+OC5vK83NwghhMgzdMnCs9/IYuCCy4l2nch5adPinMDLP8zi2PM5ZUYlCCFkPTE2bOGH30gjvUg5D4Ld6UxFXCgWi0kNeksJugpT3GUkk3Je2TjWK/DB8w7TLQkhhARGWMC7L+fxux9msbjgcoJdh3JeyofHTTz7zSxmJvgPhhBCasXEqIX//N9pLM5TzoPg5DzC8jcbe7WQ3RmtbgTdawSdcu7eOHrJwqkXKOmEEFIL5qYEXvhOFmeO5WG5nVfXuZwXmRix8ItvZHDxAw6lE0JIWCbHLfzga2nMz1HOg1DNdVSY8RWPxxMycXUj6NXe9aCcezcOX7Bw+iUFfjMJIaSOGb5s4dffymB80PJ1Xl6Pcl4knwVe/XkObzyX4xvBhBASkOlJgR98LY25Gcp5ELz+/6iw1ZrsFHe5efAKCHrZPuglUM69G4stQ2ctaDpw6GFDsjIhhJAiF0+YOP7rHCzL33l5Pct5KWffNjE3JfDRLyQQkxojIIQQAgCz0wI/+NoiZqco50GQcToVRtBl13Wr6xF0yrl3o71l8IyFD3+vwG8oIYTUESd+l8exZynnXgxctPDct7POq9kTQgipYH62MHI+PUE5D4Ks06mwF3qtBV25bdYo596Nbvn9Jy2cetFUYrEEQghRGcsEXvt5DqdeL/xnp5x7MzFi4ZffzGJihJJOCCHVmBi18L3/L43JsfKLcsq5ZJc+OjBdZmOvJQ6Crtm+1gBoUoKuGpRz70avOkNnLbzzTB75rOQBEULIBiOzKPDS97PoPV2YdUQ5l+9yYVbguW9nMHCR7wQTQogT/VdMfO9/pTE1TjkPgl+nU2GKe01XcbcsKxfucMJTfCuBcu7dKFtnckDg+H/lkeZUREIIKWN2UuCFf89itL9w4UQ5999lLgu89J9ZnHtHgasiQghRiA9P5Atbqdm26aScS3YZoAPNO2TVEUJu/nJdCTrl3LvR7x/M/ITAmz/KY+YaJZ0QQgBgtN/CC9/OYnbpfkDKefD6lgn88Vc5vP2SAjf/EUKIAhz7XQ7PfD9TcU805Vyyy4AdGAqskW2acnfCywp65P9ZdSP4+x6U8+rp2QXg7Z/mMXqZUxEJIRub3tMmXv6PLDKLlPOQXZY1fvDHPH7345wSi/QQQkgUCAt44ScZ/P7ZbMVJk3Iu2WWIDoxY9GPopmnaB72F7WsBQNTVCHoQKOdyfeZzwIlnTfS9T0knhGxMzhzL44/PrEgk5TxEfYfGK6dN/Pq7WWTTnLFFCNlY5LLAT76dxntvVL5LSTmX7DJEBwKAEfmS50A+n5dy6roRdD3AtATKuVyfxSYhgA//YOLcq7xfkBCysTjx+zzefTm//H+Dch6ivkunAsC1PgvPfSeH9ELYyoQQUh/MzQh8/18WcfFM5fU15Vyyy5ByDqgxxT2MoFe8BKZpRr7Wt98RdMq5XJ9O+b3vWTjxnAmLnk4I2QC89UIOp/64MqpBOQ9Rv4qcF5kYtvAs90onhGwAxkYsfPf/XcTIQOUMVcq5ZJc1kHNA2SnujtTRPejysZRzuT6r5V+7aOGtn+aRS/spQggh9YMQwBu/zOHc2yvvRlLOQ9SXkPMi02MCv/q3LGYnKemEkPXJ1YuFbdRmpiSv4Snnlfk1knOg/kfQK5C1/dVEdgSdci7Xp0z+9LDAG/+Zx/QIL6AIIesLywJe/WkOlz6gnPslrJwXmZsSePbbWUyN8n8MIWR98dYrOfzwG2lkHNbcoJxLdllDOdd0QIt+AB35fN5p0LvimVbTXlH8UEHQZUbQKedyffrJT88KvPWTPHrf4+JxhJD1gZkHfv+jLPrOUs79Uis5L7IwW5D08SH+jyGE1D+ZRYGffjuNl3+RdbxVlHIu2WUN5RxQY/QcAHK5XKARdMeXQwVB9xpBp5zL9RnkZbJM4NyrJk48ayIf+WoEhBASnFwG+O0Pshi6tCKElPMQ9UPIeZHMosBz38lipI+STgipX4b7Lfzb/1zE+VPOizhRziW7rLGcA4ARYrvuWhJU0B2R3VR9Nam2DzrlXK7PsH8wI5csvP6DPKavcToiIaT+yCwKvPT9LK71Uc79slpyXiSXAV74XhYDF7k6KSGk/njntRy+978WMT0hrdGUc6cuV0HOATW2WAOWBb04S90VKUHP56MfN9VcpiZQzuX6rNXF2eKMwPEf53H1BEc6CCH1w+KcwIvfzWJimHLul9WW8yK5rMBvfpDFFYetiAghREWyaYGffyeDF3+ehely6qKcS3a5SnIOADFFBD2bzboNepc9BTdBLwtSYYq77nCklHO5Pmt9cWaZhf3SOeWdEFIPzE4I/OY7WUyPrZzNKOch6q+CnIulf+iWCfz2v7I49y4lnRCiNiMDFv7tf6Zx9gP3icaUc8kuV1HOAXWmuGez2YxMXAwSw+wuK86tKfYRdMq5XJ+reXE2ctHC7JjATY8aaN2sxi8+IYSUMj5o4Xc/yiGzQDn3y1rL+cr3wKu/yGJxLo6b71dk2IMQQkp47408Xnomg2o3AVPOJbtcZTkH1FkkLpPJSDl16bi063OU3bNtNSkdQaecy/W5FhdnC9MCb/4oj773OeWdEKIWgxctvPT9LOU8AFHJeSlv/zaH15/Lhf6fTwghtSKbFfjF9zN44SeUc9/5Tl2ugZwDSgl6qVO7DpI7vTVdESi74txqo+lw3LLAD5TzwF26dmqZwJnfm5joF7jxIQOJhpDFCSEkJJc+MPHmszlYJe8dUs5D1F9jOS9y5ngei/MCD34uocwFFiFkYzLYa+HZH2YwMVp9UIpyLtnlGsk5hDpT3NPptJRTe80dE4Aa+6ADS1uthRB0ynngLqU6HbloYWLQwg0PGNh6UGr9QUIIqTmnX8/jvd+VD21QzkPUj0jOi1w5bSKzkMHHvpRAIqnGRRYhZOOQzwGvPJ/FW694z+ihnEt2uYZyDqizivvi4mLt9kFXZQTdaaE4WSjngbv01Wl2EXj/eRPv/spEdiHkwRBCiE/e/k2Och4QFeW8yNAVC8/+WxYLc5zvTghZO/qvmPjW/1jE8T9QzgPlO3W5xnIOqDPFfWFhwenGiIqnJaW82WxWCUF322rNC8p54C4Dv07XLll49Xs5DH7Ie9MJIauPZQGv/SyHs2+VT7OinIeor4icF5kYsfCLb2YwPU5JJ4SsLrkc8NIzWfzHv6QxOeZ9LUs5l+wyAjkHACOmxuyrxcXFLCSeiqygR76KOwDouv8Xl3IeuMvQr1MuDXzwGxPv/CKPzDwvqAghq0MuC/z2B1n0nqGcB6Ee5LxYe25K4JffymB0gG/+EkJWh75LJr71z4t4+1W5RSop55JdRiTnAKArMoI+NzcXaIp7EYGSp1evI+iU88Bd1vR1Gr0i8Or38ug/zQsqQkhtmZ8RePG7WYz0lp9fKOch6isq50XSCwLP/nsGvR9yr3RCSO3IZgVe/FkW//G1NKbG5a5ZKeeSXUYo5wLqTHGfmZkpOrXT01r2b6lV3G1LwkeGEZePpZwH7nJVXqdcBjj5kon+0xYOPWCgtVuNqSaEkPql/5yJN36VRzZdfiainIeor7icF8nngBd/mMXhu2O46+NxZUZHCCF1iABOvZvH75/NYm5G/nxFOZfsMmI5B9SZ4j41NVU6K93t6QmZNe1EOp3O1uCYQhNPycVRzgN3ueqv09SQwOs/zGP7jToO3sst2Qgh/rFM4J2Xczj3VuUIKuU8RP06kfNSTh3LY6TPwsNfSKClQ40LMEJI/TDcb+HFn2cw2OtvliflXLJLBeQcAJKSDrnajI6O2p3a8WlKLTo/ODg4E/qIakA8pcHrx0U5D9zlmr1OwgL6T1kYPm9h/90Gdt+sF7bQI4QQD+YmBV79WQ4Tw5UXU5TzEPXrUM6LjA1a+NnXMrjvM3HsOcShdEKINwtzAn/4dRYfHM/7lkjKuWSXisg5ADQ0qvEG7uDgoNus9LJDjpU0OroUAJw5c2a6docWnHiy+uOU88Bdrt3rVNKYzwIfvmKi76SFGx8wsGm3Gn88hBA16T1j4s3ncshlKh+jnIeoX8dyXgzOZgRe/lEWN94Zw92fiitzvyEhRC0sC3jntRxe+00OmbT/8xTlXLJLheQcUEPQLcvK9Pb2OlzBVBKD++uw3H7s2LHZWhxYWGJVpidQzgN3GYmclzI/KfDWz/Po3qPjhvt1NLZH/0dECFEHM1/Y3/zCe86LglHOQ9RfB3JeypnjS1Pen0qgrZP/SwghK1w5Z+KlZ7IYvxZs0WLKuWSXisk5ADQ0Rf//IJfLuQ14Vxy2fYq7cArs7e3NWJa1qOt6pHcMF6a4V0I5D9xl5HJeyrXLFkZ7LWw/pGP/XTpSzdH/MRFComVmXODVn2YxNSp9aeP6AOVcrtN6lfNi0/iwhZ99LY37Hk9g31EOpROy0RnstfDK81n0Xgi+8wPlXLJLBeUcABoVGEHP5XLFW8ZFyUcpy21S96AvdTqdTCajFXSHKe6U88BdKiXnRSwL6DtpYeCMhZ1HdOy700CyUT6fELJ+uPSBibeezyHvcscW5TxE/XUq50VyWeC3P8li8EoM9zwSR8zHLjCEkPXByICFV5/P4mLILRkp55JdKirngDIj6NXWdCt9CkLmHnRR7DSZTPbU5hCDYZ/iTjkP3KWScl4aaplA7wkL/acs7LpJx97bueI7IRuFqWsCb7+Yq9jbvBTKeYj661zOSzn7Th79F0zc9Yk49h3haDohG4GxYQuvvZDDuVP+F4CzQzmX7FJhOQfUuAc9k8k4TXF3PHyne9CF7TMAIJvNRr6Sezy58uJSzgN3qbycl2LmgcvvWOg7aWH3zTr23GZ4LhZICKlPMgsCJ36fx8UTZtV/9pTzEPU3kJwXmZ8R+O2Pszj9po57Holj0zZuG0LIemRyzMJrv8nhw/cKYq7mNTTlPHDtEMeusKADDk9Deop7NpuNfCX34j7olPPAXdaVnJeSzwIX37Rw9YSF624tbM0WV2RPQ0JIOCwTOPtWHidfyzuu0F4K5TxE/Q0o56WM9Fn42dczOHCzgTs/FkdjS/QXbISQ8EyMWnjztzmcfCcPsTTxSs1raMp54Nphjl1TY4r74uLiDAqHXfxwxW2RuArS6XTkI+ixlEY5D95l3cp5aWAuA5x/w8Slt03sOKTjult1NLZF/0dHCPFPZlHg/Dsmzr1tIj3vfTagnIeov8HlvJTzJ0xcOmli7xEDR++JoXMLR9QJqUf6r5g4/rscLpwxy04Ial5DU84D1w557PG4psTWm/Pz89KD3W4j6KLkswAglqw/UhynNlPO5fLXgZyXYuaAKycs9L5vYct+HXtv09HeQ1EnpB6YHhP48M08rpwyYeblcijnIepTzivI54Fz75k4956JbXt0HL0nhl0HDID/RghRGiGA8yfzePMPOQw5rFOi5jU05Txw7Rq8TiqMngPA7Oxs6Qg6bF+Xfe8k6ML2GYA/618tNB0w4gU5A0A5l+ty3cl5abMQwPB5C8PnLXRs07D3dh1b9nI0hBDVyGWAvrMmrpwyMXzF3x60lPMQ9Snnlfm2DgYvWxi8nEVbl4aDt8aw77CBlg41LugIIQVyOeDkWzm89UoeU+NW5OdQ+VDKeeDaNXqdGhTZDWp6erqaS5eJutsq7hU2Pzs7G7mgA4W90M2coJzLdbmu5dzO5KDA24Mmmjos7LlNx/YbdBjSqywQQmpNLgsMnDPRe8bE0GULVoCdbijnIepTzivzq3QwPS5w/MUcjr+Yw6ZtOvYeNrDvsIHmdso6IVExPyvw3hs5vPvHPBYXlv6AFTv/u4dSzgPXruHrpMICcQAwOjpa6tJu3g2gchV31+c+NTUV+RR3oLBQnJ+74SnnIfIjrBPmwnJ+UuDkSyY+fMVEz34dOw7p6Nyuxh8nIeudfA4YOG/h6pKU53PBz26U8xD1KeeV+T5+nqODFkYHLRz7TQ7dO3TsO2xg72EDTa38X0LIamPmgQtn8jj5Vh6Xz5nLC78BiPwcKh9KOQ9cu8avU6MiU9wHBgbsBuv6tKpNcS/7+tq1a2qMoPvYYotyHiI/wjq1urDMZ4H+0xb6T1tobNOw/UYNO27U0cALLEJqipkDBi4WpHzworV8X3kYoaOch6hPOa/MD/HzvNZv4Vq/hddfyKFnZ2Fkfe8hg6vAE1JjhvstnHwrjzMn8kgvyJ0I1LyGppwHrr0Kr5MqI+jnz5+fRuUhOj69ahOAyxL6+/uVEPRYUoPMj4pyHiI/wjqrcWEJAPPTFs69AZw/ZqJze2FUfet+HUY8ZMeEbFDMPDBYIuX5XPnjlHPvYMq5XHCUcm4PGL5qYfiqhdd/nUPPLh37jhjYc8hQZhEiQuqN+TmB0+/kcfLtPMaGq6xPotj53z2Uch649mq8TkIdQX/jjTdqtor78vfnzp1TQtBl9r6mnIfIj7DOasm5KOlBCGC838J4n4VTLwM9Bwqy3rWDC8sR4oVlrkj5wEUL+axzHOXcO5hyLhesjJw79DvUa2Go18Jrz+WwtUTWU4pcDBKiKqYJXDxdkPLLZ01YXuuGKnb+dw+lnAeuvUpyDqgh6JZlpS9evFi8ahJwHklfbo85POAY+NprrylzD3o1KOch8iOssxZybu80nyuZAt+qYfshHTsPcQo8IaVYJjB0eUnKL1jIZarHU869gynncsGqyrkdywQGLlsYuGzh1V/lsG2Pjn1HYthzo45kA/+fEFJkZKAwhf30ey5T2J1Q7PzvHko5D1x7FeUcUGObtVwuV9xirRRh+7zcHnN5oIKBgYGsaZqLhmE0hDzGUBSmuDtDOQ+RH2GdKOTczsKMwPk3TFw4ZqJzu4bthwxsO8Ap8GRjIqyilFsYuGAim5bMo5x7BlPO5YLrRc7tdSwL6L9oof9iFq/8Eti+18D+Iwauu0FHIhX9RSIha83CnMDpdwsLvo0NW9GfG6QbfeRTzoPXXmU5B9QYQc/lcsWZ6E6j5xXYV3GHw/fL5PP56agF3W0EnXIeIj/COirIeVmIAMb6Bcb68zj128IU+J2cAk82AEIAw1cKUt5/Tl7KV/Ip517BlHO54HqVczuWCfSdN9F33oRuADv3G9h3xMB11xu+FrwlpN6wTOBicRX2kinskZ8bpBt95FPOg9deAzkH1BD0bDbrtoJ76eflo/e6B12UfCCXy80kk8me2hxqMOIO70BTzkPkR1hHNTm3h5VOgW9o0bD5Og3du3Vs2qUjlgh5kIQoQHpBYPiShcGLFoavCGQWg/31Uc69gynncsHrRc7tWCbQe9ZE71kTRgzYep2BXQd07DxgoL0r+otHQsKyMCdw+ayJy2dNXDlnIm37fxL5uUG60Uc+5Tx47TWSc0CNbdYcBL0UYf/a6x50e+eRLxSXbCr/nnIeIj/COqrLuZ3FWYGrHwhc/cCCbgDtPTq692jovk5H66bo//AJkUEIYHzAwuAlC0OXLEyNCFgh/+go597BlHO54PUq53byeaDvgom+CybwXA6tHRp2HigI+/Y9BmK8tYrUAcIChvpMXDpr4vKHJkYGrdqclxQ7/7uHUs4D115DOQfUuAc9k8kUt1gr9W3Xo3a6B90evNyZh/2vCamSfUcp5yHyI6xTb3Jux8wvrQTfD5x5xUSqWUP3dRq69+jYzNF1ohiLc0uj5JcsjFyxyqauh/9nTjn3CqacywVvFDl3Sp+ZFDj1Zh6n3kRhdH23jl37Dew8YKBjc/QXloQU8RoldyLyc4N0o498ynnw2mss54YBNDVHfx5dXFx0G+R2OnrhdA+6WzDS6XTkgh5PAUYcFXvuukE5V6tOvcu50wksPSdw9aTA1ZMWdB3o2FYYWe++TkcrL67IGiMsYLS/MEI+dMnC1DXpywt/dSjnnsGUc7ngjSzndsw80H/BQv8FC/h1Di3tJaPrew3E+QYwWUOEBQxeXRLysyuj5KEHyCSD1byGppwHrr3Gcg4Are06NAUuxRcWFoqruJeOntsHyJe/j9ka3RIFAMzNzY2vylH7JNmsIT8Z4l07ynkkddajnNuxLGC8X2C838SZV5dG13cXRtc37dK5MBCpOZYFjA9aGL0qcO2qhbFB9/3Ji1DOA+b6CKacywVTzqsHzk4JnD6ex6njgG4Am7fp2HZd4WPrLh3xKjvbEBKE+VmBK+cKUt4b4l7yyM8N0o0+8innwWtHIOcA0Nahxjlydna2dATdfuR2UfdcJK6sbWxsbCjEsdWMVAswP1k9hnKuVp2NIOdOpOcErp4S6D21NLq+tXx0XYV39Uh9YeYLQn6tryDk44MWTMkZRQDlPHCuj2DKuVww5VwusNhsmcBIn4WRPgvvviKg6cCmrTq2XWcUhH23jiS3ciM+MfPAcL+5PHX92pBVOba3BOU8UJPPOvLBlHNv2jrU2IVpZGTEPsgtbJ/LcJviXpq8/Hhvb68igq6h2mFTztWqs1Hl3F7LsoDxAYHxARNnXius5NvWraG9R0f7Fg0dWzQ0KfJOH1EHMweMDVi41mfh2lWB8SELllkSsBp/s275lHPPYMq5XDDlXC6wmigICxgdsDA6YOHEa4CmAV09xRH2grQnG/g/hawgLGB81MJwn4XhfgvDfSZGh23/UwDKuUwr5Txw8FrJuQDQ1qnGOfD06dODqDxyt2ci3EbQnZLE+++/Pxz4yGpI6UJxdijnatWhnLtj5oGJQYGJQXM5MJ4C2rt1tPdoaO/R0NGjIaXA4hZk7ZibEpgYEpgctjA6UPhsmWv4N+uWTzn3DKacywVTzuUCpUWh+IgAxoYsjA1ZOPHHPKABXd2FkfXu7YWPjs06NDUGlMgaMD0hMNxnYqjfwki/hZEBEzmPW6Ao5xKtlPPAwWsp5wDQ3qnGCe/ZZ58tOrSA87Moa9cAtAEwlj70pc+xkrZY8WP37t2NV65ceW3Vjl6S4bMWTr1of7uPck45l8n1USfCi7PSplTTiqy3bymMuCdS4Y6NqMHCjMDEsMDEkIWJ4YKMl66yXoRyHqIW5bw8l3Je0zqh69dIzsuiqoTFE4Vp8UVh37xtaR92vg9c98zPiqWRcRMj/YUR8vSC4xWTO5Rz71bKeeDgtZZzAPir/6sRe683fFSuPfl8fjYejz8EwASQL/kwS9qKX1sATPs+6E5fL9Pb25vJZrNjiURi0yocvzROI+iUc7XqUM6DB9qb0vMCwxcFhi+utDW1aSuj7FsKU+QN7p2rNOl5u4wLpOe9f1Mo5yFqUc7LcynnNa0Tuv4ayzkA5LLAUK+FoV5rucdESkP3thVp796uo6Wdxq4ymUWBkQGrTMhnp6O7uGQMFAAAIABJREFUto383CDd6COfch68tiJyDqixSFw6nS7eIi5KPlDSBvv3Tvug2ynrLJ1Oj0Qv6OXfU87VqkM5Dx4omzs/LTA/LTBwFgBMaBrQ1K6hsU1Dc4eGxrbC981LbXq0bx5uKHIZYGbcwsy4wMyYwMy4wNQ1gYVZ/79YlPMQtSjn5bmU85rWCV0/Ajl36zGbFui/ZKL/0srMxFSjhs1bdXR0a+jYrKNzs46OzRoamqK/2N0o5HPA9ISFqQmBqXELU+MC0+MWJscsTE8Kz18LynmIfMp58NoKybmmqbFI3MLCwojLQ6Lkc6m4C/sIurAFVzA/Pz/U2tp6OOSxhiLZrEHTAWFRzinnMrk+6tSBnDt2J4DZCYHZCYGRy+WPaVph1klzu4am9sLoe1OHtvw5xpH3QCzOFeR7drzwufhRHBVfld8lyrlcPuW8PJdyXtM6oesrJOdupBcE+i6a6LtY3p5q0NC+uVzaOzbraG3nNPkgZNJiWbynxgWmJixMjwtMjluYm7VJ+Gqd/ynn3q2U88DBUck5ADQ1q3GNOzs7OwR3z7YfugDcV3F3ShYAxMzMzPDWrVtrdcyB0DQg2aRh0W1EinIeSR3KefDA1Tz5CgEszggszgiMXq18PNmoobEdSwJf/pFsCHlgdUw+CyzMCiwWP+aA2cklIZ+wkMu451LO5R6gnMt1SjkPVHpV6oSuXwdyXo3FBYHFXoGhXqusPRYHOjbp6OjW0d6loblVQ3Pb0kerhsQG3v5tYW5lBHxq3MJ0yYh4ekHy2pRyLpdPOa/M36ByDqizgvvk5KR9kXU3z17GaYp7VbOfmJhQYiX3ZAuwOOvwAOU8kjqU8+CBUV9YphcE0guFFeXt6Ebh/sRECkg0APHlr0s+N5THJBo06NHPKKpKLlMu34WvUfK1qBBw6b85yrnUA5RzuU4p54FKr0qd0PXrXM6r1crngNEhC6NDluPj8QTQ1KaviHvp59bCDK+U4lvCmWbx/6XA4sLK16XfLy5YSC8U3sgoPmY5vySOUM5D1KecV+ZvYDkHhBLT2wFgZGSkdAS9iJNnL39t32atmpwLAGJwcFCNvdCbHfZCp5xHUodyHjxQ9QtLyywsbpaeL9aSKSgQS5RIfEpbFvd4EtANDZqG5Q8Uv9ZR1l7cCmi5XXfOy2WBfLYg1PmsQD5b0pYF8hkglxFlbcLHBZPsswYo57IPUM7lOqWcByq9KnVC11/Hci5DNgtkRy1MjpZ2Wh6j6UA8oSGRBBLJwue47XOi9HOqEF88PmEtfRaAZYnl762S9tI2CFHxmGkVFmBbXHrjekXARfn2ZI6/86vwN0c5l8unnFfmb3A5B4B2BRaIA4ALFy6UDm6XirrbUxCxKkGl7cuPnTlzRglBb7AtFEc5j6YO5Tx4YNQXTKvzOhUC80syvDBd5aJlnV2AU87lHqCcy3VKOQ9UelXqhK6/weVc9vdeWIUF6wpbTQr3XD+11+i6h3Je2zq+6lPOK/Mp5wDU2QP9lVdeGYS7Z9sRQGHfc8+g0u+ff/55JQS9bKs1ynkkdSjnwQOVvGAKXcvH39w6uwCnnMs9QDmX65RyHqj0qtQJXZ9yLtkYOMw9n3IuFUw5D9Tks458MOU8YK7DIypMcbcsK/fMM89MLn0r4Hz4Fe1OR24PEqVtr7766pxpmvOhjzgky4JOOY+kDuU8eKCSF0yha1HOa1qHci6XTzkvz6Wc17RO6PqUc8nGwGHu+ZRzqWDKeaAmn3XkgynnAXNdHmlXYJG4TCYznMvl7DdW2j27ArugeyYAEOl0OvKF4lItoJxHVIdyHjxQyQum0LUo5zWtQzmXy6ecl+dSzmtaJ3R9yrlkY+Aw93zKuVQw5TxQk8868sGU84C5VR5RYQR9YWGh6Myi5AMlbY6fdZcH3drEUrHIp7mXTXFfhnK+2nUo58EDlbxgCl2Lcl7TOpRzuXzKeXku5bymdULXp5xLNgYOc8+nnEsFU84DNfmsIx9MOQ+YW+WRZFJDQ2P0I+jz8/Nuzuwq54DcCHqFpM/NzUU+gm7EgHiqtIVyvtp1KOfBA5W8YApdi3Je0zqUc7l8ynl5LuW8pnVC16ecSzYGDnPPp5xLBVPOAzX5rCMfTDkPmOvxSJsiK7hPT08Po8Shl5rtn2H/3mmROKcOynDYcD0SVkbRKeerXYdyHjxQyQum0LUo5zWtQzmXy6ecl+dSzmtaJ3R9yrlkY+Aw93zKuVQw5TxQk8868sGU84C5Eh20KbKC++joqH0PdKfPFU+m9OjdLN7eqVjacD1yGlod9kJ3bKlC3ZxYoqtDOQ8eqOQFU+halPOa1qGcy+VTzstzKec1rRO6PuVcsjFwmHs+5VwqmHIeqMlnHflgynnAXMkOVNli7cqVK/Y90J0+V7QV70F3CrQHLz926dIlJUbQmzoq2yL/g5Fu9JEfYR3KefBAJS+YQteinNe0DuVcLp9yXp5LOa9pndD1KeeSjYHD3PMp51LBlPNATT7ryAdTzgPm+uhAlSnuJ06cKI6gF3Fz7rLHqo2gu7WL119/XYkR9Cbb8vmR/8FIN/rIj7AO5Tx4oJIXTKFrUc5rWodyLpdPOS/PpZzXtE7o+pRzycbAYe75lHOpYMp5oCafdeSDKecBc310IASweYshV2x1ET/+8Y+vFb+Gs5wLODyxavugOyULAPjpT386JoTIhzzo0JQKeuR/MNKNPvIjrEM5Dx6o5AVT6FqU85rWoZzL5VPOy3Mp5zWtE7o+5VyyMXCYez7lXCqYch6oyWcd+WDKecBcHx0UX6PurdFPcc9ms2MDAwNZW3OppNtdexn7InH2Z+8o6QsLC1YmkxkJfsi1oalDg6Yp8Acj3egjP8I6lPPggUpeMIWuRTmvaR3KuVw+5bw8l3Je0zqh61POJRsDh7nnU86lginngZp81pEPppwHzPXRQfE1iic0dHRFL+iLi4tue6C7inkxTnd7wKWTZRYWFgaDHnCt0A0g1ebjHoO6ObFEV4dyHjxQyQum0LUo5zWtQzmXy6ecl+dSzmtaJ3R9yrlkY+Aw93zKuVQw5TxQk8868sGU84C5PjoofY02bdGhKXAL+vz8vNcWa05tAKqv4l6abO9MTE5OXg595DWguUvyJ1A3J5bo6lDOgwcqecEUuhblvKZ1KOdy+ZTz8lzKeU3rhK5POZdsDBzmnk85lwqmnAdq8llHPphyHjDXRwf212iLAtPbAWB6eto+mC0j6QAq70GvEHGXDsTQ0NClEMdcM5o7JQS9bk4s0dWhnAcPVPKCKXQtynlN61DO5fIp5+W5lPOa1gldn3Iu2Rg4zD2fci4VTDkP1OSzjnww5Txgro8OnF6j7h4lFohDf3//JZQ7NEq+dmpb/t5pBL0iqOTz8mOnTp1SQtDtK7lXUDcnlujqUM6DByp5wRS6FuW8pnUo53L5lPPyXMp5TeuErk85l2wMHOaeTzmXCqacB2ryWUc+mHIeMNdHB26vkQoLxAHAu+++exHOHu32BJdjvPZBh0O7ACB++MMfXgx6wLWk6gh63ZxYoqtDOQ8eqOQFU+halPOa1qGcy+VTzstzKec1rRO6PuVcsjFwmHs+5VwqmHIeqMlnHflgynnAXB8dVHuNFBF065vf/OaVpa+dXLu0DbavHbdZK02qEPPiNy+//PJ0NpsdC3bMtaOpQ4Pmtlmcd5MvKOey3VLOPbuknMvlU87l8innnsGUc7lgyrlcIOU8YK6f2pRzqWDKeaAmn3XkgynnAXN9dFDtNUokNbR3Ri/oi4uLA2fPnk3bmu2Sbv96mWpT3J0Mv0zcZ2dnI5/mrulAY7ttFL1uTizR1aGcBw9U8oIpdC3KeU3rUM7l8inn5bmU85rWCV2fci7ZGDjMPZ9yLhVMOQ/U5LOOfDDlPGCujw68XqPunujlHABmZmaKjlzmzrbPbu7tug+6V7IAICYnJyMXdMA2zb1uTizR1aGcBw9U8oIpdC3KeU3rUM7l8inn5bmU85rWCV2fci7ZGDjMPZ9yLhVMOQ/U5LOOfDDlPGCujw5kXqPNakxvx/j4eOkCcRUOXRLq6ODVJodXM3sBAAMDA2oJet2cWKKrQzkPHqjkBVPoWpTzmtahnMvlU87LcynnNa0Tuj7lXLIxcJh7PuVcKphyHqjJZx35YMp5wFwfHci+Rqqs4N7X12dfwb2aqFc8O92p0dbm1ok4efKkGgvFdWl1dGKJrg7lPHigkhdMoWtRzmtah3Iul085L8+lnNe0Tuj6lHPJxsBh7vmUc6lgynmgJp915IMp5wFzfXTg5zVSZIE4HD9+vNSR7V4Nh+/LYkqnuNtF3I79MfG9731PCUF32mpNzRNLdHUo58EDlbxgCl2Lcl7TOpRzuXzKeXku5bymdULXp5xLNgYOc8+nnEsFU84DNfmsIx9MOQ+Y66MDv6+RCvegCyGsb3zjG70od2cvxy6LqfYsnIS9rO3111+fz2QyI4GOvoY0tmvQS2Y0qHliia4O5Tx4oJIXTKFrUc5rWodyLpdPOS/PpZzXtE7o+pRzycbAYe75lHOpYMp5oCafdeSDKecBc3104Pc1SqY0tHVEL+iLi4t9vb29mZImJ1GvKuwyU9zt35d1PDs7e9nvgdcaTVtZyV3NE0t0dSjnwQOVvGAKXYtyXtM6lHO5fMp5eS7lvKZ1QtennEs2Bg5zz6ecSwVTzgM1+awjH0w5D5jro4Mgr5Eq09tDrOC+/Kzt26w5ibmb5QsAYmJiQolp7s1dmqInlujqUM6DByp5wRS6FuW8pnUo53L5lPPyXMp5TeuErk85l2wMHOaeTzmXCqacB2ryWUc+mHIeMNdHB0FfIxWmtwPA2NiY2wrupZ/d2gBUbrPmFFzN9pVZyd3pPnQ/UM5lu6Wce3ZJOZfLp5zL5VPOPYMp53LBlHO5QMp5wFw/tSnnUsGU80BNPuvIB1POA+b66CDMa9S9VY0V3Ht7ey+gupw7OnXp99WmuNuTHdvee+89ZUbQg0I5l+2Wcu7ZJeVcLp9yLpdPOfcMppzLBVPO5QIp5wFz/dSmnEsFU84DNfmsIx9MOQ+Y66ODsOc1VUbQ33jjjdLBa7tDC9tjTgj7FPfSjhwTbI+L7373u5f9HPRq0RxwBJ1yLtst5dyzS8q5XD7lXC6fcu4ZTDmXC6acywVSzgPm+qlNOZcKppwHavJZRz6Ych4w10cHtTivqTCCLoTIf/3rX78KB2cuDbN9XSHv9rca7C+Pm+0vt73zzjvz6XR6KNjTqB0NbRqMuL8cyrlst5Rzzy4p53L5lHO5fMq5ZzDlXC6Yci4XSDkPmOunNuVcKphyHqjJZx35YMp5wFwfHdTivNbQqKGlLdztzrVgYWHh6sjISM7WXCrpTsJeQZh70Je/n52djfw+dE0DWjfL/2Ao57LdUs49u6Scy+VTzuXyKeeewZRzuWDKuVwg5Txgrp/alHOpYMp5oCafdeSDKecBc310UKvz2pb6X8EdpV+7jaC7deYo6RMTE5ELOgC0Sd57QDmX7ZZy7tkl5Vwun3Iul0859wymnMsFU87lAinnAXP91KacSwVTzgM1+awjH0w5D5jro4Nantd2XBf99HYAGB0ddVvBvfR72B6D7bEKQS/FrdOKr/v6+pRYKK69x3sEnXIu2y3l3LNLyrlcPuVcLp9y7hlMOZcLppzLBVLOA+b6qU05lwqmnAdq8llHPphyHjDXRwe1Pq/tVETQr1y5chEe3mz7vpTl73Vbgj3AKbHiXYB3331XjRH0rdUFnXIu2y3l3LNLyrlcPuVcLp9y7hlMOZcLppzLBVLOA+b6qU05lwqmnAdq8llHPphyHjDXRwe1Pq9pGrBzTyxcpzXi9ddfLwo64OLNJY/ZY5bb7dusuVm9k8Avf3z729++7FB4zUk2aki1OEs65Vy2W8q5Z5eUc7l8yrlcPuXcM5hyLhdMOZcLpJwHzPVTm3IuFUw5D9Tks458MOU8YK6PDlbjvNbapqOlNfoF4oQQua9//et9xW9LPmBrK/3esSunbdYqglw6Xi586tSpxcXFxQGZg19tnKa5U85lu6Wce3ZJOZfLp5zL5VPOPYMp53LBlHO5QMp5wFw/tSnnUsGU80BNPuvIB1POA+b66GC1zmuqTG+fn5/vHR8fN1Ep59VE3VHYne5Bd0pyKlTWPjk5ecb3M1kF2myCTjmX7ZZy7tkl5Vwun3Iul0859wymnMsFU87lAinnAXP91KacSwVTzgM1+awjH0w5D5jro4PVPK+pskDczMxM6f3n1Vza/nQqnp7XInHVOilr7+vr+8DrwNeC0pXcKeey3VLOPbuknMvlU87l8innnsGUc7lgyrlcIOU8YK6f2pRzqWDKeaAmn3XkgynnAXN9dLDa57Wde9QQ9P7+/tO2JruU28Xd9ZVxugfdjkzn4tixYyd9PYtVonWzBt2gnMt3Szn37JJyLpdPOZfLp5x7BlPO5YIp53KBlPOAuX5qU86lginngZp81pEPppwHzPXRwWqf1wwD2LZTDUF/8803P4C7L5dSzbcBrNyD7ijdLh04xYh//ud/PiuEyPl7KrVHN4DmTQ4LBVDOHfIp555dUs7l8inncvmUc89gyrlcMOVcLpByHjDXT23KuVQw5TxQk8868sGU84C5PjpYi/Nazw4DMQUWcBdC5P7pn/7pLBwc2S3FJUYAlVPc/XRS1tbb25uZmZk56+vZrBKl09wBUM4d8ynnnl1SzuXyKedy+ZRzz2DKuVww5VwukHIeMNdPbcq5VDDlPFCTzzrywZTzgLk+Olir85oqC8TNzs6e6+3tzcBdumWEfRmve9Dtn6sWGB0dVWKae9lK7pRzh3zKuWeXlHO5fMq5XD7l3DOYci4XTDmXC6ScB8z1U5tyLhVMOQ/U5LOOfDDlPGCujw7W8rymiqBfu3btJCodudrX9rYy7PegF3GScq/vxblz59QQ9C1Lgk45d8innHt2STmXy6ecy+VTzj2DKedywZRzuUDKecBcP7Up51LBlPNATT7ryAdTzgPm+uhgrc9rqqzgfv78+dL7z2H7XPoM7C7tRNk96E6d2Dtz6nz54+c//7kSK7k3tGlIpOQ3rKecy+T6qEM5r3EtynlN61DO5fIp5+W5lPOa1gldn3Iu2Rg4zD2fci4VTDkP1OSzjnww5Txgro8O1vq81tSsoXNTtcnga8czzzxT6sCOnlzyYadC7HXbg24du3VQ9vGtb31rKJvNjvt+VquAfT90NyjnMrk+6lDOa1yLcl7TOpRzuXzKeXku5bymdULXp5xLNgYOc8+nnEsFU84DNfmsIx9MOQ+Y66ODKM5rqoye53K5iX/9138dgruMu/m0UzsA53vQvcze/v1ygVwuZ01OTqoxzV1C0CnnMrk+6lDOa1yLcl7TOpRzuXzKeXku5bymdULXp5xLNgYOc8+nnEsFU84DNfmsIx9MOQ+Y66ODqM5rqtx/PjExcTKXy1mQF3M7FW1ei8R52X6FpP//7L15mBzVfe7/VvcsmpGEFoSEALEJhFgNiN0Yg7EBYwzYxom5OIFrQ2xDEsLjH/fG9u/GTkiwkzgx9sX8LheMHQLGJl4SQDaxQAJMEBJiBNpA+76MNJrRLBqNprurfn+MZtRdfarqe05Vd5/qed/n6ae7T3/fequqe2rOp7azfft2OwB9ejigE84lXo0cwnnCWYTzRHMI5zI/4bzUSzhPNCd2PuFc2GhcFuwnnIuKCedGTZo58mLCuaFXYwK13K7ZAug7duwIukEcfO2qNqX816CrFDRBZdjSpUutuA59wrQMnABGJ5xLvBo5hPOEswjnieYQzmV+wnmpl3CeaE7sfMK5sNG4LNhPOBcVE86NmjRz5MWEc0OvxgRquV3LZIBjLQH0Q+yrw8th8gD1Neh+og+aoDL0kUceeQ+AGxFecWUbgXGTywmdcC7xauQQzhPOIpwnmkM4l/kJ56VewnmiObHzCefCRuOyYD/hXFRMODdq0syRFxPODb0aE6h1n23KtAyam+U3BK+g3B/+8IerEAznxVIxtRLe/cOsRRoUgSUz0dbWtr+vr2999PJUXhN8p7kTziVejRzCecJZhPNEcwjnMj/hvNRLOE80J3Y+4VzYaFwW7Ceci4oJ50ZNmjnyYsK5oVdjAjb02WacZMfR876+vvVtbW37D71VgbnqfVg7gMPDrPklnZBqbwE6OjrsuA796MOLRziXeDVyCOcJZxHOE80hnMv8hPNSL+E80ZzY+YRzYaNxWbCfcC4qJpwbNWnmyIsJ54ZejQnY0mebcWJDvBlJSEXM64fzKG6G4vWIogaP80/Ikzw2bNhgBaBPOnboCDrhXOLVyCGcJ5xFOE80h3Au8xPOS72E80RzYucTzoWNxmXBfsK5qJhwbtSkmSMvJpwbejUmYFOfzZYbxB1i3iA49z+geFYqaBz0oPeix7x586y4UVzrBAdjjogxHjrhvLyWcJ5wFuE80RzCucxPOC/1Es4TzYmdTzgXNhqXBfsJ56JiwrlRk2aOvJhwbujVmIBNfbax4x1MnR51jLk6OsS8EjgvrkFRrfK9gyFId4reO772TNEjG/JoGH60trY2dXd3v9zQ0DAuzkInoZXz89i6IvyedYRzYS3hPOEswnmiOYRzmZ9wXuolnCeaEzufcC5sNC4L9hPORcWEc6MmzRx5MeHc0KsxAdv6bOfMacQf3NESY46SUT6f75swYcLV/f39gwDyRY9CyMMtenhFzyWQLxlmza+gvQEj7/v7+wv79u2z4jT3I48P38NCOBfWEs4TziKcJ5pDOJf5CeelXsJ5ojmx8wnnwkbjsmA/4VxUTDg3atLMkRcTzg29GhOwsc92ymw7rj/ft2/fiv7+/gJCmNjXLpEHlN/FvazA91oVqJyhXbt22QHoMzTHQyecl9cSzhPOIpwnmkM4l/kJ56VewnmiObHzCefCRuOyYD/hXFRMODdq0syRFxPODb0aE7Cxz+Y4wCmz7bj+/BDrSuDc/zkUr4tVdhd3FeX7A/3hys9WrFhhxXXojc3AEVOF46ETzstrCecJZxHOE80hnMv8hPNSL+E80ZzY+YRzYaNxWbCfcC4qJpwbNWnmyIsJ54ZejQnY2mebMjWDIybacf35IdYN5eGQz4pVxt9hw6z5i1Vt/vaR8+ifeOIJK46gA8AU32nuhHNhLeE84SzCeaI5hHOZn3Be6iWcJ5oTO59wLmw0Lgv2E85FxYRzoybNHHkx4dzQqzEBm/tsMy05vR0ADrGuCsjDWDmsbUSSXRBRQcoZmzdvXnd/f/9mwfQrruLr0AnnwlrCecJZhPNEcwjnMj/hvNRLOE80J3Y+4VzYaFwW7Ceci4oJ50ZNmjnyYsK5oVdjArb32Wy5/ry/v3/zvHnzuiFgYp81EMqLFTbMmr/NUzyHztTu3buXRs1ANTRpuoNsI+FcnEM4TziLcJ5oDuFc5iecl3oJ54nmxM4nnAsbjcuC/YRzUTHh3KhJM0deTDg39GpMwPY+WzYLnHyqHdefd3Z2Fl9/7r8Tu4qNi5/9r8vaVEfQwwxRewhK2lesWLEoYLmqKicDTDpWsaiE8/JawnnCWYTzRHMI5zI/4bzUSzhPNCd2PuFc2GhcFuwnnIuKCedGTZo58mLCuaFXYwJp6LPNODGLpuaAO39XWWvXrn0bGkzse+9XWVvQMGv+iUrayx4/+MEPFmNor0LNNeV43xdKOC+vJZwnnEU4TzSHcC7zE85LvYTzRHNi5xPOhY3GZcF+wrmomHBu1KSZIy8mnBt6NSaQlj6bTdef/+QnP3kTwXAOX7tfYcDuAeVH0FUwHjShqL0E3rx587p7enreVy1YtTVlRtGiEs7LawnnCWcRzhPNIZzL/ITzUi/hPNGc2PmEc2GjcVmwn3AuKiacGzVp5siLCeeGXo0JpKXP5sGq6883Pfnkk7sPvQ1jYSjawlh7RNKbxPlf+4MCH9u2bbPiNPdxRzpoHusQzlW1hPOEswjnieYQzmV+wnmpl3CeaE7sfMK5sNG4LNhPOBcVE86NmjRz5MWEc0OvxgTS0mfzAIxpcXDcCXZcf75z585FGJotF+HXn/vBHYrXSkUNs+Zv838WtsfAA+AtXLjQCkAHgCkz5NctEM4TzrJs46ubTzivUQ7hXOYnnJd6CeeJ5sTOJ5wLG43Lgv2Ec1Ex4dyoSTNHXkw4N/RqTCAtfbbhupNnZeHYcfk5li5dOgzooQwc0F4sFW8DGAL0IJMqUNLmoWhvwje/+c1lruseCFrIaso/HnqQCOcJZ1m28dXNJ5zXKIdwLvMTzku9hPNEc2LnE86FjcZlwX7CuaiYcG7UpJkjLyacG3o1JpCWPltx3Smn2XF6u+d5+W9/+9vDN4gDgmEcUC+qqs5f78mItXSCQSHKGd2+ffvg3r17rRhu7Uj/jeIUIpwnnGXZxlc3n3BeoxzCucxPOC/1Es4TzYmdTzgXNhqXBfsJ56JiwrlRk2aOvJhwbujVmEBa+mz+OluuP9+3b9/ytra2/RAwcEhbpFR3cQ8j+uLXUXsORt5v3LjRitPcm1sdjJ8SDOmE84SzLNv46uYTzmuUQziX+QnnpV7CeaI5sfMJ58JG47JgP+FcVEw4N2rSzJEXE84NvRoTSEufzV83aXIGRx6lc0y5ctqyZctiHGbcxMc/H5b0Lu7+tqi9AyXtc+fOtQLQgeDT3AnnCWdZtvHVzSec1yiHcC7zE85LvYTzRHNi5xPOhY3GZcF+wrmomHBu1KSZIy8mnBt6NSaQlj6bqs6Wo+cA8Oqrr4Zdfx7UDqgXLXC1OIrXju/1MNFmih4OgOyh11nFo+HQIwugobGxsaGvr++3TU1NU8IWuhrq2OzirX/Pl7QRzhPOsmzjq5tPOK9RDuFc5iecl3oJ54nmxM4nnAsbjcuC/YRzUTHh3KhJM0deTDg39GpMIC19tqC6W7/QgrMn/EcjAAAgAElEQVTOa5QHVkj5fL7vyCOPvLqnp2cQQB5A4dDz8Gv/ww14AIePvgMKkA+7i3vQa/+eANWeA68o2Mvlct7u3bsXyxa/spp0bAaZorv0E84TzrJs46ubTzivUQ7hXOYnnJd6CeeJ5sTOJ5wLG43Lgv2Ec1Ex4dyoSTNHXkw4N/RqTCAtfbaguowDzLTkBnEdHR1Lenp6CihnXRS1+VnZ34aQ1yPSWWIPh4+sR8F52eerVq1afNxxx12vkVcRZRuAScdksHerSziX+mMUWtlhip1FOE80h3Au8xPOS711BOdOBshkgEzWOfSMkWcnoD2TcZDJAtnMUM3YIxw0tzro2u3CLQCui6HnAlBwvZHXh9u9w69Hng/VFf0XJ5zHyLdw+084tydHK59wXu4nnEf7U9JnC+tfTZ+RRUurHeOrrVu3rvj0dh0WhuJ1qKIAfXhCjq/NEcyci8PDuHk/+tGP3rzmmmuk81VRHXWCg46twmLCuXGhlR2m2FmE80RzCOcyP+G81FtjOIcDNDU7aGoGGpsdNI3xvx963dTsoLEZvvdD9Y2Nzghww46+R4mGwT036GFwABgc8DB40MPgQeDgwKG2Q+8HDxz6bKRu6PngQQ+5HHzrkHBuUBbsJ5yLignnRk2aOfJiwrmhV2MCaemzRfWvTj3djqPnAPCLX/zCD+jFzBsE7kD5YnqKthL5uwVB16EPP4qvPx9+r7oG3X8tegOAbG9v78/GjRt3StgMVUP9+zy88i+56ELCuXGhlR2m2FmE80RzCOcyP+G81JsgnGeywNjxDlrHOxh7hIOWccNwrQbsxmEIb3KshGob5bnwgX0x3A+9PjjgYaDfw/5uD329Hvr2DcG95Idi5TbUwu0/4dyeHK18wnm5n3Ae7U9Jn03Sv7rrvrE4cWY2qLJqGhgY2NHS0nIjyq87D7r+fPga9GGAd6EB8rq7JTwcPnpefLq76lH22Y4dOxbNmjWr5oDeOnFouLXejpCfEOHcuNDKDlPsLMJ5ojmEc5mfcF7q1fgum8Y4GDfhMHy3jnfQeoRTAuRjWgjalZaTAZpbHDS3AOM1VnY+B/T1uEPQ3uNhf8+h524XfT0e+ro97N8vg/ggEc6jCwnnyeZo5RPOy/2E82h/Svpskv7VuPEOTji59nAOALt27Rq+l1oQ9/oZGL56LfkB3Q/eQf9NQ0Fc8XABZN5+++1Fs2bNuk13Jiuho0/JoLejoP6QcG5cmBbo1MsinCeaQziX+Qnnpd6A77K5xcGkqQ4mHpXBpKMymHiUg0lHZdAyjuSdZjU0AhOPzGDikcE1Bwc8dLa76NztoXO3i73tLjp3u+gXgDvhPLqQcJ5sjlY+4bzcTziP9qekzybtX53xgUY4lvwrX7FixSKoj4KHQXrxEqkWO/Bz1WKrTnPPoPxUd/8j8hT3M888c9zy5cvnO45T83vl9+718PunFKe5E86NC9MCnXpZhPNEcwjnMj/hvNTreXAcYMoxGUw5JnMIxoegvGWsJf+9KWs00O+NwHrnbg/t2wrYs8Md2aYRzqMLCefJ5mjlE87L/YTzaH9K+mw6/as77mm15Rp075prrvnovHnzOiE7xd0/rJqHUrAfHmotCObFp7gXm4pvEOefsOerLZ6RzMqVKw90dXW9O3ny5AuEuRXT+CMdjJ3kYH9X0ewSzo0L0wKdelmE80RzCOcyP+F8RE3NDo6Z6eD4U7M47tQsxlhyJ1fKbo1pdXDsSVkce9LhUyP7+zxsWl3Axvfz2LqugNyg2bQJ54bZhHOZn3Be7iecR/tT0mfT6V+1tDrWDK/W09Pz3rx587pRDtpBi+TnZBU3h0pyF3d/j6i4zU/9JUCumqnNmzcvtgHQAeDomRmsX3LoNHfCuXFhWqBTL4twnmgO4VzmJ5xj4lEOZpyaxYxTs5g6IzN0l3OKiqnWcQ7OmNOAM+Y0oJAHtm0oYOP7BWxanUfvPmEnWNxoXBbsJ5yLignnRk2aOfJiwrmhV2MCaemz6fahZ5/dYM3//+3bty9GNHSHAbi0bUQqQB8GcD+IB4F60MypIN2dP3/+m+edd97dYTNVLR19yiFAJ5wbF6YFOvWyCOeJ5hDOZf5RDufHnJzBBVc3Ysp0S/4jU3WrbANwwqwsTpiVBdCETasL+K8XB9G52w30EM4NswnnMj/hvNxPOI/2p6TPZtKHPvPcml8NPaKFCxcWD6+GotcmsF4sz/c8oqDzBYOGWxvuORVfez487FrYkGsj16K3trY2dnd3z2toaJgQMdNV0YIf5XCgVwPIhCKcCyZJOJf5CecyP+E8sthGOG9qdnDlZxpx3Cl23KmVGp3yPODdN3J4/beDZdtCwrlhNuFc5iecl/sJ59H+lPTZTPrQTc0OvvH349FgwRnurusOnHzyyVdv3ry5H6XXnQcNr+a//tx/7bkf8gHF2pAcqvBCXvsnHLTnYGTG+vv7C3v27FkMSzTtlPJVQDiPLkwLdOplEc4TzSGcy/yjGM6zDcDHbm0inFM1l+MA536wEZdd21TSTjg3zCacy/yE83I/4Tzan5I+m2kf+rQzG6yAcwDo7Oxs27x580GEQ7aKeVVtYumcSxgG6qoZ8i/IyGP58uWv6cxkJXW0D9AJ59GFaYFOvSzCeaI5hHOZfxTDOQDMntOAacfzlHbKHp3/oUYcOW3oN0k4N8wmnMv8hPNyP+E82p+SPlucPvSZ51pC5wA2bty4GKUsCwTwre9zKF6LFdQzUgWEvQ+Cc+XjW9/61u89z1OMcVZ9TT7WQfOhYXoI59GFaYFOvSzCeaI5hHOZf5TDOQDMPJtHzin7dNoHGgjnptmEc5mfcF7uJ5xH+1PSZ4vTh25oHDqCboueeuqpV1DKsZJx0IHwpY0EeOmhC/+EomZI1TayQAsXLuzbu3fvW8LsimvayQ7hXFCYFujUyyKcJ5pDOJf5Cec4YrKDKcfw6Dlln2Z9oAGO6ra4AhHOY/g1ignnRk2aOfJiwrmhV2MCaemzxe1Dz5zdgKZmO4ZU7evrW/ODH/xgG4KZ1y//Z2G+0DUSp3ekmrAU3t0VK1bMj5GdqI4+NV4nkXAumCThXOYnnMv8hPPIYpvhHACOPZlHzyk7NX6ig4lHFvULLNz+E87tydHKJ5yX+wnn0f6U9NmS6EOfZdHd29evX78ARexa9Lq4zX/6OxTvtaVLpqrAMBAvXqCSBfvud7/7qud5wWOaVFFHHpdB4xgzL+FcMEnCucxPOJf5CeeRxbbDOQBMOMqOPeQUpdLkqYd+nxZu/wnn9uRo5RPOy/2E82h/SvpsSfShs1ng9LPtOb39l7/85cuI5tugzwH10ovWSBigR008aqbC6r25c+d2dXV1tUlmstJyMsC0k/WPohPOBZMknMv8hHOZn3AeWZwGOAeAiUcS0Cl7NemojJXbf8K5PTla+YTzcj/hPNqfkj5bUn3ok05tQEurHX2D/v7+zQ888MAGhAP5sILagj4PY2wA8U5xDwooXpCg0wE8AN7777+/IGZ+YvLfzT1KhHPBJAnnMj/hXOYnnEcWpwXOPc/DhCm8/pyyV5OOkv0+Cecx/BrFhHOjJs0ceTHh3NCrMYG09NmS7EOfZdHd2zdv3rwA4Twb9YDvtZai/gOpaD+oLugRtFDuI488Yg2gH3VCBg1N0XUA4Vw0ScK5zE84l/kJ55HFaYJzAGgaY8decopSqVnw+yScx/BrFBPOjZo0c+TFhHNDr8YE0tJnS7IPnckAZ3zAnuvPX3jhhflQw3YUjBe/90v8LZjexT3sM9XeAhWs4+mnn97d3d29XDqzlVQmC0w9MXp1EM4FkyScy/yEc5mfcB5ZnDY497+mKNsU9fMknMfwaxQTzo2aNHPkxYRzQ6/GBNLSZ0u6D338SVmMG2/HjvuBgYGd3/jGN95DOb+GHUkvVtT7SJmeYxi010D1uap25HSBtWvXLjCch8QVdZo74VwwScK5zE84l/kJ55HFaYRzALDjFqEUpZbnxu1mh0ybcC4qJpwbNWnmyIsJ54ZejQmkpc9WiT70mRbdvX3r1q0LcrmcCsZh2FYsz/eslMld3IPaoma2eM/DyOc//vGPrRlubepJGWQDLn8gnAsmSTiX+QnnMj/hPLI4rXAOAC4BnbJYQZsfwnkMv0Yx4dyoSTNHXkw4N/RqTCAtfbZK9KEdBzjTouvPX3755QUo5VY/xwYBORSvw9oCJQH0oOCwGVHNvHIBH3nkkW19fX1rdGa6Uso2AkcpTnMnnAsmSTiX+QnnMj/hPLI4zXAOgEfQKaul+tkSzmP4NYoJ50ZNmjnyYsK5oVdjAmnps1WqD33MjCwmTrLjxrGDg4MdX/3qV99FNMsGQbqKif2vI9dYEndx989UWJsf0l0A3vr16605in7c6aWrhHAumCThXOYnnMv8hPPI4rTD+dBnMSZMURWWfwcS4TyGX6OYcG7UpJkjLyacG3o1JpCWPlsl+9Bnn2/P6e3bt29/pb+/v/hIedR150Ftxc/aMgF0VVjQ3oEgMC+pefbZZ60B9KknZdB0aAw+wrlgkoRzmZ9wLvMTziOL6wHOAZ7iTtmt4p8v4TyGX6OYcG7UpJkjLyacG3o1JpCWPlsl+9CZDHDehfYA+u9///sF0BtaDShdxLA2seIcQfeHhe1NCAN178EHH9zQ39+/Kca8JCYnAxw7O0M4l0yScC7zE85lfsJ5ZHG9wDkAnuJOWa3hnzDhPIZfo5hwbtSkmSMvJpwbejUmkJY+W6X70Kee3oDxE+y4e3s+n++577773oaaZyVH0v0y/pZ1h1kLgvIgMFe1KUF906ZNCwzmvyKacYZitRDOS/2Ec5mfcC7zE84ji+sJzgHADblLNkXVWq5LOI/l1ygmnBs1aebIiwnnhl6NCaSlz1aNPvT5l9hz9Hznzp2vdXZ25nGYT0uGB/e9Ln4fBu7FtVC0KxVnmLWwtig4L9sL8fzzz1tzmvv4KQ4mTC3am0M4L/UTzmV+wrnMTziPLK43OAfAI+iU1Yq9XSWci4oJ50ZNmjnyYsK5oVdjAmnps1WjD93S6uCMc+wB9DfffPNlBJ/errouHShd1Cg+FksH0CXkr9rLEPYYWdj/9b/+1/sDAwM7NeanoppxZnboBeG81E84l/kJ5zI/4TyyuB7hHAAO9MVdMoqqnPp7Y2ybCOeiYsK5UZNmjryYcG7o1ZhAWvps1epDf+CCRmSzwuIKq1Ao9N9///2LEcGrigcQ/8+nTEnfxb24TQrrLgA3l8u5W7ZsseYo+rGnZZERrh3CudBfkSzCeaI5hHOZn3Be6jX4Lrs7CeiUvdrXaXaKB+FcVkw4N2rSzJEXE84NvRoTSEufrZp96DkWnd7e3t7++ubNmw9CDeUoeu1/D8V7/2faSuomcao9CBI4L6l56aWXFsSYn0TVOAaYdnL06iGcC/0VySKcJ5pDOJf5CeelXsPvsmcvz3Gn7FX3Xv3fNeFcVkw4N2rSzJEXE84NvRoTSEufrZp96KOPyeDY4y05fA6gra1tAUpPbwfUsB4E5lEs7P8sVEmMCq8Kk8C563v27r///mWDg4MdCcxTIho5zT1AhHOhvyJZhPNEcwjnMj/hvNQb47vs4RF0ymLpHkEnnMuKCedGTZo58mLCuaFXYwJp6bNVuw99/iVNmo7KyXXdg9/4xjf+C6X8Wsapvs9VsI6iz2NJF9CD9gCEgbgE1j0Abn9/f2Hbtm2vaM5TxXTUiRk0j1Xf+p9wLvRXJItwnmgO4VzmJ5yXemP+GHmKO2WrcoNAv8Y9EgjnsmLCuVGTZo68mHBu6NWYQFr6bNXuQ2ezwLkWjX2+Z8+ehcuWLevHYSAPu3t7FM+qGBmK9lAlcQ16WFvUwpSdMvDaa6+9FHOeEpPjAMedXr6KCOdCf0WyCOeJ5hDOZX7Ceak35o/RA9DT5cb+TVNUJdTdKR9jjXAuKyacGzVp5siLCeeGXo0JpKXPVos+9KwzGjBuvB1jnwPAsmXLFkB293Y/qIcp1i8gqWvQVZ/p7GkYWfh77rmnzcq7uR8S4Vzor0gW4TzRHMK5zE84L/UmAOcA4BaAvm4SOmWfpNefE85lxYRzoybNHHkx4dzQqzGBtPTZatWHnnOpVae35x588MHXEMGnigcUz4nJBNBVMxE001Ft/pXg9vf3F9atWzfXYL4qonGTHUw8emgvD+Fc6K9IFuE80RzCucxPOC/1JgTnw+oxvFM2RVVSkuvPCeeyYsK5UZNmjryYcG7o1ZhAWvpstepDjx3nYPZZDYbu5NXe3v7KK6+80oNoKEdAu+rz2EriJnEqqWa0DMahXhHuo48++nyF5stIM87MEs6l/opkEc4TzSGcy/yE81JvwnAO8EZxlJ3qjhhhgHAuKyacGzVp5siLCeeGXo0JpKXPVss+9LkXNoqHsa6GXnnllecRwKMB74HSVaBqk3wWqiTv4u4P98+8fy9DcXvJSnj44Ye3d3V1tSUwb4nomNOyyAp39hDOk84inCeaQziX+Qnnpd4KwDkQDUIUVQvtCznFnXAuKyacGzVp5siLCeeGXo0JpKXPVus+9PkWjX0+ODi458tf/vKbKOfRsFPbJdAddzUZA3oYlPtnXtUWeSH+0qVLrTmK3tgMHD1TMCY64TzhLMJ5ojmEc5mfcF7qrRCcAzyCTtmp7oBT3AnnsmLCuVGTZo68mHBu6NWYQFr6bLXuQ08/Lovpx9oz9vn69et/09PTU0A0kAdxbVAdfB5tJXWSgSpcsjBu0Ov77rvv5UKhcCCh+YutyDHRCecJZxHOE80hnMv8hPNSbwXhHCCgU/bJLQC9ipsXEs5lxYRzoybNHHkx4dzQqzGBtPTZbOhDz7Ho6DkA/OQnP3kO4WwaBOlQvA5r01aSp7gPvw6bcdXnyhWzbNmy/h07drycwPwloqNOyGDMuIAx0QnnCWcRzhPNIZzL/ITzUm+F4RwYuklcIR8rhqISVVeHC893AJ1wLismnBs1aebIiwnnhl6NCaSlz2ZDHzrbYNfY593d3cv/4R/+YTNkYK6C9LDVEhvSaznMWth5/i4A98UXX3wuxvwlrhlnKMZEJ5wnnEU4TzSHcC7zE85LvVWAcwBwXaBjJ69Dp+zRrq2lv0fCuayYcG7UpJkjLyacG3o1JpCWPpstfejTz2pE61h7xj5/5513im8OJ73mXNJWLOPVl+R99MJmLGpvhBLW77nnnncGBga2JziPsVQ2JjrhPOEswnmiOYRzmZ9wXuqtEpwPF+/eWoiVR1FJalfR75FwLismnBs1aebIiwnnhl6NCaSlz2ZTH3rOpfYcPXdd9+DXvva13yH4Tu0qaAdKV0miQO5XJW50r9qz4P9MBOu5XK6wevXqFyowj0YaO9HBkccNrTLCedJZhPNEcwjnMj/hvNRbZTgHgPatPIJO2aPhI+iEc1kx4dyoSTNHXkw4N/RqTCAtfTab+tDjj3Aw6wx7xj7fuXPn/IULF/ahHMqjuBWKGijex1ZcQFftUfB/Nvw6CtSVpxc8/PDDcwOmXxOdfF6WcJ54FuE80RzCucxPOC/11gDOAWD3NgI6ZYdygx727nYJ58JiwrlRk2aOvJhwbujVmEBa+my29aHnXNpk1djnL7300vMIH1Es6rR3KN6jqB2Kdi0lvbrCQD1oIVWQPrJSHn/88R179+5dkvB8GmvazAxajzC/hoJwHj1V2zYs2v5a5hDOZX7Ceam3RnAOAP29Hvr2xV1TFBVf7dtcuBpXXBDO7cnRyiecl/sJ59H+lPTZbOtDZ7PApVc0xZxqcjp48OCuu+++ewki+LPogYD3fiXakanUNehBCxW2wEF7MLwlS5ZYMya64wAnnWc2hh/hPHqqtm1YtP21zCGcy/yE81JvDeF8uKmdR9EpC7Rzi/x3SDi3J0crn3Be7iecR/tT0mezsQ995rmNOGKiPTeHW7t27dz+/v4CyuHcz6hQvEfE54lBetLDrAV9ppr5MDAvef/Vr351QaFQ2J/AvCai48/KokHzXgeE8+ip2rhh0fLXModwLvMTzku9FsA5ALTzRnGUBdol/B0Szu3J0connJf7CefR/pT02WztQ3/wKnuOngPAo48++gICeDPgtQreVeBerNigntQRdOnegyg4968YF4C3cuXKA1u3bp2X0LzGVmNz+R3dw0Q4j56qrRsWsb+WOYRzmZ9wXuq1BM4BYDdvFEdZIP8QayoRzu3J0connJf7CefR/pT02WztQ884MYvjTzI767gS6urqWvrwww9vRQBv+h5hp7v7JeVgsSp5DXoUhKtWRODF+nPnzrXmNHdg6DR3R3DGBuE8eqq2bljE/lrmEM5lfsJ5qdciOAeAve0u8rkYM0RRMdXT5WF/b/gvm3BuT45WPuG83E84j/anpM9mcx/6sivtOnre1tYWd+zzoDog/qosUTXvqRe2sP7TCspW3H333besv79/cxXnN1TjJjk46sTw1Uc4j56qzRuWJPPTsqEP9BPOI4sJ57Jild8tAB07eBSdqp2iTm8nnNuTo5VPOC/3E86j/Snps9nchz5igoNz5lg19vmB//E//sfLCB/7PAjSq65KAbofxv2vEfK5cqXlcjl39erVcys0v0Y6OeRmcYTz6KnavGFJMj8tG/pAP+E8sphwLisO8/M6dKqWCrtBHOHcnhytfMJ5uZ9wHu1PSZ/N9j70xVfYNbTa9u3bX25ra9uPYChH0esgSFctdUUAvhJ3cQ+b+aCFDjv3f+T5oYceeuHQeys09cQMxk0uP8+dcB49Vds3LEnlp2VDH+gnnEcWE85lxVF+3smdqqWCjqATzu3J0connJf7CefR/pT02WzvQzc0Ahdfbtfp7f/5n//pH/u8+FlyynsQvAPxV2mZarVvQ7rgJSvxySef3N3R0bGoJnMcIP9RdMJ59FRt37AklZ+WDX2gn3AeWUw4lxVL/LxRHFUruQVgj+ISC8K5PTla+YTzcj/hPNqfkj5bGvrQ517QiLHj7BlabWBgYPvdd9/dhgC+VLSrQFyy6hID9UrdJM6/QJI9EFEryAXgLl682Kqbxc04M4vGMUOvCefRU03DhiWJ/LRs6AP9hPPIYsK5rFjqP7DfQ09nYv/bKEqs3Ttc5POlbYRze3K08gnn5X7CebQ/JX22NPShHce+odVWr179Qi6XM7kxHIraVJLUGKnSR9BVMxsF8apTD0Y+v/fee1/J5/O9lZxpHWUbgBPOyhLOBVNNw4Ylify0bOgD/YTzyGLCuaxYN337Bl6HTlVfW9aV/u4I5/bkaOUTzsv9hPNof0r6bGnpQ590SgOOPtaeodUAeD/84Q+HL5EO5EtfG3zt/vcVA/Nh1fIU9+LXQY+y6wPWrVt3cMOGDc9Vd3bDddJ5WTiSNWnZxlc3n3BeoxzCucxPOC/1pgzOAWDbOgI6VX1tWXv4d0c4tydHK59wXu4nnEf7U9JnS1Mf2raj552dnW899thjOxEN5yoA9z9XTdUC9KCFDgLysDb3n//5n38Oi24W1zLewfSZEavSso2vbj7hvEY5hHOZn3Be6k0hnAPAjo0uXDI6VUXlBoGdW4Z+dIRze3K08gnn5X7CebQ/JX22NPWhJ0/J4PRzGmImJqvXXnvt3xB8Ezj/DeKgqFGxKxB/1YaqEoAu2esQtRKCIN0F4D366KM72tvbX63AvBvr5PNDTuewbOOrm084r1EO4VzmJ5yXelMK5wAweNDj3dypqmrbhgIKBcK5TTla+YTzcj/hPNqfkj5b2vrQl364CY4994bDwMDAjttvv/1VqIE86oZwujybqKp5irsExIvrQvd2PPfcc89Ucd4jdeSxGUyYqvhVWrbx1c0nnNcoh3Au8xPOS70phnNg6G9p61oeQqeqp81rC4Rzi3K08gnn5X7CebQ/JX22tPWhm8c4uPCyxpipyWr58uX/1tPTU4D+MGrDCloLiQO5X5UCdMkehaC9FMMQHrq345577lna19e3JuH5jqWZ/qPolm18dfMJ5zXKIZzL/ITzUm8dwDnA69Cp6mqTdIcQ4bziOVr5hPNyP+E82p+SPlsa+9DnX9yI5jH2HD53XffA/fff/x8IHkotCNiL26H4HEXtQPzVrVQ1r0Effg7aM+Ff+KC9Gi4AN5fLuYsXL7bqKPqxp2XR3Hrox2nZxlc3n3BeoxzCucxPOC/11gmcA0DHLhcH9lfk/x1Flah3n4euDsElFYTziudo5RPOy/2E82h/SvpsaexDOw5w2ZV23Rxu06ZNL7z66qs9CIZyFL1WMWjxc7Gq0kGpBqAHLVzYygm7kH/k/Re+8IXf5XK5rorOvYYyWeDED2Ss2/jq5hPOa5RDOJf5Ceel3jqC8+EJ8ig6VQ1tXiu4+JxwXvEcrXzCebmfcB7tT0mfLa196NPObMCUqbUaGEyt//N//s/wDcVVw6tFXYeuAvbitVNxSK/k2lR0uwJrolaOEtQ3b948sHr16l8lP+vmOukDWWSiz3TXEuFc6Cecy/yE88hiwrmsuFJ/s1vX8UZxVOW1Oer0dsJ5xXO08gnn5X7CebQ/JX22NPehL7NsaLU9e/a88Y//+I+bUMqOxc9SKC9+VqlioF7p3R2qhdNZMf69HP5r070HHnjg3zzPy1d2MeRqbnVwwlmHCT0t0KmXRThPNIdwLvMTzku9dQrnALBtvc5ttSnKQB6wZX0IoBPOK56jlU84L/cTzqP9KemzpbkPPW16BqfOtmtotXnz5j2DUo6Uwjl8r/3y82zFVO3zEVQL418hUSuxZGU/++yzHdu3b59X4fnW0qkXDx1FTwt06mURzhPNIZzL/ITzUm8dwzkADOz30LGTR9GpymnXNhcD/fI/TsJ5sjla+YTzcj/hPNqfkj5b2vvQV17bHHMOklV/f/+mO+64YxEUB3URfGo7Al77a4D4q1ykag+zFvVZ1J4NFai7P/vZz6y6WVzLeAczzirmHtUAACAASURBVAwZF10gwrnQTziX+QnnkcWEc1lxtf5mt/A6dKqCCjy9nXBe8RytfMJ5uZ9wHu1PSZ8t7X3oKdMy+MAFdg2t1tbW9vNcLlc8tJr0CDp8r2uqWl3RH7RS/M/+vR3KlXz//fev2rdv37LqzLpMsy7OImO4dgnnQj/hXOYnnEcWE85lxdX6m/XAG8VRlZUS0AnnFc/Ryiecl/sJ59H+lPTZ6qEPfdV1zXDsGVkN+Xy+75577pkL9Y3h/OwZBOwIaauaanEXd9UCBsF50Iryg7v3+uuv/yzBeY6t1iPMjqITzoV+wrnMTziPLCacy4qrCecA0L7VxeBAVf8fUqNEuUEPO7f6AJ1wXvEcrXzCebmfcB7tT0mfrR760EcelcF5F9p19Hz9+vX/vmzZsn4oOFH4AMJXb9VgvZbXoEtXlmqA+bK222+/ff7Bgwfbq7MYMp2meRSdcC70E85lfsJ5ZDHhXFZcbTgHANcFtm/kdehU8tqy3oVbzOeE84rnaOUTzsv9hPNof0r6bPXSh/6IZUfPPc9zv/vd7z6LYCj3t0NRo/oMiL/atVUtQJcsWNTKClrRLgCvs7Mzt3Llyn9LeL5jqXWCg+NOlx1FJ5wL/YRzmZ9wHllMOJcV1wLOh7U1ahgsijJQyenthPOK52jlE87L/YTzaH9K+mz10oeePCWD8y6y6+h5e3v7K48//vgOBI977vnag6C8+LlYVYX1Wl6DPvws3YsRNrC8C8D7y7/8y1+7rnuwGgsg1WmXZOFErGXCudBPOJf5CeeRxYRzWXEt4RwANq0uxP57pCi/Nqw6NDIr4bziOVr5hPNyP+E82p+SPls99aGvurbZ+D5bldJ//Md//Ax6N4Yb/mxYQWuoJr2QWtzFXbJXQrUCVSu25DFv3rzuLVu2/KYic2+osRMdHDc7+Cg64VzoJ5zL/ITzyGLCuay41nAOAAf6POzawtPcqeTUvs1Fb7dHOK9CjlY+4bzcTziP9qekz1ZPfehJR2Yw5xK7jp739vau/rM/+7OlKGdEPy8WcyQi3kvgvWKq5f4PyZ6KMDD3A7wLwP3Rj35k1c3igENH0RXXaRDOhX7CucxPOI8sJpzLim2A82GNHO2kqAS0blWecF6FHK18wnm5n3Ae7U9Jn63e+tBXXdNk3dHzRYsW/SyXy6lAPOqacyiew1Q1UK/VTeLCINzfVvzev9LLrjP427/92/V79+5dXMFl0Na4SQ6OnV26qgnnQj/hXOYnnEcWE85lxTbBOQBsXFWo4r9Eqt61bnn5fQ0I58nmaOUTzsv9hPNof0r6bPXWh544OYM5lzbFm2jCyuVynXfeeefvEMyIKoaUPKB4XTXVeh+IamFVezTCHmWnMMyfP/+ZCs6zkU67pGHkKDrhXOgnnMv8hPPIYsK5rNg2OAeA/T0edm/nae5UfHXucdG5p/S3RDhPNkcrn3Be7iecR/tT0merxz70lR9rQlZ/BOmKavXq1b/avHnzAGTDqqk+A9SLW1Ug98uWU9x19miUwLjvvQfAu+OOO/7rwIEDW6uzGDKNn+zgmFkZwrlQhHOhn3AeWUw4lxXbCOfD2rCKd3On4mvditLfEeE82RytfMJ5uZ9wHu1PSZ+tHvvQEyZkcOFldh099zwv98ADD/wC6pvChd1cXAXpyoiKzXyEagHokoUt3qMhgfWSL6O/vz//7rvv/jzh+Y6t4qPoJiKcJ5uflg19oJ9wHllMOJcV2wznALCR16FTCWjdysO/I8J5sjla+YTzcj/hPNqfkj5bXfahPeDD1zQh2xBv2klr+/bt85599tk9KOXBsHHQVWCuA+xVUxqGWZOs4LLr0e+8885/z+VyXdVYGKmOmOLgmFPNVjnhPNn8tGzoA/2E88hiwrms2HY4B4CeLg8du3iaO2Wuvm4P7YculSCcJ5ujlU84L/cTzqP9Kemz1WUf2gOOmODgosvtOnoOAD/72c+eQfCwan5QR9HrKBj3t1cd2mt9DfqwVAsuAffAO7qvXLnywLJly/61wvOtrdMu1T+KTjhPNj8tG/pAP+E8sphwLitOA5wP52zkae5UDK1bOXT3dsJ5sjla+YTzcj/hPNqfkj5bXfahDzV++JpmNFh29Lyjo2Ph/fff/x7KmVByJ3cUvQ4C9qpDebFsAPSwvRdRcB72pbhf/OIX/y2Xy+2r6NxrasJRDqafIl/thPNk89OyoQ/0E84jiwnnsuI0wTkAbFhJQKfMtW5lgXCecI5WPuG83E84j/anpM9Wl33oQ43jJzi42MKj588+++xj0LvOfPhzFLWp5G+vCajbAOjF8u/B8K9IFZyrPnMBuO+++27/8uXLn67a3As1+1LZbijCebL5adnQB/oJ55HFhHNZcdrgHAC69rjY18HT3Cl9DfR72LYx3n0MCOcx8gnn5X7CebQ/JX22uuxDFzVe8dFmNDTGy0hae/fuXXzPPfcsg2K4bcWjmCsl46JbIVvu4q56X9yuWoFhX8TI81133fVsPp/vTnbW42nCVAfTZ4avesJ5svlp2dAH+gnnkcWEc1lxGuF8WDyKTplow3sFuDH27RDOY+QTzsv9hPNof0r6bHXZhy5qHHeEg0uusO/o+S9+8YvHEcx+YbwIX7tfYZ9VVbYcQfd8r4NW8PBDdAQdgNvW1ta3YsWKn1ZhGbQ0+7Lgo+iE82Tz07KhD/QTziOLCeey4jTDOcDh1igzrV1pfvSccB4jn3Be7iecR/tT0meryz60r/GKq5vRaNnR887OziVf/vKX26C+a3sQtAPB3FjMmn7VDNRrDej+BY9aQRIo90O8e/fdd/88n8/3Jjvr8TRxmoNjTytf/YTzZPPTsqEP9BPOI4sJ57LitMM5AHTsdNHbVbP/l1QKlc8Bm9eaATrhPEY+4bzcTziP9qekz1aXfWhf49hxDi79sGV0DuDXv/616ui5h/CDt8UcWfyskqSm4qo1oAdJslKDvpCyPScLFy7sXbVq1TPVmXW5zrqiAZns4feE82Tz07KhD/QTziOLCeey4nqA82Ft4JjolIY2rs4jn9P3Ec5j5BPOy/2E82h/SvpsddmHVjRefX0zGps0h52qsLq6upbeeeedSxDBfYrXYcBuBZD7ZQOgS/Zq+Feo6m59gUfQAbj33HPPM4VCoa8SC2Cq1gkOZp43ROiE82Tz07KhD/QTziOLCeey4nqCc4CnuVN6WmdwejvhPEY+4bzcTziP9qekz1aXfWhF41HT7Lz2/Lnnngu7c3sUkEt50wrZAOhBCtvT4X8fNuSaC8B7/fXXe997772fVW3uhTrt0gY0tsj3UBHOa5RDOJf5CeelXsJ5ojkA0L7Nxf4ea/6HUhbLLQAb39fboUM4j5FPOC/3E86j/Snps9VlHzqg8eOfGoOMZYS4b9++d++66663UMp9cUC9WP62mncybFn90r0afjiXjnnnAnDvvffeZwqFwv5KLICpGpuB2ZdmowtBOK9ZDuFc5iecl3oJ54nmFAeuXcbT3KlobVydx8AB+Q+McB4jn3Be7iecR/tT0meryz50QOPJpzbgjHPsu/b8+eeffyyXy4WNex4F6fA9+2E9jEGrLlsAPUhBK3d45fvfhz7mz5+/7/333/951eZeqJnnZjFuUvhRdMJ5jXII5zI/4bzUSzhPNMevte/yNHcqWu+/I9+RQziPkU84L/cTzqP9Kemz1WUfOqDRcYBPfGZMvMAKqLu7e/kXv/jFRQi+Y3vYUGsqliyWFUDul02Artq7EVVT/KUMt/sfJV/kfffd93ShUDiQ7KzHk5MZumFckAjnNcohnMv8hPNSL+E80RyV9ra72NseY2Brqu6VG/Sw/j0ZoBPOY+QTzsv9hPNof0r6bHXZhw5pPPfCRhx7vOys3mrqN7/5zWO5XK6A4KPnKu7zQ7mKFeH7zBrZBOhBkuwJKQPxgIc3b9687jVr1jxbzQWQ6JhTM5hynGLYNcJ5bXII5zI/4bzUSzhPNCcsfw2PolMhWruiILp7O+E8Rj7hvNxPOI/2p6TPVpd96JDGxkYH191k39Hznp6eVbfffvtCyFhPwozF8rdZA+q2Abp/L4ekJmhviWpvigvAvf/++59yXdeqo+gAcPaVDXCKznQnnNcoh3Au8xPOS72E80RzovLXLsvHnhZVv3r/nWg6J5zHyCecl/sJ59H+lPTZ6rIPHdF4+UeaMGGSbVgIvPjii1HXnqt4zw/lxc9+WJewZ9Vl3zdRKtUKVX0ZQOkXE3ot+ty5czvXrl37iyotg1iTjnZw3Oyhr4RwXqMcwrnMTzgv9RLOE82R5O/v8bB9I4+iU+Xq7/OwZV34b4NwHiOfcF7uJ5xH+1PSZ6vLPnRE47jxDq68tjlecAXU29v73uc///nXEX7tueRyZ9UasArI/bIZ0MNWnH9vh+TUhpIv9mtf+9pTrusOVGC+Y+nMDzUgI778g3CeaA7hXOYnnJd6CeeJ5ujkr3mHgE6Va/WyPNyQWxQQzmPkE87L/YTzaH9K+mx12YcWNH7shjFoHiMf8rla+t3vfve4xrXnnuJz+J79sG4tpNsI6P6VFbVHxP8liK5F//Wvf92xbt26X1ZuMczUeoSDU+ZICJ1wnmgO4VzmJ5yXegnniebo5m94T3adMTW69P7S4JvDEc5j5BPOy/2E82h/SvpsddmHFjROnZ7BRZc3xQuvgPr6+tbceuutryGa7aK4UCLrQN1GQAdkK1a1Z0TrKPrXv/71J13XHUx21uPrtEsa0NwatieLcJ5oDuFc5iecl3oJ54nmmOTnDnrY+D6PolOHtW+vi53b1L8JwnmMfMJ5uZ9wHu1PSZ+tLvvQwsbrP9VScv8rW/TSSy9Jrz3XGWKtmBl1Ib6qshXQ/Qpaof4vCCj/sgKPov/yl7/s2LBhw6+qsQA6amwCTr8s6Cg64TzRHMK5zE84L/USzhPNiZO/5l35WNdU/ev9d/LyvxnCucxPOC/3E86j/Snps9VlH1rYeMppDZh9VvAwz7VSX1/futtuu+1VyK89D4Nxv6wEcr/SAOiqFenf6zH8rH0t+l/91V/9i+u61p0kefK5WYyf7N+lRThPNIdwLvMTzku9hPNEc+Lmb1tbwIH9qfh/S1VB771TvsOGcB4jn3Be7iecR/tT0meryz60sDGTAT7xGfuGVQOABQsWPN7f35+H/M7tQdeeBwG79Z0GmwHdv/L8K7z4tepLCdvjMnLDgWeeeWb3hg0brLsW3XGGhl07LMJ5ojmEc5mfcF7qJZwnmhM73wNcF1i3jKe5U0D7dhdde0rvDkc4j5FPOC/3E86j/Snps9VlH1pj5Z13UROmHye+K3XVtH///vWf+9zn5iOa5YKgHQj+eoLY0jrZDOhA+Ir2fxYE5/49LP7P3D/7sz97PJ/P9yY+9zE1fWYGRx2fAeE84RzCucxPOC/1Es4TzYmdX1S4mqe5Uygf+5xwHiOfcF7uJ5xH+1PSZ6vLPrTGymtscnDtTfYNqwYA8+fPfyzg6LkKyqMg3d8G3+fWynZA98u/0otfF39Z8L1XfaEjjxdffLHrnXfe+XE1FkBX51yVLbt5Q11uWKqVQziX+QnnpV7CeaI5sfN9hXu2u9jnO3JKjTJ5pTtqCOcx8gnn5X7CebQ/JX22uuxDa6w8D8AVH23CERPsQ8Du7u53P/OZz7wMBashnOuCIL1YVgO5X/Z9O8EKW9n+50goL2rzALi33HLLzwcGBnZUZtbNNXFqBsefcfgUlLrcsFQrh3Au8xPOS72E80RzYucHFK5+l6e5j2Zt2VBAX8/Qj4NwHiOfcF7uJ5xH+1PSZ6vLPrQmnI+f4ODD19h59Pxf/uVfvu8b91zFcMVtKigPg/XUQHoaAN2/Mv1fQPHroC9J9SWWXI++efPmgfnz5z9coWWIpTOvaEBDU51uWKqVQziX+QnnpV7CeaI5sfNDvuM176rv3k2NDg2PfU44j5FPOC/3E86j/Snps9VlH1oTzgHgmhvGoKnJvnHVdu7cOe/ee+9dhogRuBB89BwI/pqCWNJapQHQgfAVr4L04fdRR9FLrmu4+eab53V3dy+vxALEUcs4B6dfFjAMQpo3LNXKIZzL/ITzUi/hPNGc2PkR33HvPg87t/A099GoQh5YuyJPOI+TTzgv9xPOo/0p6bMRzoc0/bgsLrysKd7MVECe5+UefPDBhxF93bkU0v1t8H1uvdIC6H6FfQnFXyIQ/WWO/BhyuVzhqaeeeqgaC6CrUy9owMSpvq8rzRuWauUQzmV+wnmpl3CeaE7sfOF3PHwUlRpdWv9eHgMD8f6QCOcx/IRz82zCuUm0VinhfEiOA3z6v7WU3dfKBq1Zs+bnDz/88HaEHz2P4jk/kA8rFUDuVxoBPWxF+78gyRH0ki/8T//0T9/duXPnS5WZdXM5DnD+NQ2H/7DSvGGpVg7hXOYnnJd6CeeJ5sTO1/iO1y3PI3cwlf+LqRha/lauvJFwLvMTzsv9hPNof0r6bITzw7r4Q004/kT7hlXL5/PdX/rSl57A4SGwi3ktDMT9zBcG66nrGKQJ0P0rN+gLGW4Lu+Nf0CkUBQDugw8++EPP8xT/8WurydMzOPncbLo3LNXKIZzL/ITzUi/hPNGc2Pla37GH3KCHtct5s7jRpN5uD5vX+b5zwrnMTzgv9xPOo/0p6bMRzg9r/AQHH795TLwZqpCWLFny+KuvvtqNcj6rxNHz1IB6mgAdKAXw4md/Tdgj7Ki6B8B9+OGHt65du/bZCi1DLJ19RSNaxkWfn2LlhqVaOYRzmZ9wXuolnCeaEztfE86HtWqJdftWqQpqxZIcvOJbDxDOZX7CebmfcB7tT0mfjXBeqhtvacGYMfad237gwIEtN9988y8QPKSahOPge/bDehgzWqu0AXqQgvaihH2podc5fOUrX3kin8/3VHEZRGpoAj5wdcAN4w7Jyg1LtXII5zI/4bzUSzhPNCd2viGcA8Du7S46dvJmcaNCHrBiSb7kvYY1VjHh3KhJM0deTDg39GpMIC19NsJ5qWaf1YBz5jTGm6kK6cUXX/zf7e3tg9C79hxQQ7xfqQJyv9IM6FF7RKL2voQ+5s+fv2/JkiWPV2zuY+i407KYPlP91Vm5YalWDuFc5iecl3oJ54nmxM6PAefDWrWEN4sbDdq8roCerkM7YwjnMj/hvNxPOI/2p6TPRjgvVVOTg5s/1xJvpiqkrq6upX/4h3/4CtSnrwfB+XAbUM6BKlhPLaSnEdB1gFzVHnbqRAmk33LLLb84cODA1sosRjyd97FGNPh2iFm5YalWDuFc5iecl3oJ54nmxM5PAM6BoTHR8zzTve41cnM4wrnMTzgv9xPOo/0p6bMRzsv10U80Y9JkO1Hvxz/+8UO5XG74xnDDz6pT3Ivfw/eZH8hRVBP23nrZdzs/uRzFs/+BgM+C2ksevb293oUXXrhn9uzZH6vUQpiqsdlBJgu0bxrakWTlhqVaOYRzmZ9wXuolnCeaEzs/ITgHgEIBmHBkBlOm29kxoeJroN/D7351EJ7GPQEJ5zH8hHPzbMK5SbRWKeG8XNOPzeIP/rjVymHVtm/f/tvrrrvu5yiFcz+kB42B7od1KNr9n6VO9dZ7Cdqromr3751Rnlrx2c9+dsG+ffveqeIyiHXqhUNjo1u5YalWDuFc5iecl3oJ54nmxM5PEM6HtVI19BZVN1q1NI+CxldMOI/hJ5ybZxPOTaK1Sgnn5XIc4NO3tSBjIeW5rjv413/914+gHMqjGA0RdakGcr8s/Oq0FfWF+L9kEZgPP3K5XOGJJ574XsXmPoYcBzj/2oZYe8cI50I/4TyymHAuKyacywrjwLnnAbu2uOjczZvF1atWaOyAIZzH8BPOzbMJ5ybRWqWEc7VsHfMcAFavXv3MY489thPl15WHHT0froOvLUiph/Q0A7oEyFV7VIK+9KA7Brpf/epXV27fvv3FCixDbE2ensHM88z+CAnnQj/hPLKYcC4rJpzLCuPC+bBWvcWbxdWjdm1zsUd4p37CeQw/4dw8m3BuEq1VSjhXy+Yxz3O5XNcXv/jFHyP4dPao09qL7+QexnoIeJ8apRnQgfIvRPVFqIDdD+VRn7sPPPDAI67rWnnOpHRs9GIRzoV+wnlkMeFcVkw4lxUmBecA8P47eRTI6HWn5Ytl/4oJ5zH8hHPzbMK5SbRWKeE8WJ+0dMxzAFi0aNH/XbhwYS8UnBXwCGK4IN5TPadSaQf0Ynm+1/49KmGPyB/Jo48+un3NmjU/rfxi6KuhCTg3Ymz0YhHOhX7CeWQx4VxWTDiXFSYJ5wBw8ICH9StJ6PWkXA54/93o75RwHsNPODfPJpybRGuVEs6DddqZDfiApWOe9/f3b7r55pt/BT0IV0G5BNZTr3oCdCD8C1S1DcN5GKSPfPaFL3zhx7lcbl9VlkRTYWOjF4twLvQTziOLCeeyYsK5rDBpOB/WSo6JXldasyyPwYHw3wXhPIafcG6eTTg3idYqJZwHq7HJwacsHfMcAObOnfv9vXv35iE7ch4G7ip5vufUqx4AXfVlBLUFPcIgfeQ6iYULF/a+9dZbjya9AEnpfMXY6MUinAv9hPPIYsK5rJhwLiusFJwDwI6NBezr4M3i6kVRN4cjnMfwE87NswnnJtFapYTzcH30+mZMOtJOrOvs7Hzrtttuex16UO5vg+9zCbCnVnZ+k/ryQl6rvsgwWFf9KEYA/sYbb/xVf3//xootSQy1HuHgjA+qT3UnnAv9hPPIYsK5rJhwLiusJJwPaxWPoteFujpcbNsUPPA54TyGn3Bunk04N4nWKiWch+voY7K44qPNejNVPXmPPfbYQ7lcroDoYdUkp7yXTT/gOdWqF0AHZF+IBMqDhl0rAHD37t2b++lPf/qdxOc+Ic06NDZ6sQjnQj/hPLKYcC4rJpzLCqsB5wCwqi2PQjDXUSnR8sX5ZLYXhPPoVsK5cTHhPIZfpy7N/ycThHPHAT5j6ZjnALBly5YX/vIv//J96J3WHgTqULwH4n/N1snSr9NY/i+v+LVqD4vqhxD5A7rrrrve3rJly3MVXRJDOQ4wp2hsdMK50E84jywmnMuKCeeywmrBuQdgoN/DxlU8ip5meS6wqk19ejvhPIafcG6eTTg3idYqJZxH6+LLm3D8SXaOeZ7P57vvvvvuH0BxXy/Fw0M5qI86MB9WvQG6X6ovzv+lD1+cGHb03P/DKdx5553ft/WGcZOnZ3DaRQ2Ec6mfcB5ZTDiXFRPOZYXVhPNhLV9MQE+z1q3MY39v+ZdPOI/hJ5ybZxPOTaK1Sgnn0bJ5zHMAeO211x6aO3duJxT39YKasfyMpoJy+N7XJbDXM6D7vzD/Xpji56AbEyhvFgfAmzdv3r4FCxY8VMkFiKMzP9SASdPMv17CeYxsyzpnNe8wiRsJ54bRFcmJnW8RnAPA9o0F7G3nzeLSqqVvlB89J5zH8BPOzbMJ5ybRWqWE82g5DnDLba0Y02LnmOddXV1t11133QtQA7h0iLVhqdrDoD31qkdAD/rC/F9q8Y8k7H0guN9www1zOzs736rYksRQJgNcfEMjsvLh0UdEOI+RbVnnrOYdJnEj4dwwuiI5sfMtg/NhLVsYfgdwyk7tbXexdWPpTQQI5zH8hHPzbMK5SbRWKeFcposub8Lssww6+VWQ53m5v//7v//2oRvDqY6cq7hKAuplUZVahlrLzosWkpGjePa3wfeZqsb/2Ui767ooFAorP/rRj37acRzr1mVzq4OGRmDXRvlRI8J5jGzLOmc17zCJGwnnhtEVyYmdbymcA0DXHhdnXdyIhkY7jzhQar0xbxDt2w7/HyOcx/ATzs2zCecm0VqlhHOZpkzN4PYvtSKbtfN/2YoVK574/Oc//xIOg3nQqe1hN4aD772qvW5Vj0fQwxT1RRf/QKJuZuACcP/pn/5p8/Lly5+o4jJoadaFDZh2guxrJpzHyLasc1bzDpO4kXBuGF2RnNj5FsM5AORzHHItbRoc8LCq7fB3RjiP4Secm2cTzk2itUoJ5zI5GeBzd7SisclOOD9w4MCWT37ykz9B+ZBqYWBefD8wFacVS9qWao0GQPd8z6rPi38kQDSkF7cVbrrppif7+/s3VWLmk9BFn2hE05jwP2TCeYxsyzpnNe8wiRsJ54bRFcmJnW85nA9r+aIcPF6KnhqtWJJHbnDo2yWcx/ATzs2zCecm0VqlhHN5ztUfb8aME607aXdEzzzzzLc3b948gOD7eAWd1j78n9nPbSpYD3pdN7L3G05GqtPVdeocX43/FHgHgNPd3e2edNJJG84///xPxp/l5NXY7KD1CAfb1qh7pYTzGNmWdc5q3mESNxLODaMrkhM7PyVwDgCDA8CU6RlMPmo07J9Ov37784MY6PcI53H8hHPzbMK5SbRWKeFcnjPjxCz+8PbWkaGUbdPWrVtfuOqqq36K6NPag+7cHnYtOlC+uuoSzoH6P4Ku2gsz/KzaM+N/SO7ubv3Y6ABw/BlZHH96+f4YwnmMbMs6ZzXvMIkbCeeG0RXJiZ2fIjgf1rKFPM09Ddq0poCuDpdwHsdPODfPJpybRGuVEs7lOU1NDm69oxUZS8ktn893f+UrX/k+ZHBucmO4IKarS1n6NVdEUV92GKQHnYpRcuqGzWOjA8CcaxvQMv7wbjfCeYxsyzpnNe8wiRsJ54bRFcmJnZ9COAeGhlzr2MXz3G3X0jdyhPM4fsK5eTbh3CRaq5RwrpfziU+PwZSp9mLbq6+++n3fmOcSKNe5MdyoUr2f4g6oT2uPalOeyh5S5wBwNmzYMHj55Zd3zZw588pYc1whZRscTJyawZaVBcJ5nGzLOmc17zCJGwnnhtEVyYmdn1I4H1ahAJx8up1D1FBAd6eLl587GKu3Tzg3atLMkRcTzg29GhNIS5+NcK6XM/vMBtz42Rahq/rq6upqO/fcc//Jdd3iI+eqo+heNWmqggAAIABJREFUyHMYjHu+57qXvbtikpPqywxq8+/VAcJ/SGV7hmweGx0App2QwSlzZPtl0rKhD/QTziOLCeeyYsK5rDAtcO55wOp38hjoHzX/61OndxZq3MyPcB7dSjg3Liacx/Dr1KX5/2QF4XzsOAef/aNWoav6ChjzPGpYtaC7tfvbooC9bjUajqAPK+gIeVCd9IZxqRobHQCmnZDFtjUFHOwPrknLhj7QTziPLCacy4oJ57LCNME5AHguMKbFwTEW3w13tCqfB37z84PI5wTFhPPoVsK5cTHhPIZfpy7N/ycrCOeOMzSk2owT7P0/pRjzXHX03FM8Bz2geK16rmuNhiPoQVJ9wcU/kLDrJML2CFk/NnomC1xyQyMyAX/vadnQB/oJ55HFhHNZMeFcVpg2OB/WskU5uLwU3Tq9tzQnO7uBcB7dSjg3Liacx/Dr1KX5/2QF4RwAzr+4CWed2yh0Vl8BY577h6P2c5MEzv0aFVBerNEE6F7Ia9VeG9XD/+MKOn3D+rHRJ03L4KzLy6+/TMuGPtBPOI8sJpzLignnssK0wjkA9HV72LCKd3S3TUvfEBw6J5xHtxLOjYsJ5zH8OnVp/j9ZYTiffGQGN//BGKGzNgoZ8zzo+nMVS6HodRCTjTrZe85EZeQ/Td3fpqpV3TAu6POR97aPjQ4AU47NoH2zi/6eod9+Wjb0gX7CeWQx4VxWTDiXFaYZzofV3wecMYc3i7NF2zcVsGhBBKATzqNbCefGxYTzGH6dujT/n6wwnGcywO1fbsWUqfZiWsiY58WvPaiPqKtg3C9V+6iB9dF0BB0o/WI9RZu/tnhvj//HFXkk3fax0R1n6FT3xub0bOgD/YTzyGLCuayYcC4rrAc4B4AdmwrYs4PnuduiyKPnhPPoVsK5cTHhPIZfpy7N/ycrDOcAcMXVzTjpFHt3HEeMee7npygwDwP2oNd1r9EG6IAMyKMeUWP6jZzi8aUvfekHNo+NPnaCg3M/Eu/6FsJ5jCzCeamXcJ5oTuz8OofzYb27UHI3MqrS2t/rYe2KkEsOCOfRrYRz42LCeQy/Tl2a/09WAc6POS6La2+0+9T211577QfCMc+jrjkPg/ZijSo4B0YnoAPlP4CgvTiqNtWR84LvMfLDfPHFF7teffXVhyq5MHF18jlZHDfL7DQawnmMLMJ5qZdwnmhO7PxRAucAsGZZHgf2j7r//9bp3TdzKBQCPiScR7cSzo2LCecx/Dp1af4/WQU4b2gEbv3vLcjae2Y7urq62q677rrnIIfzKFD3K4jRRpVGK6AXK+yLD4LzqLH8Sn6g119//dy9e/e+WakFSEIXfrwBLeOCLsdXi3AeI4twXuolnCeaEzt/FME5ABTywLuSG5NRFVM+PzT2uVKE8+hWwrlxMeE8hl+nLs3/J6sA5wBw3SfHYNp0e+nc87zcd7/73eExz3XHO5feGI4CAX1Ykh+M6nPV8AFld3TP5XL5e++992/y+Xxv5RfFTM0tDi67qREZ4S+CcB4ji3Be6iWcJ5oTO3+Uwfmwlr2Zx+BB9g9qpRVLcuhXncVAOI9uJZwbFxPOY/h16tL8f7JKcH7KaQ244qPNwinURsuWLXv8wQcf3AD5kXM/T0UdSfc/j1rZu5umOpLe1b3sLu0Iv6N72WP58uUHLr744h2zZs36aELznrjGTnCQbQR2bQy/YRLhPEYW4bzUSzhPNCd2/iiFc2DoKPqYFgfTTxjt/xarL88D5j5zEAMHfF8g4Ty6lXBuXEw4j+HXqUvz/8kqwfmECRn8yb1j0dSkdyZrNdXd3b1szpw5Dxw4cCAP9c3hgu7cHgbkURq1oD7aj6B7Aa9VdapH0BACyscNN9wwb9u2bb9NeBkS1eyLGjBjdnAHlXAeI4twXuolnCeaEzt/FMP5cP7SN0KugaYqprUr8ti317djmHAe3Uo4Ny4mnMfw69Sl+f9kleA8mwU+f1crxmpeZlpNua574Fvf+tY39+7dm0P0qe1hkI6i135YD3oelRrtgA6U/wAkPyBtOMehH/Stt976DwcPHtxVqYVJQhdf34jxk8s3FITzGFmE81Iv4TzRnNj5hHMAwP4eD+8vDbmLOFURvfWq79pzwnl0K+HcuJhwHsOvU5fm/5NVgnN4wCc+3YITTrb7zK3f//7333vooYe2QH7H9qi7twdpVEN5sez+RVRXqtPVoz5zQuqUp71v2bIld+KJJ649//zzPwH16fQ1VyYLTDshi03LC3APHdQgnMfIIpyXegnniebEziecl2hfh4dzLmmEY+XWuf60dUMBb84fPNxAOI9uJZwbFxPOY/h16tL8f7KKcH7uBY34xKftHlJt9+7dvz/vvPO+77ru8FFz1dFzT/G++BF2FB2+1xR4BF0q/w8oaM9Q0F3eSx533nnnkjVr1vy0mgugqwlTHFz48aHx0QnnMbII56VewnmiObHzCedl6trjYsMqHkWvlkqOnhPOo1sJ58bFhPMYfp26NP+frCKcT5uewS2fbxFOpTbK5XJdX/7yl/9WcNf24fZiHtI9tb1Yox7WCejl8v9gwn5QSgCPeBQAFK655ppH9u/fv77SCxNHJ5yRxSnnK06yIJzL/ITzUi/hPNGc2PmE88DGJf5TrqmKqKPdxcbVh3aGEM6jWwnnxsWE8xh+nbo0/5+sIpw3j3HwR38yFk3Ndp+q9dxzz/3tr3/96w7ondoedBAzTF7A61ErnuJeqrDT1YPu2u6vUX3uz3C6u7vd5ubmZVdcccWNjuNY+z0cfVIW7Rtd9Pce+nshnMv8hPNSL+E80ZzY+YTz0Mb9PR6OPSmLIyZxH3Yl9dpvB7F7h0s4l7QSzo2LCecx/Dp1af4/WUU4dxzgc/+9FSef2iCcUm20efPmf7/sssv+FeVHycNObw8C87D2YhHOD4m9j1IF7cGR/NCKH5IbyBW++c1vrnn77bf/v0otTBLKZIAPfqoRza0O4VyaRTgv9RLOE82JnU84FzW+zaPoFVVfj4f3luYI55JWwrlxMeE8hl+nLs3/J6sI5wBw+VXNOOf8RuGUaqOBgYHtn/70p7+HojN/Ef8IehCcB8H6qBYBPVo6UB71w/XXFT784Q8/1dXV1VathTFR63gHl90ov2kS4dzQq1FMOJcVE85lhYTzcm1eW8CeHa76Qyq23n49h4LiUn/CuVGTZo68mHBu6NWYAOFc6K8DOD/xlAZ84jN23xQOgPujH/3or9ra2vqQHJgHiVAeIGtPra6xwu7grmoLOtXd7/NnOLlcDvv27Wv7+Mc/fmMmk2mKMc8V1biJDpwM0L45vMNKODf0ahQTzmXFhHNZIeE8WIMDwCln2X0aYho1eNDDb545WAbohHOjJs0ceTHh3NCrMQHCudBfB3A+7ggHf3LvOIxpsfu685UrV/74hhtueAHysc5NT20nnIeIgK6WFMb9nrBh11Q1DgDn7bff7vvgBz/YMXPmzCtjzndFNXVGBl27XPR2xtuABYlwHl1MOJcVE85lhYTzcHXucTH73EbrO1RpU9t/5bH+vVI6J5wbNWnmyIsJ54ZejQkQzoX+OoDzTAa44ytjMf1Yu7Grt7f3/QsuuOCv9u/fn4P+TbB1T20vFmHdJ57irpaneC3dG6Q65SPoWvSRvVM33HDD3F27dr1coeVJTJd8shHjJpZ3Vgnnhl6NYsK5rJhwLisknEfLdYG23/Na9CTlFoC21wdL2gjnRk2aOfJiwrmhV2MChHOhvw7gHACuu2kMZs6y+2ws13UHH3zwwb9qb28/CMXoUyg9ou7nnTAgV0nFWVSRCOjBCoN0f50Kzv3tocOu5XK5wh//8R8/ODg42JH8oiSnpjEOLv90I7JF2xnCuaFXo5hwLismnMsKCedy78q3c+jvY/8hKb33Th693YfXJ+HcqEkzR15MODf0akyAcC701wmcn3VuI668plk4tdpp0aJFP/jOd76zAeWMouKcMEiHoi2Io/jPNUB2n2thh/ynrKtObfe/1znVfeSxYcOGwdNPP33D2WeffX0SM14ptYxz0DLOwfa1LuHc1KtRTDiXFRPOZYWEcz2v5wLZLDBjJv9dJqHf/GxgZIcH4dyoSTNHXkw4N/RqTIBwLvTXCZxPmZrBF/50LBoa7L5MqqOj482zzz77H13XLT5KHnUNehCkh0G76plSiEfQ9SXZO+T/gUqu2ygAcG+77baF69evf7YqSxJDJ38gi5M/EK/DSjiPLiacy4oJ57JCwrmZd9mbeRwcYF8irtavyqNj19CNRgnnRk2aOfJiwrmhV2MChHOhv07gvLHJwR//SSvGjLEbzvP5fM9f/MVf/E0ulxsGcv/p7Kph1lQM5OchlfiPVCgCup5Ue39UwO6HcymoFwAUbrrpph/09/dvrvTCxNWF1zZi8tFmPyHCeXQx4VxWTDiXFRLODb0ADg54vBY9Ab3x0tC154RzoybNHHkx4dzQqzEBwrnQXydw7jjAZ/5bC462/KZwAPDiiy9+++mnn26H/Eh50BDSQUwE32tKIPt/OXbI9K7uKq//NHe/x9mzZ09h0qRJKy+99NIbHcexdieKkwGmn5zBxhWucjzbIBHOo4sJ57JiwrmskHBu6C3Snp0ezr6oAQ2Ndh8NsVXrV+Wx5LUc4dysSTNHXkw4N/RqTIBwLvTXCZwDwCVXNOEj19l/3fm2bdt+e+GFFz6O8NPaPcX7KCj3t/tFWI+QtfBnmTzFa+kP0r+HSbUHquwP4/7771+5bNmyxyqxMElq7AQHH/pUIzLCXT2E8+hiwrmsmHAuKyScG3p9Gjzo4W0eRTfWG/MGCedmTZo58mLCuaFXYwKEc6G/juB8xolZ3PTZFuEUa6eDBw/uuvXWW/8B6ru0S4dQ87cHScVRVIgI6HKFQbq/TvXDlZw6UgLpV1999Y/37dv3TuJLkrCmnZDBRdc1RtYRzqOLCeeyYsK5rJBwbugN0LsLeUd3E61bmceu7a6otubbBnGjhp9wbp5NODeJ1iolnCeXM3FSBrd/eWzJSEeWynvqqae+9frrr3dDdp8sT/HaD+sIeF+SW6HlqTvxFHd9mdzVvbhWdbq88vMDBw54W7ZsWXTjjTden81mrd4dN2laBq4L7Nmq7oQRzqOLCeeyYsK5rJBwbugNkVsAPBc4YRb/dero+WcGsL83em3XfNsgbtTwE87NswnnJtFapYTz5HLGjHHwJ38xFkceZf+xz/fff//Ja6+99tfQB/Ph94AaylVwHgTrVIjYyzBT1PXn/rrh19pDr61YsaL/+OOPf++88877hOM4Vl/8ePSJGfR0eujeU/o3SDiPLiacy4oJ57JCwrmhV6A9O12ceUEjmpqt3hxbo7Ur86JLA2q+bRA3avgJ5+bZhHOTaK1SwnlyOZkM8MdfGosTZ9p/6Lyrq6vtvPPO+9aBAwfyKL9Te9A16F7I67BVSSg3lP27eexU2N6h4kfYXQ4lp5S4ANy77rprydtvv/1wZRcpGV16QyOOOu7wz4pwHl1MOJcVE85lhYRzQ69QhTyweAGvRZfqjXmDkTU13zaIGzX8hHPzbMK5SbRWKeE8uRzHAW7+wxacdqb9cD44ONhx1113fW3v3r05BEP58Hs/q6i4RsU/8L2mDERAr6z8P2JjUL/sssv+tb29fUG1F0BXmSxwxS2NGD/JIZwLignnsmLCuayQcG7o1cn2gBVv5dDbzb5HlNauyGP3jvBrz2u+bRA3avgJ5+bZhHOTaK1SwnmyOR+6uhmXXNEknGrt5Hle4YknnvjaL3/5yw6E3xBOxSZRUO5vL4uvwCLVtQjo8eX/QQb9gIPGEVTdJK7skcvlCrfccsvfHDhwYGulFyiumlscfPgPmtDUYnYKKOE8Rj7hvNyf5k6HRiHh3NCrk31oAoU8sHh+9JHh0a7hcc+DVPNtg7hRw084N88mnJtEa5USzpPNOevcRnzi02OEU62tFi9e/P2vfOUrS6EH536GCXtA8ex/TQnFa9DjKeya8qBayU3jVNejY8uWLbmmpqalH/rQh25wHMfqc2maWxwcdWwGm1YWkun8W9Y5q3mHSdxIODeMrkhO7HzCubDRuCzY75tAxy4Xp5/XiGbDHZH1rrUr8nj79eBLAWq+bRA3avgJ5+bZhHOTaK1SwnmyOTNOyOK/39OKbNb+/wE7d+586ZxzznnIdd2oodSKT2/3g7n0uvNiEc4NRUCPr6AbwYXd3V1193eVvwzSX3nllc4PfvCD7TNnzrwq5nxXXGMnOBg3MYOtqwuiesJ5jHzCebk/zZ0OjULCuaFXJ1v1+/SAwQEPM8+wel9pzfTC0wPYHzAkXc23DeJGDT/h3DybcG4SrVVKOE82Z9LkDL503zi0tNoP5/39/Zuvu+66+7Zu3TqAgLN0oT5iHnbduf+BkGfKQDzFPb78P8CgH6b/x6z6wZeMgx70uPbaa+du3LjxF4kvSQV00llZnH15dAeWcB4jn3Be7k9zp0OjkHBu6NXJDpnAqqV57OuQje89mrRmRR67dwYMuakzIcu2/8GlhHPjbMK5SbRWKeE82ZwxLQ6+8KetGHeE/XDuuu6Bv/u7v7v/rbfe6kU0X/jBPAjCJXBOxRQBPRmF7T1SPVR3d1ftuQra01W46qqrvtfT07OqokuVkM65ohEnnhV8sgbhPEY+4bzcn+ZOh0Yh4dzQq5MdMQHPBd58mXd09yvozu013zaIGzX8hHPzbMK5SbRWKeE82ZxsFviju1oxbXo6TkB+8cUX/+7BBx9cDzmYR90cjnBeJaXjF5YOJXE9elBN2aO7u7vQ0dGx+Prrr78+k8lYf4eK407JYvcWF/t7Sv9+Cecx8gnn5f40dzo0Cgnnhl6dbOEE9ra7mHV2A1rG2n80pRpaszyPtv8q32lR822DuFHDTzg3zyacm0RrlRLOk81xHOBTt7bgnDmNwinXVuvWrfv5JZdc8iTU15gHtUmAXCLCekwR0JNTGGCH1Ztej+60tbX1zZ49e+3ZZ5/98ZAcK+RkgBmzsti6poDBA0NthPMY+YTzcn+aOx0ahYRzQ69OtuZ6OrAfmHU2r0WHBzz/9AD6fdee13zbIG7U8BPOzbMJ5ybRWqWE86RzgA9/rBlXXdssnHJt1d3dvfyiiy76f3t7ewdRfq255Lrz4rYwWPc/+19ThuIp7slJ9/9L1B+Aak9X2U0dbrvttoXvvvvu/01oGSqqphYHV/1hM5pbHMK5+SQJ56pJprnToVFIODf06mQbrKc1y/PYuYXXoi9/O4c9u0rXQ823DeJGDT/h3DybcG4SrVVKOE86Bzj7/PQMp5bL5br+/M///H9u3759ABH3tIL6dPbi1yh6TTivogjoyUr1I1X9wIvf61yPrjotpXDZZZf9qKOj443KLFKyGj/JwRW3NCGrOnfDss5ZzTtM4kbCuWF0RXJi5xPOhY3GZcH+GOvplRcOjuquSS4HvP6fpdee13zbIG7U8BPOzbMJ5ybRWqWE86RzgONPyuLWO1qFU6653KeffvrrTz75ZDvMrjsPYhNAvYYI5xUST3GvjCp5PXqZcrkc3nnnnYWf/exnr2loaBivO7PV1tgJDsZPymBL8fBrlnXOat5hEjcSzg2jK5ITO59wLmw0Lgv2x1xPfT0eJk3JYMrRo3O/96IFg1i/6vA2vebbBnGjhp9wbp5NODeJ1iolnCedA0yeksGf/MU4jGmx+irSEbW1tT1y/fXXz0X4UGqq8c6DwNwP50GwTjhPWAT0ysl0fPSwaQVdk44NGzYcnDBhwrJLL730BsdxrP9eJ07NwHEctG92reuc1bzDJG4knBtGVyQndj7hXNhoXBbsT2g9tW9zcc7FjchYvwVOVvt7Pbzw9EEUDvF5zbcN4kYNP+HcPJtwbhKtVUo4TzoHaGlx8KX7xmHSkenY6bp79+7XzjjjjH9wXTdoOLWw686l454j5JlKUKOsG1F1qcB6+Dnq5nCqmtCbxs2bN6/jIx/5yN4TTzzxisSWoIKadnwG+/d56Gov/dsmnMsmSjg3iq5ITux8wrmw0bgs2J/geho8CDQ0ODjupNH1r3X+84PYuWWIzmu+bRA3avgJ5+bZhHOTaK1SwnnSOUPDqd3xlbGYcWI6tuUDAwPbb7rppns3bNjQj+ij51HDqCGivfiZqpDSsVsovQrb2xT20LmpQ8njyiuv/PctW7Y8X9GlSlCX3NCE42cf3gASzmUTJZwbRVckJ3Y+4VzYaFwW7K/AenrrlUH09cSds/Rozy4XK5YMDatW822DuFHDTzg3zyacm0RrlRLOk84ZGk7tM7e14JTZ6RiZw3Xdg9/73vfuf/XVV/fBnB/8DEI4r7EI6NWTBNKD2lU3dFDtISsAKFxzzTXf6evrW1Ph5UlEjgNc/qkmHDMzSzgXTpRwbhRdkZzY+YRzYaNxWbC/EuvJA3KDwBu+m6XVs1554SA89ZVKwSKcGxcTzg29GhMgnAv9dQrnn7xlDC64tEk49dprwYIF3/7617++GvHu1q7iEYkI6xVSOs7dSLfijI8umUbZY+/evYX9+/cv/tjHPvaJTCZj/aCNjgMcPzuL3Vtd7O82+1snnAtyCOeJ5sTOJ5wLG43Lgv0VgvNh7dnlYubpDRh7RDpuLGSqjasLeOOlwdpvG8SNGn7CuXk24dwkWquUcJ50zpCuvXEMrrzG+m7ziDZt2vTrOXPm/AjmR81V152j6HXx++Jn/2sqYRHQq6Owu7r7rzWX3Fwu7KZzAIBFixb1zpo1a+3ZZ599neM41vcSMxnghNMbsGuTi/5evb95wrkgh3CeaE7sfMK5sNG4LNhfYTgfVuceF2de0CgPS5k8D/j3fxnA/v3xVijh3DheS4RzgZ9wLvPXKZxfeU0zrv1kOsY6B4De3t73Lr/88v/Z2dk5iOCzaoOGVvN8DyjaCOc1FE9xr45UP+qwvVTFD9XeraBx0Usef/RHf/TG66+//p3KLFLyamgCrr61CZOmyn+WhHNBDuE80ZzY+YRzYaNxWbC/SnDuwcO2jQWsXZGXB6ZMyxbnsKfdlRsI58bFhHNDr8YECOdCf53C+aUfbsL1n0oPnA8ODnb8+Z//+f+zbt26AZRf9ho25rmfLYLe+0U4r7II6NWTFNKD4DzoDy4U1K+44opfrV69+l8rtlQJq2mMg4/+tyYcMTn6oD/hXJBDOE80J3Y+4VzYaFwW7K8inA/rtd8MolCHjD446OH132lcZ084Ny4mnBt6NSZAOBf66xTO51zShE99rkU49drLdd0DDz300F/85Cc/2Ynou7SrOEEC5X5O8bdTFRYBvbqK2gPlB3RVW9gfoPJx/vnn/+9du3YtSHphKqUxYx187LZmjJsQDOmEc0EO4TzRnNj5hHNho3FZsL8GcA4A3Z0ulr7x/7N35uFRVOn+/1ZvSTohgYSwCBJCENCwyI4CsimCKC64Oy7XhXEdlxl/jjrOOIvOjMvM9Xqvjs6o4wouiDouKCoqsokgyBowQIBASCCQkL233x+hoamu5ZzqTtLV+X6ep5+qOvW+53S1prs+nFPnJN+EcSsW+VAr+igS5dxyMOXcYq5EBZRzwfwklfNBw9y49Br7yDmA4LvvvvvgfffdtwnWZmjXEnMt34DBlrQCFPTWR+ZfqYz+qLSGrmjKel1dnX/ixIkPVVdXb4j71bQQ3kwFZ16VgrSMaEmnnAu0QzmPazsxt085Fyy0HKaf30ZyHmb5Fz7UyzynneDUVIXw/TeC/+hAObccTDm3mCtRAeVcMD9J5XzAQBeuvN6LxJ+l6RjLly//+yWXXPINjJ83N+tR15N0IzknrQwniWs7tCaL0zqvLjOa5V1vdnccOHAgsHXr1m9nzpx5psvl6hDLG28tUtIU9OjrxI5NAQSal9mlnIu0QzmPazsxt085Fyy0HKaf38ZyDgCBANBQBxScYo81dc349N1G7Nsj8Ow55dxyMOXcYq5EBZRzwfwklfOCfi781y3pcNnoa7m4uPjNIUOGPAd9AW/JSeFIK0NBbzuMBNssRy3iWuejXps2bWpQFOW7CRMmTHc4HLZY5DHVq6B7vgM7NgYRCGgEUM6Pz6Wcx7WdmNunnAsWWg7Tz08AOQ9TvieIHr2dyMq296C1bZsD+GaBQO855dxyMOXcYq5EBZRzwfwklfNe+U7ceEc63B77dJ1XVFQsLiwsfLixsdEP89naZdY8F4Wy3spQ0NsO2fXR9fL06tCM++abbw4VFBRsHjx48DRFUWxxt5iWoaBLLwd2bAwgGNlxQzk/PpdyHtd2Ym6fci5YaDlMPz+B5DxM6Y4gBo9yw2HTX11fUwjvvFiPxnqTQMq55WDKucVciQoo54L5SSrn3Xs6MfuudKSm2kfOa2pqtpx55pl379ixIzxje6xrnkfKudZx5Fa9T1oJm94qJA0iw9SN4rXyteo47vXee+/tmThx4oHevXufEcN7b1XSMxV0PsGJkk0BhMJfMQK0+Q2TcCHl3GLTLdJOzO1TzgULLYfp5yegnANAY30Ifl8IvfvZaExlBF991IQdW7SGMUVAObccTDm3mCtRAeVcMD9J5bxLNwduvjsD3nT7yHlTU1PFzTfffPOCBQsqId5zHhZuo+fM1S9obNX7pBWxRQ9qEqP1R6D+V63IfaN1C6Vmd580adL8TZs2vdwiV9VCdM934IwLPXAIfre2+Q2TcCHl3GLTLdJOzO1TzgULLYfp5yeonIdZvcSHvbtMJDcB2bszgNVLfcZBlHPLwZRzi7kSFVDOBfOTVM6zOztw053pSNeYeDhRCQQC9U888cRdr7zyyj6Y95AbrX9uJuvQ2Kr3SStDQW97RCU98lj9Ryf6Ok7SR4wY8X979+79PP6X1HKc2M+Jsed7TGfdbPMbJuFCyrnFpluknZjbp5wLFloO089PcDkHmt/jp+80as+nkaAEg8CCdxqbRy7pQTm3HEw5t5grUQFgsDMRAAAgAElEQVTlXDA/SeU8M8uB2XemI6ujrZQn+M477zzw4IMPbobYjO2RbiA7KZwWlPM2xlb/tyYxIpKudaw3lEX9h6s5FKaurs4/adKkh6uqqta1zGW1DPmFTow5x617vs1vmIQLKecWm26RdmJun3IuWGg5TD/fBnIervLAviBWLLLP2ugrFjWhoszAzinnloMp5xZzJSqgnAvmJ6mcp2comH1XOrI720t3li5d+uTll1++GHI95gFoO4GZkGt5B2lj+Ax6YmG0hJpMjvD5AwcOBDZu3PjthRdeOMUuy68BQE53BzypCvYUH3/j2OY3TMKFlHOLTbdIOzG3TzkXLLQcpp9vIzkPs6ckgJMKXfAm+HDLyoogPnyj4fjJOSOhnFsOppxbzJWogHIumJ+kcp6WpmD23enodoK9VGfr1q1zhg4d+k/oPKIK84ngtIa1h7/F1bJOKU9Q7PV/bftAbyI4kdnbjc7rThxXVFTUEAqFbLX8GgDk9nDA4VBQtqP5e6fNb5iECynnFptukXZibp9yLlhoOUw/34ZyDjS/7327Ahg00m36uE5bMv+VBhyqFP8fnHJuuXkpKOcC+ZRzsfwklXNPioIb70jHiXn20pzy8vLFgwYN+r3Ocmqis7Wr5TxSwinnNsFe/+e2H7RmdA9vzWZvlzk+yuLFiw/16dNn45AhQ6bbZfk1AOjaywGXR8GebUYPSKqgnFsOppyLBVLOLebKtG1TOQ8X1lSH4ElVcEKC3kCuWe7DD8t0JoajnFsOppxbzJWogHIumJ+kcu72KPivW73oc5K9Vsw4fPhw0aRJk+7auXOnzHJqaiEXmbkdGlvoHJM2IjHvDAigL+l659VlCpr/0ISXX3v//ff3nnHGGRX5+fkTYn/7rUeXng6kpSsoLRaQdMq55WDKuVgg5dxirkzbNpfzMKU7AhgwxIVUb2J1o9dUhzD/5QYE/BonKeeWgynnFnMlKqCcC+YnqZynpiq44XYvCmy2nGVjY+O+2bNn3/L5559rLaemNa9UvGds1zombYhtekrbMVp/UOo/NK1/QTOb5V3z2ZYpU6a8v3Hjxpda9pLiT//hLoyd6YFh3z/l3HIw5VwskHJuMVem7SSRcwDw+4DP3mmM+b9HvFk4vxGNDfEXXC0o54JVUs7N8ynnYvlJKufedAU33ZWO/L72kvNAIFD3+OOP3/3666/rLadmNrxdT8Ijj81IsF8hQkG3B0aSbvQym/1RU9JHjhz57J49exa2+FXFmYJBTky4yAOn1rgQyrnlYMq5WCDl3GKuTNtJJOdhdm0LYOnCxJnVfdW3PmzdoNF1Tjm3HEw5t5grUQHlXDA/SeW8Q6aCm++x3zPnoVAo+NZbb/36oYceKoLYcmpmk8Gpj6GxH7lV75MEgYKeuKj/YEQlXWuoi9m/wh33hVBXV+ebMGHC76qqqta2yJW1IHkDnJh0qQeuyFXYKOeWgynnYoGUc4u5Mm0noZyHWf5lE37aqDWevHUp3RHAoo8ao09Qzi0HU84t5kpUQDkXzE9SOe+Y7cAtv8yw3WztALB06dLHrrzyyiXQnwhO775d754/UsahOqac2wj7/d/c/hB59twoT/3cuVa96ufRUVlZGVi9evXXF1100TiPx5Mt/a7bkMxsB7r2cqJkcwBBsY4gKSjnglXa+aZDIpBybjFXpu0klvMw24sC6DfIhbQ2eh69tiaEN5+vR2OD6gTl3HIw5dxirkQFlHPB/CSV85xcB265x37rnAPA1q1b3xg6dOgLMH78VGSSOKsztlPOExgKuj3Qm+gtvNWTeL1jrbqihL24uLipqKjoq/POO2+i2+3OknzPbUpGloLu+U7s3Bw8bqIjyrlYMOVcLJBybjFXpu12IOcA4PcDO4sDGDjcBaezdSU9FATmvdSA/WWqiTYp55aDKecWcyUqoJwL5iepnHc7wYmb78lAVkf7yfnu3bs/Hjhw4F98Pp/WcmqiYi7yArQ/Rcp5gkNBtw9Gkq7e1zo2qldX9jdt2lRfXl6+eOrUqZNdLleG6JtNBLwdFPTo68DOzUH4fZRz0WDKuVgg5dxirkzb7UTOw6H1tSEc3B9C/8GtO8nRVx81YtMa1XAjyrnlYMq5xVyJCijngvlJKuc9ezkx+650ZHRIrBUwRCgrK1s0ePDgh6qrq30QE/NwechgqyXmkYR09kmCQkG3FyKSbrQsm5GMa51TACirV6+uqaurWzJp0qQznU6nN7ZLaF3S0hWc2M+JnUUB+DQerRSFci5YpZ1vOiQCKecWc2XabmdyHuZAeRAuD9Cjd+v8PBet8+PLD1WT1FHOLQdTzi3mSlRAORfMT1I5793XhRt/kd5mjwPFwv79+5cOGzbsvn379jXCfDI4s+fNjeRcvYXOMUlQKOj2w0zStY718szqP1q2bNmyaqfTuWzcuHFTHQ5HqsD7TBhSvAryTnZi15YAmtTPVwpAORes0s43HRKBlHOLuTJtt1M5D7OzOIAeeU50zGnZoZsHyoOY95JqvXPKueVgyrnFXIkKKOeC+Ukq5ycNcOGG27xISbGfnB88eHD12LFj796+fXs9zCeDMxrmLivnerJOEhgKuj0RGeJulCdSb1Ts119/fSgzM/P70aNHT3U4HB6B9hIGT6qC/FOcKC0OoKFOPI9yLlilnW86JAIp5xZzZdpu53IePrm9KIABg91ISWuZG1FfUwhv/rMBNVUR74RybjmYcm4xV6ICyrlgfpLKeeEQN669OR0ut/3kvLq6esPUqVN/8eOPP9YiejI4kZnb9URc/YlRypMECrp9ER3abpRndi5K1BcuXLj/hBNO+HHYsGFnKYrSug9KxojboyC/0Im924OorzH/zqKcC1Zp55sOiUDKucVcmbYp50fx+5rXSB9wqgsuV3xvSENB4IM3GrF7e8DwTVHOLTcvBeVcIJ9yLpafpHJ+6kg3rrrBC6cNraWmpuanCy644LYlS5ZUwXhYu9GSamY95urjyC2xITb8X51EoDWje+RWJEfrnNb+UVn/8MMPy/r27btp8ODBZymKYqv/h1xuBX0KXdi3M4jaaslbBsp5dL6dbzokAinnFnNl2qacR1FbHcKu4iAGDHbBGSdJD4WAD+c2oOhH4+UtKOeWm5eCci6QTzkXy09SOR811oNLr/HCYb/J2lFfX7/z2muvvfnjjz8+AOPnzSP3Qxr7akkPL7khKueUdZthK7kimsRD0o3EXDN3/vz5pUOGDNk2YMCAMxVFsdV4I6cLyC90YX9pEIcPRX9nUc4Fq7TzTYdEIOXcYq5M25Rz3eCaqhB2FgcxYEgcJD0EfPxmAzb+QDmXjaWcW6uAch7fdnTzk1TOx09OwYVXpMFed5nNNDQ07L311lt/PmfOnH04Xs719iNlPVLEKeftEAq6/TFbI90oXh2roPkP2aweBYDy5ptvlowZM2Z33759J+m0lbA4nM2SXrkvhOoDx767KOeCVdr5pkMikHJuMVembcq5aXBNVQi7tgVx0iCX5ecvQ0FgwTuNWL+Kci4bSzm3VgHlPL7t6OYnoZwrCjBlegrOuchWcxIfpampaf999913y3PPPVcK/efLzYa06w1vh85x5BY6x8QmUNDtj5Fwa51Xl5nNAG/YI//6668XT5o06UDv3r3Hm73RRENxAL1PcaK6MoRDFTq375Tz6Hw733RIBFLOLebKtE05FwoOAThcFcKWHwPoVeBEuuTav/W1Icz7dwO2bqCcy8ZSzq1VQDmPbzu6+Ukq59MvSMWZ59hTzn0+36E//vGPtzz++OPbob3OudGa53qTwum9oLGFzjGxEbbq9SS6iEh65IRvDlWZI2Krfjk19p3q14oVK64aNWrU3fG+sNZi5UIf1i/3H19IOY/Ot/NNh0Qg5dxirkzblHOhYHWR2w2cfUkqTj5VbI7OfaVBzH+5HtWRj/NQzi0HU84t5kpUQDkXzE9SOb/gsjScNsFWCwUdJRAI1DzxxBO3/PrXv94IYzE36kkPaWz15BwR+1plxKZQ0JOHeEi6nqgLSfqaNWtuGjJkyM/jfWGtxeZVfqxY4EMw/HWoAeXcUtMt0k7M7VPOBQsth+nnU86Fgo3yC05xYfw0D3K7ac+cVF8bwtIvmrBmuY/rnFuIpZxbq4ByHt92dPOTUM7dHgVXXJeGgUPdgrUnFsFgsP4f//jHHbfddtsP0BZzIzkP4diz55RzQkFPMmKRdIfGVkvStbZOAE632+1at27dL/r373913K+slSgtDmDRO03wNUafo5xbarpF2om5fcq5YKHlMP18yrlQsEi+ogADTnWhzwAXuvV0wJuhoHRHALu3B/HDMh+aGlW1UM4tB1POLeZKVEA5F8xPQjnvkKngulvTcWKePZ+8DQaDvtdee+2ua6+9djmipVxEzrV60IHjJR0a+5Fb9T6xMRT05KO1Jf24fbfb7SoqKrovPz//4rhfWStxsDyIhW80HbcMG+XcUtMt0k7M7VPOBQsth+nnU86FgmMWhTi3I9U+5Tw6n3Junk85F8tPQjnv2t2J62/3olO2DddRAxAKhQLz5s2795JLLvkalHMSJyjoyYmMpKtfWpLuVO2rh7wfJ+ler9ddVFT0cM+ePc9piYtrDepqQvh8ThMO7A1Szq013SLtxNw+5Vyw0HKYfj7lXCiYcm6pSLId8WDKucVciQoo54L5SSjnJ53swtWzvUhNta2OBD/55JOHzjnnnAUwlnOjWdu1JoaLfNgyshwaW/U+SQJs+xdBTImXpIf3nRFbrefSj5P0nJwcz/r16//SrVu3SS1xca2B3wd89W4TdhYFLOVTzuPbTsztU84FCy2H6edTzoWCKeeWiiTbEQ+mnFvMlaiAci6Yn4RyPnqcBxdekQaHPTvOAQBfffXVnyZNmjQf5nJuJuiUc3IcFPTkxmiN9PC+rKSLDHl3AnD06NEjdc2aNU927tz59Ja4uNZixac+bFjhNw+MgHIe33Zibp9yLlhoOUw/n3IuFEw5t1Qk2Y54MOXcYq5EBZRzwfwkk/PwMmoTp6YI1pyYLF++/MnTTjttDuSGtButdx4p6FCVQWOr3idJBAU9+WlTSe/fv793yZIlf8vJyRndEhfXWmxc6cd3nx6Z4d0Eynl824m5fcq5YKHlMP18yrlQMOXcUpFkO+LBlHOLuRIVUM4F85NMzt1uBZdfl4ZBw+w5U3uYNWvWPDN06NAXEbucR271XtDYqvdJkkFBbx/EKunq59KlJL13795py5cv/3PXrl0ntMTFtRa7tgbw1bwm+Jr0Yyjn8W0n5vYp54KFlsP08ynnQsGUc0tFku2IB1POLeZKVEA5F8xPMjnPyFRw3c3p6JVvz5naw6xbt+6fgwcPfg6tL+fQKSNJCAW9/WBV0rUmjZORdAcAZ9euXVNWr179+xNOOOHslri41qKyLIjP5jSh7nD0dyPlPL7txNw+5Vyw0HKYfj7lXCiYcm6pSLId8WDKucVciQoo54L5SSbnXbs7cP1t6eiUY+MHzgGsWrXqqREjRryKlpdzqLZakk6SGAp6+8JI0hWNfdHl14TWSs/MzHT/+OOPD+Tl5V3QEhfXWtQdDuGzOU2oLDs23p1yHt92Ym6fci5YaDlMP59yLhRMObdUJNmOeDDl3GKuRAWUc8H8JJPzvgNcuGa2F6lptlaO0OLFi/96xhlnvIPWl3OtLUlybP3XQizRppLudrtdGzZsuOekk066oiUurrXw+4BF7zRh19YA5TzO7cTcPuVcsNBymH4+5VwomHJuqUiyHfFgyrnFXIkKKOeC+Ukm5yNP92DWVfaeqT0UCgU///zz30+dOvUj6Is55ZzEFQp6+0RW0sNfrXGT9NWrV988cODAG+J+Za1IKAQs/6QJG1fKzfB+XB0xBlPOxQIp5xZzZdqmnAsFU84tFUm2Ix5MObeYK1EB5VwwP4nkXFGAaTNTMWmavWdqD4VC/g8++OCBCy644AtoL6WmlvKWknP1PklyKOjtlzaVdADOlStXXjNixIhfxPvCWpsNy/1Y8VmT9I+rXW4sE/KmQyKQcm4xV6ZtyrlQMOXcUpFkO+LBlHOLuRIVUM4F85NIzt1uBZddl4bBNp+pPRgMNr755pv3XnnllUvQ9nKudUySGAp6+6a1JD1q0rjw69tvv7107Nix/y/eF9ba7CwKYNG8Rvh9YvF2ubFMyJsOiUDKucVcmbYp50LBlHNLRZLtiAdTzi3mSlRAORfMTyI5z+ig4Lpb7D9TeyAQqHvppZfuvummm74H5Zy0ARR00uY96QsXLjzvzDPPfCiibltSuS+IL95sRPVB4+9Ru9xYJuRNh0Qg5dxirkzblHOhYMq5pSLJdsSDKecWcyUqoJwL5ieRnHfp1jxTe3ZnW9/Kwe/3H3766afvuOeee9Yh+jnz1pwQDjrHpB1g73/iIvFCZAk2dXxIJ9as/qjjV199devw4cO39+vXb6KiKLb9Zk/LUHDSqS4cKg+h6kBsP4Z6wZRzsUDKucVcmbYp50LBlHNLRZLtiAdTzi3mSlRAORfMTyI5LxzixvW3p6NDpm1v4QAAPp+v8s9//vOt999//0boTwRHOSctDgWdhGlTSZ8zZ86OAQMGbDrllFOmKIpi2/8vnS4FBYNccDqBvTuCx52zy41lQt50SARSzi3myrRNORcKppxbKpJsRzyYcm4xV6ICyrlgfpLIucMBTL8gFRdclgaXy96DchsbG/f95je/ueWRRx75CZRz0sbYVoRIixBPSQ/pxOsyb9683b169Vo7ZMiQKQ6Hw9azi3TLc6JrLwd2bw3C77PPjWVC3nRIBFLOLebKtE05FwqmnFsqkmxHPJhybjFXogLKuWB+ksh5Rmbz8+bDRnkEa0xcGhoaSu+8886bn3766Z3QlnO1jFPOSYtCQSdq4iXp6nKtNqLOffDBB3tzcnJWDR8+fIrD4bD1t36HTg4UDHJh3+4gaqut//JTzsUCKecWc2XappwLBVPOLRVJtiMeTDm3mCtRAeVcMD9J5Lx3gROz70pH9x7214ja2tptN954480vv/zyXlDOSYJg/78s0hKYibkVSQ+pzumyYMGC8tTU1OVjxoyZ4nQ6U2XeeKLhSWl+Lr2xPoSKPUHjYMq55UDKucVcmbYp50LBlHNLRZLtiAdTzi3mSlRAORfMTwI5VxRg3OQUXHmDF6lp9h7SDgCHDx8uuvzyy2999913K6A9nJ1yTtoECjrRQ7YnXS9WqyfdtJ4vv/yysqmp6dvx48dPdLlc6WJvOTFRFODEk5zIzFGw+6cAglqeTjm3HEg5t5gr0zblXCiYcm6pSLId8WDKucVciQoo54L5SSDnKakKLrvOiwlnpkCxv5vj0KFDP5577rm3f/HFFwcR/Yw55Zy0KRR0YoRsT7penpmka7JkyZKqAwcOfDVlypQzXC5XpsD7TWiyuzqQ19+JPdsDaKyPOEE5txxIObeYK9M25VwomHJuqUiyHfFgyrnFXIkKKOeC+Ukg5126OTD7zgwU9HMJ1pbYVFZWfjdx4sS7Vq5ceRjak8AZrW9OOSctDgWdmBFrT3rksfoLyOj5dADA999/f3jHjh2Lpk2bNtbtdnc0e7OJTlq6gn6nulB1IIRD+0OU8xgCKecWc2XappwLBVPOLRVJtiMeTDm3mCtRAeVcMD8J5HzICDeuvzUdmR3tvYRamPLy8sWnnXbarzZt2lQHfTk3EnPKOWlxKOhEBKs96WbnhGLWrVtXt379+i/OPffcUSkpKZ0F6ktonE4FfQpdcLmbl2KL/AGnnIsFUs4t5sq0TTkXCqacWyqSbEc8mHJuMVeiAsq5YL7N5dzpAs6blYpzZ6XBafMl1MLs2bPns1NPPfWBXbt2NUB/CTXKOWlzkuMvjrQGRj3pisZ+5MuhsdV6OQ22zmHDhmUsWLDg0dzc3HEtcH1twt4dQXz5TiPqa2LVFMq5UJWUc7F8yrlQMOXcUpFkO+LBlHOLuRIVUM4F820u51kdHfjZTV7k9UmefrySkpL3Bg8e/Gh1dbUP4kPaAzgm4pRz0mpQ0IkMRj3p8ZJ0XUEH4MjMzHSvXr36lwUFBZe1wPW1CXWHQ/j87Ubs22kyy7sBlHOBKinnYvmUc6FgyrmlIsl2xIMp5xZzJSqgnAvm21zO+/Z34cobvMjokDyKsGbNmmdGjRr1ks/n80P+mXMtKaeckxYlef76SGvREj3pCo7JuFBv+rJly64cM2bMXUfKbE8wCKz4rAnrV/ilv7Yp5wJVUs7F8innQsGUc0tFku2IB1POLeZKVEA5F8y3sZwrACaclYLpF6QmxSztABAMBn0LFiz43YwZMz6F+ZB2IzmPFHLKOWlxkmfsCmlN4vFMujo+pJGnW88LL7ywYdCgQVsGDBgwQVEU208rqijAiX2d6JTrwO7iIIIBsTzKuUCVlHOxfMq5UDDl3FKRZDviwZRzi7kSFVDOBfNtLOdpqQquvMGLsROTYwk1APD5fIeee+65X/zsZz9bAu0J4CKFXHS2dqMXDLbQOSZEEwo6sYrV2d3NzhnFH5f31ltvlWRkZKwYOXLkeKfT6ZWsMyHp1MWB3ic7Ub4riLoa4+9xyrlAlZRzsXzKuVAw5dxSkWQ74sGUc4u5EhVQzgXzbSzn3U9wYvZd6cjrY/u+jqPU1dWV3HfffTf/7ne/2wLKObEhFHQSC7FIumisYR0LFy7cX1pa+uWUKVNGeTyebJP2bEGqV0H/YS6EgsC+3UHtmzs733RIBFLOLebKtE05FwqmnFsqkmxHPJhybjFXogLKuWC+TeVcUYDTz/Dg6pvSk+p588rKylUXXnjh7XPnzt0H4+XTZGZrD6mOEVEGgy10jgkxJHn+IklbYfZMenhr9BKd3T3y+Lhn00eOHNnh448//kvnzp1Pi/8lth37dgaxaH4jDh889t1OOReoknIulk85FwqmnFsqkmxHPJhybjFXogLKuWC+TeU8M0vBJT/zon9h8vSaA8CuXbs+PO200x4tLS1tgLX1zSnnJCGgoJN4INKTHjmBnAPykm4o6ACc2dnZnu+///7e/Pz8WXG+vjbF1wQs/aQJW9b4ERKc6D0hbzokAinnFnNl2qacCwVTzi0VSbYjHkw5t5grUQHlXDDfpnI+aKgbs65Mgzc9uRRgzZo1z44aNepFn88XFnGRJdTC0h25nJp6C2jLeeRHSzkncSW5/jpJW2JV0iP3tSQ9fCwyy7vT7XY7v/3226tGjRp1J5Ls/+8dmwL45j9NaKg1/r5PyJsOiUDKucVcmbYp50LBlHNLRZLtiAdTzi3mSlRAORfMt6Gcp6YpOP/SVAwf7RHMtgfBYND36aef/v6cc85ZAPMZ2vV60CnnJKHgM+gknphJeuQ59ReXVrzel5uueAeDwdC//vWv9UOGDCnu37//Gckww3uYjrkO9BviwqGKEKoqY/vR1oNyLphPOTcNpJzHtx2p9inn0fmUc/N8yrlYvg3lvM9JLtx0Rzr6nJQ0t0QAAL/fX/XPf/7zziuvvPJbyC+hZjSknXJO2hQKOok3MpJuViY6yVx4e/QL8c0339yRlZW1Yvjw4WckywzvAOD2KOg72IW0DAV7dgSOW44tIW86JAIp5xZzZdqmnAsFU84tFUm2Ix5MObeYK1EB5Vww32Zy7nIB089Pxawr05DmTapBhaivr995//333/qb3/xmE8zXOJeVc7WMax1DY1/rmBBpKOikJRBdH93SzO2ifPbZZ/vLy8sXTZ48OWlmeA+T28OBPoUuVOwOovZwrDpEORfOp5ybBlLO49uOVPuU8+h8yrl5PuVcLN9mct7tBCduvCMdA091J83a5mEOHjz4w6xZs257/fXXyyC/jFpIY19LzLUEHTj+PwXlnLQISfYnSxIIM0lXNPb1Jo2LfC5d/Yy6U2P/uO24ceOy3nvvvb/k5OSMju8ltj2hILDqax9++MaHoOAEclF1UM7j3pZw+wl4Y0k5T5x2pNqnnEfnU87N8ynnYvk2knNFAcZPScH0malwJteIdgDA7t27Pxk3btyfSkpK6mE+S7tWD7pa0CnnJOGgoJOWRK/HXHQZNi1J15rp3XQCua5du3qWL1/+6969e18Q30tMDMp3B/Hlu42oOiD3+0A5F8ynnJsGUs7j245U+5Tz6HzKuXk+5Vws30Zy3inbgUuvSUNBvyQ0cwA//vjj8yNGjPhnxEztsT5vrifmlHPSplDQSUsTL0mXWYpNsyfd7Xa7li5devWIESN+Ed9LTAz8PmDpgiZsWuUX+qmgnAvmU85NAynn8W1Hqn3KeXQ+5dw8n3Iulm8TOYcCDB3lxgWXpSE1Nflu7UOhkO/zzz//49SpUz9GdE+5yDJqZmucGwm61va4txev6yQkTPL9FZNEJFZJ1+tRd0Yc6/WiRy3F9sEHH5w5Y8aMPzgcjuRaa+QIJVsC+Pr9JtTXGNzCUc7j3pZw+wl4Y0k5T5x2pNqnnEfnU87N8ynnYvk2kfO0dAUXXZGGwcPcghn2wu/3V7/00ku/mj179ipoD2UX6TkPaWxFBB0R+1plhLQInCSOtBaiki5aj9ZSbSKE5syZsz09PX3p8OHDx7hcrg4W6khoOuY40P9UF6r2h3BIY8g75Vwwn3JuGkg5j287Uu1TzqPzKefm+ZRzsXybyPlJp7hw4x0Z6JWfnLfz9fX1u3/zm9/8/P77798E+WfNzZ45h8Y+5ZwkBOxBJ62JbE96eN9xZD+W4e5RQ94nT57cae7cuX/Izc0dG6frSziKfvBj2ac+NNY3/55QzgXzKeemgZTz+LYj1T7lPDqfcm6eTzkXy7eBnLs9Cs65IBWnT0zKgYAAgIqKisWXXnrpb7/66qsqmD9rHjmcPYBoKTfqPYfGMVTn1GWEtCgUdNLaWJV0kWfSjWZ415R1r9frXrp06Q1DhgyZrfHekoKG2hCWLvBhy49iz6brQTmPoU3KtPgAACAASURBVP0EvLGknCdOO1LtU86j8ynn5vmUc7F8G8h5n34uXHRlGnK7OMyD7UlwzZo1/xg7duy/6+rqfDBfNs1opnbKObElyTkmhiQ6ZpJuFCuSI4zP5wv94x//+KFfv37rTz755LEOhyM1lvoSEZdHQf4pTnQ90YF9u4JorJevg3IeQ/sJeGNJOU+cdqTap5xH51POzfMp52L5CS7n6RkKLrg8DTMvTkN6elL2J8Dn8x16/fXXfzVt2rQPfT6fH2LrmhsNbQ+/ROVcT8gp56RVoaCTtiKekg5Ef3mGNGL0CL377rulZWVlCydMmHBqSkpKrkCO7cjKduCUEW6EQs3LsonejFDOY2g/AW8sKeeJ045U+5Tz6HzKuXk+5VwsP4HlXFGA4WM8uO6WdOT1Sc7l0wCgurp6/W233XbLww8/vBniS6fFMlM7NPZhsk9Iq5Cc/wRH7IKepEfu6w11F1kz3eyZ9Kjn0vPy8tIWLVp0T35+/qy4XWUCUlkexDcfNKFsZ9AwjnIeQ/sJeGNJOU+cdqTap5xH51POzfMp52L5CSznuV0duOiKNPRJ0nXNwxQXF781YcKEv5eWljZCbOm0eMzUDoMtdI4JaRUo6KStMeoxj3UZNrWch5dmM1oz3QHA+dlnn507ZcqU+x0OR0q8LjQR2bjSjxULfWhsiP4NopzH0H4C3lhSzhOnHan2KefR+ZRz83zKuVh+gsq5ywVMPDsFk89OhTOJ3TwYDDYsXLjwkWnTpn0C+eHsRpPBhfcRcUw5J7aBQ9xJIqE1zF3vH5FCEedDBnGRscK8+uqrP7nd7m9Hjhw52u12Z8rm24XcHg70H+pCTVUIByuOfUyU8xjaT8AbS8p54rQj1T7lPDqfcm6eTzkXy09QOe/Tz4Xrb0vHoKFuOJJ2Hjigrq6u5JFHHrn9pptuWgHz2dlle83Dch4uQ8Q5GGyhc0xIq8IedJJo6A1zjywzGvaunuVda6Z3dS+67nJsEyZMyHrrrbce7tKlyxlxvcoEZOfWABZ/2ITqg7HdHVHOLebKtE05FwqmnFsqkmxHPJhybjFXogLKuWB+Asp5eoaCGRelYviY5F06LUxZWdmXM2fO/P3KlStrEN/l02KdqV3rmJBWh4JOEpFYJd1orXStoe+Gw969Xq9r8eLF1w4bNuwWHFuTPSnx+4DvF/mwdpkPwYBBIOVcsNBymH4+5VwomHJuqUiyHfFgyrnFXIkKKOeC+Qkm54oCDB/twYxZqfAm6ezsYUKhUHDlypX/M27cuNd9Pl8A1pdPE52pXS3oiDgGov9zUM5JQsAh7iRRMZN0K/XIfvGGgOal2J5//vm1+fn5awsLC8c6nc6kW4otjMMJ9CxwIv9kJ/bvDaK2WvxulXJuMVembcq5UDDl3FKRZDviwZRzi7kSFVDOBfMTTM5zuznws5u8GDc5BW5Pcst5U1PT/pdeeunu888//9NgMKiWcyNB15LyWCeDU+9rHRPSZlDQSSIjsrxaJKGI8yEYi730/cR77723p6Sk5NPJkycPTk1N7SqYb0u8GQpOHuZCWrqCsl1BBPxHTlDOBQsth+nnU86Fginnlook2xEPppxbzJWogHIumJ9Acu5yA1POScUV13mRk5vUA/MAAAcPHvzhhhtuuO0vf/nLTzgm31ZmaDcTc62J4RBRprWvdUxIm5Lc/1xHkgGz9dLNlmNTP5OuNfQ9/Fx6uMxwyHuPHj1Svv7667sLCgoujdtVJjB1h0P49uMmFG8ISNzEUs4thOnnU86Fginnlook2xEPppxbzJWogHIumJ9Acl7Q34WLrkhD5y7JL+YAUFRU9NrYsWOfPnDggA9iS6iFoP+8udawdkSUQ3UeEWWA9n8gyjlJOCjoxA6YSXp4X3TyOJHn0k2XYluwYMH0s84660GHw5G0Q94jKSkKYOmCJhzaf+y3jHJuMVembcq5UDDl3FKRZDviwZRzi7kSFVDOBfMTRM7TMxTMmJWK4aOTfxI4AAgEAnUfffTR788///wvENsM7SI957JyTiknCQ2HuBO7ICLperFG59Vf0qGIGL1zAIDXXnvtJ0VRvhk9evRot9udZdKm7enY2YHCUW6kpSsoLw3C59OKopxbCNPPp5wLBVPOLRVJtiMeTDm3mCtRAeVcMD8B5NzpBE6b4MHVN6UjLz+JFzWPoLa2tvi3v/3trXfcccdqxDakXWsrIuiIOIZOGSEJC3vQiZ3Qk/TIfZHZ3fVmeTfrSdfsUT/ttNMy33zzzV+deOKJ58brQhOdpoYQvv/aj3XLfceeT6ecWwnTz6ecCwVTzi0VSbYjHkw5t5grUQHlXDC/jeUcCnDyIDdmXJTaboazA0BpaeknM2bMeHTt2rW1OF7GzXrMW2J9c6N9QhIWCjqxG6KSHt5G7od/Ic2eSxcd8n6crH/wwQdnTp8+/X6Xy5X0velhqg+GsOyzJhRv8Av97FHOBfMp50LBlHNLRZLtiAdTzi3mSlRAORfMb2M575HnxIyLUtHnpPbRYw4AgUCgfvHixU9OnTr1fZ/P50d0T7nMkPZIIdfrPYfGfuTWaJ+QhIZD3IkdEZF0o3itcq0v9shzisF5AAjNmTNn+08//fTJhAkTCrxe74k6cUlFSpqCvgNdOLHAicoKnWXZjkA5F8ynnAsFU84tFUm2Ix5MObeYK1EB5Vwwvw3lvGO2A+dflobzL0tDp5z202t+6NChtffdd99tt91223eqJdS0njkPQWwJNbWkmwk6VOXQKCfEFrAHndgVIxHXmjwuct9ouLvskPeoGd/dbrfzq6++unTMmDG/cDgcKfG4WLuwdZ0fyz9rwuFDx/8WUs4F8ynnQsGUc0tFku2IB1POLeZKVEA5F8xvIzlPSVUw8ewUjJ+cApc7tvdgJ0KhkH/NmjXPT5w48d/V1dXhXnPRHnMjMY/X8+Zax4QkPOxBJ8mAXg+67HrpejlGX+5RPwTBYBAvvvjihqampq9Gjx49MCUlJdcgP6nI6erAwFFueFKaJ5IL+Cnnwm1TzoWCKeeWiiTbEQ+mnFvMlaiAci6Y3wZy7nAAo8d7cM3P09HvFBcc7eiuuq6ubvvf//73uy655JKFjY2NajmPdUh7eB8Rx3pyriXpeseE2AL2oJNkwUzSRSaR01qKTWRJNr110x1du3ZN+eKLL24sLCz8Lxx7Br5d0FAXwoovfNi40odg0DzePjdnlsP08ynnQsGUc0tFku2IB1POLeZKVEA5F8xvZTlXFGDAQBfOuTANud3a1U87AOCnn36aO23atKeLi4vroS/kWoIe0jmOFPB4PG+udUyIbWhH/9ZH2gEyS7GJ1mW0JJsptbW1gWeeeWZVbm7ud4MHDx7hcrkyLbwXW+JyK+jd34m+A104fCiEQ5Wx3qrqQzk3D6Scx7cdqfYp59H5lHPzfMq5WH4ry/kJJzpx+XVeTJqWivSM9tXP1djYWP7GG2/8v8mTJ7998ODBJogvmybTc24k53pCTjknSUX7+mYh7QERSTfqRQfiO8v70eNhw4ZlvPvuu/fk5eWdH48LtRu7iwNY8kkT9pcd351un5szy2H6+ZRzoWDKuaUiyXbEgynnFnMlKqCcC+a3opxndXRg6swUDBvtgdIO75737Nnz2dVXX/3XL7/88hDEe8xjXdtcq/ccqnI1lHNie9rhVwxpB8SyFFs8hrwbivq8efMmnnfeeb9xu90d43Ct9iIEbPrBjxULm1B7OFZtpJyLBFLO49uOVPuU8+h8yrl5PuVcLL+VPqeUVGDCWSkYf6YHbnf7u232+/01n3/++V+nT5/+CbRl3EjMQzrHkQIeuaY51zcnBBR0krzES9JFZnlX0Czfws+nz5o1q/Ozzz77UG5u7rg4XKvt8PuAH5b4sGaJD4311n5XKefmgZTz+LYj1T7lPDqfcm6eTzkXy2+Fz8nhAEac5sbU81KRkdk+b5crKytX3nPPPb9/+eWX90JfxgNo/vTUy6hFyrlazEWHtENja7RPSFLQPr9xSHtBdL100aXYRIa8q2VdLehHy9xut/OLL764aOzYsXc7HI7UOFyv7WhqDGHtMj/WLvGhQULUKefmgZTz+LYj1T7lPDqfcm6eTzkXy2/hz8nhAAYOdePMc1LQpXv7mwAOAILBoG/lypVPT548eW5dXV14hna9Ye3qXnKrz5rrCTpU5dAoJySp4CRxJNkRXS/diPAPgNaEcXo/GnplR8uDwWDopZde2lRbW/vlmDFjBqakpHQRfD9Jg9OloEdvJwaOdsGdomB/WRB+n3EO5dw8kHIe33ak2qecR+dTzs3zKedi+S34OTkcwKkj3bjyei/GnOFBeof22YdVU1Oz5U9/+tMd11xzzTc+n89IzmWfN1dLOlT7Wr3m0CnTOiYkaWif3z6kvSIzgZzskHetoe9mr6O96zk5Oe5FixbdMHDgwBsVRWmf/2QPwNcUwo/L/fjhWx8a6qJ/eynn5oGU8/i2I9U+5Tw6n3Junk85F8tvoc8pLOaTp6egc5d2+/MLAMFNmza9etZZZ/2jtLS0EbHPzs5Z2gmxCHvQSXtDZik2rbKQRnnM/7pbX18ffPbZZ1dnZ2cvHzx48HC3250lmptMOJ0KTshzYtBoN1JSj+9Rp5ybB1LO49uOVPuU8+h8yrl5PuVcLL8FPienAxg+xo0rb/Ri5OkeeNPbb59VQ0PDnhdeeOFX06dPf//w4cM+WJudXW9Yu9kLqn2oytVQzknS036/jUh7RnQCOb3J5OI1gZxmb/qQIUPS33777VtOOumky4+UtVv8PmDdCh9WfeNDfa3132TKucW2Kedi+ZTz6HzKuXk+5VwsP86fk9MFDB/lwaRpHnTKadc/sQCAnTt3/ufyyy9/YtmyZYdhvddcb4uIY/W+WtAjt0b7hCQ9FHTSXon3LO9mw95ll2RzPPbYY4U333zz/R06dDg59su1N34fsO47H1Yv9qHusNzvNOXcYtuUc7F8ynl0PuXcPJ9yLpYfx8/J5QKGn+bBpKkedMymmDc2NpZ98MEHf7300ksXI75rmpv1nkNjP3JrtE9Iu4CCTtoz8ZjlPVxmtGa6nrCbynpmZqbr008/vXzkyJG3OJ3OtBiv1/YE/EdE/RsfagVEnXJusW3KuVg+5Tw6n3Junk85F8uP0+fkcgMjT/dg4lQPsjpSzEOhUHDLli1vXHbZZc+tXbu2FtoCriXoIZ1jPSkP96CbCTpU5dAoJ6RdwWfQSXvH6izvsfxoCOc2NjaGXnjhhfW7d+/+ZMyYMT0yMjJ6x9Cu7XE4gG4nOjF4jBtpGc3PqPsatWMp5xbbppyL5VPOo/Mp5+b5lHOx/Dh8Tm43cNoZHlx1oxdDhruRmso+qerq6g1PPPHE3bNmzfpo3759kRPBhaU8gOMFPQTjNc1jXdscOmVax4S0G/htRcgxZGZ5j9yPLFP3pJv1ogs/mw7AMX/+/EnnnHPO//N4PLmxX679CfiBDd/7sOprH2qqj/2WU84ttk05F8unnEfnU87N8ynnYvkxVuDyKBgz3o0JZ6Ugo50ulaYmEAjULFu27P/OPvvseSbrmutJuWivuZmca4m5el/rmJB2Bb+5CDkeUUkPb60ux6aeUE5vIrmoZ9NHjhyZ8cYbb9zat2/fS9DOJ5ELEwgAG7/3Yc1SPw7uD0YHJOCNJeU8cdqRap9yHp1POTfPp5yL5cdQgSdFwejxbpxxJsU8kj179nz+q1/96sk5c+aUw9pQ9lh7zaEqU5eroZyTdg+/wQiJRvbZdJEJ5OLem/7kk08Wzp49+8GMjIx+MV9xErGjKIA1S33YWRyIviUwgHIeQ75EMOXcUpFkO+LBlHOLuRIVUM4F8y1WkNXRgdFnuDF6XPteKk1NQ0PD3vfee++xK664YjGsL5sWj15zaGyN9glp9/CbjBBtRJ9NF5lATmbyOKmJ5LKzs92ffPLJ5SNGjPi5w+Fo95PIRVJZHsSaJT5sXuM/upa6HpTzGPIlginnlook2xEPppxbzJWogHIumG+hgl75Toyd5MHAoW44OJbsKKFQKFBUVPT6xRdf/M8NGzbUQVzKZZ41R0QZIs7pCToE9wkh4CRxhIhg1IOuhciPjd6/KoeO1GtWRwhAqL6+Pvivf/1rfVlZ2Wdjxow5MT09vZdA2+2CtHQF+Se7MGiMGympCg5WBNGkMaEc5TyGfIlgyrmlIsl2xIMp5xZzJSqgnAvmS1TgdAFDhrtx0VVpmHJOCrqe4ITCrqajVFVVrXvsscfuufjiiz+uqKhogvy65uoe9EjpjvfyaVrHhBCwB50QUUQk3aj3XH0s+my6uuc8/Lx6VK+62+12vvPOO1OmTZv2K4/H0zn2S04ugkHgp3V+rFnqQ9mu5g4AynkM+RLBlHNLRZLtiAdTzi3mSlRAORfMF6wgo4OCUeM8GDPegw5ZvHVVEwgEapYuXfq/06ZNmx8xCZyolIv0mqslHRrnoNqHwb7WMSHkCPyWI0QcK7O8R5bJPptuJOjhc1GyPm7cuMyXX3751j59+lys8Z4JgLJdQfywxIefNvgRDFirg3IuFkw5t1Qk2Y54MOXcYq5EBZRzwXyBCrr3bB7GPmSEGy5XjA0mKXv27Fl49913P/nWW29VQLyXXGtYu5aUx6PXXOSYEBIBb94JkUNkAjkzQdcqMxJ02RnfFQDOp556avD111//QEZGRt+YrjiJqakKYe1yH9Z/50dDvfj9AuVcLJhybqlIsh3xYMq5xVyJCijngvkGFTgcwMmDXRg7KQX5ffkkph4NDQ173nvvvb9eccUVS6Av4WbLpcXyrLnWMQz2jcoIIRFQ0AmRR2aW9/A2Xr3pRoIe9eratavno48+umro0KGzHQ5HSkxXncT4fcCmH5qHv1eWayzTFgHlXCyYcm6pSLId8WDKucVciQoo54L5OhWkeRWMON2N0yd40DGbs77pEQqFAps3b37tkksu+ZfGJHAhjX0jQTfqPTfrNYeqTF0OjXJCiAD8p0lCrCE6y7tZjvpHS9E4p/WDJ/RjV1tbG3z++efX7tu3b8GwYcM6d+jQoUAkr73hcAJdezgwZIwb3Xs50VAXQlVl9EdMORcLppxbKpJsRzyYcm4xV6ICyrlgvkYFuV0dOOu8FFx6TRoGDHQjNY19R3pUVVX9+Nhjj919ySWXLKioqGhEs4BHPmuufu5cfWwk5lqCDoMyra16X+uYEGICvwUJiZ3WeDbdypJsUc+rP/3004Ovvvrqu7OysgbFetHJzsH9Qaz/zo/Na/yoqwlRzgWDKeeWiiTbEQ+mnFvMlaiAci6YH1GBogD9TnHh9Eke9DuZD5eb0djYuO+bb7555oILLvgkYhK4WJ4xj9e65kb7WseEEAEo6ITEh5Z+Nt1sxneRZ9SPzvY+f/78M6dMmXJHamrqCTFddTsgGAS2bw5gw/c+7NgSMJ1UjnKeOO1ItU85j86nnJvnU87F8o9U0CnHgWGj3Rg+xo1OORzGbkYgEKhbt27dvy+//PLXi4qK6hEt3XpD2GWeMzfrNYfGPlT7Wv+LUM4JsQgFnZD40dLPpludRC5cdpyo9+7dO+Xtt9++fOjQodc7nc6MWC68vVBXE8KmH/zYuMqPA/uin1WnnCdOO1LtU86j8ynn5vmUcyHcbgUDh7owfIwbffqxt1yEUCgU3LFjx/xf/vKXz8+fP38/5JZKi8dz5mrxjixTl0OjnBASAxR0QuKL0bPpWvtagq4+jnUSOcNe9RkzZmQ/9dRTN/Xp02eWoiicl0KQfbuD2LDKj6I1fjQ2SOg15bzF25Fqn3IenU85N8+nnBuiKEBeHyeGj/Fg0DAXPCm83RSloqLi2//+7//+n0cffXQbxCZ80xJ0PTkHxHrNtQQ9cqve1zomhFiE35iEtByiz6aHt0ayHh4LqB7yrjfcXfpZ9fvuuy//nnvu+UWXLl3GW77idkjAD/y0wY8Nq/zYWRxAyGgSeMp5i7cj1T7lPDqfcm6eTznXpWMnB4aNcWPYaDeyO3MIuww1NTVb3n333aeuvfbaFZDrKTcazq61D419LVEHjv/fgHJOSCtBQSekZZEZ9m5lEjnRYe9aUq4p7C+88MLISy+99O6MjIx+MVx3u+RwVQgbV/mxcbUfhw6oTJ1y3uLtSLVPOY/Op5yb51POo3B7FBQOOTaEXeGdpRRNTU0VixcvfnbmzJkf1tXVqWddl+ktF33G3KynPLIcGufVUM4JiTP8GiWk5TGS9Mhj0d502UnkjHrXtSaYc3i9Xuf7778/44wzzrjV4/HkWr3w9kzp9gA2rPJjy7oAfI3R9y+U8/i2I9U+5Tw6n3Junk85P4qiAL3ynRg2xoPBw1xISeXtpCzBYLB+3bp1r1x11VWvRaxnbjYTu+hwdrWgQ7Uv22vOHnNCWhF+oxLSOsg+mx7eyg571xJ2ox51w+fTCwsLvW+88cbVAwcOvNrhcKRJXzWBrwnY8mPzEPjSHQEgRDmPdztS7VPOo/Mp5+b5lHMAQFYnB4aOap6FPSeXQ9gtEtyxY8cH99133z/eeuut/TB+tlxkRnbZHnOjnnOoytX7WseEkDhDQSek9WnpYe96a6fLDH8/TtqvuOKKLn/+859vzsvLOw/H/mGASHLoQBBFP/qxdb0f5XuClm5zKOcxtE85j86nnJvnt3M593gUnDy4eQh7QX8OYY+F/fv3L/+///u/px5++OGtiM8wdlE5h8ExNLYQPCaEtAD8miWkbTDqUbfSmy4y7F1LzEWHvzsAOP74xz/2u+WWW+7KyckZZfG6yRGqDwaxdX0AW9b5UbYrICQBlPMY2qecR+dTzs3z26mcp3kVDBjoQuGpbvQ72QWXW/CNEE1qa2uL33///f++6qqrlkF+0jfRJdPitaa5et+ojBDSAlDQCWk7ZIe9W51Ezurz6ZrD391ut/PVV18de955593p9XrzLV47iaCmOoSt65t71kt3aM8ETzmPoX3KeXQ+5dw8v53JeUYHBacMdqPwVBcK+rvg4FipmGlqajqwbNmyZ2fOnPlBdXW1H80ft96Qdq1ecqMh7BzOTkiSQkEnpG2x+mx6eBvr0HczQded/T0nJ8c9Z86caePGjbshLS2tl4VrJxrU1YTw00Y/tq7zY9e2AIIBynkMVVLOtaqknJvntxM5z+rkwClDXBg41I28Pk4OX48TwWCwfuPGja9fe+21r65evboG1oexW5VzmOxDtc8ec0ISCH4VE5I4yDybHt6KDnuP5fl0o4nklMzMTNfbb7999rhx4270er15Fq+daNBQH0LxRj+2rA+gZKsfAf+RE5RzsXzKeXQ+5dw8P8nlvHNXBwqHNPeU9+jlFH9jxJRAIFC3ZcuWt+69997XP/roo0qIrWMe0jinLosUc0Bb0KFzDFUZDPaNygghrQQFnZDEQvTZ9PCx0bB39bHI8+mWn1PPzMx0zp07d+qECRNu4ND3+NPUGMK2zc3PrO/Y7IfPZ55DOY8hn3JuvW3KuZWmpUJl5FxRgG49nCgc0vxMeZfuHLsebwKBQO3mzZvn3n333W8sXLjwEGJfJk3vOXMtSYfqPAy2RvtGZYSQVoSCTkjiotejbtabHnmsfgHRkm7Wmy41DN7r9TrffvvtMydMmHBjenp6H4vXTgzw+4Dtm/3Yst6PbZsDaGqIvp+inMeQTzm33jbl3ErTUqEicq4owIm9nTjlVDcKh7iQ3ZlS3hL4/f6aTZs2vXHHHXfM/frrr6sgP3zdysRvWi+otrJiTiknJIGgoBOS2MgMe4/lGXW9nvWYRH3u3LlTJk+efGN6enqBtcsnZgQCQOn2AHZsaR4GX7E3iGCMRkQ5t1Qk2Y54MOXcYq5EBckg5x6Pgt59neg/0IVThriRmcVbvJbC7/dXb9iw4Y3bb7/9zW+//bYa5sPXRZ4xVwu5lWXToCqDxjk1lHNCEgx+exOS+BhJeuSx0Vb2+XSz4e/C66p7vV7nnDlzJk2ePPnGjIyMk+Qvn8hQVxvCzq0B7NgawI6tftRUGdx7Uc7NSynnloMp5zHkC8Q5HECPXk4U9HOh7wAXevVxwslHylsUn893aN26da/ffPPNb61cuTI8+ZuomGtJudFQdq1y6BxrbfXKtI4JIQkEBZ0Qe2D0bLrevpXn0wHj2d6NnlHXnEQOEaL+2muvTTzrrLNuzMjI6Cdx7SQGDuwLNsv6Fj92bw/C13Tkvoxybl5KObccTDmPIV8nTlGA7M4O9B3gQkH/ZjFPTeNtXGvg8/kOrl279tWf//zn8yJmZVcLt96z5kZbs55yo95z6JQZ7WsdE0ISDH6zE2I/ZIa9h7dGsq4+byTqos+q6w6Hd7vdjrlz504466yzburQoUN/yWsnMRAIAKU7AijZ0ty7Xl4aPCoolHNLRZLtiAdTzi3mSlRgBzn3pivo079ZyPsOcKFTNp8lb02ampoOrFmz5tXrr79+3oYNG+og/jx5vMUcGvvqMhjsG5URQhIMCjoh9sSoR91oCLyoqBtNJGdF2DVF/Y033hh/9tln39ShQ4eT5S6fxIP6uhBKtjY/v75jqx+HDxnfu7W5dAoXSuRTzq23TTm30rRhqMsN5PU5JuTde3Jt8ragqalp/+rVq1+57rrr3i0qKqqH/ERvRkIeLzGP3BrtG5URQhIQfu0TYn/iMZGc6GRyVkTdcKI5t9vtfO2118ZNmzbtxszMzEJLnwCJC5XlwSOyHsCu7cfPDt/m0ilcKJFPObfeNuXcStNRoeEl0Pr2d6JggAu9C1xwuWN7f8Q6jY2N5atWrXr5mmuuea+4uLgBxgIuOoxddmZ26BxrbY32tY4JITaAgk5IciDaox7rRHLx6lHXFPVXXnnl9OnTp1+flZU1RPoTIPElBFTsC2JvSQClJUHs2RlAZUXQXG4o55aDKecWcyUqaGs5d7mB7j2dODHfiRN7O5F/kgvpGbwVa2saGxvLlSIWNQAAGAJJREFUvvvuu39fffXV/ykpKdESc5nh64kg5nplhBAbwF8FQpIHvb/n1hL1uPWsP/XUUwMvvvjiK7p3736moiiclzhBaKwPYc+uIPaUBJpfu4JorI+4B6ScWw6mnFvMlaigteVcUYBOnR04sXezjPfs7UT3nk44+Bh5wlBbW7vt+++/f+Oqq676qLS0tAlya5WLinm4DDrnoLGvV2a0r3VMCLEhFHRCkgszSdfbVzTKRUVddHk2aVG/6qqrujzwwAOX9OvX7yKXy5Ul+iGQ1uNAeVjYgygtCeBAeRChI7eilHPLzUtBORfIbwU5T01T0DOvWcTDQu5N521WAhKqqKhYsmDBgrk33HDDCp/PFzn7eixirtdrDtV+OAYRcTApg0ZM1HWJXT4hJNHhLwchyYvRs+nqY63n0yPLRWQ9VlHXFfb+/funPf/889OHDx9+eXp6eoHMh0Bal6bGEPbubJb1PSUB7NkZRH2d/H0j5VywSsq5eX4LyLlDAbqe4ETPvObh6j17O5HblV3jiUwgEKjbsWPHf5555pk3//a3v+2E3JrlZpO+QeNcZBkizmn1nqu3omJOKSckCaGgE5LcGD2brrevN+xdq0xE1GUFXVfY3W6341//+teo6dOnX5GbmztO9EMgbUtlRRB7djb3tJfvDWJ/WRCNDZLaRTmPzqecm+fHSc47ZCk4Mc+Jnr1dOLG3Ez16OeD28BbKDjQ0NJSuXbv2zbvvvvuDZcuWhdcwlxVy0WXStHrM9aTcSNBhsq91TAhJEvjrQkj7wawHXb0f63Pq8V6q7biyX/7yl3m33HLLZfn5+ec5HI40ic+BJACHq0KoKGuW9YqyAPaXBXFgXxBNPo1gynl0PuXcPN/CZ5SeoaBLdye6dHMgt7sDXbo50aW7g0PVbUhlZeXKRYsWzb3++usXV1dXBxDbRG+iYm7UYw6Nfa2t0b5RGSEkSeAvDiHti7bqUQe05dzqs+pH9ydMmJD5+OOPnz9o0KBLU1NTu4t8CCRBCQGHKoOoKGt+7d8XRMXeICrLgwgEhNLFSinnloOTRc7TMxTkdnMclfEu3SniyUAwGGzatWvXx//+97/ffPjhh7dCTMhF1yxv6x5zvTJCSJLBXyJC2i/x6FE32hfpWTcTddOe9PA2MzPT+corr0w844wzrujUqdNQic+BJDjBYPMw+f1hcT+yPXjAbEI6yrnltpNEzr3pCroc6Qlv7hFvlnEubZZcNDY2lm/YsOHtBx98cP6CBQsOwfoSaVoybqXHXO9Ya6veFzkmhCQx/IUipH3TFj3qMs+qWxoK/5e//OXkq6666vIePXpMVRTFLfZRELsR8AP7y5uHxlcdDKLqYOjotroyCJ9PdU9LObccnMhynpKqIKuTgqxODnTMdiC3q+OolKd34G1OMnPo0KEflyxZMueaa65ZVFlZ6YP1oeuia5ab9ZjrHWtt1ftax3plhJAkhr9chJAwbdWjbtSTLivox20vvfTSzg899NDF/fv3n+V2uzuJfxQkGairaRb26oMhHKps3jYLfBBVlSE0GExUp4ZyHkNbMci5wwFkZDYLeMdOjmYRz3Yc2+/kQGoab2XaE6FQyF9aWrpw7ty5c+69996NiO05crOec+D4XnL2mBNCWhz+qhFCIjHqUdcT+Hj1qIflGtAfBm9J3Hv37p3y/PPPnzVixIiZnTp1Gi7wOZB2QGNDqLnXvTKiB77ySA/8wSBqa0NAiHIeU1smFXhSFGR1VJCZ7UDHI8KdlX1MxjM7OuDg6mUEgM/nO1hUVDTvj3/84ztvvfXWflhbDk10+LpW73k8xFx9zB5zQkgUFHRCiB7x6FEPb2V71GWGwUtJ++23397j5z//+cyTTjppRkpKSjfhT4O0O4IBoL4u1PyqDaGuLoSGiP362mPn6utCqK9p3kZOaNde5BwK4PEoSEtXkOYFUtMUpHlVr/TjjzM7Nm8J0SMUCgUrKiqWLF269IPbb7/929LS0ibEPvO6rJSLyDkMttA4Zo85IUQX/jISQoxo7R51QFvKZYe/m57zer3OZ599duSUKVPO6969+2SHw+Ex/zgIMaep8Xipr6/FMYmvC6GpMQS/Hwj4Qwj4gUCgeb+5DAgEmvf9vub9cIzfH0IwcoCtAVEhCuBQAKdLgcMBOF2A0wk4nQqcDsDhPFLmUOB0NR87nAqczuZnvJulGkflOlVDvNnTTeJFbW1t8YYNG/7z2GOPfTJv3rwDaLlh7KIvmOxrbaFxzB5zQogpFHRCiCjx7lGP3I88dmjsm62pLtuTflzZuHHjOjz66KNTBw8efF5WVtZAk8+BkLYjdEzWm8X+2D4QId3OI9LtbJZyZ/j/dkISFL/fX11SUrLg3Xff/fDBBx/c5PP5rCyBpiflVsVcS77ZY04IaVH4c00IkSEePerhfTNRN+pBB6zPAm8o8Q888ECfa665ZmZ+fv50j8eTY/hpEEIIsUwoFAru379/6fLlyz+84447FpeUlDQifs+TW1kezcoQdvaYE0LiCgWdEGKVWHvUw/taYq4+Z/aS6WEXGg6fnZ3teu65504fP378eV26dBmvKIpL5EMhhBBiTF1d3faNGzf+58knn1wwd+7ccoj1gstO9ibacw6DYwhsoXHMHnNCiGUo6ISQWGjJHnV1udYL0H9mXWYIvGEP/IwZMzo99NBD0wsLC2dmZGT0NfpACCGEROP3+w/v2rXr0/nz5//n17/+9cYjQ9hlhq+L7ssOXY9FzEVEnHJOCJGCgk4IiRfx7FFXn9cScvU5s+HvepIuLO9ut9vxyCOPnDxr1qzzevXqdbbL5crU/zgIIaTdE9y/f//yFStW/OfOO+/8pri4WGsIu0ivuegQ9shh7KKCro6FxjnonBM9JoQQYSjohJB4YtSjLrKvJ+eR+1aGwMv0qgtJe+/evVP+93//d8Lo0aPPy8nJGa0oilP/YyGEkPZDXV1dyebNm//zt7/97ePXX3+9HOKiLTPzuuzQdTM5jyxTn1eX6R3rlRFCiDAUdEJISyHaox55LCrqkWVGw99le9VFpf24mMmTJ2c98MAD4wcPHjwlJydnjMPhcOt9KIQQkow0NjaW7dq166tPPvnk01/+8pfrVbOwy/SIq2OgEdvSw9iN9kWOCSHEMhR0QkhLItOjHnlsZfi71R52q0u4aZ4bOXJk+h/+8Ifxp5566uQuXbqc7nA4UrU/GkIIsTd1dXUlJSUliz7++OMv77//fvXSaCJSbmXoeuQM7EazsUNnX3QYu8ixXhkhhFiGgk4IaS3i0aOuLpMd/h4+p15rXUTeZaRdAeAoLCxMe+SRR04bMWLE5G7duo13Op3pGp8LIYTYhpqami3FxcWL3nnnnS//+te/bouY7E20h1xG3uPRWw5VmbocqnNWjgkhJG5Q0AkhrYlZj7r6WE/MI8tEe9b1ymPtXRcpc+Tl5aU8/vjjo8aMGTOle/fuZ3CCOUKIXaiqqlq3devWRa+++uqX//M//7MbsfWQG5VB55yehMdzGLvZObNyQgiJCxR0QkhbYSTmRsdWhr+rj2XEXU++gehedK2yqNyuXbu6H3/88eHjx4+f3KNHj4lutzsbhBCSIIRCoeDBgwdXbd68+atnnnlm0ZGJ3mLtDY/1eXIzQYdBmdYWgsd6ZYQQ0iJQ0AkhbYlsj7r6WE/arfaqh4/NJpazKvBRcZmZmc4nn3zy1EmTJk3u2bPnpJSUlC4anwkhhLQooVDIt3///hXr169f9OSTT37z0UcfHYS+WMsKeEtM8hbPYezsLSeEJAwUdEJIohCLrMejV119bOUVy5B4xev1Ov/85z8PPPvssyfn5eVNSk1N7aHxmRBCSFwIBoP15eXlS9esWbPoD3/4w7fLli2rgTXZFp3YTS3XRpO8iQxZFxm+LiPmFHJCSJtDQSeEJBp630taPefqY7PedbOyeAm70ZJuMDmvAFDcbrfjt7/9bd9p06adlp+fP6pTp07DHA6HR+ezIYQQIZqamvaXl5evWLly5Vf333//0qKiokYYC3YsQ9XDser9lu4tN9rXOtYrI4SQVoeCTghJdESGuBudE+1Vj9yPt7SLDoPXzS0oKEj53e9+N3TUqFGje/ToMTojI6MfCCHEhGAwWH/gwIHV27ZtW/HJJ5+sePTRR9Uzr4tIt9Xnx2ORcpiUqc+rz1k5JoSQNoeCTgixA1rfVUZyrj7WkvLwVkvgRYQdOCbX4XMOjTjR3nWp2FmzZuXMnj171CmnnDKmS5cuoz0eT2cQQggQrKqq2rh79+4Vy5Yt++7hhx9eV1pa2gRrvd8yMi7ygkEZBMrU5eoy0WO9MkIIaXMo6IQQu2Em5kYxer3q4W0svetWetnVveiR+8J1uN1u5f777y+YMWPGmD59+ozOzs4e5nA4UjQ+F0JIElJfX7+rrKxsxY8//vjd3//+9++//vrraoj1bLeEhIvIuEiPudZWr0zkWK+MEEISCgo6IcSOGH13aUm40TmtHnStWD0JV5/TihPpWbci9JqvvLy8lN///vdDRo8ePbpHjx5jOnTo0F/jsyCE2BS/319VXl6+csuWLSvmzJnz3fPPP1965FTkpGuxDEfXG5oer+fItXrFRWXcSMT1BJxiTgixDRR0Qojd0fse05NwvXNGZUaSDo2yWHvW4/qaOXNm9i233DKqsLBwTNeuXUd7PJ5cEEJsQzAY9B08eHBNSUnJii+++OK7hx9+uKiuri4AcYFW95hH7quF2Whmda36ZY5hUqY+ry6DTplI7zkhhNgCCjohJFkQEXWzYzNZ1+ptl5F1rTKjVzherwdea4i8Ov64XLfb7bjvvvvyp0+fPiIvL29Qdnb2oLS0tJ4ghCQMoVAoUFNTs3XPnj0rV65c+d2f/vSnH4qKihrQcsPRRYeox0PK1eegs28m5aIxhBBiKyjohJBkxUzMjWL0et/1JFy0TFbUReOM8k0nsps5c2b21VdfPbCwsHBw165dB2ZlZRU6nc40EEJahcbGxvKDBw+u37179/pVq1atf/rppzdt2LChHrELtlaPOSTyrRzDoCxya1YmeqxXRgghtoSCTghJZoy+4/Qk3OhYqwddrzwesm71XEy985mZmc577723YMKECYN79+49MCcnZ5DX680DISRmgsFgQ1VV1aby8vL1mzdv3jBv3rx1r7766r4jp+PZyx2PnnEj+TaScbNyvTLRY7NyQgixLRR0Qkh7Qe/7zkjU1eVaQq4uj2fPuvo43vIORPewa8adddZZWTfccMOggQMHDurWrdugjh07FjqdznQQQgypq6srOXDgwLqSkpINixcvXvfEE0/8VFlZ6T9y2qpcy07WZuWc2b5RWeTWrEzvWDSGEEKSCgo6IaS9ISLqenF6Mm+lZ12rTEbSRePiJfbHncvMzHTedddd+ZMnTx6cn58/sHPnzoO8Xm8+CGnH+P3+6oMHD64vKytbv27dunUvvPDCxi+//LLqyGkrPd9W44zyzGKhsa9XZlauVwadMiMBp5wTQtoFFHRCSHvHTMRFYmR61tXHRr3qevux9rbLxAqfmzBhQubs2bMLCwsLC3Nzc/tkZWUVeL3ePEVRXCAkyQgGgw21tbXbKyoqNhQXF6/77LPP1j311FO7fT6fenZ0mBzLyrlWuUwb0IjRytc6b7TV29cTaxExp5QTQtodFHRCCGmmNXrWw1uz8nhJu9UYK3KvGde1a1f3TTfd1GvMmDF98vLy+ubm5vbJzMwsODJzfPj5d0ISliMivqOqqmpbeXn59m3bthV//fXXxS+++OLeuro6WRlXH7dEr7fMMQzKRLZ6ZVrHojFG5YQQkvRQ0AkhRJt49qzr7cts9cri0dMumxNrHSgoKEi54YYb8ocPH963V69efXJycgo6dOjQJzU1tTsIaQOCwWBjhIhvOyLi21988cU9EWuOA7HJuNWyWI4hUKY+pxcLjWOZnnK9OAo5IYQcgYJOCCHGxKtnPfJYRNbD+1akPXJf9JxRjhVRN4vVfN8jR45M/9nPflYwZMiQPj169OjbqVOnPh06dOjj8Xg6g5A4EBbx6urqoz3iX3311bYIEQeMRbcle7RjEXCRfVgsh0C5URl7ygkhRBAKOiGEyGG1Zz2yXK9nXSvGSMLVx7HIu165bC+9bJzI+8G0adM6zpo1q+Dkk0/O79y5c4/MzMxuXq+3e1paWjfKO9Eg2NjYuL+hoWFvTU3NnoqKiu3btm3btnjx4uIXX3yxtLq6Wj0LOmAswnrlsci11TqN8o3KZLZ6eVoxeuXsKSeEEAtQ0AkhRB6j78549axrlZuJuV65JSk2ibUq+6JtmNV9dFtQUJBy4YUXdh08ePAJJ554Yvfc3NxuWVlZJ6Snp3fzer3dPR5PF0VR+Lx7EhEMBusbGhrK6urq9tXU1Ow9dOhQWUVFRdmOHTv2rlq1quy9996r2Ldvn+9IuJUh3zJSHEtvu8y+bJnWVvSc0T4MytlTTgghMUJBJ4SQ+BCPnvXIfaNcLZG1ujWTZr04mbriIelm70svFtnZ2a5Zs2bljho16oTevXt3z83N7d6xY8duGRkZ3b1eb/eUlJRuDofDDZIohJqamg7U19eX1dXVlVVXV5dVVlaW7d27t6yoqKjs888/37t48eLDR2ZLB+R7h2XF16h3Ol5SL9qeXq7ee1GXq3P06tCK0ytnTzkhhMQRCjohhMQXEQk3ios8pyXhejEiwh7eFxVxmRjZ3njR83rnZN4vjM55vV7Hueeemz1u3LjuPXv27NypU6esjIyMzIyMjKy0tLSs1NTULI/H09Hj8WS63e4st9udpSgKhV6CYDDY4PP5qv1+/+GmpqbqpqamqsbGxur6+vrq+vr66gMHDpSXlJTsW7t27d558+aVl5aWNkWkm/X4ipYbCayMLOvVZSTjVvKN2tW7LplzRvtq2FNOCCGtBAWdEEJallh61iPPmeXEIuzhbaw916JlenVZlXSzcsRwTr0Pt9vtGDRoUNrw4cMzCwoKOp5wwglZOTk5HTt27JiVkZGR5fV6s1JTUzOPiH1WWOpdLleGui67EQgEanw+X7XP56sOi3ZDQ0N1fX19dW1tbXVNTU31oUOHqvfv31+1e/fu6q1bt1Z999131cXFxU3QlzwzYZQRUJnec/WxmTTLxsu8F7NtLOf0YrXi9MpkYwkhhFjE1jcKhBBiI0R71o3KzaRcKy5WQY1FkK30wovma73veF2r6L5ertYx3G63kp2d7erRo4enS5cu7k6dOrn/f7vmsqM4DETRluJYASHB//8QXwMbFEFiG2aDRiNkux6ukIa5ZxNSL+hmER3Kh8Oh3+/3frPZ+N1u12+3Wz8MgxuGwXvve/+k73v3vPbOud4557uuc84575zru67zj8fjfr/fY0opppRCSinGGP9e45MQQkgpxXmewzzPIYQQp2kKt9stTtMUr9drmKYpjOMYLpdLGMcxnk6ncDweL+fzOb7+XU84Yvh6T/VoJJXqsd6yc3LU3Fo8N6M2v9Zfui/FNHEAAACNQNABAGAdWsQ8F69J5L8xqai+xqXbawuZb7lyc6U8t6Y2t1TPyS/1nKYES5LnHJOmtuW5GqmwajftEhGXXq034C0/hLxiIeoAAACMgaADAMC6SMWtVm8t7FReu4Gv9Ujj3PewzNdel2JaAV9L0Kk66THpkljmcho51co557rULG2eytW+W0ktJw8AAMAYCDoAAPwuuAJOxSlB5BzV5op6Lr9WzlrSczWc/lI9FV/ruWx1xJm7WecIvFRkLbbV3NwS22/N/yuX08apHAAAgDcAQQcAgN9Nq/DVctLj2lqpp2qluSV7S7NydVTe8rtrqf35kYlXq/DVtr61vOWW2WKDbTFX81qSewUbcgAA+HAg6AAA8Fm0bNFreY5ccrbLFjXv2IJrazj33BpJvrVeKmJSseOIYYucajfukhmaHwU482uvSzFsyAEA4D8Fgg4AAJ+JVvg0G/Zar0R0az2lGZKNfEtNro47o9RLzaR41zOaK21SseTUcUVeI78Woi+toeqo3lIPlYOUAwDAlwBBBwCA76BlQ/sOaafuuYJvtRWv9WjemzuDEy/R+szWippUuiV1kmPwXLFt2chzPiNkHAAAwGJA0AEA4DtZSthz+ZYj35a1GjEvzZV+Dk2cytVY+og71ceR0VJcI/ZcEZYIs/aHAs5sbg/3/Skg5gAA8CX8ASik6Ump+52jAAAAAElFTkSuQmCC"/>
8 <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
9 <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
10 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
11 <feMerge>
12 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
13 <feMergeNode in="SourceGraphic"></feMergeNode>
14 </feMerge>
15 </filter>
16 <linearGradient x1="30.4719662%" y1="95.2408507%" x2="68.063052%" y2="3.5648771%" id="linearGradient-2">
17 <stop stop-color="#318CC8" offset="0%"></stop>
18 <stop stop-color="#5EC0FF" offset="100%"></stop>
19 </linearGradient>
20 </defs> 7 </defs>
21 <g id="icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 8</svg>
22 <g id="franz">
23 <g id="Page-1" filter="url(#filter-1)" transform="translate(4.000000, 4.000000)">
24 <path d="M35.9420808,71.5384615 C16.3467148,71.5384615 0.461538462,55.6532852 0.461538462,36.0579192 C0.461538462,16.4625533 16.3467148,0.577376909 35.9420808,0.577376909 C55.5374467,0.577376909 71.4226231,16.4625533 71.4226231,36.0579192 C71.4226231,55.6532852 55.5374467,71.5384615 35.9420808,71.5384615 Z" id="Fill-1" stroke="#FFFFFF" stroke-width="2.5" fill="url(#linearGradient-2)"></path>
25 <path d="M48.9831862,47.7311418 C48.3589601,47.7311418 47.7333024,47.695349 47.1072541,47.6262364 L47.1072541,51.7992839 C47.1072541,53.122185 48.5184007,53.8277583 50.4587598,53.8277583 C52.3991188,53.8277583 56.8089193,54.18061 58.5727874,51.0937106 C59.4799717,49.5060731 60.0599449,47.7327036 60.4099332,46.2456764 C57.3247258,47.2180686 53.4557216,47.7311418 48.9831862,47.7311418" id="Fill-3" fill="#FEFEFE"></path>
26 <path d="M60.8655036,43.2258722 C60.8656338,43.2176724 60.8658941,43.2080409 60.8658941,43.2002315 C60.8658941,42.8456878 60.7797311,40.8259338 60.667537,38.2174863 C60.6590769,38.2176164 60.6513977,38.2178768 60.6428075,38.2178768 C58.3771897,38.2178768 55.0258142,37.0998405 53.3244207,35.7764188 C52.9135196,35.4568869 52.4548514,35.0301068 51.9649459,34.5413727 C49.7058359,37.4808058 47.549809,41.6273016 47.1687136,44.910866 C47.7640451,44.9870071 48.3697891,45.0282664 48.9832122,45.0282664 C53.829164,45.0282664 57.9269816,44.3915454 60.8655036,43.2258722" id="Fill-5" fill="#FEFEFE"></path>
27 <path d="M54.9840212,33.643 C56.1988932,34.5880595 58.8726789,35.4818377 60.5515554,35.5134655 C60.3633505,31.0949446 60.1603078,26.114412 60.1603078,24.4584428 C60.1603078,21.3716736 60.2495945,18.5935032 59.2783737,18.5935032 C56.8089323,18.5935032 57.4262601,29.3093405 54.3393608,31.9551427 C54.1456893,32.1212212 53.9478528,32.3035691 53.747153,32.5006246 C54.2137606,32.9712671 54.6418423,33.3768319 54.9840212,33.643" id="Fill-7" fill="#FEFEFE"></path>
28 <path d="M12.0732694,35.4601798 C13.7241625,35.2508897 15.8906017,34.4664421 16.9491569,33.6430781 C17.3707308,33.3150861 17.9225903,32.7754611 18.5167504,32.1628189 C18.4383968,32.091754 18.3603035,32.0212096 18.2832514,31.9552208 C15.196352,29.3092884 15.8136798,18.5934511 13.3442384,18.5934511 C12.3731478,18.5934511 12.4623043,21.3716215 12.4623043,24.4585209 C12.4623043,26.107722 12.2608235,31.0550649 12.0732694,35.4601798" id="Fill-9" fill="#FEFEFE"></path>
29 <path d="M25.4406878,44.8074965 C25.008311,41.3920845 22.6955769,37.0765166 20.3525165,34.1524418 C19.7173574,34.8036101 19.1252797,35.3746025 18.6085622,35.7765229 C17.0675204,36.9752556 14.1720798,38.005567 11.9563116,38.188826 C11.8435969,40.8110701 11.7566529,42.8443602 11.7566529,43.2002055 C11.7566529,43.278429 11.7602973,43.3748743 11.7669352,43.4845954 C14.6418112,44.484971 18.4764543,45.0282403 22.9499008,45.0282403 C23.7973437,45.0282403 24.6298186,44.9488454 25.4406878,44.8074965" id="Fill-11" fill="#FEFEFE"></path>
30 <path d="M22.9499399,47.7311418 C18.830126,47.7311418 15.2211727,47.2965524 12.266251,46.4681122 C12.6207947,47.9073724 13.1873619,49.5845569 14.0497726,51.0937106 C15.8137709,54.18061 20.2235714,53.8277583 22.1638003,53.8277583 C24.1041594,53.8277583 25.515306,53.122185 25.515306,51.7992839 L25.515306,47.5360386 C24.6592728,47.6651529 23.8033699,47.7311418 22.9499399,47.7311418" id="Fill-13" fill="#FEFEFE"></path>
31 <path d="M63.5454456,37.4703413 C63.0231314,37.4703413 62.4684084,37.6495655 61.8962446,38.0029379 C61.814637,38.0533081 61.4828705,38.2178247 60.6428465,38.2178247 C58.3770986,38.2178247 55.0258532,37.0999186 53.3244598,35.7764969 C52.4748043,35.1156971 51.4221061,33.9989624 50.3075841,32.8167595 C47.9636126,30.3303978 45.7496666,27.9820011 43.8337767,27.9820011 C42.471829,27.9820011 40.9034545,28.6166396 39.3866216,29.2305834 C38.1232016,29.7418344 36.8167001,30.2705263 35.966524,30.2705263 C35.1163479,30.2705263 33.8099765,29.7418344 32.5465565,29.2305834 C31.0297236,28.6166396 29.461219,27.9820011 28.0994014,27.9820011 C26.1833814,27.9820011 23.9693052,30.330528 21.6254639,32.8168896 C20.5109419,33.9990926 19.4582437,35.1156971 18.6085882,35.7764969 C16.9074551,37.0997884 13.5560796,38.2176945 11.2902015,38.2178247 C10.4503076,38.2178247 10.1185411,38.0533081 10.0369336,38.0029379 C9.46476974,37.6495655 8.9099166,37.4703413 8.3877325,37.4703413 C7.64857908,37.4703413 7.0250038,37.8567732 6.76039755,38.4787866 C6.43422772,39.2456631 6.70586237,40.1875989 7.48679572,40.9985982 C9.95272293,43.559539 15.5888491,45.0282143 22.9499269,45.0282143 C27.7832535,45.0282143 32.1465885,42.492784 34.6182426,40.1200482 C35.1197319,39.6387329 35.7738938,39.6142637 35.8998843,39.6142637 L35.9039192,39.6137431 L35.9276075,39.6223333 L36.0163736,39.614524 L36.0331636,39.6142637 C36.1591542,39.6142637 36.8134462,39.6387329 37.3149356,40.1200482 C39.7865896,42.492784 44.1497944,45.0282143 48.9831211,45.0282143 C56.3441989,45.0282143 61.980325,43.559539 64.4463824,40.9985982 C65.2273158,40.1877291 65.4986901,39.2456631 65.1726504,38.4787866 C64.9080442,37.8567732 64.2844689,37.4703413 63.5454456,37.4703413" id="Fill-15" fill="#FEFEFE"></path>
32 </g>
33 </g>
34 </g>
35</svg> \ No newline at end of file
diff --git a/src/assets/images/sm.png b/src/assets/images/sm.png
index 2bf169bee..d5ba1fd0b 100644
--- a/src/assets/images/sm.png
+++ b/src/assets/images/sm.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-active.png b/src/assets/images/tray/darwin-dark/tray-active.png
index 489533dbf..4c5c4ae2f 100644
--- a/src/assets/images/tray/darwin-dark/tray-active.png
+++ b/src/assets/images/tray/darwin-dark/tray-active.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-active@2x.png b/src/assets/images/tray/darwin-dark/tray-active@2x.png
index 76f212b52..59675fec3 100644
--- a/src/assets/images/tray/darwin-dark/tray-active@2x.png
+++ b/src/assets/images/tray/darwin-dark/tray-active@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-unread-active.png b/src/assets/images/tray/darwin-dark/tray-unread-active.png
index e2fd1a822..881c1da50 100644
--- a/src/assets/images/tray/darwin-dark/tray-unread-active.png
+++ b/src/assets/images/tray/darwin-dark/tray-unread-active.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-unread-active@2x.png b/src/assets/images/tray/darwin-dark/tray-unread-active@2x.png
index 9a64b3ef8..308b20c63 100644
--- a/src/assets/images/tray/darwin-dark/tray-unread-active@2x.png
+++ b/src/assets/images/tray/darwin-dark/tray-unread-active@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-unread.png b/src/assets/images/tray/darwin-dark/tray-unread.png
index e2fd1a822..881c1da50 100644
--- a/src/assets/images/tray/darwin-dark/tray-unread.png
+++ b/src/assets/images/tray/darwin-dark/tray-unread.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray-unread@2x.png b/src/assets/images/tray/darwin-dark/tray-unread@2x.png
index 9a64b3ef8..308b20c63 100644
--- a/src/assets/images/tray/darwin-dark/tray-unread@2x.png
+++ b/src/assets/images/tray/darwin-dark/tray-unread@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray.png b/src/assets/images/tray/darwin-dark/tray.png
index 489533dbf..4c5c4ae2f 100644
--- a/src/assets/images/tray/darwin-dark/tray.png
+++ b/src/assets/images/tray/darwin-dark/tray.png
Binary files differ
diff --git a/src/assets/images/tray/darwin-dark/tray@2x.png b/src/assets/images/tray/darwin-dark/tray@2x.png
index 76f212b52..59675fec3 100644
--- a/src/assets/images/tray/darwin-dark/tray@2x.png
+++ b/src/assets/images/tray/darwin-dark/tray@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-active.png b/src/assets/images/tray/darwin/tray-active.png
index 489533dbf..4c5c4ae2f 100644
--- a/src/assets/images/tray/darwin/tray-active.png
+++ b/src/assets/images/tray/darwin/tray-active.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-active@2x.png b/src/assets/images/tray/darwin/tray-active@2x.png
index 76f212b52..59675fec3 100644
--- a/src/assets/images/tray/darwin/tray-active@2x.png
+++ b/src/assets/images/tray/darwin/tray-active@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-unread-active.png b/src/assets/images/tray/darwin/tray-unread-active.png
index e2fd1a822..881c1da50 100644
--- a/src/assets/images/tray/darwin/tray-unread-active.png
+++ b/src/assets/images/tray/darwin/tray-unread-active.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-unread-active@2x.png b/src/assets/images/tray/darwin/tray-unread-active@2x.png
index 9a64b3ef8..308b20c63 100644
--- a/src/assets/images/tray/darwin/tray-unread-active@2x.png
+++ b/src/assets/images/tray/darwin/tray-unread-active@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-unread.png b/src/assets/images/tray/darwin/tray-unread.png
index a94ad81fb..29115b631 100644
--- a/src/assets/images/tray/darwin/tray-unread.png
+++ b/src/assets/images/tray/darwin/tray-unread.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray-unread@2x.png b/src/assets/images/tray/darwin/tray-unread@2x.png
index 56e74b16a..008fe876e 100644
--- a/src/assets/images/tray/darwin/tray-unread@2x.png
+++ b/src/assets/images/tray/darwin/tray-unread@2x.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray.png b/src/assets/images/tray/darwin/tray.png
index 583f34df8..3ea106e29 100644
--- a/src/assets/images/tray/darwin/tray.png
+++ b/src/assets/images/tray/darwin/tray.png
Binary files differ
diff --git a/src/assets/images/tray/darwin/tray@2x.png b/src/assets/images/tray/darwin/tray@2x.png
index 479a2cf95..04b7d5b63 100644
--- a/src/assets/images/tray/darwin/tray@2x.png
+++ b/src/assets/images/tray/darwin/tray@2x.png
Binary files differ
diff --git a/src/assets/images/tray/linux/tray-unread.png b/src/assets/images/tray/linux/tray-unread.png
index 5697141e0..bd682d9ae 100644
--- a/src/assets/images/tray/linux/tray-unread.png
+++ b/src/assets/images/tray/linux/tray-unread.png
Binary files differ
diff --git a/src/assets/images/tray/linux/tray-unread@2x.png b/src/assets/images/tray/linux/tray-unread@2x.png
index d31e1401d..70fdb0425 100644
--- a/src/assets/images/tray/linux/tray-unread@2x.png
+++ b/src/assets/images/tray/linux/tray-unread@2x.png
Binary files differ
diff --git a/src/assets/images/tray/linux/tray.png b/src/assets/images/tray/linux/tray.png
index 29a13da12..203c1c86f 100644
--- a/src/assets/images/tray/linux/tray.png
+++ b/src/assets/images/tray/linux/tray.png
Binary files differ
diff --git a/src/assets/images/tray/linux/tray@2x.png b/src/assets/images/tray/linux/tray@2x.png
index 256c52dcc..8cc22ba27 100644
--- a/src/assets/images/tray/linux/tray@2x.png
+++ b/src/assets/images/tray/linux/tray@2x.png
Binary files differ
diff --git a/src/assets/images/tray/win32/tray-unread.ico b/src/assets/images/tray/win32/tray-unread.ico
index 507845120..9421512c8 100644
--- a/src/assets/images/tray/win32/tray-unread.ico
+++ b/src/assets/images/tray/win32/tray-unread.ico
Binary files differ
diff --git a/src/assets/images/tray/win32/tray.ico b/src/assets/images/tray/win32/tray.ico
index 1f0057a8c..dcb721ada 100644
--- a/src/assets/images/tray/win32/tray.ico
+++ b/src/assets/images/tray/win32/tray.ico
Binary files differ
diff --git a/src/components/AppUpdateInfoBar.js b/src/components/AppUpdateInfoBar.js
index 4fb3a8b71..4108fdf12 100644
--- a/src/components/AppUpdateInfoBar.js
+++ b/src/components/AppUpdateInfoBar.js
@@ -8,7 +8,7 @@ import InfoBar from './ui/InfoBar';
8const messages = defineMessages({ 8const messages = defineMessages({
9 updateAvailable: { 9 updateAvailable: {
10 id: 'infobar.updateAvailable', 10 id: 'infobar.updateAvailable',
11 defaultMessage: '!!!A new update for Franz is available.', 11 defaultMessage: '!!!A new update for Ferdi is available.',
12 }, 12 },
13 changelog: { 13 changelog: {
14 id: 'infobar.buttonChangelog', 14 id: 'infobar.buttonChangelog',
diff --git a/src/components/auth/AuthLayout.js b/src/components/auth/AuthLayout.js
index 75a8cfc61..641b754ed 100644
--- a/src/components/auth/AuthLayout.js
+++ b/src/components/auth/AuthLayout.js
@@ -52,7 +52,7 @@ export default @observer class AuthLayout extends Component {
52 52
53 return ( 53 return (
54 <> 54 <>
55 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon="assets/images/logo.svg" />} 55 {isWindows && !isFullScreen && <TitleBar menu={window.ferdi.menu.template} icon="assets/images/logo.svg" />}
56 <div className="auth"> 56 <div className="auth">
57 {!isOnline && ( 57 {!isOnline && (
58 <InfoBar 58 <InfoBar
@@ -87,7 +87,7 @@ export default @observer class AuthLayout extends Component {
87 })} 87 })}
88 </div> 88 </div>
89 {/* </div> */} 89 {/* </div> */}
90 <Link to="https://adlk.io" className="auth__adlk" target="_blank"> 90 <Link to="https://github.com/kytwb/ferdi" className="auth__adlk" target="_blank">
91 <img src="./assets/images/adlk.svg" alt="" /> 91 <img src="./assets/images/adlk.svg" alt="" />
92 </Link> 92 </Link>
93 </div> 93 </div>
diff --git a/src/components/auth/Import.js b/src/components/auth/Import.js
index 0d5feb274..3e34c3162 100644
--- a/src/components/auth/Import.js
+++ b/src/components/auth/Import.js
@@ -12,11 +12,11 @@ import Button from '../ui/Button';
12const messages = defineMessages({ 12const messages = defineMessages({
13 headline: { 13 headline: {
14 id: 'import.headline', 14 id: 'import.headline',
15 defaultMessage: '!!!Import your Franz 4 services', 15 defaultMessage: '!!!Import your Ferdi 4 services',
16 }, 16 },
17 notSupportedHeadline: { 17 notSupportedHeadline: {
18 id: 'import.notSupportedHeadline', 18 id: 'import.notSupportedHeadline',
19 defaultMessage: '!!!Services not yet supported in Franz 5', 19 defaultMessage: '!!!Services not yet supported in Ferdi 5',
20 }, 20 },
21 submitButtonLabel: { 21 submitButtonLabel: {
22 id: 'import.submit.label', 22 id: 'import.submit.label',
diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js
index 5d21f8b60..270dff30b 100644
--- a/src/components/auth/Login.js
+++ b/src/components/auth/Login.js
@@ -34,6 +34,14 @@ const messages = defineMessages({
34 id: 'login.invalidCredentials', 34 id: 'login.invalidCredentials',
35 defaultMessage: '!!!Email or password not valid', 35 defaultMessage: '!!!Email or password not valid',
36 }, 36 },
37 customServerQuestion: {
38 id: 'login.customServerQuestion',
39 defaultMessage: '!!!Using a custom Ferdi server?',
40 },
41 customServerSuggestion: {
42 id: 'login.customServerSuggestion',
43 defaultMessage: '!!!Try importing your Franz account',
44 },
37 tokenExpired: { 45 tokenExpired: {
38 id: 'login.tokenExpired', 46 id: 'login.tokenExpired',
39 defaultMessage: '!!!Your session expired, please login again.', 47 defaultMessage: '!!!Your session expired, please login again.',
@@ -137,7 +145,22 @@ export default @observer class Login extends Component {
137 showPasswordToggle 145 showPasswordToggle
138 /> 146 />
139 {error.code === 'invalid-credentials' && ( 147 {error.code === 'invalid-credentials' && (
140 <p className="error-message center">{intl.formatMessage(messages.invalidCredentials)}</p> 148 <>
149 <p className="error-message center">{intl.formatMessage(messages.invalidCredentials)}</p>
150 { window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' && (
151 <p className="error-message center">
152 {intl.formatMessage(messages.customServerQuestion)}
153 {' '}
154 <Link
155 to={`${window.ferdi.stores.settings.all.app.server.replace('v1', '')}/import`}
156 target="_blank"
157 style={{ cursor: 'pointer', textDecoration: 'underline' }}
158 >
159 {intl.formatMessage(messages.customServerSuggestion)}
160 </Link>
161 </p>
162 )}
163 </>
141 )} 164 )}
142 {isSubmitting ? ( 165 {isSubmitting ? (
143 <Button 166 <Button
@@ -156,6 +179,7 @@ export default @observer class Login extends Component {
156 )} 179 )}
157 </form> 180 </form>
158 <div className="auth__links"> 181 <div className="auth__links">
182 <Link to="/settings/app">Change server</Link>
159 <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link> 183 <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link>
160 <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link> 184 <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link>
161 </div> 185 </div>
diff --git a/src/components/auth/Signup.js b/src/components/auth/Signup.js
index 0499d764b..b36e71ce1 100644
--- a/src/components/auth/Signup.js
+++ b/src/components/auth/Signup.js
@@ -40,7 +40,7 @@ const messages = defineMessages({
40 }, 40 },
41 legalInfo: { 41 legalInfo: {
42 id: 'signup.legal.info', 42 id: 'signup.legal.info',
43 defaultMessage: '!!!By creating a Franz account you accept the', 43 defaultMessage: '!!!By creating a Ferdi account you accept the',
44 }, 44 },
45 terms: { 45 terms: {
46 id: 'signup.legal.terms', 46 id: 'signup.legal.terms',
@@ -117,6 +117,8 @@ export default @observer class Signup extends Component {
117 const { intl } = this.context; 117 const { intl } = this.context;
118 const { isSubmitting, loginRoute, error } = this.props; 118 const { isSubmitting, loginRoute, error } = this.props;
119 119
120 const termsBase = window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com';
121
120 return ( 122 return (
121 <div className="auth__scroll-container"> 123 <div className="auth__scroll-container">
122 <div className="auth__container auth__container--signup"> 124 <div className="auth__container auth__container--signup">
@@ -163,7 +165,7 @@ export default @observer class Signup extends Component {
163 {intl.formatMessage(messages.legalInfo)} 165 {intl.formatMessage(messages.legalInfo)}
164 <br /> 166 <br />
165 <Link 167 <Link
166 to="https://meetfranz.com/terms" 168 to={`${termsBase}/terms`}
167 target="_blank" 169 target="_blank"
168 className="link" 170 className="link"
169 > 171 >
@@ -171,7 +173,7 @@ export default @observer class Signup extends Component {
171 </Link> 173 </Link>
172 &nbsp;&amp;&nbsp; 174 &nbsp;&amp;&nbsp;
173 <Link 175 <Link
174 to="https://meetfranz.com/privacy" 176 to={`${termsBase}/privacy`}
175 target="_blank" 177 target="_blank"
176 className="link" 178 className="link"
177 > 179 >
@@ -181,6 +183,7 @@ export default @observer class Signup extends Component {
181 </p> 183 </p>
182 </form> 184 </form>
183 <div className="auth__links"> 185 <div className="auth__links">
186 <Link to="/settings/app">Change server</Link>
184 <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link> 187 <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link>
185 </div> 188 </div>
186 </div> 189 </div>
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js
index f6d77f70f..ef917e336 100644
--- a/src/components/auth/Welcome.js
+++ b/src/components/auth/Welcome.js
@@ -41,7 +41,7 @@ export default @observer class Login extends Component {
41 <img src="./assets/images/logo.svg" className="welcome__logo" alt="" /> 41 <img src="./assets/images/logo.svg" className="welcome__logo" alt="" />
42 {/* <img src="./assets/images/welcome.png" className="welcome__services" alt="" /> */} 42 {/* <img src="./assets/images/welcome.png" className="welcome__services" alt="" /> */}
43 <div className="welcome__text"> 43 <div className="welcome__text">
44 <h1>Franz</h1> 44 <h1>Ferdi</h1>
45 </div> 45 </div>
46 </div> 46 </div>
47 <div className="welcome__buttons"> 47 <div className="welcome__buttons">
@@ -51,6 +51,19 @@ export default @observer class Login extends Component {
51 <Link to={loginRoute} className="button"> 51 <Link to={loginRoute} className="button">
52 {intl.formatMessage(messages.loginButton)} 52 {intl.formatMessage(messages.loginButton)}
53 </Link> 53 </Link>
54 <br />
55 <br />
56
57 <Link to="settings/app">
58 <span style={{
59 textAlign: 'center',
60 width: '100%',
61 cursor: 'pointer',
62 }}
63 >
64 Change server
65 </span>
66 </Link>
54 </div> 67 </div>
55 <div className="welcome__featured-services"> 68 <div className="welcome__featured-services">
56 {recipes.map(recipe => ( 69 {recipes.map(recipe => (
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index 200777ae6..ed004d07e 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -6,7 +6,6 @@ import { TitleBar } from 'electron-react-titlebar';
6import injectSheet from 'react-jss'; 6import injectSheet from 'react-jss';
7 7
8import InfoBar from '../ui/InfoBar'; 8import InfoBar from '../ui/InfoBar';
9import { Component as DelayApp } from '../../features/delayApp';
10import { Component as BasicAuth } from '../../features/basicAuth'; 9import { Component as BasicAuth } from '../../features/basicAuth';
11import { Component as ShareFranz } from '../../features/shareFranz'; 10import { Component as ShareFranz } from '../../features/shareFranz';
12import ErrorBoundary from '../util/ErrorBoundary'; 11import ErrorBoundary from '../util/ErrorBoundary';
@@ -37,6 +36,10 @@ const messages = defineMessages({
37 id: 'infobar.requiredRequestsFailed', 36 id: 'infobar.requiredRequestsFailed',
38 defaultMessage: '!!!Could not load services and user information', 37 defaultMessage: '!!!Could not load services and user information',
39 }, 38 },
39 authRequestFailed: {
40 id: 'infobar.authRequestFailed',
41 defaultMessage: '!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.',
42 },
40}); 43});
41 44
42const styles = theme => ({ 45const styles = theme => ({
@@ -63,6 +66,7 @@ class AppLayout extends Component {
63 showServicesUpdatedInfoBar: PropTypes.bool.isRequired, 66 showServicesUpdatedInfoBar: PropTypes.bool.isRequired,
64 appUpdateIsDownloaded: PropTypes.bool.isRequired, 67 appUpdateIsDownloaded: PropTypes.bool.isRequired,
65 nextAppReleaseVersion: PropTypes.string, 68 nextAppReleaseVersion: PropTypes.string,
69 authRequestFailed: PropTypes.bool.isRequired,
66 removeNewsItem: PropTypes.func.isRequired, 70 removeNewsItem: PropTypes.func.isRequired,
67 reloadServicesAfterUpdate: PropTypes.func.isRequired, 71 reloadServicesAfterUpdate: PropTypes.func.isRequired,
68 installAppUpdate: PropTypes.func.isRequired, 72 installAppUpdate: PropTypes.func.isRequired,
@@ -95,6 +99,7 @@ class AppLayout extends Component {
95 showServicesUpdatedInfoBar, 99 showServicesUpdatedInfoBar,
96 appUpdateIsDownloaded, 100 appUpdateIsDownloaded,
97 nextAppReleaseVersion, 101 nextAppReleaseVersion,
102 authRequestFailed,
98 removeNewsItem, 103 removeNewsItem,
99 reloadServicesAfterUpdate, 104 reloadServicesAfterUpdate,
100 installAppUpdate, 105 installAppUpdate,
@@ -111,7 +116,7 @@ class AppLayout extends Component {
111 return ( 116 return (
112 <ErrorBoundary> 117 <ErrorBoundary>
113 <div className="app"> 118 <div className="app">
114 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon="assets/images/logo.svg" />} 119 {isWindows && !isFullScreen && <TitleBar menu={window.ferdi.menu.template} icon="assets/images/logo.svg" />}
115 <div className={`app__content ${classes.appContent}`}> 120 <div className={`app__content ${classes.appContent}`}>
116 {workspacesDrawer} 121 {workspacesDrawer}
117 {sidebar} 122 {sidebar}
@@ -151,6 +156,18 @@ class AppLayout extends Component {
151 {intl.formatMessage(messages.requiredRequestsFailed)} 156 {intl.formatMessage(messages.requiredRequestsFailed)}
152 </InfoBar> 157 </InfoBar>
153 )} 158 )}
159 {authRequestFailed && (
160 <InfoBar
161 type="danger"
162 ctaLabel="Try again"
163 ctaLoading={areRequiredRequestsLoading}
164 sticky
165 onClick={retryRequiredRequests}
166 >
167 <span className="mdi mdi-flash" />
168 {intl.formatMessage(messages.authRequestFailed)}
169 </InfoBar>
170 )}
154 {showServicesUpdatedInfoBar && ( 171 {showServicesUpdatedInfoBar && (
155 <InfoBar 172 <InfoBar
156 type="primary" 173 type="primary"
@@ -168,7 +185,6 @@ class AppLayout extends Component {
168 onInstallUpdate={installAppUpdate} 185 onInstallUpdate={installAppUpdate}
169 /> 186 />
170 )} 187 )}
171 {isDelayAppScreenVisible && (<DelayApp />)}
172 <BasicAuth /> 188 <BasicAuth />
173 <ShareFranz /> 189 <ShareFranz />
174 {services} 190 {services}
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index 36c1f2e39..1bf2554b5 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -3,11 +3,11 @@ import PropTypes from 'prop-types';
3import ReactTooltip from 'react-tooltip'; 3import ReactTooltip from 'react-tooltip';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
5import { observer } from 'mobx-react'; 5import { observer } from 'mobx-react';
6import { Link } from 'react-router';
6 7
7import Tabbar from '../services/tabs/Tabbar'; 8import Tabbar from '../services/tabs/Tabbar';
8import { ctrlKey } from '../../environment'; 9import { ctrlKey } from '../../environment';
9import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../../features/workspaces'; 10import { workspaceStore } from '../../features/workspaces';
10import { gaEvent } from '../../lib/analytics';
11 11
12const messages = defineMessages({ 12const messages = defineMessages({
13 settings: { 13 settings: {
@@ -82,6 +82,7 @@ export default @observer class Sidebar extends Component {
82 const workspaceToggleMessage = ( 82 const workspaceToggleMessage = (
83 isWorkspaceDrawerOpen ? messages.closeWorkspaceDrawer : messages.openWorkspaceDrawer 83 isWorkspaceDrawerOpen ? messages.closeWorkspaceDrawer : messages.openWorkspaceDrawer
84 ); 84 );
85 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
85 86
86 return ( 87 return (
87 <div className="sidebar"> 88 <div className="sidebar">
@@ -90,39 +91,54 @@ export default @observer class Sidebar extends Component {
90 enableToolTip={() => this.enableToolTip()} 91 enableToolTip={() => this.enableToolTip()}
91 disableToolTip={() => this.disableToolTip()} 92 disableToolTip={() => this.disableToolTip()}
92 /> 93 />
93 {workspaceStore.isFeatureEnabled ? ( 94 {
94 <button 95 isLoggedIn ? (
95 type="button" 96 <>
96 onClick={() => { 97 {workspaceStore.isFeatureEnabled ? (
97 toggleWorkspaceDrawer(); 98 <button
98 this.updateToolTip(); 99 type="button"
99 gaEvent(GA_CATEGORY_WORKSPACES, 'toggleDrawer', 'sidebar'); 100 onClick={() => {
100 }} 101 toggleWorkspaceDrawer();
101 className={`sidebar__button sidebar__button--workspaces ${isWorkspaceDrawerOpen ? 'is-active' : ''}`} 102 this.updateToolTip();
102 data-tip={`${intl.formatMessage(workspaceToggleMessage)} (${ctrlKey}+D)`} 103 }}
103 > 104 className={`sidebar__button sidebar__button--workspaces ${isWorkspaceDrawerOpen ? 'is-active' : ''}`}
104 <i className="mdi mdi-view-grid" /> 105 data-tip={`${intl.formatMessage(workspaceToggleMessage)} (${ctrlKey}+D)`}
105 </button> 106 >
106 ) : null} 107 <i className="mdi mdi-view-grid" />
107 <button 108 </button>
108 type="button" 109 ) : null}
109 onClick={() => { 110
110 toggleMuteApp(); 111 <button
111 this.updateToolTip(); 112 type="button"
112 }} 113 onClick={() => {
113 className={`sidebar__button sidebar__button--audio ${isAppMuted ? 'is-muted' : ''}`} 114 toggleMuteApp();
114 data-tip={`${intl.formatMessage(isAppMuted ? messages.unmute : messages.mute)} (${ctrlKey}+Shift+M)`} 115 this.updateToolTip();
115 > 116 }}
116 <i className={`mdi mdi-bell${isAppMuted ? '-off' : ''}`} /> 117 className={`sidebar__button sidebar__button--audio ${isAppMuted ? 'is-muted' : ''}`}
117 </button> 118 data-tip={`${intl.formatMessage(isAppMuted ? messages.unmute : messages.mute)} (${ctrlKey}+Shift+M)`}
118 <button 119 >
119 type="button" 120 <i className={`mdi mdi-bell${isAppMuted ? '-off' : ''}`} />
120 onClick={() => openSettings({ path: 'recipes' })} 121 </button>
121 className="sidebar__button sidebar__button--new-service" 122 <button
122 data-tip={`${intl.formatMessage(messages.addNewService)} (${ctrlKey}+N)`} 123 type="button"
123 > 124 onClick={() => openSettings({ path: 'recipes' })}
124 <i className="mdi mdi-plus-box" /> 125 className="sidebar__button sidebar__button--new-service"
125 </button> 126 data-tip={`${intl.formatMessage(messages.addNewService)} (${ctrlKey}+N)`}
127 >
128 <i className="mdi mdi-plus-box" />
129 </button>
130 </>
131 ) : (
132 <Link
133 to="/auth/welcome"
134 className="sidebar__button sidebar__button--new-service"
135 data-tip="Login"
136 >
137 <i className="mdi mdi-login-variant" />
138 </Link>
139 )
140 }
141
126 <button 142 <button
127 type="button" 143 type="button"
128 onClick={() => openSettings({ path: 'app' })} 144 onClick={() => openSettings({ path: 'app' })}
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js
index 73c27bfb6..1afbaabc4 100644
--- a/src/components/services/content/Services.js
+++ b/src/components/services/content/Services.js
@@ -13,12 +13,20 @@ import Appear from '../../ui/effects/Appear';
13const messages = defineMessages({ 13const messages = defineMessages({
14 welcome: { 14 welcome: {
15 id: 'services.welcome', 15 id: 'services.welcome',
16 defaultMessage: '!!!Welcome to Franz', 16 defaultMessage: '!!!Welcome to Ferdi',
17 }, 17 },
18 getStarted: { 18 getStarted: {
19 id: 'services.getStarted', 19 id: 'services.getStarted',
20 defaultMessage: '!!!Get started', 20 defaultMessage: '!!!Get started',
21 }, 21 },
22 login: {
23 id: 'services.login',
24 defaultMessage: '!!!Please login to use Ferdi.',
25 },
26 serverInfo: {
27 id: 'services.serverInfo',
28 defaultMessage: '!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.',
29 },
22}); 30});
23 31
24 32
@@ -86,6 +94,7 @@ export default @observer @injectSheet(styles) class Services extends Component {
86 } = this.state; 94 } = this.state;
87 95
88 const { intl } = this.context; 96 const { intl } = this.context;
97 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
89 98
90 return ( 99 return (
91 <div className="services"> 100 <div className="services">
@@ -104,14 +113,20 @@ export default @observer @injectSheet(styles) class Services extends Component {
104 transitionName="slideUp" 113 transitionName="slideUp"
105 > 114 >
106 <div className="services__no-service"> 115 <div className="services__no-service">
107 <img src="./assets/images/logo.svg" alt="" /> 116 <img src="./assets/images/logo.svg" alt="Logo" style={{ maxHeight: '50vh' }} />
108 <h1>{intl.formatMessage(messages.welcome)}</h1> 117 <h1>{intl.formatMessage(messages.welcome)}</h1>
118 { !isLoggedIn && (
119 <>
120 <p>{intl.formatMessage(messages.login)}</p>
121 <p>{intl.formatMessage(messages.serverInfo)}</p>
122 </>
123 ) }
109 <Appear 124 <Appear
110 timeout={300} 125 timeout={300}
111 transitionName="slideUp" 126 transitionName="slideUp"
112 > 127 >
113 <Link to="/settings/recipes" className="button"> 128 <Link to={isLoggedIn ? '/settings/services' : '/auth/welcome'} className="button">
114 {intl.formatMessage(messages.getStarted)} 129 { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' }
115 </Link> 130 </Link>
116 </Appear> 131 </Appear>
117 </div> 132 </div>
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js
index ac2594604..f588449f4 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -69,7 +69,7 @@ const messages = defineMessages({
69 }, 69 },
70 deleteInfo: { 70 deleteInfo: {
71 id: 'settings.account.deleteInfo', 71 id: 'settings.account.deleteInfo',
72 defaultMessage: '!!!If you don\'t need your Franz account any longer, you can delete your account and all related data here.', 72 defaultMessage: '!!!If you don\'t need your Ferdi account any longer, you can delete your account and all related data here.',
73 }, 73 },
74 deleteEmailSent: { 74 deleteEmailSent: {
75 id: 'settings.account.deleteEmailSent', 75 id: 'settings.account.deleteEmailSent',
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js
index 4696b82eb..201819526 100644
--- a/src/components/settings/navigation/SettingsNavigation.js
+++ b/src/components/settings/navigation/SettingsNavigation.js
@@ -64,6 +64,7 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp
64 const { isDarkThemeActive } = stores.ui; 64 const { isDarkThemeActive } = stores.ui;
65 const { router, user } = stores; 65 const { router, user } = stores;
66 const { intl } = this.context; 66 const { intl } = this.context;
67 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
67 68
68 return ( 69 return (
69 <div className="settings-navigation"> 70 <div className="settings-navigation">
@@ -136,10 +137,10 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp
136 </Link> 137 </Link>
137 <span className="settings-navigation__expander" /> 138 <span className="settings-navigation__expander" />
138 <Link 139 <Link
139 to="/auth/logout" 140 to={isLoggedIn ? '/auth/logout' : '/auth/welcome'}
140 className="settings-navigation__link" 141 className="settings-navigation__link"
141 > 142 >
142 {intl.formatMessage(messages.logout)} 143 { isLoggedIn ? intl.formatMessage(messages.logout) : 'Login'}
143 </Link> 144 </Link>
144 </div> 145 </div>
145 ); 146 );
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index 5cde0db8e..5fe00cb8b 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -63,7 +63,7 @@ const messages = defineMessages({
63 }, 63 },
64 customUrlPremiumInfo: { 64 customUrlPremiumInfo: {
65 id: 'settings.service.form.customUrlPremiumInfo', 65 id: 'settings.service.form.customUrlPremiumInfo',
66 defaultMessage: '!!!To add self hosted services, you need a Franz Premium Supporter Account.', 66 defaultMessage: '!!!To add self hosted services, you need a Ferdi Premium Supporter Account.',
67 }, 67 },
68 customUrlUpgradeAccount: { 68 customUrlUpgradeAccount: {
69 id: 'settings.service.form.customUrlUpgradeAccount', 69 id: 'settings.service.form.customUrlUpgradeAccount',
@@ -103,11 +103,11 @@ const messages = defineMessages({
103 }, 103 },
104 proxyRestartInfo: { 104 proxyRestartInfo: {
105 id: 'settings.service.form.proxy.restartInfo', 105 id: 'settings.service.form.proxy.restartInfo',
106 defaultMessage: '!!!Please restart Franz after changing proxy Settings.', 106 defaultMessage: '!!!Please restart Ferdi after changing proxy Settings.',
107 }, 107 },
108 proxyInfo: { 108 proxyInfo: {
109 id: 'settings.service.form.proxy.info', 109 id: 'settings.service.form.proxy.info',
110 defaultMessage: '!!!Proxy settings will not be synchronized with the Franz servers.', 110 defaultMessage: '!!!Proxy settings will not be synchronized with the Ferdi servers.',
111 }, 111 },
112}); 112});
113 113
@@ -155,7 +155,7 @@ export default @observer class EditServiceForm extends Component {
155 const values = form.values(); 155 const values = form.values();
156 let isValid = true; 156 let isValid = true;
157 157
158 const files = form.$('customIcon').files; 158 const { files } = form.$('customIcon');
159 if (files) { 159 if (files) {
160 values.iconFile = files[0]; 160 values.iconFile = files[0];
161 } 161 }
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index ff30daed2..19333fdff 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -9,6 +9,7 @@ import Button from '../../ui/Button';
9import Toggle from '../../ui/Toggle'; 9import Toggle from '../../ui/Toggle';
10import Select from '../../ui/Select'; 10import Select from '../../ui/Select';
11import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; 11import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer';
12import Input from '../../ui/Input';
12 13
13import { FRANZ_TRANSLATION } from '../../../config'; 14import { FRANZ_TRANSLATION } from '../../../config';
14 15
@@ -21,6 +22,10 @@ const messages = defineMessages({
21 id: 'settings.app.headlineGeneral', 22 id: 'settings.app.headlineGeneral',
22 defaultMessage: '!!!General', 23 defaultMessage: '!!!General',
23 }, 24 },
25 serverInfo: {
26 id: 'settings.app.serverInfo',
27 defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.',
28 },
24 headlineLanguage: { 29 headlineLanguage: {
25 id: 'settings.app.headlineLanguage', 30 id: 'settings.app.headlineLanguage',
26 defaultMessage: '!!!Language', 31 defaultMessage: '!!!Language',
@@ -39,7 +44,7 @@ const messages = defineMessages({
39 }, 44 },
40 translationHelp: { 45 translationHelp: {
41 id: 'settings.app.translationHelp', 46 id: 'settings.app.translationHelp',
42 defaultMessage: '!!!Help us to translate Franz into your language.', 47 defaultMessage: '!!!Help us to translate Ferdi into your language.',
43 }, 48 },
44 subheadlineCache: { 49 subheadlineCache: {
45 id: 'settings.app.subheadlineCache', 50 id: 'settings.app.subheadlineCache',
@@ -47,7 +52,7 @@ const messages = defineMessages({
47 }, 52 },
48 cacheInfo: { 53 cacheInfo: {
49 id: 'settings.app.cacheInfo', 54 id: 'settings.app.cacheInfo',
50 defaultMessage: '!!!Franz cache is currently using {size} of disk space.', 55 defaultMessage: '!!!Ferdi cache is currently using {size} of disk space.',
51 }, 56 },
52 buttonClearAllCache: { 57 buttonClearAllCache: {
53 id: 'settings.app.buttonClearAllCache', 58 id: 'settings.app.buttonClearAllCache',
@@ -145,6 +150,8 @@ export default @observer class EditSettingsForm extends Component {
145 updateButtonLabelMessage = messages.buttonSearchForUpdate; 150 updateButtonLabelMessage = messages.buttonSearchForUpdate;
146 } 151 }
147 152
153 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
154
148 return ( 155 return (
149 <div className="settings__main"> 156 <div className="settings__main">
150 <div className="settings__header"> 157 <div className="settings__header">
@@ -164,6 +171,15 @@ export default @observer class EditSettingsForm extends Component {
164 {process.platform === 'win32' && ( 171 {process.platform === 'win32' && (
165 <Toggle field={form.$('minimizeToSystemTray')} /> 172 <Toggle field={form.$('minimizeToSystemTray')} />
166 )} 173 )}
174 <Input
175 placeholder="Server"
176 onChange={e => this.submit(e)}
177 field={form.$('server')}
178 autoFocus
179 />
180 { isLoggedIn && (
181 <p>{ intl.formatMessage(messages.serverInfo) }</p>
182 )}
167 {isTodosEnabled && ( 183 {isTodosEnabled && (
168 <Toggle field={form.$('enableTodos')} /> 184 <Toggle field={form.$('enableTodos')} />
169 )} 185 )}
@@ -252,6 +268,16 @@ export default @observer class EditSettingsForm extends Component {
252 <span className="mdi mdi-information" /> 268 <span className="mdi mdi-information" />
253 {intl.formatMessage(messages.languageDisclaimer)} 269 {intl.formatMessage(messages.languageDisclaimer)}
254 </p> 270 </p>
271 <p className="settings__message">
272 <span className="mdi mdi-github-face" />
273 Ferdi is based on
274 {' '}
275 <a href="https://github.com/meetfranz/franz" target="_blank">Franz</a>
276 , a project published
277 under the
278 {' '}
279 <a href="https://github.com/meetfranz/franz/blob/master/LICENSE" target="_blank">Apache-2.0 License</a>
280 </p>
255 </form> 281 </form>
256 </div> 282 </div>
257 </div> 283 </div>
diff --git a/src/components/settings/team/TeamDashboard.js b/src/components/settings/team/TeamDashboard.js
index 366b0113a..2bf46b48d 100644
--- a/src/components/settings/team/TeamDashboard.js
+++ b/src/components/settings/team/TeamDashboard.js
@@ -20,7 +20,7 @@ const messages = defineMessages({
20 }, 20 },
21 contentHeadline: { 21 contentHeadline: {
22 id: 'settings.team.contentHeadline', 22 id: 'settings.team.contentHeadline',
23 defaultMessage: '!!!Franz for Teams', 23 defaultMessage: '!!!Ferdi for Teams',
24 }, 24 },
25 intro: { 25 intro: {
26 id: 'settings.team.intro', 26 id: 'settings.team.intro',
@@ -28,7 +28,7 @@ const messages = defineMessages({
28 }, 28 },
29 copy: { 29 copy: {
30 id: 'settings.team.copy', 30 id: 'settings.team.copy',
31 defaultMessage: '!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!', 31 defaultMessage: '!!!Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!',
32 }, 32 },
33 manageButton: { 33 manageButton: {
34 id: 'settings.team.manageAction', 34 id: 'settings.team.manageAction',
diff --git a/src/components/ui/AppLoader/index.js b/src/components/ui/AppLoader/index.js
index b0c7fed7b..a9a87707b 100644
--- a/src/components/ui/AppLoader/index.js
+++ b/src/components/ui/AppLoader/index.js
@@ -49,7 +49,7 @@ export default @injectSheet(styles) @withTheme class AppLoader extends Component
49 49
50 return ( 50 return (
51 <FullscreenLoader 51 <FullscreenLoader
52 title="Franz" 52 title="Ferdi"
53 className={classes.component} 53 className={classes.component}
54 spinnerColor={theme.colorAppLoaderSpinner} 54 spinnerColor={theme.colorAppLoaderSpinner}
55 > 55 >
diff --git a/src/components/ui/Button.js b/src/components/ui/Button.js
index ffc7f7051..e2d7cea83 100644
--- a/src/components/ui/Button.js
+++ b/src/components/ui/Button.js
@@ -69,7 +69,7 @@ export default @observer class Button extends Component {
69 loaded={loaded} 69 loaded={loaded}
70 lines={10} 70 lines={10}
71 scale={0.4} 71 scale={0.4}
72 color={buttonType !== 'secondary' ? '#FFF' : '#373a3c'} 72 color={buttonType !== 'secondary' ? '#FFF' : '#7367F0'}
73 component="span" 73 component="span"
74 /> 74 />
75 {label} 75 {label}
diff --git a/src/components/ui/FullscreenLoader/styles.js b/src/components/ui/FullscreenLoader/styles.js
index 64d24e4ce..d516781a8 100644
--- a/src/components/ui/FullscreenLoader/styles.js
+++ b/src/components/ui/FullscreenLoader/styles.js
@@ -4,6 +4,7 @@ export default {
4 alignItems: 'center', 4 alignItems: 'center',
5 position: 'absolute', 5 position: 'absolute',
6 width: '100%', 6 width: '100%',
7 background: 'linear-gradient( 135deg, #CE9FFC 10%, #7367F0 100%)',
7 }, 8 },
8 component: { 9 component: {
9 width: '100%', 10 width: '100%',
diff --git a/src/components/ui/Input.js b/src/components/ui/Input.js
index 9b070c4df..4e3eb4ab8 100644
--- a/src/components/ui/Input.js
+++ b/src/components/ui/Input.js
@@ -68,7 +68,7 @@ export default @observer class Input extends Component {
68 68
69 const { passwordScore } = this.state; 69 const { passwordScore } = this.state;
70 70
71 let type = field.type; 71 let { type } = field;
72 if (type === 'password' && this.state.showPassword) { 72 if (type === 'password' && this.state.showPassword) {
73 type = 'text'; 73 type = 'text';
74 } 74 }
diff --git a/src/components/ui/Link.js b/src/components/ui/Link.js
index b88686d5e..5f729844b 100644
--- a/src/components/ui/Link.js
+++ b/src/components/ui/Link.js
@@ -25,6 +25,7 @@ export default @inject('stores') @observer class Link extends Component {
25 className, 25 className,
26 activeClassName, 26 activeClassName,
27 strictFilter, 27 strictFilter,
28 style,
28 } = this.props; 29 } = this.props;
29 const { router } = stores; 30 const { router } = stores;
30 31
@@ -44,6 +45,7 @@ export default @inject('stores') @observer class Link extends Component {
44 <a 45 <a
45 href={router.history.createHref(to)} 46 href={router.history.createHref(to)}
46 className={linkClasses} 47 className={linkClasses}
48 style={style}
47 onClick={e => this.onClick(e)} 49 onClick={e => this.onClick(e)}
48 > 50 >
49 {children} 51 {children}
@@ -65,6 +67,7 @@ Link.wrappedComponent.propTypes = {
65 activeClassName: PropTypes.string, 67 activeClassName: PropTypes.string,
66 strictFilter: PropTypes.bool, 68 strictFilter: PropTypes.bool,
67 target: PropTypes.string, 69 target: PropTypes.string,
70 style: PropTypes.object,
68}; 71};
69 72
70Link.wrappedComponent.defaultProps = { 73Link.wrappedComponent.defaultProps = {
@@ -72,4 +75,5 @@ Link.wrappedComponent.defaultProps = {
72 activeClassName: '', 75 activeClassName: '',
73 strictFilter: false, 76 strictFilter: false,
74 target: '', 77 target: '',
78 style: {},
75}; 79};
diff --git a/src/components/ui/Loader.js b/src/components/ui/Loader.js
index f73296bb6..de8769b6c 100644
--- a/src/components/ui/Loader.js
+++ b/src/components/ui/Loader.js
@@ -16,7 +16,7 @@ export default class LoaderComponent extends Component {
16 children: null, 16 children: null,
17 loaded: false, 17 loaded: false,
18 className: '', 18 className: '',
19 color: '#373a3c', 19 color: '#7367F0',
20 }; 20 };
21 21
22 render() { 22 render() {
diff --git a/src/components/ui/PremiumFeatureContainer/index.js b/src/components/ui/PremiumFeatureContainer/index.js
index 8d2746e22..c53d345a0 100644
--- a/src/components/ui/PremiumFeatureContainer/index.js
+++ b/src/components/ui/PremiumFeatureContainer/index.js
@@ -9,7 +9,6 @@ import { oneOrManyChildElements } from '../../../prop-types';
9import UserStore from '../../../stores/UserStore'; 9import UserStore from '../../../stores/UserStore';
10 10
11import styles from './styles'; 11import styles from './styles';
12import { gaEvent } from '../../../lib/analytics';
13import { FeatureStore } from '../../../features/utils/FeatureStore'; 12import { FeatureStore } from '../../../features/utils/FeatureStore';
14 13
15const messages = defineMessages({ 14const messages = defineMessages({
@@ -50,7 +49,6 @@ class PremiumFeatureContainer extends Component {
50 actions, 49 actions,
51 condition, 50 condition,
52 stores, 51 stores,
53 gaEventInfo,
54 } = this.props; 52 } = this.props;
55 53
56 const { intl } = this.context; 54 const { intl } = this.context;
@@ -75,10 +73,6 @@ class PremiumFeatureContainer extends Component {
75 type="button" 73 type="button"
76 onClick={() => { 74 onClick={() => {
77 actions.ui.openSettings({ path: 'user' }); 75 actions.ui.openSettings({ path: 'user' });
78 if (gaEventInfo) {
79 const { category, event, label } = gaEventInfo;
80 gaEvent(category, event, label);
81 }
82 }} 76 }}
83 > 77 >
84 {intl.formatMessage(messages.action)} 78 {intl.formatMessage(messages.action)}
diff --git a/src/config.js b/src/config.js
index 78a92d948..d6a0317bf 100644
--- a/src/config.js
+++ b/src/config.js
@@ -36,6 +36,7 @@ export const DEFAULT_APP_SETTINGS = {
36 runInBackground: true, 36 runInBackground: true,
37 enableSystemTray: true, 37 enableSystemTray: true,
38 minimizeToSystemTray: false, 38 minimizeToSystemTray: false,
39 server: LIVE_API,
39 showDisabledServices: true, 40 showDisabledServices: true,
40 showMessageBadgeWhenMuted: true, 41 showMessageBadgeWhenMuted: true,
41 enableSpellchecking: true, 42 enableSpellchecking: true,
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js
index a14a98554..95fbd109f 100644
--- a/src/containers/layout/AppLayoutContainer.js
+++ b/src/containers/layout/AppLayoutContainer.js
@@ -140,6 +140,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
140 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} 140 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar}
141 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} 141 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED}
142 nextAppReleaseVersion={app.nextAppReleaseVersion} 142 nextAppReleaseVersion={app.nextAppReleaseVersion}
143 authRequestFailed={app.authRequestFailed}
143 sidebar={sidebar} 144 sidebar={sidebar}
144 workspacesDrawer={workspacesDrawer} 145 workspacesDrawer={workspacesDrawer}
145 services={servicesContainer} 146 services={servicesContainer}
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js
index 9c74cf2ab..41cdeb79a 100644
--- a/src/containers/settings/AccountScreen.js
+++ b/src/containers/settings/AccountScreen.js
@@ -26,7 +26,14 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend
26 handleWebsiteLink(route) { 26 handleWebsiteLink(route) {
27 const { actions, stores } = this.props; 27 const { actions, stores } = this.props;
28 28
29 const url = stores.user.getAuthURL(`${WEBSITE}${route}?utm_source=app&utm_medium=account_dashboard`); 29 const api = stores.settings.all.app.server;
30
31 let url;
32 if (api === 'https://api.franzinfra.com') {
33 url = stores.user.getAuthURL(`${WEBSITE}${route}?utm_source=app&utm_medium=account_dashboard`);
34 } else {
35 url = `${api}${route}`;
36 }
30 37
31 actions.app.openExternalUrl({ url }); 38 actions.app.openExternalUrl({ url });
32 } 39 }
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 65b5a45df..954f64dc6 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -17,13 +17,15 @@ import { getSelectOptions } from '../../helpers/i18n-helpers';
17import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; 17import EditSettingsForm from '../../components/settings/settings/EditSettingsForm';
18import ErrorBoundary from '../../components/util/ErrorBoundary'; 18import ErrorBoundary from '../../components/util/ErrorBoundary';
19 19
20import { API } from '../../environment';
21
20import globalMessages from '../../i18n/globalMessages'; 22import globalMessages from '../../i18n/globalMessages';
21import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; 23import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos';
22 24
23const messages = defineMessages({ 25const messages = defineMessages({
24 autoLaunchOnStart: { 26 autoLaunchOnStart: {
25 id: 'settings.app.form.autoLaunchOnStart', 27 id: 'settings.app.form.autoLaunchOnStart',
26 defaultMessage: '!!!Launch Franz on start', 28 defaultMessage: '!!!Launch Ferdi on start',
27 }, 29 },
28 autoLaunchInBackground: { 30 autoLaunchInBackground: {
29 id: 'settings.app.form.autoLaunchInBackground', 31 id: 'settings.app.form.autoLaunchInBackground',
@@ -31,15 +33,19 @@ const messages = defineMessages({
31 }, 33 },
32 runInBackground: { 34 runInBackground: {
33 id: 'settings.app.form.runInBackground', 35 id: 'settings.app.form.runInBackground',
34 defaultMessage: '!!!Keep Franz in background when closing the window', 36 defaultMessage: '!!!Keep Ferdi in background when closing the window',
35 }, 37 },
36 enableSystemTray: { 38 enableSystemTray: {
37 id: 'settings.app.form.enableSystemTray', 39 id: 'settings.app.form.enableSystemTray',
38 defaultMessage: '!!!Show Franz in system tray', 40 defaultMessage: '!!!Show Ferdi in system tray',
39 }, 41 },
40 minimizeToSystemTray: { 42 minimizeToSystemTray: {
41 id: 'settings.app.form.minimizeToSystemTray', 43 id: 'settings.app.form.minimizeToSystemTray',
42 defaultMessage: '!!!Minimize Franz to system tray', 44 defaultMessage: '!!!Minimize Ferdi to system tray',
45 },
46 server: {
47 id: 'settings.app.form.server',
48 defaultMessage: '!!!Server',
43 }, 49 },
44 language: { 50 language: {
45 id: 'settings.app.form.language', 51 id: 'settings.app.form.language',
@@ -100,6 +106,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
100 runInBackground: settingsData.runInBackground, 106 runInBackground: settingsData.runInBackground,
101 enableSystemTray: settingsData.enableSystemTray, 107 enableSystemTray: settingsData.enableSystemTray,
102 minimizeToSystemTray: settingsData.minimizeToSystemTray, 108 minimizeToSystemTray: settingsData.minimizeToSystemTray,
109 server: settingsData.server,
103 enableGPUAcceleration: settingsData.enableGPUAcceleration, 110 enableGPUAcceleration: settingsData.enableGPUAcceleration,
104 showDisabledServices: settingsData.showDisabledServices, 111 showDisabledServices: settingsData.showDisabledServices,
105 darkMode: settingsData.darkMode, 112 darkMode: settingsData.darkMode,
@@ -165,6 +172,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
165 value: settings.all.app.minimizeToSystemTray, 172 value: settings.all.app.minimizeToSystemTray,
166 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, 173 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray,
167 }, 174 },
175 server: {
176 label: intl.formatMessage(messages.server),
177 value: settings.all.app.server || API,
178 default: API,
179 },
168 showDisabledServices: { 180 showDisabledServices: {
169 label: intl.formatMessage(messages.showDisabledServices), 181 label: intl.formatMessage(messages.showDisabledServices),
170 value: settings.all.app.showDisabledServices, 182 value: settings.all.app.showDisabledServices,
diff --git a/src/dev-app-update.yml b/src/dev-app-update.yml
index 8ddca71e3..978e30a9b 100644
--- a/src/dev-app-update.yml
+++ b/src/dev-app-update.yml
@@ -1,3 +1,3 @@
1owner: meetfranz 1owner: kytwb
2repo: franz 2repo: Ferdi
3provider: github 3provider: github
diff --git a/src/electron/deepLinking.js b/src/electron/deepLinking.js
index ef23fd3c5..70e5cfb6f 100644
--- a/src/electron/deepLinking.js
+++ b/src/electron/deepLinking.js
@@ -1,5 +1,5 @@
1export default function handleDeepLink(window, rawUrl) { 1export default function handleDeepLink(window, rawUrl) {
2 const url = rawUrl.replace('franz://', ''); 2 const url = rawUrl.replace('ferdi://', '');
3 3
4 if (!url) return; 4 if (!url) return;
5 5
diff --git a/src/features/announcements/api.js b/src/features/announcements/api.js
index a581bd8de..eadb7dfce 100644
--- a/src/features/announcements/api.js
+++ b/src/features/announcements/api.js
@@ -1,6 +1,6 @@
1import { remote } from 'electron'; 1import { remote } from 'electron';
2import Request from '../../stores/lib/Request'; 2import Request from '../../stores/lib/Request';
3import { API, API_VERSION } from '../../environment'; 3import apiBase from '../../api/apiBase';
4 4
5const debug = require('debug')('Franz:feature:announcements:api'); 5const debug = require('debug')('Franz:feature:announcements:api');
6 6
@@ -21,7 +21,7 @@ export const announcementsApi = {
21 21
22 async getAnnouncement(version) { 22 async getAnnouncement(version) {
23 debug('fetching release announcement from api'); 23 debug('fetching release announcement from api');
24 const url = `${API}/${API_VERSION}/announcements/${version}`; 24 const url = `${apiBase()}/announcements/${version}`;
25 const response = await window.fetch(url, { method: 'GET' }); 25 const response = await window.fetch(url, { method: 'GET' });
26 if (!response.ok) return null; 26 if (!response.ok) return null;
27 return response.json(); 27 return response.json();
diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js
index 03bd5ba41..38de2dbc8 100644
--- a/src/features/announcements/components/AnnouncementScreen.js
+++ b/src/features/announcements/components/AnnouncementScreen.js
@@ -8,7 +8,6 @@ import { Button } from '@meetfranz/forms';
8 8
9import { announcementsStore } from '../index'; 9import { announcementsStore } from '../index';
10import UIStore from '../../../stores/UIStore'; 10import UIStore from '../../../stores/UIStore';
11import { gaEvent } from '../../../lib/analytics';
12 11
13const renderer = new marked.Renderer(); 12const renderer = new marked.Renderer();
14 13
@@ -19,7 +18,7 @@ const markedOptions = { sanitize: true, renderer };
19const messages = defineMessages({ 18const messages = defineMessages({
20 headline: { 19 headline: {
21 id: 'feature.announcements.changelog.headline', 20 id: 'feature.announcements.changelog.headline',
22 defaultMessage: '!!!Changes in Franz {version}', 21 defaultMessage: '!!!Changes in Ferdi {version}',
23 }, 22 },
24}); 23});
25 24
@@ -228,9 +227,7 @@ class AnnouncementScreen extends Component {
228 <Button 227 <Button
229 label={announcement.main.cta.label} 228 label={announcement.main.cta.label}
230 onClick={() => { 229 onClick={() => {
231 const { analytics } = announcement.main.cta;
232 window.location.href = `#${announcement.main.cta.href}`; 230 window.location.href = `#${announcement.main.cta.href}`;
233 gaEvent(analytics.category, analytics.action, announcement.main.cta.label);
234 }} 231 }}
235 /> 232 />
236 </div> 233 </div>
@@ -253,9 +250,7 @@ class AnnouncementScreen extends Component {
253 <Button 250 <Button
254 label={announcement.spotlight.cta.label} 251 label={announcement.spotlight.cta.label}
255 onClick={() => { 252 onClick={() => {
256 const { analytics } = announcement.spotlight.cta;
257 window.location.href = `#${announcement.spotlight.cta.href}`; 253 window.location.href = `#${announcement.spotlight.cta.href}`;
258 gaEvent(analytics.category, analytics.action, announcement.spotlight.cta.label);
259 }} 254 }}
260 /> 255 />
261 </div> 256 </div>
diff --git a/src/features/announcements/store.js b/src/features/announcements/store.js
index d58afbc8e..91348029f 100644
--- a/src/features/announcements/store.js
+++ b/src/features/announcements/store.js
@@ -7,12 +7,11 @@ import semver from 'semver';
7import localStorage from 'mobx-localstorage'; 7import localStorage from 'mobx-localstorage';
8 8
9import { FeatureStore } from '../utils/FeatureStore'; 9import { FeatureStore } from '../utils/FeatureStore';
10import { ANNOUNCEMENTS_ROUTES, GA_CATEGORY_ANNOUNCEMENTS } from '.'; 10import { ANNOUNCEMENTS_ROUTES } from '.';
11import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; 11import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api';
12import { announcementActions } from './actions'; 12import { announcementActions } from './actions';
13import { createActionBindings } from '../utils/ActionBinding'; 13import { createActionBindings } from '../utils/ActionBinding';
14import { createReactions } from '../../stores/lib/Reaction'; 14import { createReactions } from '../../stores/lib/Reaction';
15import { gaEvent } from '../../lib/analytics';
16import { matchRoute } from '../../helpers/routing-helpers'; 15import { matchRoute } from '../../helpers/routing-helpers';
17import { DEFAULT_APP_SETTINGS } from '../../config'; 16import { DEFAULT_APP_SETTINGS } from '../../config';
18 17
@@ -114,7 +113,6 @@ export class AnnouncementsStore extends FeatureStore {
114 if (router.location.pathname !== targetRoute) { 113 if (router.location.pathname !== targetRoute) {
115 this.stores.router.push(targetRoute); 114 this.stores.router.push(targetRoute);
116 } 115 }
117 gaEvent(GA_CATEGORY_ANNOUNCEMENTS, 'show');
118 }; 116 };
119 117
120 // ======= REACTIONS ======== 118 // ======= REACTIONS ========
diff --git a/src/features/basicAuth/index.js b/src/features/basicAuth/index.js
index 89607824b..a8c93875e 100644
--- a/src/features/basicAuth/index.js
+++ b/src/features/basicAuth/index.js
@@ -20,7 +20,7 @@ export function resetState() {
20export default function initialize() { 20export default function initialize() {
21 debug('Initialize basicAuth feature'); 21 debug('Initialize basicAuth feature');
22 22
23 window.franz.features.basicAuth = { 23 window.ferdi.features.basicAuth = {
24 state, 24 state,
25 }; 25 };
26 26
diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js
index 6344edb89..c61cb06c9 100644
--- a/src/features/delayApp/Component.js
+++ b/src/features/delayApp/Component.js
@@ -5,9 +5,6 @@ import { defineMessages, intlShape } from 'react-intl';
5import injectSheet from 'react-jss'; 5import injectSheet from 'react-jss';
6 6
7import { Button } from '@meetfranz/forms'; 7import { Button } from '@meetfranz/forms';
8import { gaEvent } from '../../lib/analytics';
9
10// import Button from '../../components/ui/Button';
11 8
12import { config } from '.'; 9import { config } from '.';
13import styles from './styles'; 10import styles from './styles';
@@ -32,7 +29,7 @@ const messages = defineMessages({
32 }, 29 },
33 text: { 30 text: {
34 id: 'feature.delayApp.text', 31 id: 'feature.delayApp.text',
35 defaultMessage: '!!!Franz will continue in {seconds} seconds.', 32 defaultMessage: '!!!Ferdi will continue in {seconds} seconds.',
36 }, 33 },
37}); 34});
38 35
@@ -78,12 +75,8 @@ export default @inject('stores', 'actions') @injectSheet(styles) @observer class
78 75
79 if (!hadSubscription) { 76 if (!hadSubscription) {
80 actions.user.activateTrial({ planId: defaultTrialPlan }); 77 actions.user.activateTrial({ planId: defaultTrialPlan });
81
82 gaEvent('DelayApp', 'subscribe_click', 'Delay App Feature');
83 } else { 78 } else {
84 actions.ui.openSettings({ path: 'user' }); 79 actions.ui.openSettings({ path: 'user' });
85
86 gaEvent('DelayApp', 'subscribe_click', 'Delay App Feature');
87 } 80 }
88 } 81 }
89 82
diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js
index c0029873a..4f793f16c 100644
--- a/src/features/delayApp/index.js
+++ b/src/features/delayApp/index.js
@@ -3,7 +3,6 @@ import moment from 'moment';
3import DelayAppComponent from './Component'; 3import DelayAppComponent from './Component';
4 4
5import { DEFAULT_FEATURES_CONFIG } from '../../config'; 5import { DEFAULT_FEATURES_CONFIG } from '../../config';
6import { gaEvent, gaPage } from '../../lib/analytics';
7 6
8const debug = require('debug')('Franz:feature:delayApp'); 7const debug = require('debug')('Franz:feature:delayApp');
9 8
@@ -28,7 +27,7 @@ export default function init(stores) {
28 let shownAfterLaunch = false; 27 let shownAfterLaunch = false;
29 let timeLastDelay = moment(); 28 let timeLastDelay = moment();
30 29
31 window.franz.features.delayApp = { 30 window.ferdi.features.delayApp = {
32 state, 31 state,
33 }; 32 };
34 33
@@ -57,8 +56,6 @@ export default function init(stores) {
57 debug(`App will be delayed for ${config.delayDuration / 1000}s`); 56 debug(`App will be delayed for ${config.delayDuration / 1000}s`);
58 57
59 setVisibility(true); 58 setVisibility(true);
60 gaPage('/delayApp');
61 gaEvent('DelayApp', 'show', 'Delay App Feature');
62 59
63 timeLastDelay = moment(); 60 timeLastDelay = moment();
64 shownAfterLaunch = true; 61 shownAfterLaunch = true;
diff --git a/src/features/shareFranz/Component.js b/src/features/shareFranz/Component.js
index a33315e17..405fb0ab5 100644
--- a/src/features/shareFranz/Component.js
+++ b/src/features/shareFranz/Component.js
@@ -11,17 +11,16 @@ import {
11} from '@mdi/js'; 11} from '@mdi/js';
12import Modal from '../../components/ui/Modal'; 12import Modal from '../../components/ui/Modal';
13import { state } from '.'; 13import { state } from '.';
14import { gaEvent } from '../../lib/analytics';
15import ServicesStore from '../../stores/ServicesStore'; 14import ServicesStore from '../../stores/ServicesStore';
16 15
17const messages = defineMessages({ 16const messages = defineMessages({
18 headline: { 17 headline: {
19 id: 'feature.shareFranz.headline', 18 id: 'feature.shareFranz.headline',
20 defaultMessage: '!!!Franz is better together!', 19 defaultMessage: '!!!Ferdi is better together!',
21 }, 20 },
22 text: { 21 text: {
23 id: 'feature.shareFranz.text', 22 id: 'feature.shareFranz.text',
24 defaultMessage: '!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.', 23 defaultMessage: '!!!Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.',
25 }, 24 },
26 actionsEmail: { 25 actionsEmail: {
27 id: 'feature.shareFranz.action.email', 26 id: 'feature.shareFranz.action.email',
@@ -132,9 +131,6 @@ export default @injectSheet(styles) @inject('stores') @observer class ShareFranz
132 icon={mdiEmail} 131 icon={mdiEmail}
133 href={`mailto:?subject=Meet the cool app Franz&body=${intl.formatMessage(messages.shareTextEmail, { count: serviceCount })}}`} 132 href={`mailto:?subject=Meet the cool app Franz&body=${intl.formatMessage(messages.shareTextEmail, { count: serviceCount })}}`}
134 target="_blank" 133 target="_blank"
135 onClick={() => {
136 gaEvent('Share Franz', 'share', 'Share via email');
137 }}
138 /> 134 />
139 <Button 135 <Button
140 label={intl.formatMessage(messages.actionsFacebook)} 136 label={intl.formatMessage(messages.actionsFacebook)}
@@ -142,9 +138,6 @@ export default @injectSheet(styles) @inject('stores') @observer class ShareFranz
142 icon={mdiFacebookBox} 138 icon={mdiFacebookBox}
143 href="https://www.facebook.com/sharer/sharer.php?u=https://www.meetfranz.com?utm_source=facebook&utm_medium=referral&utm_campaign=share-button" 139 href="https://www.facebook.com/sharer/sharer.php?u=https://www.meetfranz.com?utm_source=facebook&utm_medium=referral&utm_campaign=share-button"
144 target="_blank" 140 target="_blank"
145 onClick={() => {
146 gaEvent('Share Franz', 'share', 'Share via Facebook');
147 }}
148 /> 141 />
149 <Button 142 <Button
150 label={intl.formatMessage(messages.actionsTwitter)} 143 label={intl.formatMessage(messages.actionsTwitter)}
@@ -152,9 +145,6 @@ export default @injectSheet(styles) @inject('stores') @observer class ShareFranz
152 icon={mdiTwitter} 145 icon={mdiTwitter}
153 href={`http://twitter.com/intent/tweet?status=${intl.formatMessage(messages.shareTextTwitter, { count: serviceCount })}`} 146 href={`http://twitter.com/intent/tweet?status=${intl.formatMessage(messages.shareTextTwitter, { count: serviceCount })}`}
154 target="_blank" 147 target="_blank"
155 onClick={() => {
156 gaEvent('Share Franz', 'share', 'Share via Twitter');
157 }}
158 /> 148 />
159 </div> 149 </div>
160 </Modal> 150 </Modal>
diff --git a/src/features/shareFranz/index.js b/src/features/shareFranz/index.js
index 87deacef4..d611a7e1d 100644
--- a/src/features/shareFranz/index.js
+++ b/src/features/shareFranz/index.js
@@ -2,7 +2,6 @@ import { observable, reaction } from 'mobx';
2import ms from 'ms'; 2import ms from 'ms';
3 3
4import { state as delayAppState } from '../delayApp'; 4import { state as delayAppState } from '../delayApp';
5import { gaEvent, gaPage } from '../../lib/analytics';
6 5
7export { default as Component } from './Component'; 6export { default as Component } from './Component';
8 7
@@ -16,19 +15,16 @@ const defaultState = {
16export const state = observable(defaultState); 15export const state = observable(defaultState);
17 16
18export default function initialize(stores) { 17export default function initialize(stores) {
19 debug('Initialize shareFranz feature'); 18 debug('Initialize shareFerdi feature');
20 19
21 window.franz.features.shareFranz = { 20 window.ferdi.features.shareFerdi = {
22 state, 21 state,
23 }; 22 };
24 23
25 function showModal() { 24 function showModal() {
26 debug('Showing share window'); 25 debug('Would have showed share window');
27 26
28 state.isModalVisible = true; 27 // state.isModalVisible = true;
29
30 gaEvent('Share Franz', 'show');
31 gaPage('/share-modal');
32 } 28 }
33 29
34 reaction( 30 reaction(
diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js
index 0ec20c9ea..b8893363f 100644
--- a/src/features/workspaces/api.js
+++ b/src/features/workspaces/api.js
@@ -1,14 +1,14 @@
1import { pick } from 'lodash'; 1import { pick } from 'lodash';
2import { sendAuthRequest } from '../../api/utils/auth'; 2import { sendAuthRequest } from '../../api/utils/auth';
3import { API, API_VERSION } from '../../environment';
4import Request from '../../stores/lib/Request'; 3import Request from '../../stores/lib/Request';
5import Workspace from './models/Workspace'; 4import Workspace from './models/Workspace';
5import apiBase from '../../api/apiBase';
6 6
7const debug = require('debug')('Franz:feature:workspaces:api'); 7const debug = require('debug')('Franz:feature:workspaces:api');
8 8
9export const workspaceApi = { 9export const workspaceApi = {
10 getUserWorkspaces: async () => { 10 getUserWorkspaces: async () => {
11 const url = `${API}/${API_VERSION}/workspace`; 11 const url = `${apiBase()}/workspace`;
12 debug('getUserWorkspaces GET', url); 12 debug('getUserWorkspaces GET', url);
13 const result = await sendAuthRequest(url, { method: 'GET' }); 13 const result = await sendAuthRequest(url, { method: 'GET' });
14 debug('getUserWorkspaces RESULT', result); 14 debug('getUserWorkspaces RESULT', result);
@@ -18,7 +18,7 @@ export const workspaceApi = {
18 }, 18 },
19 19
20 createWorkspace: async (name) => { 20 createWorkspace: async (name) => {
21 const url = `${API}/${API_VERSION}/workspace`; 21 const url = `${apiBase()}/workspace`;
22 const options = { 22 const options = {
23 method: 'POST', 23 method: 'POST',
24 body: JSON.stringify({ name }), 24 body: JSON.stringify({ name }),
@@ -31,7 +31,7 @@ export const workspaceApi = {
31 }, 31 },
32 32
33 deleteWorkspace: async (workspace) => { 33 deleteWorkspace: async (workspace) => {
34 const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; 34 const url = `${apiBase()}/workspace/${workspace.id}`;
35 debug('deleteWorkspace DELETE', url); 35 debug('deleteWorkspace DELETE', url);
36 const result = await sendAuthRequest(url, { method: 'DELETE' }); 36 const result = await sendAuthRequest(url, { method: 'DELETE' });
37 debug('deleteWorkspace RESULT', result); 37 debug('deleteWorkspace RESULT', result);
@@ -40,7 +40,7 @@ export const workspaceApi = {
40 }, 40 },
41 41
42 updateWorkspace: async (workspace) => { 42 updateWorkspace: async (workspace) => {
43 const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; 43 const url = `${apiBase()}/workspace/${workspace.id}`;
44 const options = { 44 const options = {
45 method: 'PUT', 45 method: 'PUT',
46 body: JSON.stringify(pick(workspace, ['name', 'services'])), 46 body: JSON.stringify(pick(workspace, ['name', 'services'])),
diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js
index cddbb2b04..15b97121d 100644
--- a/src/features/workspaces/components/CreateWorkspaceForm.js
+++ b/src/features/workspaces/components/CreateWorkspaceForm.js
@@ -6,8 +6,7 @@ import { Input, Button } from '@meetfranz/forms';
6import injectSheet from 'react-jss'; 6import injectSheet from 'react-jss';
7import Form from '../../../lib/Form'; 7import Form from '../../../lib/Form';
8import { required } from '../../../helpers/validation-helpers'; 8import { required } from '../../../helpers/validation-helpers';
9import { gaEvent } from '../../../lib/analytics'; 9import { workspaceStore } from '../index';
10import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../index';
11 10
12const messages = defineMessages({ 11const messages = defineMessages({
13 submitButton: { 12 submitButton: {
@@ -66,7 +65,6 @@ class CreateWorkspaceForm extends Component {
66 const { onSubmit } = this.props; 65 const { onSubmit } = this.props;
67 const values = f.values(); 66 const values = f.values();
68 onSubmit(values); 67 onSubmit(values);
69 gaEvent(GA_CATEGORY_WORKSPACES, 'create', values.name);
70 }, 68 },
71 }); 69 });
72 } 70 }
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js
index e602ebd5a..82ea1b564 100644
--- a/src/features/workspaces/components/EditWorkspaceForm.js
+++ b/src/features/workspaces/components/EditWorkspaceForm.js
@@ -12,8 +12,6 @@ import Form from '../../../lib/Form';
12import { required } from '../../../helpers/validation-helpers'; 12import { required } from '../../../helpers/validation-helpers';
13import WorkspaceServiceListItem from './WorkspaceServiceListItem'; 13import WorkspaceServiceListItem from './WorkspaceServiceListItem';
14import Request from '../../../stores/lib/Request'; 14import Request from '../../../stores/lib/Request';
15import { gaEvent } from '../../../lib/analytics';
16import { GA_CATEGORY_WORKSPACES } from '../index';
17 15
18const messages = defineMessages({ 16const messages = defineMessages({
19 buttonDelete: { 17 buttonDelete: {
@@ -103,7 +101,6 @@ class EditWorkspaceForm extends Component {
103 const { onSave } = this.props; 101 const { onSave } = this.props;
104 const values = f.values(); 102 const values = f.values();
105 onSave(values); 103 onSave(values);
106 gaEvent(GA_CATEGORY_WORKSPACES, 'save');
107 }, 104 },
108 onError: async () => {}, 105 onError: async () => {},
109 }); 106 });
@@ -112,7 +109,6 @@ class EditWorkspaceForm extends Component {
112 delete() { 109 delete() {
113 const { onDelete } = this.props; 110 const { onDelete } = this.props;
114 onDelete(); 111 onDelete();
115 gaEvent(GA_CATEGORY_WORKSPACES, 'delete');
116 } 112 }
117 113
118 toggleService(service) { 114 toggleService(service) {
diff --git a/src/features/workspaces/components/WorkspaceDrawer.js b/src/features/workspaces/components/WorkspaceDrawer.js
index e7bc0b157..f4ee89a14 100644
--- a/src/features/workspaces/components/WorkspaceDrawer.js
+++ b/src/features/workspaces/components/WorkspaceDrawer.js
@@ -10,8 +10,7 @@ import ReactTooltip from 'react-tooltip';
10import { mdiPlusBox, mdiSettings } from '@mdi/js'; 10import { mdiPlusBox, mdiSettings } from '@mdi/js';
11import WorkspaceDrawerItem from './WorkspaceDrawerItem'; 11import WorkspaceDrawerItem from './WorkspaceDrawerItem';
12import { workspaceActions } from '../actions'; 12import { workspaceActions } from '../actions';
13import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../index'; 13import { workspaceStore } from '../index';
14import { gaEvent } from '../../../lib/analytics';
15 14
16const messages = defineMessages({ 15const messages = defineMessages({
17 headline: { 16 headline: {
@@ -155,7 +154,6 @@ class WorkspaceDrawer extends Component {
155 className={classes.workspacesSettingsButton} 154 className={classes.workspacesSettingsButton}
156 onClick={() => { 155 onClick={() => {
157 workspaceActions.openWorkspaceSettings(); 156 workspaceActions.openWorkspaceSettings();
158 gaEvent(GA_CATEGORY_WORKSPACES, 'settings', 'drawerHeadline');
159 }} 157 }}
160 data-tip={`${intl.formatMessage(messages.workspacesSettingsTooltip)}`} 158 data-tip={`${intl.formatMessage(messages.workspacesSettingsTooltip)}`}
161 > 159 >
@@ -177,7 +175,6 @@ class WorkspaceDrawer extends Component {
177 icon="mdiStar" 175 icon="mdiStar"
178 onClick={() => { 176 onClick={() => {
179 onUpgradeAccountClick(); 177 onUpgradeAccountClick();
180 gaEvent('User', 'upgrade', 'workspaceDrawer');
181 }} 178 }}
182 /> 179 />
183 ) : ( 180 ) : (
@@ -188,7 +185,6 @@ class WorkspaceDrawer extends Component {
188 icon={mdiPlusBox} 185 icon={mdiPlusBox}
189 onClick={() => { 186 onClick={() => {
190 workspaceActions.openWorkspaceSettings(); 187 workspaceActions.openWorkspaceSettings();
191 gaEvent(GA_CATEGORY_WORKSPACES, 'add', 'drawerPremiumCta');
192 }} 188 }}
193 /> 189 />
194 )} 190 )}
@@ -200,7 +196,6 @@ class WorkspaceDrawer extends Component {
200 onClick={() => { 196 onClick={() => {
201 workspaceActions.deactivate(); 197 workspaceActions.deactivate();
202 workspaceActions.toggleWorkspaceDrawer(); 198 workspaceActions.toggleWorkspaceDrawer();
203 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'drawer');
204 }} 199 }}
205 services={getServicesForWorkspace(null)} 200 services={getServicesForWorkspace(null)}
206 isActive={actualWorkspace == null} 201 isActive={actualWorkspace == null}
@@ -214,7 +209,6 @@ class WorkspaceDrawer extends Component {
214 if (actualWorkspace === workspace) return; 209 if (actualWorkspace === workspace) return;
215 workspaceActions.activate({ workspace }); 210 workspaceActions.activate({ workspace });
216 workspaceActions.toggleWorkspaceDrawer(); 211 workspaceActions.toggleWorkspaceDrawer();
217 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'drawer');
218 }} 212 }}
219 onContextMenuEditClick={() => workspaceActions.edit({ workspace })} 213 onContextMenuEditClick={() => workspaceActions.edit({ workspace })}
220 services={getServicesForWorkspace(workspace)} 214 services={getServicesForWorkspace(workspace)}
@@ -224,7 +218,6 @@ class WorkspaceDrawer extends Component {
224 className={classes.addNewWorkspaceLabel} 218 className={classes.addNewWorkspaceLabel}
225 onClick={() => { 219 onClick={() => {
226 workspaceActions.openWorkspaceSettings(); 220 workspaceActions.openWorkspaceSettings();
227 gaEvent(GA_CATEGORY_WORKSPACES, 'add', 'drawerAddLabel');
228 }} 221 }}
229 > 222 >
230 <Icon 223 <Icon
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js
index 70e213912..977b23999 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.js
+++ b/src/features/workspaces/components/WorkspacesDashboard.js
@@ -46,7 +46,7 @@ const messages = defineMessages({
46 }, 46 },
47 workspaceFeatureHeadline: { 47 workspaceFeatureHeadline: {
48 id: 'settings.workspaces.workspaceFeatureHeadline', 48 id: 'settings.workspaces.workspaceFeatureHeadline',
49 defaultMessage: '!!!Less is More: Introducing Franz Workspaces', 49 defaultMessage: '!!!Less is More: Introducing Ferdi Workspaces',
50 }, 50 },
51}); 51});
52 52
diff --git a/src/helpers/recipe-helpers.js b/src/helpers/recipe-helpers.js
index 257e322fb..a31c29e72 100644
--- a/src/helpers/recipe-helpers.js
+++ b/src/helpers/recipe-helpers.js
@@ -3,7 +3,7 @@ import { remote } from 'electron';
3 3
4// import ServiceModel from '../models/Service'; 4// import ServiceModel from '../models/Service';
5 5
6const app = remote.app; 6const { app } = remote;
7 7
8export function getRecipeDirectory(id = '') { 8export function getRecipeDirectory(id = '') {
9 return path.join(app.getPath('userData'), 'recipes', id); 9 return path.join(app.getPath('userData'), 'recipes', id);
diff --git a/src/helpers/service-helpers.js b/src/helpers/service-helpers.js
index 5f63f6b7c..83f89f108 100644
--- a/src/helpers/service-helpers.js
+++ b/src/helpers/service-helpers.js
@@ -2,7 +2,7 @@ import path from 'path';
2import { remote } from 'electron'; 2import { remote } from 'electron';
3import fs from 'fs-extra'; 3import fs from 'fs-extra';
4 4
5const app = remote.app; 5const { app } = remote;
6 6
7export function getServicePartitionsDirectory() { 7export function getServicePartitionsDirectory() {
8 return path.join(app.getPath('userData'), 'Partitions'); 8 return path.join(app.getPath('userData'), 'Partitions');
diff --git a/src/helpers/validation-helpers.js b/src/helpers/validation-helpers.js
index ab2376b1b..f489ec65e 100644
--- a/src/helpers/validation-helpers.js
+++ b/src/helpers/validation-helpers.js
@@ -26,13 +26,13 @@ const messages = defineMessages({
26 26
27export function required({ field }) { 27export function required({ field }) {
28 const isValid = (field.value.trim() !== ''); 28 const isValid = (field.value.trim() !== '');
29 return [isValid, window.franz.intl.formatMessage(messages.required, { field: field.label })]; 29 return [isValid, window.ferdi.intl.formatMessage(messages.required, { field: field.label })];
30} 30}
31 31
32export function email({ field }) { 32export function email({ field }) {
33 const value = field.value.trim(); 33 const value = field.value.trim();
34 const isValid = isEmail(value); 34 const isValid = isEmail(value);
35 return [isValid, window.franz.intl.formatMessage(messages.email, { field: field.label })]; 35 return [isValid, window.ferdi.intl.formatMessage(messages.email, { field: field.label })];
36} 36}
37 37
38export function url({ field }) { 38export function url({ field }) {
@@ -46,7 +46,7 @@ export function url({ field }) {
46 isValid = true; 46 isValid = true;
47 } 47 }
48 48
49 return [isValid, window.franz.intl.formatMessage(messages.url, { field: field.label })]; 49 return [isValid, window.ferdi.intl.formatMessage(messages.url, { field: field.label })];
50} 50}
51 51
52export function minLength(length) { 52export function minLength(length) {
@@ -55,13 +55,13 @@ export function minLength(length) {
55 if (field.touched) { 55 if (field.touched) {
56 isValid = field.value.length >= length; 56 isValid = field.value.length >= length;
57 } 57 }
58 return [isValid, window.franz.intl.formatMessage(messages.minLength, { field: field.label, length })]; 58 return [isValid, window.ferdi.intl.formatMessage(messages.minLength, { field: field.label, length })];
59 }; 59 };
60} 60}
61 61
62export function oneRequired(targets) { 62export function oneRequired(targets) {
63 return ({ field, form }) => { 63 return ({ field, form }) => {
64 const invalidFields = targets.filter(target => form.$(target).value === ''); 64 const invalidFields = targets.filter(target => form.$(target).value === '');
65 return [targets.length !== invalidFields.length, window.franz.intl.formatMessage(messages.required, { field: field.label })]; 65 return [targets.length !== invalidFields.length, window.ferdi.intl.formatMessage(messages.required, { field: field.label })];
66 }; 66 };
67} 67}
diff --git a/src/i18n/globalMessages.js b/src/i18n/globalMessages.js
index af8479c59..86fb9e18d 100644
--- a/src/i18n/globalMessages.js
+++ b/src/i18n/globalMessages.js
@@ -3,7 +3,7 @@ import { defineMessages } from 'react-intl';
3export default defineMessages({ 3export default defineMessages({
4 APIUnhealthy: { 4 APIUnhealthy: {
5 id: 'global.api.unhealthy', 5 id: 'global.api.unhealthy',
6 defaultMessage: '!!!Can\'t connect to Franz Online Services', 6 defaultMessage: '!!!Can\'t connect to Ferdi Online Services',
7 }, 7 },
8 notConnectedToTheInternet: { 8 notConnectedToTheInternet: {
9 id: 'global.notConnectedToTheInternet', 9 id: 'global.notConnectedToTheInternet',
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 00e6ccdac..3da31b68e 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Buida la memòria cau", 197 "settings.app.buttonClearAllCache" : "Buida la memòria cau",
198 "settings.app.buttonInstallUpdate" : "Reinicia i instal·la l'actualització", 198 "settings.app.buttonInstallUpdate" : "Reinicia i instal·la l'actualització",
199 "settings.app.buttonSearchForUpdate" : "Comprova si hi ha actualitzacions", 199 "settings.app.buttonSearchForUpdate" : "Comprova si hi ha actualitzacions",
200 "settings.app.cacheInfo" : "La memòria cau de Franz està utilitzant {size} d'espai al disc", 200 "settings.app.cacheInfo" : "La memòria cau de Ferdi està utilitzant {size} d'espai al disc",
201 "settings.app.currentVersion" : "Versió actual:", 201 "settings.app.currentVersion" : "Versió actual:",
202 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà", 202 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà",
203 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", 203 "settings.app.form.autoLaunchOnStart" : "Iniciar Ferdi a l'inici",
204 "settings.app.form.beta" : "Inclou versions beta", 204 "settings.app.form.beta" : "Inclou versions beta",
205 "settings.app.form.darkMode" : "Uneix-te al Cantó Fosc", 205 "settings.app.form.darkMode" : "Uneix-te al Cantó Fosc",
206 "settings.app.form.enableGPUAcceleration" : "Activar acceleració GPU", 206 "settings.app.form.enableGPUAcceleration" : "Activar acceleració GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", 208 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Idioma", 210 "settings.app.form.language" : "Idioma",
211 "settings.app.form.minimizeToSystemTray" : "Minimitza Franz a la safata del sistema", 211 "settings.app.form.minimizeToSystemTray" : "Minimitza Ferdi a la safata del sistema",
212 "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra", 212 "settings.app.form.runInBackground" : "Mantén a Ferdi en segon pla en tancar la finestra",
213 "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats", 213 "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades",
215 "settings.app.headline" : "Configuració", 215 "settings.app.headline" : "Configuració",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Els canvis requereixen reiniciar", 222 "settings.app.restartRequired" : "Els canvis requereixen reiniciar",
223 "settings.app.subheadlineCache" : "Memòria cau", 223 "settings.app.subheadlineCache" : "Memòria cau",
224 "settings.app.translationHelp" : "Ajuda'ns a traduir Franz en la teva llengua.", 224 "settings.app.translationHelp" : "Ajuda'ns a traduir Ferdi en la teva llengua.",
225 "settings.app.updateStatusAvailable" : "Actualització disponible, descarregant ...", 225 "settings.app.updateStatusAvailable" : "Actualització disponible, descarregant ...",
226 "settings.app.updateStatusSearching" : "Està buscant actualitzacions", 226 "settings.app.updateStatusSearching" : "Està buscant actualitzacions",
227 "settings.app.updateStatusUpToDate" : "Esteu utilitzant la versió més recent de Franz", 227 "settings.app.updateStatusUpToDate" : "Esteu utilitzant la versió més recent de Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Afegir {name}", 254 "settings.service.form.addServiceHeadline" : "Afegir {name}",
255 "settings.service.form.availableServices" : "Serveis disponibles", 255 "settings.service.form.availableServices" : "Serveis disponibles",
256 "settings.service.form.customUrl" : "Servidor personalitzat", 256 "settings.service.form.customUrl" : "Servidor personalitzat",
257 "settings.service.form.customUrlPremiumInfo" : "Per afegir serveis allotjats per vosaltres mateixos, necessiteu un Compte Franz Premium Supporter.", 257 "settings.service.form.customUrlPremiumInfo" : "Per afegir serveis allotjats per vosaltres mateixos, necessiteu un Compte Ferdi Premium Supporter.",
258 "settings.service.form.customUrlUpgradeAccount" : "Actualitzeu el vostre compte", 258 "settings.service.form.customUrlUpgradeAccount" : "Actualitzeu el vostre compte",
259 "settings.service.form.customUrlValidationError" : "No s'ha pogut validar el servidor {name} personalitzat.", 259 "settings.service.form.customUrlValidationError" : "No s'ha pogut validar el servidor {name} personalitzat.",
260 "settings.service.form.deleteButton" : "Suprimeix el servei", 260 "settings.service.form.deleteButton" : "Suprimeix el servei",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Utilitzar Proxy", 280 "settings.service.form.proxy.isEnabled" : "Utilitzar Proxy",
281 "settings.service.form.proxy.password" : "Contrasenya (opcional)", 281 "settings.service.form.proxy.password" : "Contrasenya (opcional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Siusplau, reinicieu el Franz després de canviar els ajustaments de proxy", 283 "settings.service.form.proxy.restartInfo" : "Siusplau, reinicieu el Ferdi després de canviar els ajustaments de proxy",
284 "settings.service.form.proxy.user" : "Usuari (opcional)", 284 "settings.service.form.proxy.user" : "Usuari (opcional)",
285 "settings.service.form.saveButton" : "Desa el servei", 285 "settings.service.form.saveButton" : "Desa el servei",
286 "settings.service.form.tabHosted" : "Allotjat", 286 "settings.service.form.tabHosted" : "Allotjat",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", 297 "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats",
298 "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", 298 "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades",
299 "settings.services.updatedInfo" : "S'han desat els canvis", 299 "settings.services.updatedInfo" : "S'han desat els canvis",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Equip", 302 "settings.team.headline" : "Equip",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Torna a provar-ho", 325 "settings.workspaces.tryReloadWorkspaces" : "Torna a provar-ho",
326 "settings.workspaces.updatedInfo" : "S'han desat els canvis", 326 "settings.workspaces.updatedInfo" : "S'han desat els canvis",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Afegeix nou servei", 330 "sidebar.addNewService" : "Afegeix nou servei",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Ja teniu un compte, iniciar la sessió?", 344 "signup.link.login" : "Ja teniu un compte, iniciar la sessió?",
345 "signup.password.label" : "Contrasenya", 345 "signup.password.label" : "Contrasenya",
346 "signup.submit.label" : "Crea un compte", 346 "signup.submit.label" : "Crea un compte",
347 "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals",
348 "subscription.features.ads" : "Sense anuncis, mai!",
349 "subscription.features.comingSoon" : "properament",
350 "subscription.features.noInterruptions" : "Sense retards ni molestes actualitzacions de llicències ",
351 "subscription.features.onpremise.mattermost" : "Afegir serveis allotjats com Mattermost",
352 "subscription.features.proxy" : "Suport de Proxy per a serveis",
353 "subscription.features.spellchecker" : "Suport per corrector ortogràfic",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "El compte de pagament Ferdi Premium Supporter inclou",
356 "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament",
357 "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz",
358 "subscription.type.free" : "gratuït",
359 "subscription.type.month" : "mes",
360 "subscription.type.year" : "any",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index ba4efd0c7..5a4c4c428 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Aktualizovat profil", 173 "settings.account.buttonSave" : "Aktualizovat profil",
174 "settings.account.deleteAccount" : "Smazat účet", 174 "settings.account.deleteAccount" : "Smazat účet",
175 "settings.account.deleteEmailSent" : "Na váš mail byl odeslán email s odkazem pro potvrzení smazání účtu. Váš účet a data poté nepůjde obnovit!", 175 "settings.account.deleteEmailSent" : "Na váš mail byl odeslán email s odkazem pro potvrzení smazání účtu. Váš účet a data poté nepůjde obnovit!",
176 "settings.account.deleteInfo" : "Pokud již nepotřebujete váš Franz účet, můžete zde váš účet, a všechna data v něm, smazat.", 176 "settings.account.deleteInfo" : "Pokud již nepotřebujete váš Ferdi účet, můžete zde váš účet, a všechna data v něm, smazat.",
177 "settings.account.headline" : "Účet", 177 "settings.account.headline" : "Účet",
178 "settings.account.headlineAccount" : "Informace o účtu", 178 "settings.account.headlineAccount" : "Informace o účtu",
179 "settings.account.headlineDangerZone" : "Nebezpečná zóna", 179 "settings.account.headlineDangerZone" : "Nebezpečná zóna",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Vyprázdnit mezipaměti", 197 "settings.app.buttonClearAllCache" : "Vyprázdnit mezipaměti",
198 "settings.app.buttonInstallUpdate" : "Restartovat a nainstalovat aktualizace", 198 "settings.app.buttonInstallUpdate" : "Restartovat a nainstalovat aktualizace",
199 "settings.app.buttonSearchForUpdate" : "Zkontrolovat aktualizace", 199 "settings.app.buttonSearchForUpdate" : "Zkontrolovat aktualizace",
200 "settings.app.cacheInfo" : "Franz momentálně používá {size} místa na disku.", 200 "settings.app.cacheInfo" : "Ferdi momentálně používá {size} místa na disku.",
201 "settings.app.currentVersion" : "Aktuální verze:", 201 "settings.app.currentVersion" : "Aktuální verze:",
202 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", 202 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí",
203 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", 203 "settings.app.form.autoLaunchOnStart" : "Spustit Ferdi při startu",
204 "settings.app.form.beta" : "Zahrnout beta verze", 204 "settings.app.form.beta" : "Zahrnout beta verze",
205 "settings.app.form.darkMode" : "Připoj se k Temné straně", 205 "settings.app.form.darkMode" : "Připoj se k Temné straně",
206 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení", 206 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení",
@@ -208,7 +208,7 @@
208 "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", 208 "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Jazyk", 210 "settings.app.form.language" : "Jazyk",
211 "settings.app.form.minimizeToSystemTray" : "Minimalizovat Franz do systémové lišty", 211 "settings.app.form.minimizeToSystemTray" : "Minimalizovat Ferdi do systémové lišty",
212 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", 212 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna",
213 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb", 213 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Změny vyžadují restart", 222 "settings.app.restartRequired" : "Změny vyžadují restart",
223 "settings.app.subheadlineCache" : "Mezipaměť", 223 "settings.app.subheadlineCache" : "Mezipaměť",
224 "settings.app.translationHelp" : "Pomozte nám přeložit Franz do svého jazyka.", 224 "settings.app.translationHelp" : "Pomozte nám přeložit Ferdi do svého jazyka.",
225 "settings.app.updateStatusAvailable" : "Aktualizace k dispozici, stahování...", 225 "settings.app.updateStatusAvailable" : "Aktualizace k dispozici, stahování...",
226 "settings.app.updateStatusSearching" : "Hledá aktualizace", 226 "settings.app.updateStatusSearching" : "Hledá aktualizace",
227 "settings.app.updateStatusUpToDate" : "Používáte nejnovější verzi programu Franz", 227 "settings.app.updateStatusUpToDate" : "Používáte nejnovější verzi programu Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Přidat {name}", 254 "settings.service.form.addServiceHeadline" : "Přidat {name}",
255 "settings.service.form.availableServices" : "Dostupné služby", 255 "settings.service.form.availableServices" : "Dostupné služby",
256 "settings.service.form.customUrl" : "Vlastní server", 256 "settings.service.form.customUrl" : "Vlastní server",
257 "settings.service.form.customUrlPremiumInfo" : "Chcete-li přidat vlastní hostované služby, potřebujete účet Franz Premium Supporter.", 257 "settings.service.form.customUrlPremiumInfo" : "Chcete-li přidat vlastní hostované služby, potřebujete účet Ferdi Premium Supporter.",
258 "settings.service.form.customUrlUpgradeAccount" : "Aktualizujte svůj účet", 258 "settings.service.form.customUrlUpgradeAccount" : "Aktualizujte svůj účet",
259 "settings.service.form.customUrlValidationError" : "Nepodařilo se ověřit vlastní server {name}.", 259 "settings.service.form.customUrlValidationError" : "Nepodařilo se ověřit vlastní server {name}.",
260 "settings.service.form.deleteButton" : "Odstranit službu", 260 "settings.service.form.deleteButton" : "Odstranit službu",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Jméno", 276 "settings.service.form.name" : "Jméno",
277 "settings.service.form.proxy.headline" : "Nastavení HTTP\/HTTPS Proxy", 277 "settings.service.form.proxy.headline" : "Nastavení HTTP\/HTTPS Proxy",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "Uložit službu", 285 "settings.service.form.saveButton" : "Uložit službu",
286 "settings.service.form.tabHosted" : "Hostováno", 286 "settings.service.form.tabHosted" : "Hostováno",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny", 297 "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny",
298 "settings.services.tooltip.notificationsDisabled" : "Oznámení jsou zakázána", 298 "settings.services.tooltip.notificationsDisabled" : "Oznámení jsou zakázána",
299 "settings.services.updatedInfo" : "Vaše změny byly uloženy", 299 "settings.services.updatedInfo" : "Vaše změny byly uloženy",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Tým", 302 "settings.team.headline" : "Tým",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Zkusit znovu", 325 "settings.workspaces.tryReloadWorkspaces" : "Zkusit znovu",
326 "settings.workspaces.updatedInfo" : "Vaše změny byly uloženy", 326 "settings.workspaces.updatedInfo" : "Vaše změny byly uloženy",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Přidat novou službu", 330 "sidebar.addNewService" : "Přidat novou službu",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Jméno", 338 "signup.firstname.label" : "Jméno",
339 "signup.headline" : "Přihlásit se", 339 "signup.headline" : "Přihlásit se",
340 "signup.lastname.label" : "Příjmení", 340 "signup.lastname.label" : "Příjmení",
341 "signup.legal.info" : "Vytvořením účtu Franz souhlasíte s", 341 "signup.legal.info" : "Vytvořením účtu Ferdi souhlasíte s",
342 "signup.legal.privacy" : "Prohlášení o ochraně soukromí", 342 "signup.legal.privacy" : "Prohlášení o ochraně soukromí",
343 "signup.legal.terms" : "Podmínky služby", 343 "signup.legal.terms" : "Podmínky služby",
344 "signup.link.login" : "Již máte účet, přihlásit se?", 344 "signup.link.login" : "Již máte účet, přihlásit se?",
345 "signup.password.label" : "Heslo", 345 "signup.password.label" : "Heslo",
346 "signup.submit.label" : "Vytvořit účet", 346 "signup.submit.label" : "Vytvořit účet",
347 "subscription.euTaxInfo" : "Pro obyvatelé EU: mohou být aplikovány lokální daně",
348 "subscription.features.ads" : "Žádné reklamy, nikdy!",
349 "subscription.features.comingSoon" : "již brzy",
350 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
351 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
352 "subscription.features.proxy" : "Proxy support for services",
353 "subscription.features.spellchecker" : "Support for spellchecker",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "Placený účet Premium Supporter Ferdi zahrnuje",
356 "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od",
357 "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz",
358 "subscription.type.free" : "zdarma",
359 "subscription.type.month" : "měsíc",
360 "subscription.type.year" : "rok",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index b487710e5..06bdaabfe 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -29,7 +29,7 @@
29 "global.spellchecking.language" : "Sprache für Rechtschreibprüfung", 29 "global.spellchecking.language" : "Sprache für Rechtschreibprüfung",
30 "global.upgradeButton.upgradeToPro" : "Upgrade zu Franz Professional", 30 "global.upgradeButton.upgradeToPro" : "Upgrade zu Franz Professional",
31 "import.headline" : "Deine Franz-4-Dienste importieren", 31 "import.headline" : "Deine Franz-4-Dienste importieren",
32 "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", 32 "import.notSupportedHeadline" : "Dienste, die noch nicht von Ferdi 5 unterstützt werden",
33 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", 33 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen",
34 "import.submit.label" : "Dienste importieren", 34 "import.submit.label" : "Dienste importieren",
35 "infobar.buttonChangelog" : "Was gibt es Neues?", 35 "infobar.buttonChangelog" : "Was gibt es Neues?",
@@ -96,7 +96,7 @@
96 "menu.view" : "Darstellung", 96 "menu.view" : "Darstellung",
97 "menu.view.enterFullScreen" : "Vollbildmodus", 97 "menu.view.enterFullScreen" : "Vollbildmodus",
98 "menu.view.exitFullScreen" : "Vollbildmodus aus", 98 "menu.view.exitFullScreen" : "Vollbildmodus aus",
99 "menu.view.reloadFranz" : "Franz neu laden", 99 "menu.view.reloadFranz" : "Ferdi neu laden",
100 "menu.view.reloadService" : "Dienst neu laden", 100 "menu.view.reloadService" : "Dienst neu laden",
101 "menu.view.resetZoom" : "Originalgröße", 101 "menu.view.resetZoom" : "Originalgröße",
102 "menu.view.toggleDevTools" : "Entwicklertools anzeigen", 102 "menu.view.toggleDevTools" : "Entwicklertools anzeigen",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Cache leeren", 197 "settings.app.buttonClearAllCache" : "Cache leeren",
198 "settings.app.buttonInstallUpdate" : "Neu starten & Update installieren", 198 "settings.app.buttonInstallUpdate" : "Neu starten & Update installieren",
199 "settings.app.buttonSearchForUpdate" : "Nach Updates suchen", 199 "settings.app.buttonSearchForUpdate" : "Nach Updates suchen",
200 "settings.app.cacheInfo" : "Der Franz Cache belegt derzeit {size}.", 200 "settings.app.cacheInfo" : "Der Ferdi Cache belegt derzeit {size}.",
201 "settings.app.currentVersion" : "Aktuelle Version:", 201 "settings.app.currentVersion" : "Aktuelle Version:",
202 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", 202 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen",
203 "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", 203 "settings.app.form.autoLaunchOnStart" : "Ferdi beim Systemstart ausführen",
204 "settings.app.form.beta" : "Beta-Versionen einbeziehen", 204 "settings.app.form.beta" : "Beta-Versionen einbeziehen",
205 "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich! (Dark Mode)", 205 "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich! (Dark Mode)",
206 "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", 206 "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", 208 "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen",
209 "settings.app.form.enableTodos" : "Franz Todos aktivieren", 209 "settings.app.form.enableTodos" : "Franz Todos aktivieren",
210 "settings.app.form.language" : "Sprache", 210 "settings.app.form.language" : "Sprache",
211 "settings.app.form.minimizeToSystemTray" : "Franz in den Infobereich minimieren", 211 "settings.app.form.minimizeToSystemTray" : "Ferdi in den Infobereich minimieren",
212 "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", 212 "settings.app.form.runInBackground" : "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird",
213 "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen", 213 "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
215 "settings.app.headline" : "Einstellungen", 215 "settings.app.headline" : "Einstellungen",
@@ -218,10 +218,10 @@
218 "settings.app.headlineGeneral" : "Allgemeines", 218 "settings.app.headlineGeneral" : "Allgemeines",
219 "settings.app.headlineLanguage" : "Sprache", 219 "settings.app.headlineLanguage" : "Sprache",
220 "settings.app.headlineUpdates" : "Updates", 220 "settings.app.headlineUpdates" : "Updates",
221 "settings.app.languageDisclaimer" : "Offizielle Übersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Übersetzungen der Franz Community.", 221 "settings.app.languageDisclaimer" : "Offizielle Übersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Übersetzungen der Ferdi Community.",
222 "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam.", 222 "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam.",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Hilf uns, Franz in Deine Sprache zu übersetzen.", 224 "settings.app.translationHelp" : "Hilf uns, Ferdi in Deine Sprache zu übersetzen.",
225 "settings.app.updateStatusAvailable" : "Update verfügbar, lädt herunter ...", 225 "settings.app.updateStatusAvailable" : "Update verfügbar, lädt herunter ...",
226 "settings.app.updateStatusSearching" : "Suche nach Updates", 226 "settings.app.updateStatusSearching" : "Suche nach Updates",
227 "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz", 227 "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "{name} hinzufügen", 254 "settings.service.form.addServiceHeadline" : "{name} hinzufügen",
255 "settings.service.form.availableServices" : "Verfügbare Dienste", 255 "settings.service.form.availableServices" : "Verfügbare Dienste",
256 "settings.service.form.customUrl" : "Eigener Server", 256 "settings.service.form.customUrl" : "Eigener Server",
257 "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Franz Premium Konto.", 257 "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Ferdi Premium Konto.",
258 "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden", 258 "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden",
259 "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.", 259 "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.",
260 "settings.service.form.deleteButton" : "Dienst löschen", 260 "settings.service.form.deleteButton" : "Dienst löschen",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Name", 276 "settings.service.form.name" : "Name",
277 "settings.service.form.proxy.headline" : "HTTP-\/HTTPS-Proxy-Einstellungen", 277 "settings.service.form.proxy.headline" : "HTTP-\/HTTPS-Proxy-Einstellungen",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy-Einstellungen werden nicht mit den Franz Servern synchronisiert.", 279 "settings.service.form.proxy.info" : "Proxy-Einstellungen werden nicht mit den Ferdi Servern synchronisiert.",
280 "settings.service.form.proxy.isEnabled" : "Proxy-Server verwenden", 280 "settings.service.form.proxy.isEnabled" : "Proxy-Server verwenden",
281 "settings.service.form.proxy.password" : "Passwort (optional)", 281 "settings.service.form.proxy.password" : "Passwort (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Bitte starte Franz nach dem Ändern der Proxy-Einstellungen neu.", 283 "settings.service.form.proxy.restartInfo" : "Bitte starte Ferdi nach dem Ändern der Proxy-Einstellungen neu.",
284 "settings.service.form.proxy.user" : "Benutzer (optional)", 284 "settings.service.form.proxy.user" : "Benutzer (optional)",
285 "settings.service.form.saveButton" : "Dienst speichern", 285 "settings.service.form.saveButton" : "Dienst speichern",
286 "settings.service.form.tabHosted" : "Gehostet", 286 "settings.service.form.tabHosted" : "Gehostet",
@@ -297,10 +297,10 @@
297 "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", 297 "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert",
298 "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", 298 "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert",
299 "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", 299 "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert",
300 "settings.team.contentHeadline" : "Franz für Teams", 300 "settings.team.contentHeadline" : "Ferdi für Teams",
301 "settings.team.copy" : "Mit Franz für Teams kannst du Kolleginnen und Kollegen per Email-Invite in dein Team einladen und ihre Abonnments in den Einstellungen deines Accounts verwalten. Verschwende keine Zeit mehr damit, Lizenzen für jedes Teammitglied einzeln einzurichten, vergiss mehrfache Rechnungen und unterschiedliche Abrechnungszeiträume - alles unter einem Dach.", 301 "settings.team.copy" : "Mit Ferdi für Teams kannst du Kolleginnen und Kollegen per Email-Invite in dein Team einladen und ihre Abonnments in den Einstellungen deines Accounts verwalten. Verschwende keine Zeit mehr damit, Lizenzen für jedes Teammitglied einzeln einzurichten, vergiss mehrfache Rechnungen und unterschiedliche Abrechnungszeiträume - alles unter einem Dach.",
302 "settings.team.headline" : "Team", 302 "settings.team.headline" : "Team",
303 "settings.team.intro" : "Mit Franz für Teams kannst du Premium Lizenzen für Kolleginnen und Kollegen oder Freunde und Familienmitglieder kaufen und verwalten - so viele du willst.", 303 "settings.team.intro" : "Mit Ferdi für Teams kannst du Premium Lizenzen für Kolleginnen und Kollegen oder Freunde und Familienmitglieder kaufen und verwalten - so viele du willst.",
304 "settings.team.manageAction" : "Verwalte dein Team auf meetfranz.com", 304 "settings.team.manageAction" : "Verwalte dein Team auf meetfranz.com",
305 "settings.team.upgradeAction" : "Account Upgrade durchführen", 305 "settings.team.upgradeAction" : "Account Upgrade durchführen",
306 "settings.user.form.accountType.company" : "Firma", 306 "settings.user.form.accountType.company" : "Firma",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "Du hast noch keine Workspaces hinzugefügt", 324 "settings.workspaces.noWorkspacesAdded" : "Du hast noch keine Workspaces hinzugefügt",
325 "settings.workspaces.tryReloadWorkspaces" : "Erneut versuchen", 325 "settings.workspaces.tryReloadWorkspaces" : "Erneut versuchen",
326 "settings.workspaces.updatedInfo" : "Deine Änderungen wurden gespeichert", 326 "settings.workspaces.updatedInfo" : "Deine Änderungen wurden gespeichert",
327 "settings.workspaces.workspaceFeatureHeadline" : "Weniger ist mehr: Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Weniger ist mehr: Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Mit Franz Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.", 328 "settings.workspaces.workspaceFeatureInfo" : "Mit Ferdi Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.",
329 "settings.workspaces.workspacesRequestFailed" : "Workspaces konnte nicht geladen werden", 329 "settings.workspaces.workspacesRequestFailed" : "Workspaces konnte nicht geladen werden",
330 "sidebar.addNewService" : "Neuen Dienst hinzufügen", 330 "sidebar.addNewService" : "Neuen Dienst hinzufügen",
331 "sidebar.closeWorkspaceDrawer" : "Workspaces schließen", 331 "sidebar.closeWorkspaceDrawer" : "Workspaces schließen",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.", 344 "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.",
345 "signup.password.label" : "Passwort", 345 "signup.password.label" : "Passwort",
346 "signup.submit.label" : "Konto erstellen", 346 "signup.submit.label" : "Konto erstellen",
347 "subscription.euTaxInfo" : "Preise zuzüglich allfälliger Steuern",
348 "subscription.features.ads" : "Werbefrei auf Lebenszeit!",
349 "subscription.features.comingSoon" : "folgt bald",
350 "subscription.features.noInterruptions" : "Verwende Ferdi ohne Wartezeiten",
351 "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten wie Mattermost",
352 "subscription.features.proxy" : "Proxy Support für Dienste",
353 "subscription.features.spellchecker" : "Unterstützung für Rechtschreibprüfung",
354 "subscription.features.workspaces" : "Organisiere deine Services in Workspaces",
355 "subscription.includedFeatures" : "Bezahlte Ferdi Premium Lizenzen beinhalten",
356 "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.",
357 "subscription.submit.label" : "Ich möchte die Entwicklung von Ferdi unterstützen",
358 "subscription.type.free" : "kostenlos",
359 "subscription.type.month" : "Monat",
360 "subscription.type.year" : "Jahr",
347 "subscription.cta.activateTrial" : "Ja, kostenlose Franz Professional Testlizenz starten", 361 "subscription.cta.activateTrial" : "Ja, kostenlose Franz Professional Testlizenz starten",
348 "subscription.cta.allOptions" : "Alle Optionen anzeigen", 362 "subscription.cta.allOptions" : "Alle Optionen anzeigen",
349 "subscription.cta.choosePlan" : "Wähle deine Lizenz", 363 "subscription.cta.choosePlan" : "Wähle deine Lizenz",
@@ -366,7 +380,7 @@
366 "validation.oneRequired" : "Mindestens ein Wert wird benötigt", 380 "validation.oneRequired" : "Mindestens ein Wert wird benötigt",
367 "validation.required" : "{field} wird benötigt", 381 "validation.required" : "{field} wird benötigt",
368 "validation.url" : "{field} ist keine gültige URL", 382 "validation.url" : "{field} ist keine gültige URL",
369 "welcome.loginButton" : "Bei Franz einloggen", 383 "welcome.loginButton" : "Bei Ferdi einloggen",
370 "welcome.signupButton" : "Kostenloses Konto erstellen", 384 "welcome.signupButton" : "Kostenloses Konto erstellen",
371 "workspaceDrawer.addNewWorkspaceLabel" : "Neuen Workspace hinzufügen", 385 "workspaceDrawer.addNewWorkspaceLabel" : "Neuen Workspace hinzufügen",
372 "workspaceDrawer.allServices" : "Alle Dienste", 386 "workspaceDrawer.allServices" : "Alle Dienste",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Erstelle deinen ersten Workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Erstelle deinen ersten Workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium Feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium Feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Premium Account aktivieren", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Premium Account aktivieren",
379 "workspaceDrawer.workspaceFeatureInfo" : "Mit Franz Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.", 393 "workspaceDrawer.workspaceFeatureInfo" : "Mit Ferdi Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Workspaces bearbeiten", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Workspaces bearbeiten",
381 "workspaces.switchingIndicator.switchingTo" : "Wechsle zu" 395 "workspaces.switchingIndicator.switchingTo" : "Wechsle zu"
382} 396}
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 44a49317e..2dd778434 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -2,7 +2,7 @@
2 { 2 {
3 "descriptors": [ 3 "descriptors": [
4 { 4 {
5 "defaultMessage": "!!!A new update for Franz is available.", 5 "defaultMessage": "!!!A new update for Ferdi is available.",
6 "end": { 6 "end": {
7 "column": 3, 7 "column": 3,
8 "line": 12 8 "line": 12
@@ -46,7 +46,7 @@
46 { 46 {
47 "descriptors": [ 47 "descriptors": [
48 { 48 {
49 "defaultMessage": "!!!Import your Franz 4 services", 49 "defaultMessage": "!!!Import your Ferdi 4 services",
50 "end": { 50 "end": {
51 "column": 3, 51 "column": 3,
52 "line": 16 52 "line": 16
@@ -59,7 +59,7 @@
59 } 59 }
60 }, 60 },
61 { 61 {
62 "defaultMessage": "!!!Services not yet supported in Franz 5", 62 "defaultMessage": "!!!Services not yet supported in Ferdi 5",
63 "end": { 63 "end": {
64 "column": 3, 64 "column": 3,
65 "line": 20 65 "line": 20
@@ -264,55 +264,81 @@
264 } 264 }
265 }, 265 },
266 { 266 {
267 "defaultMessage": "!!!Your session expired, please login again.", 267 "defaultMessage": "!!!Using a custom Ferdi server?",
268 "end": { 268 "end": {
269 "column": 3, 269 "column": 3,
270 "line": 40 270 "line": 40
271 }, 271 },
272 "file": "src/components/auth/Login.js", 272 "file": "src/components/auth/Login.js",
273 "id": "login.customServerQuestion",
274 "start": {
275 "column": 24,
276 "line": 37
277 }
278 },
279 {
280 "defaultMessage": "!!!Try importing your Franz account",
281 "end": {
282 "column": 3,
283 "line": 44
284 },
285 "file": "src/components/auth/Login.js",
286 "id": "login.customServerSuggestion",
287 "start": {
288 "column": 26,
289 "line": 41
290 }
291 },
292 {
293 "defaultMessage": "!!!Your session expired, please login again.",
294 "end": {
295 "column": 3,
296 "line": 48
297 },
298 "file": "src/components/auth/Login.js",
273 "id": "login.tokenExpired", 299 "id": "login.tokenExpired",
274 "start": { 300 "start": {
275 "column": 16, 301 "column": 16,
276 "line": 37 302 "line": 45
277 } 303 }
278 }, 304 },
279 { 305 {
280 "defaultMessage": "!!!Your session expired, please login again.", 306 "defaultMessage": "!!!Your session expired, please login again.",
281 "end": { 307 "end": {
282 "column": 3, 308 "column": 3,
283 "line": 44 309 "line": 52
284 }, 310 },
285 "file": "src/components/auth/Login.js", 311 "file": "src/components/auth/Login.js",
286 "id": "login.serverLogout", 312 "id": "login.serverLogout",
287 "start": { 313 "start": {
288 "column": 16, 314 "column": 16,
289 "line": 41 315 "line": 49
290 } 316 }
291 }, 317 },
292 { 318 {
293 "defaultMessage": "!!!Create a free account", 319 "defaultMessage": "!!!Create a free account",
294 "end": { 320 "end": {
295 "column": 3, 321 "column": 3,
296 "line": 48 322 "line": 56
297 }, 323 },
298 "file": "src/components/auth/Login.js", 324 "file": "src/components/auth/Login.js",
299 "id": "login.link.signup", 325 "id": "login.link.signup",
300 "start": { 326 "start": {
301 "column": 14, 327 "column": 14,
302 "line": 45 328 "line": 53
303 } 329 }
304 }, 330 },
305 { 331 {
306 "defaultMessage": "!!!Forgot password", 332 "defaultMessage": "!!!Forgot password",
307 "end": { 333 "end": {
308 "column": 3, 334 "column": 3,
309 "line": 52 335 "line": 60
310 }, 336 },
311 "file": "src/components/auth/Login.js", 337 "file": "src/components/auth/Login.js",
312 "id": "login.link.password", 338 "id": "login.link.password",
313 "start": { 339 "start": {
314 "column": 16, 340 "column": 16,
315 "line": 49 341 "line": 57
316 } 342 }
317 } 343 }
318 ], 344 ],
@@ -604,7 +630,7 @@
604 } 630 }
605 }, 631 },
606 { 632 {
607 "defaultMessage": "!!!By creating a Franz account you accept the", 633 "defaultMessage": "!!!By creating a Ferdi account you accept the",
608 "end": { 634 "end": {
609 "column": 3, 635 "column": 3,
610 "line": 44 636 "line": 44
@@ -753,7 +779,20 @@
753 "id": "infobar.requiredRequestsFailed", 779 "id": "infobar.requiredRequestsFailed",
754 "start": { 780 "start": {
755 "column": 26, 781 "column": 26,
756 "line": 36 782 "line": 33
783 }
784 },
785 {
786 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
787 "end": {
788 "column": 3,
789 "line": 40
790 },
791 "file": "src/components/layout/AppLayout.js",
792 "id": "infobar.authRequestFailed",
793 "start": {
794 "column": 21,
795 "line": 37
757 } 796 }
758 } 797 }
759 ], 798 ],
@@ -1016,7 +1055,7 @@
1016 { 1055 {
1017 "descriptors": [ 1056 "descriptors": [
1018 { 1057 {
1019 "defaultMessage": "!!!Welcome to Franz", 1058 "defaultMessage": "!!!Welcome to Ferdi",
1020 "end": { 1059 "end": {
1021 "column": 3, 1060 "column": 3,
1022 "line": 17 1061 "line": 17
@@ -1040,6 +1079,32 @@
1040 "column": 14, 1079 "column": 14,
1041 "line": 18 1080 "line": 18
1042 } 1081 }
1082 },
1083 {
1084 "defaultMessage": "!!!Please login to use Ferdi.",
1085 "end": {
1086 "column": 3,
1087 "line": 22
1088 },
1089 "file": "src/components/services/content/Services.js",
1090 "id": "services.login",
1091 "start": {
1092 "column": 9,
1093 "line": 19
1094 }
1095 },
1096 {
1097 "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
1098 "end": {
1099 "column": 3,
1100 "line": 26
1101 },
1102 "file": "src/components/services/content/Services.js",
1103 "id": "services.serverInfo",
1104 "start": {
1105 "column": 14,
1106 "line": 23
1107 }
1043 } 1108 }
1044 ], 1109 ],
1045 "path": "src/components/services/content/Services.json" 1110 "path": "src/components/services/content/Services.json"
@@ -1395,7 +1460,7 @@
1395 } 1460 }
1396 }, 1461 },
1397 { 1462 {
1398 "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", 1463 "defaultMessage": "!!!If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
1399 "end": { 1464 "end": {
1400 "column": 3, 1465 "column": 3,
1401 "line": 73 1466 "line": 73
@@ -1904,7 +1969,7 @@
1904 } 1969 }
1905 }, 1970 },
1906 { 1971 {
1907 "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", 1972 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
1908 "end": { 1973 "end": {
1909 "column": 3, 1974 "column": 3,
1910 "line": 67 1975 "line": 67
@@ -2034,7 +2099,7 @@
2034 } 2099 }
2035 }, 2100 },
2036 { 2101 {
2037 "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", 2102 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
2038 "end": { 2103 "end": {
2039 "column": 3, 2104 "column": 3,
2040 "line": 107 2105 "line": 107
@@ -2047,7 +2112,7 @@
2047 } 2112 }
2048 }, 2113 },
2049 { 2114 {
2050 "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", 2115 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
2051 "end": { 2116 "end": {
2052 "column": 3, 2117 "column": 3,
2053 "line": 111 2118 "line": 111
@@ -2291,234 +2356,247 @@
2291 "defaultMessage": "!!!Settings", 2356 "defaultMessage": "!!!Settings",
2292 "end": { 2357 "end": {
2293 "column": 3, 2358 "column": 3,
2294 "line": 19 2359 "line": 20
2295 }, 2360 },
2296 "file": "src/components/settings/settings/EditSettingsForm.js", 2361 "file": "src/components/settings/settings/EditSettingsForm.js",
2297 "id": "settings.app.headline", 2362 "id": "settings.app.headline",
2298 "start": { 2363 "start": {
2299 "column": 12, 2364 "column": 12,
2300 "line": 16 2365 "line": 17
2301 } 2366 }
2302 }, 2367 },
2303 { 2368 {
2304 "defaultMessage": "!!!General", 2369 "defaultMessage": "!!!General",
2305 "end": { 2370 "end": {
2306 "column": 3, 2371 "column": 3,
2307 "line": 23 2372 "line": 24
2308 }, 2373 },
2309 "file": "src/components/settings/settings/EditSettingsForm.js", 2374 "file": "src/components/settings/settings/EditSettingsForm.js",
2310 "id": "settings.app.headlineGeneral", 2375 "id": "settings.app.headlineGeneral",
2311 "start": { 2376 "start": {
2312 "column": 19, 2377 "column": 19,
2313 "line": 20 2378 "line": 21
2379 }
2380 },
2381 {
2382 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
2383 "end": {
2384 "column": 3,
2385 "line": 28
2386 },
2387 "file": "src/components/settings/settings/EditSettingsForm.js",
2388 "id": "settings.app.serverInfo",
2389 "start": {
2390 "column": 14,
2391 "line": 25
2314 } 2392 }
2315 }, 2393 },
2316 { 2394 {
2317 "defaultMessage": "!!!Language", 2395 "defaultMessage": "!!!Language",
2318 "end": { 2396 "end": {
2319 "column": 3, 2397 "column": 3,
2320 "line": 27 2398 "line": 32
2321 }, 2399 },
2322 "file": "src/components/settings/settings/EditSettingsForm.js", 2400 "file": "src/components/settings/settings/EditSettingsForm.js",
2323 "id": "settings.app.headlineLanguage", 2401 "id": "settings.app.headlineLanguage",
2324 "start": { 2402 "start": {
2325 "column": 20, 2403 "column": 20,
2326 "line": 24 2404 "line": 29
2327 } 2405 }
2328 }, 2406 },
2329 { 2407 {
2330 "defaultMessage": "!!!Updates", 2408 "defaultMessage": "!!!Updates",
2331 "end": { 2409 "end": {
2332 "column": 3, 2410 "column": 3,
2333 "line": 31 2411 "line": 36
2334 }, 2412 },
2335 "file": "src/components/settings/settings/EditSettingsForm.js", 2413 "file": "src/components/settings/settings/EditSettingsForm.js",
2336 "id": "settings.app.headlineUpdates", 2414 "id": "settings.app.headlineUpdates",
2337 "start": { 2415 "start": {
2338 "column": 19, 2416 "column": 19,
2339 "line": 28 2417 "line": 33
2340 } 2418 }
2341 }, 2419 },
2342 { 2420 {
2343 "defaultMessage": "!!!Appearance", 2421 "defaultMessage": "!!!Appearance",
2344 "end": { 2422 "end": {
2345 "column": 3, 2423 "column": 3,
2346 "line": 35 2424 "line": 40
2347 }, 2425 },
2348 "file": "src/components/settings/settings/EditSettingsForm.js", 2426 "file": "src/components/settings/settings/EditSettingsForm.js",
2349 "id": "settings.app.headlineAppearance", 2427 "id": "settings.app.headlineAppearance",
2350 "start": { 2428 "start": {
2351 "column": 22, 2429 "column": 22,
2352 "line": 32 2430 "line": 37
2353 } 2431 }
2354 }, 2432 },
2355 { 2433 {
2356 "defaultMessage": "!!!Advanced", 2434 "defaultMessage": "!!!Advanced",
2357 "end": { 2435 "end": {
2358 "column": 3, 2436 "column": 3,
2359 "line": 39 2437 "line": 44
2360 }, 2438 },
2361 "file": "src/components/settings/settings/EditSettingsForm.js", 2439 "file": "src/components/settings/settings/EditSettingsForm.js",
2362 "id": "settings.app.headlineAdvanced", 2440 "id": "settings.app.headlineAdvanced",
2363 "start": { 2441 "start": {
2364 "column": 20, 2442 "column": 20,
2365 "line": 36 2443 "line": 41
2366 } 2444 }
2367 }, 2445 },
2368 { 2446 {
2369 "defaultMessage": "!!!Help us to translate Franz into your language.", 2447 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
2370 "end": { 2448 "end": {
2371 "column": 3, 2449 "column": 3,
2372 "line": 43 2450 "line": 48
2373 }, 2451 },
2374 "file": "src/components/settings/settings/EditSettingsForm.js", 2452 "file": "src/components/settings/settings/EditSettingsForm.js",
2375 "id": "settings.app.translationHelp", 2453 "id": "settings.app.translationHelp",
2376 "start": { 2454 "start": {
2377 "column": 19, 2455 "column": 19,
2378 "line": 40 2456 "line": 45
2379 } 2457 }
2380 }, 2458 },
2381 { 2459 {
2382 "defaultMessage": "!!!Cache", 2460 "defaultMessage": "!!!Cache",
2383 "end": { 2461 "end": {
2384 "column": 3, 2462 "column": 3,
2385 "line": 47 2463 "line": 52
2386 }, 2464 },
2387 "file": "src/components/settings/settings/EditSettingsForm.js", 2465 "file": "src/components/settings/settings/EditSettingsForm.js",
2388 "id": "settings.app.subheadlineCache", 2466 "id": "settings.app.subheadlineCache",
2389 "start": { 2467 "start": {
2390 "column": 20, 2468 "column": 20,
2391 "line": 44 2469 "line": 49
2392 } 2470 }
2393 }, 2471 },
2394 { 2472 {
2395 "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", 2473 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
2396 "end": { 2474 "end": {
2397 "column": 3, 2475 "column": 3,
2398 "line": 51 2476 "line": 56
2399 }, 2477 },
2400 "file": "src/components/settings/settings/EditSettingsForm.js", 2478 "file": "src/components/settings/settings/EditSettingsForm.js",
2401 "id": "settings.app.cacheInfo", 2479 "id": "settings.app.cacheInfo",
2402 "start": { 2480 "start": {
2403 "column": 13, 2481 "column": 13,
2404 "line": 48 2482 "line": 53
2405 } 2483 }
2406 }, 2484 },
2407 { 2485 {
2408 "defaultMessage": "!!!Clear cache", 2486 "defaultMessage": "!!!Clear cache",
2409 "end": { 2487 "end": {
2410 "column": 3, 2488 "column": 3,
2411 "line": 55 2489 "line": 60
2412 }, 2490 },
2413 "file": "src/components/settings/settings/EditSettingsForm.js", 2491 "file": "src/components/settings/settings/EditSettingsForm.js",
2414 "id": "settings.app.buttonClearAllCache", 2492 "id": "settings.app.buttonClearAllCache",
2415 "start": { 2493 "start": {
2416 "column": 23, 2494 "column": 23,
2417 "line": 52 2495 "line": 57
2418 } 2496 }
2419 }, 2497 },
2420 { 2498 {
2421 "defaultMessage": "!!!Check for updates", 2499 "defaultMessage": "!!!Check for updates",
2422 "end": { 2500 "end": {
2423 "column": 3, 2501 "column": 3,
2424 "line": 59 2502 "line": 64
2425 }, 2503 },
2426 "file": "src/components/settings/settings/EditSettingsForm.js", 2504 "file": "src/components/settings/settings/EditSettingsForm.js",
2427 "id": "settings.app.buttonSearchForUpdate", 2505 "id": "settings.app.buttonSearchForUpdate",
2428 "start": { 2506 "start": {
2429 "column": 25, 2507 "column": 25,
2430 "line": 56 2508 "line": 61
2431 } 2509 }
2432 }, 2510 },
2433 { 2511 {
2434 "defaultMessage": "!!!Restart & install update", 2512 "defaultMessage": "!!!Restart & install update",
2435 "end": { 2513 "end": {
2436 "column": 3, 2514 "column": 3,
2437 "line": 63 2515 "line": 68
2438 }, 2516 },
2439 "file": "src/components/settings/settings/EditSettingsForm.js", 2517 "file": "src/components/settings/settings/EditSettingsForm.js",
2440 "id": "settings.app.buttonInstallUpdate", 2518 "id": "settings.app.buttonInstallUpdate",
2441 "start": { 2519 "start": {
2442 "column": 23, 2520 "column": 23,
2443 "line": 60 2521 "line": 65
2444 } 2522 }
2445 }, 2523 },
2446 { 2524 {
2447 "defaultMessage": "!!!Is searching for update", 2525 "defaultMessage": "!!!Is searching for update",
2448 "end": { 2526 "end": {
2449 "column": 3, 2527 "column": 3,
2450 "line": 67 2528 "line": 72
2451 }, 2529 },
2452 "file": "src/components/settings/settings/EditSettingsForm.js", 2530 "file": "src/components/settings/settings/EditSettingsForm.js",
2453 "id": "settings.app.updateStatusSearching", 2531 "id": "settings.app.updateStatusSearching",
2454 "start": { 2532 "start": {
2455 "column": 25, 2533 "column": 25,
2456 "line": 64 2534 "line": 69
2457 } 2535 }
2458 }, 2536 },
2459 { 2537 {
2460 "defaultMessage": "!!!Update available, downloading...", 2538 "defaultMessage": "!!!Update available, downloading...",
2461 "end": { 2539 "end": {
2462 "column": 3, 2540 "column": 3,
2463 "line": 71 2541 "line": 76
2464 }, 2542 },
2465 "file": "src/components/settings/settings/EditSettingsForm.js", 2543 "file": "src/components/settings/settings/EditSettingsForm.js",
2466 "id": "settings.app.updateStatusAvailable", 2544 "id": "settings.app.updateStatusAvailable",
2467 "start": { 2545 "start": {
2468 "column": 25, 2546 "column": 25,
2469 "line": 68 2547 "line": 73
2470 } 2548 }
2471 }, 2549 },
2472 { 2550 {
2473 "defaultMessage": "!!!You are using the latest version of Franz", 2551 "defaultMessage": "!!!You are using the latest version of Franz",
2474 "end": { 2552 "end": {
2475 "column": 3, 2553 "column": 3,
2476 "line": 75 2554 "line": 80
2477 }, 2555 },
2478 "file": "src/components/settings/settings/EditSettingsForm.js", 2556 "file": "src/components/settings/settings/EditSettingsForm.js",
2479 "id": "settings.app.updateStatusUpToDate", 2557 "id": "settings.app.updateStatusUpToDate",
2480 "start": { 2558 "start": {
2481 "column": 24, 2559 "column": 24,
2482 "line": 72 2560 "line": 77
2483 } 2561 }
2484 }, 2562 },
2485 { 2563 {
2486 "defaultMessage": "!!!Current version:", 2564 "defaultMessage": "!!!Current version:",
2487 "end": { 2565 "end": {
2488 "column": 3, 2566 "column": 3,
2489 "line": 79 2567 "line": 84
2490 }, 2568 },
2491 "file": "src/components/settings/settings/EditSettingsForm.js", 2569 "file": "src/components/settings/settings/EditSettingsForm.js",
2492 "id": "settings.app.currentVersion", 2570 "id": "settings.app.currentVersion",
2493 "start": { 2571 "start": {
2494 "column": 18, 2572 "column": 18,
2495 "line": 76 2573 "line": 81
2496 } 2574 }
2497 }, 2575 },
2498 { 2576 {
2499 "defaultMessage": "!!!Changes require restart", 2577 "defaultMessage": "!!!Changes require restart",
2500 "end": { 2578 "end": {
2501 "column": 3, 2579 "column": 3,
2502 "line": 83 2580 "line": 88
2503 }, 2581 },
2504 "file": "src/components/settings/settings/EditSettingsForm.js", 2582 "file": "src/components/settings/settings/EditSettingsForm.js",
2505 "id": "settings.app.restartRequired", 2583 "id": "settings.app.restartRequired",
2506 "start": { 2584 "start": {
2507 "column": 29, 2585 "column": 29,
2508 "line": 80 2586 "line": 85
2509 } 2587 }
2510 }, 2588 },
2511 { 2589 {
2512 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 2590 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
2513 "end": { 2591 "end": {
2514 "column": 3, 2592 "column": 3,
2515 "line": 87 2593 "line": 92
2516 }, 2594 },
2517 "file": "src/components/settings/settings/EditSettingsForm.js", 2595 "file": "src/components/settings/settings/EditSettingsForm.js",
2518 "id": "settings.app.languageDisclaimer", 2596 "id": "settings.app.languageDisclaimer",
2519 "start": { 2597 "start": {
2520 "column": 22, 2598 "column": 22,
2521 "line": 84 2599 "line": 89
2522 } 2600 }
2523 } 2601 }
2524 ], 2602 ],
@@ -2540,7 +2618,7 @@
2540 } 2618 }
2541 }, 2619 },
2542 { 2620 {
2543 "defaultMessage": "!!!Franz for Teams", 2621 "defaultMessage": "!!!Ferdi for Teams",
2544 "end": { 2622 "end": {
2545 "column": 3, 2623 "column": 3,
2546 "line": 24 2624 "line": 24
@@ -2566,7 +2644,7 @@
2566 } 2644 }
2567 }, 2645 },
2568 { 2646 {
2569 "defaultMessage": "!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 2647 "defaultMessage": "!!!Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
2570 "end": { 2648 "end": {
2571 "column": 3, 2649 "column": 3,
2572 "line": 32 2650 "line": 32
@@ -3411,7 +3489,7 @@
3411 { 3489 {
3412 "descriptors": [ 3490 "descriptors": [
3413 { 3491 {
3414 "defaultMessage": "!!!Launch Franz on start", 3492 "defaultMessage": "!!!Launch Ferdi on start",
3415 "end": { 3493 "end": {
3416 "column": 3, 3494 "column": 3,
3417 "line": 27 3495 "line": 27
@@ -3437,7 +3515,7 @@
3437 } 3515 }
3438 }, 3516 },
3439 { 3517 {
3440 "defaultMessage": "!!!Keep Franz in background when closing the window", 3518 "defaultMessage": "!!!Keep Ferdi in background when closing the window",
3441 "end": { 3519 "end": {
3442 "column": 3, 3520 "column": 3,
3443 "line": 35 3521 "line": 35
@@ -3450,7 +3528,7 @@
3450 } 3528 }
3451 }, 3529 },
3452 { 3530 {
3453 "defaultMessage": "!!!Show Franz in system tray", 3531 "defaultMessage": "!!!Show Ferdi in system tray",
3454 "end": { 3532 "end": {
3455 "column": 3, 3533 "column": 3,
3456 "line": 39 3534 "line": 39
@@ -3463,7 +3541,7 @@
3463 } 3541 }
3464 }, 3542 },
3465 { 3543 {
3466 "defaultMessage": "!!!Minimize Franz to system tray", 3544 "defaultMessage": "!!!Minimize Ferdi to system tray",
3467 "end": { 3545 "end": {
3468 "column": 3, 3546 "column": 3,
3469 "line": 43 3547 "line": 43
@@ -3476,6 +3554,19 @@
3476 } 3554 }
3477 }, 3555 },
3478 { 3556 {
3557 "defaultMessage": "!!!Server",
3558 "end": {
3559 "column": 3,
3560 "line": 47
3561 },
3562 "file": "src/containers/settings/EditSettingsScreen.js",
3563 "id": "settings.app.form.server",
3564 "start": {
3565 "column": 10,
3566 "line": 44
3567 }
3568 },
3569 {
3479 "defaultMessage": "!!!Language", 3570 "defaultMessage": "!!!Language",
3480 "end": { 3571 "end": {
3481 "column": 3, 3572 "column": 3,
@@ -3707,16 +3798,16 @@
3707 { 3798 {
3708 "descriptors": [ 3799 "descriptors": [
3709 { 3800 {
3710 "defaultMessage": "!!!Changes in Franz {version}", 3801 "defaultMessage": "!!!Changes in Ferdi {version}",
3711 "end": { 3802 "end": {
3712 "column": 3, 3803 "column": 3,
3713 "line": 23 3804 "line": 22
3714 }, 3805 },
3715 "file": "src/features/announcements/components/AnnouncementScreen.js", 3806 "file": "src/features/announcements/components/AnnouncementScreen.js",
3716 "id": "feature.announcements.changelog.headline", 3807 "id": "feature.announcements.changelog.headline",
3717 "start": { 3808 "start": {
3718 "column": 12, 3809 "column": 12,
3719 "line": 20 3810 "line": 19
3720 } 3811 }
3721 } 3812 }
3722 ], 3813 ],
@@ -3777,7 +3868,7 @@
3777 } 3868 }
3778 }, 3869 },
3779 { 3870 {
3780 "defaultMessage": "!!!Franz will continue in {seconds} seconds.", 3871 "defaultMessage": "!!!Ferdi will continue in {seconds} seconds.",
3781 "end": { 3872 "end": {
3782 "column": 3, 3873 "column": 3,
3783 "line": 36 3874 "line": 36
@@ -3829,7 +3920,7 @@
3829 "defaultMessage": "!!!Upgrade account", 3920 "defaultMessage": "!!!Upgrade account",
3830 "end": { 3921 "end": {
3831 "column": 3, 3922 "column": 3,
3832 "line": 18 3923 "line": 17
3833 }, 3924 },
3834 "file": "src/features/serviceLimit/components/LimitReachedInfobox.js", 3925 "file": "src/features/serviceLimit/components/LimitReachedInfobox.js",
3835 "id": "premiumFeature.button.upgradeAccount", 3926 "id": "premiumFeature.button.upgradeAccount",
@@ -3857,7 +3948,7 @@
3857 } 3948 }
3858 }, 3949 },
3859 { 3950 {
3860 "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 3951 "defaultMessage": "!!!Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
3861 "end": { 3952 "end": {
3862 "column": 3, 3953 "column": 3,
3863 "line": 25 3954 "line": 25
@@ -3987,26 +4078,26 @@
3987 "defaultMessage": "!!!Create workspace", 4078 "defaultMessage": "!!!Create workspace",
3988 "end": { 4079 "end": {
3989 "column": 3, 4080 "column": 3,
3990 "line": 16 4081 "line": 15
3991 }, 4082 },
3992 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 4083 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
3993 "id": "settings.workspace.add.form.submitButton", 4084 "id": "settings.workspace.add.form.submitButton",
3994 "start": { 4085 "start": {
3995 "column": 16, 4086 "column": 16,
3996 "line": 13 4087 "line": 12
3997 } 4088 }
3998 }, 4089 },
3999 { 4090 {
4000 "defaultMessage": "!!!Name", 4091 "defaultMessage": "!!!Name",
4001 "end": { 4092 "end": {
4002 "column": 3, 4093 "column": 3,
4003 "line": 20 4094 "line": 19
4004 }, 4095 },
4005 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 4096 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
4006 "id": "settings.workspace.add.form.name", 4097 "id": "settings.workspace.add.form.name",
4007 "start": { 4098 "start": {
4008 "column": 8, 4099 "column": 8,
4009 "line": 17 4100 "line": 16
4010 } 4101 }
4011 } 4102 }
4012 ], 4103 ],
@@ -4018,91 +4109,91 @@
4018 "defaultMessage": "!!!Delete workspace", 4109 "defaultMessage": "!!!Delete workspace",
4019 "end": { 4110 "end": {
4020 "column": 3, 4111 "column": 3,
4021 "line": 22 4112 "line": 20
4022 }, 4113 },
4023 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4114 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4024 "id": "settings.workspace.form.buttonDelete", 4115 "id": "settings.workspace.form.buttonDelete",
4025 "start": { 4116 "start": {
4026 "column": 16, 4117 "column": 16,
4027 "line": 19 4118 "line": 17
4028 } 4119 }
4029 }, 4120 },
4030 { 4121 {
4031 "defaultMessage": "!!!Save workspace", 4122 "defaultMessage": "!!!Save workspace",
4032 "end": { 4123 "end": {
4033 "column": 3, 4124 "column": 3,
4034 "line": 26 4125 "line": 24
4035 }, 4126 },
4036 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4127 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4037 "id": "settings.workspace.form.buttonSave", 4128 "id": "settings.workspace.form.buttonSave",
4038 "start": { 4129 "start": {
4039 "column": 14, 4130 "column": 14,
4040 "line": 23 4131 "line": 21
4041 } 4132 }
4042 }, 4133 },
4043 { 4134 {
4044 "defaultMessage": "!!!Name", 4135 "defaultMessage": "!!!Name",
4045 "end": { 4136 "end": {
4046 "column": 3, 4137 "column": 3,
4047 "line": 30 4138 "line": 28
4048 }, 4139 },
4049 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4140 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4050 "id": "settings.workspace.form.name", 4141 "id": "settings.workspace.form.name",
4051 "start": { 4142 "start": {
4052 "column": 8, 4143 "column": 8,
4053 "line": 27 4144 "line": 25
4054 } 4145 }
4055 }, 4146 },
4056 { 4147 {
4057 "defaultMessage": "!!!Your workspaces", 4148 "defaultMessage": "!!!Your workspaces",
4058 "end": { 4149 "end": {
4059 "column": 3, 4150 "column": 3,
4060 "line": 34 4151 "line": 32
4061 }, 4152 },
4062 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4153 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4063 "id": "settings.workspace.form.yourWorkspaces", 4154 "id": "settings.workspace.form.yourWorkspaces",
4064 "start": { 4155 "start": {
4065 "column": 18, 4156 "column": 18,
4066 "line": 31 4157 "line": 29
4067 } 4158 }
4068 }, 4159 },
4069 { 4160 {
4070 "defaultMessage": "!!!Services in this Workspace", 4161 "defaultMessage": "!!!Services in this Workspace",
4071 "end": { 4162 "end": {
4072 "column": 3, 4163 "column": 3,
4073 "line": 38 4164 "line": 36
4074 }, 4165 },
4075 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4166 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4076 "id": "settings.workspace.form.servicesInWorkspaceHeadline", 4167 "id": "settings.workspace.form.servicesInWorkspaceHeadline",
4077 "start": { 4168 "start": {
4078 "column": 31, 4169 "column": 31,
4079 "line": 35 4170 "line": 33
4080 } 4171 }
4081 }, 4172 },
4082 { 4173 {
4083 "defaultMessage": "!!!You haven't added any services yet.", 4174 "defaultMessage": "!!!You haven't added any services yet.",
4084 "end": { 4175 "end": {
4085 "column": 3, 4176 "column": 3,
4086 "line": 42 4177 "line": 40
4087 }, 4178 },
4088 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4179 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4089 "id": "settings.services.noServicesAdded", 4180 "id": "settings.services.noServicesAdded",
4090 "start": { 4181 "start": {
4091 "column": 19, 4182 "column": 19,
4092 "line": 39 4183 "line": 37
4093 } 4184 }
4094 }, 4185 },
4095 { 4186 {
4096 "defaultMessage": "!!!Discover services", 4187 "defaultMessage": "!!!Discover services",
4097 "end": { 4188 "end": {
4098 "column": 3, 4189 "column": 3,
4099 "line": 46 4190 "line": 44
4100 }, 4191 },
4101 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 4192 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
4102 "id": "settings.services.discoverServices", 4193 "id": "settings.services.discoverServices",
4103 "start": { 4194 "start": {
4104 "column": 20, 4195 "column": 20,
4105 "line": 43 4196 "line": 41
4106 } 4197 }
4107 } 4198 }
4108 ], 4199 ],
@@ -4588,7 +4679,7 @@
4588 { 4679 {
4589 "descriptors": [ 4680 "descriptors": [
4590 { 4681 {
4591 "defaultMessage": "!!!Can't connect to Franz Online Services", 4682 "defaultMessage": "!!!Can't connect to Ferdi Online Services",
4592 "end": { 4683 "end": {
4593 "column": 3, 4684 "column": 3,
4594 "line": 7 4685 "line": 7
@@ -5087,7 +5178,7 @@
5087 } 5178 }
5088 }, 5179 },
5089 { 5180 {
5090 "defaultMessage": "!!!Franz Debug Information", 5181 "defaultMessage": "!!!Ferdi Debug Information",
5091 "end": { 5182 "end": {
5092 "column": 3, 5183 "column": 3,
5093 "line": 145 5184 "line": 145
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index aa8eb5909..40f8eac2f 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Καθαρισμός λανθάνουσας μνήμης", 197 "settings.app.buttonClearAllCache" : "Καθαρισμός λανθάνουσας μνήμης",
198 "settings.app.buttonInstallUpdate" : "Επανεκκίνηση & εγκατάσταση ενημερώσεων", 198 "settings.app.buttonInstallUpdate" : "Επανεκκίνηση & εγκατάσταση ενημερώσεων",
199 "settings.app.buttonSearchForUpdate" : "Έλεγχος για ενημερώσεις", 199 "settings.app.buttonSearchForUpdate" : "Έλεγχος για ενημερώσεις",
200 "settings.app.cacheInfo" : "Το Franz χρησιμοποιεί αυτήν τη στιγμή {size} χώρου στο δίσκο.", 200 "settings.app.cacheInfo" : "Το Ferdi χρησιμοποιεί αυτήν τη στιγμή {size} χώρου στο δίσκο.",
201 "settings.app.currentVersion" : "Τρέχουσα έκδοση:", 201 "settings.app.currentVersion" : "Τρέχουσα έκδοση:",
202 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παρασκήνιο", 202 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παρασκήνιο",
203 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος", 203 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Ferdi κατά την εκκίνηση του συστήματος",
204 "settings.app.form.beta" : "Συμπεριλάβετε εκδόσεις beta", 204 "settings.app.form.beta" : "Συμπεριλάβετε εκδόσεις beta",
205 "settings.app.form.darkMode" : "Join the Dark Side", 205 "settings.app.form.darkMode" : "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Ενεργοποιήση Ενίσχυσης GPU ", 206 "settings.app.form.enableGPUAcceleration" : "Ενεργοποιήση Ενίσχυσης GPU ",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γραμμή ειδοποιήσεων", 208 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γραμμή ειδοποιήσεων",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Γλώσσα", 210 "settings.app.form.language" : "Γλώσσα",
211 "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Franz στη γραμμή ειδοποιήσεων", 211 "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Ferdi στη γραμμή ειδοποιήσεων",
212 "settings.app.form.runInBackground" : "Κρατήστε το Franz στο παρασκήνιο κατά το κλείσιμο του παραθύρου", 212 "settings.app.form.runInBackground" : "Κρατήστε το Ferdi στο παρασκήνιο κατά το κλείσιμο του παραθύρου",
213 "settings.app.form.showDisabledServices" : "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών", 213 "settings.app.form.showDisabledServices" : "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες",
215 "settings.app.headline" : "Ρυθμίσεις", 215 "settings.app.headline" : "Ρυθμίσεις",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Οι αλλαγές απαιτούν επανεκκίνηση", 222 "settings.app.restartRequired" : "Οι αλλαγές απαιτούν επανεκκίνηση",
223 "settings.app.subheadlineCache" : "Λανθάνουσα μνήμη", 223 "settings.app.subheadlineCache" : "Λανθάνουσα μνήμη",
224 "settings.app.translationHelp" : "Βοηθήστε μας να μεταφράσουμε το Franz στη δική σας γλώσσα.", 224 "settings.app.translationHelp" : "Βοηθήστε μας να μεταφράσουμε το Ferdi στη δική σας γλώσσα.",
225 "settings.app.updateStatusAvailable" : "Υπάρχει διαθέσιμη ενημέρωση, γίνεται λήψη...", 225 "settings.app.updateStatusAvailable" : "Υπάρχει διαθέσιμη ενημέρωση, γίνεται λήψη...",
226 "settings.app.updateStatusSearching" : " Γίνεται αναζήτηση για ενημέρωση", 226 "settings.app.updateStatusSearching" : " Γίνεται αναζήτηση για ενημέρωση",
227 "settings.app.updateStatusUpToDate" : "Χρησιμοποιείτε την τελευταία έκδοση του Franz", 227 "settings.app.updateStatusUpToDate" : "Χρησιμοποιείτε την τελευταία έκδοση του Franz",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Όνομα", 276 "settings.service.form.name" : "Όνομα",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "Αποθήκευση υπηρεσίας", 285 "settings.service.form.saveButton" : "Αποθήκευση υπηρεσίας",
286 "settings.service.form.tabHosted" : "Φιλοξενείται", 286 "settings.service.form.tabHosted" : "Φιλοξενείται",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεργοποιημένοι", 297 "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεργοποιημένοι",
298 "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεργοποιημένες", 298 "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεργοποιημένες",
299 "settings.services.updatedInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί", 299 "settings.services.updatedInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Ομάδα", 302 "settings.team.headline" : "Ομάδα",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Δοκιμάστε ξανά", 325 "settings.workspaces.tryReloadWorkspaces" : "Δοκιμάστε ξανά",
326 "settings.workspaces.updatedInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί", 326 "settings.workspaces.updatedInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Προσθήκη νέας υπηρεσίας", 330 "sidebar.addNewService" : "Προσθήκη νέας υπηρεσίας",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Όνομα", 338 "signup.firstname.label" : "Όνομα",
339 "signup.headline" : "Εγγραφή", 339 "signup.headline" : "Εγγραφή",
340 "signup.lastname.label" : "Επίθετο", 340 "signup.lastname.label" : "Επίθετο",
341 "signup.legal.info" : "Δημιουργώντας έναν λογαριασμό Franz αποδέχεστε τους", 341 "signup.legal.info" : "Δημιουργώντας έναν λογαριασμό Ferdi αποδέχεστε τους",
342 "signup.legal.privacy" : "Δήλωση απορρήτου", 342 "signup.legal.privacy" : "Δήλωση απορρήτου",
343 "signup.legal.terms" : "Όροι υπηρεσίας", 343 "signup.legal.terms" : "Όροι υπηρεσίας",
344 "signup.link.login" : "Έχετε ήδη λογαριασμό? Συνδεθείτε.", 344 "signup.link.login" : "Έχετε ήδη λογαριασμό? Συνδεθείτε.",
345 "signup.password.label" : "Κωδικός πρόσβασης", 345 "signup.password.label" : "Κωδικός πρόσβασης",
346 "signup.submit.label" : "Δημιουργία λογαριασμού", 346 "signup.submit.label" : "Δημιουργία λογαριασμού",
347 "subscription.euTaxInfo" : "Πολίτες Ε.Ε.: Στις τιμές δεν περιλαμβάνονται τυχόν φόροι και άλλες τοπικές επιβαρύνσεις",
348 "subscription.features.ads" : "Τέλος στις διαφημίσεις",
349 "subscription.features.comingSoon" : "σύντομα",
350 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
351 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
352 "subscription.features.proxy" : "Proxy support for services",
353 "subscription.features.spellchecker" : "Support for spellchecker",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "Ο Premium λογαριασμός υποστήριξης Ferdi περιλαμβάνει",
356 "subscription.paymentSessionError" : "Δεν ήταν δυνατή η προετοιμασία της φόρμας πληρωμής",
357 "subscription.submit.label" : "Θέλω να βοηθήσω στην ανάπτυξη του Franz",
358 "subscription.type.free" : "δωρεάν",
359 "subscription.type.month" : "μήνας",
360 "subscription.type.year" : "έτος",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 9e63fdbca..55de9bdeb 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email": "Send as email", 13 "feature.shareFranz.action.email": "Send as email",
14 "feature.shareFranz.action.facebook": "Share on Facebook", 14 "feature.shareFranz.action.facebook": "Share on Facebook",
15 "feature.shareFranz.action.twitter": "Share on Twitter", 15 "feature.shareFranz.action.twitter": "Share on Twitter",
16 "feature.shareFranz.headline": "Franz is better together!", 16 "feature.shareFranz.headline": "Ferdi is better together!",
17 "feature.shareFranz.shareText.email": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @FranzMessenger",
19 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -32,6 +32,7 @@
32 "import.notSupportedHeadline": "Services not yet supported in Franz 5", 32 "import.notSupportedHeadline": "Services not yet supported in Franz 5",
33 "import.skip.label": "I want to add services manually", 33 "import.skip.label": "I want to add services manually",
34 "import.submit.label": "Import services", 34 "import.submit.label": "Import services",
35 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
35 "infobar.buttonChangelog": "What is new?", 36 "infobar.buttonChangelog": "What is new?",
36 "infobar.buttonInstallUpdate": "Restart & install update", 37 "infobar.buttonInstallUpdate": "Restart & install update",
37 "infobar.buttonReloadServices": "Reload services", 38 "infobar.buttonReloadServices": "Reload services",
@@ -45,6 +46,8 @@
45 "invite.skip.label": "I want to do this later", 46 "invite.skip.label": "I want to do this later",
46 "invite.submit.label": "Send invites", 47 "invite.submit.label": "Send invites",
47 "invite.successInfo": "Invitations sent successfully", 48 "invite.successInfo": "Invitations sent successfully",
49 "login.customServerQuestion": "Using a custom Ferdi server?",
50 "login.customServerSuggestion": "Try importing your Franz account",
48 "login.email.label": "Email address", 51 "login.email.label": "Email address",
49 "login.headline": "Sign in", 52 "login.headline": "Sign in",
50 "login.invalidCredentials": "Email or password not valid", 53 "login.invalidCredentials": "Email or password not valid",
@@ -83,7 +86,7 @@
83 "menu.help.changelog": "Changelog", 86 "menu.help.changelog": "Changelog",
84 "menu.help.debugInfo": "Copy Debug Information", 87 "menu.help.debugInfo": "Copy Debug Information",
85 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 88 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
86 "menu.help.debugInfoCopiedHeadline": "Franz Debug Information", 89 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
87 "menu.help.learnMore": "Learn More", 90 "menu.help.learnMore": "Learn More",
88 "menu.help.privacy": "Privacy Statement", 91 "menu.help.privacy": "Privacy Statement",
89 "menu.help.support": "Support", 92 "menu.help.support": "Support",
@@ -166,14 +169,16 @@
166 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 169 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.",
167 "service.webviewLoader.loading": "Loading", 170 "service.webviewLoader.loading": "Loading",
168 "services.getStarted": "Get started", 171 "services.getStarted": "Get started",
169 "services.welcome": "Welcome to Franz", 172 "services.login": "Please login to use Ferdi.",
173 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
174 "services.welcome": "Welcome to Ferdi",
170 "settings.account.account.editButton": "Edit account", 175 "settings.account.account.editButton": "Edit account",
171 "settings.account.accountType.basic": "Basic Account", 176 "settings.account.accountType.basic": "Basic Account",
172 "settings.account.accountType.premium": "Premium Supporter Account", 177 "settings.account.accountType.premium": "Premium Supporter Account",
173 "settings.account.buttonSave": "Update profile", 178 "settings.account.buttonSave": "Update profile",
174 "settings.account.deleteAccount": "Delete account", 179 "settings.account.deleteAccount": "Delete account",
175 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 180 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
176 "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.", 181 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
177 "settings.account.headline": "Account", 182 "settings.account.headline": "Account",
178 "settings.account.headlineAccount": "Account information", 183 "settings.account.headlineAccount": "Account information",
179 "settings.account.headlineDangerZone": "Danger Zone", 184 "settings.account.headlineDangerZone": "Danger Zone",
@@ -197,10 +202,10 @@
197 "settings.app.buttonClearAllCache": "Clear cache", 202 "settings.app.buttonClearAllCache": "Clear cache",
198 "settings.app.buttonInstallUpdate": "Restart & install update", 203 "settings.app.buttonInstallUpdate": "Restart & install update",
199 "settings.app.buttonSearchForUpdate": "Check for updates", 204 "settings.app.buttonSearchForUpdate": "Check for updates",
200 "settings.app.cacheInfo": "Franz cache is currently using {size} of disk space.", 205 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
201 "settings.app.currentVersion": "Current version:", 206 "settings.app.currentVersion": "Current version:",
202 "settings.app.form.autoLaunchInBackground": "Open in background", 207 "settings.app.form.autoLaunchInBackground": "Open in background",
203 "settings.app.form.autoLaunchOnStart": "Launch Franz on start", 208 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
204 "settings.app.form.beta": "Include beta versions", 209 "settings.app.form.beta": "Include beta versions",
205 "settings.app.form.darkMode": "Join the Dark Side", 210 "settings.app.form.darkMode": "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 211 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
@@ -208,8 +213,9 @@
208 "settings.app.form.enableSystemTray": "Show Franz in system tray", 213 "settings.app.form.enableSystemTray": "Show Franz in system tray",
209 "settings.app.form.enableTodos": "Enable Franz Todos", 214 "settings.app.form.enableTodos": "Enable Franz Todos",
210 "settings.app.form.language": "Language", 215 "settings.app.form.language": "Language",
211 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", 216 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
212 "settings.app.form.runInBackground": "Keep Franz in background when closing the window", 217 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
218 "settings.app.form.server": "Server",
213 "settings.app.form.showDisabledServices": "Display disabled services tabs", 219 "settings.app.form.showDisabledServices": "Display disabled services tabs",
214 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 220 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
215 "settings.app.headline": "Settings", 221 "settings.app.headline": "Settings",
@@ -220,8 +226,9 @@
220 "settings.app.headlineUpdates": "Updates", 226 "settings.app.headlineUpdates": "Updates",
221 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 227 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired": "Changes require restart", 228 "settings.app.restartRequired": "Changes require restart",
229 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
223 "settings.app.subheadlineCache": "Cache", 230 "settings.app.subheadlineCache": "Cache",
224 "settings.app.translationHelp": "Help us to translate Franz into your language.", 231 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
225 "settings.app.updateStatusAvailable": "Update available, downloading...", 232 "settings.app.updateStatusAvailable": "Update available, downloading...",
226 "settings.app.updateStatusSearching": "Is searching for update", 233 "settings.app.updateStatusSearching": "Is searching for update",
227 "settings.app.updateStatusUpToDate": "You are using the latest version of Franz", 234 "settings.app.updateStatusUpToDate": "You are using the latest version of Franz",
@@ -254,7 +261,7 @@
254 "settings.service.form.addServiceHeadline": "Add {name}", 261 "settings.service.form.addServiceHeadline": "Add {name}",
255 "settings.service.form.availableServices": "Available services", 262 "settings.service.form.availableServices": "Available services",
256 "settings.service.form.customUrl": "Custom server", 263 "settings.service.form.customUrl": "Custom server",
257 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", 264 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.",
258 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 265 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account",
259 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 266 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
260 "settings.service.form.deleteButton": "Delete service", 267 "settings.service.form.deleteButton": "Delete service",
@@ -276,11 +283,11 @@
276 "settings.service.form.name": "Name", 283 "settings.service.form.name": "Name",
277 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 284 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host": "Proxy Host/IP", 285 "settings.service.form.proxy.host": "Proxy Host/IP",
279 "settings.service.form.proxy.info": "Proxy settings will not synced with the Franz servers.", 286 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled": "Use Proxy", 287 "settings.service.form.proxy.isEnabled": "Use Proxy",
281 "settings.service.form.proxy.password": "Password (optional)", 288 "settings.service.form.proxy.password": "Password (optional)",
282 "settings.service.form.proxy.port": "Port", 289 "settings.service.form.proxy.port": "Port",
283 "settings.service.form.proxy.restartInfo": "Please restart Franz after changing proxy Settings.", 290 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user": "User (optional)", 291 "settings.service.form.proxy.user": "User (optional)",
285 "settings.service.form.saveButton": "Save service", 292 "settings.service.form.saveButton": "Save service",
286 "settings.service.form.tabHosted": "Hosted", 293 "settings.service.form.tabHosted": "Hosted",
@@ -297,8 +304,8 @@
297 "settings.services.tooltip.isMuted": "All sounds are muted", 304 "settings.services.tooltip.isMuted": "All sounds are muted",
298 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", 305 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled",
299 "settings.services.updatedInfo": "Your changes have been saved", 306 "settings.services.updatedInfo": "Your changes have been saved",
300 "settings.team.contentHeadline": "Franz for Teams", 307 "settings.team.contentHeadline": "Ferdi for Teams",
301 "settings.team.copy": "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 308 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline": "Team", 309 "settings.team.headline": "Team",
303 "settings.team.intro": "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 310 "settings.team.intro": "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction": "Manage your Team on meetfranz.com", 311 "settings.team.manageAction": "Manage your Team on meetfranz.com",
@@ -324,8 +331,8 @@
324 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 331 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces": "Try again", 332 "settings.workspaces.tryReloadWorkspaces": "Try again",
326 "settings.workspaces.updatedInfo": "Your changes have been saved", 333 "settings.workspaces.updatedInfo": "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Franz Workspaces", 334 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo": "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 335 "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 336 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces",
330 "sidebar.addNewService": "Add new service", 337 "sidebar.addNewService": "Add new service",
331 "sidebar.closeWorkspaceDrawer": "Close workspace drawer", 338 "sidebar.closeWorkspaceDrawer": "Close workspace drawer",
@@ -338,12 +345,26 @@
338 "signup.firstname.label": "First Name", 345 "signup.firstname.label": "First Name",
339 "signup.headline": "Sign up", 346 "signup.headline": "Sign up",
340 "signup.lastname.label": "Last Name", 347 "signup.lastname.label": "Last Name",
341 "signup.legal.info": "By creating a Franz account you accept the", 348 "signup.legal.info": "By creating a Ferdi account you accept the",
342 "signup.legal.privacy": "Privacy Statement", 349 "signup.legal.privacy": "Privacy Statement",
343 "signup.legal.terms": "Terms of service", 350 "signup.legal.terms": "Terms of service",
344 "signup.link.login": "Already have an account, sign in?", 351 "signup.link.login": "Already have an account, sign in?",
345 "signup.password.label": "Password", 352 "signup.password.label": "Password",
346 "signup.submit.label": "Create account", 353 "signup.submit.label": "Create account",
354 "subscription.euTaxInfo": "EU residents: local sales tax may apply",
355 "subscription.features.ads": "No ads, ever!",
356 "subscription.features.comingSoon": "coming soon",
357 "subscription.features.noInterruptions": "No app delays & nagging to upgrade license",
358 "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost",
359 "subscription.features.proxy": "Proxy support for services",
360 "subscription.features.spellchecker": "Support for spellchecker",
361 "subscription.features.workspaces": "Organize your services in workspaces",
362 "subscription.includedFeatures": "Paid Ferdi Premium Supporter Account includes",
363 "subscription.paymentSessionError": "Could not initialize payment form",
364 "subscription.submit.label": "I want to support the development of Franz",
365 "subscription.type.free": "free",
366 "subscription.type.month": "month",
367 "subscription.type.year": "year",
347 "subscription.cta.activateTrial": "Yes, start the free Franz Professional trial", 368 "subscription.cta.activateTrial": "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions": "See all options", 369 "subscription.cta.allOptions": "See all options",
349 "subscription.cta.choosePlan": "Choose your plan", 370 "subscription.cta.choosePlan": "Choose your plan",
@@ -376,7 +397,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 397 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge": "Premium feature", 398 "workspaceDrawer.proFeatureBadge": "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 399 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo": "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>", 400 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>",
380 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 401 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo": "Switching to" 402 "workspaces.switchingIndicator.switchingTo": "Switching to"
382} 403} \ No newline at end of file
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 607cc10bd..48b68a893 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Limpiar caché", 197 "settings.app.buttonClearAllCache" : "Limpiar caché",
198 "settings.app.buttonInstallUpdate" : "Reiniciar e instalar actualizaciones", 198 "settings.app.buttonInstallUpdate" : "Reiniciar e instalar actualizaciones",
199 "settings.app.buttonSearchForUpdate" : "Buscar actualizaciones", 199 "settings.app.buttonSearchForUpdate" : "Buscar actualizaciones",
200 "settings.app.cacheInfo" : "El cache de Franz actualmente usa {size} de espacio en disco.", 200 "settings.app.cacheInfo" : "El cache de Ferdi actualmente usa {size} de espacio en disco.",
201 "settings.app.currentVersion" : "Versión actual:", 201 "settings.app.currentVersion" : "Versión actual:",
202 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano", 202 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano",
203 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar", 203 "settings.app.form.autoLaunchOnStart" : "Iniciar Ferdi al iniciar",
204 "settings.app.form.beta" : "Incluir versiones beta", 204 "settings.app.form.beta" : "Incluir versiones beta",
205 "settings.app.form.darkMode" : "Únete al Lado Oscuro", 205 "settings.app.form.darkMode" : "Únete al Lado Oscuro",
206 "settings.app.form.enableGPUAcceleration" : "Habilitar aceleración de GPU", 206 "settings.app.form.enableGPUAcceleration" : "Habilitar aceleración de GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", 208 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Idioma", 210 "settings.app.form.language" : "Idioma",
211 "settings.app.form.minimizeToSystemTray" : "Minimizar Franz a la bandeja del sistema", 211 "settings.app.form.minimizeToSystemTray" : "Minimizar Ferdi a la bandeja del sistema",
212 "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana", 212 "settings.app.form.runInBackground" : "Mantener Ferdi en segundo plano al cerrar la ventana",
213 "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados", 213 "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas",
215 "settings.app.headline" : "Configuración", 215 "settings.app.headline" : "Configuración",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Las traducciones oficiales son en inglés y alemán. Todos los demás idiomas son traducciones basadas en la comunidad.", 221 "settings.app.languageDisclaimer" : "Las traducciones oficiales son en inglés y alemán. Todos los demás idiomas son traducciones basadas en la comunidad.",
222 "settings.app.restartRequired" : "Los cambios requieren reiniciar", 222 "settings.app.restartRequired" : "Los cambios requieren reiniciar",
223 "settings.app.subheadlineCache" : "Caché", 223 "settings.app.subheadlineCache" : "Caché",
224 "settings.app.translationHelp" : "Ayúdanos a traducir Franz a tu idioma.", 224 "settings.app.translationHelp" : "Ayúdanos a traducir Ferdi a tu idioma.",
225 "settings.app.updateStatusAvailable" : "Actualización disponible, descargando...", 225 "settings.app.updateStatusAvailable" : "Actualización disponible, descargando...",
226 "settings.app.updateStatusSearching" : "Buscando actualizaciones", 226 "settings.app.updateStatusSearching" : "Buscando actualizaciones",
227 "settings.app.updateStatusUpToDate" : "Estás utilizando la última versión de Franz", 227 "settings.app.updateStatusUpToDate" : "Estás utilizando la última versión de Franz",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Contraseña (opcional)", 281 "settings.service.form.proxy.password" : "Contraseña (opcional)",
282 "settings.service.form.proxy.port" : "Puerto", 282 "settings.service.form.proxy.port" : "Puerto",
283 "settings.service.form.proxy.restartInfo" : "Por favor reinicie Franz despues de modificar los ajustes proxy.", 283 "settings.service.form.proxy.restartInfo" : "Por favor reinicie Ferdi despues de modificar los ajustes proxy.",
284 "settings.service.form.proxy.user" : "Usuario (opcional)", 284 "settings.service.form.proxy.user" : "Usuario (opcional)",
285 "settings.service.form.saveButton" : "Guardar servicio", 285 "settings.service.form.saveButton" : "Guardar servicio",
286 "settings.service.form.tabHosted" : "Alojado", 286 "settings.service.form.tabHosted" : "Alojado",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", 297 "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados",
298 "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", 298 "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas",
299 "settings.services.updatedInfo" : "Tus cambios han sido guardados", 299 "settings.services.updatedInfo" : "Tus cambios han sido guardados",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Equipo", 302 "settings.team.headline" : "Equipo",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Inténtalo de nuevo", 325 "settings.workspaces.tryReloadWorkspaces" : "Inténtalo de nuevo",
326 "settings.workspaces.updatedInfo" : "Tus cambios han sido guardados", 326 "settings.workspaces.updatedInfo" : "Tus cambios han sido guardados",
327 "settings.workspaces.workspaceFeatureHeadline" : "Menos es más: Presentación de Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Menos es más: Presentación de Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Añadir nuevo servicio", 330 "sidebar.addNewService" : "Añadir nuevo servicio",
331 "sidebar.closeWorkspaceDrawer" : "Cerrar cajón de espacio de trabajo", 331 "sidebar.closeWorkspaceDrawer" : "Cerrar cajón de espacio de trabajo",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Nombre", 338 "signup.firstname.label" : "Nombre",
339 "signup.headline" : "Registrarse", 339 "signup.headline" : "Registrarse",
340 "signup.lastname.label" : "Apellido", 340 "signup.lastname.label" : "Apellido",
341 "signup.legal.info" : "Al crear una cuenta en Franz usted acepta", 341 "signup.legal.info" : "Al crear una cuenta en Ferdi usted acepta",
342 "signup.legal.privacy" : "Declaración de privacidad", 342 "signup.legal.privacy" : "Declaración de privacidad",
343 "signup.legal.terms" : "Términos de servicio", 343 "signup.legal.terms" : "Términos de servicio",
344 "signup.link.login" : "Ya tienes una cuenta, ¿Iniciar sesión?", 344 "signup.link.login" : "Ya tienes una cuenta, ¿Iniciar sesión?",
345 "signup.password.label" : "Contraseña", 345 "signup.password.label" : "Contraseña",
346 "signup.submit.label" : "Crear cuenta", 346 "signup.submit.label" : "Crear cuenta",
347 "subscription.euTaxInfo" : "Residentes de la UE: pueden aplicarse impuestos locales",
348 "subscription.features.ads" : "¡Sin publicidad, para siempre!",
349 "subscription.features.comingSoon" : "próximamente",
350 "subscription.features.noInterruptions" : "Sin retrasos en la app ni molestas actualizaciones de licencias",
351 "subscription.features.onpremise.mattermost" : "Agregar servicios de almacenamiento como Mattermost",
352 "subscription.features.proxy" : "Soporte Proxy para servicios",
353 "subscription.features.spellchecker" : "Soporte para corrector de ortografía",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "La Cuenta pagada de Colaborador Premium de Ferdi incluye",
356 "subscription.paymentSessionError" : "No se pudo inicializar el formulario de pago",
357 "subscription.submit.label" : "Quiero apoyar el desarrollo de Franz",
358 "subscription.type.free" : "gratis",
359 "subscription.type.month" : "mes",
360 "subscription.type.year" : "año",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 87228e1bf..f98a060cd 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Vider le cache", 197 "settings.app.buttonClearAllCache" : "Vider le cache",
198 "settings.app.buttonInstallUpdate" : "Redémarrer et installer la mise à jour", 198 "settings.app.buttonInstallUpdate" : "Redémarrer et installer la mise à jour",
199 "settings.app.buttonSearchForUpdate" : "Vérifier les mises à jour", 199 "settings.app.buttonSearchForUpdate" : "Vérifier les mises à jour",
200 "settings.app.cacheInfo" : "Le cache de Franz occupe actuellement {size} en espace disque.", 200 "settings.app.cacheInfo" : "Le cache de Ferdi occupe actuellement {size} en espace disque.",
201 "settings.app.currentVersion" : "Version actuelle :", 201 "settings.app.currentVersion" : "Version actuelle :",
202 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", 202 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan",
203 "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", 203 "settings.app.form.autoLaunchOnStart" : "Lancer Ferdi au démarrage",
204 "settings.app.form.beta" : "Accepter les versions bêta", 204 "settings.app.form.beta" : "Accepter les versions bêta",
205 "settings.app.form.darkMode" : "Activer le thème sombre", 205 "settings.app.form.darkMode" : "Activer le thème sombre",
206 "settings.app.form.enableGPUAcceleration" : "Activer l'accélération GPU", 206 "settings.app.form.enableGPUAcceleration" : "Activer l'accélération GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", 208 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Langue", 210 "settings.app.form.language" : "Langue",
211 "settings.app.form.minimizeToSystemTray" : "Minimiser Franz dans la zone de notification", 211 "settings.app.form.minimizeToSystemTray" : "Minimiser Ferdi dans la zone de notification",
212 "settings.app.form.runInBackground" : "Garder Franz ouvert en arrière-plan à la fermeture de la fenêtre", 212 "settings.app.form.runInBackground" : "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre",
213 "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés", 213 "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.",
215 "settings.app.headline" : "Paramètres", 215 "settings.app.headline" : "Paramètres",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.", 221 "settings.app.languageDisclaimer" : "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.",
222 "settings.app.restartRequired" : "Les modifications nécessitent un redémarrage", 222 "settings.app.restartRequired" : "Les modifications nécessitent un redémarrage",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Aidez-nous à traduire Franz dans votre langue.", 224 "settings.app.translationHelp" : "Aidez-nous à traduire Ferdi dans votre langue.",
225 "settings.app.updateStatusAvailable" : "Mise à jour disponible, téléchargement en cours...", 225 "settings.app.updateStatusAvailable" : "Mise à jour disponible, téléchargement en cours...",
226 "settings.app.updateStatusSearching" : "Recherche d'une mise à jour", 226 "settings.app.updateStatusSearching" : "Recherche d'une mise à jour",
227 "settings.app.updateStatusUpToDate" : "Vous utilisez la dernière version de Franz", 227 "settings.app.updateStatusUpToDate" : "Vous utilisez la dernière version de Franz",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Utiliser un proxy", 280 "settings.service.form.proxy.isEnabled" : "Utiliser un proxy",
281 "settings.service.form.proxy.password" : "Mot de passe (facultatif)", 281 "settings.service.form.proxy.password" : "Mot de passe (facultatif)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifié les paramètres proxy.", 283 "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Ferdi après avoir modifié les paramètres proxy.",
284 "settings.service.form.proxy.user" : "Utilisateur (facultatif)", 284 "settings.service.form.proxy.user" : "Utilisateur (facultatif)",
285 "settings.service.form.saveButton" : "Enregistrer le service", 285 "settings.service.form.saveButton" : "Enregistrer le service",
286 "settings.service.form.tabHosted" : "Hébergé", 286 "settings.service.form.tabHosted" : "Hébergé",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Tous les sons sont coupés", 297 "settings.services.tooltip.isMuted" : "Tous les sons sont coupés",
298 "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.", 298 "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.",
299 "settings.services.updatedInfo" : "Vos modifications ont été enregistrées", 299 "settings.services.updatedInfo" : "Vos modifications ont été enregistrées",
300 "settings.team.contentHeadline" : "Franz pour les équipes", 300 "settings.team.contentHeadline" : "Ferdi pour les équipes",
301 "settings.team.copy" : "Franz for Teams t'offre la possibilité d'inviter des collègues dans ton équipe de travail en leur envoyant des invitations par courrier électronique et en gérant leurs abonnements dans les préférences de ton compte. Ne perds pas de temps à les gérer individuellement les factures multiples et les différents cycles de facturation - il suffit d'une seule équipe de travail pour gérer tout ça!", 301 "settings.team.copy" : "Ferdi for Teams t'offre la possibilité d'inviter des collègues dans ton équipe de travail en leur envoyant des invitations par courrier électronique et en gérant leurs abonnements dans les préférences de ton compte. Ne perds pas de temps à les gérer individuellement les factures multiples et les différents cycles de facturation - il suffit d'une seule équipe de travail pour gérer tout ça!",
302 "settings.team.headline" : "Équipe de travail", 302 "settings.team.headline" : "Équipe de travail",
303 "settings.team.intro" : "Tu peux désormais gérer les abonnements Premium pour autant de collègues, amis ou membres de famille que tu souhaites, à partir d'un seul et même compte.", 303 "settings.team.intro" : "Tu peux désormais gérer les abonnements Premium pour autant de collègues, amis ou membres de famille que tu souhaites, à partir d'un seul et même compte.",
304 "settings.team.manageAction" : "Gère ton équipe sur meetfranz.com", 304 "settings.team.manageAction" : "Gère ton équipe sur meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Réessayer", 325 "settings.workspaces.tryReloadWorkspaces" : "Réessayer",
326 "settings.workspaces.updatedInfo" : "Vos modifications ont été enregistrées", 326 "settings.workspaces.updatedInfo" : "Vos modifications ont été enregistrées",
327 "settings.workspaces.workspaceFeatureHeadline" : "Présentation des Espaces de travail de Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Présentation des Espaces de travail de Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "Les Espaces de travail de Franz vous permettant de rester concentré sur ce qui est important. Créez différents groupes de services et naviguez facilement entre eux à n'importe quel moment. Vous décidez de quels services vous avez besoin, où et quand, ainsi nous pouvons vous aider à rester concentré sur votre travail - ou à le quitter dès que vous le souhaitez.", 328 "settings.workspaces.workspaceFeatureInfo" : "Les Espaces de travail de Ferdi vous permettant de rester concentré sur ce qui est important. Créez différents groupes de services et naviguez facilement entre eux à n'importe quel moment. Vous décidez de quels services vous avez besoin, où et quand, ainsi nous pouvons vous aider à rester concentré sur votre travail - ou à le quitter dès que vous le souhaitez.",
329 "settings.workspaces.workspacesRequestFailed" : "Impossible de charger vos espaces de travail", 329 "settings.workspaces.workspacesRequestFailed" : "Impossible de charger vos espaces de travail",
330 "sidebar.addNewService" : "Ajouter un nouveau service", 330 "sidebar.addNewService" : "Ajouter un nouveau service",
331 "sidebar.closeWorkspaceDrawer" : "Fermer l'espace de travail", 331 "sidebar.closeWorkspaceDrawer" : "Fermer l'espace de travail",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Vous avez déjà un compte ? Connectez-vous", 344 "signup.link.login" : "Vous avez déjà un compte ? Connectez-vous",
345 "signup.password.label" : "Mot de passe", 345 "signup.password.label" : "Mot de passe",
346 "signup.submit.label" : "Créer un compte", 346 "signup.submit.label" : "Créer un compte",
347 "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer",
348 "subscription.features.ads" : "Plus de pubs !",
349 "subscription.features.comingSoon" : "Bientôt disponible",
350 "subscription.features.noInterruptions" : "Aucun délai dans l'application ni de harcèlement pour mettre à niveau la licence",
351 "subscription.features.onpremise.mattermost" : "Ajouter des services auto-hébergés comme Mattermost",
352 "subscription.features.proxy" : "Support proxy pour les services",
353 "subscription.features.spellchecker" : "Prise en charge du correcteur orthographique",
354 "subscription.features.workspaces" : "Organisez vos services en espaces de travail",
355 "subscription.includedFeatures" : "Le compte payant Supporter Premium Ferdi inclut",
356 "subscription.paymentSessionError" : "Initialisation du paiement impossible",
357 "subscription.submit.label" : "Je souhaite aider au développement de Franz",
358 "subscription.type.free" : "gratuit",
359 "subscription.type.month" : "mois",
360 "subscription.type.year" : "année",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Créez votre premier espace de travail", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Créez votre premier espace de travail",
377 "workspaceDrawer.proFeatureBadge" : "Fonctionnalité premium", 391 "workspaceDrawer.proFeatureBadge" : "Fonctionnalité premium",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Réactivez votre compte premium", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Réactivez votre compte premium",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Les Espaces de travail de Franz vous permettant de rester concentré sur ce qui est important. Créez différents groupes de services et naviguez facilement entre eux à n'importe quel moment.<\/p><p>Vous décidez de quels services vous avez besoin, où et quand, ainsi nous pouvons vous aider à rester concentré sur votre travail - ou à le quitter dès que vous le souhaitez.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Les Espaces de travail de Ferdi vous permettant de rester concentré sur ce qui est important. Créez différents groupes de services et naviguez facilement entre eux à n'importe quel moment.<\/p><p>Vous décidez de quels services vous avez besoin, où et quand, ainsi nous pouvons vous aider à rester concentré sur votre travail - ou à le quitter dès que vous le souhaitez.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Editer les paramètres de l'espace de travail", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Editer les paramètres de l'espace de travail",
381 "workspaces.switchingIndicator.switchingTo" : "Changement vers" 395 "workspaces.switchingIndicator.switchingTo" : "Changement vers"
382} 396}
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index 5de840b7e..f274c6eff 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -59,7 +59,7 @@
59 "menu.app.about" : "Faoi Franz", 59 "menu.app.about" : "Faoi Franz",
60 "menu.app.announcement" : "What's new?", 60 "menu.app.announcement" : "What's new?",
61 "menu.app.checkForUpdates" : "Cuardaigh le nuashonruithe", 61 "menu.app.checkForUpdates" : "Cuardaigh le nuashonruithe",
62 "menu.app.hide" : "Cuir Franz i bhfolach", 62 "menu.app.hide" : "Cuir Ferdi i bhfolach",
63 "menu.app.hideOthers" : "Folaigh feidhmchláir eile", 63 "menu.app.hideOthers" : "Folaigh feidhmchláir eile",
64 "menu.app.quit" : "Scoir", 64 "menu.app.quit" : "Scoir",
65 "menu.app.settings" : "Socruithe", 65 "menu.app.settings" : "Socruithe",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Nuashonraigh próifíl", 173 "settings.account.buttonSave" : "Nuashonraigh próifíl",
174 "settings.account.deleteAccount" : "Scrios cuntas", 174 "settings.account.deleteAccount" : "Scrios cuntas",
175 "settings.account.deleteEmailSent" : "Fuair tú ríomhphost chun scriosadh do chuntais a dheimhniú. Ní féidir do chuntas agus do chuid sonraí a thabhairt ar ais!", 175 "settings.account.deleteEmailSent" : "Fuair tú ríomhphost chun scriosadh do chuntais a dheimhniú. Ní féidir do chuntas agus do chuid sonraí a thabhairt ar ais!",
176 "settings.account.deleteInfo" : "Más rud é nár ghá cuntas Franz a bheith agat a thuilleadh, is féidir do chuntas agus gach sonraí riachtanach a scriosadh anseo.", 176 "settings.account.deleteInfo" : "Más rud é nár ghá cuntas Ferdi a bheith agat a thuilleadh, is féidir do chuntas agus gach sonraí riachtanach a scriosadh anseo.",
177 "settings.account.headline" : "Cuntas", 177 "settings.account.headline" : "Cuntas",
178 "settings.account.headlineAccount" : "Eolas faoin gcuntas", 178 "settings.account.headlineAccount" : "Eolas faoin gcuntas",
179 "settings.account.headlineDangerZone" : "Scrios cuntas", 179 "settings.account.headlineDangerZone" : "Scrios cuntas",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Glan taisce", 197 "settings.app.buttonClearAllCache" : "Glan taisce",
198 "settings.app.buttonInstallUpdate" : "Atosaigh ⁊ suiteáil nuashonrú", 198 "settings.app.buttonInstallUpdate" : "Atosaigh ⁊ suiteáil nuashonrú",
199 "settings.app.buttonSearchForUpdate" : "Cuardaigh le nuashonruithe", 199 "settings.app.buttonSearchForUpdate" : "Cuardaigh le nuashonruithe",
200 "settings.app.cacheInfo" : "Tá taisce Franz ag baint úsáid as {size} den spás diosca.", 200 "settings.app.cacheInfo" : "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.",
201 "settings.app.currentVersion" : "Leagan reatha:", 201 "settings.app.currentVersion" : "Leagan reatha:",
202 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", 202 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra",
203 "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", 203 "settings.app.form.autoLaunchOnStart" : "Láinseáil Ferdi ón tús",
204 "settings.app.form.beta" : "Cuir leagain béite san áireamh", 204 "settings.app.form.beta" : "Cuir leagain béite san áireamh",
205 "settings.app.form.darkMode" : "Join the Dark Side", 205 "settings.app.form.darkMode" : "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG", 206 "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", 208 "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Teanga", 210 "settings.app.form.language" : "Teanga",
211 "settings.app.form.minimizeToSystemTray" : "Íoslaghdaigh Franz chuig tráidire an chórais", 211 "settings.app.form.minimizeToSystemTray" : "Íoslaghdaigh Ferdi chuig tráidire an chórais",
212 "settings.app.form.runInBackground" : "Coimeád Franz sa chúlra nuair a dhúntar an fhuinneog", 212 "settings.app.form.runInBackground" : "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog",
213 "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe", 213 "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí",
215 "settings.app.headline" : "Socruithe", 215 "settings.app.headline" : "Socruithe",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Ní gá atosú chun athruithe a chur i bhfeidhm.", 222 "settings.app.restartRequired" : "Ní gá atosú chun athruithe a chur i bhfeidhm.",
223 "settings.app.subheadlineCache" : "Taisce", 223 "settings.app.subheadlineCache" : "Taisce",
224 "settings.app.translationHelp" : "Cabhraigh linn Franz a aistriú i do theanga.", 224 "settings.app.translationHelp" : "Cabhraigh linn Ferdi a aistriú i do theanga.",
225 "settings.app.updateStatusAvailable" : "Nuashonrú le fáil, ag íoslódáil...", 225 "settings.app.updateStatusAvailable" : "Nuashonrú le fáil, ag íoslódáil...",
226 "settings.app.updateStatusSearching" : "Ag cuardach le nuashonruithe", 226 "settings.app.updateStatusSearching" : "Ag cuardach le nuashonruithe",
227 "settings.app.updateStatusUpToDate" : "Tá tú ag baint úsáid as an leagan is deireanaí de Franz", 227 "settings.app.updateStatusUpToDate" : "Tá tú ag baint úsáid as an leagan is deireanaí de Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Cuir {name} leis", 254 "settings.service.form.addServiceHeadline" : "Cuir {name} leis",
255 "settings.service.form.availableServices" : "Seirbhísí le fáil", 255 "settings.service.form.availableServices" : "Seirbhísí le fáil",
256 "settings.service.form.customUrl" : "Freastalaí saincheaptha", 256 "settings.service.form.customUrl" : "Freastalaí saincheaptha",
257 "settings.service.form.customUrlPremiumInfo" : "Chun seirbhísí féinóstáilte a chur le Franz, ní gá Cuntas Phŕeimhthacadóra Franz a bheith agat.", 257 "settings.service.form.customUrlPremiumInfo" : "Chun seirbhísí féinóstáilte a chur le Franz, ní gá Cuntas Phŕeimhthacadóra Ferdi a bheith agat.",
258 "settings.service.form.customUrlUpgradeAccount" : "Uasghrádaigh do chuntas", 258 "settings.service.form.customUrlUpgradeAccount" : "Uasghrádaigh do chuntas",
259 "settings.service.form.customUrlValidationError" : "Ní féidir seirbhís {name} saincheaptha a dheimhniú", 259 "settings.service.form.customUrlValidationError" : "Ní féidir seirbhís {name} saincheaptha a dheimhniú",
260 "settings.service.form.deleteButton" : "Scrios seirbhís", 260 "settings.service.form.deleteButton" : "Scrios seirbhís",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Ainm", 276 "settings.service.form.name" : "Ainm",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "Sábháil seirbhís", 285 "settings.service.form.saveButton" : "Sábháil seirbhís",
286 "settings.service.form.tabHosted" : "Óstáilte", 286 "settings.service.form.tabHosted" : "Óstáilte",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Tachtar gach fuaim", 297 "settings.services.tooltip.isMuted" : "Tachtar gach fuaim",
298 "settings.services.tooltip.notificationsDisabled" : "Fógraí dhíchumasaithe", 298 "settings.services.tooltip.notificationsDisabled" : "Fógraí dhíchumasaithe",
299 "settings.services.updatedInfo" : "Sábháiltear do chuid athruithe", 299 "settings.services.updatedInfo" : "Sábháiltear do chuid athruithe",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Foireann", 302 "settings.team.headline" : "Foireann",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Atriail", 325 "settings.workspaces.tryReloadWorkspaces" : "Atriail",
326 "settings.workspaces.updatedInfo" : "Your changes have been saved", 326 "settings.workspaces.updatedInfo" : "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Cuir seirbhís nua leis", 330 "sidebar.addNewService" : "Cuir seirbhís nua leis",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Céadainm", 338 "signup.firstname.label" : "Céadainm",
339 "signup.headline" : "Cláraigh", 339 "signup.headline" : "Cláraigh",
340 "signup.lastname.label" : "Sloinne", 340 "signup.lastname.label" : "Sloinne",
341 "signup.legal.info" : "Agus tú ag cruthú cuntas Franz glacann tú le", 341 "signup.legal.info" : "Agus tú ag cruthú cuntas Ferdi glacann tú le",
342 "signup.legal.privacy" : "Polasaí príobháideachais", 342 "signup.legal.privacy" : "Polasaí príobháideachais",
343 "signup.legal.terms" : "Tearmaí seirbhíse", 343 "signup.legal.terms" : "Tearmaí seirbhíse",
344 "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", 344 "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?",
345 "signup.password.label" : "Pasfhocal", 345 "signup.password.label" : "Pasfhocal",
346 "signup.submit.label" : "Cruthaigh cuntas", 346 "signup.submit.label" : "Cruthaigh cuntas",
347 "subscription.euTaxInfo" : "Áithritheoirí an tAÉ: is féidir cáin díolacháin áitiúla a chur i bhfeidhm",
348 "subscription.features.ads" : "Fógraí ar bith, choíche!",
349 "subscription.features.comingSoon" : "ag teacht go luath",
350 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
351 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
352 "subscription.features.proxy" : "Proxy support for services",
353 "subscription.features.spellchecker" : "Support for spellchecker",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhthacadóra Ferdi san áireamh",
356 "subscription.paymentSessionError" : "Ní féidir an bhfoirm íocaíochta a lódáil",
357 "subscription.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz",
358 "subscription.type.free" : "saor in aisce",
359 "subscription.type.month" : "mí",
360 "subscription.type.year" : "bliain",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index c99997d30..cb2e3e88c 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Ažuriraj profil", 173 "settings.account.buttonSave" : "Ažuriraj profil",
174 "settings.account.deleteAccount" : "Izbrisati račun", 174 "settings.account.deleteAccount" : "Izbrisati račun",
175 "settings.account.deleteEmailSent" : "Dobili ste email s linkom putem kojeg ćete potvrditi brisanje računa. Vaš račun i podatke neće biti moguće vratiti. ", 175 "settings.account.deleteEmailSent" : "Dobili ste email s linkom putem kojeg ćete potvrditi brisanje računa. Vaš račun i podatke neće biti moguće vratiti. ",
176 "settings.account.deleteInfo" : "Ako više ne trebate Franz račun, ovdje možete obrisati sve vezane podatke kao i račun.", 176 "settings.account.deleteInfo" : "Ako više ne trebate Ferdi račun, ovdje možete obrisati sve vezane podatke kao i račun.",
177 "settings.account.headline" : "Korisnički račun", 177 "settings.account.headline" : "Korisnički račun",
178 "settings.account.headlineAccount" : "Informacije o računu", 178 "settings.account.headlineAccount" : "Informacije o računu",
179 "settings.account.headlineDangerZone" : "Opasnost", 179 "settings.account.headlineDangerZone" : "Opasnost",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Očisti memoriju", 197 "settings.app.buttonClearAllCache" : "Očisti memoriju",
198 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje", 198 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje",
199 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja", 199 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja",
200 "settings.app.cacheInfo" : "Franz predmemorija trenutno koristi {size} prostora na disku", 200 "settings.app.cacheInfo" : "Ferdi predmemorija trenutno koristi {size} prostora na disku",
201 "settings.app.currentVersion" : "Trenutna verzija:", 201 "settings.app.currentVersion" : "Trenutna verzija:",
202 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 202 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
203 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 203 "settings.app.form.autoLaunchOnStart" : "Pokreni Ferdi sa sistemom",
204 "settings.app.form.beta" : "Obuhvati i beta verzije", 204 "settings.app.form.beta" : "Obuhvati i beta verzije",
205 "settings.app.form.darkMode" : "Join the Dark Side", 205 "settings.app.form.darkMode" : "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 206 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Ime", 276 "settings.service.form.name" : "Ime",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", 285 "settings.service.form.saveButton" : "Sačuvaj uslugu\/e",
286 "settings.service.form.tabHosted" : "Hostovano", 286 "settings.service.form.tabHosted" : "Hostovano",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ", 297 "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ",
298 "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", 298 "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.",
299 "settings.services.updatedInfo" : "Vaše promjene su pohranjene. ", 299 "settings.services.updatedInfo" : "Vaše promjene su pohranjene. ",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Tim", 302 "settings.team.headline" : "Tim",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno", 325 "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno",
326 "settings.workspaces.updatedInfo" : "Your changes have been saved", 326 "settings.workspaces.updatedInfo" : "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Dodajte novu uslugu", 330 "sidebar.addNewService" : "Dodajte novu uslugu",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,7 +338,7 @@
338 "signup.firstname.label" : "Ime", 338 "signup.firstname.label" : "Ime",
339 "signup.headline" : "Prijava", 339 "signup.headline" : "Prijava",
340 "signup.lastname.label" : "Prezime", 340 "signup.lastname.label" : "Prezime",
341 "signup.legal.info" : "Prilikom stvaranja Franz računa, slažete se sa sljedećim stavkama:", 341 "signup.legal.info" : "Prilikom stvaranja Ferdi računa, slažete se sa sljedećim stavkama:",
342 "signup.legal.privacy" : "Izjava o privatnosti ", 342 "signup.legal.privacy" : "Izjava o privatnosti ",
343 "signup.legal.terms" : "Uvjeti korištenja", 343 "signup.legal.terms" : "Uvjeti korištenja",
344 "signup.link.login" : "Imate račun? Prijavite se.", 344 "signup.link.login" : "Imate račun? Prijavite se.",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index aca8b2ca0..d90a7245a 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Küldés email-ben", 13 "feature.shareFranz.action.email" : "Küldés email-ben",
14 "feature.shareFranz.action.facebook" : "Megosztás Facebook-on", 14 "feature.shareFranz.action.facebook" : "Megosztás Facebook-on",
15 "feature.shareFranz.action.twitter" : "Megosztás Twitter-en", 15 "feature.shareFranz.action.twitter" : "Megosztás Twitter-en",
16 "feature.shareFranz.headline" : "A Franz barátokkal együtt mégjobb!", 16 "feature.shareFranz.headline" : "A Ferdi barátokkal együtt mégjobb!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -96,7 +96,7 @@
96 "menu.view" : "Nézet", 96 "menu.view" : "Nézet",
97 "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból", 97 "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból",
98 "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból", 98 "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból",
99 "menu.view.reloadFranz" : "Franz újrainditása", 99 "menu.view.reloadFranz" : "Ferdi újrainditása",
100 "menu.view.reloadService" : "Szolgáltatás újraindítása", 100 "menu.view.reloadService" : "Szolgáltatás újraindítása",
101 "menu.view.resetZoom" : "Tényleges méret", 101 "menu.view.resetZoom" : "Tényleges méret",
102 "menu.view.toggleDevTools" : "Fejlesztői eszközök ki\/bekapcsolása", 102 "menu.view.toggleDevTools" : "Fejlesztői eszközök ki\/bekapcsolása",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Gyorsítótár törlése", 197 "settings.app.buttonClearAllCache" : "Gyorsítótár törlése",
198 "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése", 198 "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése",
199 "settings.app.buttonSearchForUpdate" : "Frissítések keresése", 199 "settings.app.buttonSearchForUpdate" : "Frissítések keresése",
200 "settings.app.cacheInfo" : "A Franz gyorsítótár jelenleg {size} lemezterületet használ.", 200 "settings.app.cacheInfo" : "A Ferdi gyorsítótár jelenleg {size} lemezterületet használ.",
201 "settings.app.currentVersion" : "Aktuális verzió:", 201 "settings.app.currentVersion" : "Aktuális verzió:",
202 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", 202 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben",
203 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", 203 "settings.app.form.autoLaunchOnStart" : "Ferdi betöltése indításkor",
204 "settings.app.form.beta" : "Béta verziók keresése", 204 "settings.app.form.beta" : "Béta verziók keresése",
205 "settings.app.form.darkMode" : "Csatlakozz a Sötét Oldalhoz", 205 "settings.app.form.darkMode" : "Csatlakozz a Sötét Oldalhoz",
206 "settings.app.form.enableGPUAcceleration" : "Hardveres gyorsítás engedélyezése", 206 "settings.app.form.enableGPUAcceleration" : "Hardveres gyorsítás engedélyezése",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", 208 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Nyelv", 210 "settings.app.form.language" : "Nyelv",
211 "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", 211 "settings.app.form.minimizeToSystemTray" : "Ferdi kicsinyítése a tálcára",
212 "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", 212 "settings.app.form.runInBackground" : "Ferdi fusson a háttérben az ablak bezárásakor",
213 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése", 213 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva",
215 "settings.app.headline" : "Beállítások", 215 "settings.app.headline" : "Beállítások",
@@ -224,7 +224,7 @@
224 "settings.app.translationHelp" : "Segíts nekünk a Franz-ot lefordítani a nyelvedre.", 224 "settings.app.translationHelp" : "Segíts nekünk a Franz-ot lefordítani a nyelvedre.",
225 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...", 225 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...",
226 "settings.app.updateStatusSearching" : "Frissítéseket keres", 226 "settings.app.updateStatusSearching" : "Frissítéseket keres",
227 "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod", 227 "settings.app.updateStatusUpToDate" : "A Ferdi legfrissebb verzióját használod",
228 "settings.invite.headline" : "Barátok meghívása", 228 "settings.invite.headline" : "Barátok meghívása",
229 "settings.navigation.account" : "Fiók", 229 "settings.navigation.account" : "Fiók",
230 "settings.navigation.availableServices" : "Elérhető szolgáltatások", 230 "settings.navigation.availableServices" : "Elérhető szolgáltatások",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "{name} hozzáadása", 254 "settings.service.form.addServiceHeadline" : "{name} hozzáadása",
255 "settings.service.form.availableServices" : "Elérhető szolgáltatások", 255 "settings.service.form.availableServices" : "Elérhető szolgáltatások",
256 "settings.service.form.customUrl" : "Egyéni szerver", 256 "settings.service.form.customUrl" : "Egyéni szerver",
257 "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Franz Prémium Támogató Fiók szükséges.", 257 "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Ferdi Prémium Támogató Fiók szükséges.",
258 "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat", 258 "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat",
259 "settings.service.form.customUrlValidationError" : "Nem sikerült érvényesíteni az egyéni {name} kiszolgálót.", 259 "settings.service.form.customUrlValidationError" : "Nem sikerült érvényesíteni az egyéni {name} kiszolgálót.",
260 "settings.service.form.deleteButton" : "Szolgáltatás törlése", 260 "settings.service.form.deleteButton" : "Szolgáltatás törlése",
@@ -276,7 +276,7 @@
276 "settings.service.form.name" : "Név", 276 "settings.service.form.name" : "Név",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy beállítások", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy beállítások",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy beállítások nem szinkronizálódnak a Franz kiszolgálókkal.", 279 "settings.service.form.proxy.info" : "Proxy beállítások nem szinkronizálódnak a Ferdi kiszolgálókkal.",
280 "settings.service.form.proxy.isEnabled" : "Proxy használata", 280 "settings.service.form.proxy.isEnabled" : "Proxy használata",
281 "settings.service.form.proxy.password" : "Jelszó (opcionális)", 281 "settings.service.form.proxy.password" : "Jelszó (opcionális)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Minden hang lenémítva", 297 "settings.services.tooltip.isMuted" : "Minden hang lenémítva",
298 "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva", 298 "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva",
299 "settings.services.updatedInfo" : "A módosításokat elmentettük", 299 "settings.services.updatedInfo" : "A módosításokat elmentettük",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "A Franz for Teams lehetőséget teremt arra, hogy meghívd munkatársaidat a csapatodba email-en keresztül, és kezelhesd a Franz előfizetéseiket és fiókbeállításaikat. Ne fecséreld az idődet minden egyes csapattag regisztrációjára, felejtsd el a sok-sok egyéni számlát és különböző lejárati időt - egy mindenek felett!", 301 "settings.team.copy" : "A Ferdi for Teams lehetőséget teremt arra, hogy meghívd munkatársaidat a csapatodba email-en keresztül, és kezelhesd a Ferdi előfizetéseiket és fiókbeállításaikat. Ne fecséreld az idődet minden egyes csapattag regisztrációjára, felejtsd el a sok-sok egyéni számlát és különböző lejárati időt - egy mindenek felett!",
302 "settings.team.headline" : "Csapat", 302 "settings.team.headline" : "Csapat",
303 "settings.team.intro" : "Te és a csapatod Franz-ot használtok? Egy fiókból kezelheted kollégáid, barátaid vagy családtagjaid Prémium előfizetéseit.", 303 "settings.team.intro" : "Te és a csapatod Franz-ot használtok? Egy fiókból kezelheted kollégáid, barátaid vagy családtagjaid Prémium előfizetéseit.",
304 "settings.team.manageAction" : "Csapat kezelése a meetfranz.com-on", 304 "settings.team.manageAction" : "Csapat kezelése a meetfranz.com-on",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "Még nem hoztál létre munkaterületeket.", 324 "settings.workspaces.noWorkspacesAdded" : "Még nem hoztál létre munkaterületeket.",
325 "settings.workspaces.tryReloadWorkspaces" : "Próbáld újra", 325 "settings.workspaces.tryReloadWorkspaces" : "Próbáld újra",
326 "settings.workspaces.updatedInfo" : "A módosításokat elmentettük", 326 "settings.workspaces.updatedInfo" : "A módosításokat elmentettük",
327 "settings.workspaces.workspaceFeatureHeadline" : "A kevesebb több: Bemutatjuk a Franz Munkaterületeket", 327 "settings.workspaces.workspaceFeatureHeadline" : "A kevesebb több: Bemutatjuk a Ferdi Munkaterületeket",
328 "settings.workspaces.workspaceFeatureInfo" : "A Franz Munkaterületek lehetővé teszik, hogy összpontosíts a jelenleg fontos dolgokra. Állítsd be a különböző szolgáltatáskészleteket és könnyedén válthatsz közöttük bármikor. Te döntöd el, hogy mely szolgáltatásokra van szükséged, mikor és hol, így segíthetünk abban, hogy a teljesítményed csúcsán maradhass, vagy ha csak akarod, egyszerűen kikapcsold a munkával kapcsolatos dolgokat.", 328 "settings.workspaces.workspaceFeatureInfo" : "A Ferdi Munkaterületek lehetővé teszik, hogy összpontosíts a jelenleg fontos dolgokra. Állítsd be a különböző szolgáltatáskészleteket és könnyedén válthatsz közöttük bármikor. Te döntöd el, hogy mely szolgáltatásokra van szükséged, mikor és hol, így segíthetünk abban, hogy a teljesítményed csúcsán maradhass, vagy ha csak akarod, egyszerűen kikapcsold a munkával kapcsolatos dolgokat.",
329 "settings.workspaces.workspacesRequestFailed" : "Nem sikerült betölteni a munkaterületeket", 329 "settings.workspaces.workspacesRequestFailed" : "Nem sikerült betölteni a munkaterületeket",
330 "sidebar.addNewService" : "Szolgáltatás hozzáadása", 330 "sidebar.addNewService" : "Szolgáltatás hozzáadása",
331 "sidebar.closeWorkspaceDrawer" : "Munkaterület panel bezárása", 331 "sidebar.closeWorkspaceDrawer" : "Munkaterület panel bezárása",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Keresztnév", 338 "signup.firstname.label" : "Keresztnév",
339 "signup.headline" : "Regisztráció", 339 "signup.headline" : "Regisztráció",
340 "signup.lastname.label" : "Családnév", 340 "signup.lastname.label" : "Családnév",
341 "signup.legal.info" : "A Franz fiók létrehozásával elfogadod az", 341 "signup.legal.info" : "A Ferdi fiók létrehozásával elfogadod az",
342 "signup.legal.privacy" : "Adatvédelmi Nyilatkozatot", 342 "signup.legal.privacy" : "Adatvédelmi Nyilatkozatot",
343 "signup.legal.terms" : "Felhasználási Feltételeket", 343 "signup.legal.terms" : "Felhasználási Feltételeket",
344 "signup.link.login" : "Már van fiókod? Lépj be!", 344 "signup.link.login" : "Már van fiókod? Lépj be!",
345 "signup.password.label" : "Jelszó", 345 "signup.password.label" : "Jelszó",
346 "signup.submit.label" : "Fiók létrehozása", 346 "signup.submit.label" : "Fiók létrehozása",
347 "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra",
348 "subscription.features.ads" : "Hirdetésmentes, mindig!",
349 "subscription.features.comingSoon" : "hamarosan",
350 "subscription.features.noInterruptions" : "Nincs több app késlekedés és liszencfrissítési piszkálás",
351 "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost",
352 "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz",
353 "subscription.features.spellchecker" : "Támogatás a Helyesírás-ellenőrzőhöz",
354 "subscription.features.workspaces" : "Rendezd szolgáltatásaidat Munkaterületekbe",
355 "subscription.includedFeatures" : "Az előfizetett Ferdi Prémium Támogató Fiók tartalmazza",
356 "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni",
357 "subscription.submit.label" : "Szeretném támogatni a Ferdi fejlesztését",
358 "subscription.type.free" : "ingyenes",
359 "subscription.type.month" : "hónap",
360 "subscription.type.year" : "év",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Készítsd el az első munkaterületedet", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Készítsd el az első munkaterületedet",
377 "workspaceDrawer.proFeatureBadge" : "Prémium funkció", 391 "workspaceDrawer.proFeatureBadge" : "Prémium funkció",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Prémium fiók reaktiválása", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Prémium fiók reaktiválása",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>A Franz Munkaterületek lehetővé teszik, hogy összpontosíts a jelenleg fontos dolgokra. Állítsd be a különböző szolgáltatáskészleteket és könnyedén válthatsz közöttük bármikor.<\/p><p>Te döntöd el, hogy mely szolgáltatásokra van szükséged, mikor és hol, így segíthetünk abban, hogy a teljesítményed csúcsán maradhass, vagy ha csak akarod, egyszerűen kikapcsold a munkával kapcsolatos dolgokat.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>A Ferdi Munkaterületek lehetővé teszik, hogy összpontosíts a jelenleg fontos dolgokra. Állítsd be a különböző szolgáltatáskészleteket és könnyedén válthatsz közöttük bármikor.<\/p><p>Te döntöd el, hogy mely szolgáltatásokra van szükséged, mikor és hol, így segíthetünk abban, hogy a teljesítményed csúcsán maradhass, vagy ha csak akarod, egyszerűen kikapcsold a munkával kapcsolatos dolgokat.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Munkaterület beállítások szerkesztése", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Munkaterület beállítások szerkesztése",
381 "workspaces.switchingIndicator.switchingTo" : "Váltás" 395 "workspaces.switchingIndicator.switchingTo" : "Váltás"
382} 396}
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index edf397a35..c27e96acb 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Kirim sebagai email", 13 "feature.shareFranz.action.email" : "Kirim sebagai email",
14 "feature.shareFranz.action.facebook" : "Bagikan di Facebook", 14 "feature.shareFranz.action.facebook" : "Bagikan di Facebook",
15 "feature.shareFranz.action.twitter" : "Bagikan di Twitter", 15 "feature.shareFranz.action.twitter" : "Bagikan di Twitter",
16 "feature.shareFranz.headline" : "Franz lebih baik bersama!", 16 "feature.shareFranz.headline" : "Ferdi lebih baik bersama!",
17 "feature.shareFranz.shareText.email" : "Saya telah menambahkan layanan {count} ke Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan co di www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "Saya telah menambahkan layanan {count} ke Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan co di www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "Saya telah menambahkan {count} layanan di Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan lainnya di www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "Saya telah menambahkan {count} layanan di Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan lainnya di www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Beri tahu teman dan kolega Anda betapa hebatnya Franz dan bantu kami menyebarkan berita.", 19 "feature.shareFranz.text" : "Beri tahu teman dan kolega Anda betapa hebatnya Franz dan bantu kami menyebarkan berita.",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Perbarui profil", 173 "settings.account.buttonSave" : "Perbarui profil",
174 "settings.account.deleteAccount" : "Hapus akun", 174 "settings.account.deleteAccount" : "Hapus akun",
175 "settings.account.deleteEmailSent" : "Anda menerima email dengan tautan untuk mengonfirmasi penghapusan akun. Akun dan data Anda tidak bisa dipulihkan!", 175 "settings.account.deleteEmailSent" : "Anda menerima email dengan tautan untuk mengonfirmasi penghapusan akun. Akun dan data Anda tidak bisa dipulihkan!",
176 "settings.account.deleteInfo" : "Jika Anda tidak membutuhkan akun Franz lagi, Anda bisa menghapus akun dan semua data terkait di sini.", 176 "settings.account.deleteInfo" : "Jika Anda tidak membutuhkan akun Ferdi lagi, Anda bisa menghapus akun dan semua data terkait di sini.",
177 "settings.account.headline" : "Akun", 177 "settings.account.headline" : "Akun",
178 "settings.account.headlineAccount" : "Informasi akun", 178 "settings.account.headlineAccount" : "Informasi akun",
179 "settings.account.headlineDangerZone" : "Wilayah Berbahaya", 179 "settings.account.headlineDangerZone" : "Wilayah Berbahaya",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Bersihkan singgahan", 197 "settings.app.buttonClearAllCache" : "Bersihkan singgahan",
198 "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", 198 "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru",
199 "settings.app.buttonSearchForUpdate" : "Periksa pembaruan", 199 "settings.app.buttonSearchForUpdate" : "Periksa pembaruan",
200 "settings.app.cacheInfo" : "Singgahan Franz sedang menggunakan ruang disk {size}.", 200 "settings.app.cacheInfo" : "Singgahan Ferdi sedang menggunakan ruang disk {size}.",
201 "settings.app.currentVersion" : "Versi saat ini:", 201 "settings.app.currentVersion" : "Versi saat ini:",
202 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", 202 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang",
203 "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", 203 "settings.app.form.autoLaunchOnStart" : "Jalankan Ferdi saat komputer dimulai",
204 "settings.app.form.beta" : "Sertakan versi beta", 204 "settings.app.form.beta" : "Sertakan versi beta",
205 "settings.app.form.darkMode" : "Sisi Kelam menunggu Anda (Mode Gelap)", 205 "settings.app.form.darkMode" : "Sisi Kelam menunggu Anda (Mode Gelap)",
206 "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU", 206 "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", 208 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Bahasa", 210 "settings.app.form.language" : "Bahasa",
211 "settings.app.form.minimizeToSystemTray" : "Perkecil Franz ke baki sistem", 211 "settings.app.form.minimizeToSystemTray" : "Perkecil Ferdi ke baki sistem",
212 "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", 212 "settings.app.form.runInBackground" : "Tetap jalankan Ferdi di latar belakang saat menutup jendela",
213 "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan", 213 "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan",
215 "settings.app.headline" : "Pengaturan", 215 "settings.app.headline" : "Pengaturan",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Penerjemahan resmi dilakukan untuk Bahasa Inggris dan Jerman. Bahasa lainnya merupakan penerjemahan oleh komunitas.", 221 "settings.app.languageDisclaimer" : "Penerjemahan resmi dilakukan untuk Bahasa Inggris dan Jerman. Bahasa lainnya merupakan penerjemahan oleh komunitas.",
222 "settings.app.restartRequired" : "Perubahan membutuhkan mulai ulang", 222 "settings.app.restartRequired" : "Perubahan membutuhkan mulai ulang",
223 "settings.app.subheadlineCache" : "Singgahan", 223 "settings.app.subheadlineCache" : "Singgahan",
224 "settings.app.translationHelp" : "Bantu kami menerjemahkan Franz ke bahasa Anda.", 224 "settings.app.translationHelp" : "Bantu kami menerjemahkan Ferdi ke bahasa Anda.",
225 "settings.app.updateStatusAvailable" : "Versi baru tersedia, mengunduh...", 225 "settings.app.updateStatusAvailable" : "Versi baru tersedia, mengunduh...",
226 "settings.app.updateStatusSearching" : "Sedang mencari versi baru", 226 "settings.app.updateStatusSearching" : "Sedang mencari versi baru",
227 "settings.app.updateStatusUpToDate" : "Anda sedang menggunakan versi terbaru Franz", 227 "settings.app.updateStatusUpToDate" : "Anda sedang menggunakan versi terbaru Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Tambahkan {name}", 254 "settings.service.form.addServiceHeadline" : "Tambahkan {name}",
255 "settings.service.form.availableServices" : "Layanan tersedia", 255 "settings.service.form.availableServices" : "Layanan tersedia",
256 "settings.service.form.customUrl" : "Server khusus", 256 "settings.service.form.customUrl" : "Server khusus",
257 "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Franz Premium Supporter Account.", 257 "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Ferdi Premium Supporter Account.",
258 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", 258 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda",
259 "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.", 259 "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.",
260 "settings.service.form.deleteButton" : "Hapus layanan", 260 "settings.service.form.deleteButton" : "Hapus layanan",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Gunakan Proksi", 280 "settings.service.form.proxy.isEnabled" : "Gunakan Proksi",
281 "settings.service.form.proxy.password" : "Sandi (opsional)", 281 "settings.service.form.proxy.password" : "Sandi (opsional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Silahkan mulai ulang Franz setelah mengubah Setelan proxy", 283 "settings.service.form.proxy.restartInfo" : "Silahkan mulai ulang Ferdi setelah mengubah Setelan proxy",
284 "settings.service.form.proxy.user" : "Pengguna (opsional)", 284 "settings.service.form.proxy.user" : "Pengguna (opsional)",
285 "settings.service.form.saveButton" : "Simpan layanan", 285 "settings.service.form.saveButton" : "Simpan layanan",
286 "settings.service.form.tabHosted" : "Hosted", 286 "settings.service.form.tabHosted" : "Hosted",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Semua suara dibisukan", 297 "settings.services.tooltip.isMuted" : "Semua suara dibisukan",
298 "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", 298 "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan",
299 "settings.services.updatedInfo" : "Perubahan telah disimpan", 299 "settings.services.updatedInfo" : "Perubahan telah disimpan",
300 "settings.team.contentHeadline" : "Franz untuk Tim", 300 "settings.team.contentHeadline" : "Ferdi untuk Tim",
301 "settings.team.copy" : "Franz untuk Tim menyediakan opsi untuk mengundang rekan kerja ke tim Anda dengan mengirimkan undangan email dan mengelola langganan mereka pada preferensi akun Anda. Jangan habiskan waktu Anda menyiapkan langganan bagi masing-masing anggota tim, lupakan berbagai faktur dan periode penagihan - satu tim untuk semua!", 301 "settings.team.copy" : "Ferdi untuk Tim menyediakan opsi untuk mengundang rekan kerja ke tim Anda dengan mengirimkan undangan email dan mengelola langganan mereka pada preferensi akun Anda. Jangan habiskan waktu Anda menyiapkan langganan bagi masing-masing anggota tim, lupakan berbagai faktur dan periode penagihan - satu tim untuk semua!",
302 "settings.team.headline" : "Tim", 302 "settings.team.headline" : "Tim",
303 "settings.team.intro" : "Anda dan tim Anda menggunakan Franz? Kini Anda bisa mengelola langganan Premium untuk semua rekan kerja, teman, atau anggota keluar sebanyak yang Anda inginkan, semuanya cukup dari satu akun.", 303 "settings.team.intro" : "Anda dan tim Anda menggunakan Franz? Kini Anda bisa mengelola langganan Premium untuk semua rekan kerja, teman, atau anggota keluar sebanyak yang Anda inginkan, semuanya cukup dari satu akun.",
304 "settings.team.manageAction" : "Kelola Tim Anda di meetfranz.com", 304 "settings.team.manageAction" : "Kelola Tim Anda di meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Coba lagi", 325 "settings.workspaces.tryReloadWorkspaces" : "Coba lagi",
326 "settings.workspaces.updatedInfo" : "Perubahan Anda telah disimpan", 326 "settings.workspaces.updatedInfo" : "Perubahan Anda telah disimpan",
327 "settings.workspaces.workspaceFeatureHeadline" : "Sedikit Namun Banyak: Memperkenalkan Ruang Kerja Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Sedikit Namun Banyak: Memperkenalkan Ruang Kerja Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "Ruang Kerja Franz dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain. Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ruang Kerja Ferdi dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain. Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.",
329 "settings.workspaces.workspacesRequestFailed" : "Tidak dapat memuat ruang kerja Anda", 329 "settings.workspaces.workspacesRequestFailed" : "Tidak dapat memuat ruang kerja Anda",
330 "sidebar.addNewService" : "Tambahkan layanan baru", 330 "sidebar.addNewService" : "Tambahkan layanan baru",
331 "sidebar.closeWorkspaceDrawer" : "Tutup laci ruang kerja", 331 "sidebar.closeWorkspaceDrawer" : "Tutup laci ruang kerja",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Buat ruang kerja pertama Anda", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Buat ruang kerja pertama Anda",
377 "workspaceDrawer.proFeatureBadge" : "Fitur premium", 377 "workspaceDrawer.proFeatureBadge" : "Fitur premium",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktifkan ulang akun premium", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktifkan ulang akun premium",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ruang Kerja Franz dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain.<\/p><p>Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ruang Kerja Ferdi dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain.<\/p><p>Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit setelan ruang kerja", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit setelan ruang kerja",
381 "workspaces.switchingIndicator.switchingTo" : "Beralih ke" 381 "workspaces.switchingIndicator.switchingTo" : "Beralih ke"
382} 382}
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index 0d38d916b..4f5cd39ad 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Svuota la cache", 197 "settings.app.buttonClearAllCache" : "Svuota la cache",
198 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", 198 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento",
199 "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti", 199 "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti",
200 "settings.app.cacheInfo" : "Franz sta utilizzando {size} di spazio su disco.", 200 "settings.app.cacheInfo" : "Ferdi sta utilizzando {size} di spazio su disco.",
201 "settings.app.currentVersion" : "Versione attuale:", 201 "settings.app.currentVersion" : "Versione attuale:",
202 "settings.app.form.autoLaunchInBackground" : "Apri in background", 202 "settings.app.form.autoLaunchInBackground" : "Apri in background",
203 "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio", 203 "settings.app.form.autoLaunchOnStart" : "Esegui Ferdi all'avvio",
204 "settings.app.form.beta" : "Includi versioni beta", 204 "settings.app.form.beta" : "Includi versioni beta",
205 "settings.app.form.darkMode" : "Unisciti al Lato Oscuro.", 205 "settings.app.form.darkMode" : "Unisciti al Lato Oscuro.",
206 "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU", 206 "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", 208 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Lingua", 210 "settings.app.form.language" : "Lingua",
211 "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica", 211 "settings.app.form.minimizeToSystemTray" : "Minimizza Ferdi nell'area di notifica",
212 "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", 212 "settings.app.form.runInBackground" : "Mantieni Ferdi in esecuzione quando chiudi la finestra",
213 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati", 213 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
215 "settings.app.headline" : "Impostazioni", 215 "settings.app.headline" : "Impostazioni",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Le traduzioni ufficiali sono in Inglese e Tedesco. Tutte le altre lingue sono tradotte dalla community.", 221 "settings.app.languageDisclaimer" : "Le traduzioni ufficiali sono in Inglese e Tedesco. Tutte le altre lingue sono tradotte dalla community.",
222 "settings.app.restartRequired" : "Le modifiche richiedono un riavvio", 222 "settings.app.restartRequired" : "Le modifiche richiedono un riavvio",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Aiutaci a tradurre Franz nella tua lingua.", 224 "settings.app.translationHelp" : "Aiutaci a tradurre Ferdi nella tua lingua.",
225 "settings.app.updateStatusAvailable" : "Aggiornamento disponibile, download in corso...", 225 "settings.app.updateStatusAvailable" : "Aggiornamento disponibile, download in corso...",
226 "settings.app.updateStatusSearching" : "Ricerca aggiornamenti", 226 "settings.app.updateStatusSearching" : "Ricerca aggiornamenti",
227 "settings.app.updateStatusUpToDate" : "Stai utilizzando l'ultima versione di Franz", 227 "settings.app.updateStatusUpToDate" : "Stai utilizzando l'ultima versione di Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Aggiungi {name}", 254 "settings.service.form.addServiceHeadline" : "Aggiungi {name}",
255 "settings.service.form.availableServices" : "Servizi disponibili", 255 "settings.service.form.availableServices" : "Servizi disponibili",
256 "settings.service.form.customUrl" : "Server personalizzato", 256 "settings.service.form.customUrl" : "Server personalizzato",
257 "settings.service.form.customUrlPremiumInfo" : "Per aggiungere servizi personalizzati, devi avere un account Franz Premium Supporter.", 257 "settings.service.form.customUrlPremiumInfo" : "Per aggiungere servizi personalizzati, devi avere un account Ferdi Premium Supporter.",
258 "settings.service.form.customUrlUpgradeAccount" : "Aggiorna il tuo account", 258 "settings.service.form.customUrlUpgradeAccount" : "Aggiorna il tuo account",
259 "settings.service.form.customUrlValidationError" : "Impossibile validare il server personalizzato {name}.", 259 "settings.service.form.customUrlValidationError" : "Impossibile validare il server personalizzato {name}.",
260 "settings.service.form.deleteButton" : "Elimina servizio", 260 "settings.service.form.deleteButton" : "Elimina servizio",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Usa un Proxy", 280 "settings.service.form.proxy.isEnabled" : "Usa un Proxy",
281 "settings.service.form.proxy.password" : "Password (opzionale)", 281 "settings.service.form.proxy.password" : "Password (opzionale)",
282 "settings.service.form.proxy.port" : "Porta", 282 "settings.service.form.proxy.port" : "Porta",
283 "settings.service.form.proxy.restartInfo" : "Riavvia Franz dopo aver cambiato le impostazioni del proxy.", 283 "settings.service.form.proxy.restartInfo" : "Riavvia Ferdi dopo aver cambiato le impostazioni del proxy.",
284 "settings.service.form.proxy.user" : "Utente (opzionale)", 284 "settings.service.form.proxy.user" : "Utente (opzionale)",
285 "settings.service.form.saveButton" : "Salva servizio", 285 "settings.service.form.saveButton" : "Salva servizio",
286 "settings.service.form.tabHosted" : "Hosted", 286 "settings.service.form.tabHosted" : "Hosted",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", 297 "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati",
298 "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate", 298 "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate",
299 "settings.services.updatedInfo" : "Le tue modifiche sono state salvate", 299 "settings.services.updatedInfo" : "Le tue modifiche sono state salvate",
300 "settings.team.contentHeadline" : "Franz per i Teams", 300 "settings.team.contentHeadline" : "Ferdi per i Teams",
301 "settings.team.copy" : "Franz per i Teams ti da la possibilità di invitare collaboratori al tuo team, invitandoli per email e gestendo la loro iscrizione all'interno delle preferenze del tuo account. Non perdere tempo impostando le iscrizioni di un singolo collaboratore individualmente, dimenticati di fatture multiple e cicli differenti di fatturazione - un team per comandarli tutti!", 301 "settings.team.copy" : "Ferdi per i Teams ti da la possibilità di invitare collaboratori al tuo team, invitandoli per email e gestendo la loro iscrizione all'interno delle preferenze del tuo account. Non perdere tempo impostando le iscrizioni di un singolo collaboratore individualmente, dimenticati di fatture multiple e cicli differenti di fatturazione - un team per comandarli tutti!",
302 "settings.team.headline" : "Team", 302 "settings.team.headline" : "Team",
303 "settings.team.intro" : "Tu e il tuo team usate Franz? Ora puoi gestire le sottoscrizioni Premium per tutti i colleghi, amici e famigliari che vuoi, tutto da un singolo account.", 303 "settings.team.intro" : "Tu e il tuo team usate Franz? Ora puoi gestire le sottoscrizioni Premium per tutti i colleghi, amici e famigliari che vuoi, tutto da un singolo account.",
304 "settings.team.manageAction" : "Gestisci il tuo Team su meetfranz.com", 304 "settings.team.manageAction" : "Gestisci il tuo Team su meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Riprova nuovamente", 325 "settings.workspaces.tryReloadWorkspaces" : "Riprova nuovamente",
326 "settings.workspaces.updatedInfo" : "Le tue modifiche sono state salvate", 326 "settings.workspaces.updatedInfo" : "Le tue modifiche sono state salvate",
327 "settings.workspaces.workspaceFeatureHeadline" : "Meno è Meglio: I Workspaces di Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Meno è Meglio: I Workspaces di Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces ti permette di concentrarti su ciò che è importante. Configura diversi insiemi di servizi e passa facilmente da uno all’altro quando vuoi. Decidi di quali servizi hai bisogno quando e dove, così che ti possiamo aiutare a dare sempre il massimo - o semplicemente staccare dal lavoro quando ne hai bisogno.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces ti permette di concentrarti su ciò che è importante. Configura diversi insiemi di servizi e passa facilmente da uno all’altro quando vuoi. Decidi di quali servizi hai bisogno quando e dove, così che ti possiamo aiutare a dare sempre il massimo - o semplicemente staccare dal lavoro quando ne hai bisogno.",
329 "settings.workspaces.workspacesRequestFailed" : "Non è possibile caricare i tuoi workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Non è possibile caricare i tuoi workspaces",
330 "sidebar.addNewService" : "Aggiungi un nuovo servizio", 330 "sidebar.addNewService" : "Aggiungi un nuovo servizio",
331 "sidebar.closeWorkspaceDrawer" : "Chiudi il menu dei workspace", 331 "sidebar.closeWorkspaceDrawer" : "Chiudi il menu dei workspace",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Nome", 338 "signup.firstname.label" : "Nome",
339 "signup.headline" : "Iscriviti", 339 "signup.headline" : "Iscriviti",
340 "signup.lastname.label" : "Cognome", 340 "signup.lastname.label" : "Cognome",
341 "signup.legal.info" : "Creando un account di Franz accetti i ", 341 "signup.legal.info" : "Creando un account di Ferdi accetti i ",
342 "signup.legal.privacy" : "Informativa sulla Privacy", 342 "signup.legal.privacy" : "Informativa sulla Privacy",
343 "signup.legal.terms" : "Termini di Servizio", 343 "signup.legal.terms" : "Termini di Servizio",
344 "signup.link.login" : "Hai già un account, vuoi accedere?", 344 "signup.link.login" : "Hai già un account, vuoi accedere?",
345 "signup.password.label" : "Password", 345 "signup.password.label" : "Password",
346 "signup.submit.label" : "Crea un account", 346 "signup.submit.label" : "Crea un account",
347 "subscription.euTaxInfo" : "Per i residenti UE: possono essere applicate tasse locali",
348 "subscription.features.ads" : "Nessuna pubblicità, mai!",
349 "subscription.features.comingSoon" : "in arrivo",
350 "subscription.features.noInterruptions" : "L'upgrade della licenza avrà impatti sull'utilizzo dell'App",
351 "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"",
352 "subscription.features.proxy" : "Supporto proxy per i servizi",
353 "subscription.features.spellchecker" : "Supporto per il correttore ortografico",
354 "subscription.features.workspaces" : "Organizza i tuoi servizi in workspace",
355 "subscription.includedFeatures" : "L'account a pagamento Ferdi Premium Supporter include",
356 "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento",
357 "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz",
358 "subscription.type.free" : "gratis",
359 "subscription.type.month" : "mese",
360 "subscription.type.year" : "anno",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Crea il tuo primo workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Crea il tuo primo workspace",
377 "workspaceDrawer.proFeatureBadge" : "Funzionalità premium", 391 "workspaceDrawer.proFeatureBadge" : "Funzionalità premium",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Riattiva l’account premium", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Riattiva l’account premium",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces ti permette di concentrarti su ciò che è importante. Configura diversi insiemi di servizi e passa facilmente da uno all’altro quando vuoi.<\/p><p>Decidi di quali servizi hai bisogno quando e dove, così che ti possiamo aiutare a dare sempre il massimo - o semplicemente staccare dal lavoro quando ne hai bisogno.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces ti permette di concentrarti su ciò che è importante. Configura diversi insiemi di servizi e passa facilmente da uno all’altro quando vuoi.<\/p><p>Decidi di quali servizi hai bisogno quando e dove, così che ti possiamo aiutare a dare sempre il massimo - o semplicemente staccare dal lavoro quando ne hai bisogno.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Modifica le impostazioni dei workspace", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Modifica le impostazioni dei workspace",
381 "workspaces.switchingIndicator.switchingTo" : "Passa a " 395 "workspaces.switchingIndicator.switchingTo" : "Passa a "
382} 396}
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index dfd148623..490b938d0 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "{name}を追加", 254 "settings.service.form.addServiceHeadline" : "{name}を追加",
255 "settings.service.form.availableServices" : "利用可能なサービス", 255 "settings.service.form.availableServices" : "利用可能なサービス",
256 "settings.service.form.customUrl" : "独自サーバー", 256 "settings.service.form.customUrl" : "独自サーバー",
257 "settings.service.form.customUrlPremiumInfo" : "独自サービスを追加するためには、Franz Premium Supporterアカウントが必要です。", 257 "settings.service.form.customUrlPremiumInfo" : "独自サービスを追加するためには、Ferdi Premium Supporterアカウントが必要です。",
258 "settings.service.form.customUrlUpgradeAccount" : "アカウントをアップグレードする", 258 "settings.service.form.customUrlUpgradeAccount" : "アカウントをアップグレードする",
259 "settings.service.form.customUrlValidationError" : "独自サーバー{name}を検証できませんでした。", 259 "settings.service.form.customUrlValidationError" : "独自サーバー{name}を検証できませんでした。",
260 "settings.service.form.deleteButton" : "サービスの削除", 260 "settings.service.form.deleteButton" : "サービスの削除",
@@ -276,7 +276,7 @@
276 "settings.service.form.name" : "サービス名", 276 "settings.service.form.name" : "サービス名",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPSのプロキシ設定", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPSのプロキシ設定",
278 "settings.service.form.proxy.host" : "プロキシサーバー\/IP", 278 "settings.service.form.proxy.host" : "プロキシサーバー\/IP",
279 "settings.service.form.proxy.info" : "プロキシ設定はFranz アカウントで同期されません。", 279 "settings.service.form.proxy.info" : "プロキシ設定はFerdi アカウントで同期されません。",
280 "settings.service.form.proxy.isEnabled" : "プロキシ設定を有効にする", 280 "settings.service.form.proxy.isEnabled" : "プロキシ設定を有効にする",
281 "settings.service.form.proxy.password" : "パスワード(任意)", 281 "settings.service.form.proxy.password" : "パスワード(任意)",
282 "settings.service.form.proxy.port" : "ポート", 282 "settings.service.form.proxy.port" : "ポート",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "無音となっています", 297 "settings.services.tooltip.isMuted" : "無音となっています",
298 "settings.services.tooltip.notificationsDisabled" : "通知は無効です", 298 "settings.services.tooltip.notificationsDisabled" : "通知は無効です",
299 "settings.services.updatedInfo" : "変更内容が保存されました", 299 "settings.services.updatedInfo" : "変更内容が保存されました",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "チーム", 302 "settings.team.headline" : "チーム",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "もう一度試す", 325 "settings.workspaces.tryReloadWorkspaces" : "もう一度試す",
326 "settings.workspaces.updatedInfo" : "変更内容が保存されました", 326 "settings.workspaces.updatedInfo" : "変更内容が保存されました",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "サービスを追加", 330 "sidebar.addNewService" : "サービスを追加",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "アカウントを既に持っていますか? こちらからサインイン", 344 "signup.link.login" : "アカウントを既に持っていますか? こちらからサインイン",
345 "signup.password.label" : "パスワード", 345 "signup.password.label" : "パスワード",
346 "signup.submit.label" : "アカウントの作成", 346 "signup.submit.label" : "アカウントの作成",
347 "subscription.euTaxInfo" : "EU在住者 : 地域の消費税が適用される可能性があります",
348 "subscription.features.ads" : "広告は一切ありません!",
349 "subscription.features.comingSoon" : "まもなく登場",
350 "subscription.features.noInterruptions" : "待ち時間なしでFerdi をお使いいただけます",
351 "subscription.features.onpremise.mattermost" : "Mattermost のようなオンプレミス(自社運用)型のサービスを追加できるようになります",
352 "subscription.features.proxy" : "プロキシ設定が利用可能",
353 "subscription.features.spellchecker" : "スペルチェック機能をお使いいただけます",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "Ferdi Premium Supporter有料アカウントには以下が含まれます",
356 "subscription.paymentSessionError" : "支払いフォームを初期化出来ません",
357 "subscription.submit.label" : "Franzの開発を支援したい",
358 "subscription.type.free" : "無料",
359 "subscription.type.month" : "月間",
360 "subscription.type.year" : "年間",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 91b6beb51..4e2f2ae85 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "პროფილის განახლება", 173 "settings.account.buttonSave" : "პროფილის განახლება",
174 "settings.account.deleteAccount" : "Delete account", 174 "settings.account.deleteAccount" : "Delete account",
175 "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 175 "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
176 "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", 176 "settings.account.deleteInfo" : "If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
177 "settings.account.headline" : "ანგარიში", 177 "settings.account.headline" : "ანგარიში",
178 "settings.account.headlineAccount" : "ანგარიშის ინფორმაცია", 178 "settings.account.headlineAccount" : "ანგარიშის ინფორმაცია",
179 "settings.account.headlineDangerZone" : "Danger Zone", 179 "settings.account.headlineDangerZone" : "Danger Zone",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Clear cache", 197 "settings.app.buttonClearAllCache" : "Clear cache",
198 "settings.app.buttonInstallUpdate" : "გადატვირთეთ და დააყენეთ განახლება", 198 "settings.app.buttonInstallUpdate" : "გადატვირთეთ და დააყენეთ განახლება",
199 "settings.app.buttonSearchForUpdate" : "განახლებების შემოწმება", 199 "settings.app.buttonSearchForUpdate" : "განახლებების შემოწმება",
200 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 200 "settings.app.cacheInfo" : "Ferdi cache is currently using {size} of disk space.",
201 "settings.app.currentVersion" : "ამჟამინდელი ვერსია:", 201 "settings.app.currentVersion" : "ამჟამინდელი ვერსია:",
202 "settings.app.form.autoLaunchInBackground" : "გახსენით ფონზე", 202 "settings.app.form.autoLaunchInBackground" : "გახსენით ფონზე",
203 "settings.app.form.autoLaunchOnStart" : "გაეშვას Franz სისტემის ჩატვირთვისას", 203 "settings.app.form.autoLaunchOnStart" : "გაეშვას Ferdi სისტემის ჩატვირთვისას",
204 "settings.app.form.beta" : "ჩართეთ ბეტა ვერსიები", 204 "settings.app.form.beta" : "ჩართეთ ბეტა ვერსიები",
205 "settings.app.form.darkMode" : "Join the Dark Side", 205 "settings.app.form.darkMode" : "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 206 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "აჩვენეთ Franz სისტემის უჯრაში", 208 "settings.app.form.enableSystemTray" : "აჩვენეთ Franz სისტემის უჯრაში",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "ენა", 210 "settings.app.form.language" : "ენა",
211 "settings.app.form.minimizeToSystemTray" : "ჩაკეცეთ Franz სისტემის უჯრაში", 211 "settings.app.form.minimizeToSystemTray" : "ჩაკეცეთ Ferdi სისტემის უჯრაში",
212 "settings.app.form.runInBackground" : "დატოვეთ Franz გაშვებული როდესაც ფანჯარა დაიხურება", 212 "settings.app.form.runInBackground" : "დატოვეთ Ferdi გაშვებული როდესაც ფანჯარა დაიხურება",
213 "settings.app.form.showDisabledServices" : "Display disabled services tabs", 213 "settings.app.form.showDisabledServices" : "Display disabled services tabs",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled",
215 "settings.app.headline" : "პარამეტრები", 215 "settings.app.headline" : "პარამეტრები",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Changes require restart", 222 "settings.app.restartRequired" : "Changes require restart",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Help us to translate Franz into your language.", 224 "settings.app.translationHelp" : "Help us to translate Ferdi into your language.",
225 "settings.app.updateStatusAvailable" : "განახლება ხელმისაწვდომია, იწყება გადმოწერა...", 225 "settings.app.updateStatusAvailable" : "განახლება ხელმისაწვდომია, იწყება გადმოწერა...",
226 "settings.app.updateStatusSearching" : "მიმდინარეობს განახლების ძიება", 226 "settings.app.updateStatusSearching" : "მიმდინარეობს განახლების ძიება",
227 "settings.app.updateStatusUpToDate" : "თქვენ იყენებთ Franz-ის უახლეს ვერსიას", 227 "settings.app.updateStatusUpToDate" : "თქვენ იყენებთ Franz-ის უახლეს ვერსიას",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "სახელი", 276 "settings.service.form.name" : "სახელი",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "სერვისის შენახვა", 285 "settings.service.form.saveButton" : "სერვისის შენახვა",
286 "settings.service.form.tabHosted" : "დაჰოსტილი", 286 "settings.service.form.tabHosted" : "დაჰოსტილი",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "All sounds are muted", 297 "settings.services.tooltip.isMuted" : "All sounds are muted",
298 "settings.services.tooltip.notificationsDisabled" : "შეტყობინებები გათიშულია", 298 "settings.services.tooltip.notificationsDisabled" : "შეტყობინებები გათიშულია",
299 "settings.services.updatedInfo" : "ცვლილებები შენახულია", 299 "settings.services.updatedInfo" : "ცვლილებები შენახულია",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "გუნდი", 302 "settings.team.headline" : "გუნდი",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "სცადეთ ხელახლა", 325 "settings.workspaces.tryReloadWorkspaces" : "სცადეთ ხელახლა",
326 "settings.workspaces.updatedInfo" : "Your changes have been saved", 326 "settings.workspaces.updatedInfo" : "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Add new service", 330 "sidebar.addNewService" : "Add new service",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/nb-NO.json b/src/i18n/locales/nb-NO.json
index 976c54787..565df7d14 100644
--- a/src/i18n/locales/nb-NO.json
+++ b/src/i18n/locales/nb-NO.json
@@ -29,15 +29,15 @@
29 "signup.submit.label": "Opprett konto", 29 "signup.submit.label": "Opprett konto",
30 "signup.link.login": "Har du allerede en konto? Logg inn", 30 "signup.link.login": "Har du allerede en konto? Logg inn",
31 "signup.emailDuplicate": "En konto med den epost adresse eksiterer allerede", 31 "signup.emailDuplicate": "En konto med den epost adresse eksiterer allerede",
32 "signup.legal.info": "Ved å opprette en Franz konto aksepterer du", 32 "signup.legal.info": "Ved å opprette en Ferdi konto aksepterer du",
33 "signup.legal.terms": "Vilkår for bruk", 33 "signup.legal.terms": "Vilkår for bruk",
34 "signup.legal.privacy": "Personvern", 34 "signup.legal.privacy": "Personvern",
35 "pricing.headline": "Støtt Franz", 35 "pricing.headline": "Støtt Franz",
36 "pricing.support.label": "Velg din støtteplan", 36 "pricing.support.label": "Velg din støtteplan",
37 "pricing.submit.label": "Jeg vil støtte utviklingen av Franz", 37 "pricing.submit.label": "Jeg vil støtte utviklingen av Franz",
38 "pricing.link.skipPayment": "Jeg vil ikke støtte utviklingen av Franz.", 38 "pricing.link.skipPayment": "Jeg vil ikke støtte utviklingen av Franz.",
39 "import.headline": "Importer dine Franz 4 tjenester", 39 "import.headline": "Importer dine Ferdi 4 tjenester",
40 "import.notSupportedHeadline": "Tjenester ikke enda støttet i Franz 5", 40 "import.notSupportedHeadline": "Tjenester ikke enda støttet i Ferdi 5",
41 "import.submit.label": "Importer tjenester", 41 "import.submit.label": "Importer tjenester",
42 "import.skip.label": "Jeg vil legge til en tjeneste manuelt", 42 "import.skip.label": "Jeg vil legge til en tjeneste manuelt",
43 "invite.submit.label": "Send invitasjoner", 43 "invite.submit.label": "Send invitasjoner",
@@ -47,7 +47,7 @@
47 "invite.skip.label": "Jeg vil gjøre dette senere", 47 "invite.skip.label": "Jeg vil gjøre dette senere",
48 "subscription.submit.label": "Jeg vil ikke støtte utviklingen av Franz", 48 "subscription.submit.label": "Jeg vil ikke støtte utviklingen av Franz",
49 "subscription.paymentSessionError": "Kunne ikke laste betalingsskjemaet", 49 "subscription.paymentSessionError": "Kunne ikke laste betalingsskjemaet",
50 "subscription.includedFeatures": "Betalte Franz Premium konto inkluderer", 50 "subscription.includedFeatures": "Betalte Ferdi Premium konto inkluderer",
51 "subscription.features.onpremise": "Legg til on-premise/hosted tjenester som HipChat", 51 "subscription.features.onpremise": "Legg til on-premise/hosted tjenester som HipChat",
52 "subscription.features.customServices": "Private tjenester for deg og ditt lag", 52 "subscription.features.customServices": "Private tjenester for deg og ditt lag",
53 "subscription.features.encryptedSync": "Kryptert øktsynkronisering", 53 "subscription.features.encryptedSync": "Kryptert øktsynkronisering",
@@ -55,7 +55,7 @@
55 "subscription.features.ads": "Ingen annonser, noensinne!", 55 "subscription.features.ads": "Ingen annonser, noensinne!",
56 "subscription.features.comingSoon": "Kommer snart", 56 "subscription.features.comingSoon": "Kommer snart",
57 "infobar.servicesUpdated": "Dine tjenester er oppdatert.", 57 "infobar.servicesUpdated": "Dine tjenester er oppdatert.",
58 "infobar.updateAvailable": "En ny oppdatering for Franz er tilgjengelig.", 58 "infobar.updateAvailable": "En ny oppdatering for Ferdi er tilgjengelig.",
59 "infobar.buttonReloadServices": "Oppdater tjenester", 59 "infobar.buttonReloadServices": "Oppdater tjenester",
60 "infobar.buttonInstallUpdate": "Restart & installer oppdatering", 60 "infobar.buttonInstallUpdate": "Restart & installer oppdatering",
61 "infobar.requiredRequestsFailed": "Kunne ikke laste tjenester og brukerinformasjon", 61 "infobar.requiredRequestsFailed": "Kunne ikke laste tjenester og brukerinformasjon",
@@ -79,7 +79,7 @@
79 "settings.account.headlinePassword": "Endre passord", 79 "settings.account.headlinePassword": "Endre passord",
80 "settings.account.successInfo": "Dine endringer er lagret", 80 "settings.account.successInfo": "Dine endringer er lagret",
81 "settings.account.buttonSave": "Oppdater profil", 81 "settings.account.buttonSave": "Oppdater profil",
82 "settings.account.mining.thankyou": "Takk for at du støtter Franz med din prosessorkraft.", 82 "settings.account.mining.thankyou": "Takk for at du støtter Ferdi med din prosessorkraft.",
83 "settings.account.mining.active": "Du utfører nå {hashes} beregninger per sekund.", 83 "settings.account.mining.active": "Du utfører nå {hashes} beregninger per sekund.",
84 "settings.account.mining.moreInformation": "Få mer informasjon", 84 "settings.account.mining.moreInformation": "Få mer informasjon",
85 "settings.account.mining.cancel": "Avbryt mining", 85 "settings.account.mining.cancel": "Avbryt mining",
@@ -103,7 +103,7 @@
103 "settings.service.form.tabHosted": "Hosted", 103 "settings.service.form.tabHosted": "Hosted",
104 "settings.service.form.tabOnPremise": "Selv hosted ⭐️", 104 "settings.service.form.tabOnPremise": "Selv hosted ⭐️",
105 "settings.service.form.customUrlValidationError": "Kunne ikke validere egendefinert {name} server.", 105 "settings.service.form.customUrlValidationError": "Kunne ikke validere egendefinert {name} server.",
106 "settings.service.form.customUrlPremiumInfo": "For å legge til selvhost-baserte tjenester trenger du en Franz Premium konto.", 106 "settings.service.form.customUrlPremiumInfo": "For å legge til selvhost-baserte tjenester trenger du en Ferdi Premium konto.",
107 "settings.service.form.customUrlUpgradeAccount": "Oppgrader din konto", 107 "settings.service.form.customUrlUpgradeAccount": "Oppgrader din konto",
108 "settings.service.form.indirectMessageInfo": "Du vil bli varslet om alle nye meldinger i en kanal, ikke bare @brukernavn, @kanal, @here, ...", 108 "settings.service.form.indirectMessageInfo": "Du vil bli varslet om alle nye meldinger i en kanal, ikke bare @brukernavn, @kanal, @here, ...",
109 "settings.service.error.headline": "Error", 109 "settings.service.error.headline": "Error",
@@ -125,11 +125,11 @@
125 "settings.app.updateStatusSearching": "Søker etter en oppdatering", 125 "settings.app.updateStatusSearching": "Søker etter en oppdatering",
126 "settings.app.updateStatusAvailable": "Oppdatering tilgjengelig, laster ned...", 126 "settings.app.updateStatusAvailable": "Oppdatering tilgjengelig, laster ned...",
127 "settings.app.updateStatusUpToDate": "Du bruker siste versjon av Franz", 127 "settings.app.updateStatusUpToDate": "Du bruker siste versjon av Franz",
128 "settings.app.form.autoLaunchOnStart": "Start Franz ved oppstart", 128 "settings.app.form.autoLaunchOnStart": "Start Ferdi ved oppstart",
129 "settings.app.form.autoLaunchInBackground": "Åpne i bakgrunnen", 129 "settings.app.form.autoLaunchInBackground": "Åpne i bakgrunnen",
130 "settings.app.form.enableSystemTray": "Vis Franz i systemfeltet", 130 "settings.app.form.enableSystemTray": "Vis Ferdi i systemfeltet",
131 "settings.app.form.minimizeToSystemTray": "Minimer Franz til systemfeltet", 131 "settings.app.form.minimizeToSystemTray": "Minimer Ferdi til systemfeltet",
132 "settings.app.form.runInBackground": "Behold Franz i bakgrunnen når du lukker vinduet", 132 "settings.app.form.runInBackground": "Behold Ferdi i bakgrunnen når du lukker vinduet",
133 "settings.app.form.language": "Språk", 133 "settings.app.form.language": "Språk",
134 "settings.app.form.beta": "Inkluder beta versjoner", 134 "settings.app.form.beta": "Inkluder beta versjoner",
135 "settings.app.currentVersion": "Gjeldende versjon:", 135 "settings.app.currentVersion": "Gjeldende versjon:",
@@ -151,15 +151,15 @@
151 "subscription.type.free": "gratis", 151 "subscription.type.free": "gratis",
152 "subscription.type.month": "måned", 152 "subscription.type.month": "måned",
153 "subscription.type.year": "år", 153 "subscription.type.year": "år",
154 "subscription.type.mining": "Støtt Franz med prosessorkraft", 154 "subscription.type.mining": "Støtt Ferdi med prosessorkraft",
155 "subscription.mining.headline": "Hvordan fungerer dette?", 155 "subscription.mining.headline": "Hvordan fungerer dette?",
156 "subscription.mining.experimental": "eksperimental", 156 "subscription.mining.experimental": "eksperimental",
157 "subscription.mining.line1": "Ved å aktivere \"Støtt Franz med prosessorkraft\" vil Franz bruke cirka 20-50% av prosessore din til å mine kryptovalutaen Monero, som vil tilsvare omtrent $5/år", 157 "subscription.mining.line1": "Ved å aktivere \"Støtt Ferdi med prosessorkraft\" vil Ferdi bruke cirka 20-50% av prosessore din til å mine kryptovalutaen Monero, som vil tilsvare omtrent $5/år",
158 "subscription.mining.line2": "Vi vil tilpasse prosessor bruken basert på arbeidsadferd for å ikke tømme batteriet og senke hastigheten på maskinen din.", 158 "subscription.mining.line2": "Vi vil tilpasse prosessor bruken basert på arbeidsadferd for å ikke tømme batteriet og senke hastigheten på maskinen din.",
159 "subscription.mining.line3": "Så lenge du miner, har du ubegrenset tilgang til alle Franz Premium funksjoner.", 159 "subscription.mining.line3": "Så lenge du miner, har du ubegrenset tilgang til alle Ferdi Premium funksjoner.",
160 "subscription.mining.moreInformation": "Få mer informasjon om denne planen.", 160 "subscription.mining.moreInformation": "Få mer informasjon om denne planen.",
161 "subscriptionPopup.buttonCancel": "Kanseller", 161 "subscriptionPopup.buttonCancel": "Kanseller",
162 "subscriptionPopup.buttonDone": "Ferdig", 162 "subscriptionPopup.buttonDone": "Ferdi g",
163 "tabs.item.reload": "Reload", 163 "tabs.item.reload": "Reload",
164 "tabs.item.edit": "Rediger", 164 "tabs.item.edit": "Rediger",
165 "tabs.item.disableNotifications": "Deaktiver varsler", 165 "tabs.item.disableNotifications": "Deaktiver varsler",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index 44d56914b..1f3681e5d 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Verstuur als e-mail", 13 "feature.shareFranz.action.email" : "Verstuur als e-mail",
14 "feature.shareFranz.action.facebook" : "Deel op Facebook", 14 "feature.shareFranz.action.facebook" : "Deel op Facebook",
15 "feature.shareFranz.action.twitter" : "Deel op Twitter", 15 "feature.shareFranz.action.twitter" : "Deel op Twitter",
16 "feature.shareFranz.headline" : "Franz is beter samen!", 16 "feature.shareFranz.headline" : "Ferdi is beter samen!",
17 "feature.shareFranz.shareText.email" : "Ik heb {telling} diensten toegevoegd aan Franz! Download de gratis app voor WhatsApp, Messenger, Slack, Skype, en anderen op www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "Ik heb {telling} diensten toegevoegd aan Franz! Download de gratis app voor WhatsApp, Messenger, Slack, Skype, en anderen op www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "Ik heb {tel} diensten toegevoegd aan Franz! Download de gratis app voor WhatsApp, Messenger, Slack, Skype, en anderen op www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "Ik heb {tel} diensten toegevoegd aan Franz! Download de gratis app voor WhatsApp, Messenger, Slack, Skype, en anderen op www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Vertel je vrienden en collega's hoe geweldig Franz is en help ons het woord te verspreiden.", 19 "feature.shareFranz.text" : "Vertel je vrienden en collega's hoe geweldig Franz is en help ons het woord te verspreiden.",
@@ -96,7 +96,7 @@
96 "menu.view" : "Weergave", 96 "menu.view" : "Weergave",
97 "menu.view.enterFullScreen" : "Volledig scherm openen", 97 "menu.view.enterFullScreen" : "Volledig scherm openen",
98 "menu.view.exitFullScreen" : "Volledig scherm verlaten", 98 "menu.view.exitFullScreen" : "Volledig scherm verlaten",
99 "menu.view.reloadFranz" : "Franz Herladen", 99 "menu.view.reloadFranz" : "Ferdi Herladen",
100 "menu.view.reloadService" : "Service Herladen", 100 "menu.view.reloadService" : "Service Herladen",
101 "menu.view.resetZoom" : "Werkelijke Grootte", 101 "menu.view.resetZoom" : "Werkelijke Grootte",
102 "menu.view.toggleDevTools" : "Ontwikkelaarstools Aan\/Uit", 102 "menu.view.toggleDevTools" : "Ontwikkelaarstools Aan\/Uit",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Profiel bijwerken", 173 "settings.account.buttonSave" : "Profiel bijwerken",
174 "settings.account.deleteAccount" : "Account verwijderen", 174 "settings.account.deleteAccount" : "Account verwijderen",
175 "settings.account.deleteEmailSent" : "U heeft een email ontvangen met een bevestiginslink om uw account te verwijderen. Uw account en de bijhorende gegevens kunnen niet meer worden herstel na deze actie!", 175 "settings.account.deleteEmailSent" : "U heeft een email ontvangen met een bevestiginslink om uw account te verwijderen. Uw account en de bijhorende gegevens kunnen niet meer worden herstel na deze actie!",
176 "settings.account.deleteInfo" : "Indien u uw Franz account niet meer nodig heeft, kan u hier uw account en alle gerelateerde gegevens verwijderen.", 176 "settings.account.deleteInfo" : "Indien u uw Ferdi account niet meer nodig heeft, kan u hier uw account en alle gerelateerde gegevens verwijderen.",
177 "settings.account.headline" : "Account", 177 "settings.account.headline" : "Account",
178 "settings.account.headlineAccount" : "Account informatie", 178 "settings.account.headlineAccount" : "Account informatie",
179 "settings.account.headlineDangerZone" : "Gevarenzone", 179 "settings.account.headlineDangerZone" : "Gevarenzone",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Cache wissen", 197 "settings.app.buttonClearAllCache" : "Cache wissen",
198 "settings.app.buttonInstallUpdate" : "Herstart & installeer update", 198 "settings.app.buttonInstallUpdate" : "Herstart & installeer update",
199 "settings.app.buttonSearchForUpdate" : "Controleer op updates", 199 "settings.app.buttonSearchForUpdate" : "Controleer op updates",
200 "settings.app.cacheInfo" : "Franz cache gebruikt momenteel {size} schijfruimte.", 200 "settings.app.cacheInfo" : "Ferdi cache gebruikt momenteel {size} schijfruimte.",
201 "settings.app.currentVersion" : "Huidige versie:", 201 "settings.app.currentVersion" : "Huidige versie:",
202 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 202 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
203 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", 203 "settings.app.form.autoLaunchOnStart" : "Lanceer Ferdi bij opstarten",
204 "settings.app.form.beta" : "Inclusief beta versies", 204 "settings.app.form.beta" : "Inclusief beta versies",
205 "settings.app.form.darkMode" : "Word lid van de Dark Side", 205 "settings.app.form.darkMode" : "Word lid van de Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren", 206 "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 208 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Taal", 210 "settings.app.form.language" : "Taal",
211 "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", 211 "settings.app.form.minimizeToSystemTray" : "Minimaliseer Ferdi naar de systeembalk",
212 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", 212 "settings.app.form.runInBackground" : "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt",
213 "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", 213 "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
215 "settings.app.headline" : "Instellingen", 215 "settings.app.headline" : "Instellingen",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Officiële vertalingen zijn in het Engels en Duits. Alle andere tallen zijn op de gemeenschap gebaseerde vertalingen.", 221 "settings.app.languageDisclaimer" : "Officiële vertalingen zijn in het Engels en Duits. Alle andere tallen zijn op de gemeenschap gebaseerde vertalingen.",
222 "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", 222 "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", 224 "settings.app.translationHelp" : "Help ons om Ferdi te vertalen naar uw taal.",
225 "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...", 225 "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...",
226 "settings.app.updateStatusSearching" : "Zoekt naar updates", 226 "settings.app.updateStatusSearching" : "Zoekt naar updates",
227 "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz", 227 "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "{name} toevoegen", 254 "settings.service.form.addServiceHeadline" : "{name} toevoegen",
255 "settings.service.form.availableServices" : "Beschikbare services", 255 "settings.service.form.availableServices" : "Beschikbare services",
256 "settings.service.form.customUrl" : "Aangepaste server", 256 "settings.service.form.customUrl" : "Aangepaste server",
257 "settings.service.form.customUrlPremiumInfo" : "Om intern gehoste services toe te voegen heb je een Franz Premium Supporter Account nodig.", 257 "settings.service.form.customUrlPremiumInfo" : "Om intern gehoste services toe te voegen heb je een Ferdi Premium Supporter Account nodig.",
258 "settings.service.form.customUrlUpgradeAccount" : "Je account upgraden", 258 "settings.service.form.customUrlUpgradeAccount" : "Je account upgraden",
259 "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.", 259 "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.",
260 "settings.service.form.deleteButton" : "Service verwijderen", 260 "settings.service.form.deleteButton" : "Service verwijderen",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Naam", 276 "settings.service.form.name" : "Naam",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Instellingen", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Instellingen",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken", 280 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken",
281 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)", 281 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)",
282 "settings.service.form.proxy.port" : "Poort", 282 "settings.service.form.proxy.port" : "Poort",
283 "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw op na het aanpassen van proxy Instellingen.", 283 "settings.service.form.proxy.restartInfo" : "Start Ferdi opnieuw op na het aanpassen van proxy Instellingen.",
284 "settings.service.form.proxy.user" : "Gebruiker (optioneel)", 284 "settings.service.form.proxy.user" : "Gebruiker (optioneel)",
285 "settings.service.form.saveButton" : "Service opslaan", 285 "settings.service.form.saveButton" : "Service opslaan",
286 "settings.service.form.tabHosted" : "Gehost", 286 "settings.service.form.tabHosted" : "Gehost",
@@ -298,7 +298,7 @@
298 "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", 298 "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit",
299 "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", 299 "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen",
300 "settings.team.contentHeadline" : "Frans voor Teams", 300 "settings.team.contentHeadline" : "Frans voor Teams",
301 "settings.team.copy" : "Franz voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk teamlid apart, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team regeert alles!", 301 "settings.team.copy" : "Ferdi voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk teamlid apart, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team regeert alles!",
302 "settings.team.headline" : "Team", 302 "settings.team.headline" : "Team",
303 "settings.team.intro" : "Gebruiken jij en je team Franz? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt, allemaal vanaf één account.", 303 "settings.team.intro" : "Gebruiken jij en je team Franz? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt, allemaal vanaf één account.",
304 "settings.team.manageAction" : "Beheer je Team op meetfranz.com", 304 "settings.team.manageAction" : "Beheer je Team op meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "Je hebt nog geen werkruimtes toegevoegd.", 324 "settings.workspaces.noWorkspacesAdded" : "Je hebt nog geen werkruimtes toegevoegd.",
325 "settings.workspaces.tryReloadWorkspaces" : "Probeer opnieuw", 325 "settings.workspaces.tryReloadWorkspaces" : "Probeer opnieuw",
326 "settings.workspaces.updatedInfo" : "Je wijzigingen zijn opgeslagen", 326 "settings.workspaces.updatedInfo" : "Je wijzigingen zijn opgeslagen",
327 "settings.workspaces.workspaceFeatureHeadline" : "Minder is meer: we presenteren Franz Werkruimtes", 327 "settings.workspaces.workspaceFeatureHeadline" : "Minder is meer: we presenteren Ferdi Werkruimtes",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Kan je werkruimtes niet laden", 329 "settings.workspaces.workspacesRequestFailed" : "Kan je werkruimtes niet laden",
330 "sidebar.addNewService" : "Nieuw service toevoegen", 330 "sidebar.addNewService" : "Nieuw service toevoegen",
331 "sidebar.closeWorkspaceDrawer" : "Werkruimtelade sluiten", 331 "sidebar.closeWorkspaceDrawer" : "Werkruimtelade sluiten",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Al een account, inloggen?", 344 "signup.link.login" : "Al een account, inloggen?",
345 "signup.password.label" : "Wachtwoord", 345 "signup.password.label" : "Wachtwoord",
346 "signup.submit.label" : "Account aanmaken", 346 "signup.submit.label" : "Account aanmaken",
347 "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn",
348 "subscription.features.ads" : "Geen reclame, nooit!",
349 "subscription.features.comingSoon" : "komt binnenkort",
350 "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades",
351 "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe",
352 "subscription.features.proxy" : "Proxy ondersteuning voor services",
353 "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck",
354 "subscription.features.workspaces" : "Organiseer je diensten in werkruimtes",
355 "subscription.includedFeatures" : "Een betalend account voor Ferdi omvat",
356 "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden",
357 "subscription.submit.label" : "Ik wil de ontwikkeling van Ferdi steunen",
358 "subscription.type.free" : "gratis",
359 "subscription.type.month" : "maand",
360 "subscription.type.year" : "jaar",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Maak je eerste werkruimte aan", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Maak je eerste werkruimte aan",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Heractiveer premium account", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Heractiveer premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Pas werkruimte instellingen aan", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Pas werkruimte instellingen aan",
381 "workspaces.switchingIndicator.switchingTo" : "Overschakelen naar" 395 "workspaces.switchingIndicator.switchingTo" : "Overschakelen naar"
382} 396}
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index c0cf80400..457210523 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -200,7 +200,7 @@
200 "settings.app.cacheInfo" : "Franz gebruikt op dit moment {size} schijfruimte aan tijdelijke bestanden.", 200 "settings.app.cacheInfo" : "Franz gebruikt op dit moment {size} schijfruimte aan tijdelijke bestanden.",
201 "settings.app.currentVersion" : "Huidige versie:", 201 "settings.app.currentVersion" : "Huidige versie:",
202 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 202 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
203 "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten", 203 "settings.app.form.autoLaunchOnStart" : "Open Ferdi bij opstarten",
204 "settings.app.form.beta" : "Inclusief bètaversies", 204 "settings.app.form.beta" : "Inclusief bètaversies",
205 "settings.app.form.darkMode" : "Stap over naar de donkere kant", 205 "settings.app.form.darkMode" : "Stap over naar de donkere kant",
206 "settings.app.form.enableGPUAcceleration" : "Schakel videokaart-acceleratie in ", 206 "settings.app.form.enableGPUAcceleration" : "Schakel videokaart-acceleratie in ",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Toevoegen {name}", 254 "settings.service.form.addServiceHeadline" : "Toevoegen {name}",
255 "settings.service.form.availableServices" : "Beschikbare services", 255 "settings.service.form.availableServices" : "Beschikbare services",
256 "settings.service.form.customUrl" : "Aangepaste server", 256 "settings.service.form.customUrl" : "Aangepaste server",
257 "settings.service.form.customUrlPremiumInfo" : "Om zelf-gehoste services toe te kunnen voegen, heb je een Franz Premium Supporter Account nodig.", 257 "settings.service.form.customUrlPremiumInfo" : "Om zelf-gehoste services toe te kunnen voegen, heb je een Ferdi Premium Supporter Account nodig.",
258 "settings.service.form.customUrlUpgradeAccount" : "Upgrade je account", 258 "settings.service.form.customUrlUpgradeAccount" : "Upgrade je account",
259 "settings.service.form.customUrlValidationError" : "Kon aangepaste server {name} niet valideren.", 259 "settings.service.form.customUrlValidationError" : "Kon aangepaste server {name} niet valideren.",
260 "settings.service.form.deleteButton" : "Verwijder service", 260 "settings.service.form.deleteButton" : "Verwijder service",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Naam", 276 "settings.service.form.name" : "Naam",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy instellingen", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy instellingen",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers", 279 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers",
280 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken", 280 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken",
281 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)", 281 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)",
282 "settings.service.form.proxy.port" : "Poort", 282 "settings.service.form.proxy.port" : "Poort",
283 "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw na het aanpassen van proxy instellingen.", 283 "settings.service.form.proxy.restartInfo" : "Start Ferdi opnieuw na het aanpassen van proxy instellingen.",
284 "settings.service.form.proxy.user" : "Gebruiker (optioneel)", 284 "settings.service.form.proxy.user" : "Gebruiker (optioneel)",
285 "settings.service.form.saveButton" : "Service opslaan", 285 "settings.service.form.saveButton" : "Service opslaan",
286 "settings.service.form.tabHosted" : "Gehost", 286 "settings.service.form.tabHosted" : "Gehost",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 486a1e8d0..57d25c1f5 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Wyślij jako email", 13 "feature.shareFranz.action.email" : "Wyślij jako email",
14 "feature.shareFranz.action.facebook" : "Udostępnij na Facebooku", 14 "feature.shareFranz.action.facebook" : "Udostępnij na Facebooku",
15 "feature.shareFranz.action.twitter" : "Udostępnij na Twitterze", 15 "feature.shareFranz.action.twitter" : "Udostępnij na Twitterze",
16 "feature.shareFranz.headline" : "Franz jest lepszy, gdy tworzymy go razem!", 16 "feature.shareFranz.headline" : "Ferdi jest lepszy, gdy tworzymy go razem!",
17 "feature.shareFranz.shareText.email" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikację z WhatsApp, Messenger, Slack, Skype i innymi na www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikację z WhatsApp, Messenger, Slack, Skype i innymi na www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikację z WhatsApp, Messenger, Slack, Skype i innymi na www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikację z WhatsApp, Messenger, Slack, Skype i innymi na www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Powiedz znajomym i kolegom o tym, jak odlotowy jest Franz i pomóż nam go spopularyzować.", 19 "feature.shareFranz.text" : "Powiedz znajomym i kolegom o tym, jak odlotowy jest Franz i pomóż nam go spopularyzować.",
@@ -200,7 +200,7 @@
200 "settings.app.cacheInfo" : "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej", 200 "settings.app.cacheInfo" : "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej",
201 "settings.app.currentVersion" : "Aktualna wersja:", 201 "settings.app.currentVersion" : "Aktualna wersja:",
202 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", 202 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle",
203 "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na początku", 203 "settings.app.form.autoLaunchOnStart" : "Uruchom Ferdi na początku",
204 "settings.app.form.beta" : "Uwzględnij wersje beta", 204 "settings.app.form.beta" : "Uwzględnij wersje beta",
205 "settings.app.form.darkMode" : "Przejdź na Ciemną Stronę", 205 "settings.app.form.darkMode" : "Przejdź na Ciemną Stronę",
206 "settings.app.form.enableGPUAcceleration" : "Włącz akcelerację GPU", 206 "settings.app.form.enableGPUAcceleration" : "Włącz akcelerację GPU",
@@ -209,7 +209,7 @@
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Język", 210 "settings.app.form.language" : "Język",
211 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikację Franz", 211 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikację Franz",
212 "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", 212 "settings.app.form.runInBackground" : "Zachowaj aplikację Ferdi w tle po zamknięciu okna",
213 "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami", 213 "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone",
215 "settings.app.headline" : "Ustawienia", 215 "settings.app.headline" : "Ustawienia",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Oficjalnymi językami są Angielski i Niemiecki. Inne języki są tłumaczone przez społeczność Franz.", 221 "settings.app.languageDisclaimer" : "Oficjalnymi językami są Angielski i Niemiecki. Inne języki są tłumaczone przez społeczność Franz.",
222 "settings.app.restartRequired" : "Zmiany. wymagają ponownego uruchomienia", 222 "settings.app.restartRequired" : "Zmiany. wymagają ponownego uruchomienia",
223 "settings.app.subheadlineCache" : "Pamięć podręczna", 223 "settings.app.subheadlineCache" : "Pamięć podręczna",
224 "settings.app.translationHelp" : "Pomóż nam tłumaczyć Franz na Twój język.", 224 "settings.app.translationHelp" : "Pomóż nam tłumaczyć Ferdi na Twój język.",
225 "settings.app.updateStatusAvailable" : "Dostępna aktualizacja, pobieram...", 225 "settings.app.updateStatusAvailable" : "Dostępna aktualizacja, pobieram...",
226 "settings.app.updateStatusSearching" : "Szukam aktualizacji", 226 "settings.app.updateStatusSearching" : "Szukam aktualizacji",
227 "settings.app.updateStatusUpToDate" : "Używasz najnowszej wersji aplikacji Franz", 227 "settings.app.updateStatusUpToDate" : "Używasz najnowszej wersji aplikacji Franz",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Użyj Proxy", 280 "settings.service.form.proxy.isEnabled" : "Użyj Proxy",
281 "settings.service.form.proxy.password" : "Hasło (opcjonalnie)", 281 "settings.service.form.proxy.password" : "Hasło (opcjonalnie)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Uruchom ponownie Franz po zmianie ustawień proxy.", 283 "settings.service.form.proxy.restartInfo" : "Uruchom ponownie Ferdi po zmianie ustawień proxy.",
284 "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)", 284 "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)",
285 "settings.service.form.saveButton" : "Zapisz usługę", 285 "settings.service.form.saveButton" : "Zapisz usługę",
286 "settings.service.form.tabHosted" : "Hostowane", 286 "settings.service.form.tabHosted" : "Hostowane",
@@ -298,7 +298,7 @@
298 "settings.services.tooltip.notificationsDisabled" : "Powiadomienia są nieaktywne", 298 "settings.services.tooltip.notificationsDisabled" : "Powiadomienia są nieaktywne",
299 "settings.services.updatedInfo" : "Zmiany zostały zapisane", 299 "settings.services.updatedInfo" : "Zmiany zostały zapisane",
300 "settings.team.contentHeadline" : "Zespoły Franz", 300 "settings.team.contentHeadline" : "Zespoły Franz",
301 "settings.team.copy" : "Franz umożliwia zespołom opcję zapraszania pracowników do zespołu wysyłając im maila z zaproszeniem i pozwala zarządzać ich subskrypcją w ustawieniach konta. Nie trać czasu na ustawianie subskrypcji dla każdego zespołu osobno, zapomnij o wielu fakturach i różnych cyklicznych opłatach - jeden zespół do zarządzania wszystkim!", 301 "settings.team.copy" : "Ferdi umożliwia zespołom opcję zapraszania pracowników do zespołu wysyłając im maila z zaproszeniem i pozwala zarządzać ich subskrypcją w ustawieniach konta. Nie trać czasu na ustawianie subskrypcji dla każdego zespołu osobno, zapomnij o wielu fakturach i różnych cyklicznych opłatach - jeden zespół do zarządzania wszystkim!",
302 "settings.team.headline" : "Zespół", 302 "settings.team.headline" : "Zespół",
303 "settings.team.intro" : "Czy Ty i zesół używacie programu Franz? Możesz teraz zarządzać subskrypcją Premium dla tylu kolegów, przyjaciół lub rodziny ilu chcesz, wszystko w obrębie jednego konta.", 303 "settings.team.intro" : "Czy Ty i zesół używacie programu Franz? Możesz teraz zarządzać subskrypcją Premium dla tylu kolegów, przyjaciół lub rodziny ilu chcesz, wszystko w obrębie jednego konta.",
304 "settings.team.manageAction" : "Zarządzaj zespołem na meetfranz.com", 304 "settings.team.manageAction" : "Zarządzaj zespołem na meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Spróbuj ponownie", 325 "settings.workspaces.tryReloadWorkspaces" : "Spróbuj ponownie",
326 "settings.workspaces.updatedInfo" : "Twoje zmiany zostały zapisane", 326 "settings.workspaces.updatedInfo" : "Twoje zmiany zostały zapisane",
327 "settings.workspaces.workspaceFeatureHeadline" : "Mniej znaczy więcej: Wprowadzenie do obszarów roboczych Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Mniej znaczy więcej: Wprowadzenie do obszarów roboczych Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "Obszary robocze programu Franz pozawala Ci na skupieniu się na tym co ważne w danym momencie. Ustaw różne zestawy usług i przełączaj się między nimi w łatwiejszy sposób w dowolnym momencie. Decyduj, które usługi potrzebujesz , więc pomagamy Ci pozostawać na szczycie gry - lub łatwiej wyłączyć się z pracy kiedy tego potrzebujesz.", 328 "settings.workspaces.workspaceFeatureInfo" : "Obszary robocze programu Ferdi pozawala Ci na skupieniu się na tym co ważne w danym momencie. Ustaw różne zestawy usług i przełączaj się między nimi w łatwiejszy sposób w dowolnym momencie. Decyduj, które usługi potrzebujesz , więc pomagamy Ci pozostawać na szczycie gry - lub łatwiej wyłączyć się z pracy kiedy tego potrzebujesz.",
329 "settings.workspaces.workspacesRequestFailed" : "Nie można załadować obszaru roboczego", 329 "settings.workspaces.workspacesRequestFailed" : "Nie można załadować obszaru roboczego",
330 "sidebar.addNewService" : "Dodaj kolejną usługę", 330 "sidebar.addNewService" : "Dodaj kolejną usługę",
331 "sidebar.closeWorkspaceDrawer" : "Zamknij edycję obszaru roboczego", 331 "sidebar.closeWorkspaceDrawer" : "Zamknij edycję obszaru roboczego",
@@ -338,12 +338,26 @@
338 "signup.firstname.label" : "Imię", 338 "signup.firstname.label" : "Imię",
339 "signup.headline" : "Zarejestruj się", 339 "signup.headline" : "Zarejestruj się",
340 "signup.lastname.label" : "Nazwisko", 340 "signup.lastname.label" : "Nazwisko",
341 "signup.legal.info" : "Poprzez utworzenie konta Franz akceptujesz", 341 "signup.legal.info" : "Poprzez utworzenie konta Ferdi akceptujesz",
342 "signup.legal.privacy" : "Polityka prywatności", 342 "signup.legal.privacy" : "Polityka prywatności",
343 "signup.legal.terms" : "Warunki świadczenia usług", 343 "signup.legal.terms" : "Warunki świadczenia usług",
344 "signup.link.login" : "Masz już konto, zalogować się?", 344 "signup.link.login" : "Masz już konto, zalogować się?",
345 "signup.password.label" : "Hasło", 345 "signup.password.label" : "Hasło",
346 "signup.submit.label" : "Stwórz konto", 346 "signup.submit.label" : "Stwórz konto",
347 "subscription.euTaxInfo" : "Rezydenci UE: lokalne stawki VAT mogą zostać zaaplikowane",
348 "subscription.features.ads" : "Brak reklam, na zawsze!",
349 "subscription.features.comingSoon" : "wkrótce dostępne",
350 "subscription.features.noInterruptions" : "Bez opóźnień i przypominania o ulepszeniu licencji",
351 "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost",
352 "subscription.features.proxy" : "Obsługa proxy dla usług",
353 "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni",
354 "subscription.features.workspaces" : "Zarządzaj usługami w obszarach roboczych",
355 "subscription.includedFeatures" : "Płatne konto Ferdi Premium obejmuje",
356 "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"",
357 "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz",
358 "subscription.type.free" : "za darmo",
359 "subscription.type.month" : "miesiąc",
360 "subscription.type.year" : "rok",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Stwórz pierwszy obszar roboczy", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Stwórz pierwszy obszar roboczy",
377 "workspaceDrawer.proFeatureBadge" : "Funkcje Premium", 391 "workspaceDrawer.proFeatureBadge" : "Funkcje Premium",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktywuj ponownie konto premium", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktywuj ponownie konto premium",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Obszary robocze programu Franz pozawala Ci na skupieniu się na tym co ważne w danym momencie. Ustaw różne zestawy usług i przełączaj się między nimi w łatwiejszy sposób w dowolnym momencie. <\/p><p>Decyduj, które usługi potrzebujesz , więc pomagamy Ci pozostawać na szczycie gry - lub łatwiej wyłączyć się z pracy kiedy tego potrzebujesz.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Obszary robocze programu Ferdi pozawala Ci na skupieniu się na tym co ważne w danym momencie. Ustaw różne zestawy usług i przełączaj się między nimi w łatwiejszy sposób w dowolnym momencie. <\/p><p>Decyduj, które usługi potrzebujesz , więc pomagamy Ci pozostawać na szczycie gry - lub łatwiej wyłączyć się z pracy kiedy tego potrzebujesz.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edytuj ustawienia obszaru roboczego", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edytuj ustawienia obszaru roboczego",
381 "workspaces.switchingIndicator.switchingTo" : "Przełącz do" 395 "workspaces.switchingIndicator.switchingTo" : "Przełącz do"
382} 396}
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index f5c0b6140..f2c139193 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Enviar por e-mail", 13 "feature.shareFranz.action.email" : "Enviar por e-mail",
14 "feature.shareFranz.action.facebook" : "Compartilhar no Facebook", 14 "feature.shareFranz.action.facebook" : "Compartilhar no Facebook",
15 "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", 15 "feature.shareFranz.action.twitter" : "Compartilhar no Twitter",
16 "feature.shareFranz.headline" : "Franz é melhor em grupo!", 16 "feature.shareFranz.headline" : "Ferdi é melhor em grupo!",
17 "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "Eu adicionei uma contagem de serviços para o Franz! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "Eu adicionei uma contagem de serviços para o Franz! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quanto incrível o Franz é e nos ajude a espalhar a mensagem. ", 19 "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quanto incrível o Franz é e nos ajude a espalhar a mensagem. ",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Limpar cache", 197 "settings.app.buttonClearAllCache" : "Limpar cache",
198 "settings.app.buttonInstallUpdate" : "Reiniciar e instalar atualização", 198 "settings.app.buttonInstallUpdate" : "Reiniciar e instalar atualização",
199 "settings.app.buttonSearchForUpdate" : "Verificar por atualizações", 199 "settings.app.buttonSearchForUpdate" : "Verificar por atualizações",
200 "settings.app.cacheInfo" : "O cache do Franz está usando {size} de espaço em disco atualmente.", 200 "settings.app.cacheInfo" : "O cache do Ferdi está usando {size} de espaço em disco atualmente.",
201 "settings.app.currentVersion" : "Versão atual:", 201 "settings.app.currentVersion" : "Versão atual:",
202 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 202 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
203 "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema", 203 "settings.app.form.autoLaunchOnStart" : "Abrir o Ferdi ao iniciar o sistema",
204 "settings.app.form.beta" : "Incluir versões beta", 204 "settings.app.form.beta" : "Incluir versões beta",
205 "settings.app.form.darkMode" : "Venha para o Lado Negro da força", 205 "settings.app.form.darkMode" : "Venha para o Lado Negro da força",
206 "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU", 206 "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema", 208 "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Idioma", 210 "settings.app.form.language" : "Idioma",
211 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de sistema", 211 "settings.app.form.minimizeToSystemTray" : "Minimizar o Ferdi para a área de sistema",
212 "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", 212 "settings.app.form.runInBackground" : "Manter o Ferdi no fundo quando fechar a janela",
213 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", 213 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
215 "settings.app.headline" : "Configurações", 215 "settings.app.headline" : "Configurações",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.", 221 "settings.app.languageDisclaimer" : "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.",
222 "settings.app.restartRequired" : "As mudanças exigem reiniciar o sistema", 222 "settings.app.restartRequired" : "As mudanças exigem reiniciar o sistema",
223 "settings.app.subheadlineCache" : "memória cache", 223 "settings.app.subheadlineCache" : "memória cache",
224 "settings.app.translationHelp" : "Ajude-nos a traduzir o Franz para seu idioma.", 224 "settings.app.translationHelp" : "Ajude-nos a traduzir o Ferdi para seu idioma.",
225 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...", 225 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...",
226 "settings.app.updateStatusSearching" : "Buscando atualizações", 226 "settings.app.updateStatusSearching" : "Buscando atualizações",
227 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz", 227 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Adicionar {name}", 254 "settings.service.form.addServiceHeadline" : "Adicionar {name}",
255 "settings.service.form.availableServices" : "Serviços disponíveis", 255 "settings.service.form.availableServices" : "Serviços disponíveis",
256 "settings.service.form.customUrl" : "Servidor personalizado", 256 "settings.service.form.customUrl" : "Servidor personalizado",
257 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Franz Premium.", 257 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.",
258 "settings.service.form.customUrlUpgradeAccount" : "Atualize a sua conta", 258 "settings.service.form.customUrlUpgradeAccount" : "Atualize a sua conta",
259 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor personalizado {name}.", 259 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor personalizado {name}.",
260 "settings.service.form.deleteButton" : "Apagar serviço", 260 "settings.service.form.deleteButton" : "Apagar serviço",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Usar o Proxy", 280 "settings.service.form.proxy.isEnabled" : "Usar o Proxy",
281 "settings.service.form.proxy.password" : "Senha (opcional)", 281 "settings.service.form.proxy.password" : "Senha (opcional)",
282 "settings.service.form.proxy.port" : "Porta", 282 "settings.service.form.proxy.port" : "Porta",
283 "settings.service.form.proxy.restartInfo" : "Por favor, reinicie o Franz após alterar as configurações de proxy.", 283 "settings.service.form.proxy.restartInfo" : "Por favor, reinicie o Ferdi após alterar as configurações de proxy.",
284 "settings.service.form.proxy.user" : "Usuário (opcional)", 284 "settings.service.form.proxy.user" : "Usuário (opcional)",
285 "settings.service.form.saveButton" : "Salvar serviço", 285 "settings.service.form.saveButton" : "Salvar serviço",
286 "settings.service.form.tabHosted" : "Hospedado", 286 "settings.service.form.tabHosted" : "Hospedado",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Sem som", 297 "settings.services.tooltip.isMuted" : "Sem som",
298 "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", 298 "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas",
299 "settings.services.updatedInfo" : "Suas mudanças foram gravadas", 299 "settings.services.updatedInfo" : "Suas mudanças foram gravadas",
300 "settings.team.contentHeadline" : "Franz para Equipes", 300 "settings.team.contentHeadline" : "Ferdi para Equipes",
301 "settings.team.copy" : "\"Franz para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.", 301 "settings.team.copy" : "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.",
302 "settings.team.headline" : "Equipe", 302 "settings.team.headline" : "Equipe",
303 "settings.team.intro" : "Você e sua equipe usam Franz? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.", 303 "settings.team.intro" : "Você e sua equipe usam Franz? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.",
304 "settings.team.manageAction" : "Gerencie sua Equipe no meetfranz.com", 304 "settings.team.manageAction" : "Gerencie sua Equipe no meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Tente de novo", 325 "settings.workspaces.tryReloadWorkspaces" : "Tente de novo",
326 "settings.workspaces.updatedInfo" : "Suas mudanças foram salvas", 326 "settings.workspaces.updatedInfo" : "Suas mudanças foram salvas",
327 "settings.workspaces.workspaceFeatureHeadline" : "Menos é Mais: Introduzindo Workspaces do Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Menos é Mais: Introduzindo Workspaces do Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "As áreas de trabalho do Franz permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.", 328 "settings.workspaces.workspaceFeatureInfo" : "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.",
329 "settings.workspaces.workspacesRequestFailed" : "Não foi possível carregar suas áreas de trabalho", 329 "settings.workspaces.workspacesRequestFailed" : "Não foi possível carregar suas áreas de trabalho",
330 "sidebar.addNewService" : "Adicionar novo serviço", 330 "sidebar.addNewService" : "Adicionar novo serviço",
331 "sidebar.closeWorkspaceDrawer" : "Fechar o menu da área de trabalho", 331 "sidebar.closeWorkspaceDrawer" : "Fechar o menu da área de trabalho",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Já tem uma conta?", 344 "signup.link.login" : "Já tem uma conta?",
345 "signup.password.label" : "Senha", 345 "signup.password.label" : "Senha",
346 "signup.submit.label" : "Criar uma conta", 346 "signup.submit.label" : "Criar uma conta",
347 "subscription.euTaxInfo" : "Residentes na União Europeia: taxas locais serão aplicadas",
348 "subscription.features.ads" : "Sem anúncios, pra sempre!",
349 "subscription.features.comingSoon" : "em breve",
350 "subscription.features.noInterruptions" : "Sem demora e sem chateação para comprar uma licença. ",
351 "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost",
352 "subscription.features.proxy" : "Suporte de proxy para serviços",
353 "subscription.features.spellchecker" : "Suporte para corretor ortográfico",
354 "subscription.features.workspaces" : "Organize seus serviços em áreas de trabalho",
355 "subscription.includedFeatures" : "A conta Apoiador Ferdi Premium inclui",
356 "subscription.paymentSessionError" : "Não foi possível abrir o formulário de pagamento",
357 "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz",
358 "subscription.type.free" : "grátis",
359 "subscription.type.month" : "mês",
360 "subscription.type.year" : "ano",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Crie sua primeira área de trabalho", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Crie sua primeira área de trabalho",
377 "workspaceDrawer.proFeatureBadge" : "Vantagem paga oferecida aos assinantes", 391 "workspaceDrawer.proFeatureBadge" : "Vantagem paga oferecida aos assinantes",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reative sua conta paga", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reative sua conta paga",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>As áreas de trabalho do Franz te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. <\/p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. <\/p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Editar configurações das áreas de trabalho", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Editar configurações das áreas de trabalho",
381 "workspaces.switchingIndicator.switchingTo" : "Mudando para" 395 "workspaces.switchingIndicator.switchingTo" : "Mudando para"
382} 396}
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 36fcd6536..bad62fdf3 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Enviar por e-mail", 13 "feature.shareFranz.action.email" : "Enviar por e-mail",
14 "feature.shareFranz.action.facebook" : "Compartilahr no Facebook", 14 "feature.shareFranz.action.facebook" : "Compartilahr no Facebook",
15 "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", 15 "feature.shareFranz.action.twitter" : "Compartilhar no Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -29,7 +29,7 @@
29 "global.spellchecking.language" : "Linguagem para correção ortográfica", 29 "global.spellchecking.language" : "Linguagem para correção ortográfica",
30 "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", 30 "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional",
31 "import.headline" : "Importa os teus serviços do Franz", 31 "import.headline" : "Importa os teus serviços do Franz",
32 "import.notSupportedHeadline" : "Estes serviços ainda não são suportados pelo Franz 5", 32 "import.notSupportedHeadline" : "Estes serviços ainda não são suportados pelo Ferdi 5",
33 "import.skip.label" : "Eu quero adicionar serviços manualmente", 33 "import.skip.label" : "Eu quero adicionar serviços manualmente",
34 "import.submit.label" : "Importar serviços", 34 "import.submit.label" : "Importar serviços",
35 "infobar.buttonChangelog" : "O que há de novo?", 35 "infobar.buttonChangelog" : "O que há de novo?",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Limpar cache", 197 "settings.app.buttonClearAllCache" : "Limpar cache",
198 "settings.app.buttonInstallUpdate" : "Reiniciar & instalar atualização", 198 "settings.app.buttonInstallUpdate" : "Reiniciar & instalar atualização",
199 "settings.app.buttonSearchForUpdate" : "Procurar atualizações", 199 "settings.app.buttonSearchForUpdate" : "Procurar atualizações",
200 "settings.app.cacheInfo" : "A cache do Franz está a usar {size} de espaço em disco.", 200 "settings.app.cacheInfo" : "A cache do Ferdi está a usar {size} de espaço em disco.",
201 "settings.app.currentVersion" : "Versão atual", 201 "settings.app.currentVersion" : "Versão atual",
202 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 202 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
203 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz após iniciar o computador", 203 "settings.app.form.autoLaunchOnStart" : "Iniciar o Ferdi após iniciar o computador",
204 "settings.app.form.beta" : "Incluir versões instáveis (beta)", 204 "settings.app.form.beta" : "Incluir versões instáveis (beta)",
205 "settings.app.form.darkMode" : "Junta-te ao Lado Negro", 205 "settings.app.form.darkMode" : "Junta-te ao Lado Negro",
206 "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU", 206 "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", 208 "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Idioma", 210 "settings.app.form.language" : "Idioma",
211 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema", 211 "settings.app.form.minimizeToSystemTray" : "Minimizar o Ferdi para a barra do sistema",
212 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", 212 "settings.app.form.runInBackground" : "Manter o Ferdi em segundo plano ao fechar a janela",
213 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados", 213 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
215 "settings.app.headline" : "Definições", 215 "settings.app.headline" : "Definições",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Alterações requerem reinício", 222 "settings.app.restartRequired" : "Alterações requerem reinício",
223 "settings.app.subheadlineCache" : "Cache", 223 "settings.app.subheadlineCache" : "Cache",
224 "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua língua.", 224 "settings.app.translationHelp" : "Ajude-nos a traduzir a Ferdi para a sua língua.",
225 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...", 225 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...",
226 "settings.app.updateStatusSearching" : "A procurar atualizações", 226 "settings.app.updateStatusSearching" : "A procurar atualizações",
227 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz", 227 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", 297 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados",
298 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", 298 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas",
299 "settings.services.updatedInfo" : "As alterações foram guardadas", 299 "settings.services.updatedInfo" : "As alterações foram guardadas",
300 "settings.team.contentHeadline" : "Franz para equipas", 300 "settings.team.contentHeadline" : "Ferdi para equipas",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Equipa", 302 "settings.team.headline" : "Equipa",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Gerir a tua Equipa em meetfranz.com", 304 "settings.team.manageAction" : "Gerir a tua Equipa em meetfranz.com",
@@ -325,7 +325,7 @@
325 "settings.workspaces.tryReloadWorkspaces" : "Tentar novamente", 325 "settings.workspaces.tryReloadWorkspaces" : "Tentar novamente",
326 "settings.workspaces.updatedInfo" : "As suas alterações foram gravadas", 326 "settings.workspaces.updatedInfo" : "As suas alterações foram gravadas",
327 "settings.workspaces.workspaceFeatureHeadline" : "Menos é Mais: Introduzindo os Espaço de trabalho Franz", 327 "settings.workspaces.workspaceFeatureHeadline" : "Menos é Mais: Introduzindo os Espaço de trabalho Franz",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Adicionar um novo serviço", 330 "sidebar.addNewService" : "Adicionar um novo serviço",
331 "sidebar.closeWorkspaceDrawer" : "Fechar a janela do Espaço de trabalho", 331 "sidebar.closeWorkspaceDrawer" : "Fechar a janela do Espaço de trabalho",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 7f7b90a03..03b339dd5 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Отправить email", 13 "feature.shareFranz.action.email" : "Отправить email",
14 "feature.shareFranz.action.facebook" : "Поделиться на Facebook", 14 "feature.shareFranz.action.facebook" : "Поделиться на Facebook",
15 "feature.shareFranz.action.twitter" : "Поделиться в Twitter", 15 "feature.shareFranz.action.twitter" : "Поделиться в Twitter",
16 "feature.shareFranz.headline" : "Сделаем Franz лучше вместе!", 16 "feature.shareFranz.headline" : "Сделаем Ferdi лучше вместе!",
17 "feature.shareFranz.shareText.email" : "Я добавил {count} сервисов во Franz! Теперь доступны такие мессенджеры как WhatsApp, Messenger, Slack, Skype и другие. Полый список вы найдете на www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "Я добавил {count} сервисов во Franz! Теперь доступны такие мессенджеры как WhatsApp, Messenger, Slack, Skype и другие. Полый список вы найдете на www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "Я добавил {count} сервис(ов) в Franz! Скачай бесплатную аппку для WhatsApp, Messenger, Slack, Skype и иже на www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "Я добавил {count} сервис(ов) в Franz! Скачай бесплатную аппку для WhatsApp, Messenger, Slack, Skype и иже на www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Расскажи своим друзьям и коллегам насколько прелестен Franz и помоги нам развиться", 19 "feature.shareFranz.text" : "Расскажи своим друзьям и коллегам насколько прелестен Franz и помоги нам развиться",
@@ -200,7 +200,7 @@
200 "settings.app.cacheInfo" : "Кэш занимает {size} на диске.", 200 "settings.app.cacheInfo" : "Кэш занимает {size} на диске.",
201 "settings.app.currentVersion" : "Текущая версия:", 201 "settings.app.currentVersion" : "Текущая версия:",
202 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", 202 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне",
203 "settings.app.form.autoLaunchOnStart" : "Запускать Franz при старте", 203 "settings.app.form.autoLaunchOnStart" : "Запускать Ferdi при старте",
204 "settings.app.form.beta" : "Включая бета версии", 204 "settings.app.form.beta" : "Включая бета версии",
205 "settings.app.form.darkMode" : "Перейти на Тёмную сторону", 205 "settings.app.form.darkMode" : "Перейти на Тёмную сторону",
206 "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU", 206 "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Показывать Franz в системном трее", 208 "settings.app.form.enableSystemTray" : "Показывать Franz в системном трее",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Язык", 210 "settings.app.form.language" : "Язык",
211 "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в системный трей", 211 "settings.app.form.minimizeToSystemTray" : "Сворачивать Ferdi в системный трей",
212 "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна", 212 "settings.app.form.runInBackground" : "Оставлять Ferdi в фоне при закрытии окна",
213 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб", 213 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях",
215 "settings.app.headline" : "Настройки", 215 "settings.app.headline" : "Настройки",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Официальная поддержка только для английского и немецкого языков. Остальные языки переведены сообществом.", 221 "settings.app.languageDisclaimer" : "Официальная поддержка только для английского и немецкого языков. Остальные языки переведены сообществом.",
222 "settings.app.restartRequired" : "Изменения требуют перезагрузки приложения", 222 "settings.app.restartRequired" : "Изменения требуют перезагрузки приложения",
223 "settings.app.subheadlineCache" : "Кэш", 223 "settings.app.subheadlineCache" : "Кэш",
224 "settings.app.translationHelp" : "Помогите нам перевести Franz на ваш язык.", 224 "settings.app.translationHelp" : "Помогите нам перевести Ferdi на ваш язык.",
225 "settings.app.updateStatusAvailable" : "Доступно обновление, идёт загрузка...", 225 "settings.app.updateStatusAvailable" : "Доступно обновление, идёт загрузка...",
226 "settings.app.updateStatusSearching" : "Поиск обновлений", 226 "settings.app.updateStatusSearching" : "Поиск обновлений",
227 "settings.app.updateStatusUpToDate" : "Вы используете актуальную версию Franz", 227 "settings.app.updateStatusUpToDate" : "Вы используете актуальную версию Franz",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Использовать прокси", 280 "settings.service.form.proxy.isEnabled" : "Использовать прокси",
281 "settings.service.form.proxy.password" : "Пароль (опционально)", 281 "settings.service.form.proxy.password" : "Пароль (опционально)",
282 "settings.service.form.proxy.port" : "Порт", 282 "settings.service.form.proxy.port" : "Порт",
283 "settings.service.form.proxy.restartInfo" : "Пожалуйста перезапустите Franz после изменения настроек прокси.", 283 "settings.service.form.proxy.restartInfo" : "Пожалуйста перезапустите Ferdi после изменения настроек прокси.",
284 "settings.service.form.proxy.user" : "Пользователь (опционально)", 284 "settings.service.form.proxy.user" : "Пользователь (опционально)",
285 "settings.service.form.saveButton" : "Сохранить сервис", 285 "settings.service.form.saveButton" : "Сохранить сервис",
286 "settings.service.form.tabHosted" : "Размещено", 286 "settings.service.form.tabHosted" : "Размещено",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Все звуки отключены", 297 "settings.services.tooltip.isMuted" : "Все звуки отключены",
298 "settings.services.tooltip.notificationsDisabled" : "Уведомления отключены", 298 "settings.services.tooltip.notificationsDisabled" : "Уведомления отключены",
299 "settings.services.updatedInfo" : "Изменения сохранены", 299 "settings.services.updatedInfo" : "Изменения сохранены",
300 "settings.team.contentHeadline" : "Franz для Команд", 300 "settings.team.contentHeadline" : "Ferdi для Команд",
301 "settings.team.copy" : "Franz для Команд позволяет пригласить коллег в вашу команду, отправив им емайл с приглашением, а также управлять их подписками в настройках вашего аккаунта. Не тратьте время на настройку подписок для каждого члена команды индивидуально, забудьте о многочисленных платежках и разных циклах оплаты - одна команда для управления всеми!", 301 "settings.team.copy" : "Ferdi для Команд позволяет пригласить коллег в вашу команду, отправив им емайл с приглашением, а также управлять их подписками в настройках вашего аккаунта. Не тратьте время на настройку подписок для каждого члена команды индивидуально, забудьте о многочисленных платежках и разных циклах оплаты - одна команда для управления всеми!",
302 "settings.team.headline" : "Команда", 302 "settings.team.headline" : "Команда",
303 "settings.team.intro" : "Вы и ваша команда испльзуете Franz? Вы теперь можете управлять Премиум подписками любого количества коллег, друзей и членов семьи, из одного и того же аккаунта.", 303 "settings.team.intro" : "Вы и ваша команда испльзуете Franz? Вы теперь можете управлять Премиум подписками любого количества коллег, друзей и членов семьи, из одного и того же аккаунта.",
304 "settings.team.manageAction" : "Управляйте вашей Командой на meetfranz.com", 304 "settings.team.manageAction" : "Управляйте вашей Командой на meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Попробовать снова", 325 "settings.workspaces.tryReloadWorkspaces" : "Попробовать снова",
326 "settings.workspaces.updatedInfo" : "Your changes have been saved", 326 "settings.workspaces.updatedInfo" : "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Добавить новый сервис", 330 "sidebar.addNewService" : "Добавить новый сервис",
331 "sidebar.closeWorkspaceDrawer" : "Закрыть меню окружений", 331 "sidebar.closeWorkspaceDrawer" : "Закрыть меню окружений",
@@ -344,6 +344,20 @@
344 "signup.link.login" : "Уже есть аккаунт, войти?", 344 "signup.link.login" : "Уже есть аккаунт, войти?",
345 "signup.password.label" : "Пароль", 345 "signup.password.label" : "Пароль",
346 "signup.submit.label" : "Создать аккаунт", 346 "signup.submit.label" : "Создать аккаунт",
347 "subscription.euTaxInfo" : "Резидентам ЕвроСоюза: могут применяться местные налоги",
348 "subscription.features.ads" : "Без рекламы, навсегда!",
349 "subscription.features.comingSoon" : "скоро",
350 "subscription.features.noInterruptions" : "Никаких задержек и предложений перейти на платную версию",
351 "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хостинге сервисы, такие как Mattermost",
352 "subscription.features.proxy" : "Подержка прокси для сервисов",
353 "subscription.features.spellchecker" : "Поддержка проверки правописания",
354 "subscription.features.workspaces" : "Organize your services in workspaces",
355 "subscription.includedFeatures" : "Платный премиум аккаунт Ferdi включает",
356 "subscription.paymentSessionError" : "Невозможно загрузить форму оплаты",
357 "subscription.submit.label" : "Я хочу поддержать разработку Franz",
358 "subscription.type.free" : "бесплатно",
359 "subscription.type.month" : "месяц",
360 "subscription.type.year" : "год",
347 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", 361 "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial",
348 "subscription.cta.allOptions" : "See all options", 362 "subscription.cta.allOptions" : "See all options",
349 "subscription.cta.choosePlan" : "Choose your plan", 363 "subscription.cta.choosePlan" : "Choose your plan",
@@ -376,7 +390,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 390 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 391 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Восстановить премиум аккаунт", 392 "workspaceDrawer.reactivatePremiumAccountLabel" : "Восстановить премиум аккаунт",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 393 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 394 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 395 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 396}
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index 78eef9bca..cb1170d00 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Aktualizovať profil", 173 "settings.account.buttonSave" : "Aktualizovať profil",
174 "settings.account.deleteAccount" : "Odstrániť účet", 174 "settings.account.deleteAccount" : "Odstrániť účet",
175 "settings.account.deleteEmailSent" : "Bol vám odoslaný e-mail s odkazom pre potvrdenie odstránenia vášho účtu. Váš účet a údaje sa nebudú dať obnoviť!", 175 "settings.account.deleteEmailSent" : "Bol vám odoslaný e-mail s odkazom pre potvrdenie odstránenia vášho účtu. Váš účet a údaje sa nebudú dať obnoviť!",
176 "settings.account.deleteInfo" : "Ak už nepotrebujete váš Franz účet, tu ho môžete zmazať spolu so všetkými prislúchajúcimi údajmi.", 176 "settings.account.deleteInfo" : "Ak už nepotrebujete váš Ferdi účet, tu ho môžete zmazať spolu so všetkými prislúchajúcimi údajmi.",
177 "settings.account.headline" : "Účet", 177 "settings.account.headline" : "Účet",
178 "settings.account.headlineAccount" : "Informácie o účte", 178 "settings.account.headlineAccount" : "Informácie o účte",
179 "settings.account.headlineDangerZone" : "Nebezpečná zóna", 179 "settings.account.headlineDangerZone" : "Nebezpečná zóna",
@@ -197,10 +197,10 @@
197 "settings.app.buttonClearAllCache" : "Vyčistiť vyrovnávaciu pamäť", 197 "settings.app.buttonClearAllCache" : "Vyčistiť vyrovnávaciu pamäť",
198 "settings.app.buttonInstallUpdate" : "Reštartovať a nainštalovať aktualizáciu", 198 "settings.app.buttonInstallUpdate" : "Reštartovať a nainštalovať aktualizáciu",
199 "settings.app.buttonSearchForUpdate" : "Skontrolovať aktualizácie", 199 "settings.app.buttonSearchForUpdate" : "Skontrolovať aktualizácie",
200 "settings.app.cacheInfo" : "Vyrovnávacia pamäť Franz momentálne používa {size} miesta na disku.", 200 "settings.app.cacheInfo" : "Vyrovnávacia pamäť Ferdi momentálne používa {size} miesta na disku.",
201 "settings.app.currentVersion" : "Súčasná verzia:", 201 "settings.app.currentVersion" : "Súčasná verzia:",
202 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí", 202 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí",
203 "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", 203 "settings.app.form.autoLaunchOnStart" : "Spustiť Ferdi pri štarte",
204 "settings.app.form.beta" : "Vrátane beta verzií", 204 "settings.app.form.beta" : "Vrátane beta verzií",
205 "settings.app.form.darkMode" : "Spustiť Dark Side", 205 "settings.app.form.darkMode" : "Spustiť Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Zapnúť GPU zrýchlenie", 206 "settings.app.form.enableGPUAcceleration" : "Zapnúť GPU zrýchlenie",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", 208 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Jazyk", 210 "settings.app.form.language" : "Jazyk",
211 "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty", 211 "settings.app.form.minimizeToSystemTray" : "Minimalizovať Ferdi do systémovej lišty",
212 "settings.app.form.runInBackground" : "Po zatvorení okna ponechať Franz spustený na pozadí", 212 "settings.app.form.runInBackground" : "Po zatvorení okna ponechať Ferdi spustený na pozadí",
213 "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb", 213 "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia",
215 "settings.app.headline" : "Nastavenia", 215 "settings.app.headline" : "Nastavenia",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Oficiálne preklady sú angličtina a nemčina. Všetky ostatné jazyky sú preklady založené na komunite.", 221 "settings.app.languageDisclaimer" : "Oficiálne preklady sú angličtina a nemčina. Všetky ostatné jazyky sú preklady založené na komunite.",
222 "settings.app.restartRequired" : "Zmeny vyžadujú reštart", 222 "settings.app.restartRequired" : "Zmeny vyžadujú reštart",
223 "settings.app.subheadlineCache" : "Vyrovnávacia pamäť", 223 "settings.app.subheadlineCache" : "Vyrovnávacia pamäť",
224 "settings.app.translationHelp" : "Pomôžte nám preložiť Franz do svojho jazyka.", 224 "settings.app.translationHelp" : "Pomôžte nám preložiť Ferdi do svojho jazyka.",
225 "settings.app.updateStatusAvailable" : "Je dostupná aktualizácia, sťahuje sa...", 225 "settings.app.updateStatusAvailable" : "Je dostupná aktualizácia, sťahuje sa...",
226 "settings.app.updateStatusSearching" : "Vyhľadáva aktualizácie", 226 "settings.app.updateStatusSearching" : "Vyhľadáva aktualizácie",
227 "settings.app.updateStatusUpToDate" : "Používate najnovšiu verziu Franz", 227 "settings.app.updateStatusUpToDate" : "Používate najnovšiu verziu Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "Pridať {name}", 254 "settings.service.form.addServiceHeadline" : "Pridať {name}",
255 "settings.service.form.availableServices" : "Dostupné služby", 255 "settings.service.form.availableServices" : "Dostupné služby",
256 "settings.service.form.customUrl" : "Vlastný server", 256 "settings.service.form.customUrl" : "Vlastný server",
257 "settings.service.form.customUrlPremiumInfo" : "Ak chcete pridať vlastné hostované služby, potrebujete účet Franz Premium Supporter.", 257 "settings.service.form.customUrlPremiumInfo" : "Ak chcete pridať vlastné hostované služby, potrebujete účet Ferdi Premium Supporter.",
258 "settings.service.form.customUrlUpgradeAccount" : "Povýšte váš účet", 258 "settings.service.form.customUrlUpgradeAccount" : "Povýšte váš účet",
259 "settings.service.form.customUrlValidationError" : "Nebolo možné overiť vlastný server: {name}.", 259 "settings.service.form.customUrlValidationError" : "Nebolo možné overiť vlastný server: {name}.",
260 "settings.service.form.deleteButton" : "Odstrániť službu", 260 "settings.service.form.deleteButton" : "Odstrániť službu",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené", 297 "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené",
298 "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", 298 "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté",
299 "settings.services.updatedInfo" : "Vaše zmeny boli uložené", 299 "settings.services.updatedInfo" : "Vaše zmeny boli uložené",
300 "settings.team.contentHeadline" : "Franz pre tímy", 300 "settings.team.contentHeadline" : "Ferdi pre tímy",
301 "settings.team.copy" : "Franz for Teams vám dáva možnosť pozvať spolupracovníkov do vášho tímu odoslaním e-mailových pozvánok a spravovaním ich odberov v preferenciách vášho účtu. Nestrácajte čas vytváraním predplatného pre každého člena tímu jednotlivo, zabudnite na viac faktúr a rôzne fakturačné cykly - jeden tím bude pre všetkých!", 301 "settings.team.copy" : "Ferdi for Teams vám dáva možnosť pozvať spolupracovníkov do vášho tímu odoslaním e-mailových pozvánok a spravovaním ich odberov v preferenciách vášho účtu. Nestrácajte čas vytváraním predplatného pre každého člena tímu jednotlivo, zabudnite na viac faktúr a rôzne fakturačné cykly - jeden tím bude pre všetkých!",
302 "settings.team.headline" : "Tím", 302 "settings.team.headline" : "Tím",
303 "settings.team.intro" : "Vy a váš tím používate Franz? Teraz môžete spravovať prémiové predplatné pre toľko kolegov, priateľov alebo rodinných príslušníkov, koľko chcete, všetko z jedného účtu.", 303 "settings.team.intro" : "Vy a váš tím používate Franz? Teraz môžete spravovať prémiové predplatné pre toľko kolegov, priateľov alebo rodinných príslušníkov, koľko chcete, všetko z jedného účtu.",
304 "settings.team.manageAction" : "Spravujte svoj tím na adrese meetfranz.com", 304 "settings.team.manageAction" : "Spravujte svoj tím na adrese meetfranz.com",
@@ -338,7 +338,7 @@
338 "signup.firstname.label" : "Krstné meno", 338 "signup.firstname.label" : "Krstné meno",
339 "signup.headline" : "Prihlásiť sa", 339 "signup.headline" : "Prihlásiť sa",
340 "signup.lastname.label" : "Priezvisko", 340 "signup.lastname.label" : "Priezvisko",
341 "signup.legal.info" : "Vytvorením účtu Franz súhlasíte s", 341 "signup.legal.info" : "Vytvorením účtu Ferdi súhlasíte s",
342 "signup.legal.privacy" : "Vyhlásenie o ochrane súkromia", 342 "signup.legal.privacy" : "Vyhlásenie o ochrane súkromia",
343 "signup.legal.terms" : "Podmienky služby", 343 "signup.legal.terms" : "Podmienky služby",
344 "signup.link.login" : "Už máte účet, chcete sa prihlásiť?", 344 "signup.link.login" : "Už máte účet, chcete sa prihlásiť?",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index f5af4b64c..93e3fb139 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -200,7 +200,7 @@
200 "settings.app.cacheInfo" : "Франз кеш тренутно користи {величина} простора на диску.", 200 "settings.app.cacheInfo" : "Франз кеш тренутно користи {величина} простора на диску.",
201 "settings.app.currentVersion" : "Trenutna verzija:", 201 "settings.app.currentVersion" : "Trenutna verzija:",
202 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 202 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
203 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 203 "settings.app.form.autoLaunchOnStart" : "Pokreni Ferdi sa sistemom",
204 "settings.app.form.beta" : "Obuhvati i beta verzije", 204 "settings.app.form.beta" : "Obuhvati i beta verzije",
205 "settings.app.form.darkMode" : "Join the Dark Side", 205 "settings.app.form.darkMode" : "Join the Dark Side",
206 "settings.app.form.enableGPUAcceleration" : "Омогући убрзање графичке јединице", 206 "settings.app.form.enableGPUAcceleration" : "Омогући убрзање графичке јединице",
@@ -276,11 +276,11 @@
276 "settings.service.form.name" : "Ime", 276 "settings.service.form.name" : "Ime",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings",
278 "settings.service.form.proxy.host" : "Proxy Host\/IP", 278 "settings.service.form.proxy.host" : "Proxy Host\/IP",
279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 279 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Ferdi servers.",
280 "settings.service.form.proxy.isEnabled" : "Use Proxy", 280 "settings.service.form.proxy.isEnabled" : "Use Proxy",
281 "settings.service.form.proxy.password" : "Password (optional)", 281 "settings.service.form.proxy.password" : "Password (optional)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
283 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 283 "settings.service.form.proxy.restartInfo" : "Please restart Ferdi after changing proxy Settings.",
284 "settings.service.form.proxy.user" : "User (optional)", 284 "settings.service.form.proxy.user" : "User (optional)",
285 "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", 285 "settings.service.form.saveButton" : "Sačuvaj uslugu\/e",
286 "settings.service.form.tabHosted" : "Hostovano", 286 "settings.service.form.tabHosted" : "Hostovano",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.", 297 "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.",
298 "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", 298 "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.",
299 "settings.services.updatedInfo" : "Vaše promjene su pohranjene.", 299 "settings.services.updatedInfo" : "Vaše promjene su pohranjene.",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Tim", 302 "settings.team.headline" : "Tim",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno", 325 "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno",
326 "settings.workspaces.updatedInfo" : "Your changes have been saved", 326 "settings.workspaces.updatedInfo" : "Your changes have been saved",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Dodajte novu uslugu", 330 "sidebar.addNewService" : "Dodajte novu uslugu",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,7 +338,7 @@
338 "signup.firstname.label" : "Ime", 338 "signup.firstname.label" : "Ime",
339 "signup.headline" : "Prijava", 339 "signup.headline" : "Prijava",
340 "signup.lastname.label" : "Prezime", 340 "signup.lastname.label" : "Prezime",
341 "signup.legal.info" : "Prilikom stvaranja Franz računa, slažete se sa sljedećim stavkama", 341 "signup.legal.info" : "Prilikom stvaranja Ferdi računa, slažete se sa sljedećim stavkama",
342 "signup.legal.privacy" : "Изјава о приватности", 342 "signup.legal.privacy" : "Изјава о приватности",
343 "signup.legal.terms" : "Uvjeti korištenja", 343 "signup.legal.terms" : "Uvjeti korištenja",
344 "signup.link.login" : "Imate račun? Prijavite se.", 344 "signup.link.login" : "Imate račun? Prijavite se.",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 4dcf92307..75e43d1ce 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Mail olarak gönder", 13 "feature.shareFranz.action.email" : "Mail olarak gönder",
14 "feature.shareFranz.action.facebook" : "Facebook'ta Paylaş", 14 "feature.shareFranz.action.facebook" : "Facebook'ta Paylaş",
15 "feature.shareFranz.action.twitter" : "Twitter'da Paylaş", 15 "feature.shareFranz.action.twitter" : "Twitter'da Paylaş",
16 "feature.shareFranz.headline" : "Franz birlikte daha iyi!", 16 "feature.shareFranz.headline" : "Ferdi birlikte daha iyi!",
17 "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.", 17 "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.", 19 "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.",
@@ -173,7 +173,7 @@
173 "settings.account.buttonSave" : "Profili güncelle", 173 "settings.account.buttonSave" : "Profili güncelle",
174 "settings.account.deleteAccount" : "Hesabı sil", 174 "settings.account.deleteAccount" : "Hesabı sil",
175 "settings.account.deleteEmailSent" : "Hesabınızın silinmesini onaylamanız için e-posta adresinize gönderilen bağlantıya tıklayınız. Bu işlem sonrasında hesabınız ve bilgileriniz geri getirilemez!", 175 "settings.account.deleteEmailSent" : "Hesabınızın silinmesini onaylamanız için e-posta adresinize gönderilen bağlantıya tıklayınız. Bu işlem sonrasında hesabınız ve bilgileriniz geri getirilemez!",
176 "settings.account.deleteInfo" : "Franz hesabınıza artık ihtiyaç duymuyorsanız, hesabınızı ve buradaki bütün bağlantılı bilgilerinizi silebilirsiniz.", 176 "settings.account.deleteInfo" : "Ferdi hesabınıza artık ihtiyaç duymuyorsanız, hesabınızı ve buradaki bütün bağlantılı bilgilerinizi silebilirsiniz.",
177 "settings.account.headline" : "Hesap", 177 "settings.account.headline" : "Hesap",
178 "settings.account.headlineAccount" : "Hesap bilgileri", 178 "settings.account.headlineAccount" : "Hesap bilgileri",
179 "settings.account.headlineDangerZone" : "Tehlike Bölgesi", 179 "settings.account.headlineDangerZone" : "Tehlike Bölgesi",
@@ -197,7 +197,7 @@
197 "settings.app.buttonClearAllCache" : "Önbelleği temizle", 197 "settings.app.buttonClearAllCache" : "Önbelleği temizle",
198 "settings.app.buttonInstallUpdate" : "Yeniden Başlat ve Güncelleştirmeleri Kur", 198 "settings.app.buttonInstallUpdate" : "Yeniden Başlat ve Güncelleştirmeleri Kur",
199 "settings.app.buttonSearchForUpdate" : "Güncellemeleri kontrol et", 199 "settings.app.buttonSearchForUpdate" : "Güncellemeleri kontrol et",
200 "settings.app.cacheInfo" : "Franz önbelleği şu anda {size} disk alanı kullanıyor.", 200 "settings.app.cacheInfo" : "Ferdi önbelleği şu anda {size} disk alanı kullanıyor.",
201 "settings.app.currentVersion" : "Geçerli sürüm:", 201 "settings.app.currentVersion" : "Geçerli sürüm:",
202 "settings.app.form.autoLaunchInBackground" : "Arka planda aç", 202 "settings.app.form.autoLaunchInBackground" : "Arka planda aç",
203 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", 203 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "{name} Ekle", 254 "settings.service.form.addServiceHeadline" : "{name} Ekle",
255 "settings.service.form.availableServices" : "Mevcut servisler", 255 "settings.service.form.availableServices" : "Mevcut servisler",
256 "settings.service.form.customUrl" : "Özel sunucu", 256 "settings.service.form.customUrl" : "Özel sunucu",
257 "settings.service.form.customUrlPremiumInfo" : "Kendi barındırdığın servisi ekleyebilmek için Franz Premium Destek Hesabına ihtiyacın var.", 257 "settings.service.form.customUrlPremiumInfo" : "Kendi barındırdığın servisi ekleyebilmek için Ferdi Premium Destek Hesabına ihtiyacın var.",
258 "settings.service.form.customUrlUpgradeAccount" : "Hesabını yükselt", 258 "settings.service.form.customUrlUpgradeAccount" : "Hesabını yükselt",
259 "settings.service.form.customUrlValidationError" : "{name} özel sunucu doğrulanamadı.", 259 "settings.service.form.customUrlValidationError" : "{name} özel sunucu doğrulanamadı.",
260 "settings.service.form.deleteButton" : "Servisi sil", 260 "settings.service.form.deleteButton" : "Servisi sil",
@@ -276,7 +276,7 @@
276 "settings.service.form.name" : "İsim", 276 "settings.service.form.name" : "İsim",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Ayarları", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Ayarları",
278 "settings.service.form.proxy.host" : "Proxy Sunucusu\/IP", 278 "settings.service.form.proxy.host" : "Proxy Sunucusu\/IP",
279 "settings.service.form.proxy.info" : "Proxy ayarları Franz serverlarına yüklenmeyecektir.", 279 "settings.service.form.proxy.info" : "Proxy ayarları Ferdi serverlarına yüklenmeyecektir.",
280 "settings.service.form.proxy.isEnabled" : "Proxy Kullan", 280 "settings.service.form.proxy.isEnabled" : "Proxy Kullan",
281 "settings.service.form.proxy.password" : "Parola (opsiyonel)", 281 "settings.service.form.proxy.password" : "Parola (opsiyonel)",
282 "settings.service.form.proxy.port" : "Port", 282 "settings.service.form.proxy.port" : "Port",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Tüm sesler kapalı", 297 "settings.services.tooltip.isMuted" : "Tüm sesler kapalı",
298 "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı", 298 "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı",
299 "settings.services.updatedInfo" : "Değişikliklerin kaydedildi", 299 "settings.services.updatedInfo" : "Değişikliklerin kaydedildi",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Takım", 302 "settings.team.headline" : "Takım",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Tekrar deneyin", 325 "settings.workspaces.tryReloadWorkspaces" : "Tekrar deneyin",
326 "settings.workspaces.updatedInfo" : "Değişikliklerin kaydedildi", 326 "settings.workspaces.updatedInfo" : "Değişikliklerin kaydedildi",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Yeni servis ekle", 330 "sidebar.addNewService" : "Yeni servis ekle",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/ua.json b/src/i18n/locales/ua.json
index fcb99c4e4..d7486018b 100644
--- a/src/i18n/locales/ua.json
+++ b/src/i18n/locales/ua.json
@@ -29,15 +29,15 @@
29 "signup.submit.label": "Створити акаунт", 29 "signup.submit.label": "Створити акаунт",
30 "signup.link.login": "У вас вже є обліковий запис, увійти?", 30 "signup.link.login": "У вас вже є обліковий запис, увійти?",
31 "signup.emailDuplicate": "Користувач із цією email адресою вже існує", 31 "signup.emailDuplicate": "Користувач із цією email адресою вже існує",
32 "signup.legal.info": "Створенням акаунту Franz ви приймаєте", 32 "signup.legal.info": "Створенням акаунту Ferdi ви приймаєте",
33 "signup.legal.terms": "Умови використання", 33 "signup.legal.terms": "Умови використання",
34 "signup.legal.privacy": "Заява про конфіденційність", 34 "signup.legal.privacy": "Заява про конфіденційність",
35 "pricing.headline": "Підтримайте Franz", 35 "pricing.headline": "Підтримайте Franz",
36 "pricing.support.label": "Виберіть свій план підтримки", 36 "pricing.support.label": "Виберіть свій план підтримки",
37 "pricing.submit.label": "Я хочу підтримати розробку Franz", 37 "pricing.submit.label": "Я хочу підтримати розробку Franz",
38 "pricing.link.skipPayment": "Я не хочу підтримувати розробку Franz.", 38 "pricing.link.skipPayment": "Я не хочу підтримувати розробку Franz.",
39 "import.headline": "Імпортувати ваші сервіси з Franz 4", 39 "import.headline": "Імпортувати ваші сервіси з Ferdi 4",
40 "import.notSupportedHeadline": "Сервіси ще не підтримуються в Franz 5", 40 "import.notSupportedHeadline": "Сервіси ще не підтримуються в Ferdi 5",
41 "import.submit.label": "Імпортувати сервіси", 41 "import.submit.label": "Імпортувати сервіси",
42 "import.skip.label": "Я хочу додати сервіси вручну", 42 "import.skip.label": "Я хочу додати сервіси вручну",
43 "invite.submit.label": "Відправити запрошення", 43 "invite.submit.label": "Відправити запрошення",
@@ -47,7 +47,7 @@
47 "invite.skip.label": "Я хочу зробити це пізніше", 47 "invite.skip.label": "Я хочу зробити це пізніше",
48 "subscription.submit.label": "Я хочу підтримати розробку Franz", 48 "subscription.submit.label": "Я хочу підтримати розробку Franz",
49 "subscription.paymentSessionError": "Не вдалося ініціалізувати форму платежу", 49 "subscription.paymentSessionError": "Не вдалося ініціалізувати форму платежу",
50 "subscription.includedFeatures": "Платний Преміальний Акаунт Прихильника Franz включає", 50 "subscription.includedFeatures": "Платний Преміальний Акаунт Прихильника Ferdi включає",
51 "subscription.features.onpremise": "Додайте on-premise / hosted сервіси, такі як Hipchat", 51 "subscription.features.onpremise": "Додайте on-premise / hosted сервіси, такі як Hipchat",
52 "subscription.features.customServices": "Приватні сервіси для вас і вашої команди", 52 "subscription.features.customServices": "Приватні сервіси для вас і вашої команди",
53 "subscription.features.encryptedSync": "Шифрована синхронізація сеансу", 53 "subscription.features.encryptedSync": "Шифрована синхронізація сеансу",
@@ -55,7 +55,7 @@
55 "subscription.features.ads": "Жодної реклами!", 55 "subscription.features.ads": "Жодної реклами!",
56 "subscription.features.comingSoon": "очікуйте незабаром", 56 "subscription.features.comingSoon": "очікуйте незабаром",
57 "infobar.servicesUpdated": "Ваші сервіси було оновлено.", 57 "infobar.servicesUpdated": "Ваші сервіси було оновлено.",
58 "infobar.updateAvailable": "Нове оновлення для Franz доступне.", 58 "infobar.updateAvailable": "Нове оновлення для Ferdi доступне.",
59 "infobar.buttonReloadServices": "Перезавантажити сервіси", 59 "infobar.buttonReloadServices": "Перезавантажити сервіси",
60 "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення", 60 "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення",
61 "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача", 61 "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача",
@@ -79,7 +79,7 @@
79 "settings.account.headlinePassword": "Змінити пароль", 79 "settings.account.headlinePassword": "Змінити пароль",
80 "settings.account.successInfo": "Ваші зміни були збережені", 80 "settings.account.successInfo": "Ваші зміни були збережені",
81 "settings.account.buttonSave": "Оновити профіль", 81 "settings.account.buttonSave": "Оновити профіль",
82 "settings.account.mining.thankyou": "Дякую, що підтримуєте Franz своєю обчислювальною потужністю.", 82 "settings.account.mining.thankyou": "Дякую, що підтримуєте Ferdi своєю обчислювальною потужністю.",
83 "settings.account.mining.active": "Ви зараз здійснюєте {hashes} розрахунків за секунду.", 83 "settings.account.mining.active": "Ви зараз здійснюєте {hashes} розрахунків за секунду.",
84 "settings.account.mining.moreInformation": "Отримати більше інформації", 84 "settings.account.mining.moreInformation": "Отримати більше інформації",
85 "settings.account.mining.cancel": "Скасувати видобуток", 85 "settings.account.mining.cancel": "Скасувати видобуток",
@@ -125,10 +125,10 @@
125 "settings.app.updateStatusSearching": "Шукає оновлення", 125 "settings.app.updateStatusSearching": "Шукає оновлення",
126 "settings.app.updateStatusAvailable": "Оновлення доступне, завантаження...", 126 "settings.app.updateStatusAvailable": "Оновлення доступне, завантаження...",
127 "settings.app.updateStatusUpToDate": "Ви використовуєте останню версію Franz", 127 "settings.app.updateStatusUpToDate": "Ви використовуєте останню версію Franz",
128 "settings.app.form.autoLaunchOnStart": "Запускати Franz на початку", 128 "settings.app.form.autoLaunchOnStart": "Запускати Ferdi на початку",
129 "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі", 129 "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі",
130 "settings.app.form.minimizeToSystemTray": "Мінімізувати Franz до системного лотка", 130 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка",
131 "settings.app.form.runInBackground": "Тримати Franz в фоні при закритті вікна", 131 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна",
132 "settings.app.form.language": "Мова", 132 "settings.app.form.language": "Мова",
133 "settings.app.form.beta": "Включити бета-версії", 133 "settings.app.form.beta": "Включити бета-версії",
134 "settings.app.currentVersion": "Поточна версія:", 134 "settings.app.currentVersion": "Поточна версія:",
@@ -150,12 +150,12 @@
150 "subscription.type.free": "безплатно", 150 "subscription.type.free": "безплатно",
151 "subscription.type.month": "місяць", 151 "subscription.type.month": "місяць",
152 "subscription.type.year": "рік", 152 "subscription.type.year": "рік",
153 "subscription.type.mining": "Підтримати Franz обчислювальною потужністю", 153 "subscription.type.mining": "Підтримати Ferdi обчислювальною потужністю",
154 "subscription.mining.headline": "Як це працює?", 154 "subscription.mining.headline": "Як це працює?",
155 "subscription.mining.experimental": "експериментальний", 155 "subscription.mining.experimental": "експериментальний",
156 "subscription.mining.line1": "Вмикаючи \"Підтримати обчислювальною потужністю\", Franz буде використовувати приблизно 20-50% вашого процесора щоб майнити криптовалюту Monero, що приблизно рівне $ 5/рік.", 156 "subscription.mining.line1": "Вмикаючи \"Підтримати обчислювальною потужністю\", Ferdi буде використовувати приблизно 20-50% вашого процесора щоб майнити криптовалюту Monero, що приблизно рівне $ 5/рік.",
157 "subscription.mining.line2": "Ми адаптуємо використання процесора відповідно до вашої поведінки, щоб не виснажувати акумулятор, не сповільнити вашу роботу і роботу вашої машини.", 157 "subscription.mining.line2": "Ми адаптуємо використання процесора відповідно до вашої поведінки, щоб не виснажувати акумулятор, не сповільнити вашу роботу і роботу вашої машини.",
158 "subscription.mining.line3": "Поки майнер активний, ви матимете необмежений доступ до всіх особливостей підтримки Franz Premium.", 158 "subscription.mining.line3": "Поки майнер активний, ви матимете необмежений доступ до всіх особливостей підтримки Ferdi Premium.",
159 "subscription.mining.moreInformation": "Отримати більше інформації про цей план.", 159 "subscription.mining.moreInformation": "Отримати більше інформації про цей план.",
160 "subscriptionPopup.buttonCancel": "Відмінити", 160 "subscriptionPopup.buttonCancel": "Відмінити",
161 "subscriptionPopup.buttonDone": "Готово", 161 "subscriptionPopup.buttonDone": "Готово",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index 69acdff38..ee53608e6 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -13,7 +13,7 @@
13 "feature.shareFranz.action.email" : "Send as email", 13 "feature.shareFranz.action.email" : "Send as email",
14 "feature.shareFranz.action.facebook" : "Share on Facebook", 14 "feature.shareFranz.action.facebook" : "Share on Facebook",
15 "feature.shareFranz.action.twitter" : "Share on Twitter", 15 "feature.shareFranz.action.twitter" : "Share on Twitter",
16 "feature.shareFranz.headline" : "Franz is better together!", 16 "feature.shareFranz.headline" : "Ferdi is better together!",
17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", 17 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger", 18 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @FranzMessenger",
19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 19 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
@@ -200,7 +200,7 @@
200 "settings.app.cacheInfo" : "Кеш, який використовує Franz, займає {size} дискового простору.", 200 "settings.app.cacheInfo" : "Кеш, який використовує Franz, займає {size} дискового простору.",
201 "settings.app.currentVersion" : "Поточна версія:", 201 "settings.app.currentVersion" : "Поточна версія:",
202 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", 202 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі",
203 "settings.app.form.autoLaunchOnStart" : "Запускати Franz на початку", 203 "settings.app.form.autoLaunchOnStart" : "Запускати Ferdi на початку",
204 "settings.app.form.beta" : "Включити бета-версії", 204 "settings.app.form.beta" : "Включити бета-версії",
205 "settings.app.form.darkMode" : "Переходь на Темну Сторону", 205 "settings.app.form.darkMode" : "Переходь на Темну Сторону",
206 "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU", 206 "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "Показувати Franz у системному лотку", 208 "settings.app.form.enableSystemTray" : "Показувати Franz у системному лотку",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "Мова", 210 "settings.app.form.language" : "Мова",
211 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до системного лотка", 211 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Ferdi до системного лотка",
212 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", 212 "settings.app.form.runInBackground" : "Тримати Ferdi в фоні при закритті вікна",
213 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів", 213 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені",
215 "settings.app.headline" : "Налаштування", 215 "settings.app.headline" : "Налаштування",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", 221 "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.",
222 "settings.app.restartRequired" : "Зміни потребують перезапуску", 222 "settings.app.restartRequired" : "Зміни потребують перезапуску",
223 "settings.app.subheadlineCache" : "Кеш", 223 "settings.app.subheadlineCache" : "Кеш",
224 "settings.app.translationHelp" : "Допоможіть перекласти Franz на Вашу мову.", 224 "settings.app.translationHelp" : "Допоможіть перекласти Ferdi на Вашу мову.",
225 "settings.app.updateStatusAvailable" : "Оновлення доступне, завантаження...", 225 "settings.app.updateStatusAvailable" : "Оновлення доступне, завантаження...",
226 "settings.app.updateStatusSearching" : "Шукає оновлення", 226 "settings.app.updateStatusSearching" : "Шукає оновлення",
227 "settings.app.updateStatusUpToDate" : "Ви використовуєте останню версію Franz", 227 "settings.app.updateStatusUpToDate" : "Ви використовуєте останню версію Franz",
@@ -280,7 +280,7 @@
280 "settings.service.form.proxy.isEnabled" : "Використовувати проксі", 280 "settings.service.form.proxy.isEnabled" : "Використовувати проксі",
281 "settings.service.form.proxy.password" : "Пароль (опційно)", 281 "settings.service.form.proxy.password" : "Пароль (опційно)",
282 "settings.service.form.proxy.port" : "Порт", 282 "settings.service.form.proxy.port" : "Порт",
283 "settings.service.form.proxy.restartInfo" : "Будь ласка, перезапустіть Franz після зміни налуштувань проксі", 283 "settings.service.form.proxy.restartInfo" : "Будь ласка, перезапустіть Ferdi після зміни налуштувань проксі",
284 "settings.service.form.proxy.user" : "Користувач (опційно)", 284 "settings.service.form.proxy.user" : "Користувач (опційно)",
285 "settings.service.form.saveButton" : "Зберегти сервіс", 285 "settings.service.form.saveButton" : "Зберегти сервіс",
286 "settings.service.form.tabHosted" : "Розміщений", 286 "settings.service.form.tabHosted" : "Розміщений",
@@ -297,8 +297,8 @@
297 "settings.services.tooltip.isMuted" : "Всі звуки вимкнено", 297 "settings.services.tooltip.isMuted" : "Всі звуки вимкнено",
298 "settings.services.tooltip.notificationsDisabled" : "Сповіщення відключені", 298 "settings.services.tooltip.notificationsDisabled" : "Сповіщення відключені",
299 "settings.services.updatedInfo" : "Ваші зміни були збережені", 299 "settings.services.updatedInfo" : "Ваші зміни були збережені",
300 "settings.team.contentHeadline" : "Franz for Teams", 300 "settings.team.contentHeadline" : "Ferdi for Teams",
301 "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 301 "settings.team.copy" : "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
302 "settings.team.headline" : "Команда", 302 "settings.team.headline" : "Команда",
303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 303 "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
304 "settings.team.manageAction" : "Manage your Team on meetfranz.com", 304 "settings.team.manageAction" : "Manage your Team on meetfranz.com",
@@ -324,8 +324,8 @@
324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", 324 "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.",
325 "settings.workspaces.tryReloadWorkspaces" : "Спробуйте ще раз", 325 "settings.workspaces.tryReloadWorkspaces" : "Спробуйте ще раз",
326 "settings.workspaces.updatedInfo" : "Ваші зміни були збережені", 326 "settings.workspaces.updatedInfo" : "Ваші зміни були збережені",
327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", 327 "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Ferdi Workspaces",
328 "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 328 "settings.workspaces.workspaceFeatureInfo" : "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", 329 "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces",
330 "sidebar.addNewService" : "Додати новий сервіс", 330 "sidebar.addNewService" : "Додати новий сервіс",
331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", 331 "sidebar.closeWorkspaceDrawer" : "Close workspace drawer",
@@ -338,7 +338,7 @@
338 "signup.firstname.label" : "Ім`я", 338 "signup.firstname.label" : "Ім`я",
339 "signup.headline" : "Увійти", 339 "signup.headline" : "Увійти",
340 "signup.lastname.label" : "Прізвище", 340 "signup.lastname.label" : "Прізвище",
341 "signup.legal.info" : "Створенням акаунту Franz ви приймаєте", 341 "signup.legal.info" : "Створенням акаунту Ferdi ви приймаєте",
342 "signup.legal.privacy" : "Політика конфіденційності", 342 "signup.legal.privacy" : "Політика конфіденційності",
343 "signup.legal.terms" : "Умови використання", 343 "signup.legal.terms" : "Умови використання",
344 "signup.link.login" : "У вас вже є обліковий запис, увійти?", 344 "signup.link.login" : "У вас вже є обліковий запис, увійти?",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/locales/zh-Hant.json b/src/i18n/locales/zh-Hant.json
index e52b9ca26..852fbf67c 100644
--- a/src/i18n/locales/zh-Hant.json
+++ b/src/i18n/locales/zh-Hant.json
@@ -34,10 +34,10 @@
34 "signup.legal.privacy": "隱私聲明", 34 "signup.legal.privacy": "隱私聲明",
35 "pricing.headline": "贊助 Franz", 35 "pricing.headline": "贊助 Franz",
36 "pricing.support.label": "選擇贊助方案", 36 "pricing.support.label": "選擇贊助方案",
37 "pricing.submit.label": "我想協助 Franz 的開發", 37 "pricing.submit.label": "我想協助 Ferdi 的開發",
38 "pricing.link.skipPayment": "我不想協助 Franz 的開發", 38 "pricing.link.skipPayment": "我不想協助 Ferdi 的開發",
39 "import.headline": "匯入您的 Franz 4 服務", 39 "import.headline": "匯入您的 Ferdi 4 服務",
40 "import.notSupportedHeadline": "此服務不被 Franz 5 支持", 40 "import.notSupportedHeadline": "此服務不被 Ferdi 5 支持",
41 "import.submit.label": "匯入服務", 41 "import.submit.label": "匯入服務",
42 "import.skip.label": "我想手動匯入", 42 "import.skip.label": "我想手動匯入",
43 "invite.submit.label": "Send invites", 43 "invite.submit.label": "Send invites",
@@ -45,9 +45,9 @@
45 "invite.name.label": "名子", 45 "invite.name.label": "名子",
46 "invite.email.label": "電子郵件信箱", 46 "invite.email.label": "電子郵件信箱",
47 "invite.skip.label": "我想晚點進行", 47 "invite.skip.label": "我想晚點進行",
48 "subscription.submit.label": "我想協助 Franz 的開發", 48 "subscription.submit.label": "我想協助 Ferdi 的開發",
49 "subscription.paymentSessionError": "無法初始化付費表單", 49 "subscription.paymentSessionError": "無法初始化付費表單",
50 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", 50 "subscription.includedFeatures": "Paid Ferdi Premium Supporter Account includes",
51 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat", 51 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat",
52 "subscription.features.customServices": "Private services for you and your team", 52 "subscription.features.customServices": "Private services for you and your team",
53 "subscription.features.encryptedSync": "Encrypted session synchronization", 53 "subscription.features.encryptedSync": "Encrypted session synchronization",
@@ -102,7 +102,7 @@
102 "settings.service.form.tabHosted": "Hosted", 102 "settings.service.form.tabHosted": "Hosted",
103 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 103 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
104 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 104 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
105 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", 105 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.",
106 "settings.service.form.customUrlUpgradeAccount": "升級帳戶", 106 "settings.service.form.customUrlUpgradeAccount": "升級帳戶",
107 "settings.service.form.indirectMessageInfo": "除了 @username, @channel, @here 之外,當您參與的頻道有訊息時,就會通知", 107 "settings.service.form.indirectMessageInfo": "除了 @username, @channel, @here 之外,當您參與的頻道有訊息時,就會通知",
108 "settings.service.error.headline": "錯誤", 108 "settings.service.error.headline": "錯誤",
@@ -153,7 +153,7 @@
153 "subscription.type.mining": "用您機器的計算能力來贊助 Franz", 153 "subscription.type.mining": "用您機器的計算能力來贊助 Franz",
154 "subscription.mining.headline": "如何進行的?", 154 "subscription.mining.headline": "如何進行的?",
155 "subscription.mining.experimental": "實驗性功能", 155 "subscription.mining.experimental": "實驗性功能",
156 "subscription.mining.line1": "Franz 運用您CPU的20%至50%的運算能力來挖門羅幣(一種開源加密貨幣),每年約莫可得到5美元。", 156 "subscription.mining.line1": "Ferdi 運用您CPU的20%至50%的運算能力來挖門羅幣(一種開源加密貨幣),每年約莫可得到5美元。",
157 "subscription.mining.line2": "我們會調整運算強度,避免消耗過多電池電量及影響效能。", 157 "subscription.mining.line2": "我們會調整運算強度,避免消耗過多電池電量及影響效能。",
158 "subscription.mining.line3": "當您允許我們挖掘門羅幣之時,我們便允許您使用全部的加值服務。", 158 "subscription.mining.line3": "當您允許我們挖掘門羅幣之時,我們便允許您使用全部的加值服務。",
159 "subscription.mining.moreInformation": "取得更多資訊", 159 "subscription.mining.moreInformation": "取得更多資訊",
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json
index 4051b882c..58d1d7b5d 100644
--- a/src/i18n/locales/zh-TW.json
+++ b/src/i18n/locales/zh-TW.json
@@ -197,7 +197,7 @@
197 "settings.app.buttonClearAllCache" : "清除快取", 197 "settings.app.buttonClearAllCache" : "清除快取",
198 "settings.app.buttonInstallUpdate" : "重新啟動並安裝更新", 198 "settings.app.buttonInstallUpdate" : "重新啟動並安裝更新",
199 "settings.app.buttonSearchForUpdate" : "檢查更新", 199 "settings.app.buttonSearchForUpdate" : "檢查更新",
200 "settings.app.cacheInfo" : "Franz 快取目前占用 {size} 的磁碟空間。", 200 "settings.app.cacheInfo" : "Ferdi 快取目前占用 {size} 的磁碟空間。",
201 "settings.app.currentVersion" : "目前的版本", 201 "settings.app.currentVersion" : "目前的版本",
202 "settings.app.form.autoLaunchInBackground" : "在背景開啟", 202 "settings.app.form.autoLaunchInBackground" : "在背景開啟",
203 "settings.app.form.autoLaunchOnStart" : "開機時啟動 Franz", 203 "settings.app.form.autoLaunchOnStart" : "開機時啟動 Franz",
@@ -208,8 +208,8 @@
208 "settings.app.form.enableSystemTray" : "在系統列顯示 Franz", 208 "settings.app.form.enableSystemTray" : "在系統列顯示 Franz",
209 "settings.app.form.enableTodos" : "Enable Franz Todos", 209 "settings.app.form.enableTodos" : "Enable Franz Todos",
210 "settings.app.form.language" : "語言", 210 "settings.app.form.language" : "語言",
211 "settings.app.form.minimizeToSystemTray" : "最小化 Franz 到系統列", 211 "settings.app.form.minimizeToSystemTray" : "最小化 Ferdi 到系統列",
212 "settings.app.form.runInBackground" : "當關閉視窗時,保持 Franz 在背景運作", 212 "settings.app.form.runInBackground" : "當關閉視窗時,保持 Ferdi 在背景運作",
213 "settings.app.form.showDisabledServices" : "顯示停用的服務標籤", 213 "settings.app.form.showDisabledServices" : "顯示停用的服務標籤",
214 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息", 214 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息",
215 "settings.app.headline" : "設定", 215 "settings.app.headline" : "設定",
@@ -221,7 +221,7 @@
221 "settings.app.languageDisclaimer" : "官方僅提供英語與德語,其他語言由社群提供翻譯。", 221 "settings.app.languageDisclaimer" : "官方僅提供英語與德語,其他語言由社群提供翻譯。",
222 "settings.app.restartRequired" : "需要重啟以更變", 222 "settings.app.restartRequired" : "需要重啟以更變",
223 "settings.app.subheadlineCache" : "快取", 223 "settings.app.subheadlineCache" : "快取",
224 "settings.app.translationHelp" : "幫助我們將 Franz 翻譯成您的語言。", 224 "settings.app.translationHelp" : "幫助我們將 Ferdi 翻譯成您的語言。",
225 "settings.app.updateStatusAvailable" : "有可用更新,下載中...", 225 "settings.app.updateStatusAvailable" : "有可用更新,下載中...",
226 "settings.app.updateStatusSearching" : "正在搜尋更新", 226 "settings.app.updateStatusSearching" : "正在搜尋更新",
227 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的 Franz", 227 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的 Franz",
@@ -254,7 +254,7 @@
254 "settings.service.form.addServiceHeadline" : "新增{name}", 254 "settings.service.form.addServiceHeadline" : "新增{name}",
255 "settings.service.form.availableServices" : "可使用的服務", 255 "settings.service.form.availableServices" : "可使用的服務",
256 "settings.service.form.customUrl" : "自訂伺服器", 256 "settings.service.form.customUrl" : "自訂伺服器",
257 "settings.service.form.customUrlPremiumInfo" : "要添加自行託管的服務,您需要擁有 Franz 高級支援帳戶。", 257 "settings.service.form.customUrlPremiumInfo" : "要添加自行託管的服務,您需要擁有 Ferdi 高級支援帳戶。",
258 "settings.service.form.customUrlUpgradeAccount" : "升級您的帳戶", 258 "settings.service.form.customUrlUpgradeAccount" : "升級您的帳戶",
259 "settings.service.form.customUrlValidationError" : "無法驗證自定義{name}服務器。", 259 "settings.service.form.customUrlValidationError" : "無法驗證自定義{name}服務器。",
260 "settings.service.form.deleteButton" : "刪除服務", 260 "settings.service.form.deleteButton" : "刪除服務",
@@ -276,7 +276,7 @@
276 "settings.service.form.name" : "名稱", 276 "settings.service.form.name" : "名稱",
277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS 代理伺服器設定", 277 "settings.service.form.proxy.headline" : "HTTP\/HTTPS 代理伺服器設定",
278 "settings.service.form.proxy.host" : "代理伺服器網域 \/ IP", 278 "settings.service.form.proxy.host" : "代理伺服器網域 \/ IP",
279 "settings.service.form.proxy.info" : "Proxy 設定不會與 Franz 伺服器同步", 279 "settings.service.form.proxy.info" : "Proxy 設定不會與 Ferdi 伺服器同步",
280 "settings.service.form.proxy.isEnabled" : "使用 Proxy", 280 "settings.service.form.proxy.isEnabled" : "使用 Proxy",
281 "settings.service.form.proxy.password" : "密碼 (選填)", 281 "settings.service.form.proxy.password" : "密碼 (選填)",
282 "settings.service.form.proxy.port" : "通訊阜", 282 "settings.service.form.proxy.port" : "通訊阜",
@@ -338,7 +338,7 @@
338 "signup.firstname.label" : "名", 338 "signup.firstname.label" : "名",
339 "signup.headline" : "註冊", 339 "signup.headline" : "註冊",
340 "signup.lastname.label" : "姓", 340 "signup.lastname.label" : "姓",
341 "signup.legal.info" : "透過創建一個 Franz 帳戶,你同意", 341 "signup.legal.info" : "透過創建一個 Ferdi 帳戶,你同意",
342 "signup.legal.privacy" : "隱私聲明", 342 "signup.legal.privacy" : "隱私聲明",
343 "signup.legal.terms" : "服務條款", 343 "signup.legal.terms" : "服務條款",
344 "signup.link.login" : "已經有一個帳戶,登入?", 344 "signup.link.login" : "已經有一個帳戶,登入?",
@@ -376,7 +376,7 @@
376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", 376 "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace",
377 "workspaceDrawer.proFeatureBadge" : "Premium feature", 377 "workspaceDrawer.proFeatureBadge" : "Premium feature",
378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", 378 "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account",
379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", 379 "workspaceDrawer.workspaceFeatureInfo" : "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>",
380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", 380 "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings",
381 "workspaces.switchingIndicator.switchingTo" : "Switching to" 381 "workspaces.switchingIndicator.switchingTo" : "Switching to"
382} 382}
diff --git a/src/i18n/messages/src/components/AppUpdateInfoBar.json b/src/i18n/messages/src/components/AppUpdateInfoBar.json
index c4c2d0cae..da801b548 100644
--- a/src/i18n/messages/src/components/AppUpdateInfoBar.json
+++ b/src/i18n/messages/src/components/AppUpdateInfoBar.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "infobar.updateAvailable", 3 "id": "infobar.updateAvailable",
4 "defaultMessage": "!!!A new update for Franz is available.", 4 "defaultMessage": "!!!A new update for Ferdi is available.",
5 "file": "src/components/AppUpdateInfoBar.js", 5 "file": "src/components/AppUpdateInfoBar.js",
6 "start": { 6 "start": {
7 "line": 9, 7 "line": 9,
diff --git a/src/i18n/messages/src/components/auth/Import.json b/src/i18n/messages/src/components/auth/Import.json
index 264fc729b..98ae2e61f 100644
--- a/src/i18n/messages/src/components/auth/Import.json
+++ b/src/i18n/messages/src/components/auth/Import.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "import.headline", 3 "id": "import.headline",
4 "defaultMessage": "!!!Import your Franz 4 services", 4 "defaultMessage": "!!!Import your Ferdi 4 services",
5 "file": "src/components/auth/Import.js", 5 "file": "src/components/auth/Import.js",
6 "start": { 6 "start": {
7 "line": 13, 7 "line": 13,
@@ -14,7 +14,7 @@
14 }, 14 },
15 { 15 {
16 "id": "import.notSupportedHeadline", 16 "id": "import.notSupportedHeadline",
17 "defaultMessage": "!!!Services not yet supported in Franz 5", 17 "defaultMessage": "!!!Services not yet supported in Ferdi 5",
18 "file": "src/components/auth/Import.js", 18 "file": "src/components/auth/Import.js",
19 "start": { 19 "start": {
20 "line": 17, 20 "line": 17,
diff --git a/src/i18n/messages/src/components/auth/Login.json b/src/i18n/messages/src/components/auth/Login.json
index 177f6000b..d593eac68 100644
--- a/src/i18n/messages/src/components/auth/Login.json
+++ b/src/i18n/messages/src/components/auth/Login.json
@@ -65,15 +65,41 @@
65 } 65 }
66 }, 66 },
67 { 67 {
68 "id": "login.customServerQuestion",
69 "defaultMessage": "!!!Using a custom Ferdi server?",
70 "file": "src/components/auth/Login.js",
71 "start": {
72 "line": 37,
73 "column": 24
74 },
75 "end": {
76 "line": 40,
77 "column": 3
78 }
79 },
80 {
81 "id": "login.customServerSuggestion",
82 "defaultMessage": "!!!Try importing your Franz account",
83 "file": "src/components/auth/Login.js",
84 "start": {
85 "line": 41,
86 "column": 26
87 },
88 "end": {
89 "line": 44,
90 "column": 3
91 }
92 },
93 {
68 "id": "login.tokenExpired", 94 "id": "login.tokenExpired",
69 "defaultMessage": "!!!Your session expired, please login again.", 95 "defaultMessage": "!!!Your session expired, please login again.",
70 "file": "src/components/auth/Login.js", 96 "file": "src/components/auth/Login.js",
71 "start": { 97 "start": {
72 "line": 37, 98 "line": 45,
73 "column": 16 99 "column": 16
74 }, 100 },
75 "end": { 101 "end": {
76 "line": 40, 102 "line": 48,
77 "column": 3 103 "column": 3
78 } 104 }
79 }, 105 },
@@ -82,11 +108,11 @@
82 "defaultMessage": "!!!Your session expired, please login again.", 108 "defaultMessage": "!!!Your session expired, please login again.",
83 "file": "src/components/auth/Login.js", 109 "file": "src/components/auth/Login.js",
84 "start": { 110 "start": {
85 "line": 41, 111 "line": 49,
86 "column": 16 112 "column": 16
87 }, 113 },
88 "end": { 114 "end": {
89 "line": 44, 115 "line": 52,
90 "column": 3 116 "column": 3
91 } 117 }
92 }, 118 },
@@ -95,11 +121,11 @@
95 "defaultMessage": "!!!Create a free account", 121 "defaultMessage": "!!!Create a free account",
96 "file": "src/components/auth/Login.js", 122 "file": "src/components/auth/Login.js",
97 "start": { 123 "start": {
98 "line": 45, 124 "line": 53,
99 "column": 14 125 "column": 14
100 }, 126 },
101 "end": { 127 "end": {
102 "line": 48, 128 "line": 56,
103 "column": 3 129 "column": 3
104 } 130 }
105 }, 131 },
@@ -108,11 +134,11 @@
108 "defaultMessage": "!!!Forgot password", 134 "defaultMessage": "!!!Forgot password",
109 "file": "src/components/auth/Login.js", 135 "file": "src/components/auth/Login.js",
110 "start": { 136 "start": {
111 "line": 49, 137 "line": 57,
112 "column": 16 138 "column": 16
113 }, 139 },
114 "end": { 140 "end": {
115 "line": 52, 141 "line": 60,
116 "column": 3 142 "column": 3
117 } 143 }
118 } 144 }
diff --git a/src/i18n/messages/src/components/auth/Signup.json b/src/i18n/messages/src/components/auth/Signup.json
index 2ea71e5ff..9aa7b25ab 100644
--- a/src/i18n/messages/src/components/auth/Signup.json
+++ b/src/i18n/messages/src/components/auth/Signup.json
@@ -66,7 +66,7 @@
66 }, 66 },
67 { 67 {
68 "id": "signup.legal.info", 68 "id": "signup.legal.info",
69 "defaultMessage": "!!!By creating a Franz account you accept the", 69 "defaultMessage": "!!!By creating a Ferdi account you accept the",
70 "file": "src/components/auth/Signup.js", 70 "file": "src/components/auth/Signup.js",
71 "start": { 71 "start": {
72 "line": 41, 72 "line": 41,
diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json
index 44cf4fab9..593a7bcb3 100644
--- a/src/i18n/messages/src/components/layout/AppLayout.json
+++ b/src/i18n/messages/src/components/layout/AppLayout.json
@@ -30,11 +30,24 @@
30 "defaultMessage": "!!!Could not load services and user information", 30 "defaultMessage": "!!!Could not load services and user information",
31 "file": "src/components/layout/AppLayout.js", 31 "file": "src/components/layout/AppLayout.js",
32 "start": { 32 "start": {
33 "line": 36, 33 "line": 33,
34 "column": 26 34 "column": 26
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 39, 37 "line": 36,
38 "column": 3
39 }
40 },
41 {
42 "id": "infobar.authRequestFailed",
43 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
44 "file": "src/components/layout/AppLayout.js",
45 "start": {
46 "line": 37,
47 "column": 21
48 },
49 "end": {
50 "line": 40,
38 "column": 3 51 "column": 3
39 } 52 }
40 } 53 }
diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json
index eb466c0ac..cee7f42c0 100644
--- a/src/i18n/messages/src/components/services/content/Services.json
+++ b/src/i18n/messages/src/components/services/content/Services.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "services.welcome", 3 "id": "services.welcome",
4 "defaultMessage": "!!!Welcome to Franz", 4 "defaultMessage": "!!!Welcome to Ferdi",
5 "file": "src/components/services/content/Services.js", 5 "file": "src/components/services/content/Services.js",
6 "start": { 6 "start": {
7 "line": 14, 7 "line": 14,
@@ -24,5 +24,31 @@
24 "line": 21, 24 "line": 21,
25 "column": 3 25 "column": 3
26 } 26 }
27 },
28 {
29 "id": "services.login",
30 "defaultMessage": "!!!Please login to use Ferdi.",
31 "file": "src/components/services/content/Services.js",
32 "start": {
33 "line": 19,
34 "column": 9
35 },
36 "end": {
37 "line": 22,
38 "column": 3
39 }
40 },
41 {
42 "id": "services.serverInfo",
43 "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
44 "file": "src/components/services/content/Services.js",
45 "start": {
46 "line": 23,
47 "column": 14
48 },
49 "end": {
50 "line": 26,
51 "column": 3
52 }
27 } 53 }
28] \ No newline at end of file 54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/account/AccountDashboard.json b/src/i18n/messages/src/components/settings/account/AccountDashboard.json
index 06d53e41d..48078c18d 100644
--- a/src/i18n/messages/src/components/settings/account/AccountDashboard.json
+++ b/src/i18n/messages/src/components/settings/account/AccountDashboard.json
@@ -170,7 +170,7 @@
170 }, 170 },
171 { 171 {
172 "id": "settings.account.deleteInfo", 172 "id": "settings.account.deleteInfo",
173 "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", 173 "defaultMessage": "!!!If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
174 "file": "src/components/settings/account/AccountDashboard.js", 174 "file": "src/components/settings/account/AccountDashboard.js",
175 "start": { 175 "start": {
176 "line": 70, 176 "line": 70,
diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
index e66db807d..45dc7b690 100644
--- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json
+++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
@@ -131,7 +131,7 @@
131 }, 131 },
132 { 132 {
133 "id": "settings.service.form.customUrlPremiumInfo", 133 "id": "settings.service.form.customUrlPremiumInfo",
134 "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", 134 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
135 "file": "src/components/settings/services/EditServiceForm.js", 135 "file": "src/components/settings/services/EditServiceForm.js",
136 "start": { 136 "start": {
137 "line": 64, 137 "line": 64,
@@ -261,7 +261,7 @@
261 }, 261 },
262 { 262 {
263 "id": "settings.service.form.proxy.restartInfo", 263 "id": "settings.service.form.proxy.restartInfo",
264 "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", 264 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
265 "file": "src/components/settings/services/EditServiceForm.js", 265 "file": "src/components/settings/services/EditServiceForm.js",
266 "start": { 266 "start": {
267 "line": 104, 267 "line": 104,
@@ -274,7 +274,7 @@
274 }, 274 },
275 { 275 {
276 "id": "settings.service.form.proxy.info", 276 "id": "settings.service.form.proxy.info",
277 "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", 277 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
278 "file": "src/components/settings/services/EditServiceForm.js", 278 "file": "src/components/settings/services/EditServiceForm.js",
279 "start": { 279 "start": {
280 "line": 108, 280 "line": 108,
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
index fa21db10a..a62ddb5b8 100644
--- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Settings", 4 "defaultMessage": "!!!Settings",
5 "file": "src/components/settings/settings/EditSettingsForm.js", 5 "file": "src/components/settings/settings/EditSettingsForm.js",
6 "start": { 6 "start": {
7 "line": 16, 7 "line": 17,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 19, 11 "line": 20,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,24 @@
17 "defaultMessage": "!!!General", 17 "defaultMessage": "!!!General",
18 "file": "src/components/settings/settings/EditSettingsForm.js", 18 "file": "src/components/settings/settings/EditSettingsForm.js",
19 "start": { 19 "start": {
20 "line": 20, 20 "line": 21,
21 "column": 19 21 "column": 19
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 23, 24 "line": 24,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.app.serverInfo",
30 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
31 "file": "src/components/settings/settings/EditSettingsForm.js",
32 "start": {
33 "line": 25,
34 "column": 14
35 },
36 "end": {
37 "line": 28,
25 "column": 3 38 "column": 3
26 } 39 }
27 }, 40 },
@@ -30,11 +43,11 @@
30 "defaultMessage": "!!!Language", 43 "defaultMessage": "!!!Language",
31 "file": "src/components/settings/settings/EditSettingsForm.js", 44 "file": "src/components/settings/settings/EditSettingsForm.js",
32 "start": { 45 "start": {
33 "line": 24, 46 "line": 29,
34 "column": 20 47 "column": 20
35 }, 48 },
36 "end": { 49 "end": {
37 "line": 27, 50 "line": 32,
38 "column": 3 51 "column": 3
39 } 52 }
40 }, 53 },
@@ -43,11 +56,11 @@
43 "defaultMessage": "!!!Updates", 56 "defaultMessage": "!!!Updates",
44 "file": "src/components/settings/settings/EditSettingsForm.js", 57 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": { 58 "start": {
46 "line": 28, 59 "line": 33,
47 "column": 19 60 "column": 19
48 }, 61 },
49 "end": { 62 "end": {
50 "line": 31, 63 "line": 36,
51 "column": 3 64 "column": 3
52 } 65 }
53 }, 66 },
@@ -56,11 +69,11 @@
56 "defaultMessage": "!!!Appearance", 69 "defaultMessage": "!!!Appearance",
57 "file": "src/components/settings/settings/EditSettingsForm.js", 70 "file": "src/components/settings/settings/EditSettingsForm.js",
58 "start": { 71 "start": {
59 "line": 32, 72 "line": 37,
60 "column": 22 73 "column": 22
61 }, 74 },
62 "end": { 75 "end": {
63 "line": 35, 76 "line": 40,
64 "column": 3 77 "column": 3
65 } 78 }
66 }, 79 },
@@ -69,24 +82,24 @@
69 "defaultMessage": "!!!Advanced", 82 "defaultMessage": "!!!Advanced",
70 "file": "src/components/settings/settings/EditSettingsForm.js", 83 "file": "src/components/settings/settings/EditSettingsForm.js",
71 "start": { 84 "start": {
72 "line": 36, 85 "line": 41,
73 "column": 20 86 "column": 20
74 }, 87 },
75 "end": { 88 "end": {
76 "line": 39, 89 "line": 44,
77 "column": 3 90 "column": 3
78 } 91 }
79 }, 92 },
80 { 93 {
81 "id": "settings.app.translationHelp", 94 "id": "settings.app.translationHelp",
82 "defaultMessage": "!!!Help us to translate Franz into your language.", 95 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
83 "file": "src/components/settings/settings/EditSettingsForm.js", 96 "file": "src/components/settings/settings/EditSettingsForm.js",
84 "start": { 97 "start": {
85 "line": 40, 98 "line": 45,
86 "column": 19 99 "column": 19
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 43, 102 "line": 48,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,24 +108,24 @@
95 "defaultMessage": "!!!Cache", 108 "defaultMessage": "!!!Cache",
96 "file": "src/components/settings/settings/EditSettingsForm.js", 109 "file": "src/components/settings/settings/EditSettingsForm.js",
97 "start": { 110 "start": {
98 "line": 44, 111 "line": 49,
99 "column": 20 112 "column": 20
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 47, 115 "line": 52,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
106 { 119 {
107 "id": "settings.app.cacheInfo", 120 "id": "settings.app.cacheInfo",
108 "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", 121 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
109 "file": "src/components/settings/settings/EditSettingsForm.js", 122 "file": "src/components/settings/settings/EditSettingsForm.js",
110 "start": { 123 "start": {
111 "line": 48, 124 "line": 53,
112 "column": 13 125 "column": 13
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 51, 128 "line": 56,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Clear cache", 134 "defaultMessage": "!!!Clear cache",
122 "file": "src/components/settings/settings/EditSettingsForm.js", 135 "file": "src/components/settings/settings/EditSettingsForm.js",
123 "start": { 136 "start": {
124 "line": 52, 137 "line": 57,
125 "column": 23 138 "column": 23
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 55, 141 "line": 60,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Check for updates", 147 "defaultMessage": "!!!Check for updates",
135 "file": "src/components/settings/settings/EditSettingsForm.js", 148 "file": "src/components/settings/settings/EditSettingsForm.js",
136 "start": { 149 "start": {
137 "line": 56, 150 "line": 61,
138 "column": 25 151 "column": 25
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 59, 154 "line": 64,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Restart & install update", 160 "defaultMessage": "!!!Restart & install update",
148 "file": "src/components/settings/settings/EditSettingsForm.js", 161 "file": "src/components/settings/settings/EditSettingsForm.js",
149 "start": { 162 "start": {
150 "line": 60, 163 "line": 65,
151 "column": 23 164 "column": 23
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 63, 167 "line": 68,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Is searching for update", 173 "defaultMessage": "!!!Is searching for update",
161 "file": "src/components/settings/settings/EditSettingsForm.js", 174 "file": "src/components/settings/settings/EditSettingsForm.js",
162 "start": { 175 "start": {
163 "line": 64, 176 "line": 69,
164 "column": 25 177 "column": 25
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 67, 180 "line": 72,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Update available, downloading...", 186 "defaultMessage": "!!!Update available, downloading...",
174 "file": "src/components/settings/settings/EditSettingsForm.js", 187 "file": "src/components/settings/settings/EditSettingsForm.js",
175 "start": { 188 "start": {
176 "line": 68, 189 "line": 73,
177 "column": 25 190 "column": 25
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 71, 193 "line": 76,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!You are using the latest version of Franz", 199 "defaultMessage": "!!!You are using the latest version of Franz",
187 "file": "src/components/settings/settings/EditSettingsForm.js", 200 "file": "src/components/settings/settings/EditSettingsForm.js",
188 "start": { 201 "start": {
189 "line": 72, 202 "line": 77,
190 "column": 24 203 "column": 24
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 75, 206 "line": 80,
194 "column": 3 207 "column": 3
195 } 208 }
196 }, 209 },
@@ -199,11 +212,11 @@
199 "defaultMessage": "!!!Current version:", 212 "defaultMessage": "!!!Current version:",
200 "file": "src/components/settings/settings/EditSettingsForm.js", 213 "file": "src/components/settings/settings/EditSettingsForm.js",
201 "start": { 214 "start": {
202 "line": 76, 215 "line": 81,
203 "column": 18 216 "column": 18
204 }, 217 },
205 "end": { 218 "end": {
206 "line": 79, 219 "line": 84,
207 "column": 3 220 "column": 3
208 } 221 }
209 }, 222 },
@@ -212,11 +225,11 @@
212 "defaultMessage": "!!!Changes require restart", 225 "defaultMessage": "!!!Changes require restart",
213 "file": "src/components/settings/settings/EditSettingsForm.js", 226 "file": "src/components/settings/settings/EditSettingsForm.js",
214 "start": { 227 "start": {
215 "line": 80, 228 "line": 85,
216 "column": 29 229 "column": 29
217 }, 230 },
218 "end": { 231 "end": {
219 "line": 83, 232 "line": 88,
220 "column": 3 233 "column": 3
221 } 234 }
222 }, 235 },
@@ -225,11 +238,11 @@
225 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 238 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
226 "file": "src/components/settings/settings/EditSettingsForm.js", 239 "file": "src/components/settings/settings/EditSettingsForm.js",
227 "start": { 240 "start": {
228 "line": 84, 241 "line": 89,
229 "column": 22 242 "column": 22
230 }, 243 },
231 "end": { 244 "end": {
232 "line": 87, 245 "line": 92,
233 "column": 3 246 "column": 3
234 } 247 }
235 } 248 }
diff --git a/src/i18n/messages/src/components/settings/team/TeamDashboard.json b/src/i18n/messages/src/components/settings/team/TeamDashboard.json
index 0c33fee5f..80adadb67 100644
--- a/src/i18n/messages/src/components/settings/team/TeamDashboard.json
+++ b/src/i18n/messages/src/components/settings/team/TeamDashboard.json
@@ -14,7 +14,7 @@
14 }, 14 },
15 { 15 {
16 "id": "settings.team.contentHeadline", 16 "id": "settings.team.contentHeadline",
17 "defaultMessage": "!!!Franz for Teams", 17 "defaultMessage": "!!!Ferdi for Teams",
18 "file": "src/components/settings/team/TeamDashboard.js", 18 "file": "src/components/settings/team/TeamDashboard.js",
19 "start": { 19 "start": {
20 "line": 21, 20 "line": 21,
@@ -40,7 +40,7 @@
40 }, 40 },
41 { 41 {
42 "id": "settings.team.copy", 42 "id": "settings.team.copy",
43 "defaultMessage": "!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 43 "defaultMessage": "!!!Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
44 "file": "src/components/settings/team/TeamDashboard.js", 44 "file": "src/components/settings/team/TeamDashboard.js",
45 "start": { 45 "start": {
46 "line": 29, 46 "line": 29,
diff --git a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json
index 0cde4cee5..582d546fa 100644
--- a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json
+++ b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Upgrade account", 4 "defaultMessage": "!!!Upgrade account",
5 "file": "src/components/ui/PremiumFeatureContainer/index.js", 5 "file": "src/components/ui/PremiumFeatureContainer/index.js",
6 "start": { 6 "start": {
7 "line": 16, 7 "line": 14,
8 "column": 10 8 "column": 10
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 19, 11 "line": 17,
12 "column": 3 12 "column": 3
13 } 13 }
14 } 14 }
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index 2b666e7e9..f802893e8 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "settings.app.form.autoLaunchOnStart", 3 "id": "settings.app.form.autoLaunchOnStart",
4 "defaultMessage": "!!!Launch Franz on start", 4 "defaultMessage": "!!!Launch Ferdi on start",
5 "file": "src/containers/settings/EditSettingsScreen.js", 5 "file": "src/containers/settings/EditSettingsScreen.js",
6 "start": { 6 "start": {
7 "line": 24, 7 "line": 24,
@@ -27,7 +27,7 @@
27 }, 27 },
28 { 28 {
29 "id": "settings.app.form.runInBackground", 29 "id": "settings.app.form.runInBackground",
30 "defaultMessage": "!!!Keep Franz in background when closing the window", 30 "defaultMessage": "!!!Keep Ferdi in background when closing the window",
31 "file": "src/containers/settings/EditSettingsScreen.js", 31 "file": "src/containers/settings/EditSettingsScreen.js",
32 "start": { 32 "start": {
33 "line": 32, 33 "line": 32,
@@ -40,7 +40,7 @@
40 }, 40 },
41 { 41 {
42 "id": "settings.app.form.enableSystemTray", 42 "id": "settings.app.form.enableSystemTray",
43 "defaultMessage": "!!!Show Franz in system tray", 43 "defaultMessage": "!!!Show Ferdi in system tray",
44 "file": "src/containers/settings/EditSettingsScreen.js", 44 "file": "src/containers/settings/EditSettingsScreen.js",
45 "start": { 45 "start": {
46 "line": 36, 46 "line": 36,
@@ -53,7 +53,7 @@
53 }, 53 },
54 { 54 {
55 "id": "settings.app.form.minimizeToSystemTray", 55 "id": "settings.app.form.minimizeToSystemTray",
56 "defaultMessage": "!!!Minimize Franz to system tray", 56 "defaultMessage": "!!!Minimize Ferdi to system tray",
57 "file": "src/containers/settings/EditSettingsScreen.js", 57 "file": "src/containers/settings/EditSettingsScreen.js",
58 "start": { 58 "start": {
59 "line": 40, 59 "line": 40,
@@ -65,6 +65,19 @@
65 } 65 }
66 }, 66 },
67 { 67 {
68 "id": "settings.app.form.server",
69 "defaultMessage": "!!!Server",
70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": {
72 "line": 44,
73 "column": 10
74 },
75 "end": {
76 "line": 47,
77 "column": 3
78 }
79 },
80 {
68 "id": "settings.app.form.language", 81 "id": "settings.app.form.language",
69 "defaultMessage": "!!!Language", 82 "defaultMessage": "!!!Language",
70 "file": "src/containers/settings/EditSettingsScreen.js", 83 "file": "src/containers/settings/EditSettingsScreen.js",
diff --git a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json
index eb1b66916..ba8b624a1 100644
--- a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json
+++ b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json
@@ -1,14 +1,14 @@
1[ 1[
2 { 2 {
3 "id": "feature.announcements.changelog.headline", 3 "id": "feature.announcements.changelog.headline",
4 "defaultMessage": "!!!Changes in Franz {version}", 4 "defaultMessage": "!!!Changes in Ferdi {version}",
5 "file": "src/features/announcements/components/AnnouncementScreen.js", 5 "file": "src/features/announcements/components/AnnouncementScreen.js",
6 "start": { 6 "start": {
7 "line": 20, 7 "line": 19,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 23, 11 "line": 22,
12 "column": 3 12 "column": 3
13 } 13 }
14 } 14 }
diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json
index 0d345a47b..6fe8b1334 100644
--- a/src/i18n/messages/src/features/delayApp/Component.json
+++ b/src/i18n/messages/src/features/delayApp/Component.json
@@ -53,7 +53,7 @@
53 }, 53 },
54 { 54 {
55 "id": "feature.delayApp.text", 55 "id": "feature.delayApp.text",
56 "defaultMessage": "!!!Franz will continue in {seconds} seconds.", 56 "defaultMessage": "!!!Ferdi will continue in {seconds} seconds.",
57 "file": "src/features/delayApp/Component.js", 57 "file": "src/features/delayApp/Component.js",
58 "start": { 58 "start": {
59 "line": 33, 59 "line": 33,
diff --git a/src/i18n/messages/src/features/shareFranz/Component.json b/src/i18n/messages/src/features/shareFranz/Component.json
index 72150f2b0..6e3e9ad19 100644
--- a/src/i18n/messages/src/features/shareFranz/Component.json
+++ b/src/i18n/messages/src/features/shareFranz/Component.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "feature.shareFranz.headline", 3 "id": "feature.shareFranz.headline",
4 "defaultMessage": "!!!Franz is better together!", 4 "defaultMessage": "!!!Ferdi is better together!",
5 "file": "src/features/shareFranz/Component.js", 5 "file": "src/features/shareFranz/Component.js",
6 "start": { 6 "start": {
7 "line": 18, 7 "line": 18,
@@ -14,7 +14,7 @@
14 }, 14 },
15 { 15 {
16 "id": "feature.shareFranz.text", 16 "id": "feature.shareFranz.text",
17 "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", 17 "defaultMessage": "!!!Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
18 "file": "src/features/shareFranz/Component.js", 18 "file": "src/features/shareFranz/Component.js",
19 "start": { 19 "start": {
20 "line": 22, 20 "line": 22,
diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
index f62bac42c..1aabfb520 100644
--- a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
+++ b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Create workspace", 4 "defaultMessage": "!!!Create workspace",
5 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 5 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
6 "start": { 6 "start": {
7 "line": 13, 7 "line": 12,
8 "column": 16 8 "column": 16
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 16, 11 "line": 15,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Name", 17 "defaultMessage": "!!!Name",
18 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 18 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
19 "start": { 19 "start": {
20 "line": 17, 20 "line": 16,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 20, 24 "line": 19,
25 "column": 3 25 "column": 3
26 } 26 }
27 } 27 }
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
index 20ed99f8d..61abf8ba0 100644
--- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
+++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Delete workspace", 4 "defaultMessage": "!!!Delete workspace",
5 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 5 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
6 "start": { 6 "start": {
7 "line": 19, 7 "line": 17,
8 "column": 16 8 "column": 16
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 22, 11 "line": 20,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Save workspace", 17 "defaultMessage": "!!!Save workspace",
18 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 18 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
19 "start": { 19 "start": {
20 "line": 23, 20 "line": 21,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 26, 24 "line": 24,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Name", 30 "defaultMessage": "!!!Name",
31 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 31 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
32 "start": { 32 "start": {
33 "line": 27, 33 "line": 25,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 30, 37 "line": 28,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Your workspaces", 43 "defaultMessage": "!!!Your workspaces",
44 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 44 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
45 "start": { 45 "start": {
46 "line": 31, 46 "line": 29,
47 "column": 18 47 "column": 18
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 34, 50 "line": 32,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Services in this Workspace", 56 "defaultMessage": "!!!Services in this Workspace",
57 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 57 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
58 "start": { 58 "start": {
59 "line": 35, 59 "line": 33,
60 "column": 31 60 "column": 31
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 38, 63 "line": 36,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!You haven't added any services yet.", 69 "defaultMessage": "!!!You haven't added any services yet.",
70 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 70 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
71 "start": { 71 "start": {
72 "line": 39, 72 "line": 37,
73 "column": 19 73 "column": 19
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 42, 76 "line": 40,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Discover services", 82 "defaultMessage": "!!!Discover services",
83 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 83 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
84 "start": { 84 "start": {
85 "line": 43, 85 "line": 41,
86 "column": 20 86 "column": 20
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 46, 89 "line": 44,
90 "column": 3 90 "column": 3
91 } 91 }
92 } 92 }
diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json
index 7eb4fab50..4111ba760 100644
--- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json
+++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json
@@ -92,7 +92,7 @@
92 }, 92 },
93 { 93 {
94 "id": "settings.workspaces.workspaceFeatureHeadline", 94 "id": "settings.workspaces.workspaceFeatureHeadline",
95 "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", 95 "defaultMessage": "!!!Less is More: Introducing Ferdi Workspaces",
96 "file": "src/features/workspaces/components/WorkspacesDashboard.js", 96 "file": "src/features/workspaces/components/WorkspacesDashboard.js",
97 "start": { 97 "start": {
98 "line": 47, 98 "line": 47,
diff --git a/src/i18n/messages/src/i18n/globalMessages.json b/src/i18n/messages/src/i18n/globalMessages.json
index f4fd5b8b0..903de64cb 100644
--- a/src/i18n/messages/src/i18n/globalMessages.json
+++ b/src/i18n/messages/src/i18n/globalMessages.json
@@ -1,7 +1,7 @@
1[ 1[
2 { 2 {
3 "id": "global.api.unhealthy", 3 "id": "global.api.unhealthy",
4 "defaultMessage": "!!!Can't connect to Franz Online Services", 4 "defaultMessage": "!!!Can't connect to Ferdi Online Services",
5 "file": "src/i18n/globalMessages.js", 5 "file": "src/i18n/globalMessages.js",
6 "start": { 6 "start": {
7 "line": 4, 7 "line": 4,
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index cee46608c..43354bfca 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -404,7 +404,7 @@
404 }, 404 },
405 { 405 {
406 "id": "menu.help.debugInfoCopiedHeadline", 406 "id": "menu.help.debugInfoCopiedHeadline",
407 "defaultMessage": "!!!Franz Debug Information", 407 "defaultMessage": "!!!Ferdi Debug Information",
408 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
409 "start": { 409 "start": {
410 "line": 142, 410 "line": 142,
diff --git a/src/index.js b/src/index.js
index d9d51fd5b..839f607f6 100644
--- a/src/index.js
+++ b/src/index.js
@@ -96,7 +96,7 @@ if (!gotTheLock) {
96 } else if (argv.includes('--quit')) { 96 } else if (argv.includes('--quit')) {
97 // Needs to be delayed to not interfere with mainWindow.restore(); 97 // Needs to be delayed to not interfere with mainWindow.restore();
98 setTimeout(() => { 98 setTimeout(() => {
99 debug('Quitting Franz via Task'); 99 debug('Quitting Ferdi via Task');
100 app.quit(); 100 app.quit();
101 }, 1); 101 }, 1);
102 } 102 }
@@ -148,7 +148,7 @@ const createWindow = () => {
148 minHeight: 500, 148 minHeight: 500,
149 titleBarStyle: isMac ? 'hidden' : '', 149 titleBarStyle: isMac ? 'hidden' : '',
150 frame: isLinux, 150 frame: isLinux,
151 backgroundColor: !settings.get('darkMode') ? '#3498db' : '#1E1E1E', 151 backgroundColor: !settings.get('darkMode') ? '#7367F0' : '#1E1E1E',
152 webPreferences: { 152 webPreferences: {
153 nodeIntegration: true, 153 nodeIntegration: true,
154 webviewTag: true, 154 webviewTag: true,
@@ -158,7 +158,7 @@ const createWindow = () => {
158 mainWindow.webContents.on('did-finish-load', () => { 158 mainWindow.webContents.on('did-finish-load', () => {
159 const fns = onDidLoadFns; 159 const fns = onDidLoadFns;
160 onDidLoadFns = null; 160 onDidLoadFns = null;
161 for (const fn of fns) { 161 for (const fn of fns) { // eslint-disable-line no-unused-vars
162 fn(mainWindow); 162 fn(mainWindow);
163 } 163 }
164 }); 164 });
@@ -281,7 +281,7 @@ const createWindow = () => {
281// https://electronjs.org/docs/api/chrome-command-line-switches 281// https://electronjs.org/docs/api/chrome-command-line-switches
282// used for Kerberos support 282// used for Kerberos support
283// Usage e.g. MACOS 283// Usage e.g. MACOS
284// $ Franz.app/Contents/MacOS/Franz --auth-server-whitelist *.mydomain.com --auth-negotiate-delegate-whitelist *.mydomain.com 284// $ Franz.app/Contents/MacOS/Ferdi --auth-server-whitelist *.mydomain.com --auth-negotiate-delegate-whitelist *.mydomain.com
285const argv = require('minimist')(process.argv.slice(1)); 285const argv = require('minimist')(process.argv.slice(1));
286 286
287if (argv['auth-server-whitelist']) { 287if (argv['auth-server-whitelist']) {
@@ -296,10 +296,10 @@ if (argv['auth-negotiate-delegate-whitelist']) {
296// Some APIs can only be used after this event occurs. 296// Some APIs can only be used after this event occurs.
297app.on('ready', () => { 297app.on('ready', () => {
298 // Register App URL 298 // Register App URL
299 app.setAsDefaultProtocolClient('franz'); 299 app.setAsDefaultProtocolClient('ferdi');
300 300
301 if (isDevMode) { 301 if (isDevMode) {
302 app.setAsDefaultProtocolClient('franz-dev'); 302 app.setAsDefaultProtocolClient('ferdi-dev');
303 } 303 }
304 304
305 if (process.platform === 'win32') { 305 if (process.platform === 'win32') {
@@ -308,13 +308,13 @@ app.on('ready', () => {
308 arguments: `${isDevMode ? `${__dirname} ` : ''}--reset-window`, 308 arguments: `${isDevMode ? `${__dirname} ` : ''}--reset-window`,
309 iconPath: asarPath(path.join(isDevMode ? `${__dirname}../src/` : __dirname, 'assets/images/taskbar/win32/display.ico')), 309 iconPath: asarPath(path.join(isDevMode ? `${__dirname}../src/` : __dirname, 'assets/images/taskbar/win32/display.ico')),
310 iconIndex: 0, 310 iconIndex: 0,
311 title: 'Move Franz to Current Display', 311 title: 'Move Ferdi to Current Display',
312 description: 'Restore the position and size of Franz', 312 description: 'Restore the position and size of Ferdi',
313 }, { 313 }, {
314 program: process.execPath, 314 program: process.execPath,
315 arguments: `${isDevMode ? `${__dirname} ` : ''}--quit`, 315 arguments: `${isDevMode ? `${__dirname} ` : ''}--quit`,
316 iconIndex: 0, 316 iconIndex: 0,
317 title: 'Quit Franz', 317 title: 'Quit Ferdi',
318 }]); 318 }]);
319 } 319 }
320 320
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 81efaf18f..13b31bcad 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -3,9 +3,8 @@ import { observable, autorun } from 'mobx';
3import { defineMessages } from 'react-intl'; 3import { defineMessages } from 'react-intl';
4 4
5import { isMac, ctrlKey, cmdKey } from '../environment'; 5import { isMac, ctrlKey, cmdKey } from '../environment';
6import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../features/workspaces/index'; 6import { workspaceStore } from '../features/workspaces/index';
7import { workspaceActions } from '../features/workspaces/actions'; 7import { workspaceActions } from '../features/workspaces/actions';
8import { gaEvent } from './analytics';
9import { announcementActions } from '../features/announcements/actions'; 8import { announcementActions } from '../features/announcements/actions';
10import { announcementsStore } from '../features/announcements'; 9import { announcementsStore } from '../features/announcements';
11import TodoStore from '../features/todos/store'; 10import TodoStore from '../features/todos/store';
@@ -141,7 +140,7 @@ const menuItems = defineMessages({
141 }, 140 },
142 debugInfoCopiedHeadline: { 141 debugInfoCopiedHeadline: {
143 id: 'menu.help.debugInfoCopiedHeadline', 142 id: 'menu.help.debugInfoCopiedHeadline',
144 defaultMessage: '!!!Franz Debug Information', 143 defaultMessage: '!!!Ferdi Debug Information',
145 }, 144 },
146 debugInfoCopiedBody: { 145 debugInfoCopiedBody: {
147 id: 'menu.help.debugInfoCopiedBody', 146 id: 'menu.help.debugInfoCopiedBody',
@@ -262,7 +261,7 @@ const menuItems = defineMessages({
262}); 261});
263 262
264function getActiveWebview() { 263function getActiveWebview() {
265 return window.franz.stores.services.active.webview; 264 return window.ferdi.stores.services.active.webview;
266} 265}
267 266
268const _templateFactory = intl => [ 267const _templateFactory = intl => [
@@ -398,7 +397,7 @@ const _templateFactory = intl => [
398 click: () => { 397 click: () => {
399 announcementActions.show(); 398 announcementActions.show();
400 }, 399 },
401 visible: window.franz.stores.user.isLoggedIn && announcementsStore.areNewsAvailable, 400 visible: window.ferdi.stores.user.isLoggedIn && announcementsStore.areNewsAvailable,
402 }, 401 },
403 { 402 {
404 type: 'separator', 403 type: 'separator',
@@ -620,11 +619,11 @@ export default class FranzMenu {
620 // need to clone object so we don't modify computed (cached) object 619 // need to clone object so we don't modify computed (cached) object
621 const serviceTpl = Object.assign([], this.serviceTpl()); 620 const serviceTpl = Object.assign([], this.serviceTpl());
622 621
623 if (window.franz === undefined) { 622 if (window.ferdi === undefined) {
624 return; 623 return;
625 } 624 }
626 625
627 const { intl } = window.franz; 626 const { intl } = window.ferdi;
628 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl); 627 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl);
629 628
630 tpl[1].submenu.push({ 629 tpl[1].submenu.push({
@@ -821,7 +820,7 @@ export default class FranzMenu {
821 } 820 }
822 821
823 serviceTpl() { 822 serviceTpl() {
824 const { intl } = window.franz; 823 const { intl } = window.ferdi;
825 const { user, services, settings } = this.stores; 824 const { user, services, settings } = this.stores;
826 if (!user.isLoggedIn) return []; 825 if (!user.isLoggedIn) return [];
827 const menu = []; 826 const menu = [];
@@ -867,7 +866,7 @@ export default class FranzMenu {
867 866
868 workspacesMenu() { 867 workspacesMenu() {
869 const { workspaces, activeWorkspace, isWorkspaceDrawerOpen } = workspaceStore; 868 const { workspaces, activeWorkspace, isWorkspaceDrawerOpen } = workspaceStore;
870 const { intl } = window.franz; 869 const { intl } = window.ferdi;
871 const menu = []; 870 const menu = [];
872 871
873 // Add new workspace item: 872 // Add new workspace item:
@@ -889,7 +888,6 @@ export default class FranzMenu {
889 accelerator: `${cmdKey}+D`, 888 accelerator: `${cmdKey}+D`,
890 click: () => { 889 click: () => {
891 workspaceActions.toggleWorkspaceDrawer(); 890 workspaceActions.toggleWorkspaceDrawer();
892 gaEvent(GA_CATEGORY_WORKSPACES, 'toggleDrawer', 'menu');
893 }, 891 },
894 enabled: this.stores.user.isLoggedIn, 892 enabled: this.stores.user.isLoggedIn,
895 }, { 893 }, {
@@ -904,7 +902,6 @@ export default class FranzMenu {
904 checked: !activeWorkspace, 902 checked: !activeWorkspace,
905 click: () => { 903 click: () => {
906 workspaceActions.deactivate(); 904 workspaceActions.deactivate();
907 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'menu');
908 }, 905 },
909 }); 906 });
910 907
@@ -917,7 +914,6 @@ export default class FranzMenu {
917 checked: activeWorkspace ? workspace.id === activeWorkspace.id : false, 914 checked: activeWorkspace ? workspace.id === activeWorkspace.id : false,
918 click: () => { 915 click: () => {
919 workspaceActions.activate({ workspace }); 916 workspaceActions.activate({ workspace });
920 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'menu');
921 }, 917 },
922 })); 918 }));
923 } 919 }
@@ -951,7 +947,7 @@ export default class FranzMenu {
951 947
952 948
953 debugMenu() { 949 debugMenu() {
954 const { intl } = window.franz; 950 const { intl } = window.ferdi;
955 951
956 return { 952 return {
957 label: intl.formatMessage(menuItems.debugInfo), 953 label: intl.formatMessage(menuItems.debugInfo),
@@ -977,7 +973,7 @@ export default class FranzMenu {
977 return service.name; 973 return service.name;
978 } 974 }
979 975
980 let name = service.recipe.name; 976 let { name } = service.recipe;
981 977
982 if (service.team) { 978 if (service.team) {
983 name = `${name} (${service.team})`; 979 name = `${name} (${service.team})`;
diff --git a/src/lib/Tray.js b/src/lib/Tray.js
index 192e24796..90974de3f 100644
--- a/src/lib/Tray.js
+++ b/src/lib/Tray.js
@@ -20,7 +20,7 @@ export default class TrayIcon {
20 this.trayIcon = new Tray(this._getAsset('tray', INDICATOR_TRAY_PLAIN)); 20 this.trayIcon = new Tray(this._getAsset('tray', INDICATOR_TRAY_PLAIN));
21 const trayMenuTemplate = [ 21 const trayMenuTemplate = [
22 { 22 {
23 label: 'Show Franz', 23 label: 'Show Ferdi',
24 click() { 24 click() {
25 if (app.mainWindow.isMinimized()) { 25 if (app.mainWindow.isMinimized()) {
26 app.mainWindow.restore(); 26 app.mainWindow.restore();
@@ -29,7 +29,7 @@ export default class TrayIcon {
29 app.mainWindow.focus(); 29 app.mainWindow.focus();
30 }, 30 },
31 }, { 31 }, {
32 label: 'Quit Franz', 32 label: 'Quit Ferdi',
33 click() { 33 click() {
34 app.quit(); 34 app.quit();
35 }, 35 },
@@ -84,7 +84,7 @@ export default class TrayIcon {
84 } 84 }
85 85
86 _getAsset(type, asset) { 86 _getAsset(type, asset) {
87 let platform = process.platform; 87 let { platform } = process;
88 88
89 if (platform === 'darwin' && systemPreferences.isDarkMode()) { 89 if (platform === 'darwin' && systemPreferences.isDarkMode()) {
90 platform = `${platform}-dark`; 90 platform = `${platform}-dark`;
diff --git a/src/lib/analytics.js b/src/lib/analytics.js
deleted file mode 100644
index c305fdb00..000000000
--- a/src/lib/analytics.js
+++ /dev/null
@@ -1,55 +0,0 @@
1import { remote } from 'electron';
2import querystring from 'querystring';
3
4import { GA_ID, STATS_API } from '../config';
5import { isDevMode } from '../environment';
6
7const debug = require('debug')('Franz:Analytics');
8
9const { app } = remote;
10
11/* eslint-disable */
12(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
13(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
14m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
15})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
16/* eslint-enable */
17
18const GA_LOCAL_STORAGE_KEY = 'gaUid';
19
20ga('create', GA_ID, {
21 storage: 'none',
22 clientId: localStorage.getItem(GA_LOCAL_STORAGE_KEY),
23});
24
25ga((tracker) => {
26 localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
27});
28ga('set', 'checkProtocolTask', null);
29ga('set', 'version', app.getVersion());
30ga('send', 'App');
31
32export function gaPage(page) {
33 ga('send', 'pageview', page);
34 debug('GA track page', page);
35}
36
37export function gaEvent(category, action, label) {
38 ga('send', 'event', category, action, label);
39 debug('GA track event', category, action, label);
40}
41
42export function statsEvent(key, value) {
43 const params = {
44 key,
45 value: value || key,
46 platform: process.platform,
47 version: remote.app.getVersion(),
48 };
49
50 debug('Send Franz stats event', params);
51
52 if (!isDevMode) {
53 window.fetch(`${STATS_API}/event/?${querystring.stringify(params)}`);
54 }
55}
diff --git a/src/models/Recipe.js b/src/models/Recipe.js
index b0d60e75e..3f7299e34 100644
--- a/src/models/Recipe.js
+++ b/src/models/Recipe.js
@@ -42,7 +42,7 @@ export default class Recipe {
42 } 42 }
43 43
44 if (!data.id) { 44 if (!data.id) {
45 // Franz 4 recipes do not have an Id 45 // Ferdi 4 recipes do not have an Id
46 throw Error(`Recipe '${data.name}' requires Id`); 46 throw Error(`Recipe '${data.name}' requires Id`);
47 } 47 }
48 48
diff --git a/src/models/Service.js b/src/models/Service.js
index 848a84aa2..2303512af 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -177,11 +177,15 @@ export default class Service {
177 } 177 }
178 178
179 @computed get userAgent() { 179 @computed get userAgent() {
180 let userAgent = window.navigator.userAgent; 180 let { userAgent } = window.navigator;
181 if (typeof this.recipe.overrideUserAgent === 'function') { 181 if (typeof this.recipe.overrideUserAgent === 'function') {
182 userAgent = this.recipe.overrideUserAgent(); 182 userAgent = this.recipe.overrideUserAgent();
183 } 183 }
184 184
185 // Remove Ferdi as it can cause incompatabilities with services.
186 // This way, Ferdi will look like a normal Chrome instance
187 userAgent = userAgent.replace(/(Ferdi|Electron)([^\s]+\s)/g, '');
188
185 return userAgent; 189 return userAgent;
186 } 190 }
187 191
diff --git a/src/models/User.js b/src/models/User.js
index 0a2b1f62a..5a614efbe 100644
--- a/src/models/User.js
+++ b/src/models/User.js
@@ -20,11 +20,11 @@ export default class User {
20 20
21 @observable isSubscriptionOwner = false; 21 @observable isSubscriptionOwner = false;
22 22
23 @observable hasSubscription = false; 23 @observable hasSubscription = true;
24 24
25 @observable hadSubscription = false; 25 @observable hadSubscription = false;
26 26
27 @observable isPremium = false; 27 @observable isPremium = true;
28 28
29 @observable beta = false; 29 @observable beta = false;
30 30
@@ -50,7 +50,7 @@ export default class User {
50 this.lastname = data.lastname || this.lastname; 50 this.lastname = data.lastname || this.lastname;
51 this.organization = data.organization || this.organization; 51 this.organization = data.organization || this.organization;
52 this.accountType = data.accountType || this.accountType; 52 this.accountType = data.accountType || this.accountType;
53 this.isPremium = data.isPremium || this.isPremium; 53 this.isPremium = true;
54 this.beta = data.beta || this.beta; 54 this.beta = data.beta || this.beta;
55 this.donor = data.donor || this.donor; 55 this.donor = data.donor || this.donor;
56 this.isDonor = data.isDonor || this.isDonor; 56 this.isDonor = data.isDonor || this.isDonor;
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 315235ba4..61b63d52e 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -1,6 +1,6 @@
1import { remote, ipcRenderer, shell } from 'electron'; 1import { remote, ipcRenderer, shell } from 'electron';
2import { 2import {
3 action, computed, observable, reaction, 3 action, computed, observable,
4} from 'mobx'; 4} from 'mobx';
5import moment from 'moment'; 5import moment from 'moment';
6import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; 6import { getDoNotDisturb } from '@meetfranz/electron-notification-state';
@@ -17,7 +17,6 @@ import Request from './lib/Request';
17import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; 17import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config';
18import { isMac } from '../environment'; 18import { isMac } from '../environment';
19import locales from '../i18n/translations'; 19import locales from '../i18n/translations';
20import { gaEvent, gaPage, statsEvent } from '../lib/analytics';
21import { onVisibilityChange } from '../helpers/visibility-helper'; 20import { onVisibilityChange } from '../helpers/visibility-helper';
22import { getLocale } from '../helpers/i18n-helpers'; 21import { getLocale } from '../helpers/i18n-helpers';
23 22
@@ -54,6 +53,8 @@ export default class AppStore extends Store {
54 53
55 @observable isOnline = navigator.onLine; 54 @observable isOnline = navigator.onLine;
56 55
56 @observable authRequestFailed = false;
57
57 @observable timeOfflineStart; 58 @observable timeOfflineStart;
58 59
59 @observable updateStatus = null; 60 @observable updateStatus = null;
@@ -113,7 +114,7 @@ export default class AppStore extends Store {
113 114
114 this.isOnline = navigator.onLine; 115 this.isOnline = navigator.onLine;
115 116
116 // Check if Franz should launch on start 117 // Check if Ferdi should launch on start
117 // Needs to be delayed a bit 118 // Needs to be delayed a bit
118 this._autoStart(); 119 this._autoStart();
119 120
@@ -173,13 +174,6 @@ export default class AppStore extends Store {
173 174
174 debug('Window is visible/focused', isVisible); 175 debug('Window is visible/focused', isVisible);
175 }); 176 });
176
177 // analytics autorun
178 reaction(() => this.stores.router.location.pathname, (pathname) => {
179 gaPage(pathname);
180 });
181
182 statsEvent('app-start');
183 } 177 }
184 178
185 @computed get cacheSize() { 179 @computed get cacheSize() {
@@ -267,8 +261,6 @@ export default class AppStore extends Store {
267 } catch (err) { 261 } catch (err) {
268 console.warn(err); 262 console.warn(err);
269 } 263 }
270
271 gaEvent('App', enable ? 'enable autostart' : 'disable autostart');
272 } 264 }
273 265
274 @action _openExternalUrl({ url }) { 266 @action _openExternalUrl({ url }) {
@@ -278,8 +270,6 @@ export default class AppStore extends Store {
278 if (isValidExternalURL(url)) { 270 if (isValidExternalURL(url)) {
279 shell.openExternal(url); 271 shell.openExternal(url);
280 } 272 }
281
282 gaEvent('External URL', 'open', parsedUrl.host);
283 } 273 }
284 274
285 @action _checkForUpdates() { 275 @action _checkForUpdates() {
@@ -373,7 +363,7 @@ export default class AppStore extends Store {
373 } 363 }
374 364
375 _muteAppHandler() { 365 _muteAppHandler() {
376 const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; 366 const { showMessageBadgesEvenWhenMuted } = this.stores.ui;
377 367
378 if (!showMessageBadgesEvenWhenMuted) { 368 if (!showMessageBadgesEvenWhenMuted) {
379 this.actions.app.setBadge({ unreadDirectMessageCount: 0, unreadIndirectMessageCount: 0 }); 369 this.actions.app.setBadge({ unreadDirectMessageCount: 0, unreadIndirectMessageCount: 0 });
diff --git a/src/stores/GlobalErrorStore.js b/src/stores/GlobalErrorStore.js
index 7a85c2daa..8bdafb68c 100644
--- a/src/stores/GlobalErrorStore.js
+++ b/src/stores/GlobalErrorStore.js
@@ -24,9 +24,12 @@ export default class GlobalErrorStore extends Store {
24 this.response = {}; 24 this.response = {};
25 } 25 }
26 if (this.error.status === 401) { 26 if (this.error.status === 401) {
27 this.actions.user.logout({ serverLogout: true }); 27 window.ferdi.stores.app.authRequestFailed = true;
28 // this.actions.user.logout({ serverLogout: true });
28 } 29 }
29 } 30 }
31 } else {
32 window.ferdi.stores.app.authRequestFailed = false;
30 } 33 }
31 }); 34 });
32} 35}
diff --git a/src/stores/PaymentStore.js b/src/stores/PaymentStore.js
index d4de476c8..8579812ad 100644
--- a/src/stores/PaymentStore.js
+++ b/src/stores/PaymentStore.js
@@ -3,7 +3,6 @@ import { action, observable, computed } from 'mobx';
3import Store from './lib/Store'; 3import Store from './lib/Store';
4import CachedRequest from './lib/CachedRequest'; 4import CachedRequest from './lib/CachedRequest';
5import Request from './lib/Request'; 5import Request from './lib/Request';
6import { gaEvent } from '../lib/analytics';
7 6
8export default class PaymentStore extends Store { 7export default class PaymentStore extends Store {
9 @observable plansRequest = new CachedRequest(this.api.payment, 'plans'); 8 @observable plansRequest = new CachedRequest(this.api.payment, 'plans');
@@ -26,8 +25,6 @@ export default class PaymentStore extends Store {
26 @action _createHostedPage({ planId }) { 25 @action _createHostedPage({ planId }) {
27 const request = this.createHostedPageRequest.execute(planId); 26 const request = this.createHostedPageRequest.execute(planId);
28 27
29 gaEvent('Payment', 'createHostedPage', planId);
30
31 return request; 28 return request;
32 } 29 }
33} 30}
diff --git a/src/stores/RecipePreviewsStore.js b/src/stores/RecipePreviewsStore.js
index 382820d58..989e1124a 100644
--- a/src/stores/RecipePreviewsStore.js
+++ b/src/stores/RecipePreviewsStore.js
@@ -1,11 +1,8 @@
1import { action, computed, observable } from 'mobx'; 1import { action, computed, observable } from 'mobx';
2import { debounce } from 'lodash';
3import ms from 'ms';
4 2
5import Store from './lib/Store'; 3import Store from './lib/Store';
6import CachedRequest from './lib/CachedRequest'; 4import CachedRequest from './lib/CachedRequest';
7import Request from './lib/Request'; 5import Request from './lib/Request';
8import { gaEvent } from '../lib/analytics';
9 6
10export default class RecipePreviewsStore extends Store { 7export default class RecipePreviewsStore extends Store {
11 @observable allRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'all'); 8 @observable allRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'all');
@@ -41,13 +38,6 @@ export default class RecipePreviewsStore extends Store {
41 @action _search({ needle }) { 38 @action _search({ needle }) {
42 if (needle !== '') { 39 if (needle !== '') {
43 this.searchRecipePreviewsRequest.execute(needle); 40 this.searchRecipePreviewsRequest.execute(needle);
44
45 this._analyticsSearch(needle);
46 } 41 }
47 } 42 }
48
49 // Helper
50 _analyticsSearch = debounce((needle) => {
51 gaEvent('Recipe', 'search', needle);
52 }, ms('3s'));
53} 43}
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 2fc543192..876851a66 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -4,14 +4,13 @@ import {
4 computed, 4 computed,
5 observable, 5 observable,
6} from 'mobx'; 6} from 'mobx';
7import { debounce, remove } from 'lodash'; 7import { remove } from 'lodash';
8import ms from 'ms'; 8import ms from 'ms';
9 9
10import Store from './lib/Store'; 10import Store from './lib/Store';
11import Request from './lib/Request'; 11import Request from './lib/Request';
12import CachedRequest from './lib/CachedRequest'; 12import CachedRequest from './lib/CachedRequest';
13import { matchRoute } from '../helpers/routing-helpers'; 13import { matchRoute } from '../helpers/routing-helpers';
14import { gaEvent, statsEvent } from '../lib/analytics';
15import { workspaceStore } from '../features/workspaces'; 14import { workspaceStore } from '../features/workspaces';
16import { serviceLimitStore } from '../features/serviceLimit'; 15import { serviceLimitStore } from '../features/serviceLimit';
17import { RESTRICTION_TYPES } from '../models/Service'; 16import { RESTRICTION_TYPES } from '../models/Service';
@@ -181,7 +180,6 @@ export default class ServicesStore extends Store {
181 180
182 if (redirect) { 181 if (redirect) {
183 this.stores.router.push('/settings/recipes'); 182 this.stores.router.push('/settings/recipes');
184 gaEvent('Service', 'create', recipeId);
185 } 183 }
186 } 184 }
187 185
@@ -258,7 +256,6 @@ export default class ServicesStore extends Store {
258 256
259 if (redirect) { 257 if (redirect) {
260 this.stores.router.push('/settings/services'); 258 this.stores.router.push('/settings/services');
261 gaEvent('Service', 'update', service.recipe.id);
262 } 259 }
263 } 260 }
264 261
@@ -273,19 +270,14 @@ export default class ServicesStore extends Store {
273 remove(result, c => c.id === serviceId); 270 remove(result, c => c.id === serviceId);
274 }); 271 });
275 272
276 const service = this.one(serviceId);
277
278 await request._promise; 273 await request._promise;
279 this.actionStatus = request.result.status; 274 this.actionStatus = request.result.status;
280
281 gaEvent('Service', 'delete', service.recipe.id);
282 } 275 }
283 276
284 @action async _clearCache({ serviceId }) { 277 @action async _clearCache({ serviceId }) {
285 this.clearCacheRequest.reset(); 278 this.clearCacheRequest.reset();
286 const request = this.clearCacheRequest.execute(serviceId); 279 const request = this.clearCacheRequest.execute(serviceId);
287 await request._promise; 280 await request._promise;
288 gaEvent('Service', 'clear cache');
289 } 281 }
290 282
291 @action _setActive({ serviceId, keepActiveRoute }) { 283 @action _setActive({ serviceId, keepActiveRoute }) {
@@ -297,8 +289,6 @@ export default class ServicesStore extends Store {
297 }); 289 });
298 service.isActive = true; 290 service.isActive = true;
299 291
300 statsEvent('activate-service', service.recipe.id);
301
302 this._focusActiveService(); 292 this._focusActiveService();
303 } 293 }
304 294
@@ -401,7 +391,7 @@ export default class ServicesStore extends Store {
401 }, 391 },
402 }); 392 });
403 } else if (channel === 'notification') { 393 } else if (channel === 'notification') {
404 const options = args[0].options; 394 const { options } = args[0];
405 if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.app.isAppMuted) { 395 if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.app.isAppMuted) {
406 Object.assign(options, { 396 Object.assign(options, {
407 silent: true, 397 silent: true,
@@ -528,7 +518,7 @@ export default class ServicesStore extends Store {
528 } 518 }
529 519
530 @action _reorderService({ oldIndex, newIndex }) { 520 @action _reorderService({ oldIndex, newIndex }) {
531 const showDisabledServices = this.stores.settings.all.app.showDisabledServices; 521 const { showDisabledServices } = this.stores.settings.all.app;
532 const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); 522 const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]);
533 const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); 523 const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]);
534 524
@@ -547,8 +537,6 @@ export default class ServicesStore extends Store {
547 service.order = services[s.id]; 537 service.order = services[s.id];
548 }); 538 });
549 }); 539 });
550
551 this._reorderAnalytics();
552 } 540 }
553 541
554 @action _toggleNotifications({ serviceId }) { 542 @action _toggleNotifications({ serviceId }) {
@@ -624,8 +612,8 @@ export default class ServicesStore extends Store {
624 } 612 }
625 613
626 _getUnreadMessageCountReaction() { 614 _getUnreadMessageCountReaction() {
627 const showMessageBadgeWhenMuted = this.stores.settings.all.app.showMessageBadgeWhenMuted; 615 const { showMessageBadgeWhenMuted } = this.stores.settings.all.app;
628 const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; 616 const { showMessageBadgesEvenWhenMuted } = this.stores.ui;
629 617
630 const unreadDirectMessageCount = this.allDisplayed 618 const unreadDirectMessageCount = this.allDisplayed
631 .filter(s => (showMessageBadgeWhenMuted || s.isNotificationEnabled) && showMessageBadgesEvenWhenMuted && s.isBadgeEnabled) 619 .filter(s => (showMessageBadgeWhenMuted || s.isNotificationEnabled) && showMessageBadgesEvenWhenMuted && s.isBadgeEnabled)
@@ -750,10 +738,6 @@ export default class ServicesStore extends Store {
750 } 738 }
751 } 739 }
752 740
753 _reorderAnalytics = debounce(() => {
754 gaEvent('Service', 'order');
755 }, ms('5s'));
756
757 _wrapIndex(index, delta, size) { 741 _wrapIndex(index, delta, size) {
758 return (((index + delta) % size) + size) % size; 742 return (((index + delta) % size) + size) % size;
759 } 743 }
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index a456195bf..bc01291d8 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -8,6 +8,7 @@ import Store from './lib/Store';
8import Request from './lib/Request'; 8import Request from './lib/Request';
9import CachedRequest from './lib/CachedRequest'; 9import CachedRequest from './lib/CachedRequest';
10import { getLocale } from '../helpers/i18n-helpers'; 10import { getLocale } from '../helpers/i18n-helpers';
11import { API } from '../environment';
11 12
12import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES } from '../config'; 13import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES } from '../config';
13import { SPELLCHECKER_LOCALES } from '../i18n/languages'; 14import { SPELLCHECKER_LOCALES } from '../i18n/languages';
@@ -147,6 +148,7 @@ export default class SettingsStore extends Store {
147 runInBackground: legacySettings.runInBackground, 148 runInBackground: legacySettings.runInBackground,
148 enableSystemTray: legacySettings.enableSystemTray, 149 enableSystemTray: legacySettings.enableSystemTray,
149 minimizeToSystemTray: legacySettings.minimizeToSystemTray, 150 minimizeToSystemTray: legacySettings.minimizeToSystemTray,
151 server: API,
150 isAppMuted: legacySettings.isAppMuted, 152 isAppMuted: legacySettings.isAppMuted,
151 enableGPUAcceleration: legacySettings.enableGPUAcceleration, 153 enableGPUAcceleration: legacySettings.enableGPUAcceleration,
152 showMessageBadgeWhenMuted: legacySettings.showMessageBadgeWhenMuted, 154 showMessageBadgeWhenMuted: legacySettings.showMessageBadgeWhenMuted,
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js
index b652098f9..e1d9672b6 100644
--- a/src/stores/UserStore.js
+++ b/src/stores/UserStore.js
@@ -8,7 +8,6 @@ import { isDevMode } from '../environment';
8import Store from './lib/Store'; 8import Store from './lib/Store';
9import Request from './lib/Request'; 9import Request from './lib/Request';
10import CachedRequest from './lib/CachedRequest'; 10import CachedRequest from './lib/CachedRequest';
11import { gaEvent } from '../lib/analytics';
12import { sleep } from '../helpers/async-helpers'; 11import { sleep } from '../helpers/async-helpers';
13import { getPlan } from '../helpers/plan-helpers'; 12import { getPlan } from '../helpers/plan-helpers';
14import { PLANS } from '../config'; 13import { PLANS } from '../config';
@@ -94,7 +93,7 @@ export default class UserStore extends Store {
94 93
95 // Reactions 94 // Reactions
96 this.registerReactions([ 95 this.registerReactions([
97 this._requireAuthenticatedUser, 96 // this._requireAuthenticatedUser,
98 this._getUserData.bind(this), 97 this._getUserData.bind(this),
99 this._resetTrialActivationState.bind(this), 98 this._resetTrialActivationState.bind(this),
100 ]); 99 ]);
@@ -190,16 +189,12 @@ export default class UserStore extends Store {
190 this._setUserData(authToken); 189 this._setUserData(authToken);
191 190
192 this.stores.router.push('/'); 191 this.stores.router.push('/');
193
194 gaEvent('User', 'login');
195 } 192 }
196 193
197 @action _tokenLogin(authToken) { 194 @action _tokenLogin(authToken) {
198 this._setUserData(authToken); 195 this._setUserData(authToken);
199 196
200 this.stores.router.push('/'); 197 this.stores.router.push('/');
201
202 gaEvent('User', 'tokenLogin');
203 } 198 }
204 199
205 @action async _signup({ 200 @action async _signup({
@@ -215,13 +210,11 @@ export default class UserStore extends Store {
215 locale: this.stores.app.locale, 210 locale: this.stores.app.locale,
216 }); 211 });
217 212
218 this.hasCompletedSignup = false; 213 this.hasCompletedSignup = true;
219 214
220 this._setUserData(authToken); 215 this._setUserData(authToken);
221 216
222 this.stores.router.push(this.PRICING_ROUTE); 217 this.stores.router.push('/');
223
224 gaEvent('User', 'signup');
225 } 218 }
226 219
227 @action async _retrievePassword({ email }) { 220 @action async _retrievePassword({ email }) {
@@ -229,8 +222,6 @@ export default class UserStore extends Store {
229 222
230 await request._promise; 223 await request._promise;
231 this.actionStatus = request.result.status || []; 224 this.actionStatus = request.result.status || [];
232
233 gaEvent('User', 'retrievePassword');
234 } 225 }
235 226
236 @action async _activateTrial({ planId }) { 227 @action async _activateTrial({ planId }) {
@@ -246,9 +237,6 @@ export default class UserStore extends Store {
246 237
247 this.stores.features.featuresRequest.invalidate({ immediately: true }); 238 this.stores.features.featuresRequest.invalidate({ immediately: true });
248 this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); 239 this.stores.user.getUserInfoRequest.invalidate({ immediately: true });
249
250
251 gaEvent('User', 'activateTrial');
252 } 240 }
253 241
254 @action async _invite({ invites }) { 242 @action async _invite({ invites }) {
@@ -262,8 +250,6 @@ export default class UserStore extends Store {
262 if (this.stores.router.location.pathname.includes(this.INVITE_ROUTE)) { 250 if (this.stores.router.location.pathname.includes(this.INVITE_ROUTE)) {
263 this.stores.router.push('/'); 251 this.stores.router.push('/');
264 } 252 }
265
266 gaEvent('User', 'inviteUsers');
267 } 253 }
268 254
269 @action async _update({ userData }) { 255 @action async _update({ userData }) {
@@ -273,8 +259,6 @@ export default class UserStore extends Store {
273 259
274 this.getUserInfoRequest.patch(() => response.data); 260 this.getUserInfoRequest.patch(() => response.data);
275 this.actionStatus = response.status || []; 261 this.actionStatus = response.status || [];
276
277 gaEvent('User', 'update');
278 } 262 }
279 263
280 @action _resetStatus() { 264 @action _resetStatus() {
@@ -297,12 +281,12 @@ export default class UserStore extends Store {
297 const recipes = services.filter((obj, pos, arr) => arr.map(mapObj => mapObj.recipe.id).indexOf(obj.recipe.id) === pos).map(s => s.recipe.id); 281 const recipes = services.filter((obj, pos, arr) => arr.map(mapObj => mapObj.recipe.id).indexOf(obj.recipe.id) === pos).map(s => s.recipe.id);
298 282
299 // Install recipes 283 // Install recipes
300 for (const recipe of recipes) { 284 for (const recipe of recipes) { // eslint-disable-line no-unused-vars
301 // eslint-disable-next-line 285 // eslint-disable-next-line
302 await this.stores.recipes._install({ recipeId: recipe }); 286 await this.stores.recipes._install({ recipeId: recipe });
303 } 287 }
304 288
305 for (const service of services) { 289 for (const service of services) { // eslint-disable-line no-unused-vars
306 this.actions.service.createFromLegacyService({ 290 this.actions.service.createFromLegacyService({
307 data: service, 291 data: service,
308 }); 292 });
diff --git a/src/styles/auth.scss b/src/styles/auth.scss
index 154a71a36..44c752677 100644
--- a/src/styles/auth.scss
+++ b/src/styles/auth.scss
@@ -27,7 +27,7 @@
27} 27}
28 28
29.auth { 29.auth {
30 background: $theme-brand-primary; 30 background: $theme-brand-gradient;
31 display: flex; 31 display: flex;
32 justify-content: center; 32 justify-content: center;
33 33
diff --git a/src/styles/colors.scss b/src/styles/colors.scss
index 80c2fb633..d89d42b9e 100644
--- a/src/styles/colors.scss
+++ b/src/styles/colors.scss
@@ -1,6 +1,7 @@
1@import "./type-helper"; 1@import "./type-helper";
2 2
3$theme-brand-primary: convert-rgb-string-to-color($raw-theme-brand-primary); 3$theme-brand-primary: convert-rgb-string-to-color($raw-theme-brand-primary);
4$theme-brand-gradient: linear-gradient( 135deg, #CE9FFC 10%, #7367F0 100%);
4$theme-brand-success: convert-rgb-string-to-color($raw-theme-brand-success); 5$theme-brand-success: convert-rgb-string-to-color($raw-theme-brand-success);
5$theme-brand-info: convert-rgb-string-to-color($raw-theme-brand-info); 6$theme-brand-info: convert-rgb-string-to-color($raw-theme-brand-info);
6$theme-brand-warning: convert-rgb-string-to-color($raw-theme-brand-warning); 7$theme-brand-warning: convert-rgb-string-to-color($raw-theme-brand-warning);
diff --git a/src/theme/default/legacy.js b/src/theme/default/legacy.js
index b676dc1d9..46847c60b 100644
--- a/src/theme/default/legacy.js
+++ b/src/theme/default/legacy.js
@@ -1,5 +1,5 @@
1/* legacy config, injected into sass */ 1/* legacy config, injected into sass */
2export const themeBrandPrimary = '#3498db'; 2export const themeBrandPrimary = '#7367F0';
3export const themeBrandSuccess = '#5cb85c'; 3export const themeBrandSuccess = '#5cb85c';
4export const themeBrandInfo = '#5bc0de'; 4export const themeBrandInfo = '#5bc0de';
5export const themeBrandWarning = '#FF9F00'; 5export const themeBrandWarning = '#FF9F00';
diff --git a/uidev/src/stories/infobox.stories.tsx b/uidev/src/stories/infobox.stories.tsx
index c3442da0d..b0416b844 100644
--- a/uidev/src/stories/infobox.stories.tsx
+++ b/uidev/src/stories/infobox.stories.tsx
@@ -69,7 +69,7 @@ storiesOf('Infobox')
69 ctaLabel: 'Ok, hi!', 69 ctaLabel: 'Ok, hi!',
70 })} 70 })}
71 > 71 >
72 Franz is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Franz currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts,GroupMe, Skype and many more. 72 Ferdi is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Ferdi currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts,GroupMe, Skype and many more.
73 </WithStoreInfobox> 73 </WithStoreInfobox>
74 )) 74 ))
75 .add('Secondary', () => ( 75 .add('Secondary', () => (