Compare commits

...

878 Commits

Author SHA1 Message Date
Michael Teeuw
8010e6220d Merge pull request #586 from MichMich/develop
Release 2.1.0
2016-12-31 21:17:54 +01:00
Michael Teeuw
09e6a6a4ad Merge branch 'master' into develop 2016-12-31 21:16:09 +01:00
Michael Teeuw
da772e6649 Add release date. 2016-12-31 21:12:53 +01:00
Michael Teeuw
65b8f78ca1 Merge pull request #579 from brosy/handle-newsfeed-errors
Add error handling to newsfeed
2016-12-31 19:13:01 +01:00
Michael Teeuw
23bcac2e55 Merge pull request #585 from roramirez/extra-spaces
fix tabs, remove extra spaces and lines.
2016-12-31 19:12:24 +01:00
Michael Teeuw
e6a88eef35 Merge pull request #584 from roramirez/js-use-root-path
global.root_path for js core
2016-12-31 19:11:21 +01:00
Michael Teeuw
6654c461a6 Merge pull request #582 from henglert/patch-1
Fix repeating count of yearly calendar events
2016-12-31 19:10:21 +01:00
Rodrigo Ramírez Norambuena
a48cb052c2 resolv some missing fix eslint rules no-trailing-spaces 2016-12-30 17:47:33 -03:00
Rodrigo Ramírez Norambuena
809d932087 add rules "no-trailing-spaces" and "no-irregular-whitespace" for ESLint 2016-12-30 17:44:41 -03:00
Rodrigo Ramírez Norambuena
19d906c5e4 fix tabs, remove extra spaces and lines. 2016-12-29 22:23:08 -03:00
Rodrigo Ramírez Norambuena
2f933a90fd global.root_path for js core
Use global.root_path instead of "/../" syntax to go back directory
2016-12-29 19:09:28 -03:00
henglert
3607875714 Fix repeating count of yearly calendar events
The occurrence counter for a yearly repeating event e was calculated by "current year" - "e.firstYear", instead of "e.year" - "e.firstYear". That leads to a repeating event counter - 1 at the end of the year. E.g.
event e: first Date: 2015-01-02, yearly repetition
repeating count evaluated on 2015-12-31: 2015-2015 = 0 => incorrect
repeating count evaluated on 2016-01-01: 2016-2015 = 1 => correct
Fix: repeating count has to be calculated from event date instead of current date.
2016-12-29 15:31:01 +01:00
Michael Teeuw
fec8829041 Merge pull request #580 from roramirez/root_path
global: Add the root_path variable in global.
2016-12-28 13:33:47 +01:00
Rodrigo Ramírez Norambuena
f58e758a41 global: Add the root_path variable in global.
This will can be help for work the better way in use the path into
the core and modules.
2016-12-27 14:31:35 -03:00
Ben Brosnahan
cebed0824f Fix lint error 2016-12-26 11:35:37 +00:00
Ben Brosnahan
97120bd1f1 Add error handling to newsfeed 2016-12-26 01:17:45 +00:00
Michael Teeuw
4237d0c7e3 Merge pull request #547 from dbahn25/hidePrivate
Hide private
2016-12-24 14:23:47 +01:00
Daniel Buecheler
243cdfefa2 Fix failed linter test 2016-12-22 22:00:59 +01:00
Daniel Buecheler
a12a4cd8f2 Merge remote-tracking branch 'mich/develop' into hidePrivate
Resolved merge conflict
2016-12-22 21:53:47 +01:00
Michael Teeuw
989dca5792 Merge pull request #563 from aschulz90/mm-fixes
Mm fixes
2016-12-14 10:05:20 +01:00
Michael Teeuw
c9eb06bb70 Merge pull request #560 from berlincount/develop
make electronOptions configurable
2016-12-14 10:04:27 +01:00
Michael Teeuw
af89906b81 Merge pull request #559 from roramirez/user-agent
newsfeed, calendar: Standardize user-agent.
2016-12-14 10:03:31 +01:00
Andreas
de71b1b397 Revert calendar default value and add documentation 2016-12-13 17:16:46 +01:00
Rodrigo Ramírez Norambuena
2decee1d87 Merge branch 'develop' into user-agent fix conflict. 2016-12-13 10:40:10 -03:00
Andreas 'count' Kotes
6a184b069b make electronOptions configurable, remove kioskmode from documentation 2016-12-13 13:59:24 +01:00
Michael Teeuw
48db615ac8 Merge pull request #553 from roramirez/grunt-eslint-modules
Grunt eslint modules
2016-12-13 12:58:43 +01:00
Michael Teeuw
bb9caa4838 Merge pull request #566 from roramirez/flag-plymouth
splashscreen: remove flag not used into script plymouth
2016-12-13 12:49:53 +01:00
Rodrigo Ramírez Norambuena
3c11c3fc16 splashscreen: remove flag not used into script plymouth 2016-12-13 00:33:29 -03:00
Andreas
6c1dbc5e61 Updated module READMEs with current default values 2016-12-12 14:55:07 +01:00
Andreas
21bf1dd1a3 Updated module READMEs with current default values 2016-12-12 14:52:00 +01:00
Michael Teeuw
78aa2b491c Merge pull request #558 from roramirez/size-for-compliments-text
Size for compliments text
2016-12-09 14:54:29 +01:00
Rodrigo Ramírez Norambuena
53d2c7e89f compliments: add abilty to set classes for compliments module 2016-12-09 10:49:49 -03:00
Michael Teeuw
cdf78db629 Merge pull request #552 from olexs/electron-zoom-factor
Option to scale the whole display using Electron's zoom factor
2016-12-08 15:57:47 +01:00
Olexandr Savchuk
15c5725829 Merge branch 'develop' into electron-zoom-factor 2016-12-08 15:54:52 +01:00
Michael Teeuw
96653170a2 Merge pull request #551 from olexs/round-temps
Option to display temperatures rounded to nearest integer
2016-12-08 15:47:44 +01:00
Michael Teeuw
eade89da48 Merge pull request #555 from qistoph/remoteonly
Check updates (in updatenotification) only for repos with remote
2016-12-08 15:29:17 +01:00
Rodrigo Ramírez Norambuena
9b86049964 newsfeed, calendar: Standardize user-agent.
Add node and MagicMirror version.
2016-12-08 01:29:55 -03:00
Rodrigo Ramírez Norambuena
9e2bbd50b6 README compliments: Close code tag and fix tabs 2016-12-07 22:03:32 -03:00
Chris van Marle
0d18266ad1 Fetch remote git only if repo has a remote 2016-12-07 08:38:45 +01:00
Rodrigo Ramírez Norambuena
83ee0534f2 fixed eslint error into modules for Javascript files 2016-12-02 23:23:54 -03:00
Rodrigo Ramírez Norambuena
8ad00025ad use Gruntfile into modules/default/* 2016-12-02 23:23:48 -03:00
Olexandr Savchuk
7d08a7c9cd Added documentation and changelog entry. 2016-12-02 21:14:41 +01:00
Olexandr Savchuk
c8d5a5319e Clean up duplicate code in Electron options 2016-12-02 21:09:16 +01:00
Olexandr Savchuk
a08fa721cf Added zoom factor config value and Electron option 2016-12-02 21:05:36 +01:00
Olexandr Savchuk
89bc3137ba Fixed method description. 2016-12-02 20:56:10 +01:00
Olexandr Savchuk
4d8d30f897 Moved misplaced method signature 2016-12-02 20:53:02 +01:00
Olexandr Savchuk
d67e9468c0 Changed roundTemp implementation to a cleaner one 2016-12-02 20:52:36 +01:00
Olexandr Savchuk
7dda36ab97 Merge branch 'round-temps' of github.com:olexs/MagicMirror into round-temps 2016-12-02 17:38:04 +01:00
Olexandr Savchuk
32df3e80b1 Renamed roundTemperature option to roundTemp
Added changelog entry
2016-12-02 17:33:41 +01:00
Olexandr Savchuk
3c33969d23 implemented roundTemperature in weather modules 2016-12-02 17:27:45 +01:00
Olexandr Savchuk
c2aec5ae36 implemented roundTemperature in weather modules 2016-12-02 17:17:58 +01:00
Daniel Bücheler
7afc908c32 Added hidePrivate option of calendar module 2016-11-30 21:28:49 +01:00
Daniel Bücheler
c66ecbdd29 Added hidePrivate to README.md
Added explanation of hidePrivate option to the Calendar Module's README
2016-11-30 21:28:44 +01:00
Daniel Buecheler
e61bccab36 Calendar Module: Added false as default for hidePrivate 2016-11-30 21:24:04 +01:00
Daniel Buecheler
cfeef98261 Private events are hidden
Events with the class:PRIVATE iCal property are not shown in the
calendar module. They are not added to the array of calendar
events in createEventList.

This feature can be turned on and off in the config via the property
hidePrivate: true/false.
2016-11-30 21:09:57 +01:00
Michael Teeuw
c949548150 Merge pull request #546 from BrianHepler/load_compliments_from_remote_file
Load compliments from remote file
2016-11-30 16:43:14 +01:00
Brian
829ccfca88 Updated changelog and compliments documentation. 2016-11-30 10:31:19 -05:00
Brian
950fa84d1c Added capability to load compliments from the host file system. 2016-11-30 10:30:49 -05:00
Michael Teeuw
5666729fcf Merge pull request #543 from roramirez/pulled-clock
clock: remove statement of repetead code.
2016-11-29 10:41:29 +01:00
Michael Teeuw
3a13886af9 Merge pull request #542 from aschulz90/mm-fixes
Fixed Global Default Config Being Modified
2016-11-26 16:17:14 +01:00
Rodrigo Ramírez Norambuena
db6e0ccf63 clock: remove statement of repetead code. 2016-11-26 11:45:12 -03:00
Andreas
35f2ebc2aa Fixed Global Default Config Being Modified 2016-11-26 15:33:10 +01:00
Michael Teeuw
60ac4a3e86 Merge pull request #541 from roramirez/bind-address
Add option to set bind address
2016-11-26 13:23:27 +01:00
Rodrigo Ramírez Norambuena
c966d34b07 fix camelCase detected eslint 2016-11-25 21:55:51 -03:00
Rodrigo Ramírez Norambuena
a05d7059fb Update CHANGELOG 2016-11-25 21:54:03 -03:00
Rodrigo Ramírez Norambuena
facc1dc944 add label where is bind serveronly 2016-11-25 21:48:36 -03:00
Rodrigo Ramírez Norambuena
df2ebbf384 Add option to set bind address 2016-11-25 21:41:05 -03:00
Michael Teeuw
e210471c7a Merge pull request #539 from roramirez/fix_tab_config.js_sample
fix tab into config.js.sample
2016-11-24 15:48:03 +01:00
Michael Teeuw
f42d552dad Merge pull request #540 from roramirez/space_comment_js_main
fix comments and space js/main.js
2016-11-24 15:47:49 +01:00
Rodrigo Ramírez Norambuena
edfd9e46b6 fix comments and space js/main.js 2016-11-24 00:26:40 -03:00
Rodrigo Ramírez Norambuena
27644776f3 fix tab into config.js.sample 2016-11-24 00:20:04 -03:00
Michael Teeuw
a4797dcc73 Merge pull request #537 from roramirez/comment-fix
comments fix for js/module.js
2016-11-22 23:09:35 +01:00
Rodrigo Ramírez Norambuena
677312648b comments fix for js/module.js 2016-11-22 18:53:46 -03:00
Michael Teeuw
ace460c69b Merge pull request #535 from Platimir/patch-3
Added update info translation
2016-11-22 07:51:48 +01:00
Platimir
b922fe35ab Added update info translation
Added 2/3 update info translation
2016-11-21 22:14:16 +01:00
Michael Teeuw
222e2166ff Merge pull request #530 from Jopyth/patch-3
update documentation to module default config
2016-11-21 11:03:10 +01:00
Michael Teeuw
7dc25ec425 Merge pull request #532 from roramirez/default_value_animation_newsfeed
newsfeed: fix set default value for animationSpeed option in README
2016-11-21 11:02:52 +01:00
Michael Teeuw
980835981f Merge pull request #533 from roramirez/onlyTemp
Only temp
2016-11-21 11:02:30 +01:00
Rodrigo Ramírez Norambuena
e425adc230 fix some tabs 2016-11-20 22:19:55 -03:00
Rodrigo Ramez Norambuena
2ea7ef327e currentweather: add option onlyTemp.
Is added option onlyTemp for show only current temperature and weather
icon.
2016-11-20 22:19:51 -03:00
Rodrigo Ramírez Norambuena
6c9d33f05c newsfeed: fix set default value for animationSpeed option in README 2016-11-20 20:06:58 -03:00
Jopyth
c584b51726 Update CHANGELOG.md 2016-11-20 16:49:30 +01:00
Jopyth
3c8fa3382b update documentation to module default config 2016-11-20 16:47:49 +01:00
Michael Teeuw
e5c75259e0 Merge pull request #524 from qistoph/moduleupdates
Check updates for configured modules only
2016-11-19 11:37:02 +01:00
Michael Teeuw
f78e437a42 Merge pull request #526 from roramirez/UPDATE_NOTIFICATION_MODULE-es
Update translations module es
2016-11-19 11:35:54 +01:00
Michael Teeuw
8f61b1d320 Merge pull request #527 from roramirez/standarize-tab-translations
fix tabs translations
2016-11-19 11:35:40 +01:00
Michael Teeuw
84f3c6f7e6 Merge pull request #528 from Jopyth/patch-2
add German translation for module update
2016-11-19 11:35:16 +01:00
Jopyth
bfb6c001a0 add german translation for module update 2016-11-19 07:46:30 +01:00
Rodrigo Ramírez Norambuena
f0fa9f2033 translations: Fix massive tabs into translations files. 2016-11-18 22:19:45 -03:00
Rodrigo Ramírez Norambuena
c82cc30968 translations: Add UPDATE_NOTIFICATION_MODULE string for spanish. 2016-11-18 19:23:04 -03:00
Michael Teeuw
b0cb14b515 Merge pull request #525 from Jopyth/patch-2
Fix typo
2016-11-18 17:13:11 +01:00
Jopyth
7f86d2aa0a Fix typo 2016-11-18 17:07:55 +01:00
Chris van Marle
482dd4db76 Check updates for configured modules only 2016-11-18 12:57:45 +01:00
Michael Teeuw
0f44fd2290 Merge pull request #523 from nhubbard/develop
Update Dependencies and Improve Security
2016-11-17 19:36:14 +01:00
Nicholas Hubbard
690d461693 Update CHANGELOG 2016-11-17 10:33:13 -05:00
Nicholas Hubbard
f1ca72aee9 Improve Security and Update Dependencies 2016-11-17 09:34:11 -05:00
Michael Teeuw
a3a6fc0d15 Merge pull request #521 from nhubbard/develop
Update Electron
2016-11-17 08:47:29 +01:00
Nicholas Hubbard
4f4fe5f06b Update Electron: Part II
Add the change to the changelog.
2016-11-16 20:04:56 -05:00
Nicholas Hubbard
c59f47f4b5 Update Electron: Part I
Replace `electron-prebuilt` with `electron`.
2016-11-16 20:02:37 -05:00
Michael Teeuw
0ae810b8c6 Merge pull request #519 from StefanBols/develop
Updated da translation file
2016-11-16 20:47:10 +01:00
Stefan Bols
ac9f42a8fe Updated da translationfile 2016-11-16 20:35:55 +01:00
Michael Teeuw
eab7e56ece Merge pull request #518 from qistoph/moduleupdates
Module Updates
2016-11-16 18:57:44 +01:00
Chris van Marle
7329515a4d Check for module updates 2016-11-16 18:19:44 +01:00
Michael Teeuw
6d6bf2df3a Merge pull request #516 from StefanBols/develop
Added UPDATE INFO to da.json
2016-11-16 07:03:29 +01:00
Stefan Bols
3008bfbe0a Added UPDATE INFO to da.json 2016-11-15 22:54:47 +01:00
Michael Teeuw
9399517cfb Merge pull request #512 from roramirez/readme-calendar-format-fix
calendar: little fix format README
2016-11-15 19:40:43 +01:00
Michael Teeuw
b117fe222d Merge pull request #515 from roramirez/disabled_module
Config: Add option disabled for modules configuration
2016-11-15 09:33:07 +01:00
Rodrigo Ramírez Norambuena
62567264f0 Config: Add option disabled for modules configuration 2016-11-14 14:45:59 -03:00
Michael Teeuw
c054b3b0de Merge pull request #514 from roramirez/log_line_number
logger: Show line number where is called the function for the log
2016-11-14 17:26:59 +01:00
Rodrigo Ramez Norambuena
83fb5b4d1b logger: Show line number where is called the function for the log 2016-11-14 00:04:23 -03:00
Rodrigo Ramírez Norambuena
07a86800c9 calendar: little fix format README 2016-11-12 21:10:37 -03:00
Michael Teeuw
688b5f29b6 Cleanup. 2016-11-12 20:03:56 +01:00
Michael Teeuw
e311f17062 Temp fix for wrapper issue. 2016-11-12 11:19:58 +01:00
Michael Teeuw
b4cdb22e24 Merge pull request #509 from roramirez/extra_log
remove extra console.log introduced in commit e419701
2016-11-11 14:20:38 +01:00
Rodrigo Ramez Norambuena
b63194c0aa remove extra console.log introduced in commit e419701 2016-11-11 10:18:29 -03:00
Michael Teeuw
0bab32315c Merge PR 2016-11-10 20:06:00 +01:00
Michael Teeuw
7e881dd850 Merge branch 'compliments_from_currentweather' of https://github.com/roramirez/MagicMirror into roramirez-compliments_from_currentweather 2016-11-10 20:03:58 +01:00
Michael Teeuw
d6aaafb069 Merge pull request #508 from roramirez/var_updateTimer
currentweather: Remove variable updateTimer not used
2016-11-10 20:01:25 +01:00
Michael Teeuw
731fcb8829 Merge pull request #507 from roramirez/update_es_translations
Update es translations
2016-11-10 19:39:37 +01:00
Michael Teeuw
af0e94a4b7 Merge pull request #506 from qistoph/dateformat
Dateformat
2016-11-10 19:38:51 +01:00
Rodrigo Ramírez Norambuena
deda869cc5 currentweather: Remove variable updateTimer not used 2016-11-10 15:33:16 -03:00
Rodrigo Ramírez Norambuena
434089395a translations: add DAYAFTERTOMORROW key Spanish language. 2016-11-10 15:27:10 -03:00
Rodrigo Ramírez Norambuena
048985bdf4 translations: add Spanish translations for alert module 2016-11-10 15:26:55 -03:00
Rodrigo Ramez Norambuena
70d6d4246d compliments: Add feature use current weather.
Possibility the use the actual type of currentweather to show the
compliments.
2016-11-10 15:11:18 -03:00
Chris van Marle
70befe900c Update changelog 2016-11-10 17:28:39 +01:00
Chris van Marle
9fd81bf6c7 Add dateFormat to calendar module 2016-11-10 17:26:29 +01:00
Michael Teeuw
a388fe3acb Merge pull request #505 from StefanBols/develop
Added keys to EN and DA translations files
2016-11-09 19:29:02 +01:00
Stefan Bols
d4946d931a Create da.json 2016-11-09 17:40:51 +01:00
Stefan Bols
9812654bfa Update CHANGELOG.md 2016-11-09 17:30:20 +01:00
Stefan Bols
557426246c Added key DAYAFTERTOMORROW to translation file
The key was found in the NL translation file, and were missing in the EN file
2016-11-09 17:22:33 +01:00
Stefan Bols
d0a3e8f789 Added DAYAFTERTOMORROW key to translation file
Key found at NL translation file, and are missing in the Danish translation
2016-11-09 17:20:35 +01:00
Michael Teeuw
50b37f2ddd Update changelog. 2016-11-08 20:11:46 +01:00
Michael Teeuw
e4197012f6 updateWrapperStates to hide unused regions. 2016-11-08 20:07:31 +01:00
Michael Teeuw
df00a1e0a3 Merge pull request #503 from derwehr/develop
added url to the newsfeed fetcher
2016-11-07 20:48:29 +01:00
derwehr
41327bfb03 quick fix to prevent issues with feeds that omit url and link 2016-11-07 20:46:28 +01:00
derwehr
66ef72a040 added url to the newsfeed fetcher 2016-11-07 17:49:32 +01:00
Michael Teeuw
af660bc631 Fix typo. 2016-11-06 12:54:00 +01:00
Michael Teeuw
18edb13e76 Remove Snyk since it gives to many NPM issues. 2016-11-06 12:37:04 +01:00
Michael Teeuw
e05431c847 Merge pull request #482 from roramirez/fix_change_log_pr_479
Fix the position for the feature note added in the Pull Request #479
2016-11-06 12:34:43 +01:00
Michael Teeuw
5c61f95093 Merge pull request #485 from roramirez/url_example_cities
currentweather, weatherforecast: sample URL for LocationID:
2016-11-06 12:33:20 +01:00
Michael Teeuw
9a407c727a Merge pull request #497 from roramirez/error_missing_coma-lang-es
error missing coma into es translations
2016-11-06 12:31:22 +01:00
Michael Teeuw
cad655a15b Merge pull request #500 from roramirez/space_vs_tab_calendar
calendar: fix space vs tab into caledarfetcher.js
2016-11-06 12:29:44 +01:00
Rodrigo Ramez Norambuena
1fa5c53b72 calendar: fix space vs tab into caledarfetcher.js 2016-11-05 21:23:37 -03:00
Rodrigo Ramez Norambuena
d01b1a706c error missing coma into es translations 2016-11-03 17:56:06 -03:00
Rodrigo Ramírez Norambuena
678d5fc532 currentweather, weatherforecast: sample URL for LocationID:
Changed from README the sample URLs for get the LocationID.
The http://bulk.openweather.org/sample/ doesn't work
2016-11-03 15:36:04 -03:00
Michael Teeuw
c4e01fa566 Merge pull request #494 from onuryilmaz/develop
Turkish translation added
2016-11-03 08:14:27 +01:00
Michael Teeuw
e694622b83 Merge pull request #495 from roramirez/update-es
Update: translations es
2016-11-03 08:13:44 +01:00
Rodrigo Ramírez Norambuena
1d16c96ca4 Update: translations es 2016-11-03 00:19:32 -03:00
Onur Yilmaz
ab1f34726b Turkish translation added 2016-11-02 22:03:17 +00:00
Onur Yilmaz
c9f201755e Turkish translation added 2016-11-02 22:01:14 +00:00
Michael Teeuw
094ef592a7 Merge pull request #492 from aschulz90/mm-fixes
Mm fixes
2016-10-31 20:39:00 +01:00
Andreas
e7493c38d1 Update CHANGELOG.md 2016-10-31 20:16:55 +01:00
Andreas
6fd0fcfdb5 Update module.js 2016-10-31 20:10:52 +01:00
Michael Teeuw
6da534a961 Merge pull request #491 from dougshamoo/patch-1
Fix typo in readme
2016-10-29 21:44:18 +02:00
Doug Shamoo
f26e43144e Fix typo in README 2016-10-29 12:27:34 -07:00
Michael Teeuw
427529171c Merge pull request #489 from roramirez/README-weathers-times
README Fix updateInterval for currentweather, weatherforecast:
2016-10-27 16:41:08 +02:00
Rodrigo Ramírez Norambuena
cd146cf822 README Fix updateInterval for currentweather, weatherforecast:
Fix milliseconds in the example for the updateInterval option
2016-10-27 11:12:15 -03:00
Michael Teeuw
ced412372c Merge pull request #486 from roramirez/fix_location_id_empty
currentweather, weatherforecast: fix locationID empty
2016-10-26 21:29:26 +02:00
Rodrigo Ramez Norambuena
2f6e650c1b currentweather, weatherforecast: fix locationID empty
Fix when the option locationID the value = ''

If you have the next config

 config: {
            // See 'Configuration options' for more information.
            location: 'Chillan, Chile',
            locationID: '',
            appid: 'abcde12345abcde12345abcde12345ab'
        }

The modules dont get the data, because the parameters of query is created
in id=''
2016-10-26 16:15:42 -03:00
Rodrigo Ramírez Norambuena
5c125ca9b4 Fix position note for add the feature into Pull Request #479 2016-10-25 16:14:59 -03:00
Michael Teeuw
89c0939d58 Fix needs update check. 2016-10-25 12:30:24 +02:00
Michael Teeuw
8ea955fb23 Fix type. 2016-10-25 12:24:01 +02:00
Michael Teeuw
73a297f23f Merge pull request #479 from roramirez/timezone-clock-module
add support to enable set timezone for show in clock module.
2016-10-25 11:39:19 +02:00
Rodrigo Ramírez Norambuena
95f1382fbf add support to enable set timezone for show in clock module. 2016-10-24 23:55:40 -03:00
Michael Teeuw
80df01c8ee Fix unit for display time. 2016-10-22 12:04:58 +02:00
Michael Teeuw
c2df864119 Merge pull request #475 from RedNax67/develop
Deliver additional information in calendar broadcasts
2016-10-20 09:20:30 +02:00
xander
2cc9356c32 Push location, geo and description on events stack for single and repeating events. 2016-10-20 09:05:12 +02:00
RedNax67
89234c0163 Merge pull request #1 from MichMich/develop
Develop
2016-10-20 08:41:40 +02:00
Michael Teeuw
1b7fe286a6 remove logging 2016-10-17 17:03:10 +02:00
Michael Teeuw
7c2d797ed0 Merge pull request #470 from Jopyth/patch-1
Change position from absolute to fixed
2016-10-17 16:50:48 +02:00
Jopyth
4d2eedc56b Update CHANGELOG.md 2016-10-16 17:32:17 +02:00
Jopyth
ece0d9301f Update CHANGELOG.md 2016-10-16 17:32:05 +02:00
Jopyth
cc10cd88d3 change position from absolute to fixed 2016-10-16 17:24:21 +02:00
Michael Teeuw
b9f308c832 Stylelint fixes 2016-10-15 17:11:03 +02:00
Michael Teeuw
6816bd8bad Solve margin issue. 2016-10-15 17:06:52 +02:00
Michael Teeuw
0e026de5bd Merge pull request #469 from fewieden/develop
added german translation for updatenotification
2016-10-15 15:43:01 +02:00
fewieden
a419ad201d added german translation for updatenotification 2016-10-15 13:39:42 +02:00
Michael Teeuw
a66a4f62bd Add module 'updatenotification'. 2016-10-15 13:08:46 +02:00
Michael Teeuw
e721d2204b Fix typo. 2016-10-15 11:27:34 +02:00
Michael Teeuw
f293cf6e81 Merge pull request #468 from Jopyth/patch-rain
Add option to show rain amount
2016-10-15 08:57:53 +02:00
Jopyth
0cde1d4969 Update CHANGELOG.md 2016-10-14 23:13:13 +02:00
Joseph Bethge
bd49bd6e33 option to show rain amount 2016-10-14 23:07:18 +02:00
Michael Teeuw
84dc1fa151 Possibility to use the the calendar feed as the source for the weather. 2016-10-14 17:42:07 +02:00
Michael Teeuw
5858e862d9 Broadcast calendar eventlist to other modules. 2016-10-14 15:23:03 +02:00
Michael Teeuw
8b004a549a Change Newsfeed logging. 2016-10-14 14:19:03 +02:00
Michael Teeuw
4a53e4207c Small visual change. 2016-10-13 21:05:48 +02:00
Michael Teeuw
6510de5d29 Fix logger issue on electron. 2016-10-13 20:22:30 +02:00
Michael Teeuw
a6191320a1 Improve documentation. 2016-10-13 16:47:00 +02:00
Michael Teeuw
a75ff0c061 Improve documentation. 2016-10-13 16:45:23 +02:00
Michael Teeuw
0d45eb91db Fix typo. 2016-10-13 16:43:43 +02:00
Michael Teeuw
95edbc16bb Add requiresVersion property to module API. 2016-10-13 16:42:15 +02:00
Michael Teeuw
15a5e3c779 Fix typo. 2016-10-13 15:19:12 +02:00
Michael Teeuw
0433432e62 Add information about recent changes. 2016-10-13 15:15:38 +02:00
Michael Teeuw
e7ca73bbad Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop
# Conflicts:
#	modules/README.md
2016-10-13 15:07:19 +02:00
Michael Teeuw
8d8374b8e2 First implementation of Visibility locking. 2016-10-13 15:03:52 +02:00
Michael Teeuw
4dc5bbe601 First implementation of Visibility locking. 2016-10-13 15:00:59 +02:00
Michael Teeuw
55371f9c78 Improve object instantiation to prevent reference errors. 2016-10-13 14:25:53 +02:00
Michael Teeuw
af63f4098f Improve logger. 2016-10-13 13:24:56 +02:00
Michael Teeuw
2b4939a875 Add VSCode IntelliSense support. 2016-10-13 13:10:33 +02:00
Michael Teeuw
d5d22844ab Fix info about default setting. 2016-10-04 16:27:06 +02:00
Michael Teeuw
7dab00be87 Fix info about default setting. 2016-10-04 16:26:35 +02:00
Michael Teeuw
67582d388a Fix Table. 2016-10-04 16:25:39 +02:00
Michael Teeuw
0671e7d456 Add update information. 2016-10-04 16:21:53 +02:00
Michael Teeuw
c9e6af96d0 Change update information. 2016-10-04 16:19:33 +02:00
Michael Teeuw
ee48a56603 Add info about humidity. 2016-10-01 14:08:15 +02:00
Michael Teeuw
4c03f39437 Merge branch 'amcolash-current_humidity' into develop 2016-10-01 14:06:45 +02:00
Michael Teeuw
d8d425c963 Visual changes. 2016-10-01 14:06:10 +02:00
Michael Teeuw
ec64ac9f1d Merge branch 'current_humidity' of https://github.com/amcolash/MagicMirror into amcolash-current_humidity 2016-10-01 13:56:46 +02:00
Michael Teeuw
7ed682c186 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2016-10-01 13:55:54 +02:00
Michael Teeuw
9dcb579741 Merge branch 'fewieden-develop' into develop 2016-10-01 13:55:31 +02:00
Michael Teeuw
19f837aa41 Merge changes. 2016-10-01 13:55:08 +02:00
Michael Teeuw
b267491934 Add IPv6 loopback IP address to default whitelist. 2016-10-01 13:49:41 +02:00
Michael Teeuw
a369dddde8 Merge branch 'yo-less-patch-4' into develop 2016-10-01 11:03:16 +02:00
Michael Teeuw
29d87d7c48 Merge branch 'patch-4' of https://github.com/yo-less/MagicMirror into yo-less-patch-4
# Conflicts:
#	CHANGELOG.md
2016-10-01 11:03:05 +02:00
Michael Teeuw
4847f50093 Merge branch 'kasperwandahl-master' into develop 2016-10-01 10:53:08 +02:00
Michael Teeuw
7c848b1253 Merge changes 2016-10-01 10:52:46 +02:00
Michael Teeuw
607aa46032 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2016-10-01 10:35:33 +02:00
Michael Teeuw
430193891f Fix Config keys. 2016-10-01 10:35:22 +02:00
fewieden
cbb82ed635 replace system output with MagicMirror splash screen on boot 2016-10-01 00:38:14 +02:00
Michael Teeuw
1dfb72703a Merge pull request #461 from hkapanen/Finnish
Finnish translation
2016-09-30 20:10:31 +02:00
Harri Kapanen
5edf377f4b Finnish translation 2016-09-30 20:44:53 +03:00
Michael Teeuw
43a33d267a Merge pull request #453 from dmcinnes/patch-1
Fix typos in the module dev docs
2016-09-30 09:30:43 +02:00
Doug McInnes
c4048f4c7b fix typos in the module dev docs 2016-09-29 21:40:45 -07:00
Michael Teeuw
501c89ae3a Merge pull request #457 from Jopyth/patch-limited-access
Patch limited access
2016-09-29 17:58:06 +02:00
Joseph Bethge
5899497aa7 log denied access attempts on server 2016-09-29 17:55:32 +02:00
Joseph Bethge
2c758a9981 remove warning message 2016-09-29 17:52:22 +02:00
Joseph Bethge
66eb99e506 transfer usage information to readme 2016-09-29 17:49:54 +02:00
Joseph Bethge
b583140077 fix double quotes and config.js.sample 2016-09-29 17:43:57 +02:00
Joseph Bethge
f378c93dd3 replace ugly error message 2016-09-29 17:07:22 +02:00
Joseph Bethge
5d29fa5e62 ip address filtering 2016-09-29 16:34:57 +02:00
Michael Teeuw
54f04c9141 Fix ESLint issues 2016-09-29 11:12:49 +02:00
Michael Teeuw
fc0c706100 Add MagPi Logo 2016-09-29 11:05:37 +02:00
Kasper Wandahl Fogh
02ac9fa0d7 Added danish in translations.js and updated changelog 2016-09-24 10:57:02 +02:00
Kasper Wandahl Fogh
ca95c75df3 Added danish translation 2016-09-24 10:41:44 +02:00
Michael Teeuw
4ff86795b9 Snyk security update. 2016-09-22 19:56:54 +02:00
Michael Teeuw
30eaec29d3 Modified translations for Frysk. 2016-09-21 10:29:34 +02:00
Michael Teeuw
742d38c9ec Merge pull request #450 from Wilco89/patch-1
Patch 1
2016-09-21 10:28:23 +02:00
Wilco Land
56a4597784 Update fy.json
Added "DAYAFTERTOMORROW"
2016-09-21 09:57:47 +02:00
Michael Teeuw
b2a7d3584b Add getHeader functionlity.. 2016-09-20 17:22:24 +02:00
Michael Teeuw
b8167f89e5 Merge pull request #448 from MichMich/develop
Release 2.0.5
2016-09-20 16:41:12 +02:00
Michael Teeuw
c916472b22 Release 2.0.5 2016-09-20 16:32:45 +02:00
Michael Teeuw
bdfe7c5e69 Merge pull request #447 from valmassoi/develop
Fix default weather forecast module api URL
2016-09-19 15:27:32 +02:00
valmassoi
749475799a Fix default weather forecast module api URL 2016-09-18 10:54:20 -07:00
Michael Teeuw
daf9c807b5 Merge pull request #446 from contra/patch-1
fix typo
2016-09-18 08:42:03 +02:00
contra
5dfecfdee3 fix typo 2016-09-17 17:54:38 -04:00
Michael Teeuw
d267c03ee2 Merge pull request #435 from nhubbard/develop
Add all the linters!
2016-09-13 09:33:06 +02:00
Michael Teeuw
864e3c7a50 Merge pull request #437 from andyipod1437/develop
Able to turn off and on the date display the clock module.
2016-09-11 21:16:07 +02:00
Andrew Chumchal
747e1a818d Able to turn off and on the clock module 2016-09-11 08:14:28 -07:00
Andrew Chumchal
f468dbf427 Update CHANGELOG.md 2016-09-11 08:04:33 -07:00
Nicholas Hubbard
88572e90d4 Add all the linters 2016-09-10 16:41:57 -04:00
Michael Teeuw
41fc7dd73d Merge pull request #434 from nhubbard/develop
Clean Up the Contributing Documentation and Process: An Opera, Reincarnated
2016-09-09 08:56:34 +02:00
Nicholas Hubbard
c87c588c79 Clean Up the Contributing Documentation and Process: Part VII.LXVI.IV
* Fix yet another out-of-the-blue error that Stylelint found.
2016-09-08 16:00:48 -04:00
Nicholas Hubbard
5ab4b57411 Clean Up the Contributing Documentation and Process: Part VII.LXVI.III
* Fix the errors that popped up out of the blue from Stylelint.
2016-09-08 15:57:25 -04:00
Michael Teeuw
3c936c6957 Merge pull request #433 from icewind1991/webcal-auth
add support for http basic auth for calendars
2016-09-08 21:54:53 +02:00
Nicholas Hubbard
0ca903a146 Clean Up the Contributing Documentation and Process: Part VII.LXVI.II
* Fix the indentation in the clock CSS.
2016-09-08 15:51:58 -04:00
Nicholas Hubbard
4e91919990 Clean Up the Contributing Documentation and Process: Part VII.LXVI.I
* Fix the StyleLint config to allow the empty blocks in the clock module CSS.
2016-09-08 15:49:24 -04:00
Nicholas Hubbard
e023a68780 Clean Up the Contributing Documentation and Process: Part VII.LXVI
* Fix the issues in css/main.css.
2016-09-08 15:47:16 -04:00
Nicholas Hubbard
17452cd5b6 Clean Up the Contributing Documentation and Process: Part VII.XXXIII
* Fix the css/custom.css issues.
2016-09-08 15:44:43 -04:00
Nicholas Hubbard
c76f2c8483 Clean Up the Contributing Documentation and Process: Part VII
* Fix the globbing error in the previous commits.
2016-09-08 15:41:12 -04:00
Robin Appelman
90207f9b68 add support for http basic auth for calendars 2016-09-08 21:29:17 +02:00
Nicholas Hubbard
0ec5371b61 Clean Up the Contributing Documentation and Process: Part VII
* Update the changelog to mention my changes.
2016-09-08 15:26:50 -04:00
Nicholas Hubbard
8549aeb466 Clean Up the Contributing Documentation and Process: Part VI
* Alter the pull request template to look a little better.
2016-09-08 15:24:52 -04:00
Nicholas Hubbard
504d3cd131 Clean Up the Contributing Documentation and Process: Part V
* Replace the contribution instructions with the ones from CONTRIBUTING.md.
2016-09-08 15:23:45 -04:00
Nicholas Hubbard
83ed298eba Clean Up the Contributing Documentation and Process: Part IV
* Replace `postcss:lint` with `stylelint`.
* Update the contribution instructions.
2016-09-08 15:22:40 -04:00
Nicholas Hubbard
a90f2cb156 Clean Up the Contributing Documentation and Process: Part III
* Remove PostCSS from Grunt.
* Add StyleLint to Grunt.
2016-09-08 15:17:20 -04:00
Nicholas Hubbard
1a54bafdd5 Clean Up the Contributing Documentation and Process: Part II
* Add `grunt-stylelint` over the complicated PostCSS method previously used.
* Remove PostCSS dependencies.
2016-09-08 15:14:00 -04:00
Nicholas Hubbard
3cc186f7e4 Clean Up the Contributing Documentation and Process: Part I
* Remove the HTML Validator
* Replace JSCS with ESLint
* Replace `npm` commands with equivalent `grunt` commands
2016-09-08 15:10:17 -04:00
Michael Teeuw
a2497d7564 Merge pull request #430 from nhubbard/develop
Close #374
2016-09-07 08:31:06 +02:00
Nicholas Hubbard
c01c882081 Update the Changelog 2016-09-06 19:25:16 -04:00
Nicholas Hubbard
af279df5c9 Closes #374.
ARMv6 is not supported by recent versions of Chrome, and by extent, this means recent versions of Electron as well.
2016-09-06 19:23:52 -04:00
Michael Teeuw
1ea7ce2589 Fix typo. 2016-09-06 10:09:11 +02:00
Michael Teeuw
476c577bc1 Add fixes. 2016-09-06 10:08:12 +02:00
Michael Teeuw
e3b91c4d71 Merge pull request #428 from callumdmay/master
Fix typos in raspberry.sh
2016-09-06 10:06:52 +02:00
Michael Teeuw
1e2d7acf4a Merge pull request #427 from pOakley/patch-1
currentweather module api url bugfix
2016-09-06 10:06:17 +02:00
Callum
1def120616 Fix typos in raspberry.sh 2016-09-05 22:47:49 -04:00
Phil Oakley
25ddf2c651 currentweather module api url bugfix
Running this on Raspberry Pi 2, node version v6.5.0, magicmirror@2.0.0

The current url created has a typo that causes the module to only display default weather units (Kelvin). After checking the website (http://openweathermap.org/current), there is no "/" at this location in the url. Removing it fixes the issue and allows the user to see the specified units in config.js.
2016-09-05 19:06:21 -06:00
Michael Teeuw
e5d384e808 Merge pull request #426 from nhubbard/develop
CII Best Practices
2016-09-05 10:44:03 +02:00
Jens
63351553d8 calendar.js doesn't overcapitalize future events 2016-09-04 14:24:49 +02:00
Jens
4630740ac7 Added 'getRelative' tag 2016-09-04 00:05:02 +02:00
Jens
0ff4884d3a Added 'getRelative' tag 2016-09-03 23:42:24 +02:00
Jens
2dfdedf7b0 Update README.md 2016-09-03 23:40:29 +02:00
Jens
e1fa5fb180 Added 'getRelative' tag 2016-09-03 23:39:32 +02:00
Jens
4e47f9eb68 Added 'getRelative' tag 2016-09-03 23:37:09 +02:00
Jens
c4c8955bc2 Added 'getRelative' tag 2016-09-03 23:36:29 +02:00
Jens
f47b808478 Added calendar.js tweaks (capitalization / 'getRelative' tag) 2016-09-03 23:28:07 +02:00
Jens
493367da5e point of time when calendar event gets relative now customizable 2016-09-03 23:22:51 +02:00
Jens
4ca185cf45 point of time when calendar event gets relative now customizable 2016-09-03 23:22:37 +02:00
Jens
8f4effbb8d poinst of time when calendar event gets relative now customizable 2016-09-03 23:17:46 +02:00
Nicholas Hubbard
a4ba7f277e Add Change to Changelog 2016-09-02 22:00:37 -04:00
Nicholas Hubbard
c3f97a0cf1 Add CII Badge, Remove Node Version 2016-09-02 21:58:22 -04:00
Jens
c1b8fc1233 calendar dates are uniformly capitalized
This is an attempt at standardizing the calendar layout. Currently the calendar times are only partly capitalized, some time phrases start with lower-case letters, some don't (The ones pulled from the TRANSLATIONS folder start with upper-case letters, the others don't). Behavior has been changed to create a more standardized layout.
2016-09-03 00:39:46 +02:00
Michael Teeuw
a481638c03 Add dutch translation 2016-09-01 09:42:33 +02:00
Michael Teeuw
c12dfc7b4d Merge branch 'yo-less-patch-2' into develop 2016-09-01 09:39:34 +02:00
Michael Teeuw
34bc527709 Merge branch 'patch-2' of https://github.com/yo-less/MagicMirror into yo-less-patch-2 2016-09-01 09:38:06 +02:00
yo-less
ee134d0d7c Merge branch 'patch-2' of https://github.com/yo-less/MagicMirror into patch-2 2016-08-31 22:50:09 +02:00
yo-less
f795ee7fd9 Added "day after tomorrow" changes to calendar.js 2016-08-31 22:49:31 +02:00
yo-less
1bba75881f Added 'day after tomorrow'changes to calendar.js 2016-08-31 22:46:54 +02:00
yo-less
34db2d9efa commit changes 2016-08-31 22:45:12 +02:00
yo-less
91dd308952 Added 'day after tomorrow' changes to calendar.js 2016-08-31 22:43:27 +02:00
Jens
3d97e26cde Delete CHANGELOG.md 2016-08-31 22:40:50 +02:00
Jens
104c1ecbec Added "day after tomorrow" changes to calendar.js 2016-08-31 22:18:30 +02:00
Jens
88266ec4e3 Added "day after tomorrow" changes to calendar.js 2016-08-31 22:17:43 +02:00
Jens
f5be159187 Added "DAYAFTERTOMORROW" tag if available 2016-08-31 22:11:31 +02:00
Jens
1194d86460 Merge pull request #1 from yo-less/patch-1
Added "DAYAFTERTOMORROW" tag if config language is German
2016-08-31 14:49:44 +02:00
Jens
76d6dca63f Added "Übermorgen" to show in calendar.js 2016-08-31 14:41:49 +02:00
Jens
1b69e62e2e Added "DAYAFTERTOMORROW" tag if config language is German 2016-08-31 14:39:37 +02:00
Michael Teeuw
e89839359f Merge pull request #422 from Platimir/patch-1
Update README.md
2016-08-30 16:08:01 +02:00
Platimir
177d113cd9 Update README.md 2016-08-30 15:57:52 +02:00
Andrew McOlash
853fa87012 Slight change to padding of humidity icon, just too much before 2016-08-28 01:58:56 -05:00
Andrew McOlash
a592ca25ff Add in icon for the current humidity 2016-08-28 01:52:08 -05:00
Michael Teeuw
a8c9926fa7 Merge pull request #420 from yo-less/patch-1
Updated README.md
2016-08-27 20:58:21 +02:00
Jens
bf5587fe09 Updated README.md
Fixed minor typo
2016-08-27 20:35:00 +02:00
Michael Teeuw
7c8a27e894 Merge pull request #419 from yo-less/patch-1
Updated README.md
2016-08-27 13:55:28 +02:00
Jens
d248b11ffc Updated README.md
Fixed inconsistencies in tag removal instructions.
2016-08-27 13:48:33 +02:00
Michael Teeuw
1282e010ee Merge pull request #417 from yo-less/patch-1
Updated README.md
2016-08-27 13:29:06 +02:00
Michael Teeuw
d5d1ca948e Merge pull request #418 from yo-less/patch-2
Updated CHANGELOG.md
2016-08-27 13:28:55 +02:00
Jens
a08704e8ed Updated CHANGELOG.md
Added tag removal description for newsfeed items
2016-08-27 13:12:08 +02:00
Jens
2a8c0c0c08 Updated README.md
Fixed inconsistencies in tag removal instructions.
2016-08-27 12:59:00 +02:00
Michael Teeuw
2ae0c98b4c Merge pull request #416 from yo-less/master
Tags at the beginning and/or end of newsfeed items
2016-08-27 12:00:28 +02:00
yo-less
c427050a92 Allow for the removal of feed tags
Added options: both, description, title
2016-08-27 01:16:31 +02:00
yo-less
43a0829f44 Allow for the removal of feed tags
legibility update
2016-08-27 00:37:19 +02:00
yo-less
e9b8b91861 Allow for removal of feed tags
Updated README.md for legibility
2016-08-27 00:35:27 +02:00
yo-less
6f104f5056 Allow for the removal of feed tags
User-specified feed tags in description and title can be removed
2016-08-27 00:32:47 +02:00
yo-less
e720efabdc Updated readme.md / Included more tag 2016-08-26 22:08:23 +02:00
yo-less
45cb770e41 Added option to remove "more" tags in description
Many feed descriptions end with with a link tag to the actual article
online (see http://www.deutschlandfunk.de/die-nachrichten.353.de.rss,
for example). The mirror news description looks strange with this tag in
the end.

I have added an option to remove the tag from the description and
updated the readme.md accordingly.
2016-08-26 22:06:03 +02:00
Michael Teeuw
3f1cc66767 Merge pull request #414 from MichMich/master
Fix typo in NL.json
2016-08-24 09:39:09 +02:00
Michael Teeuw
d1f5118bb5 Merge pull request #413 from mrvanes/patch-1
Update nl.json
2016-08-24 09:35:38 +02:00
Martin
b90f1f786e Update nl.json
Corrected typo
2016-08-24 08:51:49 +02:00
Andrew McOlash
c6f424201b Fix indentation and spacing 2016-08-18 09:32:19 -05:00
Andrew McOlash
a7db8cf7cd Humidity data to the current weather module 2016-08-17 21:51:48 -05:00
Michael Teeuw
e2ed0f5e55 Cleanup 2016-08-09 10:33:34 +02:00
Michael Teeuw
d000e3c8a9 Force fullscreen when kioskmode is active 2016-08-09 10:22:29 +02:00
Michael Teeuw
cf465a1184 Merge pull request #394 from MichMich/develop
Release 2.0.4
2016-08-07 16:03:22 +02:00
Michael Teeuw
f3119824f4 Release 2.0.4 2016-08-07 15:58:07 +02:00
Michael Teeuw
ef069c1689 Updated: More detailed error message. 2016-08-05 20:03:18 +02:00
Michael Teeuw
68e5a9dfda Merge pull request #391 from ssenge/master
More detailed error message in case config file couldn't be loaded.
2016-08-05 19:53:13 +02:00
sese
fd1a31afb6 More precise error messages in case configuration couldn't be loaded. 2016-08-05 19:18:31 +02:00
Michael Teeuw
6d7d4a15d9 Cleanup. 2016-08-03 20:58:49 +02:00
Michael Teeuw
518a7d0dcc Merge pull request #389 from RedNax67/develop
Updated weathericons to latest version and fixed weatherforecast.js w…
2016-08-03 20:57:33 +02:00
xander
a4bdfe6b7d Updated CHANGELOG.md 2016-08-03 20:37:30 +02:00
xander
281269aa0d Updated weathericons to latest version and fixed weatherforecast.js which got broken because of it. 2016-08-03 11:43:28 +02:00
Michael Teeuw
33521ebd31 Fix #388 2016-08-02 22:58:27 +02:00
Michael Teeuw
18ae08de8f Possible fix for #388 2016-08-02 20:14:24 +00:00
Michael Teeuw
3d3c4ba02f Prevent currentweather module from crashing. 2016-07-31 17:13:49 +02:00
Michael Teeuw
89917c1582 Updated package.json to fix vulnerabilities. 2016-07-30 16:09:42 +02:00
Michael Teeuw
90c6758562 Upgrade vulnerabilities. 2016-07-30 16:06:48 +02:00
Michael Teeuw
5be8084473 Fix formatting. 2016-07-30 15:58:51 +02:00
Michael Teeuw
8a066a4ec0 Merge pull request #387 from alexyak/develop
Added dev parameter
2016-07-30 15:57:39 +02:00
Alex Yakhnin
b98237fa44 Added dev parameter 2016-07-30 09:42:31 -04:00
Michael Teeuw
c4f9388668 Fix openweathermap url 2016-07-28 17:53:48 +02:00
Michael Teeuw
0f44b27e54 Add kioskmode to changelog 2016-07-27 12:52:36 +02:00
Michael Teeuw
10d05e1870 Merge branch 'develop' of https://github.com/MichMich/MagicMirror into develop 2016-07-27 12:51:18 +02:00
Michael Teeuw
921557161d Add option to enable kios mode 2016-07-27 12:50:59 +02:00
Michael Teeuw
eb092b9f20 Merge pull request #381 from diego-vieira/develop
Brazilian Portuguese Translation
2016-07-26 12:33:25 +02:00
Diego Vieira
28ca8a9f9f added Greek translation back 2016-07-26 07:31:31 -03:00
Diego Vieira
d7be56df7a Update CHANGELOG.md 2016-07-25 16:12:28 -03:00
Diego Vieira
ce2c163f4b brazilian portuguese translation 2016-07-25 16:11:01 -03:00
Michael Teeuw
5272462368 Add header 2016-07-23 17:43:37 +02:00
Michael Teeuw
42354a6728 Merge pull request #380 from kapsolas/develop
Greek Translation
2016-07-23 17:41:26 +02:00
Dimitrios Kapsalis
754fe3df91 Greek Translation 2016-07-23 10:35:14 -05:00
Dimitrios Kapsalis
a7a0350c1a Update CHANGELOG.md 2016-07-21 13:45:14 -05:00
Dimitrios Kapsalis
a8b2ca7cfe Added Greek translation 2016-07-21 13:42:48 -05:00
Michael Teeuw
e82867820b Merge pull request #378 from KirAsh4/upstream-dev
Ability ot turn off date view on analog clock & small grammer error f…
2016-07-20 22:05:26 +02:00
Ashley M. Kirchner
13305d111e Ability ot turn off date view on analog clock & small grammer error fix in module.js 2016-07-20 13:31:46 -06:00
Michael Teeuw
ae37fa2bc5 Append slash to endpoint. (Fix issue #337) 2016-07-20 18:51:34 +02:00
Michael Teeuw
c81db752f6 Prevent getModules() selectors from returning duplicate entries. 2016-07-14 11:48:37 +02:00
Michael Teeuw
5d9d71dee8 Merge pull request #373 from MichMich/develop
Release of 2.0.3.
2016-07-12 15:55:34 +02:00
Michael Teeuw
1f558d46a4 Add version number for 2.0.3 release. 2016-07-12 15:42:10 +02:00
Michael Teeuw
36eb899c3b Merge pull request #372 from KirAsh4/upstream-dev
Analog clock addition
2016-07-10 13:39:19 +02:00
Ashley M. Kirchner
e223d752cb Fixed README typo
(cherry picked from commit 368dc5d9b87da7ebdbc80f2fe7fcfc6a86e04b71)
2016-07-09 19:40:54 -06:00
Ashley M. Kirchner
fcb503e885 Switched to SVG graphics for scalability
(cherry picked from commit 15f0956b60ec0d16302875bd53dcc037581ad96b)
2016-07-09 19:37:00 -06:00
Ashley M. Kirchner
c1055234d8 Switched to SVG graphics for scalability
(cherry picked from commit 6cb43cac824d57e0ebafc3b00bb15104ff78d4be)
2016-07-09 19:36:52 -06:00
Ashley M. Kirchner
35ec98cf13 Analog clock addition
(cherry picked from commit 5032967343aec2d1a1d66f2ed26dce8b84d8cf37)
2016-07-09 19:36:44 -06:00
Ashley M. Kirchner
66a9138666 Analog clock addition
(cherry picked from commit 6af2ce07a17c6456c3a328133db48c2201345f6d)
2016-07-09 19:36:36 -06:00
Ashley M. Kirchner
279582ff21 Analog clock addition
(cherry picked from commit 9c7da4c24ee50b51e1e3ab513f73caadf3985e84)
2016-07-09 19:36:28 -06:00
Ashley M. Kirchner
a9540ffabe Analog clock addition
(cherry picked from commit 7bae93fdb2744b0deab84882506a333ff809b3a3)
2016-07-09 19:36:20 -06:00
Ashley M. Kirchner
8f02cb83ed Analog clock addition
(cherry picked from commit e7e7c6494d2cbf739069f8d77278b9241ae6aeec)
2016-07-09 19:36:13 -06:00
Ashley M. Kirchner
5e94c8be7b Analog clock addition
(cherry picked from commit f01b6325ed1784f1bebc3fc755da01e6fda60070)
2016-07-09 19:36:02 -06:00
Michael Teeuw
ea6e9af5da Change Requirements. 2016-07-09 17:22:06 +02:00
Michael Teeuw
1bb72262ba Merge pull request #366 from KirAsh4/upstream-dev
Removed 'null' setting
2016-07-01 19:58:43 +02:00
Ashley M. Kirchner
61ace7bd97 CHANGELOG update 2016-07-01 11:57:24 -06:00
Ashley M. Kirchner
1a417cc36f CHANGELOG update 2016-07-01 11:51:42 -06:00
Ashley M. Kirchner
00a11f4343 Removed 'null' setting 2016-07-01 11:33:32 -06:00
Michael Teeuw
491bbacddd Merge pull request #365 from gzot/develop
Fix issue #300
2016-06-27 18:46:33 +02:00
GzoT
1b9daa0adb Fix #300 2016-06-27 16:34:51 +00:00
GzoT
ccdc981756 small fix 2016-06-27 16:15:53 +00:00
GzoT
b44dcc9f30 Not display title and/or message if they are not provided (alert module) 2016-06-24 09:15:12 +00:00
Michael Teeuw
479ceb14e4 Merge pull request #361 from matt08/patch-2
Added polish translation
2016-06-09 20:40:50 +02:00
matt08
50e41d1999 Update CHANGELOG.md 2016-06-09 13:57:46 +02:00
matt08
f6e2073de0 Added polish translation 2016-06-09 13:56:41 +02:00
matt08
271aab9746 Polish translation 2016-06-09 13:53:55 +02:00
Michael Teeuw
8d9bf5cf17 Update CHANGELOG.md 2016-06-07 16:46:32 +02:00
Michael Teeuw
ceb7ed093e Merge pull request #359 from simonsmh/patch-1
Simplified Chinese, Traditional Chinese, Japanese
2016-06-07 16:44:15 +02:00
Simon Shi
abdbcbb741 Update ja.json
@aidasan
2016-06-07 22:24:58 +08:00
Simon Shi
51ac07cd34 Update translations.js
@aidasan
2016-06-07 22:23:17 +08:00
Simon Shi
4b29698c6c Create ja.json 2016-06-07 22:22:22 +08:00
Simon Shi
f93285846a Update translations.js 2016-06-07 21:51:35 +08:00
Simon Shi
44347db52e Rename zh_cn.js to zh_cn.json 2016-06-07 21:50:21 +08:00
Simon Shi
f2749ff17f Create zh_tw.json 2016-06-07 21:50:18 +08:00
Simon Shi
3735342dfa Create zh_cn.js 2016-06-07 21:44:34 +08:00
Michael Teeuw
fed6e1e82f Update CHANGELOG.md 2016-06-06 12:09:17 +02:00
Michael Teeuw
58a59b624a Merge pull request #356 from MichMich/master
Update default titleReplace.
2016-06-06 12:08:02 +02:00
Michael Teeuw
1338918a89 Update default titleReplace. 2016-06-06 12:05:41 +02:00
Michael Teeuw
831e7cdb3f Update CHANGELOG.md 2016-06-06 11:35:31 +02:00
Michael Teeuw
2b8583e652 Merge pull request #355 from Sonaryr/add-max-newsitems-parameter
Add max newsitems parameter to the newsfeed module
2016-06-06 11:34:07 +02:00
Maarten Schroeven
b0220e4200 Update README to explain new parameter 2016-06-06 00:18:01 +02:00
Maarten Schroeven
0d94ef10ce add maxNewsItems config
Added extra config parameter to limit the amount of news items this module cycles through.
2016-06-06 00:16:49 +02:00
Michael Teeuw
544a1381fc Merge pull request #353 from MichMich/develop
Update to 2.0.2
2016-06-05 12:06:27 +02:00
Michael Teeuw
bc17ef896e Update CHANGELOG.md 2016-06-05 12:03:00 +02:00
Michael Teeuw
0bcbf999fb Update CHANGELOG.md 2016-06-05 09:25:36 +02:00
Michael Teeuw
0c4c44f4b6 Merge pull request #352 from KirAsh4/develop
Added proper User-Agent string to Facebook calendar call, and various…
2016-06-05 09:24:47 +02:00
Ashley M. Kirchner
486956b762 Added proper User-Agent string to Facebook calendar call, and various fixed spelling of 'exist'. 2016-06-04 20:32:55 -06:00
Michael Teeuw
8d1ef5291f Add Fix info and. 2016-06-04 21:42:05 +02:00
Michael Teeuw
611627ca97 Fix NE translations for all languages. 2016-06-04 21:36:03 +02:00
Michael Teeuw
732225b781 Merge pull request #345 from OskarKlintrot/patch-1
Adding reference to the Italian language file
2016-06-04 20:18:48 +02:00
Oskar Klintrot
58f88075c8 Adding reference to the Italian language file 2016-05-29 13:15:04 +02:00
Michael Teeuw
e17ef5eccf Merge pull request #343 from OskarKlintrot/develop
Added Swedish translation
2016-05-28 07:58:40 +02:00
OskarKlintrot
70c697f094 Added Swedish translation 2016-05-27 19:04:53 +02:00
Michael Teeuw
4b5625e0b4 Update CHANGELOG.md 2016-05-26 12:03:29 +02:00
Michael Teeuw
7df48870df Merge pull request #341 from mochman/weather-update
Weather update
2016-05-26 12:01:55 +02:00
mochman
4a309c49e5 Updated README.md 2016-05-25 15:47:22 -05:00
mochman
b45899bf90 Updated weather to get a locationID 2016-05-25 15:23:29 -05:00
Michael Teeuw
5ae3c8acfe Merge pull request #337 from EdgardosReis/develop
Portuguese translation
2016-05-21 16:41:38 +02:00
EdgardosReis
ef5df5f01b Update CHANGELOG.md 2016-05-21 15:37:00 +01:00
EdgardosReis
9af7451a61 Update translations.js
portuguese translation
2016-05-21 15:33:47 +01:00
EdgardosReis
7048c550b7 Create pt.json
portuguese translation
2016-05-21 15:33:04 +01:00
Michael Teeuw
f035627f42 Update CHANGELOG.md 2016-05-20 12:32:14 +02:00
Michael Teeuw
7659ff1f77 Merge pull request #335 from RemiHansen/master
Norwegian translations
2016-05-20 12:31:52 +02:00
RemiHansen
3df4062a55 Norwegian translation (nb and nn) 2016-05-20 01:22:45 +02:00
RemiHansen
02bbbe668b Changelog updated 2016-05-19 23:37:32 +02:00
RemiHansen
2b82c8fdc9 Norwegian translation for MM2 2016-05-19 23:26:56 +02:00
Michael Teeuw
93abaed0c2 Merge pull request #333 from MichMich/develop
v2.0.1
2016-05-18 11:04:31 +02:00
Michael Teeuw
b7fff6d452 Update CHANGELOG.md 2016-05-18 11:03:19 +02:00
Michael Teeuw
d09f01db90 Update PULL_REQUEST_TEMPLATE.md 2016-05-13 22:06:07 +02:00
Michael Teeuw
e0c1a58b84 Italian Translation 2016-05-13 22:01:51 +02:00
Michael Teeuw
1b82649cca Merge pull request #326 from MichMich/master
Italian translation.
2016-05-13 22:00:28 +02:00
Michael Teeuw
9317e2a36b Merge pull request #325 from iosonopersia/master
Italian translation
2016-05-13 21:54:48 +02:00
iosonopersia
51aff8ccdc Italian translation 2016-05-13 20:45:55 +02:00
iosonopersia
bdd3ea45af Added italian language 2016-05-13 20:42:56 +02:00
Michael Teeuw
3eb5c77ac4 Merge pull request #323 from MichMich/master
Remove BETA warning.
2016-05-13 10:21:19 +02:00
Michael Teeuw
ccc85784c6 Remove BETA warning. 2016-05-13 10:20:37 +02:00
Michael Teeuw
46806e8607 Merge pull request #322 from MichMich/master
Update PULL_REQUEST_TEMPLATE.md
2016-05-13 09:13:15 +02:00
Michael Teeuw
95f914d6bd Update PULL_REQUEST_TEMPLATE.md 2016-05-13 09:12:26 +02:00
Michael Teeuw
0f86011106 Create CHANGELOG.md 2016-05-13 09:10:54 +02:00
Michael Teeuw
acdd3c0602 Merge pull request #321 from jordi2830/patch-1
Fetch the latest Node.js without any 3rd party interferences
2016-05-13 07:35:04 +02:00
Jordi De Poortere
05b7237add Fixing various typo's in the installer 2016-05-13 00:02:36 +02:00
Jordi De Poortere
51f4e9e160 Get the latest Node.js
This will get the latest Node.js from the selected branch.
I do recommend only using a stable and tested version as newer ones might break MM.
Branch can be changed by simply editing the NODE_STABLE_BRANCH variable.

By using this setup script, Node.js will be downloaded from the official repository provided by NodeSource.
2016-05-12 23:39:11 +02:00
Michael Teeuw
7bbac35d6b Merge pull request #317 from MichMich/master
Fix installer URL.
2016-05-12 14:47:53 +02:00
Michael Teeuw
d280fe457c Fix installer URL. 2016-05-12 14:47:36 +02:00
Michael Teeuw
b5772af4c3 Merge pull request #316 from MichMich/master
Merge master changes.
2016-05-12 13:31:35 +02:00
Michael Teeuw
7ab79bb76e Update PULL_REQUEST_TEMPLATE.md 2016-05-12 13:30:41 +02:00
Michael Teeuw
00e3cc26de Update ISSUE_TEMPLATE.md 2016-05-12 13:29:59 +02:00
Michael Teeuw
4b491c43ff Update CONTRIBUTING.md 2016-05-12 13:29:36 +02:00
Michael Teeuw
41233a933e Merge pull request #315 from MichMich/master
v2-beta references.
2016-05-12 13:04:45 +02:00
Michael Teeuw
b84e553d34 Remove v2-beta reference. 2016-05-12 13:03:13 +02:00
Michael Teeuw
19b9fa1996 Remove v2-beta references. 2016-05-12 13:01:44 +02:00
Michael Teeuw
6abdc4172b remove reference to v2-beta 2016-05-12 12:59:24 +02:00
Michael Teeuw
5e0c0137d3 Fix news parsing when no description is given. #314 2016-05-12 12:30:45 +02:00
Michael Teeuw
3e468d1348 Improved installer. #311 #314 2016-05-12 12:20:02 +02:00
Michael Teeuw
051af521b2 Merge pull request #309 from jordi2830/patch-1
Added Spanish translations
2016-05-11 18:54:12 +02:00
Jordi De Poortere
19b6ad3568 Update es.json
This one should be fine, sorry for the inconvenience.
2016-05-11 18:50:12 +02:00
Jordi De Poortere
5ae514e9b8 Update es.json 2016-05-11 18:49:09 +02:00
Jordi De Poortere
826ee98165 Update es.json
Quotes fixed
2016-05-11 18:46:48 +02:00
Michael Teeuw
f4c021a634 Merge pull request #310 from roxasvalor/v2-beta
Fix deg2Cardinal function in currentweather module
2016-05-11 18:43:59 +02:00
roxasvalor
717ae1903e Fix deg2Cardinal function in currentweather module 2016-05-11 11:36:06 -05:00
Jordi De Poortere
3cd7cdd4fb Update translations.js
Add Spanish translations
2016-05-11 18:34:56 +02:00
Jordi De Poortere
ff612799c0 Create es.json
Added Spanish translations
2016-05-11 18:33:25 +02:00
Michael Teeuw
d364b04cad supscript wind direction 2016-05-11 18:01:34 +02:00
Michael Teeuw
212aef79aa Merge pull request #307 from Wilco89/v2-beta
Update fy.json
2016-05-11 15:14:03 +02:00
Wilco Land
9ca2b08a0e Update fy.json
Fixed Typo,
2016-05-11 15:09:40 +02:00
Michael Teeuw
fc3ac88806 Merge pull request #306 from Wilco89/v2-beta
Frisian translation
2016-05-11 14:03:13 +02:00
Wilco Land
c550c4c212 Update translations.js
Added Frisian to translation file
2016-05-11 13:59:52 +02:00
Wilco Land
f0df8a4a09 Create fy.json
Frisian Translation
2016-05-11 13:58:42 +02:00
Michael Teeuw
65923abcae Add travis shield. 2016-05-11 13:54:52 +02:00
Michael Teeuw
c4f3009bb5 Add suspend and resume methods. 2016-05-11 13:49:40 +02:00
Michael Teeuw
405a81c8f0 Translation info. 2016-05-11 12:42:36 +02:00
Michael Teeuw
7a067a0f6e Finish translation system. #191 2016-05-11 12:38:41 +02:00
Michael Teeuw
32c9f197b1 Fix wind direction. #303 2016-05-11 09:25:16 +02:00
Michael Teeuw
85151b23d3 Add user agent to request. Fix: 231 2016-05-11 09:07:10 +02:00
Michael Teeuw
fc0a4d90df Merge pull request #304 from KirAsh4/v2-beta
V2 beta [Calendar Module]: Time display options
2016-05-10 22:42:01 +02:00
Ashley M. Kirchner
9558616f59 Minor text changes, and updating README file 2016-05-10 11:58:05 -06:00
Michael Teeuw
5be5741ac3 Possible fix for #181 2016-05-10 16:18:35 +02:00
Michael Teeuw
80c0e6a4e0 Add support for (some) Atom feeds. #231 2016-05-10 13:35:13 +02:00
Michael Teeuw
9bc8f54233 Fix issue with calendar events without title. #221 2016-05-10 12:24:49 +02:00
Ashley M. Kirchner
a4c02cef54 Absolute or Relative time display on Calendar module
User can now choose between an 'absolute' or 'relative time display on
events. Furthermore, when set to 'absolute', there's an option to set an
'urgency' range of days and only those events within that period will be
displayed with a relative time (in x days) while all others will have an
absolute date.
2016-05-10 01:01:00 -06:00
Ashley M. Kirchner
935f4132ab Filemode changes? 2016-05-10 00:46:21 -06:00
Michael Teeuw
a1cb82e7db Merge pull request #296 from paviro/v2-beta
Use node v5.9.1
2016-05-06 16:58:13 +02:00
Paul-Vincent Roll
146d782729 Use node v5.9.1 2016-05-06 16:57:14 +02:00
Paul-Vincent Roll
ac8bf5e939 Merge pull request #22 from MichMich/v2-beta
Update from Master
2016-05-06 16:55:09 +02:00
Michael Teeuw
2a70620844 Typo. 2016-05-06 11:29:17 +02:00
Michael Teeuw
7494b867a7 Merge pull request #291 from jordi2830/patch-1
Fixing the hardcoded Node.js version number
2016-05-05 19:14:52 +02:00
Jordi De Poortere
2874ee8609 Fixing the hardcoded Node.js version number 2016-05-05 19:12:35 +02:00
Michael Teeuw
e61145eabe Merge pull request #289 from paviro/patch-5
Added module showcase link.
2016-05-04 15:26:20 +02:00
Paul-Vincent Roll
4f01c574d2 Added module showcase link. 2016-05-04 15:25:23 +02:00
Michael Teeuw
06a471033c Merge pull request #287 from nhubbard/v2-beta
Close #281: ESLint and using the force, Luke
2016-05-04 07:19:56 +02:00
Michael Teeuw
3761bfd26f Merge pull request #286 from roxasvalor/v2-beta
Added option for using the Beaufort scale or raw wind speed
2016-05-04 07:17:26 +02:00
roxasvalor
07ad1b1de4 Update Readme for useBeaufort option 2016-05-03 19:21:58 -05:00
Warwolf8.9
5725af55a8 Make Beaufort wind speed optional 2016-05-03 19:14:27 -05:00
Nicholas Hubbard
d0f75ffda9 TravisFix2 2016-05-03 20:00:32 -04:00
Nicholas Hubbard
4117938140 Merge branch 'v2-beta' of https://github.com/nhubbard/MagicMirror into v2-beta 2016-05-03 19:56:28 -04:00
Nicholas Hubbard
f50c206d4f Travis fixer. 2016-05-03 19:56:14 -04:00
Nicholas Hubbard
ed95cb791c Force Travis 2016-05-03 19:52:49 -04:00
Nicholas Hubbard
9d0bf6d409 Grunt and Travis, you\'re late 2016-05-03 19:51:07 -04:00
roxasvalor
5e68a8200d Merge pull request #1 from MichMich/v2-beta
V2 beta
2016-05-03 18:38:38 -05:00
Nicholas Hubbard
15887994fe JSCS Says Goodbye 2016-05-03 19:13:46 -04:00
Michael Teeuw
8bec8281d2 Merge pull request #285 from danito/v2-beta
V2 beta - module calendar - french translation
2016-05-03 17:07:05 +02:00
Daniel nix
2e5a5812a9 Update calendar.js
add fr translation for calendar
2016-05-03 17:04:45 +02:00
Daniel nix
744f9316a9 Create fr.json
adding fr translation
2016-05-03 17:01:48 +02:00
Michael Teeuw
a6da9e8943 Fix #283 2016-05-03 16:59:18 +02:00
Michael Teeuw
14d3bb273c Load custom.css after the modules. Fix: #284 2016-05-03 16:42:09 +02:00
Michael Teeuw
37f8c0783d Fix facebook dates. #271 2016-05-03 11:56:24 +02:00
Michael Teeuw
05a946e2bf Formatting. 2016-05-03 11:19:01 +02:00
Michael Teeuw
a1b3e0778a Add info about malformed config files. Fix: #249 2016-05-03 11:18:06 +02:00
Michael Teeuw
93f8ade350 Merge pull request #253 from momo13292/v2-beta
calendar events repeating count title for birthdayd etc
2016-05-02 19:36:51 +02:00
momo13292
2a3a942b8e Delete nohup.out 2016-05-02 19:32:18 +02:00
Michael Teeuw
796583c0be Merge pull request #280 from paviro/v2-beta
Added forum to README
2016-05-02 17:10:39 +02:00
Paul-Vincent Roll
df31b56cf3 Added forum to README. 2016-05-02 17:02:03 +02:00
Paul-Vincent Roll
e5f4446c82 Merge pull request #21 from MichMich/v2-beta
Update from Master
2016-05-02 16:50:05 +02:00
Michael Teeuw
0252495eca Missing , 2016-05-01 23:30:01 +02:00
Michael Teeuw
5e75a6b4a0 Merge pull request #276 from nhubbard/v2-beta
Extend the Logger
2016-05-01 19:54:44 +02:00
Michael Teeuw
3002a4f9b3 Merge pull request #274 from KirAsh4/v2-beta
V2 beta - weatherforecast maxNumberOfDays
2016-05-01 19:53:46 +02:00
Nicholas Hubbard
f627c5e5a1 Extend the Logger
Add Timing, Grouping, and Warning to the logger.
2016-05-01 13:46:41 -04:00
Ashley M. Kirchner
4d0a93fc3b Update README.md
Added the maxNumberOfDays config option to change the amount of forecasted days returned by the OpenWeatherAPI.
2016-04-29 12:58:03 -06:00
Ashley M. Kirchner
3f040e7744 Update weatherforecast.js
Added the option to change the amount of forecasted days returned by the OpenWeatherAPI.
2016-04-29 12:52:10 -06:00
Michael Teeuw
e572d544ef Merge pull request #269 from nhubbard/v2-beta
clockBold's Re-Incarnation
2016-04-29 18:55:55 +02:00
Nicholas Hubbard
ab3f585a2b clockBold's Re-Incarnation: Part II 2016-04-29 11:25:05 -04:00
Nicholas Hubbard
8b792c5fe0 clockBold's Re-Incarnation: Part I 2016-04-29 11:24:14 -04:00
Michael Teeuw
f184116824 Remove slack. 2016-04-27 14:39:21 +02:00
Michael Teeuw
ab2c91ba20 Add slack channel (experimental) 2016-04-27 14:37:12 +02:00
Michael Teeuw
f2a786254e Merge pull request #256 from djsunrise19/v2-beta
Update de.json
2016-04-27 11:05:19 +02:00
djsunrise19
7cbc8a0ede Update de.json
Cause ´morgen um ***` and other words are written lowercased, it makes sense to write ´noch` lowercased too. Days und whole day events have to be as they are.
2016-04-27 10:45:15 +02:00
Michael Teeuw
08bc644de1 Fix #245 2016-04-27 09:42:13 +02:00
Michael Teeuw
f12125f2a4 Update to node 6.0.0 2016-04-27 09:37:44 +02:00
Mona Schüch
4e86de7fc2 calendar events repeating count title for birthdayd etc 2016-04-26 22:34:12 +02:00
Michael Teeuw
38796a0d40 Merge pull request #243 from roxasvalor/v2-beta
Add optional wind direction in currentweather module
2016-04-25 13:27:59 +02:00
roxasvalor
8562bdfc4a Removed trailing comma 2016-04-25 06:27:26 -05:00
roxasvalor
74c96d8521 Removed showWindDirection 2016-04-25 06:23:55 -05:00
roxasvalor
5f8ef64ca4 showDirection to showWindDirection 2016-04-24 18:34:39 -05:00
roxasvalor
5a5f5318d1 Update README.md 2016-04-24 18:31:46 -05:00
roxasvalor
db9e615e4d Update README.md 2016-04-24 18:30:54 -05:00
Warwolf8.9
2aae0528b5 Added wind direction in Current Weather module 2016-04-24 18:06:12 -05:00
roxasvalor
8d29bd5c32 Update currentweather.js 2016-04-24 17:40:18 -05:00
roxasvalor
77cb8530e5 Update currentweather.js 2016-04-24 16:55:39 -05:00
Michael Teeuw
bfd7404c85 Merge pull request #241 from paviro/patch-4
Moved this.translate() to the instance methods
2016-04-24 23:21:22 +02:00
roxasvalor
836148a335 Update currentweather.js 2016-04-24 16:15:05 -05:00
Paul-Vincent Roll
1ab00ac804 Moved this.translate() to the instance methods 2016-04-24 23:14:24 +02:00
Michael Teeuw
7a3db8f670 Merge pull request #240 from paviro/patch-3
Added translation fallback note to documentation
2016-04-24 23:07:35 +02:00
Paul-Vincent Roll
fd3676067a Added translation fallback note to documentation 2016-04-24 23:06:49 +02:00
Michael Teeuw
de61e4bf8c Merge pull request #239 from roxasvalor/v2-beta
Fixed module Readmes for #237
2016-04-24 23:05:24 +02:00
roxasvalor
3d0de834e0 Units now configured by config.js 2016-04-24 16:01:27 -05:00
roxasvalor
a897772df2 Units now configured by config.js 2016-04-24 16:00:13 -05:00
Michael Teeuw
5726d796f9 Merge pull request #237 from roxasvalor/v2-beta
Added option for units inside of config.js
2016-04-24 22:56:19 +02:00
roxasvalor
8381960737 Added "units" configuration instructions
Added instructions for configuring the units variable in config.js.
2016-04-24 15:38:50 -05:00
Michael Teeuw
b61d41f569 Merge pull request #238 from paviro/patch-3
Added getTranslations() to the documentation
2016-04-24 22:34:29 +02:00
Paul-Vincent Roll
af827b5645 Added getTranslations() to the documentation 2016-04-24 22:33:30 +02:00
roxasvalor
13a01d76f7 Added default units variable
Added a default units variable if users do not configure in config.js.
2016-04-24 15:33:22 -05:00
roxasvalor
2007f5ece4 Units from config.js 2016-04-24 15:25:35 -05:00
roxasvalor
a91a2c2609 Units configurable from Config.js 2016-04-24 15:24:44 -05:00
roxasvalor
0890fd521e Added units variable 2016-04-24 15:23:07 -05:00
Michael Teeuw
4338cb305d Merge pull request #235 from paviro/patch-2
Wheezy supported
2016-04-24 14:20:30 +02:00
Paul-Vincent Roll
84e02c828f Wheezy is supported now isn't it? 2016-04-24 14:18:41 +02:00
Michael Teeuw
be8707570c Merge pull request #234 from paviro/patch-1
custom.css will be ignored
2016-04-24 13:59:14 +02:00
Paul-Vincent Roll
39602e0a98 Update custom.css 2016-04-24 13:53:21 +02:00
Michael Teeuw
bc2f2f5323 Merge pull request #229 from djsunrise19/v2-beta
Update README.md
2016-04-23 20:28:58 +02:00
djsunrise19
66e71282a0 Update README.md
Not necessary anymore, because we made that with "de.json" in calendar
2016-04-23 20:26:05 +02:00
Michael Teeuw
bca56f88af Merge pull request #228 from djsunrise19/v2-beta
Update de.json in calendar
2016-04-23 20:17:51 +02:00
djsunrise19
35068631ec Merge pull request #1 from djsunrise19/djsunrise19-patch-1
Update de.json
2016-04-23 17:45:58 +02:00
Michael Teeuw
bd9557b11e Prevent display of events in the past. #162 2016-04-23 17:40:46 +02:00
djsunrise19
0f2c19f40f Update de.json
"Noch" is grammatically better than "Endet in" for running events.
2016-04-23 17:36:59 +02:00
Michael Teeuw
4248ae7792 Merge pull request #225 from paviro/v2-beta
Added translaions to the alert module
2016-04-23 17:32:06 +02:00
Paul-Vincent Roll
535a4205b1 Added translaions to the alert module. 2016-04-23 17:27:36 +02:00
Michael Teeuw
ab14fc8440 fix #223 2016-04-23 17:20:58 +02:00
Paul-Vincent Roll
86eea16271 Merge pull request #20 from MichMich/v2-beta
Fix for #222
2016-04-23 16:58:53 +02:00
Michael Teeuw
52a9caa96e Fix for #222 2016-04-23 16:57:03 +02:00
Paul-Vincent Roll
d8fe1a6e44 Merge pull request #19 from MichMich/v2-beta
Update from Master
2016-04-23 16:22:51 +02:00
Michael Teeuw
ae86090a03 Update to Node 5.11 2016-04-22 19:21:50 +02:00
Michael Teeuw
87aa887b2f Fix missing module. 2016-04-22 08:32:07 +02:00
Michael Teeuw
81378b5e25 Add update information. 2016-04-21 09:16:53 +02:00
Michael Teeuw
6f615b8202 Add NL translation & Convert config property to lowercase. 2016-04-21 09:02:41 +02:00
Michael Teeuw
44c1266a8c Merge pull request #211 from CFenner/l10n
implements l10n
2016-04-21 08:53:10 +02:00
Christopher
920f720699 fix indent 2016-04-21 08:47:07 +02:00
Christopher
a7c394de6c use translator 2016-04-21 01:04:00 +02:00
Christopher
4529675ca6 add l18n ability
fixes #191
2016-04-21 01:03:26 +02:00
Christopher
935909f24b fix typo 2016-04-20 23:13:31 +02:00
Christopher
7b61a0253c Merge branch 'v2-beta' into v2 2016-04-20 22:51:23 +02:00
Michael Teeuw
64e039cf8f Show 'tomorrow' when a full day event is planned for tomorrow. 2016-04-20 21:40:56 +02:00
Paul-Vincent Roll
65ae1f6f5a Merge pull request #18 from MichMich/v2-beta
Update form Master
2016-04-20 15:22:22 +02:00
Michael Teeuw
fa38ad3a74 Fix for #207 2016-04-20 15:19:36 +02:00
Michael Teeuw
fd500ac411 Allow the subscription to multiple news feeds in one newsfeed instance. 2016-04-20 14:39:38 +02:00
Paul-Vincent Roll
c6b5bb84e9 Merge pull request #17 from MichMich/v2-beta
V2 beta
2016-04-20 14:26:36 +02:00
Michael Teeuw
3b1f1a41dc Fix period display when using 24 hour mode. 2016-04-20 12:16:41 +02:00
Michael Teeuw
d778f2dd8b fix: #206 2016-04-20 11:42:01 +02:00
Michael Teeuw
287452169b Fix for #197 and #185 2016-04-20 11:32:48 +02:00
Michael Teeuw
6fdcd7f7e9 Add darkTheme. 2016-04-19 20:26:22 +02:00
Michael Teeuw
b16a49109f Possible fix for #185 2016-04-19 16:45:57 +02:00
Michael Teeuw
7d8cde2f0f Move exception handling to the core app. 2016-04-19 11:25:50 +02:00
Michael Teeuw
a3fedb47cb Fix socket reference bug. #196 2016-04-19 11:04:36 +02:00
Michael Teeuw
095f08d443 Fix: #162, Possible fix for: #197 2016-04-19 10:34:15 +02:00
Michael Teeuw
a7948ee1da Merge pull request #198 from Intecpsp/v2-beta
Allow 12 hour period config
2016-04-19 07:48:10 +02:00
Cody
54eeb27f09 Add documentation for 12 hour period config
Add the documentation for the 12 hour period config
2016-04-18 20:03:26 -04:00
Cody
d0e57df1d8 Add documentation for 12 hour period config
Add the documentation for the 12 hour period config
2016-04-18 20:01:53 -04:00
Cody
b4df63f37f Allow 12 hour period config
Allow for configuring the 12 hour format period (AM/PM).
2016-04-18 19:53:34 -04:00
Cody
16a7ea2b75 Allow 12 hour period config
Allow for configuring the 12 hour format period (AM/PM).
2016-04-18 19:52:40 -04:00
Michael Teeuw
3892ce3ed4 Fix for #188, #194 2016-04-18 20:03:12 +02:00
Michael Teeuw
6c47de0170 Merge branch 'v2-beta' of https://github.com/MichMich/MagicMirror into v2-beta 2016-04-18 19:12:56 +02:00
Michael Teeuw
8793196bb3 Possible fix for #181 2016-04-18 19:12:24 +02:00
Michael Teeuw
a3a9a8e3f1 Info about the supported OS. 2016-04-18 17:16:06 +02:00
Michael Teeuw
bef5b48fce Prevent crash when no internet connection is available. #193 2016-04-18 16:25:00 +02:00
Michael Teeuw
bc0ba2f524 fix typo. #190 2016-04-17 17:12:40 +02:00
Michael Teeuw
1b387dabde Merge pull request #189 from nhubbard/snyk
Add Snyk
2016-04-17 15:10:22 +02:00
Nicholas Hubbard
fe8cb7c461 Add Snyk 2016-04-17 08:55:48 -04:00
Michael Teeuw
bfbf62d398 Merge pull request #183 from nhubbard/gitignore
Standardize the GitIgnore
2016-04-17 14:41:58 +02:00
Michael Teeuw
b22b845d57 Merge pull request #184 from nhubbard/no-eslint
No More ESLint!
2016-04-17 14:40:56 +02:00
Nicholas Hubbard
104a62e24d Remove ESLint: Part II 2016-04-16 21:40:05 -04:00
Nicholas Hubbard
4639911a04 Remove ESLint: Part I 2016-04-16 21:38:42 -04:00
Nicholas Hubbard
6677f2f5d4 Standardize the GitIgnore 2016-04-16 21:36:46 -04:00
Michael Teeuw
8adb16e1f6 Change formatting. #181 2016-04-16 21:42:44 +02:00
Michael Teeuw
9c9e93974e possible fix #181 2016-04-16 20:01:02 +02:00
Michael Teeuw
44a6604fe8 Possible fix for #181 2016-04-16 19:55:19 +02:00
Michael Teeuw
47a18666b6 Possible fix for #180 2016-04-15 22:10:00 +02:00
Michael Teeuw
a231ebc408 Cleanup. 2016-04-15 14:27:50 +02:00
Michael Teeuw
33ab2f9cc5 Move module list to wiki. 2016-04-15 14:26:06 +02:00
Michael Teeuw
e56c1a5853 Disable logging. 2016-04-15 13:16:02 +02:00
Michael Teeuw
27a47d4e4a Show text when event is still running. 2016-04-15 13:13:06 +02:00
Michael Teeuw
614e5e62af Show relative time to non full day events. Fix: #162 2016-04-15 12:50:34 +02:00
Michael Teeuw
f45a2e7806 Fix repeating appointments, Fix: #169 2016-04-15 12:19:00 +02:00
Michael Teeuw
c03485b93e Add information about the Raspberry Pi support. 2016-04-15 11:36:36 +02:00
Michael Teeuw
900e668cd6 Merge pull request #177 from CFenner/addModule
add link to Netatmo module
2016-04-15 10:42:22 +02:00
Christopher
2657e1194c add link to Netatmo module 2016-04-15 10:02:03 +02:00
Michael Teeuw
ec5ad089a3 Merge pull request #175 from CFenner/ignoreFile
ignore .DS_Store files
2016-04-15 09:57:32 +02:00
Christopher
69a3354617 ignore .DS_Store files
ignore Desktop Services Store file for OS X
2016-04-15 09:53:34 +02:00
Michael Teeuw
6e60d30970 Prevent autostart after installation. 2016-04-13 15:00:05 +02:00
Michael Teeuw
d6fa1f9cbc Improve scrollbar hiding. 2016-04-13 09:58:56 +02:00
Michael Teeuw
bc8dccd4b5 Fix #153 2016-04-13 09:27:30 +02:00
Michael Teeuw
14f48ec440 Prevent clipping of header. Fixes: #167 2016-04-13 09:23:54 +02:00
Michael Teeuw
fd1b847077 Merge pull request #164 from paviro/v2-beta
Added Font Awesome Support to alerts
2016-04-12 21:03:33 +02:00
Paul-Vincent Roll
ed3c0e42fb Added Font Awesome Support into alerts. 2016-04-12 20:54:30 +02:00
Paul-Vincent Roll
d72d6d925e Merge pull request #16 from MichMich/v2-beta
Update form Master
2016-04-12 20:23:58 +02:00
Michael Teeuw
4ae034b21c Merge pull request #163 from laurio/patch-1
Fix some typos in README.md file
2016-04-12 20:06:44 +02:00
Lauri Oherd
bbc7a1fff0 Fix some typos in README.md file 2016-04-12 20:16:04 +03:00
Michael Teeuw
68ed3e4996 Prevent scrollbars. 2016-04-12 13:59:19 +02:00
Michael Teeuw
03ae6366ea Add module to readme. 2016-04-12 12:07:31 +02:00
Michael Teeuw
af2f469b84 Add possibility to display item description. #157 2016-04-12 11:06:59 +02:00
Michael Teeuw
a64699d064 Remove background. 2016-04-11 15:01:01 +02:00
Michael Teeuw
ac96baae66 Remove bold. 2016-04-11 11:50:36 +02:00
Michael Teeuw
15d9569fa4 Text change. 2016-04-11 11:50:13 +02:00
Michael Teeuw
bd99affb13 Fix Link. 2016-04-11 11:36:30 +02:00
Michael Teeuw
88166b7c73 Add list of known issues. 2016-04-11 11:35:56 +02:00
Michael Teeuw
3543ebb9a6 Add project description. Remove TODO's. 2016-04-11 11:27:44 +02:00
Michael Teeuw
924f239d1b Merge pull request #156 from nhubbard/v2-beta
Markdown Refresh
2016-04-11 11:14:57 +02:00
Michael Teeuw
b641285cf4 Text change. 2016-04-11 11:11:36 +02:00
Nicholas Hubbard
c22ce3b9a2 Markdown Refresh: Part V 2016-04-10 18:02:03 -04:00
Nicholas Hubbard
64091b5463 Markdown Refresh: Part IV 2016-04-10 17:59:31 -04:00
Nicholas Hubbard
09f0b251ab Markdown Refresh: Part III 2016-04-10 17:49:50 -04:00
Michael Teeuw
9bf22e5e13 Brighter headers.
The headers were to dark to be visible thru the mirror.
2016-04-10 23:42:03 +02:00
Nicholas Hubbard
360e1e327e Markdown Refresh: Part II 2016-04-10 17:14:19 -04:00
Nicholas Hubbard
4b8bc65fb7 Markdown Refresh: Part I 2016-04-10 17:11:31 -04:00
Nicholas Hubbard
1b9d91936b Centered badges... now? 2016-04-10 17:06:21 -04:00
Nicholas Hubbard
7457432c2a Finally... centered badges! 2016-04-10 17:05:54 -04:00
Michael Teeuw
30bcc8e7f0 Merge pull request #155 from nhubbard/v2-beta
Update the README and other things
2016-04-10 22:14:01 +02:00
Nicholas Hubbard
6232bf070d Update README.md 2016-04-10 16:07:47 -04:00
Nicholas Hubbard
978b0ed811 Update README.md 2016-04-10 16:07:30 -04:00
Nicholas Hubbard
24acd14da0 Update README
Add centering.
2016-04-10 16:07:10 -04:00
Nicholas Hubbard
4950b69152 Add Synk Policy 2016-04-10 16:04:51 -04:00
Michael Teeuw
f25da27c58 Add header, add wiki links. 2016-04-10 20:39:42 +02:00
Michael Teeuw
12a5c4a311 Merge pull request #154 from nhubbard/v2-beta
Contribution and Updates
2016-04-10 10:16:59 +02:00
Nicholas Hubbard
3fcc163261 Contribution Policy Changes: Part II 2016-04-09 19:08:07 -04:00
Nicholas Hubbard
18a670ae29 Contribution Policy Changes: Part I
Add ESLint.
2016-04-09 19:03:10 -04:00
Nicholas Hubbard
f443fef091 Contribution: Part III 2016-04-09 18:56:26 -04:00
Michael Teeuw
58adf75c18 Add info about config in node helper. 2016-04-09 20:59:55 +02:00
Michael Teeuw
bee04bec44 Add link to documentation. 2016-04-09 20:58:07 +02:00
Michael Teeuw
01cc32004a Remove TOC. (Links not working.) 2016-04-09 20:56:46 +02:00
Michael Teeuw
5ede0d35f2 Add TOC 2016-04-09 20:56:16 +02:00
Michael Teeuw
a1b8d951c1 Add node helper documentation. 2016-04-09 20:54:33 +02:00
Michael Teeuw
880e2401e1 Merge pull request #152 from nhubbard/v2-beta
Update Contributions
2016-04-09 20:32:44 +02:00
Michael Teeuw
3434bd8460 Add documentation. 2016-04-09 20:31:59 +02:00
Nicholas Hubbard
239db35ba0 Contribution: Part II 2016-04-09 14:21:40 -04:00
Michael Teeuw
6310750168 header update 2016-04-09 18:08:35 +02:00
Michael Teeuw
133e41e3be typo 2016-04-09 18:07:44 +02:00
Michael Teeuw
b616cfa75c Typo. 2016-04-09 18:03:12 +02:00
Michael Teeuw
86a0b5f59a change header description. 2016-04-09 17:58:57 +02:00
Michael Teeuw
becf029583 Add header info. 2016-04-09 17:58:10 +02:00
Michael Teeuw
f36f2357ef Start of Module Development Documentation 2016-04-09 17:04:08 +02:00
Michael Teeuw
faa6d91f7c Add ordering information. 2016-04-09 16:00:34 +02:00
Michael Teeuw
be5ecc6d0d Add configuration instructions. 2016-04-09 15:59:05 +02:00
Michael Teeuw
00a18d54bb Cleanup. 2016-04-09 15:51:18 +02:00
Michael Teeuw
bad20c3e0b change git ignore 2016-04-09 15:51:04 +02:00
Michael Teeuw
14a72dec15 Change Class behavior of hello world. 2016-04-09 15:49:39 +02:00
Michael Teeuw
7ef43caa1e minor fix 2016-04-09 15:34:18 +02:00
Michael Teeuw
244c4c6201 fix typo 2016-04-09 15:32:31 +02:00
Nicholas Hubbard
8d29947e32 Templating: Part III
Create pull request template.
2016-04-09 09:17:25 -04:00
Michael Teeuw
29fc705672 Minor change. 2016-04-09 15:15:27 +02:00
Michael Teeuw
2859db15fe Update install instructions. 2016-04-09 15:14:01 +02:00
Nicholas Hubbard
9ab020518e Templating: Part II
Remove the improperly titled and saved issue template.
2016-04-09 09:13:31 -04:00
Nicholas Hubbard
838635ae4d Templating: Part I
Create the issue template in the proper folder.
2016-04-09 09:12:51 -04:00
Michael Teeuw
a88e4932e6 Update installer. 2016-04-09 15:10:47 +02:00
Nicholas Hubbard
56c94a2986 Contribution: Part I 2016-04-08 20:45:14 -04:00
Michael Teeuw
a4c3d9cb17 Remove trailing dot. 2016-04-08 23:05:45 +02:00
Michael Teeuw
c31d392e19 Change branding on default config. 2016-04-08 22:21:14 +02:00
Michael Teeuw
a34a5c4db0 Separate server core from Electron. 2016-04-08 22:16:22 +02:00
Michael Teeuw
0441b9fb50 Update README.md 2016-04-08 20:24:08 +02:00
Michael Teeuw
3e871ea33d Add issue template. 2016-04-08 19:53:57 +02:00
Michael Teeuw
54dda91726 fix issue with show/hide callbacks 2016-04-08 17:27:03 +02:00
Michael Teeuw
0a19570f2c Merge pull request #148 from nhubbard/v2-beta
A Mishmash of Fixes
2016-04-08 10:06:25 +02:00
Nicholas Hubbard
f280aa227e Update Alert Spelling 2016-04-07 21:20:34 -04:00
Nicholas Hubbard
af34dc4d4d HTML Love 2016-04-07 21:19:29 -04:00
Nicholas Hubbard
0ab1079c9c Markdown Love: Part III 2016-04-07 21:14:11 -04:00
Nicholas Hubbard
d2cb0bde91 Fix Packages 2016-04-07 21:10:29 -04:00
Nicholas Hubbard
5b34f7cf8c Markdown Love: Part II 2016-04-07 21:06:35 -04:00
Nicholas Hubbard
9e6e34eda0 Markdown Love: Part I 2016-04-07 21:04:24 -04:00
Michael Teeuw
cfd6cdc50f Remove debugging. Fixes: #146 2016-04-07 09:22:54 +02:00
Michael Teeuw
78346cda46 Update latest version. 2016-04-06 16:20:34 +02:00
Michael Teeuw
c547ab4570 Merge pull request #142 from nhubbard/v2-beta
Standardization and Issue Fixes
2016-04-05 22:05:11 +02:00
Nicholas Hubbard
939b54787e Update installation script.
- (possibly?) Fix issue that sha256sum does not work.
- Add shebang for good reasons.
- Fix continuing even after an error happens.
2016-04-05 15:52:10 -04:00
Nicholas Hubbard
7b5b81504b Standardize: TO STYLELINT! 2016-04-05 15:43:52 -04:00
Michael Teeuw
5578a274f6 Merge pull request #141 from CFenner/npmStart2
describe how to run npm start on SHH
2016-04-05 21:43:01 +02:00
Christopher
9e0c4a89f3 add comment about ssh & npm start 2016-04-05 21:39:56 +02:00
Nicholas Hubbard
426728058c Standardize: TO JSCS! 2016-04-05 14:35:11 -04:00
Michael Teeuw
18390503b5 Merge pull request #139 from SVendittelli/v2-beta
Add MMM-wordnik to README
2016-04-05 16:29:22 +02:00
Sam Vendittelli
6e79b8404a Add MMM-wordnik to the README 2016-04-05 15:24:46 +01:00
Sam Vendittelli
4567272baa Merge pull request #1 from MichMich/v2-beta
V2 beta
2016-04-05 15:01:36 +01:00
Michael Teeuw
6ff3a37665 Prevent memory leaks. 2016-04-05 14:54:40 +02:00
Michael Teeuw
5420314784 Register the express app to allow registration of urls. 2016-04-05 14:22:34 +02:00
Michael Teeuw
f1dad4c9fb Merge pull request #138 from paviro/v2-beta
Change slide position based on notification position - closes #137
2016-04-05 13:47:57 +02:00
Paul-Vincent Roll
aba0b29c77 Change slide position based on notification position - closes #137 2016-04-05 13:45:18 +02:00
Michael Teeuw
638263e8eb Add two special regions. 2016-04-05 13:39:52 +02:00
Michael Teeuw
e2040b7194 Remove old version. 2016-04-05 13:33:59 +02:00
Paul-Vincent Roll
0006e3b4bd Merge pull request #15 from MichMich/v2-beta
Update from Master
2016-04-05 13:24:38 +02:00
Michael Teeuw
06efd01032 Configurable encoding. #126 2016-04-05 13:16:23 +02:00
Michael Teeuw
1a20bd2f4d add an align-left class 2016-04-05 12:22:01 +02:00
Michael Teeuw
598cf61eb4 Fix Facebook Birthdays - Fix: #97 2016-04-05 11:20:47 +02:00
Michael Teeuw
7b6772e77b Allow custom css styling. 2016-04-05 10:26:18 +02:00
Michael Teeuw
c4bfa6d4d8 Finish loading empty calendars. Fixes issue: #124 2016-04-05 10:01:54 +02:00
Michael Teeuw
700ebc53f8 Merge pull request #135 from Domi-G/v2-beta
Font Improvements - closes #133
2016-04-05 09:44:35 +02:00
Domi-G
4db83293e5 Reorder the fonts for optimized loading 2016-04-05 00:35:30 +02:00
Domi-G
0fcdc2e118 Define fallback fonts 2016-04-05 00:33:29 +02:00
Domi-G
4b8d44aa2e Cleanup fonts, larger charset - fixes #133 2016-04-05 00:09:11 +02:00
Michael Teeuw
915e716936 Merge pull request #134 from nhubbard/v2-beta
Clean up the project's README and installation instructions.
2016-04-04 20:25:15 +02:00
Nicholas Hubbard
bb63232f55 Update the installer to allow condensed installation.
Condensed installation is where the user Git Clones the repo and runs the installer there.
2016-04-04 13:57:09 -04:00
Nicholas Hubbard
43288b2e97 Update the README for better disclosure of installation script. 2016-04-04 13:54:49 -04:00
Nicholas Hubbard
824eade8b2 Update installation script for Pi 3 support. 2016-04-04 12:28:07 -04:00
Nicholas Hubbard
df26058172 Add installation script for ease of installation. 2016-04-04 12:19:13 -04:00
Nicholas Hubbard
2f3219704e Add badges and fix Usage list formatting. 2016-04-03 20:39:01 -04:00
Nicholas Hubbard
5c0532e6c6 Some branding, grammar and spelling updates. 2016-04-03 19:43:31 -04:00
Michael Teeuw
a4d5b74b57 Fixes encoding issues: #125 & #126 2016-04-03 23:16:59 +02:00
Michael Teeuw
864106d336 Merge pull request #132 from paviro/v2-beta
Fixed mistake that happens when no type is given
2016-04-03 20:43:35 +02:00
Paul-Vincent Roll
5a612e792e Fixed mistake that happens when no type is given 2016-04-03 20:41:03 +02:00
Michael Teeuw
e473dfc15e Merge pull request #131 from paviro/v2-beta
Use SHOW_ALERT for all type of notifications
2016-04-03 20:36:18 +02:00
Paul-Vincent Roll
f931316dc8 No type = alert 2016-04-03 20:34:47 +02:00
Paul-Vincent Roll
e323a315e1 README ms not seconds 2016-04-03 20:31:09 +02:00
Paul-Vincent Roll
a55a2bcca0 Use SHOW_ALERT for all type of notifications 2016-04-03 20:28:51 +02:00
Michael Teeuw
f0c739c94c Add Contributing. 2016-04-03 20:27:56 +02:00
Michael Teeuw
60db5abb54 Change default port to port 8080. 2016-04-03 20:27:56 +02:00
Michael Teeuw
9ab7356730 Merge pull request #130 from paviro/v2-beta
Removed no longer existing params
2016-04-03 20:15:50 +02:00
Paul-Vincent Roll
7f2537f9b1 Removed no longer existing params 2016-04-03 20:13:22 +02:00
Michael Teeuw
6fe3ca1058 Merge pull request #129 from paviro/v2-beta
Added alert todos
2016-04-03 20:12:34 +02:00
Paul-Vincent Roll
99dbb3abed Added alert todos 2016-04-03 20:08:22 +02:00
Paul-Vincent Roll
053bdd0467 Merge pull request #14 from MichMich/v2-beta
Update from Master
2016-04-03 20:05:55 +02:00
Michael Teeuw
5554dce924 Fix merge conflict. 2016-04-03 19:56:01 +02:00
Michael Teeuw
ec7a4734df Merge branch 'v2-beta' of https://github.com/MichMich/MagicMirror into pr/120
# Conflicts:
#	README.md
2016-04-03 19:55:35 +02:00
Michael Teeuw
40e3e71b48 Fix merge conflict. 2016-04-03 19:53:36 +02:00
Michael Teeuw
5eed80c28e Squashed commit of the following:
commit e38dd346d9
Author: Michael Teeuw <michael@xonaymedia.nl>
Date:   Sat Apr 2 19:17:30 2016 +0200

    Add the possibility to set the maximum number of days.

commit 6f5c86775b
Author: Sam Vendittelli <sam.vendittelli@hotmail.com>
Date:   Sat Apr 2 06:27:44 2016 +0100

    Fixed cursor appearing in margin

    Cursor was appearing in the margin so moved `cursor: none` property to html.

commit 576c668d84
Author: Domi-G <lessuseguy+githubdomig@gmail.com>
Date:   Fri Apr 1 22:52:32 2016 +0200

    Huge cleanup of white space
2016-04-03 19:52:13 +02:00
Paul-Vincent Roll
e2436ad796 Updated install instructions 2016-04-03 17:46:09 +02:00
Paul-Vincent Roll
7f0d82e960 Fixed README 2016-04-03 13:32:17 +02:00
Paul-Vincent Roll
5ecdca28fb Added Alert module to README 2016-04-03 13:02:49 +02:00
Paul-Vincent Roll
67bd6eac99 Use seconds instead of ms 2016-04-03 04:03:57 +02:00
Paul-Vincent Roll
f8ce8ece1e Removed SweetAlert License 2016-04-03 03:07:59 +02:00
Paul-Vincent Roll
679521c8a0 Removed sweetalert added custom alerts 2016-04-03 03:04:38 +02:00
Paul-Vincent Roll
f8c1644dee Added text alignment based on position 2016-04-03 00:20:11 +02:00
Paul-Vincent Roll
882e9731ac Added position config 2016-04-02 23:54:15 +02:00
Paul-Vincent Roll
3cd882f618 Notification styling 2016-04-02 20:27:59 +02:00
Paul-Vincent Roll
98e333cef9 Added title to notification 2016-04-02 20:05:05 +02:00
Paul-Vincent Roll
21a0063756 removed ns-style-growl.css now in default 2016-04-02 19:57:52 +02:00
Paul-Vincent Roll
76f1a82746 Allow multiple notifications 2016-04-02 19:56:19 +02:00
Michael Teeuw
e38dd346d9 Add the possibility to set the maximum number of days. 2016-04-02 19:17:30 +02:00
Paul-Vincent Roll
a8184ec17d Allow welcome_message = false 2016-04-02 19:12:59 +02:00
Paul-Vincent Roll
5fb751222b Added table to developer alert parameters 2016-04-02 14:57:29 +02:00
Paul-Vincent Roll
9910af04b0 added Configuration options as table 2016-04-02 14:46:46 +02:00
Sam Vendittelli
6f5c86775b Fixed cursor appearing in margin
Cursor was appearing in the margin so moved `cursor: none` property to html.
2016-04-02 07:27:44 +02:00
Paul-Vincent Roll
9c78af65e1 Added new option and licenses 2016-04-02 04:17:58 +02:00
Paul-Vincent Roll
e14010da35 Now supports alerts and notifications 2016-04-02 03:59:18 +02:00
Sam Vendittelli
c61278f1ad Fixed cursor appearing in margin
Cursor was appearing in the margin so moved `cursor: none` property to html.
2016-04-01 23:23:44 +01:00
Domi-G
576c668d84 Huge cleanup of white space 2016-04-01 22:52:32 +02:00
Paul-Vincent Roll
f93a464b7d Added howto for developers 2016-04-01 22:07:50 +02:00
Paul-Vincent Roll
06271678a6 Added alert module 2016-04-01 22:05:09 +02:00
Paul-Vincent Roll
af0ea4d555 Merge pull request #12 from MichMich/v2-beta
Update V2 beta from master
2016-04-01 21:59:18 +02:00
Michael Teeuw
e448e87252 Prevent weird start effect. 2016-04-01 17:49:43 +02:00
Michael Teeuw
e4c54cc655 Add module subfolder support. 2016-04-01 17:35:29 +02:00
Michael Teeuw
671338425a Add module documentation. 2016-04-01 16:43:59 +02:00
Michael Teeuw
5237cf9eb1 Fix Typos 2016-04-01 16:03:12 +02:00
Michael Teeuw
33586f4bdf Compliments documentation. 2016-04-01 16:02:59 +02:00
Michael Teeuw
2cc05e1878 Explain titleReplace. 2016-04-01 15:53:28 +02:00
Michael Teeuw
44c0f409a9 Fix link. 2016-04-01 14:22:26 +02:00
Michael Teeuw
dde6d8e623 Link to documentation. 2016-04-01 14:21:23 +02:00
Michael Teeuw
f387e28ed4 Formatting. 2016-04-01 14:19:50 +02:00
Michael Teeuw
e0072630f3 Formatting 2016-04-01 14:18:39 +02:00
Michael Teeuw
fdf80c4584 Fix missing info. 2016-04-01 14:18:07 +02:00
Michael Teeuw
68b3f1a8e6 Add documentation. 2016-04-01 14:16:39 +02:00
Paul-Vincent Roll
f044f3ece2 Merge pull request #11 from MichMich/v2-beta
Update V2 beta from master
2016-04-01 13:20:16 +02:00
Michael Teeuw
46312cb44c Fix #115 - Recurring events. 2016-04-01 13:16:29 +02:00
Michael Teeuw
167a548112 Merge pull request #119 from paviro/v2-beta
Added alerts to todo
2016-04-01 12:24:34 +02:00
Paul-Vincent Roll
a381c91af7 Added alerts to todo 2016-04-01 12:23:07 +02:00
Paul-Vincent Roll
eb0446bfe1 Merge pull request #10 from MichMich/v2-beta
Update V2 beta from master
2016-04-01 12:18:04 +02:00
Michael Teeuw
62fcf8402c Add todo. 2016-04-01 10:47:16 +02:00
Michael Teeuw
f320f6e9b6 Fix show/hide issue on content update. 2016-04-01 10:44:17 +02:00
Michael Teeuw
2c387f6ae6 visual change 2016-04-01 10:34:20 +02:00
Paul-Vincent Roll
702145dada Merge pull request #9 from MichMich/v2-beta
Update V2 beta from master
2016-04-01 10:30:33 +02:00
Michael Teeuw
a1973faa06 Fix CSS glitches. Improve show/hide. 2016-04-01 10:25:55 +02:00
Michael Teeuw
ac7fc587ee Merge pull request #116 from paviro/v2-beta
Added MMM-Wunderlist to README
2016-04-01 07:43:38 +02:00
Paul-Vincent Roll
240487c258 Added MMM-Wunderlist to README 2016-04-01 02:24:06 +02:00
Paul-Vincent Roll
4e07c7ef4b Merge pull request #8 from MichMich/v2-beta
Hide module after fade out.
2016-03-31 22:36:48 +02:00
Michael Teeuw
147791dbcd Hide module after fade out. 2016-03-31 22:34:39 +02:00
Paul-Vincent Roll
caf7056ce0 Merge pull request #7 from MichMich/v2-beta
Update V2 beta from master
2016-03-31 21:02:07 +02:00
Michael Teeuw
38e42cf71e Type check. 2016-03-31 19:25:53 +02:00
Michael Teeuw
584a12e1f5 Method to hide/show modules. 2016-03-31 19:15:58 +02:00
Michael Teeuw
d601919dc4 Minor visual changes. 2016-03-31 17:07:21 +02:00
Michael Teeuw
e5351c573b Add comments. 2016-03-31 17:06:39 +02:00
Michael Teeuw
ccff5c5921 Magic module selection. 2016-03-31 17:05:36 +02:00
Michael Teeuw
c3ef992219 Merge pull request #114 from Domi-G/v2-beta
Fixed layout for Firefox
2016-03-31 16:58:08 +02:00
Domi-G
c698d27a29 Fixed layout for Firefox 2016-03-31 15:07:55 +02:00
Michael Teeuw
05162ebd59 Update todo. 2016-03-31 14:20:43 +02:00
Michael Teeuw
6f991b3238 Merge pull request #113 from paviro/v2-beta
Added MMM-Facial-Recognition to README
2016-03-31 13:44:06 +02:00
Paul-Vincent Roll
a14373a3e6 Added MMM-Facial-Recognition to README 2016-03-31 13:37:44 +02:00
Paul-Vincent Roll
6a61dc47ac Merge pull request #6 from MichMich/v2-beta
Update V2 beta from master
2016-03-31 13:31:22 +02:00
Michael Teeuw
971729dfdd Merge pull request #112 from paviro/v2-beta
Hide cursor and updated electron params
2016-03-31 13:30:54 +02:00
Michael Teeuw
5c1feb2848 Fix issue with starting of modules. 2016-03-31 13:30:01 +02:00
Paul-Vincent Roll
4455bf13c9 Merge pull request #5 from MichMich/v2-beta
Improved module loader.
2016-03-31 13:12:49 +02:00
Michael Teeuw
f28b0316f4 Improved module loader. 2016-03-31 13:05:23 +02:00
Paul-Vincent Roll
9999b3aa0c Hide cursor and updated electron params 2016-03-31 12:44:00 +02:00
Paul-Vincent Roll
f9734dbc8b Merge pull request #4 from MichMich/v2-beta
Update V2 beta from master
2016-03-31 12:27:26 +02:00
Michael Teeuw
c1bd469086 updated readme 2016-03-31 11:08:06 +02:00
Michael Teeuw
900ba886ed Add calendar module. 2016-03-31 11:05:32 +02:00
Paul-Vincent Roll
ab0dce5dea electron params updated 2016-03-31 00:20:54 +02:00
Paul-Vincent Roll
6327670b6f Merge pull request #3 from MichMich/v2-beta
Update V2 beta from master
2016-03-31 00:20:07 +02:00
Michael Teeuw
7717b295bd Fix namespace problem. 2016-03-30 17:22:30 +02:00
Michael Teeuw
b243d25399 Improved socket connection for node_helper. 2016-03-30 16:25:24 +02:00
Michael Teeuw
59b339aba5 Add License File 2016-03-30 15:21:46 +02:00
Michael Teeuw
0d6ada13c4 Add module info to readme. 2016-03-30 15:20:14 +02:00
Michael Teeuw
dd32e61fcc Merge pull request #109 from paviro/v2-beta
Fixed typo in node_helper and added module to README
2016-03-30 15:16:42 +02:00
Michael Teeuw
cbf533aa7d Minor visual changes. 2016-03-30 15:15:11 +02:00
Paul-Vincent Roll
5bccb1a555 Added Callmonitor to README 2016-03-30 15:13:46 +02:00
Michael Teeuw
139a364da6 decrease load delay 2016-03-30 15:13:02 +02:00
Paul-Vincent Roll
60fcafa3b8 Fixed typo 2016-03-30 15:11:56 +02:00
Michael Teeuw
d7ef4adbc8 update gitignore to ignore new modules (except default modules) 2016-03-30 14:59:57 +02:00
Paul-Vincent Roll
c89e5785d8 Merge pull request #2 from MichMich/v2-beta
Update V2 beta from master
2016-03-30 14:54:21 +02:00
Michael Teeuw
af910aa3f7 New node_helper loading. 2016-03-30 14:49:37 +02:00
Michael Teeuw
7e873880f5 fix git ignore 2016-03-30 14:00:42 +02:00
Michael Teeuw
1be0edaf03 git ignore fix 2016-03-30 13:57:06 +02:00
Michael Teeuw
609e498973 git ignore fix 2016-03-30 13:56:53 +02:00
Michael Teeuw
1585b7a142 add git ignore for modules/node_modules 2016-03-30 13:52:32 +02:00
Michael Teeuw
c55ac659c1 Git ignore changes. 2016-03-30 13:47:57 +02:00
Michael Teeuw
1de52f7b64 Update gitignore. 2016-03-30 13:44:49 +02:00
Michael Teeuw
26a6eb506e Allow use of class.js in node. 2016-03-30 13:44:16 +02:00
Michael Teeuw
ede3e669c7 Minor visual change. 2016-03-30 13:29:44 +02:00
Michael Teeuw
d00aa21c96 git ignore changes 2016-03-30 13:19:54 +02:00
Paul-Vincent Roll
6181098f68 Merge pull request #1 from MichMich/v2-beta
Update from master v2 branch
2016-03-30 12:57:27 +02:00
Michael Teeuw
1d4c1624c4 update package.json 2016-03-30 12:49:41 +02:00
Michael Teeuw
899d05bc32 Add server (web/socket), create socket system, better helper loader.
- The Magic Mirror is now hosted via a express server, allowing you to
load it from an external client (for debugging.)
- It now includes a socket system to communicate between the
node_helper and the client module.
- node_helpers are now only loaded if the module is configured in the
config.
2016-03-30 12:20:46 +02:00
Michael Teeuw
15856574d7 Add fade option to weather forecast. 2016-03-29 16:10:50 +02:00
Michael Teeuw
c09f8e97f7 Add news feed module. 2016-03-29 15:44:43 +02:00
Michael Teeuw
4fb7f099de Output node_helper output to console. 2016-03-29 15:39:54 +02:00
Michael Teeuw
90c6283742 Add configuration instructions and todo. 2016-03-29 13:35:55 +02:00
Michael Teeuw
872d8584fb Git ignore changes. 2016-03-29 13:28:51 +02:00
Michael Teeuw
74afe433fb Add weather modules. 2016-03-29 13:28:15 +02:00
Michael Teeuw
e85d6a39f8 Merge pull request #108 from paviro/v2-beta
Updated README
2016-03-28 14:44:19 +02:00
Paul-Vincent Roll
2a41e55ff2 Updated README 2016-03-28 13:47:40 +02:00
Michael Teeuw
1e30811112 Merge pull request #107 from paviro/v2-beta
Start helper_scripts as childs
2016-03-28 13:25:46 +02:00
Paul-Vincent Roll
22f0d752ea Start helper_scripts as childs and not just import them into the main script 2016-03-28 13:23:02 +02:00
Michael Teeuw
4675bae804 Merge pull request #106 from paviro/v2-beta
This seems to be working perfect. I didn't test it yet on a Pi, but since you say this works I merge the pull request. Thanks for your contribution!
2016-03-28 12:17:51 +02:00
Paul-Vincent Roll
57bd3c5a4e Spelling mistake sorry... 2016-03-28 02:29:13 +02:00
Paul-Vincent Roll
29db2dcd14 Use latest electron version 2016-03-28 02:27:12 +02:00
Paul-Vincent Roll
df153ee1a1 Hide menu-bar on Raspberry Pi and some comments 2016-03-28 01:59:05 +02:00
Paul-Vincent Roll
331c12269c disable node-integration so jquery works again 2016-03-28 00:26:24 +02:00
Paul-Vincent Roll
d7844a1e39 electron now searches for node helper scripts on module folders 2016-03-27 22:22:04 +02:00
Paul-Vincent Roll
d96b82500a Added electron wrapper 2016-03-27 20:40:07 +02:00
Michael Teeuw
74f1da81f2 Initial version of the README. 2016-03-27 16:57:20 +02:00
Michael Teeuw
472bc529f9 Cleanup. 2016-03-24 18:13:09 +01:00
Michael Teeuw
4266c0b279 Initial commit of V2. 2016-03-24 17:19:32 +01:00
270 changed files with 41545 additions and 15104 deletions

6
.eslintignore Normal file
View File

@@ -0,0 +1,6 @@
vendor/
!/vendor/vendor.js
!/modules/default/**
!/modules/node_helper
!/modules/node_helper/**
!/modules/default/defaultmodules.js

16
.eslintrc.json Normal file
View File

@@ -0,0 +1,16 @@
{
"rules": {
"indent": ["error", "tab"],
"quotes": ["error", "double"],
"max-len": ["error", 250],
"curly": "error",
"camelcase": ["error", {"properties": "never"}],
"no-trailing-spaces": ["error"],
"no-irregular-whitespace": ["error"]
},
"env": {
"browser": true,
"node": true,
"es6": true
}
}

49
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,49 @@
Contribution Policy for MagicMirror²
====================================
Thanks for contributing to MagicMirror²!
We hold our code to standard, and these standards are documented below.
If you wish to run both linters, use `grunt` without any arguments.
### JavaScript: Run ESLint
We use [ESLint](http://eslint.org) on our JavaScript files.
Our ESLint configuration is in our .eslintrc.json and .eslintignore files.
To run ESLint, use `grunt eslint`.
### CSS: Run StyleLint
We use [StyleLint](http://stylelint.io) to lint our CSS. Our configuration is in our .stylelintrc file.
To run StyleLint, use `grunt stylelint`.
### Submitting Issues
Please only submit reproducible issues.
If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: [https://forum.magicmirror.builders/category/15/bug-hunt](https://forum.magicmirror.builders/category/15/bug-hunt)
Problems installing or configuring your MagicMirror? Check out: [https://forum.magicmirror.builders/category/10/troubleshooting](https://forum.magicmirror.builders/category/10/troubleshooting)
When submitting a new issue, please supply the following information:
**Platform**: Place your platform here... give us your web browser/Electron version *and* your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Node Version**: Make sure it's version 0.12.13 or later.
**MagicMirror Version**: Now that the versions have split, tell us if you are using the PHP version (v1) or the newer JavaScript version (v2).
**Description**: Provide a detailed description about the issue and include specific details to help us understand the problem. Adding screenshots will help describing the problem.
**Steps to Reproduce**: List the step by step process to reproduce the issue.
**Expected Results**: Describe what you expected to see.
**Actual Results**: Describe what you actually saw.
**Configuration**: What does the used config.js file look like? Don't forget to remove any sensitive information!
**Additional Notes**: Provide any other relevant notes not previously mentioned. This is optional.

24
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,24 @@
Please only submit reproducible issues.
If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: [https://forum.magicmirror.builders/category/15/bug-hunt](https://forum.magicmirror.builders/category/15/bug-hunt)
Problems installing or configuring your MagicMirror? Check out: [https://forum.magicmirror.builders/category/10/troubleshooting](https://forum.magicmirror.builders/category/10/troubleshooting)
When submitting a new issue, please supply the following information:
**Platform**: Place your platform here... give us your web browser/Electron version *and* your hardware (Raspberry Pi 2/3, Windows, Mac, Linux, System V UNIX).
**Node Version**: Make sure it's version 0.12.13 or later.
**MagicMirror Version**: Now that the versions have split, tell us if you are using the PHP version (v1) or the newer JavaScript version (v2).
**Description**: Provide a detailed description about the issue and include specific details to help us understand the problem. Adding screenshots will help describing the problem.
**Steps to Reproduce**: List the step by step process to reproduce the issue.
**Expected Results**: Describe what you expected to see.
**Actual Results**: Describe what you actually saw.
**Configuration**: What does the used config.js file look like? Don't forget to remove any sensitive information!
**Additional Notes**: Provide any other relevant notes not previously mentioned. This is optional.

7
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,7 @@
> Please send your pull requests the develop branch.
> Don't forget to add the change to CHANGELOG.md.
* Does the pull request solve a **related** issue?
* If so, can you reference the issue?
* What does the pull request accomplish? Use a list if needed.
* If it includes major visual changes please add screenshots.

BIN
.github/header.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
.github/header.psd vendored Normal file

Binary file not shown.

66
.gitignore vendored Normal file
View File

@@ -0,0 +1,66 @@
# Various Node ignoramuses.
logs
*.log
npm-debug.log*
pids
*.pid
*.seed
lib-cov
coverage
.grunt
.lock-wscript
build/Release
node_modules
jspm_modules
.npm
.node_repl_history
# Various Windows ignoramuses.
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msm
*.msp
*.lnk
# Various OSX ignoramuses.
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Various Linux ignoramuses.
.fuse_hidden*
.directory
.Trash-*
# Various Magic Mirror ignoramuses and anti-ignoramuses.
# Don't ignore the node_helper nore module.
!/modules/node_helper
!/modules/node_helper/**
# Ignore all modules except the default modules.
/modules/**
!/modules/default/**
!/modules/README.md**
# Ignore changes to the custom css files.
/css/custom.css

14
.snyk Normal file
View File

@@ -0,0 +1,14 @@
version: v1.5.2
ignore: {}
patch:
'npm:minimatch:20160620':
- snyk > recursive-readdir > minimatch:
patched: '2016-07-30T14:02:31.280Z'
'npm:negotiator:20160616':
- socket.io > engine.io > accepts > negotiator:
patched: '2016-07-30T14:02:31.280Z'
'npm:ws:20160624':
- socket.io > engine.io > ws:
patched: '2016-07-30T14:02:31.280Z'
- socket.io > socket.io-client > engine.io-client > ws:
patched: '2016-07-30T14:02:31.280Z'

5
.stylelintrc Normal file
View File

@@ -0,0 +1,5 @@
{
"extends": "stylelint-config-standard",
"font-family-name-quotes": "double-where-recommended",
"block-no-empty": false
}

7
.travis.yml Normal file
View File

@@ -0,0 +1,7 @@
language: node_js
node_js:
- "6"
- "5.1"
before_script:
- npm install grunt-cli -g
script: grunt

145
CHANGELOG.md Normal file
View File

@@ -0,0 +1,145 @@
# MagicMirror² Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [2.1.0] - 2016-12-31
**Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
### Added
- Finnish translation.
- Danish translation.
- Turkish translation.
- Option to limit access to certain IP addresses based on the value of `ipWhitelist` in the `config.js`, default is access from localhost only (Issue [#456](https://github.com/MichMich/MagicMirror/issues/456)).
- Added ability to change the point of time when calendar events get relative.
- Add Splash screen on boot.
- Add option to show humidity in currentWeather module.
- Add VSCode IntelliSense support.
- Module API: Add Visibility locking to module system. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules#visibility-locking) for more information.
- Module API: Method to overwrite the module's header. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules#getheader) for more information.
- Module API: Option to define the minimum MagicMirror version to run a module. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules#requiresversion) for more information.
- Calendar module now broadcasts the event list to all other modules using the notification system. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/calendar) for more information.
- Possibility to use the the calendar feed as the source for the weather (currentweather & weatherforecast) location data. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/weatherforecast) for more information.
- Added option to show rain amount in the weatherforecast default module
- Add module `updatenotification` to get an update whenever a new version is availabe. [See documentation](https://github.com/MichMich/MagicMirror/tree/develop/modules/default/updatenotification) for more information.
- Add the abilty to set timezone on the date display in the Clock Module
- Ability to set date format in calendar module
- Possibility to use currentweather for the compliments
- Added option `disabled` for modules.
- Added option `address` to set bind address.
- Added option `onlyTemp` for currentweather module to show show only current temperature and weather icon.
- Added option `remoteFile` to compliments module to load compliment array from filesystem.
- Added option `zoom` to scale the whole mirror display with a given factor.
- Added option `roundTemp` for currentweather and weatherforecast modules to display temperatures rounded to nearest integer.
- Added abilty set the classes option to compliments module for style and text size of compliments.
- Added ability to configure electronOptions
- Calendar module: option to hide private events
- Add root_path for global vars
### Updated
- Modified translations for Frysk.
- Modified core English translations.
- Updated package.json as a result of Snyk security update.
- Improve object instantiation to prevent reference errors.
- Improve logger. `Log.log()` now accepts multiple arguments.
- Remove extensive logging in newsfeed node helper.
- Calendar times are now uniformly capitalized.
- Modules are now secure, and Helmet is now used to prevent abuse of the Mirror's API.
### Fixed
- Solve an issue where module margins would appear when the first module of a section was hidden.
- Solved visual display errors on chrome, if all modules in one of the right sections are hidden.
- Global and Module default config values are no longer modified when setting config values.
- Hide a region if all modules in a region are hidden. Prevention unwanted margins.
- Replaced `electron-prebuilt` package with `electron` in order to fix issues that would happen after 2017.
- Documentation of alert module
## [2.0.5] - 2016-09-20
### Added
- Added ability to remove tags from the beginning or end of newsfeed items in 'newsfeed.js'.
- Added ability to define "the day after tomorrow" for calendar events (Definition for German and Dutch already included).
- Added CII Badge (we are compliant with the CII Best Practices)
- Add support for doing http basic auth when loading calendars
- Add the abilty to turn off and on the date display in the Clock Module
### Fixed
- Fix typo in installer.
- Add message to unsupported Pi error to mention that Pi Zeros must use server only mode, as ARMv6 is unsupported. Closes #374.
- Fix API url for weather API.
### Updated
- Force fullscreen when kioskmode is active.
- Update the .github templates and information with more modern information.
- Update the Gruntfile with a more functional StyleLint implementation.
## [2.0.4] - 2016-08-07
### Added
- Brazilian Portuguese Translation.
- Option to enable Kiosk mode.
- Added ability to start the app with Dev Tools.
- Added ability to turn off the date display in `clock.js` when in analog mode.
- Greek Translation
### Fixed
- Prevent `getModules()` selectors from returning duplicate entries.
- Append endpoints of weather modules with `/` to retreive the correct data. (Issue [#337](https://github.com/MichMich/MagicMirror/issues/337))
- Corrected grammer in `module.js` from 'suspend' to 'suspended'.
- Fixed openweathermap.org URL in config sample.
- Prevent currentweather module from crashing when received data object is incorrect.
- Fix issue where translation loading prevented the UI start-up when the language was set to 'en'. (Issue [#388](https://github.com/MichMich/MagicMirror/issues/388))
### Updated
- Updated package.json to fix possible vulnerabilities. (Using Snyk)
- Updated weathericons
- Updated default weatherforecast to work with the new icons.
- More detailed error message in case config file couldn't be loaded.
## [2.0.3] - 2016-07-12
### Added
- Add max newsitems parameter to the newsfeed module.
- Translations for Simplified Chinese, Traditional Chinese and Japanese.
- Polish Translation
- Add an analog clock in addition to the digital one.
### Fixed
- Edit Alert Module to display title & message if they are provided in the notification (Issue [#300](https://github.com/MichMich/MagicMirror/issues/300))
- Removed 'null' reference from updateModuleContent(). This fixes recent Edge and Internet Explorer browser displays (Issue [#319](https://github.com/MichMich/MagicMirror/issues/319))
### Changed
- Added default string to calendar titleReplace.
## [2.0.2] - 2016-06-05
### Added
- Norwegian Translations (nb and nn)
- Portuguese Translation
- Swedish Translation
### Fixed
- Added reference to Italian Translation.
- Added the missing NE translation to all languages. [#334](https://github.com/MichMich/MagicMirror/issues/344)
- Added proper User-Agent string to calendar call.
### Changed
- Add option to use locationID in weather modules.
## [2.0.1] - 2016-05-18
### Added
- Changelog
- Italian Translation
### Changed
- Improve the installer by fetching the latest Node.js without any 3rd party interferences.
## [2.0.0] - 2016-05-03
### Initial release of MagicMirror²
It includes (but is not limited to) the following features:
- Modular system allowing 3rd party plugins.
- An Node/Electron based application taking away the need for external servers or browsers.
- A complete development API documentation.
- Small cute fairies that kiss you while you sleep.
## [1.0.0] - 2014-02-16
### Initial release of MagicMirror.
This was part of the blogpost: [http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the](http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the)

69
Gruntfile.js Normal file
View File

@@ -0,0 +1,69 @@
module.exports = function(grunt) {
require("time-grunt")(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
eslint: {
options: {
configFile: ".eslintrc.json"
},
target: ["js/*.js", "modules/default/*.js", "modules/default/*/*.js",
"serveronly/*.js", "*.js", "!modules/default/alert/notificationFx.js",
"!modules/default/alert/modernizr.custom.js", "!modules/default/alert/classie.js"
]
},
stylelint: {
simple: {
options: {
configFile: ".stylelintrc"
},
src: ["css/main.css", "modules/default/calendar/calendar.css", "modules/default/clock/clock_styles.css", "modules/default/currentweather/currentweather.css", "modules/default/weatherforcast/weatherforcast.css"]
}
},
jsonlint: {
main: {
src: ["package.json", ".eslintrc.json", ".stylelint"],
options: {
reporter: "jshint"
}
}
},
markdownlint: {
all: {
options: {
config: {
"default": true,
"line-length": false,
"blanks-around-headers": false,
"no-duplicate-header": false,
"no-inline-html": false,
"MD010": false,
"MD001": false,
"MD031": false,
"MD040": false,
"MD002": false,
"MD029": false,
"MD041": false,
"MD032": false,
"MD036": false,
"MD037": false,
"MD009": false,
"MD018": false,
"MD012": false,
"MD026": false,
"MD038": false
}
},
src: ["README.md", "CHANGELOG.md", "LICENSE.md", "modules/README.md", "modules/default/**/*.md", "!modules/default/calendar/vendor/ical.js/readme.md"]
}
},
yamllint: {
all: [".travis.yml"]
}
});
grunt.loadNpmTasks("grunt-eslint");
grunt.loadNpmTasks("grunt-stylelint");
grunt.loadNpmTasks("grunt-jsonlint");
grunt.loadNpmTasks("grunt-yamllint");
grunt.loadNpmTasks("grunt-markdownlint");
grunt.registerTask("default", ["eslint", "stylelint", "jsonlint", "markdownlint", "yamllint"]);
};

18
LICENSE.md Normal file
View File

@@ -0,0 +1,18 @@
The MIT License (MIT)
=====================
Copyright © 2016 Michael Teeuw
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the “Software”), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
**The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.**

152
README.md
View File

@@ -1,52 +1,140 @@
MagicMirror
===========
![MagicMirror²: The open source modular smart mirror platform. ](.github/header.png)
##Introduction
<p align="center">
<a href="https://david-dm.org/MichMich/MagicMirror"><img src="https://david-dm.org/MichMich/MagicMirror.svg" alt="Dependency Status"></a>
<a href="https://david-dm.org/MichMich/MagicMirror#info=devDependencies"><img src="https://david-dm.org/MichMich/MagicMirror/dev-status.svg" alt="devDependency Status"></a>
<a href="https://bestpractices.coreinfrastructure.org/projects/347"><img src="https://bestpractices.coreinfrastructure.org/projects/347/badge"></a>
<a href="http://choosealicense.com/licenses/mit"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
<a href="https://travis-ci.org/MichMich/MagicMirror"><img src="https://travis-ci.org/MichMich/MagicMirror.svg" alt="Travis"></a>
<a href="https://snyk.io/test/github/MichMich/MagicMirror"><img src="https://snyk.io/test/github/MichMich/MagicMirror/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/MichMich/MagicMirror" style="max-width:100%;"></a>
</p>
The super magic interface of my personal Magic Mirror. More information about this project can be found on my [blog](http://michaelteeuw.nl/tagged/magicmirror).
**MagicMirror²** is an open source modular smart mirror platform. With a growing list of installable modules, the **MagicMirror²** allows you to convert your hallway or bathroom mirror into your personal assistant. **MagicMirror²** is built by the creator of [the original MagicMirror](http://michaelteeuw.nl/tagged/magicmirror) with the incredible help of a [growing community of contributors](https://github.com/MichMich/MagicMirror/graphs/contributors).
Runs as a php script on a web server with basically no external dependencies. *Can use socket.io for XBEE integration, but isn't required for basic functionality*.
MagicMirror² focuses on a modular plugin system and uses [Electron](http://electron.atom.io/) as an application wrapper. So no more web server or browser installs necessary!
## Table Of Contents
- [Usage](#usage)
- [Configuration](#configuration)
- [Modules](#modules)
- [Known Issues](#known-issues)
- [community](#community)
- [Contributing Guidelines](#contributing-guidelines)
## Usage
### Raspberry Pi Support
Electron, the app wrapper around MagicMirror², only supports the Raspberry Pi 2 & 3. The Raspberry Pi 1 is currently **not** supported. If you want to run this on a Raspberry Pi 1, use the [server only](#server-only) feature and setup a fullscreen browser yourself.
### Automatic Installer (Raspberry Pi Only!)
Execute the following command on your Raspberry Pi to install MagicMirror²:
````
curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash
````
### Manual Installation
1. Download and install the latest Node.js version.
2. Clone the repository and check out the beta branch: `git clone https://github.com/MichMich/MagicMirror`
3. Enter the repository: `cd ~/MagicMirror`
4. Install and run the app: `npm install && npm start`
**Important:** `npm start` does **not** work via SSH, use `DISPLAY=:0 nohup npm start &` instead. This starts the mirror on the remote display.
**Note:** if you want to debug on Raspberry Pi you can use `npm start dev` which will start the MagicMirror app with Dev Tools enabled.
### Server Only
In some cases, you want to start the application without an actual app window. In this case, execute the following command from the MagicMirror folder: `node serveronly`. This will start the server, after which you can open the application in your browser of choice.
### Raspberry Configuration & Auto Start.
The following wiki links are helpful in the configuration of your MagicMirror² operating system:
- [Configuring the Raspberry Pi](https://github.com/MichMich/MagicMirror/wiki/Configuring-the-Raspberry-Pi)
- [Auto Starting MagicMirror](https://github.com/MichMich/MagicMirror/wiki/Auto-Starting-MagicMirror)
### Updating your MagicMirror²
If you want to update your MagicMirror² to the latest version, use your terminal to go to your Magic Mirror folder and type the following command:
```bash
git pull && npm install
```
If you changed nothing more than the config or the modules, this should work without any problems.
Type `git status` to see your changes, if there are any, you can reset them with `git reset --hard`. After that, git pull should be possible.
## Configuration
1. Duplicate `config/config.js.sample` to `config/config.js`.
2. Modify your required settings.
The following properties can be configured:
| **Option** | **Description** |
| --- | --- |
| `port` | The port on which the MagicMirror² server will run on. The default value is `8080`. |
| `address` | The ip address the accept connections. The default open bind `::` is IPv6 is available or `0.0.0.0` IPv4 run on. Example config: `192.168.10.100`. |
| `ipWhitelist` | The list of IPs from which you are allowed to access the MagicMirror². The default value is `["127.0.0.1", "::ffff:127.0.0.1", "::1"]`. It is possible to specify IPs with subnet masks (`["127.0.0.1", "127.0.0.1/24"]`) or define ip ranges (`["127.0.0.1", ["192.168.0.1", "192.168.0.100"]]`).|
| `zoom` | This allows to scale the mirror contents with a given zoom factor. The default value is `1.0`|
| `language` | The language of the interface. (Note: Not all elements will be localized.) Possible values are `en`, `nl`, `ru`, `fr`, etc., but the default value is `en`. |
| `timeFormat` | The form of time notation that will be used. Possible values are `12` or `24`. The default is `24`. |
| `units` | The units that will be used in the default weather modules. Possible values are `metric` or `imperial`. The default is `metric`. |
| `modules` | An array of active modules. **The array must contain objects. See the next table below for more information.** |
| `electronOptions` | An optional array of Electron (browser) options. This allows configuration of e.g. the browser screen size and position (defaults `.width = 800` & `.height = 600`). Kiosk mode can be enabled by setting `.kiosk = true`, `.autoHideMenuBar = false`, `.fullscreen = false`. More options can be found [here](https://github.com/electron/electron/blob/master/docs/api/browser-window.md). |
##Configuration
Module configuration:
Modify `js/config.js` to change some general variables (language, weather location, compliments, news feed RSS and to add your own ICS calendar)
| **Option** | **Description** |
| --- | --- |
| `module` | The name of the module. This can also contain the subfolder. Valid examples include `clock`, `default/calendar` and `custommodules/mymodule`. |
| `position` | The location of the module in which the module will be loaded. Possible values are `top_ bar`, `top_left`, `top_center`, `top_right`, `upper_third`, `middle_center`, `lower_third`, `bottom_left`, `bottom_center`, `bottom_right`, `bottom_bar`, `fullscreen_above`, and `fullscreen_below`. This field is optional but most modules require this field to set. Check the documentation of the module for more information. Multiple modules with the same position will be ordered based on the order in the configuration file. |
| `classes` | Additional classes which are passed to the module. The field is optional. |
| `header` | To display a header text above the module, add the header property. This field is optional. |
| `disabled` | Set disabled to `true` to skip creating the module. This field is optional. |
| `config` | An object with the module configuration properties. Check the documentation of the module for more information. This field is optional, unless the module requires extra configuration. |
To use the OpenWeatherMap API, you'll need a free API key. Checkout [this blogpost](http://michaelteeuw.nl/post/131504229357/what-happened-to-the-weather) for more information.
## Modules
##Code
The following modules are installed by default.
###[main.js](js/main.js)
- [**Clock**](modules/default/clock)
- [**Calendar**](modules/default/calendar)
- [**Current Weather**](modules/default/currentweather)
- [**Weather Forecast**](modules/default/weatherforecast)
- [**News Feed**](modules/default/newsfeed)
- [**Compliments**](modules/default/compliments)
- [**Hello World**](modules/default/helloworld)
- [**Alert**](modules/default/alert)
This file initiates the separate pieces of functionality that will appear in the view. It also includes various utility functions that are used to update what is visible.
For more available modules, check out out the wiki page: [MagicMirror² Modules](https://github.com/MichMich/MagicMirror/wiki/MagicMirror²-Modules). If you want to build your own modules, check out the [MagicMirror² Module Development Documentation](modules) and don't forget to add it to the wiki and the [forum](https://forum.magicmirror.builders/category/7/showcase)!
###[Calendar](js/calendar)
## Known issues
Parsing functionality for the calendar that retrieves and updates the calendar based on the interval set at the top of the [calendar.js](js/calendar/calendar.js) file. This was actually a straight pull from the original main.js file but the parsing code may deserve an upgrade.
- Electron seems to have some issues on certain Raspberry Pi 2's. See [#145](https://github.com/MichMich/MagicMirror/issues/145).
- MagicMirror² (Electron) sometimes quits without an error after an extended period of use. See [#150](https://github.com/MichMich/MagicMirror/issues/150).
###[Compliments](js/compliments)
## Community
Functionality related to inserting compliments into the view and rotating them based on a specific interval set at the top of the [compliments.js](js/compliments/compliments.js) file.
The community around the MagicMirror² is constantly growing. We even have a [forum](https://forum.magicmirror.builders) now where you can share your ideas, ask questions, help others and get inspired by other builders. We would love to see you there!
###[News](js/news)
## Contributing Guidelines
Takes an array of news feeds (or a single string) from the config file and retrieves each one so that it can be displayed in a loop based on the interval set at the top of the [news.js](js/news/news.js) file.
Contributions of all kinds are welcome, not only in the form of code but also with regards bug reports and documentation.
###[Time](js/time)
Please keep the following in mind:
Updates the time on the screen on one second interval.
- **Bug Reports**: Make sure you're running the latest version. If the issue(s) still persist: please open a clearly documented issue with a clear title.
- **Minor Bug Fixes**: Please send a pull request with a clear explanation of the issue or a link to the issue it solves.
- **Major Bug Fixes**: please discuss your approach in an GitHub issue before you start to alter a big part of the code.
- **New Features**: please please discuss in a GitHub issue before you start to alter a big part of the code. Without discussion upfront, the pull request will not be accepted / merged.
###[Version](js/version)
Thanks for your help in making MagicMirror² better!
Checks the git version and refreshes if a new version has been pulled.
###[Weather](js/weather)
Takes the user's inserted location, language, unit type, and OpenWeatherMap API key and grabs the five day weather forecast from OpenWeatherMap. You need to set the API key in the config for this to work. (See *configuration*.)
##Extensions
###[MagicMirror-Extensions by PaViRo](https://github.com/paviro/MagicMirror-Extensions)
**Current features:** FRITZ!Box Callmonitor <br>
**Future features:** Faceregognition, personalized views, online banking through HBCI and multiple calenders based on faceregognition.
<p align="center">
<br>
<a href="https://forum.magicmirror.builders/topic/728/magicmirror-is-voted-number-1-in-the-magpi-top-50"><img src="https://magicmirror.builders/img/magpi-best-watermark-custom.png" width="150" alt="MagPi Top 50"></a>
</p>

2
config/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!config.js.sample

82
config/config.js.sample Normal file
View File

@@ -0,0 +1,82 @@
/* Magic Mirror Config Sample
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*/
var config = {
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
language: 'en',
timeFormat: 24,
units: 'metric',
modules: [
{
module: 'alert',
},
{
module: "updatenotification",
position: "top_bar"
},
{
module: 'clock',
position: 'top_left'
},
{
module: 'calendar',
header: 'US Holidays',
position: 'top_left',
config: {
calendars: [
{
symbol: 'calendar-check-o ',
url: 'webcal://www.calendarlabs.com/templates/ical/US-Holidays.ics'
}
]
}
},
{
module: 'compliments',
position: 'lower_third'
},
{
module: 'currentweather',
position: 'top_right',
config: {
location: 'New York',
locationID: '', //ID from http://www.openweathermap.org
appid: 'YOUR_OPENWEATHER_API_KEY'
}
},
{
module: 'weatherforecast',
position: 'top_right',
header: 'Weather Forecast',
config: {
location: 'New York',
locationID: '5128581', //ID from http://www.openweathermap.org
appid: 'YOUR_OPENWEATHER_API_KEY'
}
},
{
module: 'newsfeed',
position: 'bottom_bar',
config: {
feeds: [
{
title: "New York Times",
url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
}
],
showSourceTitle: true,
showPublishDate: true
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== 'undefined') {module.exports = config;}

View File

@@ -1,5 +0,0 @@
<?php
include "functions/gzip.php";
$url = $_GET["url"];
echo get_url($url);
?>

View File

@@ -1,42 +0,0 @@
<?php
/*
* @function get_url
* @purpose To fetch GZipped web content.
* @author Michael Teeuw
*/
function get_url($url) {
/*
* @array
* Prepare the options that we need for our GZip request.
*/
$opts = array(
"http" => array(
"method" => "GET",
"header" => "Accept-Language: en-US,en;q=0.8rn" . "Accept-Encoding: gzip,deflate,sdchrn" . "Accept-Charset:UTF-8,*;q=0.5rn" . "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.4rn",
"ignore_errors" => true
),
/*
* @array
* Put a Band-Aid over some SSL issues.
*/
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false
)
);
$context = stream_context_create($opts);
$content = file_get_contents($url, false, $context);
/*
* @note If http response header mentions that content is gzipped, then uncompress it.
*/
foreach($http_response_header as $c => $h) {
if(stristr($h, "content-encoding") and stristr($h, "gzip")) {
/*
* @note Now, let's begin the actual purpose of this function:
*/
$content = gzinflate(substr($content, 10, -8));
}
}
return $content;
}
?>

View File

@@ -1,7 +0,0 @@
<?php
echo json_encode(
array(
"gitHash" => trim(`git rev-parse HEAD`)
)
);
?>

14
css/custom.css Normal file
View File

@@ -0,0 +1,14 @@
/*****************************************************
* Magic Mirror *
* Custom CSS *
* *
* By Michael Teeuw http://michaelteeuw.nl *
* MIT Licensed. *
* *
* Add any custom CSS below. *
* Changes to this files will be ignored by GIT. *
*****************************************************/
body {
}

View File

@@ -1,224 +1,230 @@
body,
html {
cursor: none;
overflow: hidden;
}
::-webkit-scrollbar {
display: none;
}
body {
margin: 60px;
position: absolute;
height: calc(100% - 120px);
width: calc(100% - 120px);
background: #000;
padding: 0px;
margin: 0px;
width: 100%;
height: 100%;
font-family: "HelveticaNeue-Light", sans-serif;
letter-spacing: -2px;
color: #fff;
font-size: 75px;
color: #aaa;
font-family: "Roboto Condensed", sans-serif;
font-weight: 400;
font-size: 2em;
line-height: 1.5em;
-webkit-font-smoothing: antialiased;
text-rendering: geometricprecision;
}
.wi {
line-height: 75px;
/**
* Default styles.
*/
.dimmed {
color: #666;
}
.top {
position: absolute;
top: 50px;
.normal {
color: #999;
}
.left {
position: absolute;
left: 50px;
}
.right {
position: absolute;
right: 50px;
text-align: right;
}
.center-ver {
position: absolute;
top: 50%;
height: 200px;
margin-top: -100px;
line-height: 100px;
}
.lower-third {
position: absolute;
top: 66.666%;
height: 200px;
margin-top: -100px;
line-height: 100px;
}
.center-hor {
position: absolute;
right: 50px;
left: 50px;
text-align: center;
}
.bottom {
position: absolute;
bottom: 50px;
}
.xxsmall,
.xsmall,
.small {
font-family: "HelveticaNeue-Medium", sans-serif;
letter-spacing: 0;
}
.xxsmall {
font-size: 15px;
}
.xxsmall .wi {
line-height: 15px;
.bright {
color: #fff;
}
.xsmall {
font-size: 20px;
}
.xsmall .wi {
font-size: 15px;
line-height: 20px;
}
.small {
font-size: 25px;
}
.small .wi {
font-size: 20px;
line-height: 25px;
}
.medium {
font-size: 35px;
letter-spacing: -1px;
font-family: "HelveticaNeue-Light", sans-serif;
}
.medium .wi {
font-size: 30px;
line-height: 35px;
}
.xdimmed {
color: #666;
.large {
font-size: 65px;
line-height: 65px;
}
.dimmed {
color: #aaa;
.xlarge {
font-size: 75px;
line-height: 75px;
letter-spacing: -3px;
}
.thin {
font-family: Roboto, sans-serif;
font-weight: 100;
}
.light {
font-family: "HelveticaNeue-UltraLight", sans-serif;
font-family: "Roboto Condensed", sans-serif;
font-weight: 300;
}
.icon {
position: relative;
top: -10px;
display: inline-block;
font-size: 45px;
padding-right: 5px;
font-weight: 100;
margin-right: 10px;
}
.icon-small {
position: relative;
display: inline-block;
font-size: 20px;
padding-left: 10px;
padding-right: -10px;
font-weight: 100;
}
.time .sec {
font-size: 25px;
color: #666;
padding-left: 5px;
position: relative;
top: -35px;
}
.forecast-table {
float: right;
text-align: right;
font-size: 20px;
line-height: 20px;
}
.forecast-table .day,
.forecast-table .temp-min,
.forecast-table .temp-max {
width: 50px;
text-align: right;
}
.forecast-table .temp-max {
width: 60px;
}
.forecast-table .day {
color: #999;
}
.calendar-table {
font-size: 14px;
line-height: 20px;
margin-top: 10px;
}
.calendar-table .days {
padding-left: 20px;
text-align: right;
}
.dishwasher {
background-color: white;
color: black;
margin: 0 200px;
font-size: 60px;
border-radius: 1000px;
border-radius: 1200px;
display: none;
}
@font-face {
font-family: 'HelveticaNeue-UltraLight';
src: url('font/HelveticaNeue-UltraLight.eot');
/* IE9 Compat Modes */
src: url('font/HelveticaNeue-UltraLight.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('font/HelveticaNeue-UltraLight.woff') format('woff'), /* Modern Browsers */
url('font/HelveticaNeue-UltraLight.ttf') format('truetype'), /* Safari, Android, iOS */
url('font/HelveticaNeue-UltraLight.svg#9453ea8da727d260bcdbfa605bdbb5d2') format('svg');
/* Legacy iOS */
font-style: normal;
font-weight: 100;
}
@font-face {
font-family: 'HelveticaNeue-Medium';
src: url('font/HelveticaNeue-Medium.eot');
/* IE9 Compat Modes */
src: url('font/HelveticaNeue-Medium.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('font/HelveticaNeue-Medium.woff') format('woff'), /* Modern Browsers */
url('font/HelveticaNeue-Medium.ttf') format('truetype'), /* Safari, Android, iOS */
url('font/HelveticaNeue-Medium.svg#d7af0fd9278f330eed98b60dddea7bd6') format('svg');
/* Legacy iOS */
font-style: normal;
.regular {
font-family: "Roboto Condensed", sans-serif;
font-weight: 400;
}
@font-face {
font-family: 'HelveticaNeue-Light';
src: url('font/HelveticaNeue-Light.eot');
/* IE9 Compat Modes */
src: url('font/HelveticaNeue-Light.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('font/HelveticaNeue-Light.woff') format('woff'), /* Modern Browsers */
url('font/HelveticaNeue-Light.ttf') format('truetype'), /* Safari, Android, iOS */
url('font/HelveticaNeue-Light.svg#7384ecabcada72f0e077cd45d8e1c705') format('svg');
/* Legacy iOS */
font-style: normal;
font-weight: 200;
}
.bold {
font-family: "Roboto Condensed", sans-serif;
font-weight: 700;
}
.align-right {
text-align: right;
}
.align-left {
text-align: left;
}
header {
text-transform: uppercase;
font-size: 15px;
font-family: "Roboto Condensed";
font-weight: 400;
border-bottom: 1px solid #666;
line-height: 15px;
padding-bottom: 5px;
margin-bottom: 10px;
color: #999;
}
sup {
font-size: 50%;
line-height: 50%;
}
/**
* Module styles.
*/
.module {
margin-bottom: 30px;
}
.region.bottom .module {
margin-top: 30px;
margin-bottom: 0;
}
/**
* Region Definitions.
*/
.region {
position: absolute;
}
.region.fullscreen {
position: absolute;
top: -60px;
left: -60px;
right: -60px;
bottom: -60px;
}
.region.right {
right: 0;
}
.region.top {
top: 0;
}
.region.top .container {
margin-bottom: 25px;
}
.region.top .container:empty {
margin-bottom: 0;
}
.region.top.center,
.region.bottom.center {
left: 50%;
-moz-transform: translateX(-50%);
-o-transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
.region.top.right,
.region.top.left,
.region.top.center {
top: 100%;
}
.region.bottom {
bottom: 0;
}
.region.bottom .container {
margin-top: 25px;
}
.region.bottom .container:empty {
margin-top: 0;
}
.region.bottom.right,
.region.bottom.center,
.region.bottom.left {
bottom: 100%;
}
.region.bar {
width: 100%;
text-align: center;
}
.region.third,
.region.middle.center {
width: 100%;
text-align: center;
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
.region.upper.third {
top: 33%;
}
.region.middle.center {
top: 50%;
}
.region.lower.third {
top: 66%;
}
.region.left {
text-align: left;
}
.region.right {
text-align: right;
}
.region table {
width: 100%;
border-spacing: 0;
border-collapse: separate;
}

View File

@@ -1,327 +0,0 @@
/*!
* Weather Icons Beta 1
* Weather themed icons for Bootstrap
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
* http://twitter.com/Erik_UX
*
* License
* ------------------------------------------------------------------------------
* - Fpmt licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS and LESS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Aweosme
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*
* Weather Icons Bootstrap Package Author - Erik Flowers - erik@helloerik.com
* Weather Icons gives full credit for inspiration to Font Awesome and makes no
* claim to invention, intellectual property, or ownership of methodology.
*
* Support Open Source!
*
* ------------------------------------------------------------------------------
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
*/
@font-face {
font-family: 'weather';
src: url('../font/weathericons-regular-webfont.eot');
src: url('../font/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../font/weathericons-regular-webfont.woff') format('woff'), url('../font/weathericons-regular-webfont.ttf') format('truetype'), url('../font/weathericons-regular-webfont.svg#weathericons-regular-webfontRg') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="wi-"],
[class*=" wi-"] {
font-family: weather;
font-weight: normal;
font-style: normal;
text-decoration: inherit;
text-transform: none;
-webkit-font-smoothing: antialiased;
*margin-right: .3em;
}
[class^="wi-"]:before,
[class*=" wi-"]:before {
text-decoration: inherit;
display: inline-block;
speak: none;
}
.wi-day-cloudy-gusts:before {
content: "\f000";
}
.wi-day-cloudy-windy:before {
content: "\f001";
}
.wi-day-cloudy:before {
content: "\f002";
}
.wi-day-fog:before {
content: "\f003";
}
.wi-day-hail:before {
content: "\f004";
}
.wi-day-lightning:before {
content: "\f005";
}
.wi-day-rain-mix:before {
content: "\f006";
}
.wi-day-rain-wind:before {
content: "\f007";
}
.wi-day-rain:before {
content: "\f008";
}
.wi-day-showers:before {
content: "\f009";
}
.wi-day-snow:before {
content: "\f00a";
}
.wi-day-sprinkle:before {
content: "\f00b";
}
.wi-day-sunny-overcast:before {
content: "\f00c";
}
.wi-day-sunny:before {
content: "\f00d";
}
.wi-day-storm-showers:before {
content: "\f00e";
}
.wi-day-thunderstorm:before {
content: "\f010";
}
.wi-cloudy-gusts:before {
content: "\f011";
}
.wi-cloudy-windy:before {
content: "\f012";
}
.wi-cloudy:before {
content: "\f013";
}
.wi-fog:before {
content: "\f014";
}
.wi-hail:before {
content: "\f015";
}
.wi-lightning:before {
content: "\f016";
}
.wi-rain-mix:before {
content: "\f017";
}
.wi-rain-wind:before {
content: "\f018";
}
.wi-rain:before {
content: "\f019";
}
.wi-showers:before {
content: "\f01a";
}
.wi-snow:before {
content: "\f01b";
}
.wi-sprinkle:before {
content: "\f01c";
}
.wi-storm-showers:before {
content: "\f01d";
}
.wi-thunderstorm:before {
content: "\f01e";
}
.wi-windy:before {
content: "\f021";
}
.wi-night-alt-cloudy-gusts:before {
content: "\f022";
}
.wi-night-alt-cloudy-windy:before {
content: "\f023";
}
.wi-night-alt-hail:before {
content: "\f024";
}
.wi-night-alt-lightning:before {
content: "\f025";
}
.wi-night-alt-rain-mix:before {
content: "\f026";
}
.wi-night-alt-rain-wind:before {
content: "\f027";
}
.wi-night-alt-rain:before {
content: "\f028";
}
.wi-night-alt-showers:before {
content: "\f029";
}
.wi-night-alt-snow:before {
content: "\f02a";
}
.wi-night-alt-sprinkle:before {
content: "\f02b";
}
.wi-night-alt-storm-showers:before {
content: "\f02c";
}
.wi-night-alt-thunderstorm:before {
content: "\f02d";
}
.wi-night-clear:before {
content: "\f02e";
}
.wi-night-cloudy-gusts:before {
content: "\f02f";
}
.wi-night-cloudy-windy:before {
content: "\f030";
}
.wi-night-cloudy:before {
content: "\f031";
}
.wi-night-hail:before {
content: "\f032";
}
.wi-night-lightning:before {
content: "\f033";
}
.wi-night-rain-mix:before {
content: "\f034";
}
.wi-night-rain-wind:before {
content: "\f035";
}
.wi-night-rain:before {
content: "\f036";
}
.wi-night-showers:before {
content: "\f037";
}
.wi-night-snow:before {
content: "\f038";
}
.wi-night-sprinkle:before {
content: "\f039";
}
.wi-night-storm-showers:before {
content: "\f03a";
}
.wi-night-thunderstorm:before {
content: "\f03b";
}
.wi-celcius:before {
content: "\f03c";
}
.wi-cloud-down:before {
content: "\f03d";
}
.wi-cloud-refresh:before {
content: "\f03e";
}
.wi-cloud-up:before {
content: "\f040";
}
.wi-cloud:before {
content: "\f041";
}
.wi-degrees:before {
content: "\f042";
}
.wi-down-left:before {
content: "\f043";
}
.wi-down:before {
content: "\f044";
}
.wi-fahrenheit:before {
content: "\f045";
}
.wi-horizon-alt:before {
content: "\f046";
}
.wi-horizon:before {
content: "\f047";
}
.wi-left:before {
content: "\f048";
}
.wi-lightning:before {
content: "\f016";
}
.wi-night-fog:before {
content: "\f04a";
}
.wi-refresh-alt:before {
content: "\f04b";
}
.wi-refresh:before {
content: "\f04c";
}
.wi-right:before {
content: "\f04d";
}
.wi-sprinkles:before {
content: "\f04e";
}
.wi-strong-wind:before {
content: "\f050";
}
.wi-sunrise:before {
content: "\f051";
}
.wi-sunset:before {
content: "\f052";
}
.wi-thermometer-exterior:before {
content: "\f053";
}
.wi-thermometer-internal:before {
content: "\f054";
}
.wi-thermometer:before {
content: "\f055";
}
.wi-tornado:before {
content: "\f056";
}
.wi-up-right:before {
content: "\f057";
}
.wi-up:before {
content: "\f058";
}
.wi-wind-east:before {
content: "\f059";
}
.wi-wind-north-east:before {
content: "\f05a";
}
.wi-wind-north-west:before {
content: "\f05b";
}
.wi-wind-north:before {
content: "\f05c";
}
.wi-wind-south-east:before {
content: "\f05d";
}
.wi-wind-south-west:before {
content: "\f05e";
}
.wi-wind-south:before {
content: "\f060";
}
.wi-wind-west:before {
content: "\f061";
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -1,121 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="weather_iconsregular" horiz-adv-x="2548" >
<font-face units-per-em="2048" ascent="1755" descent="-293" />
<missing-glyph horiz-adv-x="685" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="2048" />
<glyph unicode=" " horiz-adv-x="685" />
<glyph unicode="&#x09;" horiz-adv-x="685" />
<glyph unicode="&#xa0;" horiz-adv-x="685" />
<glyph unicode="&#x2000;" horiz-adv-x="1122" />
<glyph unicode="&#x2001;" horiz-adv-x="2245" />
<glyph unicode="&#x2002;" horiz-adv-x="1122" />
<glyph unicode="&#x2003;" horiz-adv-x="2245" />
<glyph unicode="&#x2004;" horiz-adv-x="748" />
<glyph unicode="&#x2005;" horiz-adv-x="561" />
<glyph unicode="&#x2006;" horiz-adv-x="374" />
<glyph unicode="&#x2007;" horiz-adv-x="374" />
<glyph unicode="&#x2008;" horiz-adv-x="280" />
<glyph unicode="&#x2009;" horiz-adv-x="449" />
<glyph unicode="&#x200a;" horiz-adv-x="124" />
<glyph unicode="&#x202f;" horiz-adv-x="449" />
<glyph unicode="&#x205f;" horiz-adv-x="561" />
<glyph unicode="&#xe000;" horiz-adv-x="571" d="M0 0z" />
<glyph unicode="&#xf000;" d="M-287 90q0 -38 29 -64q27 -27 65 -27h627q41 0 72.5 -30t31.5 -73t-31.5 -74t-72.5 -31t-73 32q-29 26 -65 26q-38 0 -64 -25.5t-26 -63.5t26 -64q85 -85 202 -85q118 0 201 83.5t83 201.5t-83 202t-201 84h-627q-38 0 -66 -27.5t-28 -64.5zM-287 411q0 -35 29 -61 q27 -27 65 -27h1170q118 0 201.5 83.5t83.5 201.5t-83 200t-202 82q-121 0 -201 -81q-25 -26 -25 -65t24.5 -63.5t63.5 -24.5q38 0 66 25q30 30 72 30t72.5 -30t30.5 -73t-30.5 -74t-72.5 -31h-1170q-38 0 -66 -27.5t-28 -64.5zM-3 662q0 -13 17 -13h153q12 0 22 15 q36 87 111.5 143.5t169.5 63.5l56 8q20 0 20 18l7 55q17 173 146 289t304 116q176 0 305.5 -115.5t147.5 -289.5l7 -62q0 -19 19 -19h174q144 0 245.5 -100.5t101.5 -242.5q0 -143 -101.5 -244.5t-245.5 -101.5h-736q-19 0 -19 -19v-146q0 -18 19 -18h736q143 0 264.5 71 t192 193t70.5 265q0 118 -45 216q121 159 121 353q0 150 -75 279t-204 204.5t-279 75.5q-248 0 -413 -185q-128 65 -285 65q-225 0 -398 -139.5t-220 -356.5q-136 -32 -240.5 -131t-145.5 -234v-4q-2 -3 -2 -9zM869 1838q0 -38 28 -64l65 -69q26 -26 65 -26q40 0 65.5 24.5 t25.5 64.5q0 38 -24 64l-70 69q-25 28 -63 28t-65 -26.5t-27 -64.5zM1437 1368q115 109 264 109q155 0 267 -112t112 -268q0 -104 -55 -195q-153 153 -369 153h-35q-38 173 -184 313zM1609 1927q0 -37 27 -62.5t65 -25.5t64.5 25.5t26.5 62.5v218q0 38 -26.5 65t-64.5 27 t-65 -27t-27 -65v-218zM2201 1685q0 -39 24 -64q27 -27 65 -27.5t61 27.5l156 153q27 27 27 65q0 37 -27 64t-65 27t-64 -26l-153 -157q-24 -25 -24 -62zM2283 423q0 -37 27 -64l68 -69q32 -26 67 -26q30 0 62 26q27 27 27 64q0 35 -27 65l-68 69q-26 26 -62 26 q-40 0 -67 -26.5t-27 -64.5zM2445 1097q0 -39 26 -63q24 -28 62 -28h216q37 0 64 27t27 64q0 38 -27 65t-64 27h-216q-38 0 -63 -27t-25 -65z" />
<glyph unicode="&#xf001;" d="M-253 94q0 -38 27 -65q70 -29 93 -29h840q38 0 65 27.5t27 65.5q0 37 -27 62.5t-65 25.5h-840q-42 0 -81 -25.5t-39 -61.5zM-104 414q0 -38 27 -63q24 -28 62 -28h1004q38 0 64.5 26.5t26.5 64.5t-26.5 65t-64.5 27h-1004q-37 0 -63 -27t-26 -65zM8 667q0 -14 18 -14h149 q19 0 23 14q41 85 115.5 140.5t168.5 66.5h59q17 0 17 20l8 60q16 173 146 290t306 117q174 0 304.5 -117t148.5 -290l8 -60q0 -20 18 -20h172q142 0 245 -102t103 -242q0 -144 -102.5 -246.5t-245.5 -102.5h-735q-19 0 -19 -20v-142q0 -19 19 -19h735q144 0 266 71t193 193 t71 266q0 114 -47 214q125 155 125 350q0 150 -76 279t-205.5 204.5t-280.5 75.5q-117 0 -223.5 -47.5t-185.5 -133.5q-132 69 -288 69q-226 0 -401 -140t-223 -358q-136 -34 -239.5 -133.5t-144.5 -235.5q-2 -2 -2 -7zM85 -246q0 -39 27 -63q26 -27 63 -27h1004 q37 0 63.5 26.5t26.5 63.5q0 40 -26 66.5t-64 26.5h-1004q-38 0 -64 -26.5t-26 -66.5zM882 1835q0 -39 27 -64l67 -70q26 -26 64 -26q41 0 67 25.5t26 65.5q0 36 -27 63l-68 69q-27 27 -62 27q-40 0 -67 -26.5t-27 -63.5zM1455 1368q106 101 260 101q156 0 265.5 -109.5 t109.5 -265.5q0 -107 -49 -193q-151 152 -372 152h-32q-46 184 -182 315zM1625 1925q0 -38 26.5 -63t63.5 -25q40 0 65 25t25 63v218q0 39 -25.5 65.5t-64.5 26.5q-37 0 -63.5 -27t-26.5 -65v-218zM2215 1681q0 -39 26 -64q20 -26 64 -26q43 0 63 26l157 154q26 24 26 66 q0 37 -27 63.5t-65 26.5t-65 -25l-153 -158q-26 -25 -26 -63zM2299 416q0 -38 26 -64l69 -67q39 -29 65 -29q27 0 66 29q26 26 26 64q0 37 -26 65l-69 65q-30 28 -69 28q-38 0 -63 -26t-25 -65zM2454 1090q0 -40 28 -65q29 -27 64 -27h217q36 0 63 27t27 65q0 36 -26.5 60.5 t-63.5 24.5h-217q-39 0 -65.5 -24.5t-26.5 -60.5z" />
<glyph unicode="&#xf002;" d="M8 528q0 -144 70.5 -266t191.5 -192.5t264 -70.5h1155q143 0 265 70.5t193 192.5t71 266q0 106 -45 213q122 149 122 353q0 114 -44 217.5t-119 178.5t-178.5 119t-217.5 44q-237 0 -414 -186q-124 70 -288 70q-225 0 -398 -139.5t-222 -357.5q-179 -41 -292.5 -184 t-113.5 -328zM190 528q0 134 89.5 231t224.5 113l53 3q20 0 20 19l7 58q22 173 150 289.5t300 116.5q176 0 306.5 -117t146.5 -289l8 -62q4 -18 22 -18h172q141 0 243 -102t102 -242q0 -145 -101.5 -247.5t-243.5 -102.5h-1155q-140 0 -242 103.5t-102 246.5zM905 1837 q0 -39 26 -67l70 -68q40 -30 68 -27q33 0 59 27.5t26 66.5t-28 63l-63 70q-29 26 -65 26q-39 0 -66 -26.5t-27 -64.5zM1475 1365q111 107 261 107q158 0 268.5 -110t110.5 -268q0 -100 -54 -196q-155 153 -372 153h-34q-40 174 -180 314zM1648 1928q0 -41 25 -66t63 -25 q41 0 66 25t25 66v218q0 38 -25.5 63t-65.5 25q-38 0 -63 -25t-25 -63v-218zM2237 1683q0 -41 24 -66q34 -26 66 -26q29 0 63 26l153 153q26 29 26 68q0 38 -26 64t-63 26q-38 0 -62 -26l-157 -153q-24 -28 -24 -66zM2322 421q0 -38 27 -67l69 -67q24 -26 62 -26t63.5 26.5 t25.5 66.5q0 36 -26 62l-69 69q-26 26 -61 26q-38 0 -64.5 -26t-26.5 -64zM2478 1094q0 -37 28 -62q26 -26 65 -26h218q37 0 61.5 25t24.5 63t-24.5 64.5t-61.5 26.5h-218q-38 0 -65.5 -27t-27.5 -64z" />
<glyph unicode="&#xf003;" d="M-290 85q0 -38 26.5 -63t66.5 -25h1997q38 0 64.5 25.5t26.5 62.5q0 38 -26.5 64.5t-64.5 26.5h-1997q-40 0 -66.5 -26.5t-26.5 -64.5zM-10 419q0 -37 27 -62q27 -29 64 -29h1997q37 0 62.5 26.5t25.5 64.5q0 37 -25 62.5t-63 25.5h-1997q-38 0 -64.5 -25.5t-26.5 -62.5z M2 675q0 -14 17 -14h154q10 0 21 17q38 83 113.5 136t166.5 60l59 8q18 0 18 19l7 54q17 173 146.5 289t304.5 116q173 0 302 -115t147 -286l8 -62q0 -18 21 -18h171q103 0 187.5 -55t125.5 -146q11 -17 22 -17h153q22 0 15 24l-22 59q122 151 122 353q0 113 -44 216 t-118 178t-178 119t-218 44q-247 0 -408 -179q-135 67 -286 67q-224 0 -399 -141t-224 -359q-284 -75 -381 -357q-3 -5 -3 -10zM176 -243q0 -38 29 -64q25 -28 62 -28h1999q38 0 65 27.5t27 64.5t-27 61.5t-65 24.5h-1999q-38 0 -64.5 -24.5t-26.5 -61.5zM877 1834 q0 -38 25 -63l68 -68q27 -29 63 -29t63 26.5t27 65.5t-26 67l-68 65q-26 28 -64 28q-39 0 -63.5 -26.5t-24.5 -65.5zM1443 1367q108 108 260 108q157 0 267.5 -111t110.5 -267q0 -104 -52 -192q-152 152 -371 152h-35q-44 186 -180 310zM1615 1925q0 -37 25.5 -62.5 t62.5 -25.5q40 0 67 25.5t27 62.5v218q0 37 -28 64t-66 27q-37 0 -62.5 -26.5t-25.5 -64.5v-218zM2201 1682q0 -37 25 -64q59 -58 132 0l152 153q26 28 26 68q0 37 -26 63t-63 26q-38 0 -64 -26l-157 -157q-25 -27 -25 -63zM2287 424q0 -38 27 -64l69 -69q26 -26 62 -26 q33 0 65 26q26 28 26 68q0 36 -26 60l-69 70q-28 26 -64 26q-38 0 -64 -26.5t-26 -64.5zM2445 1097q0 -39 28 -64q24 -27 63 -27h218q37 0 62.5 26.5t25.5 64.5t-25.5 64t-62.5 26h-218q-38 0 -64.5 -26.5t-26.5 -63.5z" />
<glyph unicode="&#xf004;" d="M1 530q0 -214 149 -367.5t363 -163.5q20 0 20 18v143q0 19 -20 19q-137 7 -233.5 109.5t-96.5 241.5q0 133 90.5 231t224.5 114l57 4q21 0 21 19l7 59q17 173 146.5 289.5t305.5 116.5q174 0 305.5 -116.5t149.5 -289.5l8 -62q0 -20 19 -20h172q143 0 247.5 -102.5 t104.5 -242.5q0 -139 -97 -241.5t-234 -109.5q-21 0 -21 -19v-143q0 -18 21 -18q214 7 362.5 161.5t148.5 369.5q0 116 -45 214q126 154 126 355q0 151 -75.5 280.5t-205 205.5t-280.5 76q-250 0 -416 -187q-128 70 -290 70q-226 0 -401.5 -140t-225.5 -359 q-177 -42 -292 -186t-115 -329zM570 -223q16 -35 49 -48q32 -16 67.5 -2.5t47.5 47.5q16 35 2.5 69t-47.5 47q-32 17 -66 3t-50 -50q-16 -28 -3 -66zM639 80q0 -22 10 -41q31 -49 95 -49q51 0 74 69l111 343q13 39 -7.5 71.5t-58.5 39.5q-35 11 -67.5 -6.5t-43.5 -53.5 l-110 -344q-3 -15 -3 -29zM838 -519q0 -21 5 -31q14 -35 48 -48q15 -8 37 -8q10 0 32 6q35 13 50.5 48.5t-0.5 70.5t-48 48.5t-66 -0.5q-31 -12 -44.5 -37.5t-13.5 -48.5zM903 1843q0 -40 26 -64l69 -69q26 -26 58 -29q33 -5 65.5 24.5t32.5 68.5q0 38 -26 64l-67 68 q-30 27 -67 27q-39 0 -65 -26t-26 -64zM917 -232q0 -26 16.5 -51t50.5 -35q18 -4 26 -4q24 0 41 8q32 13 46 61l192 655q11 38 -6 69.5t-53 41.5q-38 11 -70 -6t-43 -54l-197 -660q-3 -15 -3 -25zM1285 -191q0 -22 6 -33q14 -33 48 -47q17 -8 37 -8q10 0 32 6q36 14 49 47 q13 35 0.5 67.5t-44.5 48.5q-36 17 -70.5 3t-51.5 -50q-6 -11 -6 -34zM1361 83q0 -25 16.5 -48.5t49.5 -33.5q13 -3 27 -3q62 0 84 65l110 339q12 37 -7 69t-55 42q-38 11 -68.5 -6t-42.5 -54l-109 -341q-5 -22 -5 -29zM1475 1371q107 103 266 103q156 0 266.5 -109.5 t110.5 -265.5q0 -100 -55 -197q-153 154 -374 154h-33q-47 185 -181 315zM1648 1933q0 -38 27.5 -65t65.5 -27q37 0 62.5 27t25.5 65v220q0 38 -25.5 65t-62.5 27q-38 0 -65.5 -27t-27.5 -65v-220zM2240 1689q0 -39 27 -64q24 -28 61.5 -27.5t64.5 27.5l154 154q29 24 29 64 q0 38 -27.5 65t-65.5 27q-35 0 -61 -29l-155 -153q-27 -25 -27 -64zM2326 419q0 -36 26 -64l70 -67q23 -29 64 -29q38 0 61 29q29 26 29 64t-29 65l-69 66q-25 28 -62 28t-63.5 -27t-26.5 -65zM2482 1099q0 -38 28 -64q28 -28 66 -28h217q38 0 65.5 27t27.5 65 q0 37 -27 62.5t-66 25.5h-217q-40 0 -67 -25.5t-27 -62.5z" />
<glyph unicode="&#xf005;" d="M5 528q0 -213 148 -366t362 -163q19 0 19 18v146q0 19 -19 19q-139 11 -234 110.5t-95 235.5q0 134 91 233.5t224 110.5l56 8q20 0 20 18l7 54q17 173 146.5 289.5t304.5 116.5q174 0 304 -116t149 -290l7 -62q0 -18 19 -18h172q145 0 247 -101t102 -243 q0 -136 -95 -235.5t-234 -110.5q-20 0 -20 -19v-146q0 -18 20 -18q213 7 361 161t148 368q0 108 -50 221q126 150 126 349q0 114 -44.5 217.5t-119 178.5t-178 119t-216.5 44q-247 0 -414 -185q-137 66 -284 66q-227 0 -401.5 -139t-223.5 -359q-176 -41 -290.5 -184.5 t-114.5 -327.5zM805 -674h32l566 837q6 7 3 14.5t-14 7.5h-233l244 449q12 23 -14 23h-315q-13 0 -23 -15l-229 -610q-4 -22 15 -22h230zM898 1841q0 -39 27 -66l69 -69q67 -51 129 0q27 30 27 68q0 36 -27 63l-67 69q-30 27 -66 27q-38 0 -65 -27.5t-27 -64.5zM1469 1369 q109 109 264 109q156 0 266 -111t110 -269q0 -97 -54 -193q-156 150 -369 150h-33q-43 182 -184 314zM1641 1933q0 -40 26 -66t66 -26q38 0 63 25.5t25 66.5v218q0 38 -25 63t-63 25t-65 -25t-27 -63v-218zM2230 1686q0 -38 28 -64q29 -27 60 -27q26 0 66 27l153 153 q28 30 28 67q0 39 -27 65t-65 26q-35 0 -62 -27l-153 -153q-28 -30 -28 -67zM2317 425q0 -37 26 -65l68 -70q26 -26 62 -26q38 0 65 27.5t27 66.5q0 35 -28 61l-65 70q-30 25 -66 25q-38 0 -63.5 -26t-25.5 -63zM2472 1098q0 -36 27 -61q27 -27 64 -27h219q38 0 64.5 25.5 t26.5 62.5q0 38 -27 65t-64 27h-219q-37 0 -64 -27t-27 -65z" />
<glyph unicode="&#xf006;" d="M1 523q0 -212 146 -363t360 -161q19 0 19 18v142q0 19 -19 19q-137 7 -231 106.5t-94 238.5q0 135 90 234t224 110l56 8q17 0 17 15l8 59q20 175 147.5 290t302.5 115t305.5 -115t147.5 -287l7 -62q4 -18 23 -18h171q142 0 244 -102.5t102 -246.5q0 -139 -94 -238.5 t-231 -106.5q-21 0 -21 -19v-142q0 -18 21 -18q213 7 359 159t146 365q0 108 -41 214q124 154 124 357q0 113 -44 216.5t-119 178.5t-178.5 119.5t-217.5 44.5q-246 0 -412 -186q-143 70 -292 70q-226 0 -398.5 -140t-221.5 -360q-180 -41 -293 -184.5t-113 -329.5z M573 -227q0 -27 17 -54t50 -37q37 -11 68.5 4t42.5 60l15 65q8 36 -10 67.5t-55 42.5q-36 11 -68.5 -8t-42.5 -57l-15 -63q-2 -6 -2 -20zM654 82q0 -35 26 -61q25 -27 61 -27q38 0 64 25.5t26 62.5t-26 62.5t-64 25.5q-37 0 -62 -25t-25 -63zM719 325q-2 -25 14 -48.5 t51 -34.5q33 -10 66.5 7.5t44.5 54.5l30 96q12 39 -7.5 69.5t-58.5 41.5q-35 11 -67 -7t-43 -53l-27 -98q-3 -27 -3 -28zM842 -560q0 -27 17 -52.5t52 -35.5q14 -3 26 -3q69 0 85 65l15 63q10 40 -9 72.5t-57 39.5q-34 11 -66.5 -7.5t-43.5 -54.5l-15 -63q-4 -18 -4 -24z M902 1834q0 -38 26 -64l70 -68q22 -25 57.5 -27.5t66.5 27.5q27 27 27 63q0 37 -27 64l-67 69q-25 25 -63 28q-37 0 -63.5 -27t-26.5 -65zM926 -250q0 -36 26 -62t62 -26q38 0 63 25t25 63q0 37 -25 62t-63 25t-63 -25t-25 -62zM992 -8q-2 -24 14.5 -50t48.5 -32 q37 -10 68 6t44 60l28 96q11 35 -7.5 67t-56.5 43q-35 11 -68 -8.5t-44 -56.5l-24 -96q-3 -14 -3 -29zM1287 -237q0 -27 16 -51.5t49 -34.5q5 0 15 -2t15 -2q65 0 81 70l15 64q11 34 -7.5 67t-54.5 44q-39 10 -71.5 -8.5t-43.5 -56.5l-11 -63q0 -2 -1.5 -12t-1.5 -15z M1366 78q0 -37 26 -61q24 -26 62 -26t63 25t25 62q0 38 -25 63t-63 25t-63 -25t-25 -63zM1431 325q0 -27 17.5 -51.5t52.5 -34.5q3 0 12.5 -2t14.5 -2q17 0 39 10q33 17 43 56l27 96q10 36 -8 67.5t-54 42.5q-37 11 -68.5 -6t-42.5 -54l-30 -97q0 -3 -1.5 -11.5t-1.5 -13.5z M1469 1361q106 106 262 106q158 0 269 -108.5t111 -264.5q0 -106 -57 -200q-157 157 -373 157h-33q-45 176 -179 310zM1645 1923q0 -37 24.5 -61.5t61.5 -24.5q39 0 66 24.5t27 61.5v220q0 37 -27.5 64t-65.5 27q-37 0 -61.5 -26.5t-24.5 -64.5v-220zM2233 1681 q0 -40 24 -64q57 -57 129 0l153 153q27 27 27 67q0 38 -26.5 64.5t-64.5 26.5q-37 0 -65 -26l-153 -158q-24 -23 -24 -63zM2317 417q0 -38 28 -63l65 -67q32 -26 65 -26q32 0 64 26q27 25 27 63q0 36 -27 66l-69 65q-24 27 -61 27t-64 -27q-28 -26 -28 -64zM2474 1094 q0 -38 28 -63q29 -29 66 -29h216q37 0 62.5 27t25.5 65t-25.5 64.5t-62.5 26.5h-216q-38 0 -66 -27t-28 -64z" />
<glyph unicode="&#xf007;" d="M-3 527q0 -180 106.5 -321.5t274.5 -188.5q16 -2 27 8l124 150q-143 0 -244.5 103.5t-101.5 248.5q0 134 90 231.5t225 113.5l53 3q20 0 20 20l8 58q17 173 147 290t306 117t307 -117t148 -290l7 -63q7 -18 23 -18h174q141 0 243.5 -101.5t102.5 -243.5 q0 -135 -90.5 -236t-220.5 -112q-78 -9 -96 -30l-235 -301q-22 -30 -17 -67t33 -60q24 -27 63.5 -22t63.5 38l206 262q98 10 185.5 56t150.5 116t100 163t37 193q0 117 -44 214q125 151 125 355q0 113 -44.5 217t-120 179t-179.5 120t-218 45q-241 0 -415 -186 q-127 70 -289 70q-226 0 -400.5 -140.5t-221.5 -359.5q-181 -41 -297 -185t-116 -329zM413 -352q12 -35 49 -51q35 -16 71 -1t49 50q15 33 0.5 66.5t-47.5 49.5q-35 16 -70.5 2t-48.5 -49q-13 -41 -3 -67zM606 -59v-12q3 -35 32 -59q28 -24 67 -21t61 31l233 301 q23 29 19.5 67.5t-31.5 60.5q-29 24 -67 20t-64 -33l-230 -299q-20 -25 -20 -56zM661 -578q0 -14 5 -32q14 -35 49 -49q18 -7 38 -7q15 0 33 5q34 13 47 47q16 35 3 71t-47 49q-35 16 -71.5 1.5t-48.5 -48.5q-8 -17 -8 -37zM839 -325v-11q3 -37 34 -62q24 -26 64 -21.5 t64 36.5l442 558q22 32 18.5 68.5t-32.5 62.5q-29 23 -66 18.5t-60 -33.5l-445 -561q-19 -23 -19 -55zM901 1839q0 -39 28 -63l65 -70q25 -25 59 -28q33 -5 65.5 24t32.5 68q0 36 -26 64l-69 69q-24 26 -63 26q-38 0 -65 -26t-27 -64zM1215 -447q0 -19 7 -33q14 -35 48 -49 q17 -8 36 -8q10 0 32 6q36 14 49 49q16 35 3 70.5t-47 48.5q-35 16 -71.5 2t-49.5 -48q-7 -18 -7 -38zM1472 1368q113 103 264 103q158 0 270 -109.5t112 -265.5q0 -106 -55 -198q-155 155 -372 155h-35q-44 184 -184 315zM1645 1929q0 -37 26.5 -62.5t64.5 -25.5 q39 0 66 25.5t27 62.5v221q0 37 -27.5 64t-65.5 27t-64.5 -26.5t-26.5 -64.5v-221zM2240 1686q0 -38 24 -64q28 -27 65.5 -27.5t60.5 27.5l159 154q26 26 26 65q0 37 -27.5 65t-65.5 28q-35 0 -64 -27l-154 -157q-24 -26 -24 -64zM2322 416q0 -37 27 -64l69 -67 q26 -26 59 -29h5q29 0 67 29q26 26 26 62q0 38 -26 67l-70 66q-25 27 -63 27q-40 0 -67 -26.5t-27 -64.5zM2482 1096q0 -37 27 -64q26 -29 64 -29h218q37 0 64 27.5t27 65.5q0 37 -26.5 62.5t-64.5 25.5h-218q-38 0 -64.5 -25.5t-26.5 -62.5z" />
<glyph unicode="&#xf008;" d="M5 529q0 -213 148.5 -366.5t363.5 -163.5q18 0 18 18v143q0 18 -18 18q-137 7 -234 109.5t-97 241.5q0 132 91 230t225 114l56 5q20 0 20 18l7 58q17 173 147 290t305 117q174 0 304.5 -117t148.5 -290l8 -61q0 -20 19 -20h172q142 0 246 -102t104 -242 q0 -139 -96 -241.5t-233 -109.5q-21 0 -21 -18v-143q0 -18 21 -18q213 7 361 161.5t148 368.5q0 117 -44 214q124 154 124 353q0 152 -75.5 281.5t-204.5 204.5t-280 75q-248 0 -413 -186q-131 70 -289 70q-226 0 -401.5 -140.5t-224.5 -358.5q-177 -42 -291.5 -185.5 t-114.5 -327.5zM581 -202q0 -27 17 -52.5t52 -35.5q18 -4 30 -4q62 0 81 68l169 627q11 38 -8.5 71t-56.5 40q-35 11 -67.5 -7t-43.5 -54l-169 -630q-4 -16 -4 -23zM858 -531q0 -30 16 -55.5t55 -31.5q18 -4 29 -4q25 0 47.5 18.5t28.5 51.5l256 953q10 37 -7 68.5t-53 42.5 q-37 11 -69.5 -7t-42.5 -54l-256 -953q0 -3 -2 -13.5t-2 -15.5zM904 1840q0 -39 26 -65l70 -70q32 -24 65 -24q34 0 62 25t28 63q0 39 -26 68l-67 69q-29 27 -64 27q-40 0 -67 -27.5t-27 -65.5zM1302 -205q0 -26 16.5 -50.5t49.5 -34.5q18 -4 26 -4q29 0 53.5 15.5 t31.5 52.5l169 627q10 37 -8 68.5t-54 42.5q-38 11 -69.5 -7t-41.5 -54l-169 -630q-4 -18 -4 -26zM1475 1368q113 107 264 107q157 0 267.5 -110.5t110.5 -268.5q0 -100 -55 -197q-155 155 -373 155h-34q-45 185 -180 314zM1648 1928q0 -37 26.5 -62.5t64.5 -25.5 q37 0 62.5 25t25.5 63v219q0 41 -25 67t-63 26q-40 0 -65.5 -26.5t-25.5 -66.5v-219zM2238 1685q0 -39 28 -63q22 -25 59 -27.5t67 27.5l153 153q29 27 29 67q0 39 -27 65t-66 26q-33 0 -62 -27l-153 -154q-28 -27 -28 -67zM2325 421q0 -38 26 -67l68 -67q28 -22 64 -22 l3 -2q36 0 62 26t26 65q0 38 -29 62l-65 70q-29 26 -66 26t-63 -26.5t-26 -64.5zM2480 1096q0 -39 27 -63q28 -28 67 -28h217q37 0 64 26.5t27 64.5t-27 65.5t-64 27.5h-217q-38 0 -66 -27.5t-28 -65.5z" />
<glyph unicode="&#xf009;" d="M1 530q0 -213 148.5 -365.5t362.5 -163.5q18 0 18 18v143q0 19 -18 19q-136 7 -231 108.5t-95 240.5q0 133 90 230.5t225 113.5l52 4q21 0 21 19l7 57q17 173 146.5 289.5t304.5 116.5t305 -116.5t146 -289.5l8 -61q0 -19 19 -19h178q140 0 242 -102t102 -242 q0 -136 -95.5 -237t-230.5 -112q-18 0 -18 -19v-143q0 -18 18 -18q140 4 256 76.5t182.5 192t66.5 260.5q0 114 -44 209q121 150 121 350q0 114 -44 217.5t-119 178.5t-178.5 119t-217.5 44q-241 0 -406 -177q-127 68 -291 68q-226 0 -399 -139.5t-220 -357.5 q-180 -41 -296 -184t-116 -328zM579 -184q0 -29 17 -56.5t49 -38.5q31 -11 65.5 6.5t46.5 58.5l26 112q11 33 -7.5 66.5t-54.5 44.5q-40 10 -72 -9t-39 -57l-29 -106q-2 -14 -2 -21zM718 319q0 -61 68 -84q35 -12 68 5.5t44 56.5l27 110q11 33 -7.5 66t-54.5 45 q-39 10 -71 -8.5t-39 -55.5l-32 -109q-3 -14 -3 -26zM848 -522q0 -26 18 -53t52 -38q1 0 10.5 -1.5t15.5 -1.5q22 0 39 8q30 13 44 62l29 106q11 37 -7.5 69.5t-54.5 42.5q-37 11 -69.5 -7.5t-42.5 -54.5l-29 -109q-5 -20 -5 -23zM897 1832q0 -40 28 -66l69 -69 q54 -54 125 0q26 28 26 65t-26 65l-66 70q-26 26 -64 26t-65 -27t-27 -64zM992 -11q0 -27 17 -54t50 -37q37 -11 68 5t43 60l27 108q11 37 -7 69.5t-54 43.5q-40 11 -72.5 -8.5t-39.5 -56.5l-30 -110q-2 -6 -2 -20zM1289 -195q4 -59 68 -88l26 -4q26 0 51 17t35 53l30 108 q10 38 -9.5 70.5t-56.5 39.5q-33 11 -66 -7.5t-44 -54.5l-29 -109zM1438 313q0 -26 16.5 -51.5t48.5 -34.5l27 -3q31 0 55 19t30 50l30 106q11 37 -7.5 69t-54.5 42q-37 11 -68.5 -6.5t-41.5 -53.5l-32 -113q-3 -13 -3 -24zM1473 1365q106 102 256 102q157 0 268.5 -110.5 t111.5 -267.5q0 -88 -51 -188q-153 153 -370 153h-35q-43 180 -180 311zM1638 1923q0 -40 25.5 -65.5t65.5 -25.5t66 25.5t26 65.5v215q0 40 -26 66t-66 26t-65.5 -26t-25.5 -66v-215zM2230 1678q0 -40 24 -65q33 -27 66 -27q30 0 63 27l153 153q26 29 26 67t-26 64t-63 26 t-65 -26l-154 -153q-24 -28 -24 -66zM2314 416q0 -37 28 -67l66 -68q33 -33 66 -33q30 0 62 33q29 29 28 65.5t-28 63.5l-69 70q-26 26 -61 26q-38 0 -65 -26.5t-27 -63.5zM2471 1089q0 -36 26 -62t62 -26h218q41 0 67 25t26 63q0 40 -26.5 66t-66.5 26h-218 q-37 0 -62.5 -27t-25.5 -65z" />
<glyph unicode="&#xf00a;" d="M1 525q0 -138 68 -257t185.5 -191t256.5 -76q18 0 18 18v142q0 20 -18 20q-136 7 -232.5 108.5t-96.5 235.5q0 132 90.5 230t223.5 114l56 6q19 0 19 20l8 54q17 175 146 291.5t304 116.5q174 0 304 -116.5t147 -288.5l8 -62q0 -18 18 -18h172q144 0 246 -102.5 t102 -244.5q0 -134 -96.5 -235.5t-231.5 -108.5q-20 0 -20 -20v-142q0 -18 20 -18q212 7 360 160t148 364q0 121 -46 217q126 151 126 352q0 150 -75 278.5t-204 203.5t-279 75q-246 0 -413 -185q-130 70 -286 70q-225 0 -399.5 -139.5t-223.5 -356.5q-179 -44 -292 -187 t-113 -328zM678 93q0 -38 25.5 -65t62.5 -27t62.5 27t25.5 65q0 36 -25.5 62t-62.5 26t-62.5 -26t-25.5 -62zM678 -294q0 -33 26 -61q28 -26 62 -26q38 0 63 25t25 62q0 38 -25 63t-63 25t-63 -25t-25 -63zM896 1832q0 -39 26 -63l70 -70q26 -26 57 -27q33 -5 65 23.5 t32 67.5t-26 68l-67 65q-24 27 -63 27q-40 0 -67 -26.5t-27 -64.5zM1017 -112q0 -36 26 -64q26 -26 62 -26q38 0 65 26t27 64q0 37 -27 63.5t-65 26.5q-36 0 -62 -26.5t-26 -63.5zM1017 272q0 -36 26 -62t62 -26q38 0 65 25.5t27 62.5t-27 63t-65 26q-36 0 -62 -26t-26 -63z M1017 -502q0 -35 26 -61q27 -27 62 -27q38 0 65 25t27 63q0 37 -27 64t-65 27q-35 0 -61.5 -27t-26.5 -64zM1361 93q0 -38 26 -65t63 -27t62.5 27t25.5 65q0 36 -25.5 62t-62.5 26t-63 -26t-26 -62zM1361 -294q0 -34 25 -61q28 -26 64 -26q38 0 63 25t25 62q0 38 -25 63 t-63 25t-63.5 -25.5t-25.5 -62.5zM1465 1365q110 106 263 106q155 0 265 -111t110 -266q0 -100 -54 -196q-153 153 -371 153h-33q-47 186 -180 314zM1637 1921q0 -37 26.5 -62t64.5 -25t63 25t25 62v218q0 38 -25.5 65t-62.5 27t-64 -27t-27 -65v-218zM2224 1679 q0 -37 27 -63q24 -25 59.5 -27.5t66.5 27.5l153 153q28 28 28 65q0 38 -27 65t-65 27q-34 0 -61 -27l-154 -156q-27 -25 -27 -64zM2310 421q0 -40 26 -66l69 -67q39 -26 67 -26q33 0 59.5 27.5t26.5 65.5q0 36 -28 62l-66 69q-28 26 -65 26t-63 -26.5t-26 -64.5zM2464 1094 q0 -37 29 -63q27 -29 65 -29h216q37 0 64 27t27 65t-26.5 64.5t-64.5 26.5h-216q-38 0 -66 -27t-28 -64z" />
<glyph unicode="&#xf00b;" d="M-2 529q0 -139 67.5 -258.5t184.5 -191.5t256 -78q20 0 20 18v142q0 20 -20 20q-136 7 -232 108.5t-96 239.5q0 132 90 229.5t223 113.5l56 3q21 0 21 19l8 58q17 173 145.5 289t303.5 116q172 0 302.5 -116.5t149.5 -288.5l6 -62q0 -18 19 -18h172q141 0 245 -102 t104 -241q0 -138 -96 -239.5t-233 -108.5q-20 0 -20 -20v-142q0 -18 20 -18q139 4 256 76.5t184 192.5t67 259q0 118 -44 213q124 152 124 352q0 151 -75 279.5t-203 203t-278 74.5q-248 0 -413 -185q-131 70 -287 70q-225 0 -399.5 -139.5t-223.5 -356.5 q-176 -42 -290 -185t-114 -326zM627 435q0 -61 45.5 -104t108.5 -43q64 0 106.5 42.5t42.5 104.5q0 40 -37 107.5t-69 105.5q-34 36 -43 45l-38 -43q-43 -46 -79.5 -110t-36.5 -105zM893 1834q0 -41 26 -65l68 -70q68 -51 130 0q26 31 26 68t-26 63l-68 69q-30 27 -65 27 q-39 0 -65 -27t-26 -65zM945 13q0 -105 72.5 -176.5t175.5 -71.5q104 0 176.5 73t72.5 175q0 87 -85 210q-74 97 -136 159q-13 9 -28 24l-25 -24q-57 -52 -136 -157q-87 -121 -87 -212zM1102 719q0 -40 30.5 -69t73.5 -29q41 0 70 29t29 69q0 66 -99 171l-27 -27 q-29 -31 -53 -74t-24 -70zM1462 1365q106 106 263 106q156 0 265 -110t109 -267q0 -96 -54 -196q-154 153 -371 153h-34q-46 186 -178 314zM1633 1926q0 -38 27.5 -65t64.5 -27t61.5 27t24.5 65v217q0 38 -24.5 63t-61.5 25q-38 0 -65 -25t-27 -63v-217zM2221 1679 q0 -39 27 -63q28 -26 59 -26q29 0 66 26l153 153q28 28 28 66q0 39 -26.5 65t-64.5 26q-35 0 -62 -27l-153 -153q-27 -27 -27 -67zM2306 423q0 -40 25 -68l70 -62q23 -29 63 -29q39 0 62 29q28 25 28 62q0 36 -28 62l-65 69q-28 26 -66 26q-37 0 -63 -26t-26 -63zM2461 1094 q0 -36 27 -62q28 -26 66 -26h216q38 0 65 25.5t27 62.5t-27 64t-65 27h-216q-38 0 -65.5 -27t-27.5 -64z" />
<glyph unicode="&#xf00c;" horiz-adv-x="1971" d="M-282 899q0 -43 30 -71t77 -28h180q43 0 73.5 28.5t30.5 70.5q0 46 -30 76t-74 30h-180q-47 0 -77 -29.5t-30 -76.5zM-94 239q0 -155 113.5 -268.5t268.5 -113.5h731q155 0 265.5 112t110.5 270q0 79 -21 131q133 85 210.5 226.5t77.5 302.5q0 130 -51 248.5t-136.5 204 t-204 136.5t-247.5 51q-175 0 -322.5 -86t-232 -233t-84.5 -321v-36q-160 -91 -211 -266q-121 -38 -194 -135t-73 -223zM73 1750q0 -45 28 -72l172 -180q75 -57 150 0q30 30 30 75q0 43 -30 75l-176 175q-34 31 -74 31q-45 0 -72.5 -30t-27.5 -74zM118 239q0 67 43 115 t109 54l66 9q21 0 21 24l10 60q11 92 77.5 154t157.5 62q93 0 161.5 -62t79.5 -154l10 -69q10 -24 26 -24h140q69 0 120 -50t51 -119q0 -71 -51 -122.5t-120 -51.5h-731q-72 0 -121 51t-49 123zM590 921q11 175 135 294t298 119q178 0 302.5 -127t124.5 -308 q0 -112 -54 -207.5t-147 -154.5q-94 78 -217 78q-47 140 -164.5 223t-265.5 83h-12zM919 1854q0 -44 30.5 -74.5t73.5 -30.5q44 0 74.5 30.5t30.5 74.5v250q0 42 -30.5 70.5t-74.5 28.5q-43 0 -73.5 -28.5t-30.5 -70.5v-250zM1593 230q0 -43 29 -75l175 -173q66 -68 149 0 q29 27 29 72q0 42 -29 71l-179 179q-29 27 -73 27t-72.5 -29t-28.5 -72zM1593 1575q0 -45 29 -77q29 -29 72 -29q44 0 73 29l179 180q29 27 29 72q0 44 -30.5 74t-74.5 30q-42 0 -73 -31l-175 -175q-29 -29 -29 -73zM1869 899q0 -43 30 -71t77 -28h179q43 0 73.5 28.5 t30.5 70.5q0 46 -30 76t-74 30h-179q-47 0 -77 -29.5t-30 -76.5z" />
<glyph unicode="&#xf00d;" horiz-adv-x="1828" d="M-248 771q0 39 27 66q28 26 64 26h218q37 0 61.5 -27t24.5 -65t-24.5 -64.5t-61.5 -26.5h-218q-37 0 -64 27t-27 64zM57 32q0 37 25 65l157 152q24 25 63 25q38 0 63.5 -24t25.5 -61q0 -39 -26 -68l-152 -152q-65 -51 -131 0q-25 27 -25 63zM57 1509q0 37 25 65 q31 26 68 26q35 0 63 -26l152 -157q26 -24 26 -63q0 -38 -25.5 -63.5t-63.5 -25.5q-39 0 -63 26l-157 152q-25 27 -25 66zM329 771q0 149 75 277.5t203.5 203.5t277.5 75q112 0 215 -44.5t177.5 -119t118.5 -177.5t44 -215q0 -150 -74.5 -278t-202.5 -202.5t-278 -74.5 t-278 74.5t-203 202.5t-75 278zM510 771q0 -156 109.5 -266.5t265.5 -110.5t266.5 110.5t110.5 266.5q0 154 -110.5 263t-266.5 109q-155 0 -265 -109t-110 -263zM794 -58q0 38 26.5 64t64.5 26q39 0 65 -26t26 -64v-212q0 -39 -26.5 -66t-64.5 -27t-64.5 27t-26.5 66v212z M794 1595v218q0 37 27 64t64 27t64 -27t27 -64v-218q0 -37 -26.5 -61.5t-64.5 -24.5t-64.5 24.5t-26.5 61.5zM1383 189q0 37 24 60q24 25 60 25q39 0 64 -25l156 -152q26 -28 26 -65t-26 -63q-64 -50 -128 0l-152 152q-24 27 -24 68zM1383 1354q0 40 24 63l152 157 q28 26 63 26q38 0 64.5 -27t26.5 -64q0 -40 -26 -66l-156 -152q-29 -26 -64 -26q-36 0 -60 25.5t-24 63.5zM1624 771q0 38 26 66q26 26 61 26h216q37 0 64.5 -27.5t27.5 -64.5t-27.5 -64t-64.5 -27h-216q-37 0 -62 26.5t-25 64.5z" />
<glyph unicode="&#xf00e;" d="M-1 530q0 -179 106.5 -320t275.5 -188l-70 -181q-8 -23 15 -23h227l-152 -449h31l465 604q6 7 1.5 14.5t-15.5 7.5h-233l265 496q12 23 -14 23h-316q-15 0 -25 -16l-114 -307q-115 29 -190 123.5t-75 215.5q0 135 90 233t225 114l54 3q19 0 24 15l8 63 q17 173 146.5 290.5t305.5 117.5q174 0 305.5 -117.5t149.5 -290.5l8 -63q0 -18 18 -18h173q143 0 246 -102.5t103 -244.5q0 -139 -95.5 -241.5t-232.5 -109.5q-21 0 -21 -19v-143q0 -18 21 -18q141 4 258.5 76.5t185.5 193t68 261.5q0 117 -46 215q122 154 122 351 q0 152 -75.5 281.5t-205 205t-281.5 75.5q-115 0 -224 -48t-188 -133q-129 69 -289 69q-227 0 -402.5 -140.5t-224.5 -359.5q-177 -41 -292.5 -186t-115.5 -330zM872 -528q0 -24 17 -50t49 -36q18 -4 27 -4q24 0 41 8q33 13 45 61l30 110q10 40 -9 71.5t-57 39.5 q-33 11 -66 -8t-45 -55l-27 -111q-5 -22 -5 -26zM897 1841q0 -38 26 -64l70 -70q25 -25 58 -28q33 -5 65.5 24t32.5 68q0 37 -27 64l-67 70q-26 26 -64 26q-40 0 -67 -26t-27 -64zM1015 -16q-1 -26 15 -50.5t51 -34.5q34 -11 66.5 6.5t44.5 59.5l32 110q11 35 -8.5 67.5 t-57.5 43.5q-36 11 -68.5 -7.5t-43.5 -56.5l-27 -112q-4 -18 -4 -26zM1317 -195q0 -23 11 -42q21 -34 58 -46q18 -6 30 -6q20 0 33 8q32 12 48 64l26 108q11 38 -6.5 69.5t-53.5 41.5q-37 11 -69.5 -7t-43.5 -54l-30 -111q-3 -14 -3 -25zM1463 319q0 -28 17.5 -53.5 t52.5 -35.5q27 -9 65 5q31 13 45 61l30 107q10 40 -8.5 71.5t-56.5 39.5q-36 11 -68 -6.5t-43 -53.5l-31 -113q-3 -21 -3 -22zM1474 1369q107 103 261 103q157 0 267.5 -109.5t110.5 -266.5q0 -105 -50 -193q-154 154 -375 154h-33q-47 190 -181 312zM1643 1931 q0 -38 27 -65t65 -27t63.5 26.5t25.5 65.5v220q0 39 -25.5 65.5t-63.5 26.5t-65 -27t-27 -65v-220zM2239 1687q0 -39 25 -64q22 -25 58.5 -27.5t67.5 27.5l154 154q27 25 27 64t-27 64q-26 28 -64 28q-37 0 -62 -28l-154 -154q-25 -25 -25 -64zM2322 416q0 -37 27 -64 l69 -67q29 -27 65 -27l3 -2q35 0 58 29q27 26 27 64t-27 65l-66 66q-29 29 -65 29q-38 0 -64.5 -27.5t-26.5 -65.5zM2478 1096q0 -39 28 -63q25 -28 64 -28h220q38 0 65 26.5t27 64.5t-26.5 63.5t-65.5 25.5h-220q-39 0 -65.5 -25.5t-26.5 -63.5z" />
<glyph unicode="&#xf010;" d="M-1 528q0 -177 105 -316t274 -190l-68 -181q-7 -22 15 -22h226l-133 -421h31l445 575q6 7 1.5 14.5t-15.5 7.5h-232l264 494q11 23 -15 23h-314q-15 0 -25 -15l-115 -307q-114 29 -189 124t-75 214q0 133 91 231t225 114l56 7q20 0 20 19l7 54q17 173 147 290t305 117 q173 0 303.5 -117t149.5 -290l7 -62q0 -18 19 -18h172q145 0 247.5 -101t102.5 -244q0 -136 -95 -235.5t-234 -110.5q-21 0 -21 -19v-146q0 -18 21 -18q213 7 361 161t148 368q0 120 -45 214q125 151 125 354q0 150 -75.5 279t-204.5 204.5t-280 75.5q-246 0 -413 -185 q-129 69 -288 69q-226 0 -401 -140t-224 -358q-177 -41 -291.5 -184.5t-114.5 -328.5zM862 -494q-2 -24 14.5 -47t49.5 -35q10 -3 21 -3q27 0 54.5 16t36.5 50l244 914q10 37 -7 68.5t-52 42.5q-37 11 -69.5 -7t-42.5 -54l-246 -917q-3 -13 -3 -28zM897 1837q0 -39 26 -63 l69 -70q27 -27 65 -27.5t61 27.5q29 23 29 64q0 39 -26 63l-67 70q-28 26 -65 26q-40 0 -66 -26t-26 -64zM1305 -168q0 -19 12 -40q20 -32 53 -46q11 -5 32 -5q24 0 35 6q32 13 44 62l159 592q10 38 -8 69t-54 42q-37 11 -69 -7t-42 -54l-158 -595q0 -4 -2 -12t-2 -12z M1467 1367q107 103 264 103q156 0 267 -109t111 -265q0 -100 -55 -197q-159 157 -373 157h-33q-49 186 -181 311zM1640 1927q0 -38 27 -65t64 -27q38 0 63 27t25 65v219q0 38 -25 65t-63 27q-37 0 -64 -27t-27 -65v-219zM2230 1683q0 -39 28 -64q23 -27 60.5 -27t64.5 27 l154 155q28 25 28 63t-27 65t-65 27q-36 0 -62 -28l-153 -154q-28 -25 -28 -64zM2315 418q0 -35 27 -64l69 -67q20 -23 59 -26l2 -1q1 0 4 -0.5t5 -0.5q30 0 56 28q28 26 28 64q0 37 -28 65l-70 65q-26 29 -61 29q-37 0 -64 -27t-27 -65zM2471 1096q0 -38 28 -64 q29 -29 66 -29h217q37 0 64.5 27.5t27.5 65.5q0 37 -27 62.5t-65 25.5h-217q-40 0 -67 -25.5t-27 -62.5z" />
<glyph unicode="&#xf011;" horiz-adv-x="2194" d="M-231 90q0 39 28 67q28 26 64 26h577q118 0 201.5 -84.5t83.5 -202.5q0 -119 -83 -202.5t-202 -83.5t-203 84q-25 25 -25 64t24.5 64.5t64.5 25.5q38 0 66 -26q32 -31 73 -31q42 0 73 30.5t31 74.5q0 42 -31 72.5t-73 30.5h-577q-38 0 -65 27t-27 64zM-231 414 q0 38 28 66q28 26 64 26h1124q42 0 73 31t31 74t-31 73.5t-73 30.5q-44 0 -73 -30q-28 -24 -67 -24t-63.5 24.5t-24.5 63.5q0 40 24 65q81 81 204 81q119 0 202.5 -83t83.5 -201t-83.5 -201.5t-202.5 -83.5h-1124q-38 0 -65 25.5t-27 62.5zM-2 666q0 -13 17 -13h154 q13 0 23 16q36 87 112 144t170 64l56 8q21 0 21 18l8 55q17 173 146.5 290.5t305.5 117.5q177 0 307 -116.5t148 -291.5l8 -63q0 -18 19 -18h172q145 0 248.5 -102t103.5 -245t-103.5 -245t-248.5 -102h-737q-19 0 -19 -18v-148q0 -18 19 -18h737q145 0 267.5 71t194 193.5 t71.5 266.5q0 145 -71.5 267t-194 193t-267.5 71h-33q-50 213 -223.5 349t-397.5 136q-226 0 -400 -140.5t-221 -359.5q-137 -32 -243 -131.5t-147 -235.5v-4q-2 -5 -2 -9z" />
<glyph unicode="&#xf012;" horiz-adv-x="2194" d="M-352 87q0 39 27 65t67 26h957q38 0 63 -25.5t25 -65.5q0 -38 -25.5 -63.5t-62.5 -25.5h-957q-40 0 -67 25.5t-27 63.5zM-71 413q0 38 29 64q23 24 63 24h960q37 0 61.5 -25t24.5 -63t-24.5 -65t-61.5 -27h-960q-37 0 -64.5 27.5t-27.5 64.5zM-5 662q0 -15 18 -15h152 q15 0 25 15q36 87 111 144t168 64l58 7q18 0 18 19l7 55q18 174 148.5 290t306.5 116q174 0 302 -114.5t150 -288.5l8 -63q0 -17 19 -17h171q145 0 247.5 -102t102.5 -247q0 -140 -104 -243.5t-246 -103.5h-735q-19 0 -19 -18v-143q0 -19 19 -19h735q108 0 206.5 41.5 t169 112.5t112.5 168.5t42 204.5q0 144 -70.5 265.5t-192.5 192t-267 70.5h-33q-52 215 -224.5 351.5t-392.5 136.5q-227 0 -401.5 -141.5t-221.5 -361.5q-138 -31 -242 -129.5t-145 -236.5v-2q-2 -4 -2 -8zM117 -243q0 39 28 64q24 25 63 25h959q39 0 65.5 -25.5 t26.5 -63.5t-27 -65t-65 -27h-959q-37 0 -64 27t-27 65z" />
<glyph unicode="&#xf013;" horiz-adv-x="2377" d="M3 454q0 159 99.5 282.5t254.5 158.5q41 188 189.5 307.5t342.5 119.5q189 0 337.5 -116.5t192.5 -298.5h29q188 0 321.5 -132.5t133.5 -320.5q0 -123 -61 -228t-166 -166t-228 -61h-990q-92 0 -176.5 36t-145.5 97t-97 145.5t-36 176.5zM159 454q0 -122 87.5 -209.5 t211.5 -87.5h990q124 0 212.5 87.5t88.5 209.5t-88.5 209t-212.5 87h-147q-16 0 -16 16l-7 52q-16 151 -127 250.5t-262 99.5t-262 -100t-125 -250l-7 -45q0 -16 -17 -16l-48 -7q-115 -10 -193 -95t-78 -201zM1103 1384q-16 -15 8 -22q66 -29 114 -59q18 -5 24 3 q97 92 226 92q130 0 224.5 -86.5t105.5 -213.5l10 -68h151q104 0 178.5 -74.5t74.5 -177.5q0 -96 -65.5 -167t-162.5 -82q-16 0 -16 -17v-121q0 -17 16 -17q161 10 272 127t111 277q0 169 -119.5 288.5t-288.5 119.5h-16q-42 160 -175.5 263.5t-299.5 103.5 q-225 0 -372 -169z" />
<glyph unicode="&#xf014;" horiz-adv-x="2171" d="M-294 86q0 39 27 65t67 26h1991q40 0 65.5 -25.5t25.5 -65.5q0 -37 -26.5 -62t-64.5 -25h-1991q-40 0 -67 25t-27 62zM-15 421q0 38 29 64q24 24 63 24h1992q37 0 61.5 -25t24.5 -63t-25 -64.5t-61 -26.5h-1992q-38 0 -65 27t-27 64zM-1 675q0 -14 16 -14h153q11 0 22 17 q38 83 113.5 136t165.5 60l58 8q18 0 18 19l7 53q17 173 146.5 288.5t303.5 115.5q173 0 301.5 -114t146.5 -286l8 -61q0 -18 21 -18h170q103 0 187.5 -55t125.5 -146q11 -17 22 -17h153q19 0 15 24q-47 164 -186 268t-317 104h-34q-53 213 -223.5 348.5t-389.5 135.5 q-224 0 -397.5 -140.5t-222.5 -358.5q-136 -32 -239 -129t-143 -232v4q-1 -3 -1 -10zM171 -241q0 38 28 63q24 24 64 24h1993q38 0 64.5 -25t26.5 -62q0 -38 -27 -65t-64 -27h-1993q-37 0 -64.5 27.5t-27.5 64.5z" />
<glyph unicode="&#xf015;" horiz-adv-x="2211" d="M2 528q0 -213 148.5 -366t362.5 -163q18 0 18 18v143q0 18 -18 18q-137 7 -233 109t-96 241q0 132 90 230t223 114l57 3q21 0 21 20l7 57q17 173 146 289.5t304 116.5q174 0 304.5 -116.5t148.5 -289.5l8 -62q0 -18 18 -18h172q142 0 246 -102t104 -242 q0 -139 -96.5 -241t-232.5 -109q-21 0 -21 -18v-143q0 -18 21 -18q104 3 198.5 46.5t162.5 114t108 167t40 201.5q0 143 -71.5 263.5t-193.5 190t-265 69.5h-34q-52 214 -224.5 350t-392.5 136q-225 0 -400 -139.5t-224 -357.5q-177 -41 -291.5 -184.5t-114.5 -327.5z M583 -240q15 -34 49 -49q32 -16 66.5 -2t47.5 48q16 35 3 68.5t-48 46.5q-32 17 -66 3t-50 -50q-15 -26 -2 -65zM650 61q0 -25 17 -48.5t50 -34.5q31 -18 66 -1.5t47 63.5l96 361q10 40 -8.5 71.5t-56.5 38.5q-13 3 -27 3q-25 0 -49.5 -16t-34.5 -47l-95 -362q-5 -22 -5 -28 zM849 -535q0 -19 6 -31q14 -35 48 -48q15 -8 35 -8q10 0 32 6q36 13 51.5 48t-0.5 70t-48 49t-67 0q-30 -13 -43.5 -38t-13.5 -48zM927 -257q0 -59 67 -78q18 -4 27 -4q24 0 41 8q32 12 44 61l179 671q10 38 -7 69t-53 41q-14 3 -28 3q-27 0 -52.5 -16t-31.5 -47l-182 -676 q-4 -22 -4 -32zM1294 -208q0 -19 8 -34q13 -31 47 -47q18 -7 36 -7q10 0 32 6q34 13 49 47q12 35 -0.5 67t-44.5 48q-36 17 -69.5 3t-49.5 -50q-8 -15 -8 -33zM1370 66q0 -23 17 -48t48 -35q25 -5 29 -5q15 0 39 11q32 15 43 56l96 356q0 3 2 13t2 15q0 25 -16.5 49 t-48.5 33q-14 3 -29 3q-26 0 -49.5 -15.5t-32.5 -47.5l-96 -358q0 -3 -2 -12t-2 -15z" />
<glyph unicode="&#xf016;" horiz-adv-x="1371" d="M-62 -283h43l733 1086q15 29 -16 29h-303l319 581q14 29 -20 29h-407q-17 0 -31 -19l-296 -789q-4 -29 21 -29h292zM846 392h28l557 818q8 13 4 21t-18 8h-224l233 430q19 32 -19 32h-292q-21 0 -32 -20l-221 -585q-10 -30 20 -30h219z" />
<glyph unicode="&#xf017;" horiz-adv-x="2211" d="M-5 522q0 -211 149 -364t361 -160q20 0 20 18v142q0 19 -20 19q-135 7 -232 108.5t-97 236.5q0 134 90.5 233.5t223.5 110.5l56 8q21 0 21 19l8 53q16 175 145 293t305 118q173 0 303.5 -117t149.5 -289l7 -62q0 -19 19 -19h171q144 0 247 -103t103 -245 q0 -135 -96.5 -236.5t-232.5 -108.5q-21 0 -21 -19v-142q0 -18 21 -18q213 7 361 159.5t148 364.5q0 143 -71.5 264.5t-193.5 192t-265 70.5h-33q-53 214 -225 350.5t-392 136.5q-225 0 -400 -140t-224 -357q-180 -46 -293 -188.5t-113 -328.5zM573 -227q0 -27 17 -54 t50 -37q37 -11 68.5 4t42.5 60l15 65q8 36 -10 67.5t-55 42.5q-36 11 -68.5 -8t-42.5 -57l-15 -63q-2 -6 -2 -20zM654 82q0 -35 26 -61q25 -27 61 -27q38 0 64 25.5t26 62.5t-26 62.5t-64 25.5q-37 0 -62 -25t-25 -63zM719 325q-2 -25 14 -48.5t51 -34.5q33 -10 66.5 7.5 t44.5 54.5l30 96q12 39 -7.5 69.5t-58.5 41.5q-35 11 -67 -7t-43 -53l-27 -98q-3 -27 -3 -28zM842 -560q0 -27 17 -52.5t52 -35.5q14 -3 26 -3q69 0 85 65l15 63q10 40 -9 72.5t-57 39.5q-34 11 -66.5 -7.5t-43.5 -54.5l-15 -63q-4 -18 -4 -24zM926 -250q0 -36 26 -62 t62 -26q38 0 63 25t25 63q0 37 -25 62t-63 25t-63 -25t-25 -62zM992 -8q-2 -24 14.5 -50t48.5 -32q37 -10 68 6t44 60l28 96q11 35 -7.5 67t-56.5 43q-35 11 -68 -8.5t-44 -56.5l-24 -96q-3 -14 -3 -29zM1287 -237q0 -27 16 -51.5t49 -34.5q5 0 15 -2t15 -2q65 0 81 70 l15 64q11 34 -7.5 67t-54.5 44q-39 10 -71.5 -8.5t-43.5 -56.5l-11 -63q0 -2 -1.5 -12t-1.5 -15zM1366 78q0 -37 26 -61q24 -26 62 -26t63 25t25 62q0 38 -25 63t-63 25t-63 -25t-25 -63zM1431 325q0 -27 17.5 -51.5t52.5 -34.5q3 0 12.5 -2t14.5 -2q17 0 39 10q33 17 43 56 l27 96q10 36 -8 67.5t-54 42.5q-37 11 -68.5 -6t-42.5 -54l-30 -97q0 -3 -1.5 -11.5t-1.5 -13.5z" />
<glyph unicode="&#xf018;" horiz-adv-x="2217" d="M2 525q0 -179 104.5 -318.5t272.5 -190.5q14 -3 27 8l123 153q-142 0 -243 102t-101 246q0 135 90 234.5t224 110.5l56 7q18 0 18 14l8 59q20 176 148 291.5t303 115.5q176 0 307 -116.5t147 -290.5l8 -62q4 -18 23 -18h172q144 0 245 -101t101 -244q0 -133 -89.5 -232.5 t-220.5 -115.5q-20 0 -53 -6q-30 -3 -43 -24l-253 -298q-23 -29 -17.5 -67t33.5 -61q17 -20 61 -20q42 0 65 37l225 260q199 20 336 172t137 355q0 108 -41.5 206t-112 168.5t-168 112.5t-205.5 42h-34q-53 212 -226.5 347.5t-396.5 135.5q-149 0 -280.5 -63.5t-221.5 -177 t-121 -258.5q-180 -40 -293.5 -183.5t-113.5 -329.5zM363 -330q0 -10 6 -32q14 -34 47 -47q35 -16 71 -2t49 48q16 35 2 69t-49 46q-36 17 -69 3t-49 -50q-8 -17 -8 -35zM560 -70v-11q3 -36 32 -60q36 -20 66 -20q36 0 65 35l248 295q23 28 21 70q-4 34 -29.5 57t-55.5 23 q-8 0 -14 -1q-38 -8 -61 -35l-251 -296q-21 -24 -21 -57zM642 -573q0 -19 8 -34q13 -34 47 -50q17 -8 36 -8q20 0 33 8q36 14 49 44q16 35 2.5 71t-47.5 49q-35 16 -71.5 2t-48.5 -48q-8 -15 -8 -34zM821 -323v-12q4 -35 32.5 -58.5t58.5 -23.5q36 0 67 35l464 559 q19 22 19 55v13q-4 36 -29.5 57t-56.5 21h-14q-37 -2 -59 -33l-464 -555q-18 -26 -18 -58zM1195 -446q0 -14 6 -32q14 -35 49 -50q22 -6 33 -6q23 0 36 8q36 14 49 45q16 27 2 71q-13 33 -47 47l-37 10q-17 -3 -35 -8q-35 -13 -48 -47q-8 -19 -8 -38z" />
<glyph unicode="&#xf019;" horiz-adv-x="2217" d="M2 527q0 184 115 327.5t291 184.5q50 218 225 358t400 140q220 0 392.5 -136.5t224.5 -350.5h35q143 0 265 -69.5t193 -190t71 -263.5q0 -105 -40 -201.5t-108 -167t-162.5 -114t-198.5 -46.5q-20 0 -20 18v142q0 19 20 19q136 7 232.5 109t96.5 241q0 140 -103.5 242 t-245.5 102h-173q-18 0 -18 18l-8 62q-18 173 -149 289.5t-304 116.5q-175 0 -304.5 -116.5t-145.5 -289.5l-8 -57q0 -20 -21 -20l-56 -3q-133 -16 -223.5 -114t-90.5 -230q0 -139 96 -241t233 -109q18 0 18 -19v-142q0 -18 -18 -18q-214 10 -362.5 163t-148.5 366z M574 -186q0 10 3 21l174 615q10 31 34.5 47t49.5 16q12 0 27 -3q38 -7 57 -39t8 -71l-174 -611q-20 -68 -88 -68q-5 0 -11 2q-9 3 -12 3q-34 10 -51 35.5t-17 52.5zM854 -486l259 936q7 31 32 47t53 16q13 0 28 -3q36 -10 53 -41.5t7 -68.5l-260 -937q-6 -27 -30.5 -46 t-53.5 -19q-16 0 -28 5q-32 8 -55 42q-17 27 -5 69zM1294 -189q0 11 3 24l174 615q9 31 32.5 47t49.5 16q14 0 29 -3q32 -9 48.5 -33t16.5 -50q0 -5 -2 -14.5t-2 -12.5l-173 -611q-6 -31 -30.5 -49.5t-54.5 -18.5l-26 5q-32 9 -48.5 34t-16.5 51z" />
<glyph unicode="&#xf01a;" horiz-adv-x="2228" d="M-1 525q0 185 115.5 329t296.5 185q47 220 221.5 361.5t400.5 141.5q223 0 396.5 -136t226.5 -352h35q108 0 206 -42t168 -112.5t111 -168.5t41 -206q0 -214 -146.5 -367t-359.5 -160q-20 0 -20 18v143q0 18 20 18q135 11 231 111.5t96 236.5q0 143 -102.5 246 t-244.5 103h-173q-19 0 -23 19l-8 61q-11 114 -74.5 206.5t-163.5 145t-216 52.5q-176 0 -305.5 -116.5t-146.5 -290.5l-7 -58q0 -15 -17 -15l-56 -8q-135 -11 -225.5 -110t-90.5 -235q0 -139 94.5 -239.5t231.5 -108.5q19 0 19 -18v-143q0 -18 -19 -18q-105 5 -200 48 t-163.5 113t-108.5 165.5t-40 200.5zM577 -197q0 5 2 14t2 12l29 110q11 36 42.5 54.5t68.5 7.5q36 -11 55 -42.5t8 -68.5l-26 -108q-21 -70 -81 -70q-4 0 -9.5 0.5t-12 1.5t-10.5 1q-34 10 -51 36.5t-17 51.5zM718 317q0 4 1.5 12t1.5 10l32 112q10 31 34 47.5t50 16.5 l27 -3q36 -11 54.5 -42.5t7.5 -68.5l-27 -107q-11 -44 -43 -62.5t-69 -2.5q-35 10 -52 36t-17 52zM849 -531q0 5 2 13.5t2 12.5l30 106q10 38 42.5 57.5t69.5 8.5q36 -11 54.5 -43.5t7.5 -69.5l-27 -111q-17 -65 -85 -65q-8 0 -26 4q-35 6 -52.5 32.5t-17.5 54.5zM992 -22 q0 14 3 27l30 110q11 36 43.5 54.5t69.5 7.5q36 -10 54 -41.5t6 -69.5l-27 -106q-20 -72 -76 -72q-7 0 -33 6q-35 7 -52.5 31.5t-17.5 52.5zM1293 -201q0 11 3 26l30 106q11 38 43.5 57.5t67.5 9.5q37 -11 56.5 -43.5t9.5 -67.5l-31 -113q-16 -65 -85 -65q-13 0 -27 3 q-32 6 -49 32.5t-18 54.5zM1440 307q0 5 5 28l32 110q6 34 31 50.5t52 14.5q7 1 26 -3q35 -8 55 -41q19 -27 8 -69l-26 -110q-21 -69 -81 -69q-10 0 -36 6q-33 10 -49.5 33.5t-16.5 49.5z" />
<glyph unicode="&#xf01b;" horiz-adv-x="2217" d="M-1 523q0 185 113.5 328.5t292.5 187.5q50 218 224.5 358t400.5 140q220 0 392.5 -136.5t224.5 -350.5h34q143 0 265 -70.5t193 -192t71 -264.5q0 -212 -148 -365t-360 -160q-21 0 -21 18v142q0 19 21 19q136 7 232.5 108.5t96.5 237.5q0 142 -103 245t-247 103h-172 q-19 0 -19 18l-8 62q-18 173 -148.5 290t-303.5 117q-176 0 -305.5 -118t-146.5 -293l-7 -53q0 -20 -20 -20l-56 -7q-133 -11 -223.5 -110.5t-90.5 -233.5q0 -136 96.5 -237.5t232.5 -108.5q18 0 18 -19v-142q0 -18 -18 -18q-214 7 -362.5 160t-148.5 365zM678 89 q0 36 25.5 62t62.5 26t62.5 -26t25.5 -62q0 -38 -25.5 -64.5t-62.5 -26.5t-62.5 26.5t-25.5 64.5zM678 -298q0 38 26 64q26 24 62 24q38 0 63 -25t25 -63t-25 -63t-63 -25t-63 25t-25 63zM1018 -117q0 37 27 66q26 26 61 26q38 0 65 -27.5t27 -64.5t-27 -63.5t-65 -26.5 q-36 0 -62 26.5t-26 63.5zM1018 269q0 37 27 64q28 26 61 26q38 0 65 -26.5t27 -63.5t-27 -62.5t-65 -25.5q-36 0 -62 25.5t-26 62.5zM1018 -507q0 36 27 65q26 26 61 26q38 0 65 -27t27 -64t-27 -62.5t-65 -25.5q-36 0 -62 25.5t-26 62.5zM1362 89q0 35 27 61.5t64 26.5 t62.5 -26t25.5 -62q0 -38 -25.5 -64.5t-62.5 -26.5t-64 27t-27 64zM1362 -298q0 35 27 64q25 24 64 24q37 0 62.5 -25t25.5 -63t-25.5 -63t-62.5 -25q-38 0 -64.5 25.5t-26.5 62.5z" />
<glyph unicode="&#xf01c;" horiz-adv-x="2211" d="M-1 527q0 184 115 327.5t291 184.5q49 218 224 357.5t401 139.5q220 0 392 -136t225 -350h33q143 0 265 -69.5t193 -190t71 -263.5q0 -214 -147.5 -368t-360.5 -161q-21 0 -21 18v142q0 19 21 19q137 7 233 109t96 241t-104 241.5t-246 102.5h-171q-20 0 -20 18l-7 62 q-17 172 -147.5 289t-304.5 117q-175 0 -305 -116.5t-147 -289.5l-7 -58q0 -19 -20 -19l-56 -3q-131 -6 -222.5 -107t-91.5 -237q0 -139 96 -241t233 -109q18 0 18 -19v-142q0 -18 -18 -18q-214 10 -362.5 163t-148.5 366zM631 433q0 39 39 105.5t73 107.5q34 38 41 45 l38 -43q41 -44 76.5 -108.5t35.5 -106.5q0 -63 -43 -105t-107 -42q-63 0 -108 43t-45 104zM949 8q0 44 25.5 102t62.5 109q29 41 71 90t63 69q22 20 27 25l26 -25q60 -53 136 -156q38 -53 63 -111t25 -103q0 -103 -72.5 -175.5t-177.5 -72.5q-103 0 -176 72t-73 176z M1106 718q0 67 104 171l25 -27q75 -92 75 -144q0 -41 -29.5 -70.5t-70.5 -29.5q-43 0 -73.5 29.5t-30.5 70.5z" />
<glyph unicode="&#xf01d;" horiz-adv-x="2211" d="M1 527q0 -177 106 -317t274 -191l-70 -179q-5 -23 15 -23h227l-111 -403h30l423 557q6 7 2 14.5t-15 7.5h-232l264 495q10 22 -15 22h-314q-15 0 -24 -15l-115 -306q-114 29 -188.5 124t-74.5 214q0 133 90 230.5t224 113.5l56 8q21 0 21 18l8 55q16 173 145.5 290 t304.5 117q174 0 304.5 -117t149.5 -290l7 -62q0 -19 19 -19h173q145 0 247 -100.5t102 -243.5q0 -136 -95 -235.5t-234 -109.5q-20 0 -20 -20v-146q0 -18 20 -18q104 3 198.5 47t162.5 114.5t108 167t40 200.5q0 144 -71 265.5t-193 192t-265 70.5h-35q-53 213 -225 348 t-393 135q-226 0 -401 -140t-224 -358q-176 -41 -291 -184.5t-115 -328.5zM871 -525q0 -25 16.5 -49.5t49.5 -34.5q22 -5 28 -5q14 0 40 11q33 15 44 56l30 112q10 35 -8.5 67t-56.5 43q-35 10 -67.5 -8.5t-43.5 -56.5l-29 -107q-3 -27 -3 -28zM1014 -16q0 -23 16.5 -46.5 t48.5 -35.5q36 -12 68 5t43 56l32 111q10 35 -8.5 67.5t-56.5 43.5q-36 10 -69.5 -8.5t-44.5 -55.5l-26 -108q-3 -27 -3 -29zM1315 -192q0 -27 17.5 -54t50.5 -37q4 0 12.5 -2t12.5 -2q21 0 40 8q31 12 45 61l26 108q11 37 -6.5 70.5t-53.5 44.5q-40 10 -72.5 -9t-39.5 -57 l-29 -110q-3 -9 -3 -21zM1461 319q-1 -25 15.5 -50t51.5 -40q12 -6 29 -6q15 0 35 9q33 16 47 61l31 110q3 21 3 23q0 27 -17.5 52.5t-52.5 35.5q-4 0 -12 2t-12 2q-27 0 -51.5 -16.5t-34.5 -51.5l-30 -108q-2 -8 -2 -23z" />
<glyph unicode="&#xf01e;" horiz-adv-x="2211" d="M2 527q0 -177 106 -317t275 -191l-70 -179q-5 -23 15 -23h227l-105 -459h30l418 613q6 7 2 14.5t-15 7.5h-232l264 495q11 23 -15 23h-315q-15 0 -25 -16l-114 -306q-114 29 -189 124t-75 214q0 133 90.5 231t224.5 114l56 7q21 0 21 19l7 54q17 173 146.5 290t304.5 117 q174 0 304.5 -117t149.5 -290l7 -62q0 -18 19 -18h172q145 0 248 -101.5t103 -243.5q0 -136 -95.5 -235.5t-235.5 -110.5q-20 0 -20 -19v-146q0 -18 20 -18q213 7 361.5 161t148.5 368q0 144 -71 265.5t-193 192t-266 70.5h-33q-53 212 -226 347.5t-393 135.5 q-226 0 -401 -140t-224 -358q-177 -41 -292 -184.5t-115 -328.5zM871 -509q0 -63 63 -82q3 0 12 -1.5t14 -1.5q27 0 52.5 15.5t34.5 51.5l240 927q10 38 -7 69t-53 42q-27 3 -28 3q-26 0 -50.5 -16t-33.5 -48l-241 -930q-3 -13 -3 -29zM1314 -182q0 -19 12 -40 q22 -35 53 -47q17 -5 32 -5q16 0 35 8q32 14 44 61l155 605q4 18 4 29q0 24 -17 48t-49 34q-27 3 -28 3q-27 0 -50 -15.5t-32 -48.5l-155 -608q0 -4 -2 -12t-2 -12z" />
<glyph unicode="&#xf021;" horiz-adv-x="2211" d="M2 678q0 36 25 60t61 24h1289q35 0 58 -23.5t23 -60.5q0 -35 -23 -58t-58 -23h-1289q-36 0 -61 23t-25 58zM261 987q0 35 25 59q24 24 59 24h1290q34 0 58 -24t24 -59t-24 -59.5t-58 -24.5h-1290q-35 0 -59.5 24.5t-24.5 59.5zM432 375q0 34 26 58q23 23 59 23h1290 q36 0 60 -23t24 -58t-24.5 -60t-59.5 -25h-1290q-35 0 -60 25t-25 60zM1561 678q0 37 24 60.5t61 23.5h481q37 0 60.5 -24t23.5 -60q0 -35 -24 -58t-60 -23h-481q-37 0 -61 23t-24 58z" />
<glyph unicode="&#xf022;" d="M-10 89q0 -38 28 -64q27 -27 65 -27h613q42 0 73.5 -30.5t31.5 -72.5q0 -43 -31.5 -74t-73.5 -31q-41 0 -73 32q-29 26 -65 26q-38 0 -64.5 -26.5t-26.5 -63.5q0 -35 27 -64q84 -84 202 -84t201.5 83t83.5 202q0 118 -83.5 202t-201.5 84h-613q-38 0 -65.5 -27.5 t-27.5 -64.5zM-10 411q0 -36 28 -62t65 -26h1158q118 0 201.5 83t83.5 201t-83.5 200.5t-201.5 82.5q-122 0 -202 -81q-24 -25 -24 -65t24.5 -64t62.5 -24t66 24q30 30 73 30q41 0 72 -30t31 -73q0 -42 -31 -73t-72 -31h-1158q-38 0 -65.5 -27.5t-27.5 -64.5zM258 662 q0 -14 17 -14h154q12 0 22 16q36 87 111.5 143.5t168.5 63.5l56 8q21 0 21 18l8 55q17 173 146.5 289.5t304.5 116.5t305 -116t148 -290l7 -62q0 -19 19 -19h174q145 0 247 -101t102 -243t-102.5 -244t-246.5 -102h-737q-18 0 -18 -19v-146q0 -18 18 -18h737q143 0 264.5 71 t192.5 193t71 265q0 141 -73 264q117 113 161 275l16 72q2 2 2 8q0 7 -15 17l-64 22q-91 28 -155 89.5t-91.5 131t-27.5 139.5q0 43 9 84l15 66q4 15 -15 24l-84 26q-70 17 -133 17q-59 0 -120 -14t-126 -43.5t-126.5 -85t-106.5 -130.5q-113 48 -247 48q-226 0 -399 -140 t-220 -357q-137 -32 -242 -131t-145 -235v-3q-3 -5 -3 -9zM1670 1397q50 88 138 134.5t182 46.5q22 0 33 -1q-2 -14 -2 -38q0 -151 84 -289t232 -207q-25 -60 -80 -110q-142 122 -337 122h-35q-43 201 -215 342z" />
<glyph unicode="&#xf023;" d="M-146 86q0 -38 26.5 -63t66.5 -25h1004q38 0 63 25t25 63q0 40 -25 65.5t-63 25.5h-1004q-40 0 -66.5 -25.5t-26.5 -65.5zM135 411q0 -39 27 -64q25 -27 64 -27h1006q37 0 62.5 26.5t25.5 64.5q0 37 -25 62.5t-63 25.5h-1006q-38 0 -64.5 -25.5t-26.5 -62.5zM246 661 q0 -15 19 -15h152q14 0 24 15q36 87 111 144t168 64l58 8q20 0 20 18l7 55q17 174 147 290.5t306 116.5q175 0 303.5 -115t150.5 -289l8 -62q0 -18 18 -18h173q145 0 246.5 -102t101.5 -246q0 -141 -103 -244.5t-245 -103.5h-737q-19 0 -19 -18v-143q0 -18 19 -18h737 q144 0 266 70t193 191.5t71 265.5q0 142 -70 264q117 104 162 275l19 73q1 2 1 7q0 13 -16 17l-66 23q-70 21 -124 61t-85.5 89.5t-47 100.5t-15.5 101q0 43 11 93l15 65q7 15 -15 24l-88 26q-70 17 -132 17q-60 0 -121 -14t-126 -43.5t-125.5 -85t-105.5 -130.5 q-124 51 -254 51q-226 0 -400 -140.5t-221 -360.5q-139 -32 -243.5 -130.5t-145.5 -235.5v-3q-2 -2 -2 -8zM322 -245q0 -38 28 -64q26 -27 64 -27h1005q38 0 65.5 27t27.5 64t-27.5 62.5t-65.5 25.5h-1005q-38 0 -65 -25.5t-27 -62.5zM1665 1394q55 88 143.5 136.5 t181.5 46.5q18 0 27 -1v-26q0 -156 84.5 -297.5t231.5 -211.5q-27 -62 -82 -114q-141 126 -340 126h-34q-40 193 -212 341z" />
<glyph unicode="&#xf024;" horiz-adv-x="2331" d="M-1 527q0 -213 148.5 -366t362.5 -163q19 0 19 18v143q0 18 -19 18q-137 7 -233 109t-96 241q0 133 90 231t224 114l56 3q20 0 20 19l8 58q17 173 147 290t305 117q173 0 303.5 -117t148.5 -290l8 -62q0 -18 19 -18h172q142 0 246 -102.5t104 -242.5q0 -139 -96 -241 t-233 -109q-21 0 -21 -18v-143q0 -18 21 -18q213 7 360.5 161t147.5 368q0 138 -68 257q125 117 164 279l15 73q3 2 3 7q0 12 -18 17l-59 18q-91 27 -155.5 90.5t-91.5 133t-27 140.5q-1 39 8 84l15 62q5 14 -15 23l-85 27q-67 20 -140 20q-56 0 -116 -13.5t-124.5 -43 t-126.5 -85t-107 -130.5q-120 52 -252 52q-226 0 -401 -140t-224 -358q-177 -41 -292 -184.5t-115 -328.5zM583 -223q14 -34 49 -48q31 -16 66 -2.5t48 47.5q16 35 2.5 69t-47.5 47q-32 16 -66 2t-50 -49q-16 -25 -2 -66zM650 79q0 -24 16.5 -48t48.5 -34q41 -16 72 0.5 t43 60.5l93 342q11 40 -8 71.5t-57 39.5q-35 11 -67.5 -7t-43.5 -54l-93 -343q0 -3 -2 -13t-2 -15zM849 -518q0 -20 6 -31q14 -35 48 -48q15 -8 35 -8q10 0 32 6q36 13 51.5 48t-0.5 70t-48 49t-66 0q-31 -13 -44.5 -38t-13.5 -48zM928 -235q0 -61 67 -83q15 -5 26 -5 q17 0 37 9q35 13 49 61l176 653q10 38 -7 69t-53 42q-37 11 -69.5 -7t-42.5 -54l-180 -658q-3 -14 -3 -27zM1295 -191q0 -20 7 -33q13 -32 47 -47q19 -8 37 -8q10 0 32 6q35 14 48 47q13 35 0.5 67.5t-44.5 48.5q-35 16 -69.5 2.5t-50.5 -49.5q-7 -13 -7 -34zM1371 82 q0 -25 17 -48.5t49 -33.5q27 -3 29 -3q64 0 81 65l94 338q10 38 -8 69t-54 42q-37 11 -68 -6.5t-42 -54.5l-94 -339q-4 -18 -4 -29zM1441 1389q50 92 138.5 140t187.5 47q18 0 27 -2v-33q0 -156 83.5 -293.5t231.5 -207.5q-31 -70 -80 -114q-141 125 -347 125h-34 q-41 200 -207 338z" />
<glyph unicode="&#xf025;" horiz-adv-x="2331" d="M-1 527q0 -213 148.5 -366t362.5 -163q18 0 18 18v146q0 19 -18 19q-139 11 -234 110.5t-95 235.5q0 134 90.5 233.5t223.5 110.5l56 8q20 0 20 18l8 55q17 173 146.5 289.5t304.5 116.5q174 0 304 -116t148 -290l8 -62q0 -19 19 -19h172q145 0 247.5 -101t102.5 -243 q0 -136 -95 -235.5t-234 -110.5q-21 0 -21 -19v-146q0 -18 21 -18q213 7 360.5 161t147.5 368q0 143 -73 264q128 116 165 275l16 77q1 1 1 7q0 12 -17 17l-62 18q-91 26 -155 88t-91 131.5t-27 140.5q0 39 10 84l15 66q4 15 -15 24l-84 26q-70 17 -133 17q-58 0 -119 -14 t-127 -43.5t-128 -85t-107 -130.5q-113 48 -249 48q-226 0 -400.5 -139.5t-224.5 -357.5q-176 -42 -291 -185.5t-115 -327.5zM817 31q-8 -23 15 -23h230l-140 -442h32l445 596q6 7 2.5 14.5t-14.5 7.5h-234l246 449q11 23 -15 23h-314q-13 0 -23 -15zM1435 1391 q53 91 141.5 139t184.5 48q20 0 29 -2v-33q0 -154 83 -291t231 -209q-25 -59 -80 -114q-147 126 -343 126h-34q-45 199 -212 336z" />
<glyph unicode="&#xf026;" horiz-adv-x="2331" d="M-5 525q0 -212 149 -366t363 -161q20 0 20 18v143q0 18 -20 18q-136 7 -233 110t-97 238q0 136 91 235.5t225 110.5l57 7q20 0 20 19l7 54q17 176 147 293.5t306 117.5q174 0 305.5 -117t149.5 -290l8 -61q0 -20 18 -20h172q145 0 248.5 -103t103.5 -246 q0 -88 -44 -166.5t-120.5 -127.5t-166.5 -54q-21 0 -21 -18v-143q0 -18 21 -18q105 3 200 46.5t163 114t108 166.5t40 200q0 141 -73 268q133 119 169 280l15 73q2 2 2 8q0 9 -17 17l-60 19q-70 21 -124.5 62.5t-86.5 92.5t-48.5 103.5t-16.5 102.5q-3 38 9 88l15 62 q7 16 -15 25l-85 26q-65 18 -138 18q-58 0 -119.5 -14t-127 -44t-127.5 -86.5t-107 -131.5q-130 49 -250 49q-226 0 -402 -140.5t-226 -359.5q-180 -46 -293.5 -189t-113.5 -329zM573 -227q0 -27 17 -54t50 -37q37 -11 68.5 4t42.5 60l15 65q8 36 -10 67.5t-55 42.5 q-36 11 -68.5 -8t-42.5 -57l-15 -63q-2 -6 -2 -20zM654 82q0 -35 26 -61q25 -27 61 -27q38 0 64 25.5t26 62.5t-26 62.5t-64 25.5q-37 0 -62 -25t-25 -63zM719 325q-2 -25 14 -48.5t51 -34.5q33 -10 66.5 7.5t44.5 54.5l30 96q12 39 -7.5 69.5t-58.5 41.5q-35 11 -67 -7 t-43 -53l-27 -98q-3 -27 -3 -28zM842 -560q0 -27 17 -52.5t52 -35.5q14 -3 26 -3q69 0 85 65l15 63q10 40 -9 72.5t-57 39.5q-34 11 -66.5 -7.5t-43.5 -54.5l-15 -63q-4 -18 -4 -24zM926 -250q0 -36 26 -62t62 -26q38 0 63 25t25 63q0 37 -25 62t-63 25t-63 -25t-25 -62z M992 -8q-2 -24 14.5 -50t48.5 -32q37 -10 68 6t44 60l28 96q11 35 -7.5 67t-56.5 43q-35 11 -68 -8.5t-44 -56.5l-24 -96q-3 -14 -3 -29zM1287 -237q0 -27 16 -51.5t49 -34.5q5 0 15 -2t15 -2q65 0 81 70l15 64q11 34 -7.5 67t-54.5 44q-39 10 -71.5 -8.5t-43.5 -56.5 l-11 -63q0 -2 -1.5 -12t-1.5 -15zM1366 78q0 -37 26 -61q24 -26 62 -26t63 25t25 62q0 38 -25 63t-63 25t-63 -25t-25 -63zM1431 325q0 -27 17.5 -51.5t52.5 -34.5q3 0 12.5 -2t14.5 -2q17 0 39 10q33 17 43 56l27 96q10 36 -8 67.5t-54 42.5q-37 11 -68.5 -6t-42.5 -54 l-30 -97q0 -3 -1.5 -11.5t-1.5 -13.5zM1438 1397q51 93 139.5 143t183.5 49q15 0 32 -3v-34q-2 -157 82.5 -294.5t236.5 -206.5q-32 -64 -85 -118q-148 122 -344 122h-33q-50 209 -212 342z" />
<glyph unicode="&#xf027;" horiz-adv-x="2331" d="M-1 525q0 -179 106 -320.5t274 -188.5q14 -3 27 8l120 150q-140 0 -242.5 104t-102.5 247q0 134 90 231.5t225 109.5l53 7q20 0 20 20l8 57q20 174 150 291t305 117q174 0 305 -117.5t150 -290.5l7 -62q0 -18 19 -18h173q142 0 244 -102t102 -243q0 -136 -90 -236.5 t-221 -111.5q-72 -9 -92 -30l-250 -310q-24 -27 -19 -67q4 -38 33.5 -63t60.5 -25q36 0 68 40l217 276q99 10 187.5 56t152 115.5t100.5 162.5t37 193q0 139 -73 260q130 118 169 280v10l21 82l-82 28q-92 27 -156 89t-91.5 131t-27.5 140q0 41 9 85l20 83l-90 25q-1 1 -3 2 t-3 2q-2 1 -4.5 2t-3.5 1q-70 17 -133 17q-61 -1 -122.5 -15t-128 -44t-128.5 -86t-107 -132q-120 52 -250 52q-226 0 -401 -140t-225 -358q-181 -44 -294 -186.5t-113 -327.5zM394 -327q0 -21 7 -33q14 -35 46 -49q35 -16 71 -3t49 47q16 35 1.5 71.5t-48.5 48.5 q-35 16 -70.5 2.5t-48.5 -48.5q-7 -15 -7 -36zM591 -66v-12q3 -36 35 -59q21 -24 58 -23t70 34l248 311q22 28 17.5 66.5t-32.5 61.5t-67 19t-61 -36l-248 -305q-20 -23 -20 -57zM651 -622q14 -34 50 -48q17 -8 35 -8q10 0 32 6q34 14 47 47q13 35 1 69t-47 51 q-35 13 -67 -0.5t-48 -46.5q-18 -31 -3 -70zM822 -338v-9q4 -36 33.5 -61.5t59.5 -25.5q35 0 64 36l461 572q23 27 20 66t-31 62q-32 23 -70.5 19.5t-60.5 -31.5l-456 -572q-20 -25 -20 -56zM1195 -456q0 -18 8 -35q13 -36 51 -50q36 -14 65 -2q35 14 49 49q16 35 3 68 t-48 50q-35 13 -69.5 0t-50.5 -45q-8 -19 -8 -35zM1440 1391q50 92 138.5 140.5t187.5 46.5q19 0 28 -1v-32q0 -155 85.5 -293.5t233.5 -209.5q-40 -75 -84 -119q-142 126 -343 126h-35q-49 206 -211 342z" />
<glyph unicode="&#xf028;" horiz-adv-x="2331" d="M-1 528q0 -213 149 -366.5t363 -163.5q19 0 19 18v143q0 18 -19 18q-137 8 -233.5 110t-96.5 241q0 133 90.5 231.5t224.5 114.5l57 4q21 0 21 18l7 58q17 173 147 290.5t305 117.5q174 0 305 -117.5t149 -290.5l8 -61q0 -19 18 -19h173q143 0 247.5 -102.5t104.5 -243.5 q0 -138 -97 -240.5t-234 -110.5q-21 0 -21 -18v-143q0 -18 21 -18q213 7 361.5 161.5t148.5 368.5q0 141 -73 262q129 117 169 279l15 77q2 1 2 7q0 12 -17 17l-60 19q-91 26 -156 88.5t-92.5 131.5t-27.5 137q-3 36 9 88l15 65q7 16 -15 26l-84 26q-72 16 -135 16 q-60 0 -122 -14t-128 -43.5t-128 -85t-107 -130.5q-132 48 -249 48q-226 0 -401.5 -140.5t-225.5 -359.5q-177 -41 -292 -185t-115 -329zM592 -201q0 -27 17.5 -52.5t52.5 -35.5q37 -11 68.5 4.5t42.5 59.5l153 626q10 40 -9 72t-56 39q-35 11 -67.5 -7t-43.5 -54l-155 -629 q-3 -21 -3 -23zM870 -529q0 -25 16.5 -49t47.5 -33q18 -4 26 -4q70 0 87 63l240 953q10 39 -7.5 69.5t-53.5 41.5q-37 11 -70.5 -7.5t-41.5 -53.5l-241 -952q0 -2 -1.5 -12.5t-1.5 -15.5zM1314 -210q0 -57 67 -79q22 -6 32 -6q18 0 37 8q32 13 41 62l154 626q10 38 -8 69 t-54 42q-37 11 -70 -7t-41 -54l-153 -629q-5 -27 -5 -32zM1440 1395q51 93 139.5 141.5t187.5 46.5q18 0 28 -1v-32q-2 -155 82.5 -293t236.5 -210q-36 -73 -84 -114q-147 121 -344 121h-33q-44 203 -213 341z" />
<glyph unicode="&#xf029;" horiz-adv-x="2331" d="M-1 527q0 -213 148.5 -366t362.5 -163q18 0 18 18v146q0 19 -18 19q-139 11 -234 110.5t-95 235.5q0 132 90 230t224 114l56 8q20 0 20 18l8 55q17 173 146.5 289.5t304.5 116.5q174 0 304 -116t148 -290l8 -62q0 -19 19 -19h172q144 0 247 -101t103 -243 q0 -136 -95 -235.5t-234 -110.5q-21 0 -21 -19v-146q0 -18 21 -18q213 7 360.5 161t147.5 368q0 139 -69 259q130 117 169 279v14l20 84l-81 22q-130 39 -202 144.5t-72 216.5q0 42 9 83l21 85l-91 27l-15 4q-75 15 -132 15q-60 0 -122 -14t-128.5 -44t-128 -85.5 t-106.5 -131.5q-119 52 -252 52q-226 0 -399.5 -140t-220.5 -358q-180 -41 -295.5 -184t-115.5 -328zM575 -195q0 -24 16 -47.5t48 -35.5q35 -12 68 5.5t44 54.5l30 113q11 33 -7.5 66t-54.5 44q-37 10 -69.5 -9t-44.5 -57l-26 -106q-4 -20 -4 -28zM713 310q0 -20 10 -38 q12 -27 58 -41q39 -10 70 6.5t43 55.5l29 110q11 37 -7 68.5t-54 41.5q-39 10 -71.5 -7.5t-43.5 -55.5l-28 -108q-6 -22 -6 -32zM847 -528q0 -27 16.5 -52.5t48.5 -35.5q18 -5 24 -5q14 0 40 11q32 13 46 59l32 112q11 34 -7.5 67t-54.5 44q-39 10 -71.5 -8.5t-43.5 -56.5 l-27 -108q-3 -13 -3 -27zM989 -19q0 -24 16 -47.5t49 -35.5q36 -11 68 6t43 56l29 111q11 34 -6.5 66.5t-52.5 43.5q-39 10 -72.5 -9t-44.5 -57l-26 -107q0 -3 -1 -8.5t-1.5 -10t-0.5 -8.5zM1288 -207q0 -61 67 -80q13 -3 27 -3q24 0 39 7q32 13 46 61l30 109 q10 40 -8.5 71.5t-56.5 39.5q-37 11 -68.5 -7.5t-42.5 -54.5l-30 -111q0 -4 -1 -10.5t-1.5 -12t-0.5 -9.5zM1435 307q0 -25 17 -49t50 -34q23 -5 25 -5q14 0 40 11q33 13 47 59l29 111q10 35 -9 67t-56 43q-35 11 -67.5 -7.5t-43.5 -55.5l-27 -113q-5 -23 -5 -27zM1440 1391 q51 90 141.5 140t193.5 50h22q-2 -28 -2 -40q0 -152 84 -289t232 -209q-34 -67 -84 -117q-149 129 -346 129h-34q-40 189 -207 336z" />
<glyph unicode="&#xf02a;" horiz-adv-x="2331" d="M-1 525q0 -212 149 -366t363 -161q19 0 19 18v143q0 18 -19 18q-136 7 -233 109.5t-97 238.5t90.5 235t224.5 110l57 8q21 0 21 18l7 55q17 175 146.5 293t305.5 118q174 0 305 -117.5t149 -290.5l8 -61q0 -19 18 -19h173q145 0 248.5 -103t103.5 -246 q0 -136 -97.5 -238.5t-233.5 -109.5q-21 0 -21 -18v-143q0 -18 21 -18q140 4 257.5 76t185 192t67.5 259q0 144 -70 265q119 107 163 275l18 77q2 2 2 8q0 12 -17 17l-65 18q-70 21 -124.5 61t-86 89.5t-47 101t-15.5 101.5q0 43 11 92l12 66q4 15 -15 24l-85 26 q-70 17 -133 17q-59 0 -120 -14t-126 -44t-126 -85.5t-106 -130.5q-129 53 -254 53q-226 0 -401.5 -140.5t-225.5 -359.5q-180 -45 -293.5 -188t-113.5 -329zM680 89q0 -38 25.5 -64.5t62.5 -26.5q38 0 63.5 26.5t25.5 64.5q0 36 -25.5 62t-63.5 26q-37 0 -62.5 -26 t-25.5 -62zM680 -299q0 -36 26 -62t62 -26q38 0 63.5 25t25.5 63t-25.5 63t-63.5 25t-63 -25t-25 -63zM1022 -118q0 -39 26 -63q26 -26 62 -26q38 0 65 26t27 63q0 38 -27 65.5t-65 27.5q-35 0 -61.5 -27.5t-26.5 -65.5zM1022 270q0 -38 26 -62q26 -26 62 -26q39 0 65.5 25 t26.5 63q0 37 -27 63.5t-65 26.5q-36 0 -62 -26.5t-26 -63.5zM1022 -510q0 -35 26 -61q27 -27 62 -27q38 0 65 25.5t27 62.5q0 38 -27 65.5t-65 27.5q-35 0 -61.5 -27.5t-26.5 -65.5zM1367 89q0 -38 26.5 -64.5t63.5 -26.5t62.5 26.5t25.5 64.5q0 36 -25.5 62t-62.5 26 t-63.5 -26t-26.5 -62zM1367 -299q0 -36 26 -62t64 -26q37 0 62.5 25.5t25.5 62.5q0 38 -25 63t-63 25t-64 -25t-26 -63zM1440 1395q50 87 138.5 134.5t182.5 49.5q23 0 34 -2v-33q0 -155 83.5 -292.5t232.5 -209.5q-25 -58 -81 -114q-142 126 -344 126h-33q-44 197 -213 341 z" />
<glyph unicode="&#xf02b;" horiz-adv-x="2331" d="M2 529q0 -213 148.5 -366t362.5 -164q20 0 20 19v142q0 19 -20 19q-137 7 -233 109t-96 241q0 133 90 231t224 114l56 4q21 0 21 19l8 58q17 173 146.5 289.5t304.5 116.5q174 0 305 -117t149 -289l7 -61q0 -20 19 -20h173q142 0 246 -102.5t104 -242.5 q0 -139 -96.5 -241t-233.5 -109q-20 0 -20 -19v-142q0 -19 20 -19q140 5 257.5 77t185 192.5t67.5 260.5q0 139 -73 261q126 120 165 275l14 78q3 1 3 7q0 12 -17 17l-62 18q-91 26 -156 87.5t-92.5 129.5t-27.5 137q0 46 12 91l15 65q4 16 -15 25l-85 26q-72 16 -135 16 q-58 0 -119 -14t-126.5 -43t-127.5 -84t-107 -128q-130 49 -249 49q-226 0 -401 -140.5t-225 -358.5q-177 -42 -291.5 -185.5t-114.5 -328.5zM635 435q0 -61 45 -104t109 -43t106.5 42.5t42.5 104.5q0 41 -37 109t-69 105q-25 28 -43 46l-38 -44q-43 -47 -79.5 -110.5 t-36.5 -105.5zM954 10q0 -105 73 -177t176 -72q105 0 178 73t73 176q0 87 -86 213q-71 93 -137 159q-13 9 -28 24l-25 -24q-63 -58 -136 -158q-38 -53 -63 -111t-25 -103zM1111 721q0 -41 30.5 -70t74.5 -29q41 0 70 29t29 70q0 68 -99 173l-26 -29q-30 -32 -54.5 -74.5 t-24.5 -69.5zM1438 1395q56 91 142.5 137.5t182.5 46.5q19 0 29 -2v-32q0 -154 84.5 -291.5t233.5 -210.5q-25 -60 -80 -110q-148 122 -343 122h-34q-49 210 -215 340z" />
<glyph unicode="&#xf02c;" horiz-adv-x="2331" d="M1 529q0 -177 106 -316.5t275 -190.5l-69 -181q-7 -22 15 -22h226l-138 -446h30l451 600q6 7 2.5 14.5t-14.5 7.5h-232l264 495q11 23 -15 23h-316q-14 0 -24 -16l-114 -307q-114 29 -189.5 124.5t-75.5 214.5q0 133 90.5 231t224.5 114l56 8q21 0 21 19l8 54 q17 173 146.5 290t304.5 117q174 0 305 -117.5t149 -289.5l8 -61q0 -20 18 -20h173q145 0 248 -101.5t103 -243.5q0 -136 -96 -236t-235 -110q-20 0 -20 -20v-145q0 -19 20 -19q213 7 361.5 161.5t148.5 368.5q0 139 -70 261q124 119 162 280l19 73q1 1 1 7q0 13 -16 17 l-66 18q-92 27 -156 89.5t-90.5 130t-25.5 134.5q0 44 11 91l12 65q4 16 -15 25l-85 26q-75 15 -132 15q-59 1 -120.5 -12.5t-126.5 -43t-125.5 -84t-105.5 -128.5q-136 49 -254 49q-226 0 -401 -140.5t-225 -358.5q-177 -42 -292 -185.5t-115 -328.5zM873 -523 q0 -25 16.5 -50t48.5 -35q25 -5 29 -5q15 0 39 11q33 16 45 56l30 112q10 35 -8.5 67.5t-56.5 43.5q-35 10 -67.5 -9t-43.5 -57l-28 -107q0 -3 -2 -12.5t-2 -14.5zM1016 -16q0 -69 65 -80q23 -5 29 -5q60 0 82 67l32 109q10 35 -9 67.5t-57 43.5q-36 11 -68.5 -7.5 t-43.5 -56.5l-27 -108q-3 -14 -3 -30zM1315 -194q2 -27 19 -51.5t51 -36.5q26 -6 36 -6q54 0 75 72l26 109q11 37 -6.5 70t-53.5 44q-40 10 -72.5 -9t-39.5 -57l-31 -110q0 -4 -2 -12.5t-2 -12.5zM1441 1395q53 89 143 137.5t189 48.5h22v-34q0 -102 36 -198t108.5 -177 t171.5 -129q-27 -60 -81 -110q-146 125 -343 125h-34q-45 200 -212 337zM1462 318q0 -69 69 -88q22 -4 32 -4q58 0 79 69l30 111q1 8 1 23q2 27 -15 52.5t-52 35.5q-2 0 -10.5 1.5t-13.5 1.5q-26 0 -51 -16.5t-35 -50.5l-31 -109q0 -1 -1.5 -11t-1.5 -15z" />
<glyph unicode="&#xf02d;" horiz-adv-x="2331" d="M-3 531q0 -178 105.5 -317.5t274.5 -190.5l-70 -180q-4 -22 16 -22h227l-104 -374h31l417 527q6 8 1.5 15.5t-15.5 7.5h-232l264 494q12 23 -15 23h-315q-14 0 -24 -15l-115 -307q-115 29 -190 124.5t-75 214.5q0 133 91 231.5t225 114.5l56 8q20 0 20 18l8 55 q17 173 147 290t305 117q173 0 304.5 -117.5t150.5 -289.5l6 -63q0 -18 20 -18h172q145 0 248 -101.5t103 -244.5q0 -136 -95.5 -236t-234.5 -111q-21 0 -21 -18v-147q0 -19 21 -19q140 5 257.5 77t185 192.5t67.5 261.5q0 139 -70 261q127 121 166 280l15 77q2 2 2 8 q0 11 -17 16l-61 19q-134 38 -204.5 142.5t-70.5 217.5q0 42 9 85l15 65q7 16 -15 25q-34 14 -97 28t-123 14q-58 0 -119 -14t-126.5 -43.5t-127.5 -85t-107 -130.5q-132 48 -253 48q-226 0 -401.5 -140t-225.5 -358q-177 -41 -291.5 -185.5t-114.5 -329.5zM861 -517 q0 -26 15 -49.5t47 -32.5q17 -3 32 -3q66 0 82 67l246 938q10 38 -7 69.5t-53 41.5q-37 11 -69.5 -6.5t-42.5 -52.5l-247 -943q-3 -14 -3 -29zM1305 -195q0 -26 15.5 -49t49.5 -33q5 0 17 -1.5t18 -1.5q60 0 76 67l160 616q10 39 -8 70t-54 41q-37 11 -68.5 -6t-41.5 -53 l-160 -621q-4 -22 -4 -29zM1438 1398q53 91 141.5 139t187.5 48q19 0 28 -1v-34q0 -154 84 -291t232 -210q-29 -65 -85 -114q-147 126 -343 126h-34q-45 200 -211 337z" />
<glyph unicode="&#xf02e;" horiz-adv-x="1600" d="M15 786q0 153 60 293t161 241.5t241.5 162t293.5 60.5h123q25 -7 25 -30l4 -94q6 -203 146.5 -346t340.5 -151l88 -7q25 0 25 -25v-104q1 -205 -99.5 -379.5t-274 -276t-378.5 -101.5q-156 0 -296 60t-241 161.5t-160 241.5t-59 294zM210 786q0 -162 82 -294.5 t210 -203.5t269 -71q93 0 187.5 36.5t176 102t140 167.5t75.5 223q-261 54 -418.5 223.5t-181.5 398.5q-151 -8 -276.5 -93t-194.5 -215.5t-69 -273.5z" />
<glyph unicode="&#xf02f;" d="M-3 93q0 -39 28 -64q29 -29 65 -29h628q42 0 73.5 -30t31.5 -73q0 -41 -32 -72.5t-73 -31.5q-40 0 -72 32q-30 28 -67 28t-63 -27t-26 -65q0 -37 27 -64q83 -83 201 -83t201 82.5t83 200.5q0 119 -83 203t-201 84h-628q-38 0 -65.5 -27t-27.5 -64zM-3 414q0 -37 28 -62 q24 -26 65 -26h1173q118 0 201 83t83 201t-83 200.5t-201 82.5q-122 0 -202 -80q-24 -27 -24 -67q0 -38 24.5 -62.5t63.5 -24.5q40 0 65 24q30 30 73 30q41 0 72 -30t31 -73t-31 -74t-72 -31h-1173q-38 0 -65.5 -27t-27.5 -64zM280 664q0 -13 17 -13h153q13 0 23 15 q36 87 111.5 144t169.5 64l56 7q21 0 21 20l7 53q17 173 146.5 289.5t304.5 116.5t304.5 -115.5t148.5 -290.5l7 -61q0 -19 19 -19h174q144 0 245.5 -101t101.5 -243q0 -143 -101.5 -244.5t-245.5 -101.5h-737q-19 0 -19 -19v-146q0 -19 19 -19h737q143 0 264.5 71t192 193 t70.5 266q0 118 -45 216q121 159 121 355q0 114 -44.5 217.5t-119.5 178t-178.5 118.5t-216.5 44q-246 0 -413 -185q-125 65 -284 65q-226 0 -399 -139t-220 -358q-136 -32 -241.5 -131t-146.5 -233v-4q-2 -5 -2 -10zM1722 1371q115 109 264 109q156 0 268 -112t112 -267 q0 -97 -54 -197q-153 153 -370 153h-36q-37 171 -184 314z" />
<glyph unicode="&#xf030;" d="M-133 91q0 -40 29 -64q27 -28 65 -28h1018q37 0 62.5 27t25.5 65t-25.5 65t-62.5 27h-1018q-38 0 -66 -27.5t-28 -64.5zM149 414q0 -37 28 -62q26 -26 64 -26h1020q38 0 63 25t25 63t-25.5 64.5t-62.5 26.5h-1020q-38 0 -65 -26.5t-27 -64.5zM271 663q0 -12 20 -12h152 q14 0 24 15q36 87 112.5 144t169.5 64l58 8q18 0 18 19l8 54q17 173 147.5 290t306.5 117t306 -116t148 -291l8 -61q0 -20 18 -20h172q146 0 248.5 -101t102.5 -244q0 -142 -102.5 -244t-248.5 -102h-737q-18 0 -18 -18v-147q0 -19 18 -19h737q145 0 267.5 71t194 193 t71.5 266q0 113 -47 214q124 162 124 351q0 152 -75.5 281.5t-205 204.5t-282.5 75q-244 0 -410 -178q-136 65 -289 65q-227 0 -402 -140t-221 -359q-140 -32 -244.5 -128.5t-145.5 -231.5zM336 -239q0 -36 29 -62q26 -26 64 -26h1019q38 0 64.5 25t26.5 63t-27 65t-64 27 h-1019q-38 0 -65.5 -27.5t-27.5 -64.5zM1723 1369q108 104 263 104q158 0 269.5 -111t111.5 -268q0 -100 -53 -189q-157 153 -375 153h-34q-39 175 -182 311z" />
<glyph unicode="&#xf031;" horiz-adv-x="2285" d="M3 529q0 -143 70 -264.5t191 -192.5t264 -71h1153q143 0 264.5 71t192.5 192.5t71 264.5q0 104 -44 213q121 148 121 352q0 152 -74.5 280.5t-203 203.5t-280.5 75q-239 0 -413 -186q-122 69 -286 69q-225 0 -398 -139t-222 -357q-179 -40 -292.5 -183t-113.5 -328z M185 529q0 133 89 230t224 113l73 3l7 77q22 173 150.5 289.5t300.5 116.5q115 0 214.5 -53t162.5 -146.5t74 -206.5l11 -80h190q141 0 243 -101.5t102 -241.5q0 -144 -101.5 -247t-243.5 -103h-1153q-139 0 -241 104t-102 246zM1469 1365q110 106 259 106 q158 0 268.5 -109.5t110.5 -267.5q0 -100 -54 -196q-153 153 -372 153h-33q-44 179 -179 314z" />
<glyph unicode="&#xf032;" horiz-adv-x="2297" d="M-1 529q0 -213 148.5 -366t362.5 -164q19 0 19 19v142q0 19 -19 19q-137 7 -233 109t-96 241q0 133 90 231t224 114l56 8q20 0 20 19l8 54q17 173 147 289.5t305 116.5q174 0 305 -117t149 -289l6 -62q0 -19 20 -19h172q145 0 247.5 -101t102.5 -244q0 -139 -96 -241 t-233 -109q-21 0 -21 -19v-142q0 -19 21 -19q140 5 257.5 77t185 192.5t67.5 260.5q0 118 -46 214q126 153 126 354q0 151 -75.5 280t-204.5 204.5t-280 75.5q-249 0 -414 -185q-131 70 -289 70q-226 0 -401 -140.5t-225 -358.5q-176 -42 -291 -185.5t-115 -328.5zM571 -215 q14 -35 50 -49q32 -16 66.5 -2.5t47.5 47.5q14 35 1 69.5t-47 50.5q-32 13 -65.5 -1t-49.5 -46q-17 -28 -3 -69zM639 87q0 -25 16.5 -49t49.5 -33q36 -11 68.5 6t45.5 59l106 332q12 39 -8 71t-59 40q-35 11 -66.5 -6.5t-42.5 -53.5l-107 -339q0 -3 -1 -8.5t-1.5 -10 t-0.5 -8.5zM838 -511q0 -14 5 -31q14 -35 50 -48q13 -8 35 -8q10 0 32 6q35 13 50.5 48.5t-0.5 70.5t-48 49t-66 1q-31 -13 -44.5 -38.5t-13.5 -49.5zM917 -226q0 -28 16 -51t51 -30q3 0 12 -2t14 -2q69 5 86 66l187 647q11 39 -6 69.5t-53 41.5q-37 11 -69 -6.5t-43 -53.5 l-192 -647q0 -4 -1 -10.5t-1.5 -12t-0.5 -9.5zM1283 -183q0 -12 6 -34q13 -34 49 -47q15 -7 38 -7q19 0 31 6q36 14 49 46q13 35 0 69t-45 51q-35 13 -69.5 -1t-50.5 -46q-8 -17 -8 -37zM1360 88q0 -57 66 -80q22 -6 32 -6q20 0 36 9q28 14 43 59l105 332q12 37 -6.5 68.5 t-54.5 42.5q-37 11 -68 -6.5t-43 -53.5l-105 -334q-5 -27 -5 -31zM1470 1369q110 106 264 106q156 0 266.5 -111t110.5 -267q0 -99 -55 -196q-157 157 -373 157h-34q-49 185 -179 311z" />
<glyph unicode="&#xf033;" horiz-adv-x="2285" d="M-6 525q0 -105 40 -200.5t108.5 -165t162.5 -112.5t199 -48q19 0 19 18v143q0 18 -19 18q-139 10 -234 110t-95 237q0 134 90.5 233t223.5 111l56 6q21 0 21 19l8 55q11 114 73.5 207t162 145.5t214.5 52.5q174 0 304 -115t149 -287l6 -62q0 -18 20 -18h171 q144 0 247 -102.5t103 -244.5q0 -137 -95 -237t-234 -110q-21 0 -21 -18v-143q0 -18 21 -18q214 10 361 161.5t147 364.5q0 102 -50 220q127 159 127 349q0 152 -75.5 281t-204 204t-279.5 75q-253 0 -412 -185q-130 68 -285 68q-225 0 -400 -140.5t-224 -359.5 q-179 -41 -292.5 -184t-113.5 -328zM810 32q-4 -22 15 -22h231l-141 -445h31l446 595q6 7 3 14.5t-14 7.5h-234l245 452q12 23 -15 23h-314q-12 0 -22 -15zM1457 1366q107 106 264 106t266.5 -110t109.5 -268q0 -95 -55 -192q-155 149 -368 149h-33q-47 190 -184 315z" />
<glyph unicode="&#xf034;" horiz-adv-x="2308" d="M3 527q0 -139 68.5 -259t186.5 -192.5t259 -76.5q19 0 19 18v143q0 19 -19 19q-137 7 -234.5 109.5t-97.5 238.5q0 135 91.5 235t225.5 111l56 8q20 0 20 18l8 55q17 176 147.5 294.5t306.5 118.5q174 0 305.5 -118t149.5 -291l8 -62q0 -18 18 -18h174 q144 0 247.5 -103.5t103.5 -247.5q0 -136 -97.5 -238.5t-233.5 -109.5q-20 0 -20 -19v-143q0 -18 20 -18q141 4 258.5 76.5t185 192.5t67.5 259q0 118 -44 215q129 159 129 359q0 153 -75.5 282.5t-205 205t-281.5 75.5q-119 0 -229.5 -49.5t-190.5 -136.5q-141 69 -289 69 q-227 0 -403 -140.5t-226 -359.5q-180 -46 -294 -190t-114 -330zM573 -227q0 -27 17 -54t50 -37q37 -11 68.5 4t42.5 60l15 65q8 36 -10 67.5t-55 42.5q-36 11 -68.5 -8t-42.5 -57l-15 -63q-2 -6 -2 -20zM654 82q0 -35 26 -61q25 -27 61 -27q38 0 64 25.5t26 62.5t-26 62.5 t-64 25.5q-37 0 -62 -25t-25 -63zM719 325q-2 -25 14 -48.5t51 -34.5q33 -10 66.5 7.5t44.5 54.5l30 96q12 39 -7.5 69.5t-58.5 41.5q-35 11 -67 -7t-43 -53l-27 -98q-3 -27 -3 -28zM842 -560q0 -27 17 -52.5t52 -35.5q14 -3 26 -3q69 0 85 65l15 63q10 40 -9 72.5t-57 39.5 q-34 11 -66.5 -7.5t-43.5 -54.5l-15 -63q-4 -18 -4 -24zM926 -250q0 -36 26 -62t62 -26q38 0 63 25t25 63q0 37 -25 62t-63 25t-63 -25t-25 -62zM992 -8q-2 -24 14.5 -50t48.5 -32q37 -10 68 6t44 60l28 96q11 35 -7.5 67t-56.5 43q-35 11 -68 -8.5t-44 -56.5l-24 -96 q-3 -14 -3 -29zM1287 -237q0 -27 16 -51.5t49 -34.5q5 0 15 -2t15 -2q65 0 81 70l15 64q11 34 -7.5 67t-54.5 44q-39 10 -71.5 -8.5t-43.5 -56.5l-11 -63q0 -2 -1.5 -12t-1.5 -15zM1366 78q0 -37 26 -61q24 -26 62 -26t63 25t25 62q0 38 -25 63t-63 25t-63 -25t-25 -63z M1431 325q0 -27 17.5 -51.5t52.5 -34.5q3 0 12.5 -2t14.5 -2q17 0 39 10q33 17 43 56l27 96q10 36 -8 67.5t-54 42.5q-37 11 -68.5 -6t-42.5 -54l-30 -97q0 -3 -1.5 -11.5t-1.5 -13.5zM1480 1370q111 111 269 111q157 0 267.5 -111.5t110.5 -268.5q0 -105 -55 -197 q-154 154 -377 154h-34q-44 186 -181 312z" />
<glyph unicode="&#xf035;" horiz-adv-x="2320" d="M-5 515q0 -181 107 -321t280 -192q15 -2 26 8l121 156q-143 0 -246.5 102.5t-103.5 246.5q0 138 91.5 239t228.5 112l56 8q18 0 18 15l8 60q19 176 150.5 294t307.5 118q178 0 310 -117t149 -292l8 -63q4 -18 22 -18h175q144 0 248 -105t104 -251q0 -135 -91.5 -235.5 t-224.5 -113.5q-76 0 -97 -30l-233 -256q-25 -29 -20 -66.5t34 -67.5q21 -28 62.5 -24.5t64.5 40.5l209 222q132 13 242.5 87.5t175 192t64.5 251.5q0 101 -46 222q124 158 124 354q0 156 -76 286.5t-207 206t-285 75.5q-251 0 -416 -182q-139 69 -296 69q-229 0 -405 -142 t-226 -366q-183 -41 -298 -186.5t-115 -336.5zM400 -285q0 -21 6 -34q13 -34 47 -47q36 -16 72.5 -2.5t48.5 48.5q16 35 2 71.5t-49 49.5q-36 13 -70 -0.5t-50 -47.5q-7 -15 -7 -38zM597 -24q0 -37 34 -71q68 -58 134 16l234 260q24 28 19 65.5t-34 60.5q-29 22 -66.5 17 t-62.5 -31l-236 -254q-22 -32 -22 -63zM665 -550q0 -19 8 -34q14 -36 45 -49q19 -8 39 -8q12 0 34 6q34 15 47 48q16 32 2 68t-48 49q-36 17 -69.5 3t-51.5 -51q-6 -18 -6 -32zM843 -295v-14q3 -38 35 -64q23 -29 63.5 -25.5t63.5 40.5l450 524q25 29 21 68t-37 61 q-28 23 -65 20t-62 -32l-449 -525q-20 -21 -20 -53zM1231 -384q-11 -36 0 -66q14 -35 48 -52q17 -8 38 -8q10 0 32 6q36 14 49 49q16 36 2.5 70t-47.5 47q-36 17 -70 3.5t-52 -49.5zM1487 1368q109 109 264 109q161 0 273 -112.5t112 -273.5q0 -100 -55 -194 q-156 156 -378 156h-34q-40 182 -182 315z" />
<glyph unicode="&#xf036;" horiz-adv-x="2297" d="M1 525q0 -105 40 -200.5t108.5 -165t163 -112.5t199.5 -48q18 0 18 18v143q0 18 -18 18q-139 10 -234 110t-95 237q0 134 90.5 233.5t223.5 110.5l56 6q21 0 21 20l7 54q17 174 146 289.5t305 115.5q175 0 305 -114.5t148 -286.5l6 -62q0 -19 20 -19h171 q144 0 247 -102.5t103 -244.5q0 -137 -95 -237t-234 -110q-21 0 -21 -18v-143q0 -18 21 -18q214 10 362 161.5t148 364.5q0 112 -46 212q126 153 126 358q0 150 -75.5 279t-204.5 204.5t-279 75.5q-249 0 -414 -185q-141 69 -288 69q-226 0 -400.5 -140.5t-224.5 -360.5 q-176 -41 -291 -184.5t-115 -327.5zM586 -187q0 -64 69 -83q33 -11 67 6.5t44 53.5l160 611q10 35 -9.5 67t-57.5 43q-35 11 -67 -7.5t-42 -55.5l-160 -608q-4 -18 -4 -27zM863 -513q0 -19 9 -39q16 -33 54 -46q4 0 10.5 -1t12 -1.5t9.5 -0.5q69 0 81 70l246 932 q11 35 -7 67t-54 43q-39 11 -72 -7.5t-40 -55.5l-246 -933q-3 -15 -3 -28zM1306 -186q0 -25 17 -50t48 -34q11 -3 24 -3q27 0 52 14.5t34 48.5l160 611q12 33 -7 66t-55 44q-39 11 -70.5 -7.5t-38.5 -55.5l-160 -608q-4 -18 -4 -26zM1470 1362q107 107 264 107 q156 0 266 -109t110 -265q0 -100 -55 -197q-153 153 -373 153h-33q-45 187 -179 311z" />
<glyph unicode="&#xf037;" horiz-adv-x="2297" d="M-1 526q0 -105 40 -200.5t108.5 -165.5t163.5 -113t200 -48q19 0 19 18v143q0 18 -19 18q-136 7 -232.5 109.5t-96.5 238.5t90 235t224 110l57 7q16 0 16 16l8 57q18 175 149 291.5t307 116.5q174 0 304.5 -115.5t149.5 -288.5l7 -61q0 -20 19 -20h173q142 0 244 -102 t102 -246q0 -136 -95 -238.5t-231 -109.5q-20 0 -20 -18v-143q0 -18 20 -18q214 10 362 162t148 365q0 100 -45 213q122 160 122 351q0 151 -75.5 280.5t-204.5 205t-280 75.5q-245 0 -412 -178q-139 69 -288 69q-227 0 -402 -141t-224 -361q-181 -42 -294.5 -183.5 t-113.5 -330.5zM574 -194q0 -27 15.5 -51.5t51.5 -36.5q18 -9 39.5 -7.5t43 21t29.5 51.5l30 108q10 40 -8.5 72t-56.5 39q-34 11 -67 -7.5t-44 -53.5l-30 -111q-3 -14 -3 -24zM714 315q1 -31 18 -55.5t51 -29.5q27 -5 32 -5q60 0 81 70l30 107q10 37 -8.5 70.5t-56.5 44.5 q-36 10 -68 -8.5t-43 -55.5l-32 -112q-4 -20 -4 -26zM846 -528q0 -28 16.5 -53t51.5 -35q22 -5 30 -5q14 0 40 11q27 13 41 59l32 108q10 40 -9 72.5t-56 39.5q-35 11 -68.5 -7.5t-44.5 -54.5l-30 -111q-3 -14 -3 -24zM987 -16q0 -27 17.5 -52.5t52.5 -35.5q36 -11 67.5 5 t43.5 60l30 108q11 40 -7.5 71t-56.5 38q-35 12 -68 -6.5t-44 -54.5l-30 -111q-5 -18 -5 -22zM1291 -202q-2 -25 14.5 -49.5t49.5 -35.5l28 -3q18 -1 40 8q33 13 44 58l31 112q11 37 -8 68.5t-55 42.5q-40 10 -71 -9t-38 -57l-31 -107q0 -3 -2 -12.5t-2 -15.5zM1435 310 q0 -28 17.5 -53t52.5 -32q1 0 11 -1.5t15 -1.5q70 0 87 66l30 110q10 40 -9 72t-57 39q-37 11 -68.5 -7.5t-41.5 -56.5l-32 -109q-5 -22 -5 -26zM1472 1366q107 103 261 103q156 0 266 -111.5t110 -267.5q0 -102 -51 -189q-154 154 -372 154h-35q-40 176 -179 311z" />
<glyph unicode="&#xf038;" horiz-adv-x="2297" d="M-5 529q0 -213 149 -366.5t363 -163.5q20 0 20 18v143q0 18 -20 18q-137 8 -233.5 110t-96.5 241q0 133 91 231t225 114l56 4q20 0 20 19l8 58q17 173 147 290t305 117q174 0 304.5 -117t148.5 -290l8 -61q0 -20 19 -20h172q145 0 248 -101.5t103 -243.5 q0 -139 -96.5 -241t-233.5 -110q-21 0 -21 -18v-143q0 -18 21 -18q214 7 362.5 161.5t148.5 368.5q0 114 -46 214q126 154 126 354q0 152 -75.5 281.5t-204.5 204.5t-280 75q-248 0 -415 -185q-129 69 -289 69q-226 0 -401.5 -140.5t-225.5 -358.5q-177 -42 -292 -185.5 t-115 -328.5zM677 90q0 -35 26 -61q27 -27 62 -27q37 0 62.5 25t25.5 63t-25 63t-63 25t-63 -25t-25 -63zM677 -297q0 -38 26 -62q26 -26 62 -26q38 0 63 25t25 63t-25.5 64.5t-62.5 26.5t-62.5 -26.5t-25.5 -64.5zM1017 -112q0 -37 27 -65.5t62 -28.5q37 0 64.5 28t27.5 66 q0 35 -27.5 61.5t-64.5 26.5q-35 0 -62 -26.5t-27 -61.5zM1017 271q0 -36 26 -62t63 -26q38 0 65 25.5t27 62.5t-27 63.5t-65 26.5q-36 0 -62.5 -26.5t-26.5 -63.5zM1017 -504q0 -37 26.5 -64t62.5 -27q38 0 65 27t27 64q0 35 -27.5 61.5t-64.5 26.5q-35 0 -62 -26.5 t-27 -61.5zM1362 90q0 -32 27 -61q27 -27 64 -27t62.5 25t25.5 63t-25 63t-63 25t-64.5 -25t-26.5 -63zM1362 -297q0 -35 27 -62q26 -26 64 -26t63 25t25 63t-25.5 64.5t-62.5 26.5t-64 -27t-27 -64zM1467 1369q108 108 266 108q157 0 266.5 -111t109.5 -269q0 -94 -54 -196 q-154 154 -374 154h-33q-47 186 -181 314z" />
<glyph unicode="&#xf039;" horiz-adv-x="2297" d="M-2 529q0 -213 148.5 -366.5t363.5 -163.5q18 0 18 18v146q0 20 -18 20q-140 10 -235.5 110t-95.5 236q0 135 91 234.5t225 110.5l56 7q20 0 20 20l7 53q17 173 147 290t306 117q175 0 305 -116.5t149 -290.5l6 -61q0 -19 20 -19h171q145 0 248 -101.5t103 -243.5 q0 -136 -95 -236t-234 -110q-22 0 -22 -20v-146q0 -18 22 -18q213 7 361.5 161.5t148.5 368.5q0 118 -46 214q126 153 126 358q0 151 -75.5 280.5t-204.5 205t-280 75.5q-244 0 -419 -187q-132 67 -284 67q-226 0 -401.5 -140t-224.5 -359q-177 -42 -292 -185.5t-115 -328.5 zM631 435q0 -60 45.5 -104t108.5 -44t106.5 43t43.5 105q0 41 -37.5 109t-70.5 107q-3 4 -19.5 21.5t-22.5 25.5l-38 -43q-44 -48 -80 -112.5t-36 -107.5zM950 10q0 -101 73.5 -175t175.5 -74q103 0 177 74t74 175q0 43 -25 103t-60 111q-74 95 -138 159q-9 7 -28 26 l-62 -62q-71 -68 -129 -166.5t-58 -170.5zM1107 725q0 -43 30 -71.5t76 -28.5q41 0 70 28.5t29 71.5q0 65 -99 172l-27 -28q-30 -32 -54.5 -74.5t-24.5 -69.5zM1469 1369q107 106 265 106q156 0 266 -109t110 -265q0 -101 -54 -197q-160 154 -374 154h-33q-45 188 -180 311z " />
<glyph unicode="&#xf03a;" horiz-adv-x="2297" d="M-1 533q0 -176 106 -317.5t274 -191.5l-68 -177q-7 -22 15 -22h226l-122 -436h31l435 586q6 7 1.5 15t-15.5 8h-232l264 498q12 23 -15 23h-315q-16 0 -21 -15l-117 -312q-114 29 -189.5 125t-75.5 216q0 134 90.5 233.5t224.5 111.5l56 7q21 0 21 18l8 55 q17 174 146.5 290.5t305.5 116.5q175 0 305 -116.5t149 -290.5l7 -62q0 -18 19 -18h173q145 0 248 -101.5t103 -243.5q0 -137 -96 -237.5t-235 -110.5q-20 0 -20 -19v-147q0 -18 20 -18q213 7 361.5 162t148.5 370q0 114 -45 213q123 161 123 351q0 114 -45 217.5 t-120 178.5t-179 119.5t-217 44.5q-118 0 -226 -48t-186 -134q-131 70 -288 70q-227 0 -402 -139.5t-225 -359.5q-177 -41 -292 -185t-115 -328zM871 -520q0 -28 17 -54.5t49 -32.5q1 0 11 -1.5t15 -1.5q69 5 86 65l31 113q10 35 -9.5 67.5t-56.5 43.5q-35 10 -67.5 -9 t-43.5 -57l-28 -107q-4 -20 -4 -26zM1014 -11q0 -24 16.5 -48t49.5 -36q35 -12 67 5.5t43 56.5l32 111q10 40 -8.5 72t-56.5 39q-36 11 -69 -7.5t-45 -56.5l-26 -109q0 -3 -1 -8.5t-1.5 -10t-0.5 -8.5zM1315 -184q0 -30 17.5 -55.5t50.5 -34.5q25 -5 28 -5q64 0 83 64 l26 113q11 35 -6 67t-53 44q-40 10 -73.5 -9.5t-40.5 -56.5l-29 -106q-3 -12 -3 -21zM1461 322q0 -26 17 -50.5t52 -36.5q27 -3 28 -3q19 0 40 9q31 16 42 56l31 111q10 35 -9.5 67.5t-56.5 43.5q-36 11 -68 -7.5t-43 -56.5l-30 -109q-3 -14 -3 -24zM1472 1373 q106 102 261 102q157 0 267 -110.5t110 -267.5q0 -101 -52 -190q-158 154 -372 154h-35q-49 186 -179 312z" />
<glyph unicode="&#xf03b;" horiz-adv-x="2297" d="M2 529q0 -178 106 -318t274 -187l-69 -179q-8 -23 15 -23h226l-111 -447h30l423 600q6 7 1.5 15t-15.5 8h-232l264 492q11 23 -15 23h-314q-14 0 -24 -15l-114 -306q-114 28 -188.5 122t-74.5 215q0 133 89.5 230.5t223.5 113.5l57 4q20 0 20 19l8 57q17 173 146 289.5 t304 116.5q173 0 303 -117t148 -289l8 -60q0 -20 19 -20h172q142 0 245.5 -102t103.5 -242q0 -138 -96 -239.5t-232 -108.5q-21 0 -21 -19v-143q0 -18 21 -18q139 4 256 76.5t184 192.5t67 259q0 119 -44 214q124 146 124 353q0 150 -75 279t-203.5 204t-278.5 75 q-248 0 -413 -185q-129 69 -288 69q-225 0 -400 -139.5t-224 -357.5q-176 -41 -291 -184.5t-115 -327.5zM848 -525q0 -26 15.5 -49t48.5 -33q3 0 8.5 -1t10 -1.5t8.5 -0.5q67 0 85 64l259 948q10 37 -7 68.5t-52 42.5q-37 11 -69.5 -6.5t-42.5 -53.5l-261 -949 q-3 -27 -3 -29zM1290 -201q0 -26 16 -50t51 -35q3 0 8.5 -1t10 -1.5t8.5 -0.5q19 0 38 8q31 13 44 59l175 624q10 37 -8 68.5t-54 42.5q-37 11 -68.5 -6.5t-41.5 -53.5l-174 -628q-5 -23 -5 -26zM1469 1367q108 102 264 102q155 0 264.5 -109t109.5 -264q0 -103 -53 -197 q-154 154 -372 154h-34q-45 184 -179 314z" />
<glyph unicode="&#xf03c;" horiz-adv-x="1131" d="M1 1160q0 80 57 137t137 57q79 0 135.5 -57t56.5 -137t-56.5 -137t-135.5 -57t-136.5 57t-57.5 137zM95 1160q0 -41 30 -71t70 -30q41 0 71 30t30 71t-30 71t-71 30q-42 0 -71 -29.5t-29 -71.5zM510 688q0 -123 68 -219q35 -50 98.5 -79.5t144.5 -29.5q233 0 292 178 q6 23 -6.5 43.5t-35.5 24.5q-23 6 -43 -7t-25 -36q0 -1 -1.5 -5.5l-2.5 -7.5q-18 -30 -48 -48q-50 -30 -130 -30q-51 0 -90 17q-64 27 -91 95q-18 44 -18 104v344q0 24 3 48q6 61 48 111q47 56 148 56q82 0 130 -29q32 -19 48 -48q1 -3 2.5 -8.5t1.5 -6.5q6 -22 25 -32.5 t43 -5.5q23 5 35.5 24.5t6.5 42.5v1l-9 25q-8 18 -29.5 46t-48.5 47q-77 56 -205 56q-81 0 -144 -28.5t-98 -77.5q-69 -95 -69 -221v-344z" />
<glyph unicode="&#xf03d;" horiz-adv-x="2217" d="M3 531q0 -214 149 -367t363 -163q19 0 19 18v143q0 19 -19 19q-137 7 -233.5 109t-96.5 241q0 133 91 231.5t225 114.5l56 3q20 0 20 18l8 59q16 173 146 289.5t306 116.5q174 0 304.5 -116.5t148.5 -289.5l8 -62q0 -18 19 -18h172q142 0 246.5 -103t104.5 -243 q0 -139 -96.5 -241t-233.5 -109q-21 0 -21 -19v-143q0 -18 21 -18q213 7 361 161t148 369q0 144 -71 265t-193 190.5t-266 69.5h-34q-52 214 -224.5 351t-393.5 137q-226 0 -401.5 -140t-225.5 -359q-176 -41 -291.5 -185.5t-115.5 -328.5zM746 368q0 -37 27 -64l275 -278 q20 -25 62 -25q45 0 65 25l276 278q27 29 27 64q0 37 -26.5 62t-64.5 25t-66 -25l-120 -118v425q0 38 -26.5 63t-64.5 25t-63 -25t-25 -63v-425l-118 118q-28 25 -66 25q-40 0 -66 -24.5t-26 -62.5z" />
<glyph unicode="&#xf03e;" horiz-adv-x="2217" d="M6 527q0 -105 40 -200.5t108.5 -165t163 -112.5t199.5 -48q18 0 18 18v142q0 20 -18 20q-139 10 -234.5 110t-95.5 236q0 134 91 233.5t224 110.5l56 8q20 0 20 18l8 55q11 114 74 207.5t162.5 146t214.5 52.5q175 0 305 -115t148 -288l7 -61q0 -19 20 -19h172 q144 0 247 -103t103 -245q0 -136 -95 -236t-234 -110q-21 0 -21 -20v-142q0 -18 21 -18q214 10 361 161.5t147 364.5q0 143 -71 264.5t-193 192.5t-265 71h-34q-53 213 -225.5 350t-392.5 137q-225 0 -400.5 -141.5t-225.5 -360.5q-176 -41 -290.5 -185t-114.5 -328z M670 392q0 -119 59.5 -220.5t161 -161.5t219.5 -60q184 0 314.5 130.5t130.5 311.5q0 38 -26.5 64.5t-64.5 26.5t-66 -27t-28 -64q0 -108 -76 -184.5t-184 -76.5q-107 0 -183.5 77t-76.5 184q0 96 57.5 171t140.5 82l-45 -42q-24 -24 -24 -61q0 -40 24 -70q22 -24 57 -25 t75 25l194 199q26 26 26 62q0 41 -26 65l-194 195q-30 28 -66 28q-37 0 -63.5 -27t-26.5 -65t24 -62l38 -38q-160 -27 -265.5 -149t-105.5 -288z" />
<glyph unicode="&#xf040;" horiz-adv-x="2217" d="M0 530q0 -213 148.5 -366t362.5 -163q18 0 18 18v142q0 20 -18 20q-137 7 -233 108.5t-96 240.5q0 132 90 230t224 114h56q21 0 21 19l6 61q17 173 147 290t305 117q173 0 303.5 -117t148.5 -290l8 -61q0 -19 19 -19h172q142 0 246 -102.5t104 -241.5q0 -138 -96.5 -240 t-232.5 -109q-21 0 -21 -20v-142q0 -18 21 -18q139 4 256 76t184.5 192.5t67.5 260.5q0 107 -42 204t-113 167t-169 111.5t-205 41.5h-34q-53 214 -225 350.5t-392 136.5q-226 0 -401 -140.5t-224 -358.5q-177 -41 -291.5 -184.5t-114.5 -327.5zM741 463q0 -40 26 -68 q24 -24 65 -24q39 0 66 24l118 122v-424q0 -38 25 -65t63 -27q37 0 64 27t27 65v420l120 -118q64 -49 130 0q26 24 26 66q0 38 -26 66l-276 274q-26 26 -64 26q-39 0 -63 -26l-275 -274q-26 -26 -26 -64z" />
<glyph unicode="&#xf041;" horiz-adv-x="2217" d="M3 531q0 -214 149 -367t363 -163q19 0 19 18v143q0 19 -19 19q-137 7 -233.5 109t-96.5 241q0 133 91 231.5t225 114.5h56q20 0 20 18l8 62q16 173 146 289.5t306 116.5q174 0 304.5 -116.5t148.5 -289.5l8 -62q0 -18 19 -18h172q142 0 246.5 -103t104.5 -243 q0 -139 -96.5 -241t-233.5 -109q-21 0 -21 -19v-143q0 -18 21 -18q213 7 361 161t148 369q0 144 -71 265t-193 190.5t-266 69.5h-34q-52 214 -224.5 351t-393.5 137q-226 0 -401.5 -140t-225.5 -359q-176 -41 -291.5 -185.5t-115.5 -328.5z" />
<glyph unicode="&#xf042;" horiz-adv-x="377" d="M-3 1349q0 80 57 137t137 57q79 0 135.5 -57t56.5 -137t-56.5 -137.5t-135.5 -57.5t-136.5 57.5t-57.5 137.5zM90 1349q0 -41 30 -71t71 -30t70.5 30t29.5 71t-29.5 70.5t-70.5 29.5q-42 0 -71.5 -29t-29.5 -71z" />
<glyph unicode="&#xf043;" horiz-adv-x="685" d="M6 542q0 -31 20.5 -51.5t50.5 -20.5h306q30 0 50.5 20.5t20.5 51.5q0 30 -20.5 49.5t-50.5 19.5h-133l415 414q18 21 18 53q0 30 -18 49q-20 19 -54 19q-31 0 -50 -19l-412 -413v133q0 31 -20.5 51.5t-51.5 20.5q-30 0 -50.5 -21t-20.5 -51v-305z" />
<glyph unicode="&#xf044;" horiz-adv-x="685" d="M-6 574q0 -34 28 -59l256 -261q25 -25 61 -25q38 0 63 25l256 261q27 24 27 59q0 36 -24.5 60.5t-60.5 24.5t-61 -25l-113 -112v703q0 36 -25.5 60t-61.5 24t-61 -24t-25 -60v-703l-114 112q-25 25 -59 25q-36 0 -61 -24.5t-25 -60.5z" />
<glyph unicode="&#xf045;" horiz-adv-x="1131" d="M3 1157q0 79 58 137q57 57 137 57q79 0 135.5 -57t56.5 -137t-56.5 -137.5t-135.5 -57.5q-80 0 -137.5 58t-57.5 137zM97 1157q0 -41 30 -71t71 -30t70.5 30t29.5 71t-29.5 70.5t-70.5 29.5q-42 0 -71.5 -29t-29.5 -71zM568 422q0 -23 16.5 -39.5t39.5 -16.5t39.5 16.5 t16.5 39.5v404h305q23 0 39.5 17t16.5 40q0 24 -16 40t-40 16h-305v291h408q23 0 38.5 16.5t15.5 39.5t-15.5 39.5t-38.5 16.5h-509q-11 0 -11 -12v-908z" />
<glyph unicode="&#xf046;" horiz-adv-x="2285" d="M-13 635q0 42 29 66q23 24 66 24h222q39 0 64.5 -25.5t25.5 -64.5q0 -38 -26 -65t-64 -27h-222q-39 0 -67 27t-28 65zM87 93q0 38 27 65q26 25 65 25h1942q39 0 66.5 -26t27.5 -64t-28 -65.5t-66 -27.5h-1942q-38 0 -65 27.5t-27 65.5zM304 1391q0 41 25 63q27 29 66 29 t66 -29l154 -156q27 -26 27 -64q0 -40 -26 -65.5t-64 -25.5q-35 0 -64 26l-159 157q-25 22 -25 65zM582 635q0 -139 57 -249q5 -15 25 -15h178q12 0 14.5 6.5t-7.5 17.5q-84 103 -84 240q0 159 114 271t272 112q159 0 271.5 -112t112.5 -271q0 -136 -86 -240q-6 -10 -6 -13 q-1 -5 3 -8t11 -3h182q14 0 22 15q59 111 59 249q0 153 -76.5 284.5t-208 208.5t-284.5 77t-284.5 -77t-208 -208.5t-76.5 -284.5zM1058 1481v223q0 38 27.5 66t65.5 28t66 -28t28 -66v-223q0 -38 -28 -66t-66 -28t-65.5 28t-27.5 66zM1658 1234q0 38 27 64l154 156 q27 29 65 29q40 0 67 -26.5t27 -65.5q0 -41 -24 -65l-161 -157q-26 -24 -63 -24q-40 -1 -66 24t-26 65zM1906 635q0 42 27 66q23 24 62 24h223q39 0 66.5 -25.5t27.5 -64.5q0 -38 -28 -65t-66 -27h-223q-37 0 -63 27t-26 65z" />
<glyph unicode="&#xf047;" horiz-adv-x="2285" d="M73 94q0 42 30 66q22 25 67 25h1956q40 0 68 -26t28 -65q0 -38 -28 -66.5t-68 -28.5h-1956q-40 0 -68.5 28.5t-28.5 66.5zM283 978q0 41 26 67q27 28 68 28q37 0 64 -28l160 -160q29 -29 29 -67q0 -37 -29 -66q-24 -29 -64 -28.5t-68 28.5l-160 160q-26 25 -26 66z M597 382q-7 -25 16 -25h158q11 0 24 18q48 102 142 162t209 60q116 0 212 -60t144 -162q13 -18 24 -18h159q20 0 16 25q-54 180 -208 293.5t-347 113.5q-192 0 -343.5 -113t-205.5 -294zM1055 1071v228q0 40 26 68t65 28q40 0 67 -27.5t27 -68.5v-228q0 -41 -27 -68t-67 -27 q-39 0 -65 27.5t-26 67.5zM1665 818q0 37 28 67l163 160q25 28 66 28q39 0 64 -27t25 -68q0 -42 -25 -66l-157 -160q-27 -27 -61 -30q-36 -4 -69.5 26t-33.5 70z" />
<glyph unicode="&#xf048;" horiz-adv-x="1085" d="M6 734q0 -38 25 -63l262 -256q23 -26 58 -26q36 0 61 24t25 60q0 35 -26 61l-112 112h703q36 0 60 25.5t24 61.5t-24 61.5t-60 26.5h-703l112 113q26 26 26 59q0 36 -25 61t-61 25q-33 0 -58 -28l-262 -256q-25 -25 -25 -61z" />
<glyph unicode="&#xf04a;" horiz-adv-x="2285" d="M-288 99q0 -36 27 -61t66 -25h1985q38 0 64.5 25t26.5 61q0 39 -26 65.5t-65 26.5h-1985q-38 0 -65.5 -27t-27.5 -65zM-10 431q0 -38 28 -63q22 -29 63 -29h1985q37 0 62 27t25 65q0 37 -25 62t-62 25h-1985q-38 0 -64.5 -25t-26.5 -62zM6 689v5q-7 -24 13 -24h154 q9 0 20 16q38 83 113.5 136t165.5 60l57 8q20 0 20 19l6 53q17 172 145.5 287.5t302.5 115.5q172 0 301 -114t147 -285l7 -61q0 -19 22 -19h169q103 0 187 -55t125 -145q11 -16 23 -16h151q19 0 16 24q-35 89 -49 113q116 104 160 274l18 70q4 10 -1.5 17t-12.5 7l-66 23 q-143 41 -217.5 169t-39.5 273l14 62q8 15 -14 25l-90 25q-175 43 -343 -28t-263 -226q-127 49 -244 49q-222 0 -395.5 -140t-223.5 -357q-135 -32 -236.5 -129t-141.5 -232zM175 -226q0 -38 28 -63q27 -29 63 -29h1989q37 0 63 27t26 65q0 37 -26 62t-63 25h-1989 q-38 0 -64.5 -25t-26.5 -62zM1402 1403q56 92 150.5 142t199.5 40q-11 -167 75 -312.5t237 -215.5q-24 -56 -80 -114q-147 121 -335 121h-34q-51 210 -213 339z" />
<glyph unicode="&#xf04b;" horiz-adv-x="685" d="M-2 741q0 -192 134 -326.5t326 -134.5q30 0 51.5 23t21.5 54t-21 51.5t-52 20.5q-130 0 -220.5 91t-90.5 221q0 124 85.5 216t200.5 92l-35 -34q-24 -23 -22 -52q0 -29 21 -51.5t52 -22.5q32 0 54 22l161 160q21 17 21 54q0 35 -21 50l-161 163q-21 22 -53 22 q-31 0 -53 -22t-22 -53q0 -33 23 -54l32 -30q-184 -13 -308 -144.5t-124 -315.5z" />
<glyph unicode="&#xf04c;" horiz-adv-x="1108" d="M-7 674q0 -151 75.5 -279.5t204 -203t278.5 -74.5q153 0 281.5 74t202.5 202t74 281q0 38 -25.5 65t-62.5 27t-64.5 -27t-27.5 -65q0 -157 -110.5 -267.5t-267.5 -110.5q-155 0 -264 110.5t-109 267.5q0 136 84.5 246.5t196.5 117.5l-41 -39q-26 -28 -26 -62 q0 -36 26 -64q58 -56 129 0l196 194q26 20 26 66q0 41 -26 61l-196 198q-28 26 -61 26q-40 0 -67 -26.5t-27 -64.5q0 -39 26 -65l41 -38q-200 -35 -333 -191.5t-133 -358.5z" />
<glyph unicode="&#xf04d;" horiz-adv-x="1085" d="M0 799q0 -36 24 -61t59 -21h703l-111 -115q-25 -25 -25 -59q0 -36 25.5 -61t61.5 -25q34 1 57 29l261 257q25 25 25 62q-2 37 -26 62l-263 255q-24 26 -58 25q-36 0 -61 -24t-25 -60t25 -61l113 -115h-703q-36 -1 -59.5 -26.5t-22.5 -61.5z" />
<glyph unicode="&#xf04e;" horiz-adv-x="857" d="M2 1027q0 41 40.5 108t77.5 111q10 12 25 29.5t17 19.5l39 -46q44 -49 81 -114t37 -108q0 -66 -45.5 -113t-111.5 -47t-113 47t-47 113zM335 584q0 46 26 107.5t64 113.5q31 41 75 91.5t66 71.5q4 2 27 26l28 -26q59 -55 140 -162q41 -55 67 -115t26 -107 q0 -109 -75.5 -184t-185.5 -75q-108 0 -183 76t-75 183zM497 1320q0 68 108 181l26 -30q30 -35 54.5 -78.5t24.5 -72.5q0 -44 -30.5 -73.5t-74.5 -29.5q-46 0 -77 29.5t-31 73.5z" />
<glyph unicode="&#xf050;" d="M6 521q0 -40 29 -66q26 -30 68 -30h1567q46 0 77.5 -32t31.5 -79q0 -46 -31 -76.5t-78 -30.5t-78 31q-26 28 -64 28q-40 0 -68.5 -27.5t-28.5 -65.5q0 -40 30 -67q90 -88 209 -88q125 0 214 86t89 210t-89.5 213.5t-213.5 89.5h-1567q-40 0 -68.5 -28t-28.5 -68zM6 871 q0 -38 29 -65q28 -28 68 -28h2138q125 0 214.5 87t89.5 210q0 124 -89.5 212t-214.5 88q-123 0 -208 -85q-30 -27 -30 -71q0 -41 27.5 -67t67.5 -26t68 26q30 33 75 33q46 0 77.5 -32t31.5 -78t-31.5 -77t-77.5 -31h-2138q-40 0 -68.5 -28t-28.5 -68z" />
<glyph unicode="&#xf051;" d="M-40 693q0 40 32 74q36 31 75 31h248q43 0 72 -31t29 -74q0 -46 -29 -77t-72 -31h-248q-43 0 -75 32.5t-32 75.5zM315 1544q0 43 28 73q36 31 75 31q42 0 73 -31l175 -176q30 -35 30 -74q0 -45 -29 -75t-70 -30q-39 0 -75 31l-179 173q-28 34 -28 78zM528 104q0 45 31 73 q28 28 73 28h281l332 312q16 13 36 0l337 -312h295q43 0 73.5 -29.5t30.5 -71.5q0 -43 -30.5 -74t-73.5 -31h-361q-16 0 -31 8l-257 242l-255 -242q-13 -8 -30 -8h-347q-43 0 -73.5 31t-30.5 74zM627 693q0 -155 66 -282q4 -19 27 -19h201q12 0 16 9t-2 20 q-102 123 -102 272q0 180 128 306t308 126q179 0 305.5 -126t126.5 -306q0 -150 -101 -272q-7 -11 -3.5 -20t16.5 -9h203q21 0 25 19q66 123 66 282q0 130 -51 248t-136.5 203.5t-203.5 136t-247 50.5q-130 0 -248.5 -50.5t-205 -136t-137.5 -203.5t-51 -248zM1163 1648v245 q0 46 30 75.5t76 29.5q45 0 74.5 -30t29.5 -75v-245q0 -46 -29.5 -75.5t-74.5 -29.5q-46 0 -76 29.5t-30 75.5zM1840 1367q0 40 29 74l173 176q31 31 75 31t74 -30.5t30 -73.5q0 -46 -28 -78l-180 -173q-34 -31 -75 -31q-43 0 -70.5 29.5t-27.5 75.5zM2119 693q0 43 28.5 74 t70.5 31h251q43 0 74 -31t31 -74q0 -44 -31 -76t-74 -32h-251q-43 0 -71 31t-28 77z" />
<glyph unicode="&#xf052;" d="M-22 681q0 44 32 72q28 28 73 28h246q43 0 71.5 -28.5t28.5 -71.5q0 -44 -28.5 -75t-71.5 -31h-246q-43 0 -74 31.5t-31 74.5zM329 1519q0 44 28 72q32 32 74 32q46 0 72 -32l174 -174q74 -70 0 -144q-30 -30 -70 -30q-35 0 -72 30l-178 174q-28 30 -28 72zM539 103 q0 42 32 74q29 29 72 29h343q17 0 30 -8l251 -237l255 237q11 8 31 8h352q43 0 73.5 -30t30.5 -73t-30.5 -73.5t-73.5 -30.5h-286l-334 -303q-20 -14 -36 0l-329 303h-277q-43 0 -73.5 30.5t-30.5 73.5zM639 681q0 -157 63 -280q8 -17 28 -17h199q13 0 16 8t-8 19 q-95 119 -95 270q0 176 126 299.5t304 123.5q176 0 301.5 -124t125.5 -299q0 -152 -94 -270q-11 -11 -8 -19t16 -8h201q20 0 25 17q66 125 66 280q0 127 -50.5 244.5t-135.5 202.5t-202 135.5t-245 50.5t-245 -50.5t-202 -135.5t-135.5 -202.5t-50.5 -244.5zM1168 1621v248 q0 43 30.5 73.5t73.5 30.5t73.5 -30.5t30.5 -73.5v-248q0 -43 -30.5 -73.5t-73.5 -30.5t-73.5 30.5t-30.5 73.5zM1838 1345q0 46 27 72l174 174q26 32 72 32q44 0 73.5 -30.5t29.5 -73.5q0 -44 -28 -72l-177 -174q-37 -30 -74 -30q-42 0 -69.5 29.5t-27.5 72.5zM2113 681 q0 43 28.5 71.5t71.5 28.5h246q43 0 73.5 -29t30.5 -71q0 -43 -30.5 -74.5t-73.5 -31.5h-246q-43 0 -71.5 31t-28.5 75z" />
<glyph unicode="&#xf053;" horiz-adv-x="685" d="M-1 393q0 86 39.5 160.5t111.5 124.5v668q0 81 55.5 137t136.5 56t137 -56t56 -137v-668q71 -50 110.5 -124.5t39.5 -160.5q0 -143 -100.5 -243t-242.5 -100t-242.5 100t-100.5 243zM117 393q0 -94 66 -160.5t159 -66.5q94 0 161.5 67.5t67.5 159.5q0 63 -32.5 116.5 t-88.5 83.5l-19 9q-10 4 -10 20v724q0 32 -22.5 54t-56.5 22q-33 0 -56 -22t-23 -54v-724q0 -16 -9 -20l-20 -9q-55 -30 -86 -83t-31 -117z" />
<glyph unicode="&#xf054;" horiz-adv-x="685" d="M153 401q0 -81 56 -137.5t134 -56.5q79 0 136 56.5t57 137.5q0 71 -49 126t-120 66v558q0 7 -7 14.5t-17 7.5q-22 0 -22 -22v-558q-70 -11 -119 -66t-49 -126z" />
<glyph unicode="&#xf055;" horiz-adv-x="685" d="M-10 377q0 87 40.5 163t113.5 126v681q0 82 56 139.5t138 57.5q83 0 140 -57.5t57 -139.5v-681q72 -51 112.5 -126.5t40.5 -162.5q0 -145 -102.5 -247.5t-247.5 -102.5t-246.5 102.5t-101.5 247.5zM110 377q0 -96 67 -164t161 -68q97 0 166 68.5t69 163.5q0 64 -33 118 t-91 84l-19 11q-11 5 -11 19v738q0 32 -23.5 54.5t-57.5 22.5q-32 0 -55.5 -22.5t-23.5 -54.5v-738q0 -15 -10 -19l-19 -11q-57 -30 -88.5 -83.5t-31.5 -118.5zM170 381q0 -72 49 -122.5t119 -50.5t121 50.5t51 122.5q0 64 -44 113t-106 57v495q0 6 -7 12.5t-15 6.5 q-19 0 -19 -19v-495q-62 -8 -105.5 -57t-43.5 -113z" />
<glyph unicode="&#xf056;" horiz-adv-x="1485" d="M5 718q0 -71 74 -121q135 -95 408 -95q122 0 227 21q111 24 181.5 75.5t70.5 119.5q0 21 -8 42q142 35 223 94.5t81 136.5q0 19 -6 41q233 83 233 224q0 90 -102 160q-200 133 -586 133q-181 0 -329 -32q-159 -33 -258 -102.5t-99 -158.5q0 -51 34 -97 q-122 -69 -122 -168q0 -76 76 -135q-98 -57 -98 -138zM46 411q0 -75 92 -117.5t232 -42.5q142 0 235 42.5t93 117.5q0 28 -18 47t-46 19q-23 0 -41 -16t-23 -39q-20 -16 -75 -29.5t-125 -13.5q-113 0 -183 32q16 16 17.5 41t-10.5 42q-16 22 -41.5 27t-47.5 -9 q-59 -40 -59 -101zM133 718q1 2 12 12q9 9 38.5 23t65.5 24l8 4q166 -55 388 -55q97 0 176 11l18 -16q-9 -16 -44 -34q-41 -22 -126.5 -39t-181.5 -17t-182.5 17t-128.5 39q-34 15 -43 31zM141 143q0 -65 73.5 -100t182.5 -35q111 0 185.5 35t74.5 100q0 26 -19 46t-45 20 q-48 0 -63 -49q-40 -25 -133 -25q-83 0 -132 25q-15 49 -63 49q-26 0 -43.5 -19t-17.5 -47zM154 991q0 6 11 19q25 31 97 60q196 -105 539 -105q175 0 329 32v-6q0 -16 -18 -31q-42 -37 -157 -70q-124 -37 -310 -37q-188 0 -312 37q-119 33 -159 70q-20 16 -20 31zM243 1256 q0 18 24 40q46 43 183 83q146 43 351 43q206 0 354 -43q138 -40 183 -83q23 -23 23 -40t-23 -38q-45 -43 -183 -84q-148 -43 -354 -43q-205 0 -351 43q-138 40 -183 84q-24 21 -24 38z" />
<glyph unicode="&#xf057;" horiz-adv-x="685" d="M5 557q0 -31 18 -50q20 -19 54 -19q31 0 50 19l411 413v-133q0 -31 20.5 -51.5t51.5 -20.5q30 0 50.5 21t20.5 51v306q0 31 -20.5 51.5t-50.5 20.5h-306q-30 0 -50.5 -20.5t-20.5 -51.5q0 -30 20.5 -50t50.5 -20h133l-414 -414q-18 -21 -18 -52z" />
<glyph unicode="&#xf058;" horiz-adv-x="685" d="M-2 1013q-1 -36 23 -61.5t60 -24.5q36 -2 61 25l113 112v-703q-1 -36 24.5 -60t62.5 -23q35 -2 61 22t27 60v703l112 -112q24 -25 59 -25q37 0 62 24.5t25 60.5q-2 37 -27 58l-255 262q-25 24 -63 27q-38 -2 -63 -28l-256 -260q-26 -22 -26 -57z" />
<glyph unicode="&#xf059;" horiz-adv-x="1542" d="M10 769q0 156 60.5 298.5t163 244.5t244 163t297.5 61q157 0 299 -61t245 -163.5t164 -244.5t61 -297q0 -156 -61 -298.5t-164 -245.5t-245 -163.5t-298 -60.5q-155 0 -297 60.5t-244.5 163t-163.5 244.5t-61 299zM178 769q0 -162 80.5 -299.5t218.5 -217t299 -79.5 q121 0 232 47.5t191.5 127.5t128 190.5t47.5 231.5q0 245 -177 422q-178 176 -423 176q-121 0 -231.5 -48t-190.5 -128t-127.5 -191t-47.5 -232zM502 521l89 239q5 10 0 21l-89 235q-5 10 0.5 16t16.5 1l599 -252q10 -1 10 -11q0 -9 -10 -10l-599 -257q-11 -4 -16.5 1.5 t-0.5 16.5z" />
<glyph unicode="&#xf05a;" horiz-adv-x="1542" d="M26 968q22 82 64 161t108.5 154t149 131.5t193 90.5t233.5 34q319 0 544 -226q148 -148 201.5 -346t0.5 -397q-22 -82 -63.5 -161t-107.5 -154t-148 -131.5t-193 -91t-234 -34.5q-320 0 -545 226q-148 147 -202 346t-1 398zM173 769q0 -249 176 -425t425 -176 q122 0 233 47.5t191.5 128t128 191.5t47.5 234q0 163 -80.5 301t-218.5 218.5t-301 80.5q-123 0 -234 -47.5t-191.5 -128t-128 -191.5t-47.5 -233zM392 761q0 7 11 10l605 250q11 2 16 -3.5t1 -16.5l-248 -604q-2 -11 -10 -11q-11 0 -16 11l-103 230q-9 14 -15 15l-230 104 q-11 4 -11 15z" />
<glyph unicode="&#xf05b;" horiz-adv-x="1542" d="M26 568.5q-53 198.5 0 396.5q22 82 63.5 160.5t107.5 153t148 131t192.5 90.5t233.5 34q317 0 542 -225q148 -147 201 -345t0 -396q-22 -82 -63 -160.5t-107 -153.5t-148 -131.5t-192 -90.5t-233 -34q-319 0 -544 225q-148 147 -201 345.5zM171 767q0 -249 176 -424 q175 -176 424 -176q162 0 299.5 80.5t218 218.5t80.5 301q0 162 -80.5 299.5t-218 218t-299.5 80.5q-163 0 -301 -80.5t-218.5 -218t-80.5 -299.5zM519 998q-2 11 3.5 17t15.5 2l603 -249q11 -2 11 -10q0 -9 -11 -14l-230 -104q-11 -4 -15 -15l-104 -230q-5 -11 -14 -11 q-8 0 -10 11z" />
<glyph unicode="&#xf05c;" horiz-adv-x="1542" d="M2 765q0 209 103.5 386.5t280.5 280.5t385 103q156 0 298 -61t245 -164t164 -245.5t61 -299.5q0 -156 -61 -298.5t-164 -245t-245 -163t-298 -60.5q-157 0 -299.5 61t-245.5 164t-163.5 244.5t-60.5 297.5zM171 765q0 -242 178 -422q177 -177 422 -177q162 0 300 80.5 t219 218.5t81 300t-81 300.5t-219 219t-300 80.5t-300 -80.5t-219 -219t-81 -300.5zM505 507l256 600q2 11 10 11q9 0 11 -11l255 -600q4 -11 -2 -17t-17 0l-236 89q-10 5 -21 0l-239 -89q-10 -6 -16 0t-1 17z" />
<glyph unicode="&#xf05d;" horiz-adv-x="1542" d="M8.5 572q-53.5 200 0.5 397q22 82 63.5 161t108 154.5t149.5 132t194 91t234 34.5q318 0 544 -228q148 -148 201.5 -346t0.5 -397q-22 -82 -63.5 -161t-108 -154.5t-148.5 -132t-192.5 -91t-233.5 -34.5q-322 0 -547 226q-149 148 -202.5 348zM155 770q0 -250 176 -426 t427 -176q162 0 300.5 80.5t219 219t80.5 302.5q0 122 -47.5 233t-128 191.5t-191.5 128t-233 47.5q-164 0 -303 -80.5t-219.5 -219t-80.5 -300.5zM375 777q0 10 10 14l231 104q10 5 15 15l103 229q9 12 16 12q8 0 11 -12l248 -605q2 -11 -2 -15t-16 -2l-606 248 q-10 3 -10 12z" />
<glyph unicode="&#xf05e;" horiz-adv-x="1542" d="M30.5 573q-53.5 200 0.5 397q22 82 63.5 161t107.5 154t148.5 131.5t193.5 91t234 34.5q318 0 543 -228q149 -147 202.5 -345.5t-0.5 -395.5q-22 -82 -63 -161.5t-107.5 -154.5t-148.5 -132t-192.5 -91.5t-233.5 -34.5q-322 0 -545 227q-149 147 -202.5 347zM176 771 q0 -249 176 -426q175 -175 426 -175q162 0 300 80t218.5 218.5t80.5 302.5q0 162 -80.5 300.5t-218.5 219t-300 80.5q-164 0 -302.5 -80.5t-219 -219t-80.5 -300.5zM525 536l250 605q1 10 10 10q10 0 14 -10l104 -231q2 -9 16 -14l230 -104q11 -4 11 -14q0 -9 -11 -12 l-605 -248q-10 -4 -15 1t-4 17z" />
<glyph unicode="&#xf060;" horiz-adv-x="1542" d="M6 766q0 156 61.5 298.5t164.5 245.5t245 163.5t298 60.5t298.5 -60.5t245.5 -163.5t164 -245t61 -299t-61 -299t-164 -244.5t-245.5 -163t-298.5 -60.5t-298.5 61t-245.5 164t-164 245t-61 297zM176 766q0 -245 177 -422q176 -176 422 -176q163 0 301.5 80.5t219 218 t80.5 299.5q0 121 -47.5 232t-128.5 191.5t-192 128t-233 47.5q-121 0 -231.5 -47.5t-191 -128t-128.5 -191.5t-48 -232zM510 1025q-5 11 1 16.5t16 0.5l238 -89q10 -4 22 0l236 89q10 5 16 -0.5t2 -16.5l-254 -599q-3 -10 -12 -10q-7 0 -10 10z" />
<glyph unicode="&#xf061;" horiz-adv-x="1542" d="M6 769q0 157 61.5 300t165 246.5t246 164.5t298.5 61t298.5 -61t246 -164.5t164.5 -246.5t61 -300t-61 -300t-164.5 -245.5t-246 -163.5t-298.5 -61q-157 0 -300 61t-246 164.5t-164 246t-61 298.5zM176 769q0 -246 178 -424q177 -177 423 -177q163 0 301.5 81 t219.5 219.5t81 300.5t-81 300.5t-219.5 219.5t-301.5 81q-162 0 -300.5 -81t-219.5 -219.5t-81 -300.5zM424 769q0 9 11 10l602 258q11 5 16.5 -1.5t0.5 -16.5l-89 -240q-7 -10 0 -20l89 -238q5 -10 -0.5 -16t-16.5 -1l-602 255q-11 1 -11 10z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 94 KiB

202
fonts/LICENSE.txt Normal file
View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

95
fonts/roboto.css Normal file
View File

@@ -0,0 +1,95 @@
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 100;
src:
local("Roboto Thin"),
local("Roboto-Thin"),
url("Roboto-Thin/Roboto-Thin.woff2") format("woff2"),
url("Roboto-Thin/Roboto-Thin.woff") format("woff"),
url("Roboto-Thin/Roboto-Thin.ttf") format("truetype");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 300;
src:
local("Roboto Condensed Light"),
local("RobotoCondensed-Light"),
url("RobotoCondensed-Light/RobotoCondensed-Light.woff2") format("woff2"),
url("RobotoCondensed-Light/RobotoCondensed-Light.woff") format("woff"),
url("RobotoCondensed-Light/RobotoCondensed-Light.ttf") format("truetype");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 400;
src:
local("Roboto Condensed"),
local("RobotoCondensed-Regular"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.woff2") format("woff2"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.woff") format("woff"),
url("RobotoCondensed-Regular/RobotoCondensed-Regular.ttf") format("truetype");
}
@font-face {
font-family: "Roboto Condensed";
font-style: normal;
font-weight: 700;
src:
local("Roboto Condensed Bold"),
local("RobotoCondensed-Bold"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.woff2") format("woff2"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.woff") format("woff"),
url("RobotoCondensed-Bold/RobotoCondensed-Bold.ttf") format("truetype");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 400;
src:
local("Roboto"),
local("Roboto-Regular"),
url("Roboto-Regular/Roboto-Regular.woff2") format("woff2"),
url("Roboto-Regular/Roboto-Regular.woff") format("woff"),
url("Roboto-Regular/Roboto-Regular.ttf") format("truetype");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 500;
src:
local("Roboto Medium"),
local("Roboto-Medium"),
url("Roboto-Medium/Roboto-Medium.woff2") format("woff2"),
url("Roboto-Medium/Roboto-Medium.woff") format("woff"),
url("Roboto-Medium/Roboto-Medium.ttf") format("truetype");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 700;
src:
local("Roboto Bold"),
local("Roboto-Bold"),
url("Roboto-Bold/Roboto-Bold.woff2") format("woff2"),
url("Roboto-Bold/Roboto-Bold.woff") format("woff"),
url("Roboto-Bold/Roboto-Bold.ttf") format("truetype");
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 300;
src:
local("Roboto Light"),
local("Roboto-Light"),
url("Roboto-Light/Roboto-Light.woff2") format("woff2"),
url("Roboto-Light/Roboto-Light.woff") format("woff"),
url("Roboto-Light/Roboto-Light.ttf") format("truetype");
}

48
index.html Normal file
View File

@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<title>Magic Mirror</title>
<meta name="google" content="notranslate" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="fonts/roboto.css">
<!-- custom.css is loaded by the loader.js to make sure it's loaded after the module css files. -->
<script type="text/javascript">
var version = "#VERSION#";
</script>
</head>
<body>
<div class="region fullscreen below"><div class="container"></div></div>
<div class="region top bar">
<div class="container"></div>
<div class="region top left"><div class="container"></div></div>
<div class="region top center"><div class="container"></div></div>
<div class="region top right"><div class="container"></div></div>
</div>
<div class="region upper third"><div class="container"></div></div>
<div class="region middle center"><div class="container"></div></div>
<div class="region lower third"><div class="container"><br/></div></div>
<div class="region bottom bar">
<div class="container"></div>
<div class="region bottom left"><div class="container"></div></div>
<div class="region bottom center"><div class="container"></div></div>
<div class="region bottom right"><div class="container"></div></div>
</div>
<div class="region fullscreen above"><div class="container"></div></div>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="js/defaults.js"></script>
<script type="text/javascript" src="config/config.js"></script>
<script type="text/javascript" src="vendor/vendor.js"></script>
<script type="text/javascript" src="modules/default/defaultmodules.js"></script>
<script type="text/javascript" src="js/logger.js"></script>
<script type="text/javascript" src="translations/translations.js"></script>
<script type="text/javascript" src="js/translator.js"></script>
<script type="text/javascript" src="js/class.js"></script>
<script type="text/javascript" src="js/module.js"></script>
<script type="text/javascript" src="js/loader.js"></script>
<script type="text/javascript" src="js/socketclient.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</body>
</html>

View File

@@ -1,39 +0,0 @@
<html>
<head>
<title>Magic Mirror</title>
<style type="text/css">
<?php include('css/main.css') ?>
</style>
<link rel="stylesheet" type="text/css" href="css/weather-icons.css">
<script type="text/javascript">
var gitHash = '<?php echo trim(`git rev-parse HEAD`) ?>';
</script>
<meta name="google" value="notranslate" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="top left"><div class="date small dimmed"></div><div class="time"></div><div class="calendar xxsmall"></div></div>
<div class="top right"><div class="windsun small dimmed"></div><div class="temp"></div><div class="forecast small dimmed"></div></div>
<div class="center-ver center-hor"><!-- <div class="dishwasher light">Vaatwasser is klaar!</div> --></div>
<div class="lower-third center-hor"><div class="compliment light"></div></div>
<div class="bottom center-hor"><div class="news medium"></div></div>
</div>
<script src="js/jquery.js"></script>
<script src="js/jquery.feedToJSON.js"></script>
<script src="js/ical_parser.js"></script>
<script src="js/moment-with-locales.min.js"></script>
<script src="js/config.js"></script>
<script src="js/rrule.js"></script>
<script src="js/version/version.js"></script>
<script src="js/calendar/calendar.js"></script>
<script src="js/compliments/compliments.js"></script>
<script src="js/weather/weather.js"></script>
<script src="js/time/time.js"></script>
<script src="js/news/news.js"></script>
<script src="js/main.js?nocache=<?php echo md5(microtime()) ?>"></script>
<!-- <script src="js/socket.io.min.js"></script> -->
</body>
</html>

147
installers/raspberry.sh Normal file
View File

@@ -0,0 +1,147 @@
#!/usr/bin/env bash
# This is an installer script for MagicMirror2. It works well enough
# that it can detect if you have Node installed, run a binary script
# and then download and run MagicMirror2.
echo -e "\e[0m"
echo '$$\ $$\ $$\ $$\ $$\ $$\ $$$$$$\'
echo '$$$\ $$$ | \__| $$$\ $$$ |\__| $$ __$$\'
echo '$$$$\ $$$$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ \__/ $$ |'
echo '$$\$$\$$ $$ | \____$$\ $$ __$$\ $$ |$$ _____|$$\$$\$$ $$ |$$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$$$$$ |'
echo '$$ \$$$ $$ | $$$$$$$ |$$ / $$ |$$ |$$ / $$ \$$$ $$ |$$ |$$ | \__|$$ | \__|$$ / $$ |$$ | \__|$$ ____/'
echo '$$ |\$ /$$ |$$ __$$ |$$ | $$ |$$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ |'
echo '$$ | \_/ $$ |\$$$$$$$ |\$$$$$$$ |$$ |\$$$$$$$\ $$ | \_/ $$ |$$ |$$ | $$ | \$$$$$$ |$$ | $$$$$$$$\'
echo '\__| \__| \_______| \____$$ |\__| \_______|\__| \__|\__|\__| \__| \______/ \__| \________|'
echo ' $$\ $$ |'
echo ' \$$$$$$ |'
echo ' \______/'
echo -e "\e[0m"
# Define the tested version of Node.js.
NODE_TESTED="v5.1.0"
#Determine which Pi is running.
ARM=$(uname -m)
#Check the Raspberry Pi version.
if [ "$ARM" != "armv7l" ]; then
echo -e "\e[91mSorry, your Raspberry Pi is not supported."
echo -e "\e[91mPlease run MagicMirror on a Raspberry Pi 2 or 3."
echo -e "\e[91mIf this is a Pi Zero, you are in the same boat as the original Raspberry Pi. You must run in server only mode."
exit;
fi
#define helper methods.
function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
function command_exists () { type "$1" &> /dev/null ;}
# Installing helper tools
echo -e "\e[96mInstalling helper tools ...\e[90m"
sudo apt-get install curl wget git build-essential unzip || exit
# Check if we need to install or upgrade Node.js.
echo -e "\e[96mCheck current Node installation ...\e[0m"
NODE_INSTALL=false
if command_exists node; then
echo -e "\e[0mNode currently installed. Checking version number.";
NODE_CURRENT=$(node -v)
echo -e "\e[0mMinimum Node version: \e[1m$NODE_TESTED\e[0m"
echo -e "\e[0mInstalled Node version: \e[1m$NODE_CURRENT\e[0m"
if version_gt $NODE_TESTED $NODE_CURRENT; then
echo -e "\e[96mNode should be upgraded.\e[0m"
NODE_INSTALL=true
#Check if a node process is currenlty running.
#If so abort installation.
if pgrep "node" > /dev/null; then
echo -e "\e[91mA Node process is currently running. Can't upgrade."
echo "Please quit all Node processes and restart the installer."
exit;
fi
else
echo -e "\e[92mNo Node.js upgrade nessecery.\e[0m"
fi
else
echo -e "\e[93mNode.js is not installed.\e[0m";
NODE_INSTALL=true
fi
# Install or upgrade node if necessary.
if $NODE_INSTALL; then
echo -e "\e[96mInstalling Node.js ...\e[90m"
#Fetch the latest version of Node.js from the selected branch
#The NODE_STABLE_BRANCH variable will need to be manually adjusted when a new branch is released. (e.g. 7.x)
#Only tested (stable) versions are recommended as newer versions could break MagicMirror.
NODE_STABLE_BRANCH="6.x"
curl -sL https://deb.nodesource.com/setup_$NODE_STABLE_BRANCH | sudo -E bash -
sudo apt-get install -y nodejs
echo -e "\e[92mNode.js installation Done!\e[0m"
fi
#Install magic mirror
cd ~
if [ -d "$HOME/MagicMirror" ] ; then
echo -e "\e[93mIt seems like MagicMirror is already installed."
echo -e "To prevent overwriting, the installer will be aborted."
echo -e "Please rename the \e[1m~/MagicMirror\e[0m\e[93m folder and try again.\e[0m"
echo ""
echo -e "If you want to upgrade your installation run \e[1m\e[97mgit pull\e[0m from the ~/MagicMirror directory."
echo ""
exit;
fi
echo -e "\e[96mCloning MagicMirror ...\e[90m"
if git clone https://github.com/MichMich/MagicMirror.git; then
echo -e "\e[92mCloning MagicMirror Done!\e[0m"
else
echo -e "\e[91mUnable to clone MagicMirror."
exit;
fi
cd ~/MagicMirror || exit
echo -e "\e[96mInstalling dependencies ...\e[90m"
if npm install; then
echo -e "\e[92mDependencies installation Done!\e[0m"
else
echo -e "\e[91mUnable to install dependencies!"
exit;
fi
# Check if plymouth is installed (default with PIXEL desktop environment), then install custom splashscreen.
echo -e "\e[96mCheck plymouth installation ...\e[0m"
if command_exists plymouth; then
THEME_DIR="/usr/share/plymouth/themes"
echo -e "\e[90mSplashscreen: Checking themes directory.\e[0m"
if [ -d $THEME_DIR ]; then
echo -e "\e[90mSplashscreen: Create theme directory if not exists.\e[0m"
if [ ! -d $THEME_DIR/MagicMirror ]; then
sudo mkdir $THEME_DIR/MagicMirror
fi
if sudo cp ~/MagicMirror/splashscreen/splash.png $THEME_DIR/MagicMirror/splash.png && sudo cp ~/MagicMirror/splashscreen/MagicMirror.plymouth $THEME_DIR/MagicMirror/MagicMirror.plymouth && sudo cp ~/MagicMirror/splashscreen/MagicMirror.script $THEME_DIR/MagicMirror/MagicMirror.script; then
echo -e "\e[90mSplashscreen: Theme copied successfully.\e[0m"
if sudo plymouth-set-default-theme -R MagicMirror; then
echo -e "\e[92mSplashscreen: Changed theme to MagicMirror successfully.\e[0m"
else
echo -e "\e[91mSplashscreen: Couldn't change theme to MagicMirror!\e[0m"
fi
else
echo -e "\e[91mSplashscreen: Copying theme failed!\e[0m"
fi
else
echo -e "\e[91mSplashscreen: Themes folder doesn't exist!\e[0m"
fi
else
echo -e "\e[93mplymouth is not installed.\e[0m";
fi
echo " "
echo -e "\e[92mWe're ready! Run \e[1m\e[97mDISPLAY=:0 npm start\e[0m\e[92m from the ~/MagicMirror directory to start your MagicMirror.\e[0m"
echo " "
echo " "

190
js/app.js Normal file
View File

@@ -0,0 +1,190 @@
/* Magic Mirror
* The Core App (Server)
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*/
var fs = require("fs");
var Server = require(__dirname + "/server.js");
var defaultModules = require(__dirname + "/../modules/default/defaultmodules.js");
var path = require("path");
// Get version number.
global.version = JSON.parse(fs.readFileSync("package.json", "utf8")).version;
console.log("Starting MagicMirror: v" + global.version);
// global absolute root path
global.root_path = path.resolve(__dirname + "/../");
// The next part is here to prevent a major exception when there
// is no internet connection. This could probable be solved better.
process.on("uncaughtException", function (err) {
console.log("Whoops! There was an uncaught exception...");
console.error(err);
console.log("MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?");
console.log("If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues");
});
/* App - The core app.
*/
var App = function() {
var nodeHelpers = [];
/* loadConfig(callback)
* Loads the config file. combines it with the defaults,
* and runs the callback with the found config as argument.
*
* argument callback function - The callback function.
*/
var loadConfig = function(callback) {
console.log("Loading config ...");
var defaults = require(__dirname + "/defaults.js");
var configFilename = path.resolve(global.root_path + "/config/config.js");
try {
fs.accessSync(configFilename, fs.F_OK);
var c = require(configFilename);
var config = Object.assign(defaults, c);
callback(config);
} catch (e) {
if (e.code == "ENOENT") {
console.error("WARNING! Could not find config file. Please create one. Starting with default configuration.");
callback(defaults);
} else if (e instanceof ReferenceError || e instanceof SyntaxError) {
console.error("WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration.");
callback(defaults);
} else {
console.error("WARNING! Could not load config file. Starting with default configuration. Error found: " + e);
callback(defaults);
}
}
};
/* loadModule(module)
* Loads a specific module.
*
* argument module string - The name of the module (including subpath).
*/
var loadModule = function(module) {
var elements = module.split("/");
var moduleName = elements[elements.length - 1];
var moduleFolder = __dirname + "/../modules/" + module;
if (defaultModules.indexOf(moduleName) !== -1) {
moduleFolder = __dirname + "/../modules/default/" + module;
}
var helperPath = moduleFolder + "/node_helper.js";
var loadModule = true;
try {
fs.accessSync(helperPath, fs.R_OK);
} catch (e) {
loadModule = false;
console.log("No helper found for module: " + moduleName + ".");
}
if (loadModule) {
var Module = require(helperPath);
var m = new Module();
if (m.requiresVersion) {
console.log("Check MagicMirror version for node helper '" + moduleName + "' - Minimum version: " + m.requiresVersion + " - Current version: " + global.version);
if (cmpVersions(global.version, m.requiresVersion) >= 0) {
console.log("Version is ok!");
} else {
console.log("Version is incorrect. Skip module: '" + moduleName + "'");
return;
}
}
m.setName(moduleName);
m.setPath(path.resolve(moduleFolder));
nodeHelpers.push(m);
}
};
/* loadModules(modules)
* Loads all modules.
*
* argument module string - The name of the module (including subpath).
*/
var loadModules = function(modules) {
console.log("Loading module helpers ...");
for (var m in modules) {
loadModule(modules[m]);
}
console.log("All module helpers loaded.");
};
/* cmpVersions(a,b)
* Compare two symantic version numbers and return the difference.
*
* argument a string - Version number a.
* argument a string - Version number b.
*/
function cmpVersions(a, b) {
var i, diff;
var regExStrip0 = /(\.0+)+$/;
var segmentsA = a.replace(regExStrip0, "").split(".");
var segmentsB = b.replace(regExStrip0, "").split(".");
var l = Math.min(segmentsA.length, segmentsB.length);
for (i = 0; i < l; i++) {
diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10);
if (diff) {
return diff;
}
}
return segmentsA.length - segmentsB.length;
}
/* start(callback)
* This methods starts the core app.
* It loads the config, then it loads all modules.
* When it"s done it executs the callback with the config as argument.
*
* argument callback function - The callback function.
*/
this.start = function(callback) {
loadConfig(function(c) {
config = c;
var modules = [];
for (var m in config.modules) {
var module = config.modules[m];
if (modules.indexOf(module.module) === -1 && !module.disabled) {
modules.push(module.module);
}
}
loadModules(modules);
var server = new Server(config, function(app, io) {
console.log("Server started ...");
for (var h in nodeHelpers) {
var nodeHelper = nodeHelpers[h];
nodeHelper.setExpressApp(app);
nodeHelper.setSocketIO(io);
nodeHelper.start();
}
console.log("Sockets connected & modules started ...");
if (typeof callback === "function") {
callback(config);
}
});
});
};
};
module.exports = new App();

View File

@@ -1,139 +0,0 @@
var calendar = {
eventList: [],
calendarLocation: '.calendar',
updateInterval: 1000,
updateDataInterval: 60000,
fadeInterval: 1000,
intervalId: null,
dataIntervalId: null,
maximumEntries: config.calendar.maximumEntries || 10
}
calendar.updateData = function (callback) {
new ical_parser("controllers/calendar.php" + "?url="+encodeURIComponent(config.calendar.url), function(cal) {
var events = cal.getEvents();
this.eventList = [];
for (var i in events) {
var e = events[i];
for (var key in e) {
var value = e[key];
var seperator = key.search(';');
if (seperator >= 0) {
var mainKey = key.substring(0,seperator);
var subKey = key.substring(seperator+1);
var dt;
if (subKey == 'VALUE=DATE') {
//date
dt = new Date(value.substring(0,4), value.substring(4,6) - 1, value.substring(6,8));
} else {
//time
dt = new Date(value.substring(0,4), value.substring(4,6) - 1, value.substring(6,8), value.substring(9,11), value.substring(11,13), value.substring(13,15));
}
if (mainKey == 'DTSTART') e.startDate = dt;
if (mainKey == 'DTEND') e.endDate = dt;
}
}
if (e.startDate == undefined){
//some old events in Gmail Calendar is "start_date"
//FIXME: problems with Gmail's TimeZone
var days = moment(e.DTSTART).diff(moment(), 'days');
var seconds = moment(e.DTSTART).diff(moment(), 'seconds');
var startDate = moment(e.DTSTART);
} else {
var days = moment(e.startDate).diff(moment(), 'days');
var seconds = moment(e.startDate).diff(moment(), 'seconds');
var startDate = moment(e.startDate);
}
//only add fututre events, days doesn't work, we need to check seconds
if (seconds >= 0) {
if (seconds <= 60*60*5 || seconds >= 60*60*24*2) {
var time_string = moment(startDate).fromNow();
}else {
var time_string = moment(startDate).calendar()
}
if (!e.RRULE) {
this.eventList.push({'description':e.SUMMARY,'seconds':seconds,'days':time_string});
}
e.seconds = seconds;
}
// Special handling for rrule events
if (e.RRULE) {
var options = new RRule.parseString(e.RRULE);
options.dtstart = e.startDate;
var rule = new RRule(options);
var oneYear = new Date();
oneYear.setFullYear(oneYear.getFullYear() + 1);
var dates = rule.between(new Date(), oneYear, true, function (date, i){return i < 10});
for (date in dates) {
var dt = new Date(dates[date]);
var days = moment(dt).diff(moment(), 'days');
var seconds = moment(dt).diff(moment(), 'seconds');
var startDate = moment(dt);
if (seconds >= 0) {
if (seconds <= 60*60*5 || seconds >= 60*60*24*2) {
var time_string = moment(dt).fromNow();
} else {
var time_string = moment(dt).calendar()
}
this.eventList.push({'description':e.SUMMARY,'seconds':seconds,'days':time_string});
}
}
}
};
this.eventList = this.eventList.sort(function(a,b){return a.seconds-b.seconds});
// Limit the number of entries.
this.eventList = this.eventList.slice(0, calendar.maximumEntries);
if (callback !== undefined && Object.prototype.toString.call(callback) === '[object Function]') {
callback(this.eventList);
}
}.bind(this));
}
calendar.updateCalendar = function (eventList) {
table = $('<table/>').addClass('xsmall').addClass('calendar-table');
opacity = 1;
for (var i in eventList) {
var e = eventList[i];
var row = $('<tr/>').css('opacity',opacity);
row.append($('<td/>').html(e.description).addClass('description'));
row.append($('<td/>').html(e.days).addClass('days dimmed'));
table.append(row);
opacity -= 1 / eventList.length;
}
$(this.calendarLocation).updateWithText(table, this.fadeInterval);
}
calendar.init = function () {
this.updateData(this.updateCalendar.bind(this));
this.intervalId = setInterval(function () {
this.updateCalendar(this.eventList)
}.bind(this), this.updateInterval);
this.dataIntervalId = setInterval(function () {
this.updateData(this.updateCalendar.bind(this));
}.bind(this), this.updateDataInterval);
}

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