Compare commits

...

3688 Commits

Author SHA1 Message Date
Arik Fraimovich
865b799dfd Merge branch 'master' of github.com:getredash/redash 2018-09-21 17:06:46 +03:00
Arik Fraimovich
eed26c789e Update CHANGELOG & version to V5 2018-09-21 17:06:26 +03:00
Arik Fraimovich
8c9d2af6fe Fix: BigQuery default location is null and not US (#2841)
If no location is specified BigQuery uses US or EU. If we pass US
it breaks querying for EU users.
2018-09-21 16:49:30 +03:00
Arik Fraimovich
03cac7e515 Fix: backport security fix from v4.0.2 - don't expose Google OAuth client secret. (#2839) 2018-09-20 12:32:38 +03:00
Arik Fraimovich
defb3b9750 Fix: favorite button on homepage is not yellow. (#2838) 2018-09-20 10:39:36 +03:00
Arik Fraimovich
ec39bb0779 Fix: query embeds are broken. (#2837) 2018-09-20 10:36:15 +03:00
ariarijp
1661553da7 Fix typo 2018-09-18 08:56:01 +02:00
Arik Fraimovich
a4d5782ea1 Update ISSUE_TEMPLATE.md 2018-09-17 22:08:49 +03:00
Arik Fraimovich
d491eddd7d Add security section to README. 2018-09-17 22:07:31 +03:00
Zsolt Kocsmárszky
47068a6d91 Improved mobile design (#2800)
* Improve mobile views

* Better fontsize for dashboard headers

* Add hidden-xs classes instead

* Move dashboard related styling to dashboards.less
2018-09-16 10:46:30 +03:00
Alison
d8ced1401f add test for using saved parameters in scheduled queries (#2802) 2018-09-16 10:45:25 +03:00
Jannis Leidel
59a5540823 Use QuerySerializer in outdated queries list. (#2821)
This is a regression from aa756b2be6.
2018-09-16 09:49:22 +03:00
Jannis Leidel
b1f5d60460 Minor code smell cleanup. (#2820)
* Remove unused parse_db_url function.

* Fix tests to not show command line warnings anymore.

* Minor code smell cleanup.

Removing unneeded imports fixing PEP8 issues.
2018-09-16 09:43:44 +03:00
Tim Smith
5c9852b9d9 Fix QueryResultListResource docstring
Change the docstring to reflect the behavior of the function
2018-09-14 22:23:06 +02:00
Levko Kravets
8c360d5c8d Fix: sometimes widgets are getting zero height (#2813) 2018-09-14 16:33:24 +03:00
Levko Kravets
eb6f9d5ab8 Merge pull request #2816 from getredash/simplejson-parent-method
Use parent default method of simplejson encoder.
2018-09-14 12:05:45 +03:00
Jannis Leidel
4ab160a14c Use parent default method of simplejson encoder. 2018-09-14 10:29:38 +02:00
Arik Fraimovich
93b34bcbce UI Fixes for favorites and empty state (#2808)
* Better empty state for favorites on homepage
* Fix: show empty state when no dashboards available
* More explicit message in app header
2018-09-12 11:35:34 +03:00
Benjamin Forehand Jr
5113f4ff33 Add npm install for integration test job. (#2795)
* Add npm install.

* Fix typo.
2018-09-07 09:16:58 +02:00
Benjamin Forehand Jr
151683f9f9 Add npm build step to integration tests. (#2794) 2018-09-06 19:55:08 +02:00
Levko Kravets
53abc16780 Athena: Switch to simple_json to serialize NaN/Infinity values as nulls.
Fixes #2544.
2018-09-04 13:03:21 +03:00
Arik Fraimovich
d529a1dfb3 Fix: queries with parameters with no value breaking the scheduler. (#2786) 2018-09-04 11:32:37 +03:00
Arik Fraimovich
7cb7f3a99d Fix: MongoDB query results parser didn't support unicode keys. (#2785) 2018-09-04 11:30:40 +03:00
Arik Fraimovich
c27528fb7e Fix: Google Analytics schema wasn't loading (#2784)
Some Google Analytics properties don't have defaultProfileId, which was preventing the schema from loading.
2018-09-04 11:29:19 +03:00
Arik Fraimovich
841642b9fc Fix: build Docker image only in tagged versions 2018-08-31 08:42:50 +03:00
Arik Fraimovich
04c97067ac Forgot to enable Docker 🤦 2018-08-30 21:35:31 +03:00
Arik Fraimovich
41113404c0 Remove deprecated argument from docker login command 2018-08-30 20:46:08 +03:00
Arik Fraimovich
bcaa54edf1 Merge branch 'master' of github.com:getredash/redash 2018-08-30 20:45:47 +03:00
Arik Fraimovich
a6d501a394 More improvements to CircleCI configuration (#2777)
* Moved configuration to `.circleci/config.yml` as the documentation for V2 suggests.
* Created a dedicated Docker Compose configuration (in `.circleci/docker-compose.yml`) to remove volumes configuration as this is not supported with CircleCI's Docker executer.
* Fix the Docker image build and tarball packing jobs to work and use correct version.
2018-08-30 20:19:52 +03:00
Arik Fraimovich
e4305e05ad Updates to CircleCI 2 configuration (#2774)
* Remove references to Gitter
* Move integration tests to their own workflow and run only on master branch
* Fix error in integration tests configuration
* Update names of stages
2018-08-29 19:34:47 +03:00
Arik Fraimovich
84f1218849 Remove references to Gitter 2018-08-29 12:04:43 +03:00
Benjamin Forehand Jr
99dd4ddca2 Initial update to circleci v2 config. (#2672) 2018-08-29 11:19:25 +03:00
Arik Fraimovich
6f26b9638b Merge pull request #2769 from kravets-levko/bug/dashboard-parameters-not-updated
Date/time params not working as global param
2018-08-29 09:50:11 +03:00
Zsolt Kocsmárszky
72632be04d Remove unnecessary X at the end of the query search (#2736) 2018-08-28 21:56:12 +02:00
Jannis Leidel
bfd128413c Add server-side sorting to dashboard list. (#2760)
Fix #2771. Refs #2731.
2018-08-28 20:45:26 +02:00
Jannis Leidel
bc15c0b6d1 Sort queries in descending order. (#2759)
Refs #2731.
2018-08-28 20:27:35 +02:00
Levko Kravets
636276c9c4 getredash/redash#2730 2018-08-28 14:11:56 +03:00
Arik Fraimovich
57e4496ea5 Merge pull request #2754 from kravets-levko/bug/dashboard-widgets-crumble
Widgets crumble when trying to move / resize a widget
2018-08-27 21:18:31 +03:00
Arik Fraimovich
bd7ce3a2ce Merge pull request #2734 from Yossi-a/master
handling rows with "length" field with forOwn method
2018-08-27 18:42:29 +03:00
Arik Fraimovich
8ef89177ff Merge pull request #2761 from getredash/init_cleanup
Remove unnecessary init methods.
2018-08-24 00:05:47 +03:00
Alison
82af372583 Throw error when non-owner tries to add a user to dashboard permissions (#2650)
Add error message when non owner tries to add a user to a dashboard

Fixes #2592

REDASH_FEATURE_SHOW_PERMISSIONS_CONTROL has to be true for this to be applicable.

Operation threw a 403 Forbidden error before this change but it is in the console not shown to the user.
2018-08-23 20:51:08 +02:00
Alison
341a68c7d4 Propagate query execution errors from Celery tasks properly (#2713)
Refs https://github.com/mozilla/redash/issues/458
2018-08-23 20:33:43 +02:00
Jannis Leidel
8fa2a6649a Remove unnecessary init methods. 2018-08-23 20:29:40 +02:00
Levko Kravets
c6cb6061e3 getredash/redash#2494 Widgets crumble when trying to move / resize a widget 2018-08-20 12:27:36 +03:00
Jannis Leidel
4d2df72f1f Merge pull request #2750 from getredash/search-route-reload
Reload the route when using the app header search input.
2018-08-16 18:35:05 +02:00
Jannis Leidel
038966a39a Merge pull request #2741 from sjakthol/fix-alerts
fix broken query selection in alert page
2018-08-16 18:09:41 +02:00
Jannis Leidel
9044de6142 Merge pull request #2742 from nasmithan/embed-parameters-query-test-fix
Fix query_results for Embedded Parameters (removed deprecated to_dict function)
2018-08-16 17:57:35 +02:00
Jannis Leidel
b746c433ea Reload the route when using the app header search input. 2018-08-16 17:49:25 +02:00
Jannis Leidel
a0e8c3d2e5 Merge pull request #2729 from combineads/master
Fix: support unicode in dashboard search
2018-08-15 19:24:12 +02:00
Jannis Leidel
6ef6a2f484 Merge pull request #2735 from kocsmy/fix/remove-unnecessary-space
Remove space between text and :
2018-08-13 19:11:13 +02:00
Nathan Smith
5581e48474 Change from deprecated to_dict to query.query_text 2018-08-10 14:11:57 -06:00
Sami Jaktholm
a251d8fab0 fix broken query selection in alert page
The following error occurs when a query is selected in the
alert page:

> TypeError: "item.getQueryResultPromise is not a function"

This is because .onQueryHandler() is given a plain object instead of a
Query when a query is selected from the dropdown.

These changes fix the issue by wrapping the plain object into a Query
object before calling .getQueryResultPromise() on it.
2018-08-10 22:31:59 +03:00
Zsolt Kocsmarszky
6ecb215896 Remove space between text and : 2018-08-10 16:58:17 +02:00
Yossi Ayun
df4b34c179 handling rows with "length" field with forOwn method 2018-08-09 22:31:48 +03:00
Byunghwa Yun
e3f20abf16 Fix: support unicode in dashboard search 2018-08-09 12:00:16 +09:00
Arik Fraimovich
1cafcc1eac Merge pull request #2724 from getredash/users-unicode
Fix: support unicode in users search
2018-08-07 18:02:20 +03:00
Arik Fraimovich
f6aab04a4b Fix: support unicode in users search 2018-08-07 17:51:46 +03:00
Arik Fraimovich
674a689400 Update v5-beta release date. 2018-08-06 21:51:33 +03:00
Arik Fraimovich
7e0e498d33 Update CHANGELOG for v5beta 2018-08-06 18:31:57 +03:00
Arik Fraimovich
a1c566fea7 Merge branch 'master' of github.com:getredash/redash 2018-08-06 16:18:06 +03:00
Arik Fraimovich
4f7cb89e91 Update CHANGELOG for v5-beta. #2700 2018-08-06 16:17:28 +03:00
Arik Fraimovich
035b26b631 Merge pull request #2722 from getredash/es-fix
Fix: don't send source_content_type
2018-08-06 16:13:01 +03:00
Arik Fraimovich
a3e0990143 Fix: don't send source_content_type - instead use GET body with content type header 2018-08-06 16:03:48 +03:00
Arik Fraimovich
0772b12f19 Merge pull request #2720 from getredash/users
Fix #2718: query search is broken.
2018-08-05 18:20:46 +03:00
Arik Fraimovich
f3fed27383 Merge branch 'master' into users 2018-08-05 18:20:21 +03:00
Arik Fraimovich
573865f1cc Fix #2718: query search is broken. 2018-08-05 18:19:07 +03:00
Arik Fraimovich
1e6d6bbeb3 Merge pull request #2715 from getredash/users
Improve users list page
2018-08-05 18:10:15 +03:00
Arik Fraimovich
b89bb392ce Fix: enable/disable wasn't working on users list. 2018-08-05 18:09:14 +03:00
Arik Fraimovich
e4dba1ca8e Switch more strings to unicode. 2018-08-05 17:58:29 +03:00
Arik Fraimovich
2e08d8deb4 Reset to page 1 when updating search string. 2018-08-05 17:58:09 +03:00
Arik Fraimovich
1676d34af6 Fix: make sure paginator component reflects current page number. 2018-08-05 17:57:55 +03:00
Arik Fraimovich
f96a0f338d Use unicode strings. 2018-08-05 16:34:43 +03:00
Arik Fraimovich
226dd65d53 Update users handlers tests. 2018-08-05 16:14:24 +03:00
Arik Fraimovich
188467ec64 Switch to sqlalchemy_utils.EmailType 2018-08-05 16:14:12 +03:00
Arik Fraimovich
2d4983a224 Show correct empty state when no users found. 2018-08-05 14:56:41 +03:00
Arik Fraimovich
629f61772f Use new users search API. 2018-08-05 14:51:39 +03:00
Arik Fraimovich
deaa891eb2 Merge pull request #2712 from kravets-levko/feature/date-range-params
Date/Time Range parameter type
2018-08-05 14:03:30 +03:00
Arik Fraimovich
351e0f8fdb Merge pull request #2719 from maxv/closing-input-tag
Remove closing input tags
2018-08-05 13:59:02 +03:00
maxv
3ecec4ba8b Remove closing input tags 2018-08-04 11:02:44 +03:00
Levko Kravets
a2ca793ddd getredash/redash#2643 Date/Time Range parameter type 2018-08-03 12:24:23 +03:00
Arik Fraimovich
5eb280ef01 Update users list to be paginated and sortable. 2018-08-01 23:28:57 +03:00
Arik Fraimovich
d7946dafd6 Link to user page from group users list. 2018-08-01 23:28:02 +03:00
Arik Fraimovich
bdff248dd7 Fix: dashboards list page wasn't updated to new paginator API. 2018-08-01 23:27:27 +03:00
Arik Fraimovich
c6b129d726 Move order_results helper to redash.handlers.base. 2018-08-01 23:27:12 +03:00
Arik Fraimovich
1468d6e257 Change CaseInsensitiveComparator to support all operations. 2018-08-01 23:26:52 +03:00
Arik Fraimovich
a014df36d8 Merge pull request #2686 from jezdez/serverside
Implement server side pagination and sorting for queries lists
2018-08-01 16:55:40 +03:00
Arik Fraimovich
06ad89f75b Merge pull request #2710 from kocsmy/design/ant-to-redash
Update Ant variables to fit Redash's style
2018-08-01 12:23:40 +03:00
Zsolt Kocsmarszky
692e7f9547 Use more variables 2018-08-01 10:58:14 +02:00
Zsolt Kocsmarszky
03262867fe Merge branch 'master' into design/ant-to-redash 2018-08-01 10:39:39 +02:00
Zsolt Kocsmarszky
8eb9ae604e Working version of overwrite (not in component level) 2018-07-31 16:23:43 +02:00
Zsolt Kocsmarszky
9bb8ec2f66 Adjust input colors to match 2018-07-31 14:32:38 +02:00
Zsolt Kocsmarszky
340184a796 Adjust input color 2018-07-31 14:18:12 +02:00
Zsolt Kocsmarszky
f0502ba088 Refine input design 2018-07-31 14:14:29 +02:00
Arik Fraimovich
44014d7eab Merge pull request #2482 from matsumo/add_chatwork_destination
add support ChatWork Alert Destination.
2018-07-31 15:13:29 +03:00
Arik Fraimovich
6b671817a2 Merge pull request #2649 from getredash/js-style-guides
Add references to Airbnb's style guides in contribution guide.
2018-07-31 15:11:27 +03:00
Arik Fraimovich
5da481e2c3 Merge pull request #2709 from getredash/format-button
Move format button next Add New Param button.
2018-07-31 15:10:16 +03:00
Arik Fraimovich
40c8cef821 Move format button next add new param button. 2018-07-31 15:09:23 +03:00
Zsolt Kocsmarszky
13d891bac3 Move styling import to main.less and add var overwrites 2018-07-31 14:07:01 +02:00
Arik Fraimovich
73f7476434 Merge pull request #2678 from kravets-levko/feature/add-parameter-dialog
Explicit "Add Parameter" Button in Query Editor
2018-07-31 14:26:42 +03:00
Arik Fraimovich
8017893c00 Merge. 2018-07-31 14:23:58 +03:00
Levko Kravets
d1ddc4631d getredash/redash#2644 CR1 2018-07-31 14:12:02 +03:00
Arik Fraimovich
a94f2efc80 Fix keyboard shortcut and update the tooltip. 2018-07-31 14:11:10 +03:00
Arik Fraimovich
0127799ec7 Merge with master. 2018-07-31 14:10:47 +03:00
Levko Kravets
e2313e67b6 getredash/redash#2644 Explicit "Add Parameter" Button in Query Editor 2018-07-31 14:06:31 +03:00
Arik Fraimovich
50c37c0469 Use unicode for default message template. 2018-07-31 13:38:23 +03:00
Arik Fraimovich
c6f75ddbb2 Merge pull request #2513 from kyoshidajp/support_location_in_bq_dataset
Add location property to BigQuery data source settings
2018-07-31 13:03:22 +03:00
Arik Fraimovich
85230e3cc3 Merge pull request #2616 from kravets-levko/feature/pie-colors
Pie chart: sectors colors
2018-07-31 13:00:11 +03:00
Arik Fraimovich
ccaf849328 Add schedule & created_at to allowed order_by values for queries. 2018-07-31 11:39:35 +03:00
Arik Fraimovich
494f43b997 Show null duration as '-'. 2018-07-31 11:39:19 +03:00
Arik Fraimovich
f9e2895f16 Merge pull request #2664 from kravets-levko/bug/dashboard-indefinite-spinner
Dashboard shows a spinner when query failed to load
2018-07-30 22:49:36 +03:00
Arik Fraimovich
92bdac0ee2 Merge pull request #2697 from kravets-levko/feature/datetime-current-time
Date/Time parameters: dynamic default value (current date/time)
2018-07-30 14:59:48 +03:00
Levko Kravets
b19dec08d0 getredash/redash#2602 CR1 2018-07-30 11:56:02 +03:00
Levko Kravets
9926359c45 getredash/redash#2602 Dashboard shows a spinner when query failed to load 2018-07-30 11:41:47 +03:00
Levko Kravets
b0f0b49d1c getredash/redash#2642 Date/Time parameters: dynamic default value (current date/time) 2018-07-30 11:18:08 +03:00
Arik Fraimovich
016166c193 Merge pull request #2626 from kravets-levko/feature/query-page-messages
Show real status when loading cached query result
2018-07-29 15:49:38 +03:00
Arik Fraimovich
dd2f24f976 Merge pull request #2458 from kyoshidajp/get_all_tables_in_bq
Get all tables in the BigQuery
2018-07-29 15:11:46 +03:00
Arik Fraimovich
f89d64e467 Merge pull request #2663 from ariarijp/improve-spreadsheets
Set column name implicitly when column name is blank
2018-07-29 14:50:12 +03:00
Arik Fraimovich
02e6edf111 Bump version 2018-07-26 17:42:08 +03:00
Arik Fraimovich
18768885f2 Fix status page layout 2018-07-26 17:33:09 +03:00
Katsuhiko YOSHIDA
5ca59a5002 Change the way to get the default location 2018-07-26 08:09:57 +09:00
Arik Fraimovich
25ae7b4a88 Merge pull request #2698 from getredash/small-07-2018
Make sure we return distinct data source values
2018-07-25 20:26:58 +03:00
Arik Fraimovich
1f01fe2f39 Make sure we return distinct data source values 2018-07-25 19:38:15 +03:00
Arik Fraimovich
d70bcfd615 Merge pull request #2695 from kravets-levko/feature/better-datetime-inputs
Improve Date/DateTime type parameters
2018-07-25 16:27:32 +03:00
Levko Kravets
94da0d90b9 getredash/redash#2642 CR1 2018-07-25 16:15:49 +03:00
Levko Kravets
487dd6b88d getredash/redash#2642 Improve Date/DateTime type parameters 2018-07-25 15:00:09 +03:00
Arik Fraimovich
01b3d428c3 Merge pull request #2315 from yuua/fix_hive_type_match
Fix: pyHive type matches
2018-07-25 13:38:13 +03:00
Arik Fraimovich
d30dd63656 Merge pull request #2694 from getredash/small-07-2018
Block users with disposable email addresses
2018-07-25 13:28:54 +03:00
Arik Fraimovich
3c7dd064ef Block users with temporary domains 2018-07-25 13:06:26 +03:00
Arik Fraimovich
058a7ca368 Merge pull request #2693 from getredash/small-07-2018
Enable search function in Query Editor.
2018-07-25 13:00:16 +03:00
Arik Fraimovich
10ddb73385 Enable search function in Query Editor. 2018-07-25 12:59:41 +03:00
Arik Fraimovich
27dfa3d8ae Merge pull request #2692 from getredash/small-07-2018
Fix: Query.search method was missing
2018-07-25 12:57:40 +03:00
Arik Fraimovich
2390343c67 Fix: Query.search method was missing 2018-07-25 12:57:10 +03:00
Arik Fraimovich
2c3067bdfd Merge pull request #2691 from getredash/small-07-2018
Fix the recent queries API endpoint.
2018-07-25 12:55:20 +03:00
Arik Fraimovich
2e9ef66cbc Fix: Google Spreadsheets tests 2018-07-25 12:42:36 +03:00
Arik Fraimovich
a05c4b3b20 Merge pull request #2687 from denisov-vlad/safe-yaml
YAML: changed load to safe_load
2018-07-25 12:38:35 +03:00
Arik Fraimovich
895786d129 Fix the recent queries API endpoint. 2018-07-24 12:01:41 +03:00
Arik Fraimovich
011142fabb Add fsevents to optional dependencies 2018-07-24 12:01:03 +03:00
Vladislav Denisov
e4af1e6534 yandex_metrika: changed load to safe_load 2018-07-19 17:43:51 +03:00
Arik Fraimovich
25de0b9dab Merge pull request #2514 from atharvai/gsheets_parse_fix_2504
Update value parsing for google spreadsheets source
2018-07-19 12:02:36 +03:00
Jannis Leidel
b86715c7fa Implement frontend for server side pagination and sorting.
Also:

- Adds page size select tag list.
- Adds clear button to search input.
- Shows search also on “my” page.
2018-07-18 22:55:25 +02:00
Jannis Leidel
2af926703a Implement server side sorting and new search.
- Redirect the old search API handler.
- Sort by specific database columns or relationships.
- Allow showing “my” queries per tag as well.
2018-07-18 22:55:19 +02:00
Jannis Leidel
2f09497797 Let the search class methods use the main all_queries base query. 2018-07-18 21:45:43 +02:00
Jannis Leidel
16ea4be157 Add optional property to query class with the lowercase name for easier sorting. 2018-07-18 21:45:42 +02:00
Jannis Leidel
823a681131 Add outerjoins to be able to sort queries by related columns. 2018-07-18 21:45:42 +02:00
Jannis Leidel
08b59c4485 Extend live paginator to handle ordering as well. 2018-07-18 21:44:55 +02:00
Jannis Leidel
486a6068ac Update SQLAlchemy. 2018-07-18 21:44:55 +02:00
Levko Kravets
d651fdc2b7 getredash/redash#2644 CR1 2018-07-18 13:01:41 +03:00
Levko Kravets
2c0ff53894 getredash/redash#2644 Explicit "Add Parameter" Button in Query Editor 2018-07-18 12:27:51 +03:00
Levko Kravets
10ff9ec86e getredash/redash#2601 Show real status when loading cached query result 2018-07-18 12:11:13 +03:00
Arik Fraimovich
35bb558f44 Merge pull request #2573 from getredash/discovery
Tagging and favorites for Queries and Dashboards
2018-07-17 15:49:39 +03:00
Arik Fraimovich
3d39e5cb29 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-07-17 15:41:13 +03:00
Arik Fraimovich
24404b3b86 Fix queries list URLs. 2018-07-17 15:40:50 +03:00
Arik Fraimovich
a9cb08d0d6 Merge branch 'master' into discovery 2018-07-17 15:33:58 +03:00
Arik Fraimovich
12436430cc Styling update. 2018-07-17 15:32:24 +03:00
Arik Fraimovich
9ed7b3d3d4 Queries List empty state. 2018-07-17 15:29:25 +03:00
Arik Fraimovich
9f467f7a2b Support .jsx files. 2018-07-17 13:47:43 +03:00
Arik Fraimovich
052a60512b Implement dashboard list empty states. 2018-07-17 13:47:35 +03:00
Arik Fraimovich
2ff3d8985c Merge pull request #2570 from StantonVentures/2569_fix_query_pagination_alignment
fixes query pagination alignment
2018-07-16 17:59:52 +03:00
Arik Fraimovich
b1139d4891 Merge pull request #2584 from StantonVentures/alison_2581_only
keep query result pagination out of scroll
2018-07-16 17:56:12 +03:00
Arik Fraimovich
197e7d5882 Merge pull request #2640 from kravets-levko/feature/query-editor-shortcuts
Keyboard shortcut to collapse query editor/schema browser
2018-07-16 17:36:34 +03:00
Arik Fraimovich
f771b514e6 Merge pull request #2682 from getredash/now
Add Zeit's now support to have preview builds for every PR
2018-07-15 15:45:19 +03:00
Arik Fraimovich
27128d73fe Trigger new Now deploy. 2018-07-15 15:00:17 +03:00
Arik Fraimovich
fa1b71bc27 Add Zeit now support 2018-07-15 13:39:57 +03:00
Arik Fraimovich
f78ab06369 Merge pull request #2647 from ariarijp/improve-script
Improve Script Query Runner
2018-07-12 23:37:23 +03:00
Arik Fraimovich
64f6c9319d Fix: favorite/unfavorite in dashboards list wasn't working. 2018-07-12 23:34:47 +03:00
Arik Fraimovich
d76a9cd22f Fix loading of favorites in header and home. 2018-07-12 22:55:39 +03:00
Arik Fraimovich
d6f8d7af5a Eagerly load dashboard user to avoid N+1 queries. 2018-07-12 22:48:42 +03:00
Arik Fraimovich
00c413c2d8 Merge pull request #2674 from getredash/chromelogger
Add support for the Chrome Logger extension
2018-07-12 13:41:18 +03:00
Arik Fraimovich
6be54defb4 Styling improvements. 2018-07-12 13:16:42 +03:00
Arik Fraimovich
20261d0632 Add support for ChromeLogger extension 2018-07-12 11:37:35 +03:00
Arik Fraimovich
522c08a7a4 package-lock.json update 2018-07-11 18:26:01 +03:00
Arik Fraimovich
3fa2db4085 Fix linting errors 2018-07-11 18:25:43 +03:00
Arik Fraimovich
8343f2c8b2 Remove usage of underscopre. 2018-07-11 18:03:27 +03:00
Arik Fraimovich
df25bbfa90 Merge with latest master 2018-07-11 17:53:53 +03:00
Arik Fraimovich
5e35156d22 Handle duplicate favorite calls. 2018-07-11 16:35:48 +03:00
Arik Fraimovich
34c2292a98 Merge pull request #2653 from StantonVentures/alison_1411
Add redash db size to status page
2018-07-11 16:02:36 +03:00
Arik Fraimovich
2438475ba2 Merge pull request #2583 from kocsmy/design/query-header-improvements
Query header improvements on widgets
2018-07-11 16:01:28 +03:00
Arik Fraimovich
b91a2d14fd Merge pull request #2668 from ariarijp/upgrade-bootstrap-script
Upgrade bootstrap script to Redash 4.0.1
2018-07-11 15:52:25 +03:00
Arik Fraimovich
d7310f5be9 Merge pull request #2671 from kocsmy/design/save-some-space
Save some space
2018-07-11 15:52:07 +03:00
Zsolt Kocsmarszky
873f51c5f6 Save some space (10px) when we have parameters section present on the query results 2018-07-09 16:10:24 +02:00
Arik Fraimovich
ac1fc6bdd8 Merge pull request #2669 from tdawber/feature/athena_query_id
Store Athena query id with result metadata
2018-07-09 15:40:28 +03:00
tdawber
28f7c048bb Store Athena query id with result metadata 2018-07-09 16:40:49 +10:00
tdawber
8d80077aa8 Store Athena query id with result metadata 2018-07-09 16:39:22 +10:00
tdawber
101c09fcae Store Athena query id with result metadata 2018-07-09 16:37:05 +10:00
tdawber
9141850304 Store Athena query id with result metadata 2018-07-09 16:18:33 +10:00
Alison
e7d8491f0b update to .execute() from .query() 2018-07-08 09:53:12 -05:00
ariarijp
0568d40b27 Upgrade to Redash 4.0.1 2018-07-08 17:22:29 +09:00
Zsolt Kocsmarszky
77831d1c91 Adjust query header colors 2018-07-06 14:37:40 +02:00
Levko Kravets
3772612a97 Pie chart: sectors colors 2018-07-06 14:53:57 +03:00
Zsolt Kocsmarszky
58e21c9807 Merge https://github.com/getredash/redash into design/query-header-improvements 2018-07-06 13:48:27 +02:00
Alison
abcf5b729a pep8 fixes 2018-07-04 17:00:17 -05:00
Alison
7b40d01f51 refactor based on codeclimate review of PR 2018-07-04 16:57:10 -05:00
Alison
f597c04214 change where prettySize happens 2018-07-04 02:04:55 -05:00
ariarijp
53c20e2250 Set column name implicitly when column name is blank 2018-07-03 16:02:41 +09:00
ariarijp
c5f27253b0 Change message for empty output 2018-07-02 21:36:15 +09:00
Arik Fraimovich
140d0ae14f Merge pull request #2638 from kravets-levko/bug/dashboard-not-rendering-empty-query
Dashboard stops rendering when adding widget with empty query
2018-07-02 12:07:42 +03:00
Arik Fraimovich
383d5d3725 Merge pull request #2658 from StantonVentures/alison_2657
delaying schema filtering to improve responsiveness
2018-07-02 12:04:21 +03:00
Arik Fraimovich
e0ce7f8d7d Merge pull request #2648 from Pablohn26/master
Update datasource documentation links
2018-07-01 23:51:00 +03:00
Arik Fraimovich
4b0a2c04df Merge pull request #2639 from ariarijp/add-tests-for-spreadsheets
Add tests for SpreadSheets
2018-07-01 12:35:57 +03:00
Arik Fraimovich
6ce522a863 Update CONTRIBUTING.md 2018-07-01 12:32:46 +03:00
Alison
84302e3d86 delaying schema filtering to improve responsiveness
fixes #2657
2018-06-30 18:57:47 -05:00
Alison
cf29fa09f3 add the size of Redash DB to the status page
fixes #1411
2018-06-30 14:18:02 -05:00
Arik Fraimovich
50b9e99f90 Add references to Airbnb's styleguides in contribution guide. 2018-06-29 21:39:58 +03:00
Pablo Hinojosa
01678beebf Fix URL 2018-06-29 17:53:47 +02:00
Pablo Hinojosa
0a6a807964 Fix URL 2018-06-29 17:52:55 +02:00
Pablo Hinojosa
964eff017c Fix URL 2018-06-29 17:51:37 +02:00
Pablo Hinojosa
7f4e7a947e Update dashboard-list.html 2018-06-29 17:50:32 +02:00
Pablo Hinojosa
ca04732d3f Update datasource documentation links 2018-06-29 17:45:38 +02:00
ariarijp
389c6cb3c5 Improve Script Query Runner 2018-06-29 00:03:17 +09:00
Arik Fraimovich
75df88a8ff Merge pull request #2632 from mozilla/react-eslint
react rules for eslint
2018-06-28 16:32:57 +03:00
Levko Kravets
0c95b47de4 getredash/redash#2402 Keyboard shortcut to collapse query editor/schema browser 2018-06-28 15:10:53 +03:00
ariarijp
bad7e92cce Add tests for SpreadSheets 2018-06-28 18:57:41 +09:00
Levko Kravets
ead1e07e99 getredash/redash#2534 Dashboard stops rendering when adding widget with empty query 2018-06-28 11:50:35 +03:00
Allen Short
b712253276 react rules for eslint 2018-06-28 01:56:57 -05:00
Arik Fraimovich
71531c9910 Merge pull request #2635 from ariarijp/add-tests-for-query-results
Add tests for Query Results
2018-06-28 09:55:25 +03:00
ariarijp
8a4eab1c93 Add tests for Query Results 2018-06-28 15:37:11 +09:00
Alison
5846a5733c Merge pull request #2 from getredash/master
pulling from upstream to SV fork
2018-06-27 10:28:02 -05:00
Zsolt Kocsmarszky
d1d72b30c6 Make visualization name as dark as query name 2018-06-27 16:37:50 +02:00
Zsolt Kocsmarszky
ba980d6b87 Merge branch 'master' into design/query-header-improvements 2018-06-27 16:29:12 +02:00
Arik Fraimovich
258d506215 Add missing comma 2018-06-27 16:04:33 +03:00
Arik Fraimovich
b759536146 Add events to favorites 2018-06-27 15:58:13 +03:00
Arik Fraimovich
91ff4aee63 Move imports to correct location. 2018-06-27 15:52:11 +03:00
Arik Fraimovich
fa6e2cc264 Merge pull request #2546 from washort/upstream-react
Configuration for incorporating React components
2018-06-27 15:20:00 +03:00
Arik Fraimovich
c719d336a9 Reset search term when it's empty. 2018-06-27 11:54:34 +03:00
Arik Fraimovich
720da3310f Merge pull request #2610 from gabrieldutra/master
Fix export query results output file name
2018-06-26 21:53:27 +03:00
Arik Fraimovich
ed8b022e78 Merge pull request #2613 from ariarijp/improve-script
Improve Script Query Runner
2018-06-26 21:52:33 +03:00
Arik Fraimovich
2eefdc1da3 Updated queries screen (& unified API). 2018-06-26 21:50:16 +03:00
Arik Fraimovich
5e4cf5ba30 Add filtering by tags/search to favorites. 2018-06-26 21:48:50 +03:00
Arik Fraimovich
18f51890d2 Only show tags/search on all queries list. 2018-06-25 23:25:10 +03:00
Arik Fraimovich
b0de1be815 Better dashboards GET api (pagination, filter by tags, search by name) 2018-06-25 23:22:28 +03:00
Arik Fraimovich
f39b6b7073 Tags service. 2018-06-25 23:20:30 +03:00
Allen Short
e2a5bb0a06 eslint fix 2018-06-25 12:14:30 -05:00
Arik Fraimovich
bfeeb23443 Update package-lock.json file 2018-06-25 12:13:26 -05:00
Arik Fraimovich
9eb51da7ce Remove underscore usage from new files 2018-06-25 12:13:25 -05:00
Allen Short
d6011ede0c switch underscore usages to lodash
There's still one usage of `numberFormat` from `underscore.string`.
2018-06-25 12:13:25 -05:00
Allen Short
c47ad93eb2 humble beginnings with React components 2018-06-25 12:13:25 -05:00
Arik Fraimovich
4384959760 Merge pull request #2619 from StantonVentures/2567_order_datasources_alpha
data source sort case insensitive
2018-06-22 19:49:09 +03:00
Alison
fccba45e36 data source sort case insensitive
#2567
2018-06-22 07:03:51 -05:00
ariarijp
9d2a3133f0 Improve Script Query Runner 2018-06-21 14:45:12 +09:00
Gabriel Dutra
744ccd163a Fix export query results output file name
- regexp `/ /g` will seek for all space ocurrences, not only the first
2018-06-20 20:23:49 -03:00
Arik Fraimovich
4a833a7401 use tags-list component for mobile view as well 2018-06-20 18:52:56 +03:00
Arik Fraimovich
ece80eb1f7 Refactor: create tags list component to be shared between dashboard and queries list page. 2018-06-20 18:45:44 +03:00
Arik Fraimovich
695c342a69 Filter queries by tags. 2018-06-20 18:17:56 +03:00
Arik Fraimovich
97d4df2532 Merge pull request #2606 from denisov-vlad/pyyaml
requirements: added pyyaml
2018-06-20 14:55:18 +03:00
Vladislav Denisov
8cd8650119 requirements: added pyyaml 2018-06-20 12:03:46 +03:00
Arik Fraimovich
6fb7c310be Merge pull request #2574 from mtrbean/patch-1
commit query result to db before evaluating alerts
2018-06-20 10:52:44 +03:00
Arik Fraimovich
d533a05d54 Merge pull request #2604 from ariarijp/improve-spreadsheets
Improve Google Spreadsheets Query Runner
2018-06-20 10:38:33 +03:00
Arik Fraimovich
783ccfd4c0 Merge pull request #2533 from denisov-vlad/metrika
New datasource: Yandex Metrika&AppMetrika
2018-06-20 10:28:11 +03:00
ariarijp
5757b24ea3 Improve Google Spreadsheets Query Runner 2018-06-19 22:29:46 +09:00
Arik Fraimovich
5c1d2c8877 Merge pull request #2542 from emtwo/emtwo/xaxis
Closes #2541: x-axis improvements.
2018-06-19 12:44:56 +03:00
Arik Fraimovich
ff750b0db1 Merge pull request #2590 from ariarijp/remove-redundant-vars
Remove redundant variables
2018-06-18 15:02:45 +03:00
Alison
f4b32249e9 Merge pull request #1 from getredash/master
pull upstream to my fork
2018-06-17 16:26:19 -05:00
ariarijp
f8245f6e3f Remove redundant variables 2018-06-17 23:41:33 +09:00
Arik Fraimovich
c28702a5be Merge pull request #2580 from StantonVentures/master
add break-word wrap to add/edit text box on dashboard
2018-06-17 11:51:38 +03:00
Arik Fraimovich
d101866c91 Merge pull request #2585 from kravets-levko/fix/query-page-tabs
Show data only mode: allow to add and delete visualizations
2018-06-17 11:43:34 +03:00
Arik Fraimovich
6c11326a5d Merge pull request #2578 from ariarijp/fix-create-tables
Fix connection error when you run "create_tables"
2018-06-17 11:38:35 +03:00
Levko Kravets
17a677b6d0 Dashboard: make etire widget header clickable 2018-06-13 21:23:09 +03:00
Zsolt Kocsmarszky
1678155490 Make + New Visualization a button and add nicer icons 2018-06-13 16:57:20 +02:00
Zsolt Kocsmarszky
7be6164684 Hide - if no visualization name 2018-06-13 15:17:36 +02:00
Levko Kravets
418ac1bb68 Show data only mode: allow to add and delete visualizations 2018-06-12 20:03:21 +03:00
Alison
78421f590b keep query result pagination out of scroll 2018-06-11 23:55:24 -05:00
Zsolt Kocsmarszky
bdbeebdf86 Improve the header of the query by moving the visualization name to the first place 2018-06-11 17:19:45 +02:00
Levko Kravets
b521e65800 Discovery: show tags for both published and draft queries 2018-06-11 12:51:21 +03:00
Levko Kravets
a8a0312b72 Discovery: query & dashboard list: fix default browser behavior on click with modifier keys 2018-06-11 12:44:26 +03:00
Levko Kravets
840a7482c8 Discovery: filter queries by tags 2018-06-11 12:16:47 +03:00
Alison
d11638164e add break-word wrap to add/edit text box on dashboard 2018-06-10 09:33:19 -05:00
ariarijp
1efdb6034f Fix connection error when you run "create_tables" 2018-06-10 20:17:53 +09:00
Eric Wong
d0c6e41c9c commit query result to db before evaluating alerts
`check_alerts_for_query` runs on a separate celery queue and needs to see the latest result
2018-06-06 11:22:34 -07:00
Arik Fraimovich
e79dbe8b95 Merge branch 'master' into discovery 2018-06-06 15:35:45 +03:00
Arik Fraimovich
93dffa0c8a Merge with upstream 2018-06-06 15:28:15 +03:00
Arik Fraimovich
deceaa8888 Fix migrations order 2018-06-06 14:59:04 +03:00
Levko Kravets
11f25d8ba4 Tags: edit (query and dashboard page); show tags in a sidebar (dashboard list page) 2018-06-06 14:45:53 +03:00
Arik Fraimovich
69d5eb9020 tag listing APIs implemented 2018-06-06 14:45:05 +03:00
Zsolt Kocsmarszky
7ac90fe81e Fix tag layouts on headers 2018-06-06 14:45:05 +03:00
Levko Kravets
23deab7b7c Tags: display on all pages 2018-06-06 14:45:05 +03:00
Zsolt Kocsmarszky
f0342c3c45 tags for queries and dashboards 2018-06-06 14:44:32 +03:00
Arik Fraimovich
3835a8286c Simpler data model for tags. 2018-06-06 14:43:23 +03:00
Arik Fraimovich
a4f61df3fb Fixed add dashboard tags migration 2018-06-06 14:43:23 +03:00
Arik Fraimovich
0d764caafe Proper tags models 2018-06-06 14:43:23 +03:00
Levko Kravets
5081e9d245 Show spinner when loading dashboards and queries on list pages 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
312a73dd8d Style tags for queries and dashboards 2018-06-06 14:43:23 +03:00
Arik Fraimovich
d3240cd71b Fix queries search API 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
2b9dd6b5c0 Adding tags markup for query and dashboard 2018-06-06 14:43:23 +03:00
Levko Kravets
3ac52a2af5 Favorites: restore queries search 2018-06-06 14:43:23 +03:00
Levko Kravets
15baef531c Favorites: restore queries search 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
135cb53909 make entire dashboard and query list row clickable 2018-06-06 14:43:06 +03:00
Arik Fraimovich
f29afe9306 Hide my dashboards/queries when you don't have permission to create them 2018-06-06 14:43:06 +03:00
Arik Fraimovich
9feb7773ce add org_id to favorites 2018-06-06 14:43:06 +03:00
Arik Fraimovich
bcf49a700b Make sure user has access to favorite objects. 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
a782d67a8e add empty states for my queries/dashboard and fav queries/dashboards 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
3fbf518061 add empty condition for dashboard and query dropdown 2018-06-06 14:43:06 +03:00
Levko Kravets
0479aa40b3 Favorites: empty states on dashboards and queries list pages 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
b9db9f0b20 Right aligned control area 2018-06-06 14:41:13 +03:00
Arik Fraimovich
aa756b2be6 Almost complete implementation of favorties backend 2018-06-06 14:41:13 +03:00
Zsolt Kocsmarszky
af40375a78 Nicer styling for lists 2018-06-06 14:40:42 +03:00
Levko Kravets
d385b43915 Favorites: remove unnecessary code 2018-06-06 14:40:42 +03:00
Levko Kravets
54d667e59e Favorites: page for favorite dashboards and queries 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
983e3ba350 Further refine styling for tags 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
875e756236 Massive styling improvements for dashboards, queries and alerts lists 2018-06-06 14:40:42 +03:00
Levko Kravets
56b1e3c7aa Favorites: show favorite dashboards and queries in app header 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
7785538d59 add and fix classes 2018-06-06 14:39:52 +03:00
Zsolt Kocsmarszky
82829d5687 Better queries page... 2018-06-06 14:39:52 +03:00
Levko Kravets
34aaf55463 Favorites: show favorites on homepage instead of recent items 2018-06-06 14:39:52 +03:00
Zsolt Kocsmarszky
e6745683fe Add more details for favourites 2018-06-06 14:39:14 +03:00
Levko Kravets
8c7e62f7ff Favorites: models, control on query list, query page, dashboard list, dashboard pages. 2018-06-06 14:37:52 +03:00
Arik Fraimovich
02628d76f1 API stub for query object. 2018-06-06 14:37:52 +03:00
Arik Fraimovich
64f70cfbe8 Query favorites: API stub. 2018-06-06 14:37:52 +03:00
Zsolt Kocsmarszky
5f1c4e9dce Add base stuff for favourites 2018-06-06 14:37:52 +03:00
Arik Fraimovich
672c86efaa Merge pull request #2549 from coreyhuinker/patch-1
Allow get_tables to see views and v10-style partitioned tables
2018-06-06 11:40:01 +03:00
Arik Fraimovich
8bffc6f45d Merge pull request #2568 from StantonVentures/2567_order_datasources_alpha
sort datasources alphabetically
2018-06-06 11:02:25 +03:00
Arik Fraimovich
52b9333b8d Merge pull request #2572 from StantonVentures/2571_archived_query_menu_line
remove extra menu line if query is archived
2018-06-06 10:59:09 +03:00
Alison
2982d77ff2 remove extra menu line if query is archived
fixes #2571

Sames as https://github.com/mozilla/redash/issues/319 fixed in https://github.com/mozilla/redash/pull/414/
2018-06-05 23:11:19 -05:00
Alison
dda024a8d2 fixes query pagination alignment
fixes #2569

Same as https://github.com/mozilla/redash/pull/413/ which fixes https://github.com/mozilla/redash/issues/320
2018-06-05 22:56:15 -05:00
Alison
ea8951711f sort datasources alphabetically
fixes https://github.com/getredash/redash/issues/2567

Same as https://github.com/mozilla/redash/issues/367
2018-06-05 22:50:35 -05:00
Levko Kravets
204e36730e After saving tags in a dashboard, widgets go into refresh mode 2018-06-05 17:11:52 +03:00
Arik Fraimovich
c86423aea9 Merge pull request #2444 from sjakthol/saml-handle-parse-errors
feat: show error if saml response cannot be parsed
2018-06-03 11:41:50 +03:00
Sami Jaktholm
c7cf3653b8 feat: show error if saml response cannot be parsed
Previously, exceptions from pysaml2 would've caused
a 500 Internal Server Error response to be sent back
to the user. Now, the user is redirected back to login
page which includes an user friendly error message.
2018-06-03 09:42:53 +03:00
Marina Samuel
804603014d Closes #2541: x-axis improvements. 2018-05-31 16:29:39 -04:00
Arik Fraimovich
90d642fbe2 Update the tab name. 2018-05-31 21:25:51 +03:00
Arik Fraimovich
ca1b8f2047 Update chart editor labels 2018-05-31 21:07:12 +03:00
Arik Fraimovich
0a0b53b7e9 Merge pull request #2536 from kravets-levko/feature/chart-formats-and-tooltips-2
Chart: formats for values, labels and tooltips
2018-05-31 19:05:51 +03:00
Arik Fraimovich
131811179b Merge pull request #2564 from getredash/policy
Fix: typo fixes in Policy related code.
2018-05-31 18:42:22 +03:00
Levko Kravets
80295ca1e7 Chart tooltips: use date/time format from config 2018-05-31 18:40:18 +03:00
Arik Fraimovich
d71cdf5dbc Fix: typo fixes in Policy related code. 2018-05-31 18:39:20 +03:00
Arik Fraimovich
65881a0f79 Merge pull request #2562 from getredash/policy
Set currentUser value in users list page & use ng-src when needed
2018-05-31 17:27:29 +03:00
Arik Fraimovich
cc3145f895 Fix: set currentUser value in users list page. 2018-05-31 17:26:03 +03:00
Arik Fraimovich
c6b16b62ab Fix: use ng-src in empty-state. 2018-05-31 17:25:52 +03:00
Arik Fraimovich
f2b49ae7ff Merge pull request #2561 from getredash/policy
Add OrganizationStatus service (and some more)
2018-05-31 15:31:57 +03:00
Arik Fraimovich
3113c9b79e Don't count disabled users in users count 2018-05-31 15:30:41 +03:00
Arik Fraimovich
6a89d5ea1c Add extension point to home page 2018-05-31 15:30:27 +03:00
Arik Fraimovich
b7f221542b Load OrganizationStatus on page load 2018-05-31 15:30:09 +03:00
Arik Fraimovich
cfc3912723 Add OrganizationStatus service and use it in empty state. 2018-05-31 15:28:47 +03:00
Arik Fraimovich
c7614997d9 Merge pull request #2560 from getredash/policy
Introduce Policy object
2018-05-31 11:05:51 +03:00
Arik Fraimovich
b323747aaf Remove unused code. 2018-05-31 10:58:04 +03:00
Arik Fraimovich
64c9e5c963 Add Policy object. 2018-05-31 10:54:40 +03:00
Arik Fraimovich
68e5aec861 Save new dashboard on enter key press. 2018-05-31 10:49:02 +03:00
Arik Fraimovich
617df8e4f6 Merge pull request #2380 from kravets-levko/feature/disable-users
Admin should be able to disable a user
2018-05-31 10:24:12 +03:00
Levko Kravets
75f8b8ae7b getredash/redash#728 Use date/time and number formats only for tooltips 2018-05-30 17:25:30 +03:00
Levko Kravets
3fe8272ce4 getredash/redash#2375 Better error message when trying to disable self user; set disabled user avattar URL on backend and remove profileImage filter 2018-05-28 17:05:39 +03:00
Levko Kravets
ac6d6fc68a getredash/redash#2375 More tests + fix bug 2018-05-28 14:04:08 +03:00
Levko Kravets
2c84a383f3 getredash/redash#2375 Tests 2018-05-28 14:04:08 +03:00
Levko Kravets
6fb5548106 getredash/redash#2375 CR1
- only admin should see disabled users;
- add Disable button to user page;
- escape user name in toastr notifications;
- code cleanup.
2018-05-28 14:04:08 +03:00
Levko Kravets
84fb683bf3 getredash/redash#2375 Disabled users should not be able to login 2018-05-28 14:04:08 +03:00
Levko Kravets
40aee8465b getredash/redash#2375 Show gray icon for disabled users 2018-05-28 14:04:08 +03:00
Levko Kravets
d40aa09bcf getredash/redash#2375 Admin should be able to disable a user 2018-05-28 14:04:08 +03:00
Arik Fraimovich
6d1a67fee3 Merge pull request #2554 from kyoshidajp/show_deleting_target_item_name
Display name to be delete
2018-05-28 07:15:17 +03:00
Katsuhiko YOSHIDA
621718c3a0 Change the deleting message format 2018-05-28 06:35:32 +09:00
Katsuhiko YOSHIDA
a7e1b2bf68 Display name to be delete 2018-05-28 05:49:39 +09:00
Arik Fraimovich
7f3db4d7b6 Merge pull request #2510 from kyoshidajp/confirm_delete
Display confirmation dialog when deleting a item
2018-05-27 08:41:40 +03:00
Vladislav Denisov
8101077371 yandex_metrika: new appmetrika logo 2018-05-25 17:29:53 +03:00
Vladislav Denisov
8422a3657a metrika: added yaml support 2018-05-25 16:56:27 +03:00
Corey Huinker
76e86817c8 remove blank line 2018-05-21 15:37:00 -04:00
Corey Huinker
95593481a5 Update pg.py 2018-05-21 15:26:46 -04:00
Corey Huinker
fcd984aca6 Allow get_tables to see views and v10-style partitioned tables
And it does so with just one query.
2018-05-21 15:18:59 -04:00
Zsolt Kocsmarszky
07519596b8 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-21 17:53:16 +02:00
Zsolt Kocsmarszky
3b2bfb9177 fix queries and dashboard list for smaller screens 2018-05-21 17:53:00 +02:00
Arik Fraimovich
a6bc7c02bf Merge pull request #2509 from kyoshidajp/show_custom_date_format
Show custom date format on settings page
2018-05-19 17:49:05 +03:00
Arik Fraimovich
387ca14973 Merge pull request #2526 from deecay/fix-pivot
Fix pivot hide control in dashboards
2018-05-18 18:43:38 +03:00
Arik Fraimovich
ead7635a3d Merge pull request #2511 from kocsmy/fixes/styling-adjustments
Fixing signed_out.html template
2018-05-18 18:40:10 +03:00
Arik Fraimovich
7ebcce5370 Merge pull request #2518 from kocsmy/design/styling-improvements
Design improvements
2018-05-17 19:08:09 +03:00
Zsolt Kocsmarszky
00a2dfd728 Add readme about illustration license 2018-05-17 14:32:16 +02:00
Zsolt Kocsmarszky
6ed03247ca Merge https://github.com/getredash/redash into design/styling-improvements 2018-05-17 14:25:43 +02:00
Vladislav Denisov
fcafc40be3 yandex_metrika: codeclimate fixes #2 2018-05-17 10:58:32 +03:00
Arik Fraimovich
23df796740 Merge pull request #2537 from sieben/remove_trailing_semicolon
Remove trailing semicolon
2018-05-15 15:55:01 +03:00
Rémy Léone
309a8bd958 Remove trailing semicolon 2018-05-15 14:21:14 +02:00
Levko Kravets
2ed67005b9 Remove unused option 2018-05-15 12:47:13 +03:00
Arik Fraimovich
deb523ebd5 Merge pull request #2523 from innovia/hotfix/boolean-nullable-formator
Frontend: fix boolean field with null value display as null.
2018-05-15 11:32:18 +03:00
Arik Fraimovich
acc27f0579 Change migration to be safe to run along with other migrations 2018-05-14 22:02:10 +03:00
Vladislav Denisov
ef3c837a97 metrika: codeclimate fixes 2018-05-14 17:43:53 +03:00
Vladislav Denisov
4a62ab7ce4 Yandex Metrika query runner added 2018-05-14 17:21:58 +03:00
Arik Fraimovich
7553eef024 Remove dashboards recents tests 2018-05-14 11:02:25 +03:00
Arik Fraimovich
2279d32b3b Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 22:10:46 +03:00
Levko Kravets
d3e7393bad Tags: edit (query and dashboard page); show tags in a sidebar (dashboard list page) 2018-05-10 21:51:39 +03:00
Arik Fraimovich
6cd9fe0b52 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 21:34:37 +03:00
Arik Fraimovich
42657ed95f tag listing APIs implemented 2018-05-10 20:59:19 +03:00
Zsolt Kocsmarszky
bd6fac074c Fix tag layouts on headers 2018-05-10 19:34:25 +03:00
Levko Kravets
c0294cdd0a Tags: display on all pages 2018-05-10 19:25:37 +03:00
Zsolt Kocsmarszky
b0f6a78ebb Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 19:04:16 +03:00
Zsolt Kocsmarszky
3b4bd648fe tags for queries and dashboards 2018-05-10 19:04:10 +03:00
Arik Fraimovich
0060c8a54f Simpler data model for tags. 2018-05-10 18:58:58 +03:00
Arik Fraimovich
b1ffcbad79 Fixed add dashboard tags migration 2018-05-10 18:07:40 +03:00
Arik Fraimovich
52bda8d117 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 18:00:59 +03:00
Arik Fraimovich
08611c009c Proper tags models 2018-05-10 18:00:54 +03:00
Zsolt Kocsmarszky
8081ea83bc Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 17:50:51 +03:00
Levko Kravets
6c0afc9c6f Show spinner when loading dashboards and queries on list pages 2018-05-10 17:25:59 +03:00
Zsolt Kocsmarszky
3e16df9092 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 16:54:25 +03:00
Zsolt Kocsmarszky
8c4381a44d Style tags for queries and dashboards 2018-05-10 16:54:15 +03:00
Arik Fraimovich
59f2cb94ab Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 14:15:19 +03:00
Arik Fraimovich
5b0a192784 Fix queries search API 2018-05-10 14:15:06 +03:00
Zsolt Kocsmarszky
1aa3dd15b3 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 14:05:55 +03:00
Zsolt Kocsmarszky
629117d2f0 Adding tags markup for query and dashboard 2018-05-10 14:05:46 +03:00
Levko Kravets
078f24ad6b Favorites: restore queries search 2018-05-10 14:05:18 +03:00
Levko Kravets
f4a36410c0 Favorites: restore queries search 2018-05-10 14:01:42 +03:00
Zsolt Kocsmarszky
4dc2c44c01 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 13:17:30 +03:00
Zsolt Kocsmarszky
1186f31337 make entire dashboard and query list row clickable 2018-05-10 13:17:15 +03:00
Arik Fraimovich
5cc7b88235 Hide my dashboards/queries when you don't have permission to create them 2018-05-10 13:11:59 +03:00
Arik Fraimovich
6bbf6809cf Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 12:51:54 +03:00
Arik Fraimovich
28a08526e3 add org_id to favorites 2018-05-10 12:51:11 +03:00
Arik Fraimovich
7fe90675bd Make sure user has access to favorite objects. 2018-05-10 12:41:58 +03:00
Zsolt Kocsmarszky
0958f591d1 add empty states for my queries/dashboard and fav queries/dashboards 2018-05-10 12:32:36 +03:00
Zsolt Kocsmarszky
33314abde7 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 12:00:56 +03:00
Zsolt Kocsmarszky
3a59f6cd0f add empty condition for dashboard and query dropdown 2018-05-10 12:00:45 +03:00
Levko Kravets
eb71a655e8 Favorites: empty states on dashboards and queries list pages 2018-05-10 11:58:26 +03:00
Zsolt Kocsmarszky
4bb785eab4 Right aligned control area 2018-05-10 11:30:22 +03:00
deecay
19bfae3741 Fix pivot hide control in dashboards 2018-05-10 03:26:36 -04:00
Arik Fraimovich
afd3dd9860 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 21:43:00 +03:00
Arik Fraimovich
66737f0dc0 Almost complete implementation of favorties backend 2018-05-09 21:42:50 +03:00
Zsolt Kocsmarszky
f374661ad9 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-09 20:19:28 +03:00
Zsolt Kocsmarszky
ea6dbf643a Nicer styling for lists 2018-05-09 20:19:15 +03:00
Levko Kravets
24fe52753e Favorites: remove unnecessary code 2018-05-09 20:15:34 +03:00
Arik Fraimovich
8665747111 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 20:10:30 +03:00
Levko Kravets
fcc75cbd16 Favorites: page for favorite dashboards and queries 2018-05-09 20:07:58 +03:00
Zsolt Kocsmarszky
3974adeacd Further refine styling for tags 2018-05-09 18:43:26 +03:00
Zsolt Kocsmarszky
7dc5d53934 Massive styling improvements for dashboards, queries and alerts lists 2018-05-09 18:27:40 +03:00
Arik Fraimovich
96a90722f1 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 16:55:47 +03:00
Levko Kravets
a4e52bcc96 Favorites: show favorite dashboards and queries in app header 2018-05-09 16:53:12 +03:00
Zsolt Kocsmarszky
3abeb6cf96 add and fix classes 2018-05-09 14:35:08 +03:00
Zsolt Kocsmarszky
057894aaf4 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-09 14:20:48 +03:00
Zsolt Kocsmarszky
c9ae48f466 Better queries page... 2018-05-09 14:20:12 +03:00
Levko Kravets
78092e525f Favorites: show favorites on homepage instead of recent items 2018-05-09 14:19:28 +03:00
Arik Fraimovich
189b7889a3 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 14:08:18 +03:00
Zsolt Kocsmarszky
32e9b4c71c Merge branch 'discovery' of https://github.com/getredash/redash into discovery
# Conflicts:
#	client/app/pages/queries/query.html
2018-05-09 13:42:18 +03:00
Zsolt Kocsmarszky
6c30f821f7 Add more details for favourites 2018-05-09 13:40:09 +03:00
Levko Kravets
8d99b7380c Favorites: models, control on query list, query page, dashboard list, dashboard pages. 2018-05-09 13:39:47 +03:00
Arik Fraimovich
20f7405f0e API stub for query object. 2018-05-09 12:58:53 +03:00
Arik Fraimovich
e32da8dbe3 Query favorites: API stub. 2018-05-09 12:57:30 +03:00
Zsolt Kocsmarszky
dbc2d984b3 Add base stuff for favourites 2018-05-09 12:56:00 +03:00
Ami Mahloof
ad0a9813e4 Frontend: fix boolean field with null value display as null. 2018-05-09 11:22:16 +03:00
Levko Kravets
e12d539234 getredash/redash#728 Chart: formats for values, labels and tooltips 2018-05-07 22:18:26 +03:00
Zsolt Kocsmarszky
87000ee4d6 Refine spacing and image size 2018-05-07 14:29:55 +03:00
Arik Fraimovich
414fabadf6 Merge pull request #2520 from kyoshidajp/filter_datasources
Filter data sources in a data source input area
2018-05-05 22:00:26 +03:00
Katsuhiko YOSHIDA
d6bebe1dcf Filter data sources 2018-05-05 21:18:51 +09:00
Zsolt Kocsmarszky
66fd9531cc Remove fullstop 2018-05-05 00:26:54 +02:00
Zsolt Kocsmarszky
045230d189 Add Illustration to empty states 2018-05-05 00:25:07 +02:00
Zsolt Kocsmarszky
7bd79124b7 Adjust spacing around Group header 2018-05-04 22:50:51 +02:00
Zsolt Kocsmarszky
11d52949a7 Overwrite toast notification colors to better match our color scheme 2018-05-04 22:48:28 +02:00
Zsolt Kocsmarszky
10fc89fc39 Increase query editor height 2018-05-04 22:26:51 +02:00
Zsolt Kocsmarszky
2e414db0b1 Fix query header on smaller screens 2018-05-04 22:16:23 +02:00
atharva.inamdar
48acc4c7a7 fix code climate lint issue with whitespace 2018-05-04 11:47:36 +01:00
atharva.inamdar
a0d039066d fix tests for google spreadsheets 2018-05-04 11:21:55 +01:00
Katsuhiko YOSHIDA
bd1c5fa9e1 Add location property to BigQuery data source settings 2018-05-04 16:05:54 +09:00
atharva.inamdar
61106dec14 getredash/redash#2504 Update value parsing for google spreadsheets source 2018-05-03 16:35:24 +01:00
Katsuhiko YOSHIDA
26238ccfc1 Confirm delete a data source 2018-05-03 21:23:01 +09:00
Katsuhiko YOSHIDA
3e371d3ffd Confirm delete a destination 2018-05-03 20:48:53 +09:00
Zsolt Kocsmarszky
038933f1f1 signed_out template fixes 2018-05-03 13:15:13 +02:00
Katsuhiko YOSHIDA
8243b6caed Confirm delete a query snippet 2018-05-03 19:11:00 +09:00
Katsuhiko YOSHIDA
813a5db958 Refactoring: extract method about date format config 2018-05-03 18:17:02 +09:00
Katsuhiko YOSHIDA
971e501561 Show custom date format on settings page 2018-05-03 18:03:05 +09:00
Arik Fraimovich
a287fbf128 Remove old style files 2018-05-03 09:38:13 +03:00
Arik Fraimovich
d43bfa9d10 Version bump to 4.0.1 2018-05-02 17:18:00 +03:00
Arik Fraimovich
b4d7a25c74 Update CHANGELOG.md 2018-05-02 17:13:46 +03:00
Katsuhiko YOSHIDA
3021c7c0a9 Refactor to fix Code Climate error 2018-05-02 22:50:24 +09:00
Katsuhiko YOSHIDA
4ffcd6390b Fix pep8 error 2018-05-02 22:02:04 +09:00
Arik Fraimovich
c8a3985f16 Merge pull request #2506 from kocsmy/fixes/overflowing-data-source-box
A nicer way of hiding overflowing text
2018-05-02 14:27:59 +03:00
Zsolt Kocsmarszky
3274a5d670 Add data source name to box title 2018-05-02 13:27:26 +02:00
Arik Fraimovich
8037c21a61 Merge pull request #2496 from akiray03/sorted-redshift-schema-info
Fixes the order of columns in the schema browser when Redshift is used as a DataSource.
2018-05-02 14:14:38 +03:00
Arik Fraimovich
ee8f6c1c71 Merge pull request #2472 from tonyjiangh/fix/disable_view_only_fork
Disable fork button for view_only user
2018-05-02 14:11:55 +03:00
Arik Fraimovich
bce0e8e547 Merge pull request #2507 from getredash/resolution
Log user's screen resolution
2018-05-02 14:09:52 +03:00
Arik Fraimovich
cddf398df4 Log user's screen resolution 2018-05-02 14:05:57 +03:00
Arik Fraimovich
bdb8682646 Merge pull request #2501 from getredash/fix-dashboard-filters
Improve dashboard refresh UX: show previous data while refreshing.
2018-05-02 14:02:59 +03:00
Arik Fraimovich
54bef2c05f Remove console.log call 2018-05-02 14:02:43 +03:00
Zsolt Kocsmarszky
d326f2b46c A nicer way of hiding overflowing text 2018-05-02 12:33:21 +02:00
Arik Fraimovich
06a7a7e65b Merge pull request #2505 from kocsmy/fixes/overflowing-data-source-box
Hide overflowing content
2018-05-02 13:26:31 +03:00
Zsolt Kocsmarszky
fc0a074a07 Hide overflowing content 2018-05-02 12:18:36 +02:00
Arik Fraimovich
44a330a4e6 Merge pull request #2499 from kocsmy/design/design-improvements
Design improvements
2018-05-02 10:36:02 +03:00
Zsolt Kocsmarszky
ab284efac1 Fix contianer width 2018-04-30 16:00:57 +02:00
Arik Fraimovich
9d4fd75ea8 Fix: update tests. 2018-04-30 11:16:27 +03:00
Arik Fraimovich
4a9b93a131 Improve dashboard refresh UX: show previous data while refreshing.
Also refactored the Widget (client side) model to accomodate the necessary changes.
2018-04-30 11:01:36 +03:00
Zsolt Kocsmarszky
31a48cfe2b Subtle background change 2018-04-29 14:59:27 +02:00
Zsolt Kocsmarszky
9df98b1c29 Fix login screen on smaller viewport 2018-04-29 14:59:11 +02:00
Akira Yumiyama
d1bc2fb649 Fixes the order of columns in the schema browser when Redshift is used as a DataSource. 2018-04-27 17:56:04 +09:00
Arik Fraimovich
df774b0304 Merge pull request #2492 from kravets-levko/bug/cohort-js-error
Cohort bug: JS error (value not wrapped with moment instance)
2018-04-26 15:04:44 +03:00
Levko Kravets
7ac0ba52dd Cohort bug: JS error (value not wrapped with moment instance) 2018-04-26 14:00:56 +03:00
Arik Fraimovich
b2decc895f Merge pull request #2487 from getredash/fix-dashboard-filters
Fix: dashboard filters setting wasn't persisting.
2018-04-25 11:46:45 +03:00
Arik Fraimovich
b12f3fb133 Merge pull request #2469 from PublicI/fix/null-number-format
Display nulls and empty values as blank in table numeric fields
2018-04-24 22:53:57 +03:00
Arik Fraimovich
fc30f141ec Merge pull request #2489 from dbravender/2488-alert-date-column
Fixes #2488
2018-04-24 22:33:42 +03:00
Dan Bravender
277eb35aea Fixes #2488 2018-04-24 13:50:44 -04:00
Arik Fraimovich
10bc9402b7 Fix: dashboard filters setting wasn't persisting. 2018-04-24 15:50:33 +03:00
Arik Fraimovich
16a07e19cc Merge pull request #2485 from kocsmy/fixes/new-readme-gif
Update readme gif + some smaller content improvements
2018-04-24 15:12:17 +03:00
Zsolt Kocsmarszky
479b34faed Make gif bigger 2018-04-24 14:04:31 +02:00
Zsolt Kocsmarszky
19eed1580e Refine content 2018-04-24 14:03:42 +02:00
Zsolt Kocsmarszky
d312dffe2c Update readme 2018-04-24 13:58:58 +02:00
matsumo
c426ef323d add support ChatWork Alert Destination. 2018-04-23 17:14:01 +09:00
Arik Fraimovich
90677b2b51 Merge pull request #2475 from ariarijp/fix-pip-version
To avoid "cannot import name main" error
2018-04-22 13:44:28 +03:00
ariarijp
df9bd38c08 To avoid "cannot import name main" error 2018-04-20 11:39:36 +09:00
Hao Jiang
be86d659ed Add $scope.canForkQuery() to data only view 2018-04-20 10:01:04 +09:00
Hao Jiang
66a4315ce2 Move dropdown disabled a tag color change code to disable class 2018-04-20 10:00:46 +09:00
Hao Jiang
b896dd461d Disable fork for view_only user 2018-04-19 10:44:52 +09:00
Chris Zubak-Skees
615aea7678 Merge remote-tracking branch 'upstream/master' into fix-null-number-format 2018-04-17 12:35:07 -04:00
Chris Zubak-Skees
10a9978b04 Fix style in PR branch 2018-04-17 12:34:20 -04:00
Arik Fraimovich
3f3a86eac3 Update CHANGELOG.md 2018-04-16 11:50:46 +03:00
Arik Fraimovich
43a66fae82 Merge branch 'master' of github.com:getredash/redash 2018-04-16 11:21:24 +03:00
Arik Fraimovich
ed739e1292 Update version 2018-04-16 11:21:14 +03:00
Katsuhiko YOSHIDA
ffa70185be Get all tables in the BigQuery 2018-04-15 22:59:37 +09:00
Arik Fraimovich
212c7eed46 Merge pull request #2457 from kyoshidajp/fix_td_syntax_error
Fix syntax error
2018-04-15 10:45:46 +03:00
Katsuhiko YOSHIDA
ce50042407 Fix syntax error 2018-04-14 09:46:05 +09:00
Arik Fraimovich
e17e36f9e4 Update CHANGELOG.md 2018-04-12 15:40:32 +03:00
Arik Fraimovich
0bc570d741 Merge pull request #2407 from alon710/master
adds mattermost destination
2018-04-12 15:17:58 +03:00
Arik Fraimovich
7465c74392 Merge pull request #2428 from toru-takahashi/master
Improve a query failure message for Treasure Data Runner
2018-04-12 15:14:24 +03:00
Arik Fraimovich
a8a91109ee Merge pull request #2452 from kravets-levko/bug/firefox-widget-height-continuously-increases
Firefox: widget height continuously increases
2018-04-11 22:29:54 +03:00
Arik Fraimovich
add60c2552 Merge pull request #2451 from kravets-levko/bug/page-layout-lost
Wrong page layout if route change was cancelled
2018-04-11 22:29:26 +03:00
Chris Zubak-Skees
f055e6750a Displays nulls and blanks in numeric fields as empty strings 2018-04-10 19:03:57 -04:00
Levko Kravets
4dc8826beb Firefox, dashboard, auto-height feature: in some cases (loader shown and widget has params, but possibly other cases) widget start continuously growing 2018-04-10 21:08:27 +03:00
Levko Kravets
d35bbdb257 getredash/redash#2401 Wrong page layout if route change cancelled 2018-04-10 15:42:05 +03:00
Arik Fraimovich
8636c3310d Merge pull request #2449 from getredash/botocore-update
Update botocore version.
2018-04-09 23:02:13 +03:00
Arik Fraimovich
eddd9419a4 Merge pull request #2450 from getredash/map-names
Update map visualizations names.
2018-04-09 22:57:40 +03:00
Arik Fraimovich
2d08314982 Update Choropleth visualization name. 2018-04-09 22:57:22 +03:00
Arik Fraimovich
28d69b0c60 Update map visualizations names. 2018-04-09 22:56:10 +03:00
Arik Fraimovich
7f76400550 Update botocore version.
Fixes #2400.
2018-04-09 22:55:20 +03:00
Arik Fraimovich
f551b348a7 Merge pull request #2447 from getredash/patches
Fixes to new dashboard layout engine
2018-04-09 09:47:43 +03:00
Toru Takahashi
b1567f4d8d Add safe guarding with .get() 2018-04-09 01:29:18 +09:00
Arik Fraimovich
d18c94a587 Merge pull request #2420 from fmy/patch-1
use MongoClient for ReplicaSet
2018-04-08 15:43:56 +03:00
Arik Fraimovich
f75c142981 Merge pull request #2434 from tonyjiangh/fix/funnel_typo
Fix funnel setting page typo
2018-04-08 15:39:09 +03:00
Arik Fraimovich
0959281a01 Merge pull request #2443 from deecay/choropleth-fullscreen
Choropleth: Add fullscreen control
2018-04-08 15:38:07 +03:00
Arik Fraimovich
96a0a512f3 Merge pull request #2446 from getredash/patches
Update pymongo version to support newer MongoDB versions
2018-04-08 15:33:06 +03:00
Levko Kravets
9899abfe6a Fix: some legacy dashboards got their widgets misplaced when using auto height. 2018-04-08 15:32:24 +03:00
Arik Fraimovich
d02386488c Fix: dashboard refresh was broken due to introduction of track by to ng-repeat. 2018-04-08 15:32:14 +03:00
Arik Fraimovich
5f25bc480c Update pymongo version to support newer MongoDB versions 2018-04-08 15:26:35 +03:00
deecay
07b5003c6f Map: Add fullscreen control 2018-04-07 14:37:44 +09:00
Arik Fraimovich
8aba5db862 Merge pull request #2441 from tnetennba3/pronoun-fix
Changed "his" to "their"
2018-04-06 21:22:44 +03:00
deecay
b3ee25079e Choropleth: Add fullscreen control 2018-04-06 13:08:28 -04:00
tnetennba3
85179fd07b Changed "his" to "their" 2018-04-05 16:27:20 +01:00
Hao Jiang
390360cc4e Fix funnel setting page typo 2018-04-03 08:11:53 +09:00
Toru Takahashi
7edd5b9731 Improve a query failure message for Treasure Data Runner 2018-04-01 15:45:28 +09:00
Fumiya Karasawa
c681a50b19 use MongoClient for ReplicaSet
MongoReplicaSetClient is deprecated and will be removed in future.

See http://api.mongodb.com/python/current/api/pymongo/mongo_replica_set_client.html
```
MongoReplicaSetClient will be removed in a future version of PyMongo.

Changed in version 3.0: MongoClient is now the one and only client class for a standalone server, mongos, or replica set. It includes the functionality that had been split into MongoReplicaSetClient: it can connect to a replica set, discover all its members, and monitor the set for stepdowns, elections, and reconfigs.
```
2018-03-29 17:46:27 +09:00
Arik Fraimovich
8df2391a77 Merge pull request #2376 from valentin2105/master
Fix docker-entrypoint broke for other name than "postgres"
2018-03-27 09:16:14 +03:00
Valentin Ouvrard
0982e56ed0 fix entrypoint create_table() func. 2018-03-26 10:01:58 +11:00
Arik Fraimovich
0cb995bb35 Merge pull request #2413 from getredash/fix-bq
Fix: (BigQuery) UDF URI was used even if empty
2018-03-25 14:39:30 +03:00
Arik Fraimovich
d34d58bf33 Merge pull request #2374 from kravets-levko/feature/choropleth
Choropleth visualization
2018-03-25 14:34:45 +03:00
Arik Fraimovich
c19ff41392 Merge pull request #2406 from kravets-levko/feature/dashboard-gridstack
Replace dashboard engine with gridstack
2018-03-25 14:27:36 +03:00
Arik Fraimovich
abb6e56570 Fix: UDF URI was used even if empty 2018-03-25 14:22:36 +03:00
Arik Fraimovich
a7bba81969 Merge pull request #2412 from deecay/box-hover-fix
Fix: Box plot hover
2018-03-24 21:39:05 +03:00
deecay
6356a75478 Fix: Box plot hover 2018-03-24 20:57:04 +09:00
Levko Kravets
61ef5f9a02 gridstack: add comments, exclude lodash and moment locales from bundle 2018-03-23 19:50:55 +02:00
Levko Kravets
2fbf8926c4 gridstack: optimizations and bugfixes 2018-03-23 19:50:55 +02:00
Levko Kravets
ce9e3fcb35 Replace dashboard engine with gridstack 2018-03-23 19:50:28 +02:00
Arik Fraimovich
ffab6d5ec9 Merge pull request #2411 from getredash/patches
Multiple V4 regression fixes
2018-03-23 19:34:07 +03:00
Levko Kravets
be9bcaeb3d Multiple fixes:
* Fix: line chart with category x-axis: when some values missing, wrong hints displayed on hover
* Fix: second Y-axis not displayed when stacking enabled
* Set of dashboard improvements and bug fixes
    - set minimal height of widgets to 1 (was 4)
    - bug: for some widgets auto-height wasn't calculated properly (sometimess too small, sometimes too large)
    - bug: for small widgets, top-right menu was cut to widgets bounds
    - bug: with opened top-right menu widgets with auto-height started "dancing"
    - bug: at some point auto-height feature was disabling by itself (in fact - it depends on `angular-grindter`s internal processes)
    - fix: widget with empty contents had extra 40px of white space (paddings of container)
* Add scrollbars to pivot table widgets
* Fix: 100% CPU loading caused page lags
2018-03-23 19:25:21 +03:00
Arik Fraimovich
d140e0418f Fix: dashboard was reloading when clicking on refresh. 2018-03-23 19:22:23 +03:00
Arik Fraimovich
6685cb9e21 Load dashboard refresh rate from URL. 2018-03-23 19:22:06 +03:00
Arik Fraimovich
2f24cff33c Plotly: increase Y value accuracy. 2018-03-23 19:20:28 +03:00
Arik Fraimovich
193a6cce3f Fix: only try merging query object if it exists. 2018-03-23 19:18:28 +03:00
Arik Fraimovich
17951504f0 Change: apply time limit to alert status checking task. 2018-03-23 19:17:57 +03:00
Arik Fraimovich
ccffe70359 MSSQL Fix: UUID fields were detected as booleans. 2018-03-23 19:17:13 +03:00
Arik Fraimovich
503d6cecd0 DynamoDB fix: always return counter as a number rather than string. 2018-03-23 19:16:54 +03:00
Arik Fraimovich
6fbe06d262 Report Celery queue size. 2018-03-23 19:16:24 +03:00
Arik Fraimovich
2394f3fbe5 Add events property to Organization model. 2018-03-23 19:16:14 +03:00
Arik Fraimovich
cb815f3c8e Render safe HTML by default in tables to remain backward compatible. 2018-03-23 19:15:47 +03:00
Arik Fraimovich
e6f6c02f90 Fix: saving widget was sending too much data to the server, sometimes making saving fail. 2018-03-23 19:13:40 +03:00
Arik Fraimovich
565e66715f Fix: Fork button was shown in data only view, but wasn't working. 2018-03-23 19:13:15 +03:00
Arik Fraimovich
549de1355a Change: show friendly names in dynamic forms labels. 2018-03-23 19:10:26 +03:00
Arik Fraimovich
d892ed48cc Merge pull request #2387 from idalin/fix_ldap_login
fix no login form in ldap login page #2386
2018-03-22 14:04:30 +02:00
alon710
b96204654b adds mattermost dest 2018-03-22 00:29:49 +02:00
Arik Fraimovich
3c75c2bb60 Update CONTRIBUTING.md 2018-03-21 16:41:02 +02:00
Arik Fraimovich
db020576ed Merge pull request #2385 from kocsmy/fixex/cassandra-scylla-images
Add missing Cassandra and ScyllaDB images
2018-03-19 22:13:48 +02:00
idalin
5a93da3177 fix no login form in ldap login page #2386 2018-03-14 13:59:50 +08:00
Zsolt Kocsmarszky
d16285d239 Add missing images 2018-03-12 20:45:45 +01:00
Arik Fraimovich
0410d834d1 Merge pull request #2382 from deecay/webpack-ignore
Webpack: ignore vim swap files
2018-03-11 15:02:44 +02:00
deecay
b79abf52fd Webpack: ignore vim swap files 2018-03-10 17:48:11 +09:00
Levko Kravets
6a61057813 getredash/redash#2317 CR1
- cache GeoJSON to avoid multiple HTTP requests;
- allow to edit map bounds;
- optimize update map calls (do not re-render it every time);
- UI/X imporvements.
2018-03-08 14:46:09 +02:00
Arik Fraimovich
1a75d49041 Merge pull request #2379 from getredash/fix_empty_states
Change: close metadata database connection early in the execute query Celery task
2018-03-08 11:17:30 +02:00
Arik Fraimovich
c054731794 Change: close metadata database connection early in the execute query
Celery task. This to prevent the task holding an idle connection for
a long period of time, while waiting for the query to finish.
2018-03-08 11:06:15 +02:00
Arik Fraimovich
a824bd5da3 Merge pull request #2378 from getredash/fix_empty_states
Empty state screen fix: show connect data source link only to admins
2018-03-08 09:53:29 +02:00
Arik Fraimovich
e1ff31718e fix circle.yml 2018-03-08 09:46:45 +02:00
Arik Fraimovich
797b5582ac Fix: show connect data source link only to admins 2018-03-08 09:43:30 +02:00
Valentin Ouvrard
452904398f Fix docker-entrypoint broke for Other name than "postgres" 2018-03-08 10:04:29 +11:00
Levko Kravets
517f95fa01 Better resize handling 2018-03-07 09:14:24 +02:00
Levko Kravets
d5ee9cd007 Use data from current record for tooltip and popup contents 2018-03-06 21:40:27 +02:00
Levko Kravets
5918253022 Add option to align legend text
Remove Leaflet attribution
2018-03-06 21:24:39 +02:00
Levko Kravets
2f30dbf645 getredash/redash#2317 Choropleth visualization 2018-03-06 20:42:48 +02:00
Arik Fraimovich
88deb5fc47 Merge pull request #2372 from kravets-levko/fix/dancing-widgets
Fix: dashboard "dancing" widgets (when auto-height enabled)
2018-03-06 15:07:14 +02:00
Levko Kravets
27c7e86297 Fix: dashboard "dancing" widgets (when auto-height enabled) 2018-03-06 14:42:15 +02:00
Arik Fraimovich
051f12c712 Fix tags regex in circle.yml 2018-03-05 12:37:31 +02:00
Arik Fraimovich
f9ab83ed80 Merge pull request #2369 from getredash/query-refresh
Add: configuration for query refresh intervals.
2018-03-05 11:28:40 +02:00
Arik Fraimovich
c24bfe82e0 Update changelog. 2018-03-05 11:22:49 +02:00
Arik Fraimovich
4f27de3252 Add: configuration for query refresh intervals. 2018-03-05 11:22:08 +02:00
Arik Fraimovich
bf86d17d56 Stop spamming Docker Hub 2018-03-04 15:36:14 +02:00
Arik Fraimovich
54e23a7c84 Update CHANGELOG and update version. 2018-03-04 15:11:54 +02:00
Arik Fraimovich
6049e2df17 Merge pull request #2356 from kravets-levko/fix/dashboard-auto-height
Dashboard fixes and improvements
2018-03-04 14:50:48 +02:00
Arik Fraimovich
025af41616 Merge pull request #2260 from Top20Talent/master
Extend the Prometheus query runner to support the range query
2018-03-04 10:57:30 +02:00
Arik Fraimovich
d80f93a59d Merge pull request #2355 from jezdez/glue-table-paginator-upstream
Use a paginator when iterating over glue tables
2018-03-04 10:56:56 +02:00
Arik Fraimovich
5aa4b28d53 Merge pull request #2354 from jezdez/redash-extensions
Add a Redash extension system based on Python entrypoints.
2018-03-04 10:56:08 +02:00
Arik Fraimovich
6a072dd33a Merge pull request #2363 from kravets-levko/bug/query-page-unscrollable
Query page long visualization is unscrollable
2018-03-04 10:53:33 +02:00
Levko Kravets
67995085c6 getredash/redash#2361 2018-03-02 13:12:45 +02:00
Levko Kravets
9295a9d8fb Dashboard: save only changed widgets 2018-03-01 16:28:34 +02:00
Levko Kravets
43cd24927f gridsterAutoHeight: disable auto-height when widget resized by user 2018-03-01 14:46:53 +02:00
Jannis Leidel
6b41644557 Add a Redash extension system based on Python entrypoints.
This is along the lines of what Flask does for CLI plugins:

  http://flask.pocoo.org/docs/0.12/cli/#cli-plugins

The API allows specifying Python callbacks that receive the
Redash Flask app as the only argument and allow extending
the Redash process with the usual Flask API as needed. This
does not cover front-end specific extensions (yet).
2018-02-28 23:37:03 +01:00
Blake Imsland
dceb58cd79 Use a paginator when iterating over glue tables
Without this you only get the first 100 tables in the glue database
2018-02-28 22:10:54 +01:00
Arik Fraimovich
570187fc1f Merge pull request #2353 from kocsmy/fixes/filter-spacing-on-dashboards
Fix small spacing glitch on dashboard widgets
2018-02-28 18:16:09 +02:00
Zsolt Kocsmarszky
ca4663e3a4 fix small spacing glitch on dashboard widgets 2018-02-28 17:08:55 +01:00
Arik Fraimovich
6e097d5cec Merge pull request #2352 from kravets-levko/bug/query-result-column-names
Cast column names to string
2018-02-28 17:08:28 +02:00
Arik Fraimovich
2c95231fd7 Merge pull request #2334 from tonyjiangh/feat/funnel_visualization
Add funnel visualization
2018-02-28 17:06:37 +02:00
Hao Jiang
0d80156eec Rename visualization options for review 2018-02-28 23:44:42 +09:00
Levko Kravets
08c709c2ec getredash/redash#1960 Cast column names to string; code style fixes 2018-02-28 13:28:15 +02:00
Arik Fraimovich
bb28b2f0fb Merge pull request #2350 from getredash/auth
Authentication related settings improvements
2018-02-28 12:16:11 +02:00
Arik Fraimovich
0e4313de52 Merge pull request #2349 from kravets-levko/fix/dashboard-issues
Fix/dashboard issues
2018-02-27 23:22:59 +02:00
Arik Fraimovich
e76e29df24 Merge pull request #2348 from kocsmy/fixes/prometheus-logo
Add missing prometheus and snowflake logos
2018-02-27 23:21:09 +02:00
Arik Fraimovich
d1062ce0c4 Properly generate login URLs. 2018-02-27 23:14:57 +02:00
Arik Fraimovich
9ddf3745b8 Configuration for Google Apps. 2018-02-27 23:10:10 +02:00
Arik Fraimovich
0eefc7b592 join array filter. 2018-02-27 23:09:21 +02:00
Arik Fraimovich
bea035025e Callout sections css. 2018-02-27 23:09:12 +02:00
Arik Fraimovich
33aa7b72b7 Enable debug mode for Flask. 2018-02-27 23:09:00 +02:00
Arik Fraimovich
ca54d23f92 Remove unused LESS code. 2018-02-27 23:08:43 +02:00
Levko Kravets
7d6244a322 Revisit default options; set auto-height for Table viz by default 2018-02-27 18:25:57 +02:00
Levko Kravets
f61a74bbee Fix: 'Cannot read property of null' JS error when going away from dashboard page 2018-02-27 18:25:21 +02:00
Levko Kravets
7d258908c6 getredash/redash#2108 Fix: length limit increased 2018-02-27 18:24:26 +02:00
Zsolt Kocsmarszky
0e53356589 add missing prometheus and snowflake logos 2018-02-27 16:52:33 +01:00
Hao Jiang
aa43dcdb2b Add hover text for full step name 2018-02-27 23:22:41 +09:00
Arik Fraimovich
093c48505a Merge pull request #2347 from kravets-levko/fix/download-dataset-dropup
Fix: download dataset dropup is being cut off
2018-02-27 15:30:57 +02:00
Levko Kravets
c19ef632aa Fix: download dataset dropup is being cut off 2018-02-27 15:24:37 +02:00
Arik Fraimovich
bb1455ec71 Merge pull request #2346 from getredash/auth
Authentication fixes (SAML and login page)
2018-02-26 21:11:52 +02:00
Arik Fraimovich
09af43c4a7 remove unnecessary test. 2018-02-26 20:57:21 +02:00
Arik Fraimovich
35594ecb00 Always show login page and generate URLs with url_for.
Close #1259, #2235.
2018-02-26 20:46:27 +02:00
Arik Fraimovich
3044c77309 Make SAML work in MULTI_ORG mode. 2018-02-26 20:40:28 +02:00
Hao Jiang
0632044573 Handle corner cases 2018-02-26 22:21:05 +09:00
jubel
e6551e9774 remove the type 2018-02-26 14:58:30 +08:00
Arik Fraimovich
11d09b2f09 Fix empty-state logic for MULTI_ORG mode 2018-02-25 11:49:07 +02:00
Arik Fraimovich
8676b846c2 Add support for symlinks in webpack config 2018-02-25 11:13:54 +02:00
Arik Fraimovich
d4f98aa7f7 Merge pull request #2337 from ariarijp/upgrade-sqlparse
Upgrade sqlparse to 0.2.4
2018-02-24 21:29:08 +02:00
Arik Fraimovich
35458e846c Merge pull request #2338 from kravets-levko/fix/table-columns-nowrap
Custom CSS based on column type
2018-02-24 21:28:10 +02:00
jubel
49e9133fed style adjustment 2018-02-24 16:35:10 +08:00
Levko Kravets
5dd76674ff getredash/redash#2215 Custom CSS based on column type 2018-02-23 11:19:07 +02:00
Hao Jiang
8bdd5ff662 Fix sort order 2018-02-23 09:25:04 +09:00
Hao Jiang
9e68b36de6 Add support for selecting column to sort 2018-02-23 09:18:37 +09:00
Hao Jiang
e78bfb2e9a Add support for column mapping 2018-02-23 09:15:56 +09:00
ariarijp
f5d4ca85d8 Upgrade sqlparse to 0.2.4
Add test case for /api/queries/format
2018-02-23 01:24:34 +09:00
Arik Fraimovich
c65b637bc4 Merge pull request #2336 from kravets-levko/fix/settings-tabs-order
Explicitly set order of tabs on Settings page
2018-02-22 15:31:52 +02:00
Levko Kravets
062efe349f Explicitly set order of tabs on Settings page 2018-02-22 15:16:09 +02:00
Arik Fraimovich
696f46d64b Merge pull request #2252 from kocsmy/design/empty-states
Empty states for Home, Dashboards, Queries and Alerts
2018-02-22 11:26:13 +02:00
Arik Fraimovich
42b88d9a32 Ignore archived objects. 2018-02-22 11:04:13 +02:00
Arik Fraimovich
3a840fcc5d Implement empty states logic. 2018-02-22 11:02:12 +02:00
Hao Jiang
a333abcaa5 Use ColorPalette instead 2018-02-22 08:44:39 +09:00
Hao Jiang
d583f6f273 Add funnel visualization 2018-02-21 22:41:31 +09:00
Arik Fraimovich
a1aeb1d614 Merge pull request #2330 from getredash/arikfr-patch-1
Sort widgets by col/row to make sure they are placed correctly
2018-02-21 14:49:10 +02:00
Arik Fraimovich
bd13b78e21 Merge pull request #2320 from kravets-levko/bug/few-bugfixes
Few bugfixes
2018-02-20 22:41:05 +02:00
Arik Fraimovich
4d44be76ac Create <empty-state> component. 2018-02-20 22:29:07 +02:00
Levko Kravets
8cd758cfb6 Update 'absoluteUrl' function 2018-02-20 22:13:48 +02:00
Arik Fraimovich
9a1077d192 Merge branch 'master' into design/empty-states 2018-02-20 21:09:43 +02:00
Arik Fraimovich
bc4f174e22 Sort widgets by col/row to make sure they are placed correctly 2018-02-20 20:45:32 +02:00
Levko Kravets
046595825c Rename: fullUrl -> absoluteUrl 2018-02-19 23:19:03 +02:00
Arik Fraimovich
e0c5eabdd5 Merge pull request #2324 from kravets-levko/bug/type-of-first-table
User shouldn't be able to change the type of the first table
2018-02-19 23:07:26 +02:00
Arik Fraimovich
06e9d192ef Merge pull request #2325 from benmanns/patch-1
Reduce restart to unless-stopped for Redis and Postgres
2018-02-19 22:33:43 +02:00
Arik Fraimovich
906c8fc767 Merge pull request #2282 from kocsmy/design/improve-default-visualisation-colors
Improve visualisation colors
2018-02-19 22:32:37 +02:00
Benjamin Manns
6149e00c2f Reduce restart to unless-stopped for Redis and Postgres
`restart: always` will cause containers to restart when the machine is rebooted or the docker process restarts. Setting this to `unless-stopped` will mean the container will restart only if the docker process/computer was rebooted without stopping the container first. Otherwise, running `docker-compose stop` and rebooting will cause the docker containers all to start again (and goodbye laptop battery!)

We might also consider `restart: on-failures` which would mean that rebooting would _not_ cause containers to start again unless requested via `docker-compose up`.
2018-02-19 11:07:02 -05:00
Zsolt Kocsmarszky
b053770998 less vivid colors fo charts 2018-02-18 19:55:00 +01:00
Zsolt Kocsmarszky
45b380ca00 Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-18 18:05:56 +01:00
Arik Fraimovich
631dad11d6 Merge pull request #2319 from kravets-levko/feature/server-pages-redesign
Redesign of all pages that are rendered by backend code
2018-02-18 14:53:49 +02:00
Levko Kravets
9647c37285 getredash/redash#2312 2018-02-18 14:08:44 +02:00
Zsolt Kocsmarszky
9e5f749556 Change default visualization colors 2018-02-17 18:21:11 +01:00
Zsolt Kocsmarszky
c69795c0cd Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-17 17:47:02 +01:00
Levko Kravets
339f5537c6 Remove code related to hidden text widgets + UI improvements 2018-02-16 21:25:29 +02:00
Levko Kravets
d2c5be5bd5 Replace with window.location 2018-02-16 21:04:45 +02:00
Levko Kravets
21b753f9b5 Bug fixed: empty page when trying to open public dashboard 2018-02-16 20:59:53 +02:00
Levko Kravets
a28a6ea127 Bug: Invite user / Reset password links should be full (include shema and host) 2018-02-16 20:39:18 +02:00
Levko Kravets
38da3e9fef Add SSO login buttons to invite user page; UI fixes 2018-02-16 13:32:40 +02:00
Levko Kravets
f1aad2545e redesign of all pages that are rendered by backend code 2018-02-15 21:49:11 +02:00
Arik Fraimovich
927599cf00 Mark current version as v4-beta 2018-02-14 17:06:51 +02:00
Arik Fraimovich
eae3b1dc0f Update changelog for v4 2018-02-14 16:26:44 +02:00
Arik Fraimovich
d6cc7489b1 Merge pull request #2311 from kravets-levko/feature/add-widget-dialog-update
Add Widget Dialog UX Update
2018-02-14 12:52:12 +02:00
Arik Fraimovich
1b6aaeb663 Merge pull request #2314 from kocsmy/design/add-csv-image
Add CSV image for data source images
2018-02-14 10:17:24 +02:00
yuua
edd709838d Fix: pyHive type matches 2018-02-14 11:52:17 +09:00
Zsolt Kocsmarszky
5e72e6bf1a add CSV image 2018-02-14 00:54:39 +01:00
Levko Kravets
fa03e12b96 getredash/redash#2214 CR1 2018-02-13 23:39:10 +02:00
Arik Fraimovich
adb6a1adee Merge pull request #2313 from kravets-levko/bug/cannot-remove-widgets
Fix: widget is not removed from dashboard, only after page refresh
2018-02-13 22:47:30 +02:00
Levko Kravets
8ec0cda10b Fix: widget is not removed from dashboard, only after page refresh 2018-02-13 21:53:21 +02:00
Levko Kravets
41789fa1db getredash/redash#2214 Add Widget Dialog UX Update 2018-02-13 20:47:30 +02:00
Arik Fraimovich
17f3b1e92d Merge pull request #1692 from kakakakakku/fix-redis-metrics
Fixed monitoring metrics for Redis
2018-02-11 15:54:58 +02:00
Arik Fraimovich
aa06e44ff8 Merge pull request #2099 from ariarijp/fix/create_db
Fix create_db command of docker-entrypoint
2018-02-11 15:48:56 +02:00
Arik Fraimovich
94295788ec Merge pull request #2248 from sjakthol/multiorg-header-login
feat: make trusted header authentication compatible with multiorg mode
2018-02-11 15:41:46 +02:00
Arik Fraimovich
5aa620d1ec Merge pull request #2309 from getredash/fix_params
Add: API to return events
2018-02-11 12:11:32 +02:00
Arik Fraimovich
2560d887f0 Fix import call 2018-02-11 12:04:12 +02:00
Arik Fraimovich
f14388f770 Require admin for events GET call. 2018-02-11 11:57:46 +02:00
Arik Fraimovich
7e4cb4c543 Add: API to return events 2018-02-11 11:56:10 +02:00
Arik Fraimovich
953efc472f Merge pull request #2308 from getredash/fix_params
Fix: parameters list was resetting when adding a new parameter
2018-02-11 11:55:47 +02:00
Arik Fraimovich
5343dd9acf Fix: parameters list was resetting when adding a new parameter 2018-02-11 11:48:12 +02:00
Arik Fraimovich
29c675b553 Update RDS CA bundle 2018-02-11 11:40:56 +02:00
Arik Fraimovich
e328b783f3 Make the S3 staging path label mention query results 2018-02-11 10:26:25 +02:00
Arik Fraimovich
e183b51702 Merge pull request #2307 from getredash/mognodb_nested_fields
Add an option to set a common prefix to the backend logs.
2018-02-10 22:09:39 +02:00
Arik Fraimovich
a82239d719 Add an option to set a common prefix to the backend logs. 2018-02-10 22:08:01 +02:00
Arik Fraimovich
12f9c1a159 Merge pull request #2306 from getredash/mognodb_nested_fields
Add Prometheus to the default query runners list.
2018-02-10 22:06:42 +02:00
Arik Fraimovich
037f8b7183 Add Prometheus to the default query runners list. 2018-02-10 22:05:59 +02:00
Arik Fraimovich
ce69d3069b Merge pull request #2305 from getredash/mognodb_nested_fields
Update botocore version to support Glue
2018-02-10 22:05:52 +02:00
Arik Fraimovich
66a8941a23 Update botocore version to support Glue 2018-02-10 22:04:36 +02:00
Arik Fraimovich
94a770ae7a Merge pull request #2304 from getredash/mognodb_nested_fields
Close #1199: support for nested fields in MongoDB results
2018-02-10 22:03:04 +02:00
Arik Fraimovich
0bbfa8bb8e remove whitespaces 2018-02-10 22:00:55 +02:00
Arik Fraimovich
5ad893a266 Close #1199: support for nested fields in MongoDB results 2018-02-10 21:55:06 +02:00
Arik Fraimovich
790ac2ec54 Merge pull request #2303 from kravets-levko/fix/webpack-config-3
Fix webpack config (server-rendered pages); fix assets URLs
2018-02-09 22:34:32 +02:00
Levko Kravets
ceb1c62528 Fix webpack config (server-rendered pages); fix assets URLs 2018-02-09 19:16:48 +02:00
Arik Fraimovich
e460c18d4a Merge pull request #2301 from kravets-levko/fix/webpack-config-2
Fix webpack config and some assets URLs
2018-02-08 20:27:06 +02:00
Levko Kravets
182d2d040e Fix config; fix assets URLs 2018-02-08 16:39:36 +02:00
Levko Kravets
878908cbf7 Fix webpack config and some assets URLs 2018-02-08 14:07:26 +02:00
Arik Fraimovich
f703a602f0 Merge pull request #2266 from javier-sanz/quotedPasswords
Url password can have quoted special characters.
2018-02-08 11:49:24 +02:00
Arik Fraimovich
07d8babab4 Merge pull request #2296 from getredash/webpack
Assets serving changes
2018-02-08 11:39:36 +02:00
Arik Fraimovich
5e97834b80 Fix upgrade script to support CI builds 2018-02-08 11:35:12 +02:00
Arik Fraimovich
943dcf1da3 Merge pull request #2281 from kravets-levko/feature/cohort-improvements
Cohort visualization improvements
2018-02-08 11:27:35 +02:00
Arik Fraimovich
4090875fcd Merge pull request #2257 from kocsmy/design/error-pages
Error screens
2018-02-08 09:38:05 +02:00
Arik Fraimovich
e69f8fa009 Show standard error messages. 2018-02-08 09:33:03 +02:00
Arik Fraimovich
d6eb8f436f Handle unknown routes in Angular by showing Page Not Found error 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
69b3ea4715 Rearrange the error-state box and place it middle 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
8f52f51e91 Fix content to center 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
a668416dae Nicer error message and box with icon 2018-02-08 09:33:03 +02:00
Arik Fraimovich
96ad3aaa25 Use jQuery from npm packages 2018-02-07 23:08:03 +02:00
Arik Fraimovich
4e5c425932 Merge pull request #2297 from kravets-levko/bug/filter-dropdown
Filters dropdown is "trapped" inside the widget area
2018-02-07 21:09:01 +02:00
Arik Fraimovich
549416694f Fix: login_required decorator was misplaced 2018-02-07 21:07:04 +02:00
Levko Kravets
9532540b54 getredash/redash#2295 2018-02-07 20:22:02 +02:00
Arik Fraimovich
a6cf7643c9 Fix webpack-dev-server setup 2018-02-07 17:18:38 +02:00
Arik Fraimovich
568b3e392b Switch back to single assets path. 2018-02-07 16:43:48 +02:00
Arik Fraimovich
40ffa349f0 Load all assets from a single directory (Webpack's output path). Also make sure all assets URLs are prefixed with /static/ and remove our custom assets serving handler. 2018-02-07 16:43:25 +02:00
Arik Fraimovich
95f4d993b7 Added webpack-manifest plugin 2018-02-07 14:15:21 +02:00
Levko Kravets
f303bc7f53 getredash/redash#2163 CR1 2018-02-07 11:04:47 +02:00
Zsolt Kocsmárszky
d81af63f24 Merge pull request #2291 from kravets-levko/fix/query-refresh-schedule
Make "refresh schedule" part of the rest of the query metadata
2018-02-06 12:31:21 +01:00
Arik Fraimovich
722678f6d1 Merge pull request #2278 from getredash/dashboards_migrations
Move widget position logic migration to the backend and remove some unused code.
2018-02-06 08:44:31 +02:00
Arik Fraimovich
c0778809ab Merge pull request #2288 from kocsmy/design/new-user-layout
New user layout improvement
2018-02-05 13:41:43 +02:00
Arik Fraimovich
8679cfefbf Merge pull request #2289 from kocsmy/design/visualisation-editor-improvements
Improve visualisation editor
2018-02-05 13:37:35 +02:00
Levko Kravets
5064744f8b getredash/redash#2279 2018-02-05 13:35:50 +02:00
Arik Fraimovich
ce15f5665c Merge pull request #2290 from kravets-levko/bug/table-html-escape
Don't escape values in non-html mode
2018-02-05 13:12:44 +02:00
Levko Kravets
8d973d847d getredash/redash#1731 Don't escape values in non-html mode 2018-02-05 13:04:11 +02:00
Zsolt Kocsmarszky
fd030e4d77 Further improve design details 2018-02-05 02:22:05 +01:00
Zsolt Kocsmarszky
6d12794c96 better layout for the visualisation editor 2018-02-05 02:14:30 +01:00
Zsolt Kocsmarszky
af4ecb5085 Nicer layout for add user + typoe fix 2018-02-05 01:52:31 +01:00
Arik Fraimovich
a5904a6e50 Merge pull request #2287 from kravets-levko/feature/table-link-column
Table visualization: "Link" column type
2018-02-04 15:26:17 +02:00
Levko Kravets
361b68d857 Table viz: Link column CR1 2018-02-04 15:25:39 +02:00
Levko Kravets
55d47ede08 Table viz: Link column type 2018-02-04 15:06:08 +02:00
Arik Fraimovich
d97b8d0958 Cast totalBytesProcessed to int. 2018-02-03 21:14:50 +02:00
Zsolt Kocsmarszky
2ed446be80 less neon green 2018-02-02 22:41:47 +01:00
Arik Fraimovich
178f46e5b1 Merge pull request #2284 from getredash/bigquery
Improvements to BigQuery query runner
2018-02-02 23:19:51 +02:00
Arik Fraimovich
d01dfe4bf7 BigQuery: show amout of data scanned. 2018-02-02 23:18:27 +02:00
Arik Fraimovich
2f8db2531f BigQuery: properly handle RECORD fields (show nested fields).
Closes #1413.
2018-02-02 23:18:04 +02:00
Sami Jaktholm
4a719fcb39 followup: coding style fixes to tests 2018-02-02 20:17:53 +02:00
Sami Jaktholm
a96b0b6e4c feat: make trusted header authentication compatible with multiorg mode
The previous implementation of remote header login did not
support the multiorg mode of Re:Dash. These changes modify
the trusted header authentication to expose a per-organization
login endpoint that logs users in the specified organization.

The feature itself is not that interesting as multiorg is pretty
much impossible to use in a standalone Re:Dash installation. What's
more interesting is that all tests are executed in multiorg mode. It's
not possible to write tests for the trusted header authentication if
the method does not support multiorg mode.

To make benefits of these changes more concrete, some tests were
written to test the basic functionality of trusted header
authentication.
2018-02-02 20:17:53 +02:00
Arik Fraimovich
daea3337b0 Merge pull request #2283 from kravets-levko/feature/table-image-column
Table visualization: "Image" column type
2018-02-02 17:32:05 +02:00
Levko Kravets
868944bd91 getredash/redash#2138 Table viz: Image column type 2018-02-02 16:34:09 +02:00
Zsolt Kocsmarszky
caf0070d14 Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-01 22:35:01 +01:00
Zsolt Kocsmarszky
c9b28785fb Improve visualisation colors 2018-02-01 22:32:30 +01:00
Levko Kravets
af7fb278e8 Cohort viz: add Mode option and two rendering modes; options to map columns; UI tweaks 2018-02-01 18:16:00 +02:00
Arik Fraimovich
34d22ee418 Merge pull request #2245 from kocsmy/design/query-round-3
Further Query Improvements
2018-02-01 14:47:41 +02:00
Arik Fraimovich
33b4c7c4c3 Move widget position logic migration to the backend and remove some unused code.
Closes #2218.
2018-02-01 14:40:40 +02:00
Arik Fraimovich
a6f3873059 Merge pull request #2247 from sjakthol/saml-groups-fix
fix: commit saml user group assignment to the database
2018-02-01 14:29:34 +02:00
Arik Fraimovich
aa60554389 Merge pull request #2249 from sjakthol/saml-settings-form-fix
fix: update correct settings in saml settings form
2018-02-01 14:25:14 +02:00
Arik Fraimovich
6f7e95d419 Merge pull request #2267 from alexdrans/es_source_content_type_fix
Setting source_content_type on ES queries
2018-02-01 14:23:52 +02:00
Arik Fraimovich
4c7a0cdc3b Merge pull request #2270 from jezdez/celery-3.1.25
Upgrade to Celery 3.1.25 in preparation to Celery 4.
2018-02-01 14:21:26 +02:00
Arik Fraimovich
bbfad16712 Merge pull request #2277 from kocsmy/fixes/widget-parameter-padding
Fix bottom spacing for widget parameter section
2018-02-01 09:19:23 +02:00
Zsolt Kocsmarszky
94d47abee6 Remove code duplicate 2018-01-31 22:07:29 +01:00
Zsolt Kocsmarszky
75c94c2cbd Fix parameter bottom spacing on widgets 2018-01-31 22:06:10 +01:00
Javier Sanz Olivera
44c2526da2 Fixing style 2018-01-31 16:07:23 +01:00
Javier Sanz Olivera
c05e4b7366 Adapting code to redish style plus added the field to the helper 2018-01-31 16:03:50 +01:00
Arik Fraimovich
77eeba264f Merge pull request #2276 from kravets-levko/fix/insert-shema-node-by-click
Insert schema node by click - fixes
2018-01-31 17:02:44 +02:00
Levko Kravets
bbe11f597c Insert only column name; save cursor position 2018-01-31 16:57:55 +02:00
Levko Kravets
3950c9e5e6 Move scrollbars from right-side area to visualization area 2018-01-31 13:39:40 +02:00
Levko Kravets
6839976312 Fix bug: query editor did not restore its size after toggle 2018-01-31 13:35:40 +02:00
Levko Kravets
7fa765911f Remove unused styles 2018-01-31 13:35:40 +02:00
Levko Kravets
d5acf48161 getredash/redash#2234 Toggle resizable blocks 2018-01-31 13:35:40 +02:00
Levko Kravets
dfc9c5d02b getredash/redash#2234 CR1 2018-01-31 13:35:40 +02:00
Levko Kravets
d2c80e96f7 getredash/redash#2234 Improve query page markup + add scrollbars for each region 2018-01-31 13:35:40 +02:00
Zsolt Kocsmarszky
34a2d5fdc4 Move publish button the visible area 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
936144f6a0 attach people data to the bottom too 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
bacddea809 smaller padding fix 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
5404cc6377 fix schema editor on smaller screens 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
9c28948d5c make schema browser fill up the space 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
797393727d Attach refresh tot he bottom 2018-01-31 13:28:46 +02:00
Arik Fraimovich
2655dbe939 Merge pull request #2275 from kravets-levko/bug/insert-node-update-model
Query editor insert node from schema browser update ngModel
2018-01-31 13:09:25 +02:00
Levko Kravets
c2de59ca33 Query editor insert node from schema browser - update ng-model 2018-01-31 13:04:15 +02:00
Arik Fraimovich
a5c954a954 Merge pull request #2273 from kravets-levko/bug/dashboard-dropdown
Open "Refresh" dropdown to the left
2018-01-31 12:13:07 +02:00
Levko Kravets
b6827bb8c2 getredash/redash#2272 Open dropdown to the left 2018-01-31 11:49:25 +02:00
Arik Fraimovich
5dde17e421 Merge pull request #2269 from kravets-levko/fix/remove-progress-when-query-param-changes
Remove loading indicator when updating query parameter value (before executing)
2018-01-31 11:28:07 +02:00
Levko Kravets
06b5b09b86 getredash/redash#2161 Remove loading indicator when query params changed 2018-01-30 21:06:15 +02:00
Jannis Leidel
7b82203fb1 Upgrade to Celery 3.1.25 in preparation to Celery 4.
To prepare for a future Celery upgrade to verson 4.x this upgrades
Redash to 3.1.25 which includes support for Celery's task protocol 2.
It's the first of two steps to get Redash upgraded to Celery 4.x.

3.1.4 release notes: http://docs.celeryproject.org/en/3.1/changelog.html#version-3-1-24
4.0 release notes regarding the two-step-upgrade approach: http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#step-1-upgrade-to-celery-3-1-25
2018-01-30 19:22:33 +01:00
Arik Fraimovich
e2042b13b0 Merge pull request #2268 from getredash/dashboard-refresh-interval
Make dashboard refresh intervals configurable
2018-01-30 13:49:19 +02:00
Arik Fraimovich
a557d9fa70 Make dashboard refresh intervals configurable 2018-01-30 13:46:19 +02:00
Alex Dransfield
21d14c5388 Setting source_content_type on ES queries 2018-01-30 11:02:01 +00:00
Javier Sanz Olivera
e605176673 Fixing style issue. 2018-01-30 01:19:03 +01:00
Javier Sanz Olivera
4a8a23768f Fixing build and some style issues. 2018-01-30 01:15:17 +01:00
Javier Sanz Olivera
11d4fb4dbe Password can be None 2018-01-30 01:07:51 +01:00
Javier Sanz Olivera
a948544d4c Removing unused import. 2018-01-30 00:52:11 +01:00
Javier Sanz Olivera
cf7d04332b Reverting unquote helper change. 2018-01-30 00:51:13 +01:00
Javier Sanz Olivera
c614ff4a15 Url password can have quoted special characters. 2018-01-30 00:37:30 +01:00
Arik Fraimovich
817f2ba9af Merge pull request #2156 from kravets-levko/feature/revisit-chart
Revisit Plotly integration
2018-01-29 16:48:37 +02:00
Levko Kravets
862bc947f7 getredash/redash#2117 CR7 2018-01-29 12:44:43 +02:00
Arik Fraimovich
d38a443053 Merge pull request #2246 from kyoshidajp/enable_list_query
[WIP]Enable list query by one character when adding widget on Dashboard
2018-01-28 14:09:09 +02:00
Arik Fraimovich
c7284d6662 Merge pull request #2264 from kocsmy/design/pivot-table
Improved pivot table design
2018-01-28 13:58:40 +02:00
Arik Fraimovich
76d8613d3e Merge pull request #2219 from kocsmy/design/new-dashboard-creation
Improve dashboard editing flow
2018-01-28 13:18:39 +02:00
Arik Fraimovich
3aee4e9ed8 remove second add-widget-container 2018-01-28 13:17:55 +02:00
Arik Fraimovich
4029821e93 Properly handle dashbaords filters toggle. 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
5a9b86ff69 make button texts consistent with queries 2018-01-28 12:37:35 +02:00
Arik Fraimovich
c7dbe07b33 Single dashboard editing mode. 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
a98eff8901 improve widget description 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
b090b6b9dc Only render parameters div if we have parameters 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
dd3916672a Wider add widget section for dashboards 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
f7512f18f6 Fix schema hover on sub-items 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
cfb4a1c4f7 Simplify markup and add more styling for add new widget box 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
4b74ab361a Styling improvements + show buttons in the right context 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
977608198e position: sticke for dashboard-header 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
7b62ee8715 Add extra header class and fixed styling 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
80e07c6cf9 add ng-if to hide and show sections accordingly 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
043a1eedcf Add missing class for consistency 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d95c9565f3 plenty of dashboard, filter and parameter fixes (still not the best, it's very messy here) 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
84532f84ac Improve dashboard widget creation and publish process with multiple design improvements 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d9892f852b add new widget to the bottom of the dashboard 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d6847201e5 Optimise and remove unnecessary code 2018-01-27 13:52:07 +01:00
Zsolt Kocsmarszky
b6ac96ef72 various styling improvements for pivot table to match current design direction 2018-01-27 11:31:31 +01:00
jubel
135af39fd4 support the range query of until now 2018-01-26 14:22:27 +08:00
jubel
8a2676701b extend the prometheus query runner to support the range query 2018-01-26 13:16:28 +08:00
Arik Fraimovich
060fe1dd9c Merge pull request #2259 from shinji19/master
Fix google oauth login for multi organization
2018-01-25 19:54:43 +02:00
SHINJI ICHIHARA
01a7b4eca8 Fix google_auth login for organization 2018-01-26 02:06:31 +09:00
Arik Fraimovich
ba0b9da09f Fix syntax errors. 2018-01-25 12:39:47 +02:00
Zsolt Kocsmarszky
e97fd7da5b add spacing between empty state window and content 2018-01-23 15:28:43 +01:00
Zsolt Kocsmarszky
3477a5540a add icons and fix smaller screen layout 2018-01-23 15:27:24 +01:00
Arik Fraimovich
61a0aaa858 Merge pull request #2250 from getredash/ds_ui_select
Use ui-select for data source picker for consistent style across browsers
2018-01-23 09:46:21 +02:00
Zsolt Kocsmárszky
1b03785a24 Merge pull request #2253 from kocsmy/fixes/queries-search-page-fixed-layout
Fix width for queries/search page as well
2018-01-22 22:43:21 +01:00
Zsolt Kocsmarszky
2c3052eaaa Fix width for queries/search page as well 2018-01-22 22:34:38 +01:00
Zsolt Kocsmarszky
490c8f38d8 Make section full width, remove double titles and minor styling improvements 2018-01-22 22:24:30 +01:00
Zsolt Kocsmarszky
5c5c08ae39 Add empty states for home, dashboards, queries and alerts 2018-01-22 22:03:06 +01:00
Zsolt Kocsmárszky
1ac9e6ee4c Merge pull request #2251 from yoavbls/master
Add mapd, oracle and qubole images
2018-01-22 16:37:47 +01:00
Your Name
1f99cd9e55 Add mapd, oracle and qubole images 2018-01-21 01:17:51 +02:00
Arik Fraimovich
b977526b93 Use ui-select for data source picker for consistent style across browsers 2018-01-20 20:51:01 +02:00
Sami Jaktholm
6dacfaffc7 fix: update correct settings in saml settings form
The entity_id and nameid_format form fields didn't work as they
tried to save a setting with an incorrect name. This has now
been fixed and the form can be used to configure these values.

A short debounce delay was also added to the form to avoid
saving the value after every keystroke (if values are inputted
manually).
2018-01-20 17:31:49 +02:00
Sami Jaktholm
fe2772e9db fix: commit saml user group assignment to the database
Relevant tests were also modified to reload the user
object from the database before asserting that the
user belongs to correct groups.

Fixes #1668.
2018-01-20 15:19:03 +02:00
Katsuhiko YOSHIDA
55c4bb16e2 Enable list query by one character 2018-01-20 12:10:17 +09:00
Levko Kravets
92091bf628 Resolve conflicts with master 2018-01-19 19:39:43 +02:00
Levko Kravets
18b30d6baa getredash/redash#2117 CR6 2018-01-19 19:30:53 +02:00
Levko Kravets
084a2f8806 getredash/redash#2117 CR5 2018-01-19 19:30:53 +02:00
Levko Kravets
c5acf6580c getredash/redash#2117 CR4 2018-01-19 19:30:53 +02:00
Levko Kravets
4f4411a46a getredash/redash#2117 CR3 2018-01-19 19:30:53 +02:00
Levko Kravets
2eaec6970e getredash/redash#2117 CR2 2018-01-19 19:30:53 +02:00
Levko Kravets
30836e76d2 getredash/redash#2117 CR1 2018-01-19 19:30:53 +02:00
Levko Kravets
4547b8b735 getredash/redash#2117 Annotations 2018-01-19 19:30:53 +02:00
Levko Kravets
0cefed7108 getredash/redash#2117 Fix line/area stacking; UI improvements 2018-01-19 19:30:53 +02:00
Levko Kravets
878dc91edb getredash/redash#2117 Optimize code, add more stacking options, fix percent stacking bugs 2018-01-19 19:30:53 +02:00
Levko Kravets
249b78c202 getredash/redash#2117 Revisit Plotly integration 2018-01-19 19:30:53 +02:00
Arik Fraimovich
a4d9ed5418 Merge pull request #2231 from kravets-levko/feature/wide-table
100%-wide results table
2018-01-19 19:01:14 +02:00
Arik Fraimovich
0207449162 Merge pull request #2244 from kocsmy/fixes/python-logo
Add missing python logo
2018-01-19 15:42:12 +02:00
Zsolt Kocsmarszky
2e7b1b4066 Add missing python logo 2018-01-19 13:29:10 +01:00
Arik Fraimovich
7ef94c82f4 Update ISSUE_TEMPLATE.md 2018-01-18 20:17:31 +02:00
Arik Fraimovich
4f1d46cb59 Update ISSUE_TEMPLATE.md 2018-01-18 20:16:50 +02:00
Arik Fraimovich
a1473d6dda Make it clearer people should use the forum. 2018-01-18 20:15:45 +02:00
Arik Fraimovich
0efdd479d6 Merge pull request #2225 from kravets-levko/feature/insert-schema-doubleclick
Insert schema node into editor by click
2018-01-18 16:07:05 +02:00
Arik Fraimovich
c2e28b21cf Merge pull request #2185 from kocsmy/design/new-data-source+query-editor
Design/new data source+query editor
2018-01-18 16:05:22 +02:00
Levko Kravets
7d5bcb8dbf getredash/redash#2215 100%-wide results table 2018-01-18 12:26:49 +02:00
Levko Kravets
c0d86c2766 Rename event to be more generic 2018-01-17 22:26:31 +02:00
Arik Fraimovich
dcf867e4c5 Merge pull request #2226 from kravets-levko/feature/dashboard-remove-embed-related-code
Remove ?embed-related code in public dashboards
2018-01-17 21:08:25 +02:00
Levko Kravets
5dc01f762f Replace double-click with icon+single click 2018-01-16 18:26:46 +02:00
Zsolt Kocsmarszky
11cfc66cef Add Redash styling to editor 2018-01-15 22:52:54 +01:00
Levko Kravets
f5ed122430 getredash/redash#1940 Remove ?embed-related code in public dashboards 2018-01-15 20:33:41 +02:00
Zsolt Kocsmarszky
612710f37c Fix Firefox issue 2018-01-14 21:29:57 +01:00
Zsolt Kocsmarszky
ca69a24729 cleanup css 2018-01-14 21:14:40 +01:00
Zsolt Kocsmarszky
45c75a81e6 Smaller fixes for smaller screens 2018-01-14 21:12:57 +01:00
Zsolt Kocsmarszky
e04729a381 Plenty of improvements based on #2185 comments 2018-01-14 19:31:18 +01:00
Zsolt Kocsmarszky
7ba5cc51e3 move updated at time to the right 2018-01-14 18:03:21 +01:00
Levko Kravets
c65597b35d Fix code style 2018-01-14 14:03:50 +02:00
Levko Kravets
6c4023289e Insert schema path into editor by double click 2018-01-14 14:01:49 +02:00
kakakakakku
ee2acc81ff Fixed monitoring metrics for Redis 2018-01-14 00:51:39 +09:00
Arik Fraimovich
3aa3f7f08d Merge pull request #2221 from mozilla/search-result-sort
correctly sort search result columns
2018-01-12 22:42:25 +02:00
Arik Fraimovich
a6e05e0419 Merge pull request #2222 from kakakakakku/rename-elasticsearch
Renamed to "Elasticsearch"
2018-01-12 22:41:16 +02:00
Arik Fraimovich
7e2a14e496 Merge pull request #2223 from shigemk2/license-2018
It's 2018 now ! 🎉
2018-01-12 15:54:06 +02:00
Michihito Shigemura
30cc0cc1a4 It's 2018 now ! 🎉 2018-01-12 19:08:33 +09:00
kakakakakku
cf436e45a4 Renamed to "Elasticsearch" 2018-01-12 17:18:57 +09:00
Allen Short
3b2b27a883 correctly sort search result columns 2018-01-12 03:47:35 +00:00
Arik Fraimovich
691dc6a24c Merge pull request #2041 from jezdez/fulltext-search
Add full text search for queries based on the Postgres tsvector type.
2018-01-11 20:46:33 +02:00
Arik Fraimovich
75d0d2d588 Show data scanned property when available 2018-01-11 18:14:50 +02:00
Arik Fraimovich
bc29c12b4f Properly handle 1row 2018-01-11 17:51:32 +02:00
Arik Fraimovich
ceb966ad63 Merge branch 'master' into design/new-data-source+query-editor 2018-01-11 15:54:36 +02:00
Arik Fraimovich
44770b3fd7 Merge pull request #2101 from ariarijp/fix/script_query_runner
Strip annotation from query when path is specified in Script Query Runner
2018-01-11 15:05:36 +02:00
Zsolt Kocsmarszky
98d0f05a31 Merge branch 'design/new-data-source+query-editor' of https://github.com/kocsmy/redash into design/new-data-source+query-editor 2018-01-09 22:31:14 +01:00
Zsolt Kocsmarszky
f3014f5291 Further styling fixes 2018-01-09 22:30:23 +01:00
Arik Fraimovich
3a413b53be Fix: embed/edit buttons were not working 2018-01-09 23:18:39 +02:00
Zsolt Kocsmarszky
6ce8883c37 More descriptive button text for edit visualisation 2018-01-09 22:07:25 +01:00
Zsolt Kocsmarszky
ffbf24534f Fix minor styling issues 2018-01-09 18:49:54 +01:00
Zsolt Kocsmarszky
28cc7eaa90 Attach result controls to the bottom of the query page 2018-01-09 18:32:21 +01:00
Zsolt Kocsmarszky
5189e6d3d1 Overwrite instead of writing new code 2018-01-09 17:39:23 +01:00
Zsolt Kocsmarszky
d24a5bdd83 Smaller screen improvements for new data source flow 2018-01-09 15:52:22 +01:00
Zsolt Kocsmarszky
192ddd248b Better required * indication without red color 2018-01-09 15:37:19 +01:00
Zsolt Kocsmarszky
7c4b66b1b5 Rename show / hide source 2018-01-09 14:55:24 +01:00
Arik Fraimovich
cbe76f656f Merge pull request #2204 from mozilla/data-scanned
Report amount of data scanned for Athena queries
2018-01-09 14:56:11 +02:00
Arik Fraimovich
3359ab24af Mark required fields in dynamic forms 2018-01-09 12:57:35 +02:00
Arik Fraimovich
5b938f2c3e Add layouts support. 2018-01-09 12:06:46 +02:00
Jannis Leidel
9f6b4fbdf2 Add full text search for queries based on the Postgres tsvector type. 2018-01-08 22:46:53 +01:00
Arik Fraimovich
55b852f8ee Hide query metadata for unsaved queries 2018-01-08 23:16:08 +02:00
Arik Fraimovich
efede57931 Update org settings layout 2018-01-08 23:14:01 +02:00
Arik Fraimovich
2859c46459 Merge pull request #2205 from sjakthol/redshift-sslmode
Make Redshift sslmode configurable
2018-01-08 11:34:26 +02:00
Zsolt Kocsmarszky
c0fb51f6a5 Multiple styling fixes 2018-01-07 22:53:55 +01:00
Zsolt Kocsmarszky
c1208989a2 Refine logos + the header of 2nd step for adding new data source 2018-01-07 22:22:02 +01:00
Zsolt Kocsmarszky
46061a01c1 Merge branch 'master' into design/new-data-source+query-editor
# Conflicts:
#	package.json
2018-01-07 21:48:56 +01:00
Zsolt Kocsmarszky
a3dec53275 Replacing icons 2018-01-07 21:45:41 +01:00
Arik Fraimovich
ef202e75b9 Close #2159: special tab for your own user profile 2018-01-07 14:13:57 +02:00
Sami Jaktholm
1d188875a9 make Redshift sslmode configurable
This makes it possible to configure Redash to require TLS
and verify the certificate Redshift presents.

The setting works similarly to that of the PostgreSQL source
except that Redshift explicitly passes 'prefer' to psycopg2
if sslmode is not configured (for compatibility).
2018-01-06 21:00:45 +02:00
Allen Short
09d4605635 Report amount of data scanned for Athena queries 2018-01-06 01:08:44 +00:00
Zsolt Kocsmarszky
d1de26ba0c Small screen fixes 2018-01-05 19:22:14 +01:00
Zsolt Kocsmarszky
eb9b3130ee Better aligned and spaced cards 2018-01-05 19:19:00 +01:00
Zsolt Kocsmarszky
9850908ef0 Fixing empty query resize issues 2018-01-05 19:11:05 +01:00
Zsolt Kocsmarszky
f23136542e Remove duplicate datasource selector 2018-01-05 19:04:24 +01:00
Zsolt Kocsmarszky
f6ac9c454c Multiple new data source and alert refinements for layout and styling 2018-01-05 18:45:50 +01:00
Arik Fraimovich
0c05102fe7 Merge pull request #2171 from mayconbordin/salesforce_api_version
Added API version to salesforce query runner
2018-01-05 19:11:35 +02:00
Arik Fraimovich
75af80c126 Merge pull request #2196 from kravets-levko/fix/error-handling
Fix to error handling mechanism: fail only on promise rejections
2018-01-05 19:11:06 +02:00
Arik Fraimovich
2231d1562c Update bootstrap script to use v3. 2018-01-05 18:57:15 +02:00
Zsolt Kocsmarszky
7d16cd2a0c Remove unnecessary classes 2018-01-05 15:22:17 +01:00
Zsolt Kocsmarszky
e29e4bf311 Make org settings layout better 2018-01-05 15:21:50 +01:00
Zsolt Kocsmarszky
f91bc2a505 add athena logo 2018-01-04 23:21:04 +01:00
Arik Fraimovich
ea1334ef6a Make results mode hide query editing parts 2018-01-04 20:51:22 +02:00
Arik Fraimovich
bae4016b3a Remove ng-app directive in query page 2018-01-04 19:10:44 +02:00
Arik Fraimovich
56ffb1f932 Update alert destination to use new design 2018-01-04 17:52:58 +02:00
Arik Fraimovich
3b14958515 Working data source setup pages 2018-01-04 16:12:56 +02:00
Arik Fraimovich
59af40fc30 Switch to dev.redashapp.com as the dev server 2018-01-04 14:23:36 +02:00
Arik Fraimovich
9afd23ab60 Use actual data source types + filtering 2018-01-04 14:23:25 +02:00
Arik Fraimovich
ca893a0e77 Rename db logos to their correct names 2018-01-04 14:22:58 +02:00
Arik Fraimovich
20c3ad2fea Merge branch 'master' into design/new-data-source+query-editor 2018-01-04 13:55:39 +02:00
Arik Fraimovich
6f76aec1e0 Merge pull request #2201 from kocsmy/fixes/fix-unsaved-query-alignment
simplifying the code and fixing alignment issues
2018-01-04 13:15:37 +02:00
Zsolt Kocsmarszky
57aa05f547 simplifying the code and fixing alignment issues 2018-01-04 12:12:02 +01:00
Arik Fraimovich
a6b90445cd Merge pull request #2200 from kocsmy/fixes/filter-headers
Fixing filter headers mixed
2018-01-04 13:02:53 +02:00
Levko Kravets
91d29cbbbe Fix to error handling: CR3 2018-01-04 12:44:51 +02:00
Zsolt Kocsmarszky
33a2271b1a Smaller styling improvements 2018-01-03 22:54:25 +01:00
Zsolt Kocsmarszky
2a3c75976f Refine styling and fixes 2018-01-03 22:33:47 +01:00
Zsolt Kocsmarszky
d8594e7662 Fix misplaced div closing tags 2018-01-03 22:25:09 +01:00
Zsolt Kocsmarszky
7605032eec Fix filters so it'll nicely list 2+ filters 2018-01-03 21:00:15 +01:00
Zsolt Kocsmarszky
7ce815cddb Better alignment 2018-01-03 20:10:18 +01:00
Zsolt Kocsmarszky
4c055c663b fix filter headers and filters on unsaved query alignment 2018-01-03 20:08:43 +01:00
Arik Fraimovich
6a4267abd5 Merge pull request #2199 from kocsmy/fixes/unpublished-query-result-table
bug on query page: if creating new query, table is 100% wide
2018-01-03 20:43:58 +02:00
Arik Fraimovich
bea39343c8 Merge pull request #2198 from washort/change-data-source-query-version
Update query version when changing query data source
2018-01-03 20:42:06 +02:00
Zsolt Kocsmarszky
694115e499 Fix unsaved query table visualisation 2018-01-03 19:35:48 +01:00
Zsolt Kocsmarszky
dc84876d27 Fix fullscreen table to fixed width for unpublished query 2018-01-03 19:26:17 +01:00
Allen Short
07628da64d Update query version when saving new data source 2018-01-03 18:26:09 +00:00
Levko Kravets
aa970a0afb Fix to error handling: CR2 2018-01-03 15:28:15 +02:00
Levko Kravets
effb212e4b Fix to error handling: CR1 2018-01-03 14:00:34 +02:00
Zsolt Kocsmarszky
f687cacbee Revert "Add page-specific class to body for each app page"
This reverts commit e9139748a0.
2018-01-03 12:47:44 +01:00
Zsolt Kocsmarszky
a26dbab28b Merge branch 'master' of https://github.com/getredash/redash into design/new-data-source+query-editor 2018-01-03 12:32:52 +01:00
Zsolt Kocsmarszky
84e65f7165 Merge branch 'master' of https://github.com/getredash/redash 2018-01-03 12:30:48 +01:00
Levko Kravets
dd0ffe3d2c Fix to error handling mechanism: fail only on promise rejections 2018-01-02 14:59:41 +02:00
Arik Fraimovich
bb36ec8664 Merge pull request #2195 from getredash/feature/settings
Allow passing options to tests Docker command.
2018-01-02 13:37:51 +02:00
Arik Fraimovich
2f51df3435 Allow passing options to tests Docker command. 2018-01-02 13:30:06 +02:00
Maycon Bordin
3846cf3269 Added default version for salesforce query runner 2018-01-02 08:17:07 -02:00
Arik Fraimovich
a66ac82a23 Merge pull request #2194 from getredash/feature/settings
Move some of the configuration to the UI
2018-01-02 11:26:29 +02:00
Arik Fraimovich
eb85fc9e5b Merge pull request #2179 from kyoshidajp/add_root_user_command
Feature: Add create root user command
2018-01-02 11:23:56 +02:00
Arik Fraimovich
8d2571cba2 Merge pull request #2187 from kravets-levko/feature/error-handling
Improve error handling mechanism
2018-01-02 11:20:43 +02:00
Arik Fraimovich
93aeae63b7 CodeClimate issue fixes. 2018-01-02 11:13:35 +02:00
Arik Fraimovich
7602599738 Update pysaml2 version to latest release. 2018-01-02 10:48:33 +02:00
Arik Fraimovich
153c0139cd Dynamic organization settings support. 2018-01-02 10:48:22 +02:00
Arik Fraimovich
a6faebb04c Make settings menu dynamic. 2018-01-02 10:43:16 +02:00
Arik Fraimovich
1e156739da Turn settings into a package 2017-12-31 14:39:03 +02:00
Arik Fraimovich
c5e5bb714b Merge pull request #2189 from getredash/feature/settings
Replace Makefile with scripts
2017-12-31 14:35:46 +02:00
Arik Fraimovich
6c4989d8a0 Replace Makefile with scripts 2017-12-31 14:34:41 +02:00
Zsolt Kocsmarszky
4d0a6accc6 More css for better collapse and expand 2017-12-29 18:35:18 +01:00
Zsolt Kocsmarszky
ecc6200aaf Refining styling so resize works nicely 2017-12-29 18:12:30 +01:00
Zsolt Kocsmarszky
3b232d3bcc Fixing resizing issues 2017-12-29 17:14:05 +01:00
Zsolt Kocsmarszky
f258d8086c Add border for editor 2017-12-29 16:38:09 +01:00
Levko Kravets
c9ac9d85e2 getredash/redash#2162 CR2 2017-12-29 11:17:27 +02:00
Levko Kravets
fec92b399a getredash/redash#2162 CR1 2017-12-28 18:39:14 +02:00
Arik Fraimovich
9323a93a8d Merge pull request #2188 from rgjodekerken/master
Fix upgrade script for ci channel
2017-12-28 17:17:04 +02:00
Arik Fraimovich
f75833e5a9 Merge pull request #2166 from kravets-levko/bug/query-page-small-counter
Counter is too small on query page
2017-12-28 17:11:46 +02:00
Richard Odekerken
6307cfb9d7 Fix upgrade script for ci channel 2017-12-28 15:10:45 +00:00
Arik Fraimovich
651d56ad95 Merge pull request #2184 from cloudron-io/ldap_search_dn
rename REDASH_SEARCH_DN to REDASH_LDAP_SEARCH_DN
2017-12-28 16:01:57 +02:00
Arik Fraimovich
055b8eff54 Merge pull request #2175 from bamboo-yujiro/fix_user_form
Fix : User Form displays a incorrect error appearance.
2017-12-27 22:01:15 +02:00
Girish Ramakrishnan
c59e7ea2a5 rename REDASH_SEARCH_DN to REDASH_LDAP_SEARCH_DN 2017-12-27 10:33:08 -08:00
Levko Kravets
1bfea8b493 Improve error handling mechanism (related to getredash/redash#2162) 2017-12-27 16:01:29 +02:00
Zsolt Kocsmarszky
c9d5347658 mobile and spacing fixes 2017-12-27 14:47:58 +01:00
Zsolt Kocsmarszky
58eb08e22a Refine format and other smaller elements 2017-12-27 13:33:00 +01:00
Zsolt Kocsmarszky
52bae5cbe5 Rearrange elements for better UX 2017-12-27 13:08:05 +01:00
Zsolt Kocsmarszky
f2585d1124 Better edit in place and other refinements for rearranged layout 2017-12-27 13:07:48 +01:00
Zsolt Kocsmarszky
635aeb3409 Remove classes 2017-12-27 11:23:46 +01:00
Zsolt Kocsmarszky
e6ec50a4e6 Dynamic forms back live again, extra classes added for better form design 2017-12-27 11:19:19 +01:00
Zsolt Kocsmarszky
3bc5c60907 better data source cars + list view has cards now, too 2017-12-27 11:13:09 +01:00
Zsolt Kocsmarszky
a698cb0484 Pluralize database 2017-12-27 10:53:07 +01:00
Arik Fraimovich
6441c4b52d Merge pull request #2174 from tonyjiangh/feature/add_redshift_view_support
Add redshift late binding view data to schema browser
2017-12-26 21:05:54 +02:00
Arik Fraimovich
ff078485f2 Merge pull request #2165 from tonyjiangh/feature/query_result_exception
Fix unicode handling at query result
2017-12-26 20:59:52 +02:00
Zsolt Kocsmarszky
e925568e3d Further improve smaller screen design 2017-12-26 14:19:18 +01:00
Zsolt Kocsmarszky
db6c8769d4 Further refining code and removing junk 2017-12-26 13:50:46 +01:00
Zsolt Kocsmarszky
3c9f59b055 Adjust button size size so it's consistent 2017-12-26 13:35:03 +01:00
Zsolt Kocsmarszky
0a15986619 Code and styling improvements focusing on xs and sm screen sizes 2017-12-26 13:18:36 +01:00
Zsolt Kocsmarszky
696eefad1a Further cleaning up code 2017-12-26 11:39:42 +01:00
Zsolt Kocsmarszky
708cc26c1d Cleaning up code and properly fall back design on narrower screen for query-metadata 2017-12-26 11:33:52 +01:00
Katsuhiko YOSHIDA
da1f99d846 Add create root user command 2017-12-23 18:04:38 +09:00
bamboo-yujiro
4f814408c7 Retry codeclimate 2017-12-22 11:09:15 +09:00
Hao Jiang
87ce1db3bd Add redshift late binding view data to schema browser 2017-12-21 22:24:31 +09:00
bamboo-yujiro
71e6bf13ff Fix : User Form displays a incorrect error appearance. 2017-12-21 17:52:25 +09:00
Zsolt Kocsmarszky
24188ab1de Perfectly calculated schema-container size, finally 2017-12-21 02:12:46 +01:00
Zsolt Kocsmarszky
e6f8b2c502 Flexible query editor 2017-12-20 23:38:46 +01:00
Levko Kravets
e9139748a0 Add page-specific class to body for each app page 2017-12-20 17:28:42 +02:00
Maycon Bordin
3cfd34a897 Added API version to salesforce query runner and fixed issue when row column value does not exist 2017-12-20 10:00:42 -02:00
Zsolt Kocsmarszky
404000e5fe Add missing elements for new data source screen 2017-12-19 14:08:17 +01:00
Zsolt Kocsmarszky
5441ef429e Fix card sizes 2017-12-19 13:23:48 +01:00
Zsolt Kocsmarszky
1110e65e4a Load all images from images folder 2017-12-19 12:37:08 +01:00
Zsolt Kocsmarszky
9ac5d58b89 flexible layout v0.1 (WIP) 2017-12-18 23:27:08 +01:00
Zsolt Kocsmarszky
0810c2b1e0 Change to narrow layout 2017-12-18 20:03:50 +01:00
Levko Kravets
68f0c368c0 getredash/redash#2129 Counter too small on query page 2017-12-18 15:12:55 +02:00
Zsolt Kocsmarszky
64c69ee009 Foundation for New Data Source layout added 2017-12-17 20:48:25 +01:00
Zsolt Kocsmarszky
e2df12e2a2 Merge branch 'design/query-page-improvements' into design/new-data-source-flow 2017-12-17 19:29:15 +01:00
Zsolt Kocsmarszky
0f31de33e8 General styling improvements 2017-12-17 19:27:54 +01:00
Zsolt Kocsmarszky
d37948f44b Merge branch 'master' into design/new-data-source-flow 2017-12-17 18:37:44 +01:00
Hao Jiang
6e2e2e2060 Fix: unicode handling at query result 2017-12-16 09:55:15 +09:00
Zsolt Kocsmarszky
439cc45ca7 Merge branch 'master' into design/query-page-improvements 2017-12-13 22:14:13 +01:00
Zsolt Kocsmarszky
816c61944e Recreate new 2 column layout 2017-12-13 22:12:45 +01:00
Arik Fraimovich
5ba15ef350 Remove trailing spaces 2017-12-13 11:59:43 +02:00
Arik Fraimovich
30136c4e97 Merge pull request #2148 from kyoshidajp/replace_datetime_strings
Replace invalid date time strings
2017-12-13 11:53:15 +02:00
Arik Fraimovich
1a4d7471f5 Stored parsed moment value. 2017-12-13 11:52:56 +02:00
Arik Fraimovich
1d3c2144c4 Merge pull request #2154 from crooy/master
fixing issue #2150
2017-12-13 11:38:12 +02:00
Arik Fraimovich
fdf35328ac Merge pull request #2152 from bamboo-yujiro/fix_appearance_collapse_of_outdated-queries
Fix: Appearance collapse of outdated-queries.
2017-12-13 11:37:36 +02:00
Zsolt Kocsmarszky
c147d30cb5 Separate Data source panel, freely expanding schema browser, freely expandable query editor, better smaller screen layout 2017-12-12 22:31:52 +01:00
Ronald Crooy
80a74934f0 fixing issue #2150 2017-12-12 11:37:24 +01:00
bamboo-yujiro
a36cc6838b Fix: Appearance collapse of outdated-queries. 2017-12-12 00:58:11 +09:00
Arik Fraimovich
073db37cfd Merge pull request #2136 from doddjc21/patch-1
Update oracle.py
2017-12-11 16:34:42 +02:00
Katsuhiko YOSHIDA
b7b8e56722 Consider value is string case 2017-12-11 20:09:27 +09:00
Zsolt Kocsmarszky
8a11183905 Add data source logos 2017-12-11 00:36:40 +01:00
Katsuhiko YOSHIDA
c045ccabe4 Replace invalid date time strings 2017-12-10 22:46:31 +09:00
Arik Fraimovich
c3cb2cc28b Merge pull request #2126 from getredash/layout_fixes
Layout fixes (mainly schema browser)
2017-12-07 19:45:55 +02:00
Arik Fraimovich
990d32cfa2 Remove unneeded code 2017-12-07 17:14:47 +02:00
Arik Fraimovich
1573e06e71 Merge pull request #2134 from getredash/fix_query_results_download
Fix #68: user can't download query results of a new query
2017-12-07 16:33:59 +02:00
Arik Fraimovich
6bb05106cd Hide shcema browser when it's not relevant 2017-12-07 16:31:34 +02:00
Arik Fraimovich
c1d7e0401f Explict response when schema is not supported (vs just some error loading it) 2017-12-07 16:31:02 +02:00
Arik Fraimovich
604540266a Merge pull request #2135 from kocsmy/fixes/query-tables
Fixes/query tables
2017-12-07 16:14:53 +02:00
Joseph Dodd
4954d1c807 Update oracle.py 2017-12-06 17:51:27 -05:00
Joseph Dodd
45b828e361 Update oracle.py 2017-12-06 17:48:36 -05:00
Joseph Dodd
96e2991650 Update oracle.py 2017-12-06 17:44:49 -05:00
Joseph Dodd
54b1f4219d Update oracle.py 2017-12-06 17:39:51 -05:00
Zsolt Kocsmarszky
3a0ffa53e2 Fix filters spacing on Dashboards 2017-12-06 22:44:34 +01:00
Zsolt Kocsmarszky
7381bd11a0 Fix margin on pagination 2017-12-06 22:28:10 +01:00
Zsolt Kocsmarszky
19bd150e4b Fix pagination 2017-12-06 22:21:33 +01:00
Zsolt Kocsmarszky
e65b023fa7 Make embed query tables width: auto too and apply css flexbox 2017-12-06 22:18:15 +01:00
Zsolt Kocsmarszky
69badf67fc Merge branch 'master' into fixes/query-tables 2017-12-06 21:31:54 +01:00
Zsolt Kocsmarszky
68177d31b3 Fix wide tables on queries and related elements like pagination 2017-12-06 21:30:27 +01:00
Joseph Dodd
808a4c5d72 Update oracle.py
Update Oracle.py to make INSERTS and UPDATES to Oracle databases
2017-12-06 14:55:13 -05:00
Arik Fraimovich
8e668d2e09 Fix #68: user can't download query results of a new query 2017-12-06 18:14:34 +02:00
Arik Fraimovich
868f334471 Merge pull request #2127 from getredash/gravatar
Change default gravatar type
2017-12-06 11:50:14 +02:00
Arik Fraimovich
3f37c347f9 Change default gravatar type 2017-12-06 11:17:59 +02:00
Arik Fraimovich
271e6a56da Merge branch 'kyoshidajp-add_user_image' 2017-12-06 11:12:54 +02:00
Arik Fraimovich
0988e8184a Rebase with latest master 2017-12-06 11:12:16 +02:00
Katsuhiko YOSHIDA
62e5e38926 Rename profile image url column and method 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
dce865356c Set default parameter None as picture 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
7f398a7d7f Allow None as image_url in User model 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
56c364f0a3 Change style name of profile image 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
0b9b6a623e Change size of profile immage in User 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
ea5788f173 Display user image before name to each page 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
4a58b9e944 Add image url as a User field 2017-12-06 09:16:24 +09:00
Arik Fraimovich
18b857363f Handle cases when schema is empty 2017-12-06 00:01:01 +02:00
Arik Fraimovich
f02c0e0b9c Fix: table pagination overlap 2017-12-05 21:53:26 +02:00
Arik Fraimovich
6fc6c67e44 Revert accidental changes to query.html 2017-12-05 18:03:37 +02:00
Arik Fraimovich
2c36563e50 View query link in widget should link to source view 2017-12-05 16:42:27 +02:00
Arik Fraimovich
c9a680b4b7 Consistent size of query editor 2017-12-05 16:42:27 +02:00
Arik Fraimovich
b8543eb2bd Change: query should be first in create menu 2017-12-05 16:41:58 +02:00
Arik Fraimovich
b17794f622 Merge pull request #2124 from kocsmy/fixes/merge-fixes-2017-12-05
Fixes/merge fixes 2017 12 05
2017-12-05 16:40:45 +02:00
Zsolt Kocsmarszky
63e76628cf Fix showing refresh time on public dashboard 2017-12-05 15:34:46 +01:00
Zsolt Kocsmarszky
2567c73dba Add Redash logo to the public dashboard footer 2017-12-05 15:21:59 +01:00
Zsolt Kocsmarszky
9c81b866d5 Fix alert spacing 2017-12-05 15:15:09 +01:00
Zsolt Kocsmarszky
ed7a7d4275 Fix query editor size when schema is there but empty 2017-12-05 15:09:20 +01:00
Arik Fraimovich
bc9bcee064 Merge pull request #2123 from kravets-levko/fix/chart-x-axis-height
Fix: chart x-axis height setting
2017-12-05 15:56:12 +02:00
Levko Kravets
96a73b0c9e getredash/redash#2107 Fix: chart x-axis height setting 2017-12-05 15:37:32 +02:00
Arik Fraimovich
004f550e93 Merge pull request #2113 from kocsmy/design/refinements-2
Design/refinements 2
2017-12-05 14:08:36 +02:00
Zsolt Kocsmarszky
2ef9403516 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/components/dynamic-table/dynamic-table.html
#	client/app/pages/queries/query.html
2017-12-05 13:04:08 +01:00
Zsolt Kocsmarszky
7ac88f91dc Fix height for schema browser 2017-12-05 12:36:42 +01:00
Arik Fraimovich
3d0080a9ca Merge pull request #2120 from negibouze/prevent-remove-self
prevent remove self
2017-12-05 13:28:05 +02:00
Arik Fraimovich
2c39028b8b Merge pull request #2118 from deecay/pie-styling
Change: Pie chart font style
2017-12-05 13:27:41 +02:00
Zsolt Kocsmarszky
06cab14693 Fix layout 2017-12-05 12:12:53 +01:00
板倉義晃
4dd8f8cf84 prevent remove self
The administrator made it impossible to remove him/herself from the
built-in group.
2017-12-05 14:02:46 +09:00
deecay
2be067040e Change: Pie chart font style 2017-12-05 10:42:22 +09:00
ariarijp
ccb20640fe Remove half-baked unit test 2017-12-05 00:27:18 +09:00
Arik Fraimovich
9d7f079d94 Merge pull request #2089 from msumit/Qbol_Support
Add Qubole query runner
2017-12-04 16:31:27 +02:00
Arik Fraimovich
91a2b49f4c Merge pull request #2110 from kravets-levko/feature/table-v2
Table v2
2017-12-04 16:15:56 +02:00
Levko Kravets
6d11e8f57a Table viz: CR3 2017-12-04 16:11:04 +02:00
Levko Kravets
1ca0ac6278 Table viz: CR2 2017-12-04 13:27:32 +02:00
Arik Fraimovich
4cd352599a Add v4 to CHANGELOG. 2017-12-04 11:30:24 +02:00
Zsolt Kocsmarszky
4798361d87 Merge branch 'master' into design/refinements-2 2017-12-03 15:29:14 +01:00
Zsolt Kocsmarszky
08b97d0a4e Hide "Data" text from data source 2017-12-03 15:27:39 +01:00
Levko Kravets
a0d9b94488 Table viz: small fixes 2017-12-03 12:54:34 +02:00
Zsolt Kocsmarszky
7272b9904a Improve visualisation embed design (iframe) so it looks better 2017-12-02 23:59:21 +01:00
Levko Kravets
30833100e5 Table viz: search; CR1 2017-12-02 21:55:36 +02:00
Arik Fraimovich
7974c90042 Merge pull request #2111 from kyoshidajp/upgrade_psycopg2
Upgrade psycopg2 for support PostgreSQL 10.0
2017-12-02 21:22:09 +02:00
Katsuhiko YOSHIDA
f4c4e18bf7 Upgrade psycopg2 latest version 2017-12-02 09:11:43 +09:00
Zsolt Kocsmarszky
ca75eb63c6 Separate Query styling and fix a small issue 2017-12-01 16:50:45 +01:00
Zsolt Kocsmarszky
27458599e8 Turn off link when editing a dashboard + show move cursor so it suggests you can drag the widget with its header and move around 2017-12-01 16:15:39 +01:00
Zsolt Kocsmarszky
1d90f2acad Fix line-height 2017-12-01 16:04:39 +01:00
Zsolt Kocsmarszky
60becaf4c2 Nicer highlights fro query dropdown 2017-12-01 15:46:06 +01:00
Zsolt Kocsmarszky
73af14069d Move view/show query to bottom of its section 2017-12-01 15:39:49 +01:00
Levko Kravets
dc4902a800 Minor fixes 2017-12-01 16:18:51 +02:00
Zsolt Kocsmarszky
ccb440c759 Add ref so we know how many people get to know about Redash through shared dashboards 2017-12-01 15:03:54 +01:00
Zsolt Kocsmarszky
f3633b18e7 Move format back to visible place 2017-12-01 15:00:14 +01:00
Zsolt Kocsmarszky
2b43bd7d28 Fix up fullscreen 2017-12-01 14:59:42 +01:00
Zsolt Kocsmarszky
1beeda6b32 Fix filter spacing and remove inline css 2017-12-01 14:35:49 +01:00
Levko Kravets
ed70002f43 Table viz: code improvements 2017-12-01 15:25:58 +02:00
Zsolt Kocsmarszky
83e1ded008 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/components/filters.html
2017-12-01 14:15:46 +01:00
Levko Kravets
015d0c6edd Table viz: custom cell rendering; JSON cell renderer 2017-12-01 13:40:41 +02:00
Katsuhiko YOSHIDA
e17a1a1378 Upgrade psycopg2 for support PostgreSQL 10.0 as a library 2017-12-01 19:31:05 +09:00
Levko Kravets
8fc3af7bb9 Table viz: editor UI 2017-12-01 07:41:09 +02:00
Zsolt Kocsmarszky
3df9d480a4 Change footer for public dashboards 2017-11-30 21:48:25 +01:00
Levko Kravets
127b45a5b1 Table viz: editor 2017-11-30 21:52:21 +02:00
Levko Kravets
e7d0856831 Table viz: show/hide column, reorder columns, content alignment 2017-11-30 19:30:45 +02:00
Levko Kravets
fb44d32ba3 Table viz: multi-column sort, align data, allow html 2017-11-30 15:52:46 +02:00
ariarijp
736c014d51 Return False from annotate_query instead of strip annotation with regex 2017-11-30 00:43:50 +09:00
Arik Fraimovich
3f30693b74 Merge pull request #2102 from ariarijp/fix/typo_in_settings
Fix typo
2017-11-29 12:26:36 +02:00
Arik Fraimovich
4a06e6266e Merge pull request #2105 from kravets-levko/fix/visualization-filters
Fixes related to filters panel
2017-11-28 16:19:50 +02:00
Levko Kravets
0d1ad21a1b getredash/redash/issues/2103 Fix: unnecessary horizontal scroll; fix: viz overlaps filters panel 2017-11-28 15:01:48 +02:00
Zsolt Kocsmarszky
8e8a63acb9 Fix table styling which sits inside a container and not going full width. Apply this to multiple screens. 2017-11-26 20:36:37 +01:00
Zsolt Kocsmarszky
edbec3f49d Fix last-child padding bottom 2017-11-26 20:17:48 +01:00
Zsolt Kocsmarszky
f2eb225f06 Fix cell padding to fit header padding 2017-11-26 20:13:53 +01:00
Zsolt Kocsmarszky
d0ec1ca68d Further adjust table settings 2017-11-26 20:11:01 +01:00
Zsolt Kocsmarszky
51e6087888 Circle profile pictures on user list 2017-11-26 20:10:48 +01:00
Zsolt Kocsmarszky
50fcd8d34d Adjust table header background color 2017-11-26 19:56:06 +01:00
Zsolt Kocsmarszky
37f27fc29a Adjust table styling 2017-11-26 19:53:11 +01:00
Zsolt Kocsmarszky
690ce521ca Fix spacing for all kind of table (normal, condensed) 2017-11-26 18:08:45 +01:00
Zsolt Kocsmarszky
7cbed96945 Fix pagination margin below dynamic-table 2017-11-26 18:00:04 +01:00
Zsolt Kocsmarszky
baa36c97fb Add to readme 2017-11-26 17:53:42 +01:00
Zsolt Kocsmarszky
6bbd1bf288 Add styling readme 2017-11-26 17:51:51 +01:00
Zsolt Kocsmarszky
12ecd23ceb Add Cantarell to the default font-family 2017-11-26 17:47:20 +01:00
Zsolt Kocsmarszky
b9078a28d4 Refine table styling and improve less organisation 2017-11-26 17:42:56 +01:00
Zsolt Kocsmarszky
8e3c62db83 Fix refreash button size to btn-sm 2017-11-26 17:32:13 +01:00
Zsolt Kocsmarszky
9492ff9444 Fix button margins 2017-11-26 17:16:50 +01:00
Zsolt Kocsmarszky
b0177deda0 Move fork query under dropdown, too and remove redundant text information 2017-11-26 16:54:32 +01:00
Zsolt Kocsmarszky
89592d3e80 Fix padding at no schema sources 2017-11-26 16:51:08 +01:00
Zsolt Kocsmarszky
0a6fc27fdd Rearrange query elements 2017-11-26 16:49:02 +01:00
Zsolt Kocsmarszky
a7ca236903 Change source editor and schema browser 2017-11-26 16:31:42 +01:00
ariarijp
b716e5c23d Fix typo 2017-11-27 00:24:01 +09:00
Zsolt Kocsmarszky
063066dfae Tighten up schema browser 2017-11-26 16:05:46 +01:00
Zsolt Kocsmarszky
5bdb34e451 Fix spacing in filters 2017-11-26 15:47:08 +01:00
ariarijp
f4d0609140 Strip annotation from query when path is specified in Script Query Runner 2017-11-26 23:09:12 +09:00
ariarijp
cb62c10a66 Fix create_db command of docker-entrypoint 2017-11-26 13:26:44 +09:00
Zsolt Kocsmarszky
05cc170ab1 Better organised query editor 2017-11-25 16:36:36 +01:00
Zsolt Kocsmarszky
4540256f3e Add proper styling for parameters 2017-11-25 07:29:22 +01:00
Zsolt Kocsmarszky
3d33ebc916 Tightening up Query editor 2017-11-25 07:29:05 +01:00
Zsolt Kocsmarszky
decc0b8ee8 Fix merge conflicts 2017-11-25 06:29:08 +01:00
Zsolt Kocsmarszky
a488de22c4 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/pages/dashboards/public-dashboard-page.html
2017-11-25 06:27:52 +01:00
Zsolt Kocsmarszky
f835aec980 Adjust top margin 2017-11-25 06:25:06 +01:00
Zsolt Kocsmarszky
5893b68daf Public dashboards: remove navbar and add missing footer 2017-11-25 06:17:56 +01:00
Sumit Maheshwari
660c72e608 Add Qubole query runner 2017-11-24 17:30:08 +05:30
Arik Fraimovich
01cf6de4dc Merge pull request #2098 from kravets-levko/fix/sankey-sunburst
Fixed sunburst/sankey issue with rendering
2017-11-23 18:21:20 +02:00
Levko Kravets
fa460223b7 CR1 2017-11-23 18:13:42 +02:00
Arik Fraimovich
39aeef5486 Merge pull request #2097 from ariarijp/fix/query_results
Handling whitespace characters in Query Results data source
2017-11-23 18:00:31 +02:00
Levko Kravets
4006d72831 getredash/redash#2095 Fixed sunburst/sankey issue with rendering; minor UI fixes 2017-11-23 17:42:03 +02:00
ariarijp
93aa28cdf7 Handling whitespace characters in Query Results data source 2017-11-23 21:46:10 +09:00
Arik Fraimovich
8e8278d05e Merge pull request #2081 from kocsmy/design/refinement
Design/refinement
2017-11-22 18:27:05 +02:00
Arik Fraimovich
3d9d658594 Merge pull request #2087 from yershalom/add_cockraochdb_ds
Added new CockroachDB DS to redash
2017-11-22 18:23:36 +02:00
Arik Fraimovich
9ae1bc3051 Merge branch 'master' into design/refinement 2017-11-22 18:20:17 +02:00
Arik Fraimovich
a9384d3a09 Merge branch 'master' into design/refinement 2017-11-22 18:19:40 +02:00
Arik Fraimovich
9bbce6b06a Merge pull request #2053 from cdessanti/patch-1
SQL Query Runner for MAPD database
2017-11-22 18:15:39 +02:00
Arik Fraimovich
b96ab5eb0e Merge pull request #2048 from arjan/elasticsearch-doc-count-aggregation
Elasticsearch: Collect doc_count field from aggregation
2017-11-22 18:12:59 +02:00
Arik Fraimovich
5b91d97e48 Merge pull request #2043 from jezdez/pytest
Move to pytest since nose is unmaintained.
2017-11-22 18:11:59 +02:00
Arik Fraimovich
9de3e975eb Merge pull request #1985 from miketheman/miketheman/user-email-case-insensitive
Ensure email is case-insensitive
2017-11-22 18:11:07 +02:00
Arik Fraimovich
1b7cc3731c Merge pull request #2092 from jasonsmithj/fix/mysql_query_cancel
Fix doesn't work  mysql query cancel button
2017-11-22 18:00:35 +02:00
Arik Fraimovich
e7fdbee59d Merge pull request #2083 from kravets-levko/feature/responsive-visualizations
Responsive visualizations
2017-11-22 18:00:08 +02:00
jasonsmithj
1e12f70cf4 mysql query cancel 2017-11-22 10:53:25 +09:00
Levko Kravets
0ef04e2839 Rebase CSS changes to LESS 2017-11-21 09:18:17 +02:00
Levko Kravets
24ebd8dc53 CR3 2017-11-21 09:08:09 +02:00
Levko Kravets
4af56bd101 Small CSS fix 2017-11-21 09:08:09 +02:00
Levko Kravets
5faf41a18c CR2: fit counter by height (not by width) 2017-11-21 09:08:09 +02:00
Levko Kravets
485f0e3278 CR1 2017-11-21 09:08:09 +02:00
Levko Kravets
21150ad4ca Counter: fix auto-size 2017-11-21 09:08:09 +02:00
Levko Kravets
059da21280 Chart: fit to container on resize 2017-11-21 09:08:09 +02:00
Levko Kravets
24e7ee51ba Fix: Counter flickering; Map, Counter: disappears in mobile mode 2017-11-21 09:08:09 +02:00
Levko Kravets
584cbea017 Better fix for Map viz 2017-11-21 09:08:09 +02:00
Levko Kravets
1d210c774a Fix visualization previews 2017-11-21 09:08:09 +02:00
Levko Kravets
289aa8561f Some fixes for Map viz 2017-11-21 09:08:09 +02:00
Levko Kravets
d765f6edb6 Some fixes for Table and Pivot viz 2017-11-21 09:08:09 +02:00
Levko Kravets
5f5b95b455 Map viz: constraints and position 2017-11-21 09:08:09 +02:00
Levko Kravets
e57d9f4701 Counter viz: fit text to width 2017-11-21 09:08:09 +02:00
Levko Kravets
b26284933c Allow to specify default size for each visualization type 2017-11-21 09:08:09 +02:00
Zsolt Kocsmarszky
825157a549 Friendlier next and prev arrows 2017-11-20 23:21:26 +01:00
Zsolt Kocsmarszky
961144c3b8 Remove Roboto 2017-11-20 22:20:39 +01:00
Zsolt Kocsmarszky
0abfe19c6a Add newstyle to the soup 2017-11-20 22:15:26 +01:00
Zsolt Kocsmarszky
3c1a756ca3 Merge branch 'master' of https://github.com/getredash/redash
# Conflicts:
#	client/app/config/styles.js
2017-11-20 22:10:31 +01:00
Zsolt Kocsmarszky
7f2328d0a5 Adjust bg-ace and table headers 2017-11-20 21:48:15 +01:00
Arik Fraimovich
457b8d9d8a Merge pull request #2091 from kravets-levko/less2
Convert styles to LESS
2017-11-20 22:35:21 +02:00
Levko Kravets
773e5e6393 Convert styles to LESS 2017-11-20 17:46:37 +02:00
Zsolt Kocsmarszky
dfd2d9ecec Remove uppercase and capitalize table and tab headers 2017-11-20 16:10:10 +01:00
Zsolt Kocsmarszky
a1fdaa998b Revert hiding refresh button, still keep refresh functionality on last refreshed date 2017-11-20 16:03:49 +01:00
Arik Fraimovich
7955a83f1d Add paginator only when there are more than 1 pages 2017-11-20 10:19:54 +02:00
Arik Fraimovich
3af1176e70 Fix: two nav bars on my queries page 2017-11-20 10:11:41 +02:00
Zsolt Kocsmarszky
ab77f00526 Move refresh button under latest refresh time 2017-11-19 21:34:40 +01:00
Zsolt Kocsmarszky
835d417d8d Styling improvements on Query screen 2017-11-19 21:19:36 +01:00
Zsolt Kocsmarszky
895d743ab6 Fix description hover 2017-11-19 21:01:10 +01:00
Zsolt Kocsmarszky
68404b8dd3 Styling refinement 2017-11-19 20:44:38 +01:00
Zsolt Kocsmarszky
5b19efdb73 Layout fix for System Status 2017-11-19 20:17:11 +01:00
Zsolt Kocsmarszky
86fc099873 Clean up admin page markup 2017-11-19 17:54:46 +01:00
Zsolt Kocsmarszky
819b109dde Remove uppercase from tab header so it looks friendlier 2017-11-19 17:41:16 +01:00
Zsolt Kocsmarszky
334289b81c Add system fonts as default and simplify the code 2017-11-19 17:38:18 +01:00
Zsolt Kocsmarszky
e64832867e Better organised stylesheet for easier maintainability + an IE fix 2017-11-19 17:14:49 +01:00
Zsolt Kocsmarszky
c3ca2e2ec1 Small improvement on widget styling 2017-11-18 21:02:50 +01:00
Zsolt Kocsmarszky
1115f2a702 Add missing tiled class 2017-11-18 20:16:59 +01:00
Zsolt Kocsmarszky
0b0762f10c Improved pagination 2017-11-18 19:57:45 +01:00
Zsolt Kocsmarszky
f423e0c030 Remove fancy input hover animation 2017-11-18 19:40:07 +01:00
Shalom Yerushalmy
8da40077fa Added one line for pep8 convention 2017-11-16 09:46:52 +02:00
Shalom Yerushalmy
dbf7c90ebc Added new CockroachDB DS to redash 2017-11-16 09:41:02 +02:00
Arik Fraimovich
ff0f5a0dfd Merge pull request #2082 from deecay/pie-subplot-title
Add: Pie chart subplot title
2017-11-15 23:44:33 +02:00
Arik Fraimovich
b702299067 Version bump. 2017-11-15 23:10:56 +02:00
Zsolt Kocsmarszky
a751c03fca Fixing Firefox issues and fine-tuning smaller details 2017-11-14 22:38:31 +01:00
Zsolt Kocsmarszky
1c926830a8 Styling refinements 2017-11-14 21:34:34 +01:00
Zsolt Kocsmarszky
dc8e8b70c5 Hide username on smaller screens + move Query Snippets and hide divider for users 2017-11-14 21:34:11 +01:00
Zsolt Kocsmarszky
315e77b7dd Cleanup settings/user and remove unnecessary tabs 2017-11-14 21:32:53 +01:00
Zsolt Kocsmarszky
c510b35b16 Add tiled class and adjust layout 2017-11-14 21:32:22 +01:00
Zsolt Kocsmarszky
2c2c626c42 Smaller layout, grid and styling fixes 2017-11-13 21:24:43 +01:00
Zsolt Kocsmarszky
fa7eaaebcd remove redundant buttons from home 2017-11-13 21:24:17 +01:00
Zsolt Kocsmarszky
4ed9e01091 Smaller improvements 2017-11-13 21:03:50 +01:00
Zsolt Kocsmarszky
40a83f3579 Fancy caret is only for nav 2017-11-13 20:57:27 +01:00
Zsolt Kocsmarszky
af90928552 Better styling for navigation 2017-11-13 20:48:28 +01:00
Zsolt Kocsmarszky
bf6687352a Unify headers 2017-11-13 20:18:57 +01:00
Zsolt Kocsmarszky
dce64cfdb3 Fix settings container 2017-11-13 19:08:01 +01:00
Zsolt Kocsmarszky
a26195848a Further refine navbar markup and styling 2017-11-13 17:07:59 +01:00
Zsolt Kocsmarszky
43bf4b1cc8 Major navigation refinement 2017-11-13 16:29:09 +01:00
Zsolt Kocsmarszky
9420d2683e Drop 'Updated:' prefix 2017-11-13 15:38:34 +01:00
Zsolt Kocsmarszky
c67e9e3ff5 Further simplify navigation 2017-11-13 15:28:21 +01:00
Zsolt Kocsmarszky
3e7e06d4b4 Add time icon next to updated time 2017-11-13 14:33:50 +01:00
deecay
539cbf4ffc Add: Pie chart subplot title 2017-11-13 01:59:30 +09:00
Zsolt Kocsmarszky
30003297d4 Refine positions for nav new button and logo 2017-11-10 00:22:34 +01:00
Zsolt Kocsmarszky
f9e416a5dd Massive styling refinement 2017-11-09 23:39:53 +01:00
Zsolt Kocsmarszky
727674673e Make Edit/New dashboard modal more obvious 2017-11-09 23:39:31 +01:00
Zsolt Kocsmarszky
b57f78155c Add container for Settings to resolve vertical scroll issue 2017-11-09 23:39:03 +01:00
Zsolt Kocsmarszky
e9b05ad2fd Massive navigation refinement 2017-11-09 23:38:14 +01:00
Zsolt Kocsmarszky
ea7b09d18e Add extra classes for widget elements for easier styling 2017-11-09 23:37:52 +01:00
Zsolt Kocsmarszky
30dc3d779c consistent footer templates 2017-11-09 23:37:21 +01:00
Zsolt Kocsmarszky
0d638cbe4a Better page title so you know where you are and what you're doing 2017-11-09 23:35:49 +01:00
Zsolt Kocsmarszky
92820872a2 Add missing container + remove container from the middle so the layout works better 2017-11-09 23:35:17 +01:00
Zsolt Kocsmarszky
590b7d66b6 Remove unnecessary row class that messes up the layout 2017-11-09 23:34:40 +01:00
Zsolt Kocsmarszky
dfef594f2e Add extra class for easier styling + remove unnecessary h3 around the top right area (bc it messes up everything with h3's margins) 2017-11-09 23:34:04 +01:00
Zsolt Kocsmarszky
4dad07e329 Change order, so All queries comes first on the tabs 2017-11-09 23:32:31 +01:00
Zsolt Kocsmarszky
90fbb3d94e Move global style out from local file 2017-11-09 23:32:04 +01:00
Zsolt Kocsmarszky
3079917527 Collapse section for profile 2017-11-09 23:31:34 +01:00
Zsolt Kocsmarszky
e84e866220 Collapse change password section by default 2017-11-09 23:30:51 +01:00
Zsolt Kocsmarszky
dd4db4be28 Re-align footer so it feels simpler 2017-11-09 23:30:24 +01:00
Zsolt Kocsmarszky
3f609981b7 Re-organise individual user setting screens into one page 2017-11-09 18:54:07 +01:00
Arik Fraimovich
6eca14e441 Merge pull request #2062 from kravets-levko/feature/dashboard-editor
Add: flexible dashboard layout
2017-11-08 11:09:03 +02:00
Levko Kravets
54ade336f5 CR3 2017-11-08 11:06:53 +02:00
Levko Kravets
627dc26004 In editing mode hide menu button and show remove button instead 2017-11-07 16:31:24 +02:00
Levko Kravets
1bb7cc0ad6 Fix: widget menu not visible on small widgets 2017-11-07 15:55:16 +02:00
Levko Kravets
18b4c3eff8 Fix widget auto-height behaviour 2017-11-07 15:46:24 +02:00
Levko Kravets
43bf051d51 Cleanup CSS 2017-11-07 10:41:29 +02:00
Levko Kravets
bbcbb3edc6 CR2 2017-11-06 21:52:23 +02:00
Levko Kravets
8bb9a1a53e CR1 2017-11-06 21:50:11 +02:00
Levko Kravets
6a7d2291b4 getredash/redash#335 Better dashboard editor 2017-11-06 21:50:11 +02:00
Arik Fraimovich
900d558857 CirlceCI: Docker build for release branches. 2017-11-02 10:59:21 +02:00
Arik Fraimovich
c6dc9affed Redshift: change default SSL mode to prefer. 2017-11-02 10:57:54 +02:00
Arik Fraimovich
96486b5c58 Update v3 CHANGELOG. 2017-11-02 10:33:53 +02:00
Arik Fraimovich
7c1565017f Merge pull request #2072 from getredash/feature/query_results
🎉  Add: data source to run queries on top of query results
2017-11-01 16:22:32 +02:00
Arik Fraimovich
7197370ad4 Add Query Results to the default query runners list. 2017-11-01 16:14:45 +02:00
Arik Fraimovich
1cbf09cbbe Add: data source to run queries on top of query results. 2017-11-01 16:10:04 +02:00
Arik Fraimovich
28b4450fa9 Merge pull request #2068 from kyoshidajp/copy_param_value_when_forking
Copy parameters value when forking a query
2017-11-01 15:18:22 +02:00
Arik Fraimovich
a799303f53 Merge pull request #2071 from getredash/bugfixes
Fix #1824: allow only user API key to be used with query refresh API.
2017-11-01 15:12:53 +02:00
Arik Fraimovich
59d6eb662c Merge pull request #2070 from getredash/bugfixes
Fix: require full access to the data source to fork a query.
2017-11-01 15:06:36 +02:00
Arik Fraimovich
4e4a3e13ab Fix #1824: allow only user API key to be used with query refresh API. 2017-11-01 15:05:55 +02:00
Arik Fraimovich
095d07bcb8 Disable fork button for those can't fork 2017-11-01 14:56:11 +02:00
Arik Fraimovich
71a235c79b Merge pull request #2069 from getredash/bugfixes
Fix #1979: API key of one query could be used to get results of another one
2017-11-01 14:47:23 +02:00
Arik Fraimovich
2bc3885977 Fix: require full access to the data source to fork a query.
Ref #1825.
2017-11-01 14:46:29 +02:00
Arik Fraimovich
97217f56c1 Remove unused variables 2017-11-01 13:52:41 +02:00
Arik Fraimovich
ba36f7395d Fix #1979: API key of one query could be used to get results of another one 2017-11-01 13:51:09 +02:00
Arik Fraimovich
ea7ca9e632 Merge pull request #2067 from getredash/params_refresh
Use query result for drop down values implementation updates
2017-11-01 13:50:49 +02:00
Katsuhiko YOSHIDA
5e5fc736bf Copy parameters value when forking a query 2017-11-01 06:27:03 +09:00
Arik Fraimovich
f38e76ad10 Merge pull request #2061 from kyoshidajp/delete_groupid_from_user_when_deleting_group
Delete the group id from user when deleting a group
2017-10-31 22:45:44 +02:00
Arik Fraimovich
80a6f357e3 Merge pull request #2063 from deecay/box-sortx
Fix: Boxplot xaxis sort issue
2017-10-31 22:39:26 +02:00
Arik Fraimovich
bd91288d1a Save only the query id instead of query id and name 2017-10-31 12:40:02 +02:00
Arik Fraimovich
38389a28ed Update eslint config to use longer lines 2017-10-31 12:06:52 +02:00
Arik Fraimovich
9ef9f29213 Query based parameter changes:
- Use $onChanges instead of $watch (fixes an issue where the query
results was constantly reloading).
- Choose the first value when first loading the options.
2017-10-31 12:05:55 +02:00
Arik Fraimovich
a3c2082b7f Fix: move boto3 import to the correct location 2017-10-30 14:53:22 +02:00
deecay
bc5516e941 Fix: Boxplot xaxis sort issue 2017-10-30 17:08:51 +09:00
Arjan Scherpenisse
87c705e5c8 Make the doc_count column integer 2017-10-30 09:07:03 +01:00
Katsuhiko YOSHIDA
65ac8c715e Add user info to db.session 2017-10-29 22:30:53 +09:00
Arik Fraimovich
9874361466 Merge pull request #2060 from kyoshidajp/fix_export_excel
Fix error when exporting list data as Excel file
2017-10-29 15:10:34 +02:00
Arik Fraimovich
b28c8fa227 Merge pull request #2045 from myouju/master
Added 'Use Glue Data Catalog' options in Athena
2017-10-29 14:43:25 +02:00
Katsuhiko YOSHIDA
048bd53eac Delete the group id from user when deleting a group 2017-10-29 11:28:15 +09:00
Katsuhiko YOSHIDA
95c707d028 Fix error when exporting list data as Excel file 2017-10-28 23:16:02 +09:00
Arik Fraimovich
41ec4c857b Update CHANGELOG 2017-10-26 22:17:58 +03:00
Arik Fraimovich
e62acb1d99 Merge pull request #2056 from getredash/boilerplate
Reduce boilerplate in frontend code
2017-10-26 12:06:43 +03:00
Arik Fraimovich
a9dc00aaa6 Remove last relative imports 2017-10-26 10:54:28 +03:00
Arik Fraimovich
38c6152aa0 Move init code into app/config/index.js from app/index.js 2017-10-26 10:00:59 +03:00
Arik Fraimovich
fb723328d4 Add app/lib folder for general client code (instead of app/utils) 2017-10-26 10:00:36 +03:00
Arik Fraimovich
047475562d Support for non relative path imports in client code:
So this:

import { Paginator } from "../../lib";

Becomes:

import { Paginator } from "@/lib";

Makes code cleaner and more portable.
2017-10-26 09:58:24 +03:00
Arik Fraimovich
acd33ec852 Auto register Angular components, pages, etc 2017-10-25 23:34:51 +03:00
Arik Fraimovich
340a23e71c Merge pull request #2054 from jezdez/docker-entrypoint-wildcard
Allow running any command inside the container via the docker entrypoint script.
2017-10-25 22:39:55 +03:00
Jannis Leidel
3db1b7f265 Allow running any command inside the container via the docker entrypoint script.
This allows running generic things like opening a bash shell:

docker-compose run server bash
2017-10-25 20:43:32 +02:00
Arik Fraimovich
845357fa02 Add logging to route registration. 2017-10-25 17:53:28 +03:00
Candido Dessanti
825fff5fe1 Update mapd.py 2017-10-25 07:18:25 +02:00
Candido Dessanti
abda68380e Update mapd.py 2017-10-25 07:11:05 +02:00
cdessanti
886a5eff43 added python driver of Mapd database
the other packages need will be added as deps when pymapd is installed
2017-10-24 18:25:33 +02:00
cdessanti
c3e19858b5 added mapd.py to default query runners 2017-10-24 18:20:31 +02:00
cdessanti
b9d9bcc0be Create mapd.py
query runner to catalog and access to mapd database
2017-10-24 17:58:38 +02:00
Arik Fraimovich
f75e31fa8e Merge pull request #2042 from isomura/modSetupShMkdir
Make /opt/redash directory if it's not exist.
2017-10-23 10:57:11 +03:00
Arik Fraimovich
38be723179 Merge branch 'master' into modSetupShMkdir 2017-10-23 10:56:50 +03:00
Arik Fraimovich
18bf44453d Update bootstrap script to use v2.0.1. 2017-10-22 15:13:30 +03:00
Arik Fraimovich
374f11252f Add v2.0.1. 2017-10-22 15:03:17 +03:00
Mike Fiedler
45a6651aaf Rename class, guard against calling lower() on None
Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-22 07:53:38 -04:00
Arik Fraimovich
2d3566abce Merge pull request #2046 from sylvainv/patch-1
Make use of REDASH_BASE_PATH variable in setup script
2017-10-22 14:47:58 +03:00
Arik Fraimovich
17d6bfff63 Merge pull request #2012 from yershalom/create_prometheus_ds
Added / on api path to prevent wrong url param
2017-10-22 09:55:41 +03:00
Arik Fraimovich
73540175d8 Merge pull request #2021 from hhamalai/configurable_invitation_token_age
Make invitation token max age configurable
2017-10-22 09:55:11 +03:00
Arjan Scherpenisse
4b9e4593c8 Elasticsearch: Collect doc_count field from aggregation 2017-10-21 07:36:02 +02:00
Sylvain
8c693efb3e Add missing $REDASH_BASE_PATH usage 2017-10-19 01:39:08 -05:00
Sylvain
51392d0398 Add missing $REDASH_BASE_PATH usage 2017-10-19 01:37:11 -05:00
Sylvain
78888c2082 Make use of REDASH_BASE_PATH variable 2017-10-19 01:35:14 -05:00
Arik Fraimovich
bc6bd1b316 Merge pull request #2044 from getredash/redshift
Redshift: add support for the new ACM root CA.
2017-10-18 15:59:05 +03:00
Arik Fraimovich
4060344a72 Merge pull request #2038 from atharvai/feature/redshift-spectrum
Add support for AWS Redshift Spectrum (external) tables
2017-10-18 15:56:14 +03:00
yukimaeno
6522325060 fixed private method 2017-10-18 21:51:46 +09:00
yukimaeno
ae6564e912 Added 'Use Glue Data Catalog' options in Athena 2017-10-18 21:41:13 +09:00
Arik Fraimovich
2af70a6c2d Redshift: add support for the new ACM root CA. 2017-10-18 14:58:50 +03:00
Jannis Leidel
45aad4bdbc Move to pytest since nose is unmaintained. 2017-10-18 13:51:09 +02:00
Arik Fraimovich
a3a1dcf4ba Merge pull request #2040 from cyriac/patch-2
Show query editor's Archive/Publish Query drop-down only on saved queries
2017-10-18 11:20:31 +03:00
isomura
eb979ef130 Make /opt/redash directory if it's not exist. 2017-10-18 09:54:56 +09:00
Cyriac Thomas
7f7fdbba54 show query builder Archive/Publish Query dropdown only on saved queries 2017-10-17 20:28:20 +05:30
Arik Fraimovich
fa213d72a7 Merge pull request #2039 from getredash/filters
Improve filters UI
2017-10-17 17:02:52 +03:00
Arik Fraimovich
d2bf935edb Improve filters UI (labels for */-, label for filter, show values when selected) 2017-10-17 16:35:46 +03:00
Arik Fraimovich
c4349f5c64 Merge pull request #2037 from getredash/patches
Add: option to set allowDiskUse in MongoDB queries
2017-10-16 10:19:55 +03:00
Arik Fraimovich
b5a6f4a166 Merge pull request #2028 from kyoshidajp/autofocus_in_1st_input_item
Set auto focus in first input items
2017-10-16 10:08:19 +03:00
Arik Fraimovich
79807dfa14 Typo fix. 2017-10-16 10:07:25 +03:00
Arik Fraimovich
0b0ec90987 Update gunicorn to latest version 2017-10-16 09:19:13 +03:00
Arik Fraimovich
a9fc220ec8 Merge pull request #2034 from getredash/patches
Add: disabled status to Organization
2017-10-16 09:18:55 +03:00
Arik Fraimovich
ee9bbbaa7c Merge pull request #2024 from cyriac/patch-1
Fixed stage label typo error on sankey and sunburst-sequence editors
2017-10-15 22:51:57 +03:00
Arik Fraimovich
12cc4e5ff9 Add: option to set allowDiskUse in MongoDB queries. 2017-10-15 15:54:04 +03:00
Arik Fraimovich
b5b5643090 Add: disabled status to Organization 2017-10-15 15:51:41 +03:00
Arik Fraimovich
6718081a49 Merge pull request #2033 from getredash/patches
Add: option to disable SQLAlchemy connection pool
2017-10-15 15:51:12 +03:00
Arik Fraimovich
138087861c Add missing import 2017-10-15 15:39:41 +03:00
Arik Fraimovich
9a88cf1743 Merge branch 'patches' of github.com:getredash/redash into patches 2017-10-15 15:37:51 +03:00
Arik Fraimovich
2ca93599ef Merge pull request #2032 from getredash/patches
Add: option to set a time limit on adhoc queries
2017-10-15 15:37:22 +03:00
Arik Fraimovich
ef85a06d60 Fix import. 2017-10-15 15:16:31 +03:00
Arik Fraimovich
f7ffc75ba4 Add: option to disable SQLA connection pool. 2017-10-15 15:09:18 +03:00
Arik Fraimovich
f28eda4174 Merge pull request #2031 from getredash/patches
Add: option to disable sending an invite to a new user
2017-10-15 15:07:17 +03:00
Arik Fraimovich
c5458af1a0 Add: option to set a time limit on adhoc queries 2017-10-15 15:02:34 +03:00
Arik Fraimovich
c28ced14c6 Merge pull request #2030 from getredash/patches
Change: make log format configurable.
2017-10-15 15:00:27 +03:00
Arik Fraimovich
1110e17c4a Add: option to disable sending an invite to a new user 2017-10-15 14:56:26 +03:00
Arik Fraimovich
3b9c31a056 Change: make log format configurable. 2017-10-15 14:52:12 +03:00
Arik Fraimovich
38b655ce3a Merge pull request #2029 from getredash/patches
Change: sort series by name.
2017-10-15 14:36:41 +03:00
Arik Fraimovich
0ec9b73eb2 Change: sort series by name. 2017-10-15 14:33:55 +03:00
Katsuhiko YOSHIDA
b67369daa4 Set auto focus in first input items 2017-10-15 00:02:14 +09:00
Cyriac Thomas
cbc7eee592 fixed stage label typo on sankey and sunburst-sequence editors 2017-10-13 14:44:52 +05:30
Atharva Inamdar
d512cef5af Add support for AWS Redshift Spectrum (external) tables 2017-10-12 14:46:07 +01:00
Atharva Inamdar
c6d1fc103c Merge pull request #1 from getredash/master
merge base master with this fork
2017-10-12 14:43:54 +01:00
Harri Hämäläinen
bf5b31b252 Make invitation token max age configurable 2017-10-12 09:04:45 +03:00
Arik Fraimovich
0c404fa602 Merge pull request #1906 from kitsuyui/add-query-runner-azure-sql-data-warehouse
Query Runner for Azure SQL Data Warehouse
2017-10-11 10:27:02 +03:00
Arik Fraimovich
0ebb6ada3c Merge pull request #2017 from yutannihilation/fix-docker-compose
Fix docker-compose.production.yml
2017-10-11 10:01:25 +03:00
Hiroaki Yutani
d2e519cc3b fix docker-compose.production.yml 2017-10-11 09:53:04 +09:00
Mike Fiedler
be232543d6 Use a custom EmailType/CaseInsensitiveComparator
sqlalchemy doesn't appear to have a case sensitive column, so we craft a
type that can have the semantics of case insensitive comparison.

Ref http://docs.sqlalchemy.org/en/rel_1_1/orm/extensions/hybrid.html#building-custom-comparators

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-10 18:32:00 -04:00
Mike Fiedler
9076715d84 Ensure email is case-insensitive
While RFC 5321 alows for the username/mailbox art of the address to be
case-sensitive, it is hightly discouraged.

    The local-part of a mailbox MUST BE treated as case
    sensitive. Therefore, SMTP implementations MUST take care to
    preserve the case of mailbox local-parts. In particular, for
    some hosts, the user "smith" is different from the user
    "Smith". However, exploiting the case sensitivity of mailbox
    local-parts impedes interoperability and is discouraged.
    Mailbox domains follow normal DNS rules and are hence not
    case sensitive.
    -- https://tools.ietf.org/rfc/rfc5321.txt

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-10 17:49:50 -04:00
Shalom Yerushalmy
9b38f1e81c Added / on api path to prevent wrong url param 2017-10-10 16:28:11 +03:00
Arik Fraimovich
f03c173c57 Merge pull request #2003 from yershalom/create_prometheus_ds
Create prometheus ds
2017-10-10 11:43:59 +03:00
Arik Fraimovich
f89842801f Make URL required. 2017-10-10 11:41:34 +03:00
Arik Fraimovich
56d4ad74a8 Change get_schema to call requests directly. 2017-10-10 11:40:33 +03:00
Arik Fraimovich
334e95afa0 Merge pull request #2004 from modomoto/make_test_run_configurable
Allow setting test file with docker test run
2017-10-09 17:31:25 +03:00
Arik Fraimovich
0443d84848 Merge pull request #2008 from getredash/patches
Change: use outdated queries count stored already in Redis.
2017-10-09 16:43:59 +03:00
Arik Fraimovich
d38f251688 Change: use outdated queries count stored already in Redis. 2017-10-09 16:28:34 +03:00
Arik Fraimovich
890243eb20 Merge pull request #2007 from getredash/patches
Show links based on permissions the user have.
2017-10-09 16:23:34 +03:00
Arik Fraimovich
9fed3266e6 Show links based on permissions the user have. 2017-10-09 16:21:23 +03:00
Shalom Yerushalmy
8fb665be08 Some pep8 styling 2017-10-09 16:19:29 +03:00
Shalom Yerushalmy
c19253648e Changed prometheus name 2017-10-09 16:18:04 +03:00
Mehmet Emin INAC
b8d2df7567 Allow setting nosetests options via environment variable
By setting TEST_ARGS environment variable with -e option of docker-compose
we can set nosetests options to run the tests as we want, like so;

`docker-compose run --rm -e TEST_ARGS="--with-coverage tests/handlers/test_dashboards.py" server tests`
2017-10-09 15:12:04 +02:00
Arik Fraimovich
4603152930 Merge pull request #2006 from getredash/patches
Fix: support UTF8 in MySQL schema
2017-10-09 16:10:41 +03:00
Shalom Yerushalmy
e33e90a69d Remove stftime cause redash already handles this 2017-10-09 16:10:22 +03:00
Arik Fraimovich
f5dcb5d58d Merge pull request #2005 from getredash/patches
Fix: TreasureData queries were failing when returning 0 rows.
2017-10-09 16:09:45 +03:00
Arik Fraimovich
f2f6abe775 Fix: support UTF8 in MySQL schema 2017-10-09 16:09:38 +03:00
Arik Fraimovich
c33189a355 Fix: TreasureData queries were failing when returning 0 rows. 2017-10-09 16:05:58 +03:00
Shalom Yerushalmy
781d997e76 Added redash types 2017-10-09 16:05:11 +03:00
Shalom Yerushalmy
35e02d8043 Changed the timestamp to float 2017-10-09 16:03:35 +03:00
Arik Fraimovich
720af7dabf Update .gitignore 2017-10-09 13:45:58 +03:00
Shalom Yerushalmy
487a8c798c Added back the response.raise_for_status() line 2017-10-09 13:43:43 +03:00
Shalom Yerushalmy
0f580f4540 Changed file due to Arik's request 2017-10-09 13:37:23 +03:00
Arik Fraimovich
cb21024e5c Merge pull request #1981 from yershalom/upgrade_cassandra_version
Upgrade cassandra version
2017-10-09 11:39:03 +03:00
Shalom Yerushalmy
df7b970ff7 Fixed line from 123 char to 120 char due to code climate fail 2017-10-09 11:28:26 +03:00
Shalom Yerushalmy
ff4edb4fbd Added new Promethues data source 2017-10-09 11:20:30 +03:00
Arik Fraimovich
131c9ef036 Merge pull request #1976 from muddydixon/feature/docker-compose-restart-always
users using docker-compose require restart always
2017-10-09 09:36:19 +03:00
Arik Fraimovich
a3071a3ba1 Restart only postgres/redis in dev setup. 2017-10-09 09:36:09 +03:00
Arik Fraimovich
8d5ce85954 Merge pull request #1993 from deecay/box-color
Fix: Setting series color for boxplot
2017-10-09 09:28:09 +03:00
Arik Fraimovich
9d3ae2c34a Merge pull request #1998 from modomoto/fix_revoke_permissons_bug
[FIX] Revoke permission should respect to given grantee and access type.
2017-10-09 09:27:10 +03:00
Mehmet Emin INAC
6d2337b332 Revoke permission should respect to given grantee and access type.
The issue is, if you try to revoke the permission of a user from an
object, all the permissions on this object get removed. The fix is
assigning filtered query object to it's own reference.

According to SQLAlchemy documentation, `filter` method applies to
the **copy** of the query object which means calling filter doesn't
affect the object receiving filter call. For more information;
http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.filter
2017-10-06 12:52:35 +02:00
Arik Fraimovich
1ef2238d65 Merge pull request #1995 from cclauss/modernize-python2-code
Modernize Python 2 code to get ready for Python 3
2017-10-04 22:29:32 +03:00
muddydixon
521d05279b fixed according to https://github.com/getredash/redash/pull/1976#issuecomment-333370285 2017-10-04 10:01:10 +09:00
cclauss
01e85f218a Modernize Python 2 code to get ready for Python 3 2017-10-04 02:06:53 +02:00
Arik Fraimovich
8af028bc90 Merge pull request #1994 from kravets-levko/fix/eslint-error
Fixed eslint "Cannot read property 'length' of undefined" error
2017-10-03 22:49:43 +03:00
Levko Kravets
85da5fced1 Fixed eslint "Cannot read property 'length' of undefined" error 2017-10-03 21:15:10 +03:00
deecay
038d3b1004 Fix: Setting series color for boxplot 2017-10-03 10:25:07 +09:00
Arik Fraimovich
6cf2b94a10 Merge pull request #1989 from getredash/patches
Add option to set the flask-limiter storage engine
2017-10-02 17:26:27 +03:00
Arik Fraimovich
c930c44e3a Add option to set the flask-limiter storage engine 2017-10-02 17:25:54 +03:00
Arik Fraimovich
0753332ef8 Merge pull request #1988 from getredash/patches
Fix: don't crash query editor when there are unclosed curly brackets.
2017-10-02 17:01:22 +03:00
Arik Fraimovich
ed9e409e17 Fix: don't crash query editor when there are unclosed curly brackets. 2017-10-02 16:58:27 +03:00
Arik Fraimovich
c40fffa107 Merge pull request #1986 from getredash/patches
Fix: error value in charts wasn't displayed if it was 0.
2017-10-02 16:43:27 +03:00
Arik Fraimovich
d597665a86 Fix: error value in charts wasn't displayed if it was 0. 2017-10-02 16:43:06 +03:00
Arik Fraimovich
b0bec26138 Merge pull request #1975 from rohithmenon/bugfix/query_based_param
Bugfix/query based param
2017-10-01 14:32:48 +03:00
Arik Fraimovich
0d44466967 Merge pull request #1984 from getredash/patches
Cohort visualization: make it friendlier to use.
2017-10-01 14:26:47 +03:00
Arik Fraimovich
f4cb62782a Merge pull request #1983 from getredash/patches
Fix: Queries#all_queries was sometimes returning wrong number of queries
2017-10-01 14:26:20 +03:00
Arik Fraimovich
3cadd6731c Fix: tests entering endless loop, due to bad input. 2017-10-01 14:26:04 +03:00
Arik Fraimovich
fc18b84f69 Cohort visualization: make it friendlier to use.
Now it can handle gaps in data, so it's easier to generate the data needed.
2017-10-01 14:24:10 +03:00
Arik Fraimovich
f7fc679427 Merge pull request #1965 from alexmuller/firefox-textarea-keydown-prevent-enter
Prevent line breaks in EditInPlace description when using Firefox
2017-10-01 14:23:29 +03:00
Arik Fraimovich
e674b715ef Merge pull request #1966 from alexmuller/different-markdown-library
Use a different markdown library
2017-10-01 14:22:23 +03:00
Arik Fraimovich
029f6335ed Add missing import. 2017-10-01 14:19:26 +03:00
Shalom Yerushalmy
fb4153add7 Upgarde cassasndra-driver version to 3.11.0 2017-09-28 13:28:21 +03:00
Arik Fraimovich
ada8a1255b Fix: Queries#all_queries was sometimes returning wrong number of queries. 2017-09-27 18:17:57 +03:00
Arik Fraimovich
505f338da9 Merge pull request #1978 from getredash/patches
Fix #1950: record_event fails for api events
2017-09-27 18:08:57 +03:00
Arik Fraimovich
18d9b2eec9 Fix #1950: record_event fails for api events 2017-09-27 18:04:21 +03:00
muddydixon
41a03352b9 users using docker-compose require restart always 2017-09-27 17:26:39 +09:00
Rohith Menon
50f817e265 Merged with upstream 2017-09-26 23:18:50 -07:00
Rohith Menon
04ddb289ee Merged with upstream 2017-09-26 23:13:02 -07:00
Rohith Menon
0152250e14 Bugfix: column.type not set by many data sources [sqlite, postgres etc] 2017-09-26 23:07:18 -07:00
Alex Muller
f574cdd179 Use a different markdown library
`marked` has some security vulnerabilities which have been unresolved
for a while. `markdown` seems to be better supported.
2017-09-22 19:08:07 +01:00
Alex Muller
458f213ea7 Update npm-shrinkwrap
Not sure why this hadn't been updated previously.
2017-09-22 18:42:46 +01:00
Alex Muller
f2caae6eb1 Use event.preventDefault() on EditInPlace textarea
Before this change, pressing enter in Firefox 55 would insert a line
break into the description field and then save it.

This change prevents the line break from being inserted before saving.

There's no change to Chrome's behaviour from this change.
2017-09-22 17:54:02 +01:00
Alex Muller
c01cd89de9 Remove magic numbers from EditInPlace()
This makes it a lot easier to read and figure out what's going on.
2017-09-22 17:51:30 +01:00
Alex Muller
5ea3ed7308 Update redirected link in README 2017-09-22 17:51:10 +01:00
Arik Fraimovich
50eb9a86c9 Merge pull request #1961 from fan-t-endo/writer_encode_errors
UnicodeWriter errors code to environment
2017-09-21 21:39:59 +03:00
Shalom Yerushalmy
12cbfc5d12 Added timeout to cassandra 2017-09-18 12:06:35 +03:00
kitsuy
ba7ed5c6f0 Renaming SQL Server to SQL Server ODBC 2017-09-15 19:50:39 +09:00
kitsuy
4fbfa682fe Import types_map and MSSQLJSONEncoder from mssql. It is same. 2017-09-15 19:24:47 +09:00
kitsuy
fb1139a2ea Remove query encoding.
Do not have to encode query.
`execute()` take an unicode query arguments in pyodbc.
2017-09-15 19:02:20 +09:00
kitsuy
8d8ec1a5f8 Rename to Microsoft SQL Server (ODBC) 2017-09-15 18:31:33 +09:00
kitsuy
7582b3174d Add default driver in configuration_schema to specify driver more easily 2017-09-15 18:28:38 +09:00
kitsuy
154b554ecd Remove tds_version (no longer used) 2017-09-15 18:26:21 +09:00
kitsuy
316e014cfa Rename to SQLServerODBC for more precise. 2017-09-15 18:24:39 +09:00
fan-t-endo
048d8fcb5b UnicodeWriter errors code to environment 2017-09-15 17:56:27 +09:00
Arik Fraimovich
8bbb1cdfd4 Fix: wrong variable name used (dataRow instead of row)
Thanks @wu123456. 

Closes #1926.
2017-09-13 22:20:05 +03:00
Arik Fraimovich
94175b8a52 Merge pull request #1899 from queeno/add_oracle_53_support
Fix #1843: Remove deprecated cx_Oracle types
2017-09-13 18:48:14 +03:00
Simon Aquino
c350b43a5a Update oracle client version 2017-09-13 17:40:44 +02:00
Simon Aquino
b379c13e8b Update supported Oracle version 2017-09-13 17:39:04 +02:00
Simon Aquino
7d91e9d173 Fix #1843: Remove deprecated cx_Oracle types
FIXED_UNICODE, LONG_NCHAR, LONG_UNICODE and UNICODE have been removed
from cx_Oracle version 5.3 and should be removed from the TYPES_MAP.
2017-09-13 17:31:40 +02:00
Arik Fraimovich
1b15ea8af9 Merge pull request #1727 from crowdworks/salesforce-error-message
improve Salesforce error message
2017-09-13 17:39:19 +03:00
Arik Fraimovich
e76efc9cdf Merge pull request #1896 from StantonVentures/textbox_editing_fix
Textbox editing fix
2017-09-13 16:03:22 +03:00
Arik Fraimovich
0a311bf63f Merge pull request #1873 from deecay/fix-custom-js
Custom JS code chart improvements
2017-09-13 15:46:43 +03:00
Arik Fraimovich
5069edb9b1 Merge pull request #1876 from TylerBrock/ssl-postgres
Add SSL configuration option for PostgreSQL
2017-09-13 15:44:07 +03:00
Arik Fraimovich
90162b6331 Merge pull request #1920 from deecay/counter-format-string
Counter value string formatting
2017-09-13 15:39:52 +03:00
Arik Fraimovich
398812a14f Merge pull request #1928 from rohithmenon/feature/query_based_parameter
Feature/query based parameter
2017-09-13 15:35:50 +03:00
Arik Fraimovich
2e44872b49 Merge pull request #1955 from getredash/fix_mysql
MySQL: multiple queries support & connection timeout
2017-09-13 14:48:44 +03:00
Arik Fraimovich
e02fdb3e37 MySQL: add support for multiple queries (returning results only of the last one) 2017-09-13 14:38:56 +03:00
Arik Fraimovich
234edd339c MySQL: add connection timeout for bad hosts 2017-09-13 14:38:28 +03:00
Arik Fraimovich
e5cbdf3036 Merge pull request #1946 from Posnet/select-all
Add ability to easily select all for multi-filter
2017-09-13 14:29:15 +03:00
Arik Fraimovich
9b85890204 Merge pull request #1954 from labradorcouk/master
Upgraded dql version to 0.5.24
2017-09-13 14:26:53 +03:00
Antonio Terreno
6295e88d43 Upgraded dql version to 0.5.24 - this allows to query tables in dynamo which have keys with dashes in the name 2017-09-13 09:12:44 +01:00
Arik Fraimovich
7796a57d43 Merge pull request #1930 from mfouilleul/master
Cassandra: get_schema support for both C* 2.x and 3.x, support for SortedSet type serialization.
2017-09-12 15:59:36 +03:00
Rohith Menon
df7fd13bfd Hovertext length (#3)
* Namelength for hoverlabel to avoid truncation

* Update npm-shinkwrap.json
2017-09-06 21:08:18 -07:00
Rohith Menon
6a5a843478 Merge branch 'master' of https://github.com/getredash/redash 2017-09-05 10:35:40 -07:00
Alec Posney
7d4fb280ba Add ability to easily select all for multi-filter
The multi filter option is useful but lacking in an easy easy way to
select all values. I have added in a psudo option '*' that when selected
automatically fills out the mutli-select with all possible filters.

I have also added in a second psudo option '-' which becomes available
_if_ the multi-filter has all possible values selected.
This makes it easy to clear the multi-filter.
2017-09-05 13:31:04 +10:00
Arik Fraimovich
2a22b98c77 Merge pull request #1944 from getredash/fix_permissions
Fix: collaborators couldn't edit visualizations or schedule
2017-09-03 15:00:27 +03:00
Arik Fraimovich
6b56e4a3e3 Allow collaborators to update query schedule. 2017-09-03 14:31:42 +03:00
Arik Fraimovich
47fc6612bf Allow collaborators to create, delete and edit visualizations. 2017-09-03 14:28:34 +03:00
Rohith Menon
f3e5c22c07 Merge/query based parameter (#2)
* Feature: Query based parameter (drop-down)

* Restrict to string column for query parameter

* Fix lint errors

* Fix html in paramters.html

* Addressed comments from @arikfr
2017-08-23 20:48:02 -07:00
Maxime Fouilleul
b42d2c5784 Fix codeclimate notices (trailing space) 2017-08-17 18:19:19 +02:00
Maxime Fouilleul
478a86a892 Fix codeclimate notices (SQL) 2017-08-17 18:17:53 +02:00
Maxime Fouilleul
9e0205d148 Improve and fix cassandra query runner 2017-08-17 18:10:16 +02:00
Rohith Menon
59b7961bcd Addressed comments from @arikfr 2017-08-16 16:04:00 -07:00
Arik Fraimovich
5b54a777d9 Merge pull request #1863 from 44px/ng-annotate-deprecation
Replace deprecated ng-annotate with babel plugin
2017-08-16 16:21:23 +03:00
Arik Fraimovich
3af9b333a8 Merge pull request #1898 from StantonVentures/security_lib_updates_7_27_2017
update libraries
2017-08-16 16:19:57 +03:00
Arik Fraimovich
dcaecdbe16 Merge pull request #1921 from deecay/error-bar-color
Fix: error bar color in sync with series color
2017-08-16 16:19:04 +03:00
Arik Fraimovich
3aa7d86699 Update bootstrap.sh 2017-08-16 16:16:00 +03:00
Rohith Menon
feab2a7e7b Fix html in paramters.html 2017-08-15 13:53:55 -07:00
Rohith Menon
d18220c1af Feature/query based parameter (#1)
* Feature: Query based parameter (drop-down)

* Restrict to string column for query parameter

* Fix lint errors
2017-08-14 21:47:48 -07:00
Rohith Menon
8074a91b29 Fix lint errors 2017-08-14 09:20:58 -07:00
Rohith Menon
72560d985f Restrict to string column for query parameter 2017-08-14 09:15:28 -07:00
Rohith Menon
ff2c8524de Feature: Query based parameter (drop-down) 2017-08-14 00:38:41 -07:00
Alison
1bdea11fe3 updates based on PR comments 2017-08-11 21:17:30 -05:00
Arik Fraimovich
a7bed64707 Merge pull request #1836 from amarjayr/master
LDAP (Active Directory) implementation
2017-08-09 20:46:17 +03:00
Arik Fraimovich
dc969fe0b5 Bump version. 2017-08-09 20:45:26 +03:00
Amar Ramachandran
588c868060 Make ldap3 requirement optional 2017-08-09 10:32:44 -07:00
Arik Fraimovich
89de5f2a18 Fix #1776: restart was using wrong command on new AMI builds 2017-08-08 14:21:43 +03:00
Arik Fraimovich
fe32877864 Update CHANGELOG.md 2017-08-08 13:59:31 +03:00
deecay
e739f90405 Fix: error bar color in sync with series color 2017-08-08 18:27:42 +09:00
deecay
a07135c638 Move counter visualiation formatting controls to tab 2017-08-08 17:45:37 +09:00
Arik Fraimovich
6b531ac568 Merge pull request #1891 from yoavbls/master
Update bootstrap.sh to latest release
2017-08-06 22:06:15 +03:00
Arik Fraimovich
5bce695fcc Remove unused import 2017-08-06 21:02:55 +03:00
Arik Fraimovich
ba910280a1 Mark query/visualization view events coming from dashboards 2017-08-06 21:02:11 +03:00
Arik Fraimovich
2f386781d7 Merge pull request #1915 from getredash/patches
Add 12 & 24 hours refresh rate option to dashboards.
2017-08-06 20:53:43 +03:00
Arik Fraimovich
4c70349ee1 Add 12 & 24 hours refresh rate option to dashboards. 2017-08-06 20:53:07 +03:00
Arik Fraimovich
74b9c51dea Merge pull request #1914 from getredash/patches
Enable memory optimization for Excel exporter.
2017-08-06 20:51:47 +03:00
Arik Fraimovich
d95c22fa24 Enable memory optimizatino for Excel exporter. 2017-08-06 20:51:05 +03:00
Arik Fraimovich
3a7611309c Merge pull request #1913 from getredash/patches
Fix: pivottable not updating after first save
2017-08-06 20:49:45 +03:00
Arik Fraimovich
5281d6c281 Merge pull request #1912 from getredash/patches
Snowflake support is no longer enabled by default
2017-08-06 20:47:56 +03:00
Arik Fraimovich
5bc1e71143 Fix: pivottable not updating after first save 2017-08-06 20:47:52 +03:00
Arik Fraimovich
31ebfb80d7 Snowflake support is no longer enabled by default 2017-08-06 20:45:10 +03:00
Arik Fraimovich
1f8ed8a6c2 Merge pull request #1911 from getredash/patches
Add SQLAlchemy pool settings.
2017-08-06 20:40:51 +03:00
Arik Fraimovich
3d10718650 Merge branch 'master' into patches 2017-08-06 20:40:34 +03:00
Arik Fraimovich
4a4ee49187 Add SQLAlchemy pool settings. 2017-08-06 20:39:37 +03:00
Arik Fraimovich
7bf7b00633 Merge pull request #1910 from getredash/patches
Fix: PostgreSQL passwords with spaces were not supported.
2017-08-06 20:38:16 +03:00
Arik Fraimovich
68e3fe65ba Add: support for category type y axis. 2017-08-06 20:37:39 +03:00
Arik Fraimovich
7fe096fba8 Fix: PostgreSQL passwords with spaces were not supported.
Closes #1056.
2017-08-06 20:34:58 +03:00
Arik Fraimovich
f80951457d Fix: handle the case of query's data source is null 2017-08-06 20:32:51 +03:00
Arik Fraimovich
1da165edc1 Add hard timeout on refresh schema job 2017-08-06 20:32:00 +03:00
Arik Fraimovich
61c7c556b6 Update CHANGELOG.
Thank you @laughingman7743, @ziahamza, @yamamanx, @miketheman, @eyalzek, @alexpekurovsky, @44px, @amarjayr, @unixwitch, @danielerapati, @yershalom, @msnider and @alison985.
2017-08-06 15:53:48 +03:00
Arik Fraimovich
6170c48ed2 Merge pull request #1874 from alexpekurovsky/master
Setting optional limit for done tasks
2017-08-06 14:33:42 +03:00
kitsuy
974f69aecf Query Runner for Azure SQL Data Warehouse
- This is almost copied from mssql.py.
- Microsoft's driver installation is here: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/ubuntu/
2017-08-03 13:22:45 +09:00
deecay
1a8078ab03 Fix: Custom code keeps appending trace per refresh 2017-07-31 19:22:25 +09:00
Alison
1bc8d586c3 update libraries
Based on pyup auto-PR httplib2 and cryptography needed updating which
necessitated updating pyOpenSSL as well.
2017-07-27 21:15:39 -05:00
Alison
a795f1463b Fixes dashboard textbox editing
Combines mozilla/redash PR’s 86 and 95.

There was a bug that saved textbox content on a dashboard when you
tried to close without saving. This fixes it.
2017-07-26 23:15:22 -05:00
Alison
aae77a8b25 Merge remote-tracking branch 'getredash/master' 2017-07-25 15:19:24 -05:00
deecay
c278209883 Counter visualiation formatting 2017-07-25 19:26:52 +09:00
alexpekurovsky
7f8ef2a050 Applying better quality code by @arikfr 2017-07-25 10:19:08 +03:00
alexpekurovsky
d21e11ba33 Creating limit filter for each task state and global limit 2017-07-24 10:13:32 +03:00
alexpekurovsky
1fc990f11a Setting limit for all task states 2017-07-23 13:50:23 +03:00
yoavbls
a09a767641 Update bootstrap.sh to latest release 2017-07-22 17:55:57 +03:00
Arik Fraimovich
12ef64f10d Merge pull request #1889 from StantonVentures/upstream_1888
Send alert ID to UI
2017-07-21 21:04:44 +03:00
Alison
776e52a77c Send alert ID to UI
This will allow alert detail page links on the alert list page to work again.
2017-07-21 12:54:21 -05:00
Tyler Brock
6d8880c10d Add SSL configuration option for PostgreSQL 2017-07-19 11:14:40 -07:00
Arik Fraimovich
5d5af369e6 Merge pull request #1870 from eyalzek/log-stream-config
Add the option to configure log stream
2017-07-19 15:40:26 +03:00
Arik Fraimovich
1d7fef4f7d Merge pull request #1871 from unixwitch/configurable-web-worker-count
docker: make gunicorn worker count configurable
2017-07-19 15:39:27 +03:00
Arik Fraimovich
35cb0bc805 Remove REDASH_WEB_WORKERS from docker-compose.yml.
In development (`dev_server`) we don't use this variable.
2017-07-19 15:39:16 +03:00
Arik Fraimovich
5310385f15 Merge pull request #1884 from miketheman/miketheman/query_link
Add link to query page from admin view
2017-07-19 15:35:08 +03:00
Mike Fiedler
41c791ff42 Add link to query page from admin view
When we have a long0running query, it is useful to look up what that
query definition is. Having a link directly from the admin page cuts
down on the manual step of opying the query id and pasting that into the
address bar.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-07-18 10:54:13 -04:00
alexpekurovsky
9b3f910326 Setting optional limit for done tasks 2017-07-12 15:23:01 +03:00
deecay
aacc4b7b46 Fix: Custom code keeps appending trace per refresh 2017-07-11 17:44:05 +09:00
deecay
605a70d554 Add toggle for automatically updating graph 2017-07-11 17:31:16 +09:00
deecay
73466dc0e0 Make custom js textarea resizable 2017-07-11 15:43:09 +09:00
deecay
3fd90c6289 Fix: Custom code didn't load into editor 2017-07-11 10:15:47 +09:00
eyalzek
97624a3e2c Add the option to configure log stream
by default when using python's `logging` module and a `StreamHandler`,
the stream is directed to `sys.stderr`
(https://docs.python.org/2/library/logging.handlers.html)

By setting the `REDASH_LOG_STDOUT` environment variable to `true` we
enable the option to stream the logs to `sys.stdout`. Setting this
configuration option to `false` (or leaving it as default) will
initialize the `StreamHandler` to `sys.stderr` - meaning the original
behavior remains unchanged.
2017-07-07 23:09:32 +02:00
Liss Tarnell
d69c9409dd docker: make gunicorn worker count configurable
Allow $REDASH_WEB_WORKERS to be set in the environment to change the
number of Gunicorn workers that are started (currently hardcoded to
four).  If not set, the default is four, so this will not affect
existing users at all.

Documentated by example in docker-compose example manifests.
2017-07-06 18:45:47 +01:00
Arik Fraimovich
5bb5f46c02 Merge pull request #1860 from AmarJayR/patch-1
Remove /forgot endpoint if REDASH_PASSWORD_LOGIN_ENABLED is false
2017-07-03 23:22:27 +03:00
Arik Fraimovich
2b6fe22b3f Merge pull request #1865 from msnider/bug/salesforce-sandbox
Fix bug getting the Salesforce sandbox parameter
2017-07-03 23:21:48 +03:00
Alexander Shepelin
53f0716aca Replace deprecated ng-annotate with babel plugin 2017-07-02 14:22:36 +03:00
Arik Fraimovich
fd798ddcf5 Merge pull request #1833 from 44px/webpack2
Update to Webpack 2
2017-07-01 12:39:53 +03:00
Matt Snider
812177a4e0 Fix bug getting the Salesforce sandbox parameter 2017-06-29 20:54:34 -05:00
Amar Ramachandran
b9e08897ac Move ldap auth logic to function 2017-06-29 11:33:57 -07:00
Amar Ramachandran
e445fa436e 404 on forgot endpoint if password disabled 2017-06-29 11:29:58 -07:00
Arik Fraimovich
797a0a30ca Merge pull request #1859 from getredash/fix/alerts
Add: ability to customize Athena configuration schema
2017-06-29 16:06:02 +03:00
Arik Fraimovich
dfd16f3d7a Add: ability to customize Athena configuration schema 2017-06-29 16:04:50 +03:00
Arik Fraimovich
a80aae0ec7 Merge pull request #1858 from getredash/fix/alerts
Add CLI command to open IPython shell
2017-06-29 15:23:34 +03:00
Arik Fraimovich
c8ad866a53 Add CLI command to open IPython shell 2017-06-29 12:21:09 +03:00
Arik Fraimovich
fe2f08cfd6 Merge pull request #1857 from getredash/fix/alerts
Angular configuration improvements
2017-06-29 12:13:22 +03:00
Arik Fraimovich
f64769cc80 Disable Angular debug info (should improve performance) 2017-06-29 12:11:34 +03:00
Arik Fraimovich
831dfe6c8d Enable strict checking for Angular DI 2017-06-29 12:11:15 +03:00
Arik Fraimovich
3b4da81ec6 Merge pull request #1856 from getredash/fix/alerts
Add: ability to set dashboard level filters from UI
2017-06-29 11:03:57 +03:00
Arik Fraimovich
248c540543 Add: ability to set dashboard level filters from UI
Closes #1855.
2017-06-29 10:57:35 +03:00
Arik Fraimovich
0fb0ba6473 Merge pull request #1853 from getredash/fix/alerts
Update boto version to support Athena
2017-06-29 09:49:42 +03:00
Arik Fraimovich
019a09945e Update boto version to support Athena 2017-06-29 09:49:06 +03:00
Arik Fraimovich
520a5f8fa4 Merge pull request #1839 from yamamanx/writer_encode
UnicodeWriter character code to environment
2017-06-29 09:44:41 +03:00
mitsuhiro_yamashita
f840681377 change this to WRITER_ENCODING and REDASH_CSV_WRITER_ENCODING 2017-06-29 08:21:22 +09:00
Amar Ramachandran
300421792c Add log error when LDAP connection fails
Integrate ldap login in login template
2017-06-28 13:32:24 -07:00
Arik Fraimovich
0ab25c317c Merge pull request #1852 from getredash/fix/alerts
Allow sorting alerts list
2017-06-28 22:15:40 +03:00
Arik Fraimovich
c8adf322a9 Allow sorting alerts 2017-06-28 22:11:05 +03:00
Arik Fraimovich
fae1e7152a Merge pull request #1851 from getredash/fix/alerts
Don't allow saving dashboard with empty name
2017-06-28 19:30:23 +03:00
Arik Fraimovich
e543e0c466 Don't allow saving dashboard with empty name 2017-06-28 19:22:59 +03:00
Arik Fraimovich
d61002a544 Merge pull request #1850 from getredash/fix/alerts
No need to load user for recent queries.
2017-06-28 19:22:49 +03:00
Arik Fraimovich
92f93f8ff6 No need to load user for recent queries. 2017-06-28 19:10:26 +03:00
Arik Fraimovich
bf17bdc32d Merge pull request #1793 from danielerapati/fix/alert_with_no_query_result
safeguard alerts against empty query results
2017-06-28 17:31:43 +03:00
Arik Fraimovich
70292c888c Merge pull request #1524 from rainforestapp/master
Allow params once again in embeds
2017-06-28 17:29:14 +03:00
Arik Fraimovich
69cb5b72e1 Merge pull request #1849 from getredash/fix/alerts
Show friendly error message in case of duplicate data source name.
2017-06-28 17:25:13 +03:00
Arik Fraimovich
470d2ad359 Show friendly error message in case of duplicate data source name. 2017-06-28 17:19:17 +03:00
Arik Fraimovich
e85fa2a42c Merge pull request #1848 from getredash/fix/alerts
Fix: when setting rearm on a new alert, it wasn't persisted.
2017-06-28 16:53:17 +03:00
Arik Fraimovich
42116abcb3 Fix: when setting rearm on a new alert, it wasn't persisted. 2017-06-28 16:34:50 +03:00
Arik Fraimovich
2e0b930192 Merge pull request #1847 from getredash/fix/alerts
Fix: alert destination details were not updating.
2017-06-28 16:30:14 +03:00
Arik Fraimovich
24ba110965 Fix: alert destination details were not updating.
Closes #1842.
2017-06-28 16:01:54 +03:00
Arik Fraimovich
e1eeb67025 Merge pull request #1846 from getredash/athena-updates
Athena updates: bring back ability to disable annotations and disable formatter
2017-06-28 14:19:56 +03:00
Arik Fraimovich
71c9cbd5a4 Missing os import. 2017-06-28 12:40:11 +03:00
Arik Fraimovich
e1ac5bb038 Athena: bring back the option to disable query annotations. 2017-06-28 12:30:37 +03:00
Arik Fraimovich
c2e84c92c6 Athena: use simple formatter to avoid the need to escape "%" character. 2017-06-28 12:28:59 +03:00
Arik Fraimovich
090962d09c Merge pull request #1841 from laughingman7743/fix_query_cancellation_condition
Fix query cancellation condition for Athena query runner
2017-06-25 10:29:24 +03:00
laughingman7743
df945a12b0 Fix query cancellation condition 2017-06-24 20:53:35 +09:00
mitsuhiro-yamashita
3f99f0c6d5 Expected 2 blank lines 2017-06-22 23:38:01 +09:00
mitsuhiro-yamashita
4706bebde0 UnicodeWriter character code to environment 2017-06-22 23:34:21 +09:00
Amar Ramachandran
85f729260b Clean up file 2017-06-20 15:33:32 -07:00
Amar Ramachandran
8bf2c15db8 Add ldap auth logic 2017-06-20 15:33:32 -07:00
Amar Ramachandran
9ea4784f87 Add ldap3 requirement 2017-06-20 15:33:32 -07:00
Amar Ramachandran
8be9613640 Add ldap env. config settings 2017-06-20 15:33:32 -07:00
Amar Ramachandran
b611c98112 Add ldap blueprint 2017-06-20 15:33:32 -07:00
Alexander Shepelin
ad3dbad8ac remove ng-annotate-loader from npm-shrinkwrap since it moved to dev dependencies 2017-06-20 23:14:24 +03:00
Alexander Shepelin
62c8bd3531 fix angular core libraries version mismatch 2017-06-20 22:43:59 +03:00
Alexander Shepelin
c8d66b3335 bring back node-sass, update file-loader 2017-06-20 22:43:58 +03:00
Alexander Shepelin
0217d419d1 update ng-annotate loader, move it to devDependencies 2017-06-20 22:43:58 +03:00
Alexander Shepelin
45f448e0d1 update dev server 2017-06-20 22:43:58 +03:00
Alexander Shepelin
ee4b05eb98 update css-related loaders 2017-06-20 22:43:58 +03:00
Alexander Shepelin
202c53c7d7 update config file to webpack2 format 2017-06-20 22:43:41 +03:00
Arik Fraimovich
9816403c45 Merge pull request #1834 from AmarJayR/patch-1
Fix template variable typo
2017-06-20 08:52:08 +03:00
Amar Ramachandran
b6a1178499 Fix template variable typo
Should be email instead of username (see redash/templates/login.html:47)
2017-06-19 17:10:40 -07:00
Arik Fraimovich
2fe6110e0f Merge pull request #1831 from getredash/feature_auto_publish
Fix: if column had no type it would use previous column's type
2017-06-18 13:02:19 +03:00
Arik Fraimovich
c4e18bb481 Fix: if column had no type it would use previous column's type 2017-06-18 12:31:32 +03:00
Arik Fraimovich
add8f0eeeb Merge pull request #1830 from getredash/feature_auto_publish
Change: auto publish named queries
2017-06-18 12:30:32 +03:00
Arik Fraimovich
694d971df9 Auto publish named queries 2017-06-18 12:12:02 +03:00
Arik Fraimovich
36c93ce212 Merge pull request #1809 from laughingman7743/impl_athena_query_runner_using_restapi
Implement Athena query runner using RestAPI
2017-06-15 15:02:23 +03:00
laughingman7743
35fe1f23e3 Fix configuration schema key name 2017-06-15 20:59:50 +09:00
Arik Fraimovich
2517abb27f Merge pull request #1821 from getredash/fix_api_session
Fix: /api/session API call wasn't working when multi tenancy enabled
2017-06-14 12:13:04 +03:00
Arik Fraimovich
1d749a83e1 Fix: /api/session API call wasn't working when multi tenancy enabled 2017-06-14 12:06:18 +03:00
Arik Fraimovich
fc50a7b9bb Remove outdated comment 2017-06-14 12:05:49 +03:00
Arik Fraimovich
6f72d456d2 Remove unused code 2017-06-14 12:05:49 +03:00
Arik Fraimovich
1182f8c6b0 Merge pull request #1813 from 44px/parameters-styles
UI change: add some space between parameters
2017-06-13 11:24:27 +03:00
Arik Fraimovich
f090f947b7 Merge pull request #1820 from getredash/patches
Fix: clear null values from options dictionary
2017-06-13 09:52:24 +03:00
Arik Fraimovich
a8246471f4 Fix: clear null values from options dictionary 2017-06-13 09:42:20 +03:00
Arik Fraimovich
229c33939c Merge pull request #1819 from getredash/patches
Fix: form component was inserting empty values
2017-06-13 09:41:24 +03:00
Arik Fraimovich
ef2eaf1fa9 Fix: form component was inserting empty values 2017-06-13 09:39:33 +03:00
Arik Fraimovich
d30f4f155a Merge pull request #1818 from getredash/patches
Fix: BigQuery wasn't loading due to bad import
2017-06-13 09:38:53 +03:00
Arik Fraimovich
b2e5df6af2 Fix: BigQuery wasn't loading due to bad import 2017-06-13 09:38:39 +03:00
Arik Fraimovich
0470cd6592 Stupid typo fix 2017-06-12 12:41:44 +03:00
Arik Fraimovich
a517dad456 Merge pull request #1817 from getredash/metrics
Metrics code update
2017-06-12 12:40:32 +03:00
Alexander Shepelin
789ef1614d Merge remote-tracking branch 'upstream/master' into parameters-styles 2017-06-12 12:14:17 +03:00
Alexander Shepelin
3dfab5009c put parameter label on top of input 2017-06-12 12:02:03 +03:00
Arik Fraimovich
7d5d7c4a6b Change: report endpoints without dots for metrics 2017-06-12 11:35:44 +03:00
Arik Fraimovich
5056d2fa90 Fix: table name wasn't found for count queries. 2017-06-12 11:35:05 +03:00
Arik Fraimovich
1fad874dee Change: redirect to / when org not found 2017-06-12 09:47:08 +03:00
Arik Fraimovich
a2c79367de Merge pull request #1812 from 44px/fix-search-input-style
UI change: same view for input on search result page as in header
2017-06-11 14:39:00 +03:00
Arik Fraimovich
bcf129e646 Merge pull request #1814 from yershalom/master
Fixed cassandra DS bug by adding port to connection string
2017-06-11 14:38:18 +03:00
Shalom Yerushalmy
94077ccafd Fixed cassandra DS bug by adding port to connection string 2017-06-08 15:44:09 +03:00
Alexander Shepelin
411ef7bd00 Add some space between parameters 2017-06-07 23:27:39 +03:00
Alexander Shepelin
6b22c2c541 Same view for input on search result page as in header 2017-06-07 23:03:05 +03:00
laughingman7743
e385a147f6 Add Athena query runner as default query runners 2017-06-06 22:01:44 +09:00
laughingman7743
ad69a6be3f Add secret field 2017-06-05 23:28:28 +09:00
laughingman7743
a6c45da2ca Add KeyboardInterrupt handling 2017-06-05 23:26:56 +09:00
laughingman7743
d5c4d9336f Fix configuration schema name to same name as previous query runner 2017-06-05 23:25:49 +09:00
laughingman7743
c1f8e2a4e0 Add query runner name 2017-06-05 23:03:32 +09:00
laughingman7743
fe42195b5a Implement Athena query runner using RestAPI 2017-06-05 22:09:30 +09:00
Arik Fraimovich
6a0bb82f3c Merge pull request #1807 from 44px/fix-setup-redirect
Fix redirect to /setup on the last setup step
2017-06-05 07:42:51 +03:00
Alexander Shepelin
69825e001f fix redirect to /setup after install 2017-06-04 17:24:47 +03:00
Arik Fraimovich
ad8571f2e3 Merge pull request #1803 from getredash/fix_1725
Fix: delete data source doesn't work when query results referenced by queries.
2017-06-02 18:17:52 +03:00
Arik Fraimovich
fbd3b92ba0 Fix: delete data source doesn't work when query results referenced by queries. 2017-06-02 18:11:34 +03:00
Arik Fraimovich
4f6c433f1b Merge pull request #1796 from shotat/feature/re-dash
Fix deprecated `re-dash` expressions in CONTRIBUTING.md
2017-06-01 14:46:39 +03:00
Arik Fraimovich
412f469035 Merge pull request #1800 from hfm/fix-changelog
Fix CHANGELOG markdown
2017-06-01 14:37:48 +03:00
OKUMURA Takahiro
eee38557d1 Fix markdown
the changelog markdown before v1.0 is broken.
2017-06-01 14:46:18 +09:00
Daniele Rapati
23cb92cf6d safeguard alerts against empty query results
alert will revert to UNKNOWN_STATE in case of no data
2017-05-30 22:30:32 +01:00
shotat
108137bd7e fix CONTRIBUTING.md 2017-05-30 23:51:21 +09:00
hamza zia
6bc53c3638 use default embed.py 2017-05-30 16:33:56 +05:00
hamza zia
e54fff402e fixed import bug 2017-05-30 16:32:09 +05:00
hamza zia
8d125354d2 merged changes 2017-05-30 14:19:18 +05:00
hamza zia
fc96e14a8f Only run queries when given parameters 2017-05-30 12:26:09 +05:00
hamza zia
178dfa59c1 Merge branch 'master' into master 2017-05-30 09:09:37 +05:00
Arik Fraimovich
8719de7120 Merge pull request #1792 from getredash/fix_1725
Fix: remove unneeded calls to app_context()
2017-05-29 23:37:27 +03:00
Arik Fraimovich
af8bdf4fd1 Fix: remove unneeded calls to app_context()
When the extra app_context was popped from the stack, it was
triggering flask-sqlalchemy's teardown handler, which was removing
the session causing objects to become detached before they should
be.
2017-05-29 16:41:42 +03:00
Arik Fraimovich
764e347b74 Merge pull request #1736 from shimpeko/extend_redis_expiry_time
Extend expiry time to prevent duplicate execution
2017-05-23 10:53:10 +03:00
Arik Fraimovich
2f1b1a69bd Add CHANGELOG entry. 2017-05-23 10:52:54 +03:00
Arik Fraimovich
b2fea428dd Fix: use correct APIs 2017-05-23 09:19:14 +03:00
Shimpei Kodama
1f1d7996ec Shorten celery task expiry time to avoid too many redis objects 2017-05-23 12:24:03 +09:00
Arik Fraimovich
47dc9a136f Merge pull request #1779 from getredash/patches
Add: "dumb" recents option
2017-05-22 23:15:38 +03:00
Arik Fraimovich
6ed86d9ce5 Merge pull request #1778 from getredash/patches
Upgrade Snowflake connector
2017-05-22 14:26:57 +03:00
Arik Fraimovich
8e760705a6 Add: "dumb" recents option
In some cases showing recent queries/dashboards based on events becomes
too "expensive" in terms of database resources. This is a fallback option
to show recently updated queries/dashboards instead.
2017-05-22 14:26:26 +03:00
Arik Fraimovich
9c606b9660 Update Snowflake connector 2017-05-22 14:18:34 +03:00
Arik Fraimovich
f65b3223f4 Remove chatty log lines 2017-05-22 14:17:27 +03:00
Arik Fraimovich
e85e962466 Update CHANGELOG and bump version 2017-05-18 15:37:18 +03:00
Arik Fraimovich
a7df809c4d Merge pull request #1774 from getredash/patches
Scheduled queries improvements:
2017-05-18 15:17:03 +03:00
Arik Fraimovich
beb29c66c2 Scheduled queries improvements:
* Schedule queries with parameters using the default value.
* Keep track of last execution (including failed ones) for scheduling purposes.
2017-05-18 15:10:19 +03:00
Arik Fraimovich
749171b186 Merge pull request #1746 from alexanderlz/master
[Data Sources] Add: MemSQL query runner
2017-05-18 14:01:53 +03:00
Arik Fraimovich
40a8187b1e Merge pull request #1773 from getredash/patches
Split refresh schemas into separate tasks and add a timeout.
2017-05-18 14:00:26 +03:00
Alexander Leibzon
6b7234c910 fixes 2017-05-18 14:00:13 +03:00
Arik Fraimovich
3807510bfe Split refresh schemas into separate tasks and add a timeout. 2017-05-18 13:39:34 +03:00
Arik Fraimovich
3650617928 Merge pull request #1772 from getredash/patches
Upgrade Sentry client.
2017-05-18 13:33:26 +03:00
Arik Fraimovich
d60843fa5b Sentry: don't install logging hook. 2017-05-18 13:26:36 +03:00
Arik Fraimovich
5a5917a04a Sentry: upgrade client version. 2017-05-18 13:24:53 +03:00
Arik Fraimovich
ae642fddf7 Merge pull request #1771 from getredash/patches
Show API key in a dialog instead of alert
2017-05-18 13:21:28 +03:00
Arik Fraimovich
b4a8fb76de Merge pull request #1770 from getredash/patches
UI changes
2017-05-18 12:58:58 +03:00
Arik Fraimovich
b885ccb09c Show API Key in a modal dialog instead of alert. 2017-05-18 11:53:16 +03:00
Arik Fraimovich
b70c329307 Dynamic form: change order of name and type (type first now). 2017-05-18 11:37:54 +03:00
Arik Fraimovich
1aa54543ed Retry reload of query results if it had an error 2017-05-18 11:28:40 +03:00
Arik Fraimovich
e050c085df Counter: support negative indexes to iterate from the end of the results. 2017-05-18 11:28:25 +03:00
Arik Fraimovich
62962d28ca Only split columns with __/:: that end with filter/MultiFilter. 2017-05-18 11:15:21 +03:00
Arik Fraimovich
d7c502eb50 Query results: better type guessing on the client side. 2017-05-18 11:13:11 +03:00
Arik Fraimovich
dd7841dc15 Merge pull request #1769 from getredash/patches
Improvements to background jobs
2017-05-18 11:09:35 +03:00
Arik Fraimovich
14c751b39e Cohort: handle the case where the value/total might be strings. 2017-05-18 11:07:39 +03:00
Arik Fraimovich
f4297ff3b0 Handle the case when the task object might not exist. 2017-05-18 09:36:21 +03:00
Arik Fraimovich
79ffbbbe4b Don't include paused datasource's queries in outdated queries count. 2017-05-18 09:34:32 +03:00
Arik Fraimovich
4c1cb037a0 Include Celery task name in statsd metrics. 2017-05-18 09:33:28 +03:00
Arik Fraimovich
f679dc7562 Put a limit on how many keys we remove at a time to make sure it
can handle large lists.
2017-05-18 09:31:04 +03:00
Arik Fraimovich
76470b9f09 Fix: don't remove locks for queries with task status of PENDING.
It's possible the Celery metadata object was expired, but the task
is still running (which will result in PENDING status when querying
the AsyncResult object).
2017-05-18 09:25:44 +03:00
Arik Fraimovich
3edec570f1 Merge pull request #1767 from getredash/patches
Google Spreadsheets: add timeout to request.
2017-05-17 18:53:44 +03:00
Arik Fraimovich
a2e07b46f2 Merge pull request #1756 from deecay/dashboard-list-sort
Change: Sort dashboard-list in /dashboards
2017-05-17 18:36:58 +03:00
Arik Fraimovich
326a80895c Merge pull request #1615 from deecay/pivot_hide_control
Add: option to hide pivot table controls
2017-05-17 18:35:31 +03:00
Arik Fraimovich
d200cc7405 Merge pull request #1690 from deecay/sqlite-unicode-error
Fix: SQLite utf-8 error messages
2017-05-17 18:34:10 +03:00
Arik Fraimovich
c4dff40e1d Merge pull request #1760 from rockwotj/master
Add: static enum parameter type.
2017-05-17 18:17:56 +03:00
Arik Fraimovich
21636c4d65 Rename Enum to Dropdown List. 2017-05-17 18:17:08 +03:00
Arik Fraimovich
52084c322f Google Spreadsheets: add timeout to request. 2017-05-17 18:15:04 +03:00
Arik Fraimovich
5fd2dadef4 Merge pull request #1765 from getredash/patches
Multiple improvements to data sources (MySQL, InfluxDB, BigQuery, MongoDB, TreasureData, Postgres, ElasticSearch, MSSQL, Google Spreadsheets)
2017-05-16 12:08:23 +03:00
Arik Fraimovich
f312e89323 Google Analytics: support for mcf queries & better errors. 2017-05-16 11:25:11 +03:00
Tyler Rockwood
0046cfa3ee Make it work 2017-05-15 14:41:20 -07:00
Tyler Rockwood
4ecc8da398 Addressing comments 2017-05-15 13:52:12 -07:00
Arik Fraimovich
382431e34b MySQL: support for RDS MySQL and SSL 2017-05-15 17:22:55 +03:00
Arik Fraimovich
6023dc5f3d MySQL: option to hide SSL settings. 2017-05-15 17:15:11 +03:00
Arik Fraimovich
2d38b38a7d Google Spreadsheets: handle distant future dates. 2017-05-15 16:55:57 +03:00
Arik Fraimovich
3513d84bb8 Less verbose logging in data sources. 2017-05-15 16:53:47 +03:00
Arik Fraimovich
24cd55f5cc Reduce log level for apiclient. 2017-05-15 16:51:39 +03:00
Arik Fraimovich
0bce6996bf MSSQL: return integers as floats. 2017-05-15 16:50:41 +03:00
Arik Fraimovich
6edfdfba63 BigQuery: remove print statement. 2017-05-15 16:49:10 +03:00
Arik Fraimovich
ddbbe1267a InfluxDB: simpler test connection query (show databases requries admin) 2017-05-15 16:48:16 +03:00
Arik Fraimovich
7fada5d5f7 ElasticSearch: debug_enabled should be false by default 2017-05-15 16:47:21 +03:00
Arik Fraimovich
c3f5a37e21 Postgres: support for loading materialized views in schema. 2017-05-15 16:29:03 +03:00
Arik Fraimovich
a76c87b3ae MongoDB: add $oids JSON extension. 2017-05-15 16:27:27 +03:00
Arik Fraimovich
4a0612328e TreasureData: improve error handling and upgrade client. 2017-05-15 16:25:18 +03:00
Arik Fraimovich
931c322ad7 Merge pull request #1763 from getredash/multi_org
Support for MULTI_ORG in v1
2017-05-15 12:58:16 +03:00
Arik Fraimovich
58c61641d3 Merge pull request #1759 from alexanderlz/mongo_csv_download_fix
Change: ignore additional columns in csv output
2017-05-11 15:30:19 +03:00
Tyler Rockwood
b675cd19d7 Add static enum option to redash 2017-05-09 13:41:58 -07:00
Alexander Leibzon
17b9f976c8 fix #1664 2017-05-09 17:56:40 +03:00
Alexander Leibzon
248808e165 Merge remote-tracking branch 'upstream/master' 2017-05-09 17:53:08 +03:00
Arik Fraimovich
7c6327be57 Clicking logo should take to account homepage 2017-05-09 10:42:30 +03:00
Arik Fraimovich
a86ece66b5 Add chunkhash to filename only when running production build. 2017-05-09 10:41:26 +03:00
deecay
fd9461ef20 Resolving merge 2017-05-08 11:48:14 +09:00
deecay
f121c609ad Change: Sort dashboard-list in /dashboards 2017-05-08 11:28:41 +09:00
Arik Fraimovich
24f3e071e3 Merge pull request #1754 from getredash/fix_ds_new
Fix: properties of data source were not reset when changing type.
2017-05-07 12:38:51 +03:00
Arik Fraimovich
914977f279 Fix: properties of data source were not reset when changing type.
Fixes #1748.
2017-05-07 12:35:23 +03:00
Arik Fraimovich
97b92d8887 Merge pull request #1738 from suemoc/disable-annotations-athena
[Athena] Fix: queries throwing errors except for SELECT
2017-05-07 10:21:48 +03:00
Arik Fraimovich
c1981b17a4 Merge pull request #1747 from denisov-vlad/jira-maxresults
[JQL] Fix: allow to override maxResults
2017-05-05 09:34:49 +03:00
Vladislav Denisov
ea7c6c2be3 jql: fixed maxResults in count query 2017-05-05 09:26:09 +03:00
Arik Fraimovich
22e3a4d8f2 Merge pull request #1753 from fbertsch/presto_cancellation
[Presto] Add: query cancellation support
2017-05-04 23:21:59 +03:00
Frank Bertsch
75ebbe148b Add presto query cancellation 2017-05-04 11:10:04 -05:00
Arik Fraimovich
75f90c190b Update test for new path 2017-05-04 11:49:10 +03:00
Arik Fraimovich
8aa053ce21 Log public dashboard view event 2017-05-04 11:27:27 +03:00
Arik Fraimovich
23ba8b4aa1 use relative links 2017-05-04 10:39:39 +03:00
Arik Fraimovich
6dde3170ab Make embed & shared dashboard routes use mutli_org template 2017-05-04 10:39:32 +03:00
Arik Fraimovich
b9144a9d7a WIP: support for MULTI_ORG mode (#1447) 2017-05-03 23:53:23 +03:00
Yohei Susa
a1a0d766fe Add environment variable for switching query annotations of Athena to disable 2017-05-03 22:17:59 +09:00
Vladislav Denisov
48322856d9 jql: maxResults fix 2017-05-03 08:52:51 +03:00
Alexander Leibzon
b9f8b6cdbf reformat, as for pep-8 2017-05-02 23:49:09 +03:00
Alexander Leibzon
805ea3cb46 Merge remote-tracking branch 'upstream/master' 2017-05-02 23:37:12 +03:00
Alexander Leibzon
79187cd29a get_schema fix 2017-05-02 23:36:11 +03:00
Arik Fraimovich
ccaf78767b Merge pull request #1700 from deecay/plotly-bump
Change: upgrade Plotly.js.
2017-05-02 22:02:21 +03:00
Arik Fraimovich
94a14f93a8 Remove dev dependencies from npm-shrinkwrap.json. 2017-05-02 22:00:09 +03:00
Arik Fraimovich
5ba6af6ad4 Merge pull request #1713 from deecay/plotly-box
Change: Box plot library from d3.js to Plotly.js
2017-04-30 23:14:18 +03:00
Arik Fraimovich
25760494d7 Merge pull request #1636 from axibase/propertyOrder
[Feature] add: the propertyOrder field to specify order in DataSource settings
2017-04-30 12:31:04 +03:00
Arik Fraimovich
a1fbd511a9 Merge pull request #1651 from axibase/feature/datasource_default_fileds_values
Fix: set default values in options to enable 'default: True' for checkbox
2017-04-30 12:30:32 +03:00
Arik Fraimovich
1b756de479 Merge pull request #1670 from ahamino/fix-google-integration
Change: newer Google API client library
2017-04-30 12:29:34 +03:00
Arik Fraimovich
a9e53a6c29 Merge pull request #1709 from dotneet/add_maximum_billing_tier_to_bigquery
[BigQuery] Add: maximumBillingTier configuration
2017-04-30 12:27:11 +03:00
Arik Fraimovich
111fbfd483 Merge pull request #1721 from jvanegmond/master
[JIRA JQL] Change: change default max results limit from 50 to 1000
2017-04-30 11:59:19 +03:00
Arik Fraimovich
437778a8be Merge pull request #1730 from mfouilleul/master
[Cassandra] Add: support for UUID serializing and setting protocol version
2017-04-30 11:57:55 +03:00
deecay
1c955a570d Bump Plotly version 2017-04-30 11:47:43 +09:00
Alexander Leibzon
469b041a2f Merge remote-tracking branch 'upstream/master' 2017-04-30 01:53:02 +03:00
deecay
7a47d6741d Change: Chosing box plot turns sortX off 2017-04-29 23:42:58 +09:00
Yohei Susa
214a231371 Disable query annotations to Athena query runner 2017-04-27 18:45:49 +09:00
Shimpei Kodama
eb3e30f70f Extend expiry time to prevent duplicate execution 2017-04-25 11:00:52 +09:00
Abdelrahman Mahmoud
7324f1f4c7 Fix code climate warnings 2017-04-23 12:41:49 -04:00
Abdelrahman Mahmoud
93df24de39 Fix Google analytics, Google Spreadsheet and Big Query integration .. upgrade outh2client and google-api-python-client 2017-04-23 12:41:49 -04:00
Maxime Fouilleul
9f21807647 remove useless param 2017-04-20 11:33:12 +02:00
Maxime Fouilleul
9b59394768 Fix default values for proto/cqlversion 2017-04-20 11:16:37 +02:00
Maxime Fouilleul
ac1b0a46f9 Fix trailing spaces (style) 2017-04-19 23:00:39 +02:00
Maxime Fouilleul
5d7795ca47 Fix code style 2017-04-19 22:14:27 +02:00
Maxime Fouilleul
519fb49f6a Improve cassandra lib 2017-04-19 16:39:43 +02:00
Arik Fraimovich
f504b682f3 Bump version. 2017-04-18 22:50:57 +03:00
Arik Fraimovich
f0719f5ea4 Fix: sort by header no longer working.
Closes #1726.
2017-04-18 22:50:33 +03:00
Akira Yumiyama
f852f935c5 improve Salesforce error message 2017-04-18 23:37:05 +09:00
Arik Fraimovich
939aae086f ADd changelog entry for favicons fix 2017-04-18 15:22:05 +03:00
Arik Fraimovich
742e38b08d Update CHANGELOG and bump version 2017-04-18 15:20:21 +03:00
Arik Fraimovich
3c7c93fc9f Fix: favicon wasn't showing up.
Closes #1719.
2017-04-18 15:19:57 +03:00
Arik Fraimovich
53ffff9759 Merge pull request #1716 from deecay/dashboard-tag-m17n
Fix: Non-ASCII dashboard tag
2017-04-18 15:02:27 +03:00
Arik Fraimovich
2e7fafc4d8 CHANGELOG update. 2017-04-18 14:59:44 +03:00
Jos van Egmond
ccf9cbd2c8 Raise JQL limit from default 50 to 1000 2017-04-14 16:06:38 +02:00
hamza zia
730b7c8cad merged upstream 2017-04-11 13:20:13 -04:00
Arik Fraimovich
c66b09effe Merge pull request #1717 from getredash/fix_embeds
Fix: page freezes when rendering large result set.
2017-04-11 18:33:11 +03:00
Arik Fraimovich
a087fe4bcd Fix: page freezes when rendering large result set.
Closes #1711.
2017-04-11 18:05:43 +03:00
deecay
ac557fd5b5 Change: Box plot library from d3 to Plotly 2017-04-07 19:35:28 +09:00
Arik Fraimovich
1f4946cc04 Merge pull request #1710 from getredash/fix_embeds
Fix: embeds were not rendering in PhantomJS.
2017-04-05 12:58:05 +03:00
Arik Fraimovich
08505a2208 Add changelog entry 2017-04-05 12:40:56 +03:00
Arik Fraimovich
e1c186bbf8 Fix: embeds were not rendering in PhantomJS.
Include polyfill for missing ArrayView functions.

Closes #1708.
2017-04-05 12:38:21 +03:00
devneko
91396f0c52 Add: maximumBillingTier for BigQuery 2017-04-05 16:11:17 +09:00
Arik Fraimovich
c83d354eed Merge pull request #1707 from getredash/docker-compose
Update docker-compose configuration:
2017-04-03 18:30:55 +03:00
Arik Fraimovich
81063731c9 Update docker-compose configuration:
* Use newer versions of Redis & PostgreSQL
* Use image for production docker-compose.
2017-04-03 18:28:46 +03:00
Arik Fraimovich
f66fe5ff80 Update packer configuration to create GCE image 2017-04-03 18:07:19 +03:00
Arik Fraimovich
8425698583 Update env 2017-04-03 13:18:34 +03:00
Arik Fraimovich
8b08b1a563 Merge pull request #1704 from getredash/new_bootstrap
New bootstrap script for Ubuntu 16.04
2017-04-03 13:16:53 +03:00
Arik Fraimovich
15b228b754 Update README 2017-04-03 12:54:23 +03:00
Arik Fraimovich
1db4157b29 Fix bootstrap script to be headless 2017-04-03 12:54:17 +03:00
Arik Fraimovich
079530cf63 Remove unused files 2017-04-03 12:54:05 +03:00
Arik Fraimovich
d2370a94c7 New bootstrap script 2017-04-03 10:30:06 +03:00
deecay
9f3fd021ab Fix backward compatibility and resolve conflict 2017-04-03 16:25:23 +09:00
Arik Fraimovich
903463972b Fix: handle the case when a scheduled query wasn't run before 2017-04-02 15:20:45 +03:00
Arik Fraimovich
2707e24f30 Update CHANGELOG & version 2017-04-02 14:43:02 +03:00
Arik Fraimovich
3df826692c Merge pull request #1703 from getredash/queries
Fix: optimize queries to avoid N+1 cases
2017-04-02 14:09:12 +03:00
Arik Fraimovich
1142a441fc Fix: optimize queries to avoid N+1 cases 2017-04-02 14:01:23 +03:00
Arik Fraimovich
53268989c5 Merge pull request #1701 from akiray03/refactor-next-to-next_path
Change: rename local variable `next` to `next_path`
2017-04-02 11:15:46 +03:00
deecay
83ed9fdc51 Fix: Dashboard tag for unicode dashboard names 2017-04-01 23:28:53 +09:00
Akira Yumiyama
0dc98e87a6 rename local variable next to next_path. because shadow built-in methods. 2017-04-01 20:25:23 +09:00
Arik Fraimovich
0cf4db1137 Update atsd_client version. 2017-03-30 15:19:57 +03:00
Arik Fraimovich
4e27069d07 Merge pull request #1696 from spasovski/percentstack
Fix: wrong percent stacking math
2017-03-30 12:15:05 +03:00
Davor Spasovski
3fcd07bc1c fix percent stacking math (issue 41) 2017-03-29 15:07:37 -04:00
Arik Fraimovich
3414ff7331 Update CHANGELOG.md 2017-03-27 15:07:11 +03:00
Arik Fraimovich
04cd798c48 Update changelog 2017-03-27 15:07:00 +03:00
Arik Fraimovich
50dcf23b1a Merge pull request #1665 from benmagro/filter_params
Fix: Set query filter to match dashboard level filters
2017-03-27 13:13:30 +03:00
Arik Fraimovich
1bb4d6d534 Fix condition to only have effect when there is a value in query string. 2017-03-27 13:12:50 +03:00
Arik Fraimovich
66a5e394de Merge pull request #1688 from akiray03/refactoring-query-results-export
[Refactoring] make_{csv,excel}_content move to models from handlers
2017-03-27 12:42:58 +03:00
Arik Fraimovich
c4ab0916cc Merge pull request #1682 from denisov-vlad/clickhouse-types-fix
[Clickhouse] Fix: better support for types
2017-03-27 12:18:17 +03:00
deecay
9dedaa31c5 Fix: SQLite utf-8 error messages 2017-03-27 16:48:57 +09:00
deecay
de77ebd961 Bump Plotly version 2017-03-27 15:16:42 +09:00
Arik Fraimovich
73cb6925d3 Merge pull request #1689 from getredash/feature/bubble
Fix: user can't edit their own alert
2017-03-26 11:55:39 +03:00
Arik Fraimovich
aaf0da4b70 Fix: user can't edit their own alert 2017-03-26 11:45:13 +03:00
Arik Fraimovich
c99bd03d99 Merge pull request #1666 from deecay/pivot-getdata
Change: add support for filtered data in Pivot table visualization
2017-03-26 11:33:57 +03:00
Akira Yumiyama
7fbb1b9229 [Refactoring] make_{csv,excel}_content move to models from handlers
I want to be able to use like: `python manage.py queries export <query_id>`
2017-03-26 12:24:10 +09:00
Arik Fraimovich
ba54d68513 Merge pull request #1686 from msnider/salesforce-sandbox
[Salesforce] Change: Sandbox cannot be required or it will force it to be True.
2017-03-25 21:08:22 +03:00
Matt Snider
f73cbf3b51 Sandbox cannot be required or it will force it to be True. Also, dont annotate SOQL queries as they dont allow comments 2017-03-25 12:19:53 -05:00
deecay
3f047348e2 Pivottable shows filtered data 2017-03-23 21:08:57 +09:00
deecay
10fe3c5373 Revert "Pivottable shows filtered and formatted data"
This reverts commit f011d3060a.
2017-03-23 21:07:56 +09:00
Vladislav Denisov
9c8755c9ae clickhouse: added support for nullable columns 2017-03-22 10:28:44 +03:00
Vladislav Denisov
e8908d04bb issues/1616: fixed clickhouse types 2017-03-22 09:44:21 +03:00
hamza zia
7bdc42ff05 Merge pull request #1 from getredash/master
Upstream Update
2017-03-21 23:19:53 +08:00
Arik Fraimovich
293f9dcaf6 Merge pull request #1680 from getredash/feature/bubble
Add: bubble charts support
2017-03-21 10:58:36 +02:00
Arik Fraimovich
ce31b13ff6 Add: bubble charts support 2017-03-21 10:46:11 +02:00
Arik Fraimovich
a033dc4569 Fix: angular minification issue in textbox editor 2017-03-20 17:41:52 +02:00
Arik Fraimovich
6ff338964b Fix: angular minification issue in schema browser 2017-03-20 17:37:32 +02:00
Arik Fraimovich
97a7701879 Merge pull request #1617 from 44px/refresh-schema-button
Add "Refresh Schema" button to the datasource
2017-03-20 14:11:05 +02:00
Arik Fraimovich
7558b391a9 Merge pull request #1673 from 44px/editorconfig
Add: .editorconfig to keep code style consistent
2017-03-20 10:54:58 +02:00
Alexander Shepelin
b6bed112ee Add .editorconfig to keep code style consistent 2017-03-17 01:09:44 +03:00
Alexander Shepelin
9417dcb2c2 preserve old schema if we get error on refresh 2017-03-16 23:56:56 +03:00
Alexander Shepelin
5f106a1eee Merge remote-tracking branch 'origin/master' into refresh-schema-button 2017-03-16 23:20:21 +03:00
Arik Fraimovich
cda05c73c7 Merge pull request #1657 from deecay/ie-scrollbar
Show vertical scrollbar for IE
2017-03-16 11:59:42 +02:00
deecay
95398697cb Set ms-overflow-style to auto for html 2017-03-16 18:29:25 +09:00
Arik Fraimovich
dc019cc37a Merge pull request #1649 from getredash/fixes201602
Fix: datetime parameters were not using a date picker.
2017-03-15 18:08:32 +02:00
rmakulov
5306814237 rm left overs 2017-03-15 19:01:56 +03:00
Arik Fraimovich
72cb5babe6 Change datetime serialization format 2017-03-15 18:00:25 +02:00
Arik Fraimovich
ebc2e12621 Merge pull request #1622 from axibase/master
[Data Sources] Add: ATSD query runner
2017-03-15 16:31:03 +02:00
deecay
f011d3060a Pivottable shows filtered and formatted data 2017-03-10 19:10:31 +09:00
Ben Magro
8c5f71a0a1 set filter paramas in query to match dashboard level filters when they are present 2017-03-10 11:28:39 +11:00
Arik Fraimovich
da00e74491 Merge pull request #1660 from akiray03/docker-entrypoint-support-manage-py
Add: docker-entrypoint for manage.py's commands.
2017-03-08 15:49:14 +02:00
Akira Yumiyama
b56ff1357e docker-entrypoint supports manage.py's any commands. 2017-03-08 22:41:15 +09:00
Arik Fraimovich
ecd4d659a8 Merge pull request #1494 from yuua/impala-schema
[Impala] enable schema browser
2017-03-07 14:37:42 +02:00
Arik Fraimovich
fec5565396 Merge pull request #1650 from deecay/v1-ie11
Add babel-plugin-transform-object-assign for IE support
2017-03-07 14:32:41 +02:00
Arik Fraimovich
6ec5ea5c28 Resume to building Docker images 2017-03-07 12:26:00 +02:00
Arik Fraimovich
3f8e32cc1f Merge pull request #1656 from getredash/docker
Fix Docker file ownership issues:
2017-03-07 11:40:18 +02:00
Arik Fraimovich
be6426014d Fix Docker file ownership issues:
1. Simplify user creation to create a non system user (so the uid will usually
   match the host user).
2. Set the user to redash & remove the need to change user in docker entrypoint.
2017-03-07 11:37:31 +02:00
Arik Fraimovich
8b4643d6ac Remove nosiy log 2017-03-06 21:22:41 +02:00
Arik Fraimovich
d8a0885953 Fix: tests were using old method signature 2017-03-06 21:22:29 +02:00
Arik Fraimovich
83e6b6f50c Tests use the same session as the tested code, and we can't use the same
objects after the tested code calls commit() without disabling expire
on commit.

It seems like a safe thing in our case.
2017-03-06 13:49:29 +02:00
rmakulov
928bd83967 minor change 2017-03-06 13:16:02 +03:00
Arik Fraimovich
230fe15cde Merge pull request #1653 from r0fls/fix-embed-close
Fix: query embed dialog close button wasn't working
2017-03-05 20:08:14 +02:00
Arik Fraimovich
72ad16a8b3 Fix: use correct format string 2017-03-05 20:03:44 +02:00
Arik Fraimovich
23cc632d5a Duplicate favicons instead of symlinks 2017-03-05 09:15:11 +02:00
Raphael Deem
1cf2bb1bb2 fix query embed close button 2017-03-04 14:51:00 -08:00
rmakulov
7939e04e74 set default values in options 2017-03-03 16:20:07 +03:00
yuua
181031957f impala get_table remove filtter and str to unicode 2017-03-03 17:58:13 +09:00
deecay
cfa9a45fc8 Add babel-plugin-transform-object-assign 2017-03-03 09:26:56 +09:00
rmakulov
f77da51a7d order on client side 2017-03-02 18:43:05 +03:00
Arik Fraimovich
9bb87e711a Fix: datetime parameters were not using a date picker. 2017-03-02 15:56:40 +02:00
Rustam Makulov
255a01f786 Merge branch 'master' into master 2017-03-01 12:29:09 +04:00
Arik Fraimovich
69c26f2c0d Merge pull request #1643 from msnider/salesforce
[Data Sources] Add: SalesForce query runner
2017-03-01 09:51:43 +02:00
Matt Snider
3650e21458 Move import to top of file 2017-02-28 22:06:34 -06:00
Matt Snider
8eefd0e9c4 Format to PEP8 2017-02-28 21:54:32 -06:00
Matt Snider
c72a097808 Added Salesforce SOQL query runner 2017-02-28 21:44:38 -06:00
rmakulov
2ffda6f5c5 code revised 2017-02-28 19:03:17 +03:00
Arik Fraimovich
ce8ffae152 Merge pull request #1584 from washort/scheduled-query-backoff
Scheduled query backoff
2017-02-28 13:19:34 +02:00
Arik Fraimovich
b54dd27959 Merge pull request #1624 from washort/presto-errors
Fix: make errors from Presto runner JSON-serializable
2017-02-28 13:04:46 +02:00
Arik Fraimovich
3e807e5b41 Merge pull request #1623 from washort/jobs-race
Bugfix: race condition in query task status reporting
2017-02-28 13:04:10 +02:00
Arik Fraimovich
20f1a60f90 Merge pull request #1619 from deecay/count-rows
Add: use results row count as the value for the counter visualization.
2017-02-28 13:03:36 +02:00
Arik Fraimovich
9d2619b856 Merge pull request #1641 from getredash/fixes201602
UI Fixes
2017-02-28 12:59:41 +02:00
Arik Fraimovich
a2c7f6df7a Friendlier labels for archived state of dashboard/query 2017-02-28 12:50:27 +02:00
Arik Fraimovich
15a87db5d5 Fix: remove 29402hashKey from Pivot table 2017-02-28 12:46:58 +02:00
Arik Fraimovich
2f86466309 Merge pull request #1639 from getredash/fixes201602
Small UI fixes
2017-02-28 12:10:22 +02:00
rmakulov
ebaf012701 propertyOrder replaced with the field that defines an order 2017-02-27 19:05:43 +03:00
Arik Fraimovich
bccfef533e Fix: wrong timestamps in admin tasks page 2017-02-27 17:51:00 +02:00
Arik Fraimovich
ef020e88e7 Fix: word cloud visualization didn't show column names 2017-02-27 17:42:44 +02:00
Arik Fraimovich
222a6069cb Fix: pemrission dialog wasn't rendering.
Closes #1633.
2017-02-27 15:44:19 +02:00
Arik Fraimovich
6b6df84bce Fix: map visualization had severe performance issue.
Close #1603.
2017-02-27 15:30:30 +02:00
rmakulov
8c481cd7a7 added propertyOrder field 2017-02-27 15:50:29 +03:00
rmakulov
fcfd204ec6 atsd query runner 2017-02-24 17:31:01 +03:00
Arik Fraimovich
57e6c5f05e Merge pull request #1630 from MichaelJAndy/MichaelJAndy-sorting-patch
Fix: dashboard-list.js to sort dashboards and update page-header
2017-02-23 15:10:34 +02:00
Michael Andy
683e369d86 dashboard-list.js sorts dashboards and updates page-header 2017-02-23 23:41:58 +11:00
Arik Fraimovich
f12596a6fc Merge pull request #1629 from getredash/fix_too_many_connections
Fix: keyboard shortcuts didn't work in parameter inputs
2017-02-23 14:38:22 +02:00
Arik Fraimovich
09239439ae Fix: keyboard shortcuts didn't work in parameter inputs 2017-02-23 12:51:38 +02:00
Arik Fraimovich
2bb11dffca add v1-rc.2 release date. 2017-02-22 22:11:26 +02:00
Arik Fraimovich
2f019a0897 Update CHANGELOG.md 2017-02-22 21:58:12 +02:00
Arik Fraimovich
1350555931 Update CHANGELOG. 2017-02-22 21:57:16 +02:00
Arik Fraimovich
6d3aa3b53c Merge pull request #1627 from getredash/fix_too_many_connections
Dashboard page fixes
2017-02-22 21:57:02 +02:00
Allen Short
2407b115e4 Exponential backoff for failing queries 2017-02-22 10:29:08 -06:00
Allen Short
ca3e125da8 Refactor outdated_queries/refresh_queries tests 2017-02-22 10:28:35 -06:00
Arik Fraimovich
2d82c4dc98 Fix: multi filters broken on dashboards 2017-02-22 16:24:11 +02:00
Arik Fraimovich
84ca02be09 Fix: download links broken on dashboards 2017-02-22 16:14:41 +02:00
Arik Fraimovich
61244dead3 Merge pull request #1626 from getredash/fix_too_many_connections
Fix: Redash is using too many db connections
2017-02-22 15:18:49 +02:00
Arik Fraimovich
907b33b5a0 Fix: tests failling because they run on different app contextes 2017-02-22 14:06:47 +02:00
Arik Fraimovich
e6fc73f444 Fix: Redash was using too many db connections
Fixes #1561.

The issue was caused by creating a new Flask app instance on every task execution,
resulting in creating a new SQLALchemy connection pool and a new database connection.
2017-02-22 12:40:22 +02:00
Arik Fraimovich
672347ba8b Merge pull request #1621 from kopanitsa/fix-dynamo-count
[DynamoDB] Fix: handle count(*) queries
2017-02-22 10:06:36 +02:00
Arik Fraimovich
db465ffe58 Rename res_dict to result and add comment. 2017-02-22 10:06:00 +02:00
Allen Short
2a447137d4 Fix: make errors from Presto runner JSON-serializable 2017-02-21 13:11:32 -06:00
Takahiro Okada
18a157ac84 handle count(*) in dynamo db 2017-02-21 22:26:50 +09:00
deecay
081ac5f651 Remove unnecessary comment line. 2017-02-21 17:18:14 +09:00
deecay
3864f11694 Add: Counter option to count resultset row count. 2017-02-21 16:56:45 +09:00
Alexander Shepelin
8b59815bf2 add 'refresh schema' button to schema-browser 2017-02-20 23:56:21 +03:00
Allen Short
a98df94399 Fix race condition in query task status reporting 2017-02-20 12:20:55 -06:00
deecay
ac538c35e9 Add: option to hide pivot table controls 2017-02-20 15:09:48 +09:00
Arik Fraimovich
2e751b3dad Fix: dashboards without tags break rendering 2017-02-19 09:20:25 +02:00
Alexander Shepelin
b2e747caef refactor schema-browser directive to component style 2017-02-18 23:10:15 +03:00
Arik Fraimovich
f9da6ddcdd Merge pull request #1611 from getredash/circleci
Improve CircleCI configuration
2017-02-18 14:15:20 +02:00
Arik Fraimovich
99cef97c89 Add #1612 to the CHANGELOG. 2017-02-18 14:14:30 +02:00
Arik Fraimovich
2071ca1bc8 Merge pull request #1612 from getredash/rc1-fixes
Change: Improvements to the dashboards list page
2017-02-18 14:14:04 +02:00
Arik Fraimovich
5815d635a0 Update CHANGELOG for v1.0.0-rc.2.
@44px @janusd @btmc @deecay @aslotnick thanks!
2017-02-18 14:13:49 +02:00
Arik Fraimovich
517e5bcddb Improvements to the dashboards list page:
- Fix search to be case insensitive.
- Fix tag extraction to support multiple words prefixes.
- Change selection behavior to use OR by default and AND on shift+click.
2017-02-18 12:56:56 +02:00
Arik Fraimovich
eaa2ec877c Merge pull request #1607 from getredash/rc1-fixes
v1.0.0-rc.1 fixes
2017-02-18 12:51:45 +02:00
Arik Fraimovich
0e68228e6e Remove Procfile.heroku - it's no longer up to date. 2017-02-18 12:50:02 +02:00
Arik Fraimovich
6e5435261b Improve CircleCI configuration 2017-02-18 12:48:39 +02:00
Arik Fraimovich
1cc9b87ead Fix PEP8 section name 2017-02-18 12:41:57 +02:00
Arik Fraimovich
bd9ad3140d Allow longer lines in pep8 2017-02-18 12:37:00 +02:00
Arik Fraimovich
3e23143910 Fix: alert subscriptions were not triggered 2017-02-18 12:30:02 +02:00
Arik Fraimovich
0f95d12e83 Fix: use the correct model for delete. 2017-02-18 12:25:54 +02:00
Arik Fraimovich
fd37fd8545 Fix: remove whitespace created by the filters component 2017-02-18 12:19:22 +02:00
Arik Fraimovich
742199f05c Change: change Plotly's default hover mode to compare 2017-02-16 22:33:34 +02:00
Arik Fraimovich
902fb44782 Change: remove send to Plotly button 2017-02-16 20:08:55 +02:00
Arik Fraimovich
10e78bb4e4 Fix: sunburst & sankey visualization broke because of Angular values 2017-02-16 19:06:12 +02:00
Arik Fraimovich
e4659d0485 Fix: when adding text widget global parameters break.
Closes #1587.
2017-02-16 18:54:58 +02:00
Arik Fraimovich
a25302773d Fix: google button missing on invite link 2017-02-16 18:51:23 +02:00
Arik Fraimovich
2188baca16 Fix: schema browser got dark background 2017-02-16 18:42:28 +02:00
Arik Fraimovich
8940533176 Fix: embeds don't work after minifcation 2017-02-16 18:28:56 +02:00
Arik Fraimovich
1367b63ae1 Fix: shared dashboards didn't work after minifcation 2017-02-16 18:19:23 +02:00
Arik Fraimovich
c2a9e2e960 Fix: public widget serializer was referncing wrong name 2017-02-16 18:16:19 +02:00
Arik Fraimovich
8a41328033 Fix: share dashboard dialog not working after minification 2017-02-16 18:08:46 +02:00
Arik Fraimovich
ce16124d7b Fix: API keys were not logged properly in events table. 2017-02-15 22:13:33 +02:00
Arik Fraimovich
c547752dc6 Merge pull request #1606 from getredash/rc1-fixes
Change: move the message about unavailable data source types to be
2017-02-15 21:58:45 +02:00
Arik Fraimovich
3981c1c8a7 Fix: wrong use of Events.record function 2017-02-15 21:52:24 +02:00
Arik Fraimovich
f732f30bf0 Change: move the message about unavailable data source types to be
debug level message instead of warning. It seems to confuse people
and basically do more harm than add value.
2017-02-15 21:47:14 +02:00
Arik Fraimovich
9c0f0cb044 Merge pull request #1601 from aslotnick/1529_presto_error_message
[Presto] Change: better formatted error messages
2017-02-15 21:40:44 +02:00
Arik Fraimovich
f01399c33d Merge pull request #1604 from getredash/rc1-fixes
Fix: dashboard owner can't edit the dashboard.
2017-02-15 20:17:11 +02:00
Arik Fraimovich
253f2e613c Fix: dashboard owner can't edit the dashboard. 2017-02-15 19:50:04 +02:00
Andrew Slotnick
f2879a1e3d better formatting for presto error messages 2017-02-14 17:14:52 -05:00
deecay
af978e966d Show vertical scrollbar for IE 2017-02-14 16:53:11 +09:00
Arik Fraimovich
0151360fdf Merge pull request #1597 from deecay/fix-1571
[SQL Server] Fix: schema won't load if the server is case sensitive
2017-02-14 09:37:05 +02:00
Arik Fraimovich
d1b0a9580d Merge pull request #1592 from deecay/master
Change: use https instead of git protocol for git repositories in npm-shrinkwrap.json
2017-02-13 16:34:26 +02:00
deecay
9d796b20df Fix for #1571 2017-02-13 14:10:48 +09:00
deecay
574a7573ce Udate shrinkwrap to work behind some proxies 2017-02-13 12:05:04 +09:00
Arik Fraimovich
db9c925cbb Merge pull request #1564 from janusd/viz-map-column-fix
Fix: options selection in the map visualization editor (lat, long, groupBy)
2017-02-10 20:10:00 +02:00
Arik Fraimovich
9ef6836175 Remove unused setup files 2017-02-10 20:06:30 +02:00
Arik Fraimovich
351cd62189 Docker entrypoint: update user's uid 2017-02-09 23:48:33 +02:00
Arik Fraimovich
7bbc782e5d Fix npm build command. 2017-02-09 22:22:41 +02:00
Arik Fraimovich
50d20ff277 Merge pull request #1582 from getredash/json_webhook
Updates to Dockerfile:
2017-02-09 17:07:46 +02:00
Arik Fraimovich
964926aaab Change external-links to links. 2017-02-09 17:07:34 +02:00
Arik Fraimovich
b67ecde107 Merge pull request #1570 from btmc/master
Update docker-compose.production.yml
2017-02-09 17:06:56 +02:00
Arik Fraimovich
6338596710 Updates to Dockerfile:
- Build frontend assets (needed for standalone use of the image).
- Change ownership of the files to redash user.
2017-02-09 16:53:25 +02:00
btmc
5361a99b22 Update docker-compose.production.yml
Nginx doesn't have "redash" upstream. This fixes the error.
2017-02-06 23:53:46 +03:00
Arik Fraimovich
01a8075a67 Merge pull request #1563 from getredash/json_webhook
Change: send events to webhook as JSON with a schema.
2017-02-05 10:36:55 +02:00
Arik Fraimovich
209e714084 Add changelog entry 2017-02-05 10:36:28 +02:00
hamza zia
eeee592abc nuke separate endpiont for running queries in sync 2017-02-03 09:34:01 -08:00
Janus
e3d0b4075e fix column options selection in the map visualisation editor (lat, long and groupBy) 2017-02-02 15:39:52 +01:00
Arik Fraimovich
ad18128794 Fix test 2017-02-02 10:39:21 +02:00
Arik Fraimovich
71fa013970 Change: send events to webhook as JSON with a schema.
Closes #1552.
2017-02-02 10:21:01 +02:00
Arik Fraimovich
dd6028384d Merge pull request #1555 from 44px/original-source-sourcemaps
Change: generate sourcemaps for modules (original source files)
2017-02-01 23:17:37 +02:00
Arik Fraimovich
5716da205e Merge pull request #1559 from getredash/new_upgrade
New and shiny upgrade script
2017-01-31 21:21:18 +02:00
Arik Fraimovich
d650995da3 New and shiny upgrade script 2017-01-31 21:16:27 +02:00
Arik Fraimovich
18fee82b73 Merge pull request #1558 from getredash/new_upgrade
Update the CHANGELOG
2017-01-31 20:47:36 +02:00
Arik Fraimovich
23a87410ac Update the CHANGELOG 2017-01-31 20:47:00 +02:00
Alexander Shepelin
9b9a752f78 Generate sourcemaps for modules (original source) 2017-01-31 09:30:27 +03:00
Arik Fraimovich
4b4758af22 Merge pull request #1551 from getredash/change_tracking
Fix: flask-admin - exclude created_at/updated_at so models can be saved
2017-01-27 17:00:27 +02:00
Arik Fraimovich
3cdd732078 flask-admin fixes (exclude created_at/updated_at so models can be saved) 2017-01-26 22:50:30 +02:00
Arik Fraimovich
77139e2867 Merge pull request #1546 from washort/api-docstrings
Add: API docstrings
2017-01-26 22:37:11 +02:00
Arik Fraimovich
ff28b751ed Merge pull request #1549 from getredash/change_tracking
Change: disable version counter for queries:
2017-01-26 22:36:22 +02:00
Arik Fraimovich
84aba70a1a Merge pull request #1545 from hgs847825/master
[ElasticSearch] Fix: query fails when properties key is missing
2017-01-26 22:35:59 +02:00
Arik Fraimovich
39c4e1cd59 Merge branch 'master' into api-docstrings 2017-01-26 22:34:48 +02:00
Arik Fraimovich
6cf1c1cb70 Disable query version check in test (#1550) 2017-01-26 22:25:12 +02:00
Arik Fraimovich
ae2927d7d3 Set default value for query version 2017-01-26 22:08:05 +02:00
Arik Fraimovich
cd51076150 Disable version counter for queries:
Since the move to SQLAlchemy, version is managed automatically.
When running a query, the worker updates the query row and increments
the version. This results in the user's inability to save the query
after that.

From reviewing SQLA's documentation, it looks like we will have to
manage the version value ourselves. For now, I'm just disabling the
version auto increment. In a follow up update we need to actually
implement the manual increment where we think it's needed.
2017-01-26 21:50:08 +02:00
Arik Fraimovich
a5d73514ce Merge pull request #1504 from rockwotj/rockwood/global-params
Add: global parameters for dashboards
2017-01-26 21:24:08 +02:00
Arik Fraimovich
7ffa8f89aa Remove unused code 2017-01-26 21:20:53 +02:00
Tyler Rockwood
11faabed1f Move helper functions out of the query obj 2017-01-26 10:56:12 -08:00
Arik Fraimovich
25ca061b3d Merge pull request #1548 from getredash/drafts
Improve UI in small resolution:
2017-01-26 20:06:32 +02:00
Arik Fraimovich
8140100496 Merge pull request #1547 from getredash/drafts
Improve drafts UX
2017-01-26 15:56:42 +02:00
Arik Fraimovich
9aab74d8e7 Improve UI in small resolution:
- Add meta tag to scalae UI properly in small resolutions
- Make the menu button work (great) again.
- Change menu background color.
2017-01-26 15:55:44 +02:00
Allen Short
4e06a38676 more docstrings 2017-01-25 10:52:51 -06:00
Arik Fraimovich
7e43e54b9d Revise Query.by_user method 2017-01-25 18:08:29 +02:00
Arik Fraimovich
84e1ac8072 Show your unpublished items in recents 2017-01-25 17:29:00 +02:00
Arik Fraimovich
ba6109e7ac List unpublished dashboard only to owners 2017-01-25 17:22:30 +02:00
Arik Fraimovich
febe908e65 Revise drafts flow for queries:
* Draft queries are now called "Unpublished" -- felt like it better convey the feature.
* Unpublished queries won't be shown in "All Queries" for non owners, but will appear in
  search.
* You can't add unpublished queries to dashboards or alerts.
2017-01-25 16:55:39 +02:00
Arik Fraimovich
8445b04844 Proxy /invite URLs 2017-01-25 16:55:39 +02:00
Arik Fraimovich
42a5194893 Add Redis explicitly to circle.yml 2017-01-25 11:33:40 +02:00
hgs847825
3b4e3067bb Fix issue #1538 2017-01-25 02:34:28 +00:00
Arik Fraimovich
98757db3e3 Merge pull request #1508 from stefanseifert/feature/jql-custom-fields
[Jira JQL] Add: support custom JIRA fields and enhance value mapping
2017-01-24 12:32:21 +02:00
Arik Fraimovich
4e7adcf89b Merge pull request #1540 from yaningzhu/faster-get-mysql-schema
[MySQL] Change: faster retrieval of schema
2017-01-24 12:29:38 +02:00
Arik Fraimovich
df0d1f3cc8 Merge pull request #1536 from k-hal/add-support-for-bigquery-gce-configuration
[BigQuery] Add: support for additional configuration in BigQueryGCE
2017-01-24 12:28:05 +02:00
Arik Fraimovich
38f6f82c0b Merge pull request #1517 from denisov-vlad/clickhouse_uint64
Clickhouse: convert UInt64 columns to integer type
2017-01-24 12:27:25 +02:00
Arik Fraimovich
4f9ffdc094 Merge pull request #1542 from getredash/sass
Add Sass support
2017-01-24 10:08:57 +02:00
Arik Fraimovich
3431f2ebe8 Add Sass support 2017-01-24 09:54:28 +02:00
Arik Fraimovich
788830ddad Fix docker-entrypoint server command.
Fixes #1541.
2017-01-24 08:53:55 +02:00
Arik Fraimovich
2e358e89f4 Add missing db.session.commit() call. 2017-01-24 08:00:34 +02:00
Yaning Zhu
d58040ad11 Faster retrieval of MySQL schema
Because `information_schema.tables` and `information_schema.columns` do not have indexes on them, when they get large, joining them becomes painful. We have a database with over 10k tables and more than 200k columns. The old query takes forever.

The new query do not look at `information_schema.tables` at all. This works if your `information_schema.columns` table is in good shape in terms of data integrity (and it should be).

Tested on MySQL 5.5, 5.6(Percona), 5.7(Percona). The schema has not changed since then.
2017-01-23 09:51:40 -08:00
Arik Fraimovich
4904c67cbe Update logo URL. 2017-01-22 23:08:16 +02:00
Arik Fraimovich
b479bb39a0 Merge pull request #1530 from getredash/docker_workflow
Docker based developer workflow
2017-01-22 15:53:54 +02:00
Arik Fraimovich
5ee5b5a8f5 Update postgres configuration to improve tests performance 2017-01-22 15:03:13 +02:00
Arik Fraimovich
7cc97fafdb Add tests entry point to docker 2017-01-22 13:28:46 +02:00
Arik Fraimovich
c82a01b5c8 Don't exclude client/app from tarball 2017-01-22 12:34:49 +02:00
Arik Fraimovich
65237967ec Implement subscription task 2017-01-22 12:12:58 +02:00
Koichi HARUNA
53536a15f1 Add support for BigQueryGCE to be set just like BigQuery 2017-01-21 17:49:57 +09:00
Arik Fraimovich
4e4d52a558 Add line break in setup screen 2017-01-19 15:20:52 +02:00
Arik Fraimovich
7b11dc0ee6 Setup wizard for first run of Redash 2017-01-19 15:20:52 +02:00
Arik Fraimovich
bc230e988d Make noisy libraries less noisy 2017-01-19 15:20:52 +02:00
Arik Fraimovich
c39f440450 Name the development docker compose file as docker-compose.yml 2017-01-19 15:20:52 +02:00
Arik Fraimovich
00e1e90d6e Add node_modules to dockerignore 2017-01-19 15:20:52 +02:00
Arik Fraimovich
b1bd8f1c25 friendlier entrypoint script 2017-01-19 15:20:52 +02:00
Arik Fraimovich
837e3a372a Remove webpack from Docker Compose:
I realized that it makes more sense to run Webpack on the host machine
as usually you will need to install Node's tools on the host to enjoy
better intelisense and eslint support in the editor.

On top of that, installing Node.js on most developer machines should be
relatively easy.
2017-01-19 15:20:52 +02:00
Ofer Segev
81fca9329e App header: query search css fix 2017-01-19 15:20:52 +02:00
Ofer Segev
06186d9e8d Close #242: added ui indication for offline state 2017-01-19 15:20:52 +02:00
Arik Fraimovich
ddf6fc50a5 New Dockerfile and docker-compose for dev 2017-01-19 15:20:52 +02:00
Arik Fraimovich
af70f34f05 Remove Vagrant related files 2017-01-19 15:20:52 +02:00
Allen Short
d93a325902 API docstrings suitable for generating sphinx docs 2017-01-18 20:43:39 -06:00
Arik Fraimovich
8b74de71ba Merge pull request #1528 from lab79/patch-1
[Vertica] Change: set longer read_timeout
2017-01-17 15:26:25 +02:00
lab79
509c17632a Update vertica.py 2017-01-17 14:46:09 +03:00
Arik Fraimovich
bca7d08082 Disable eslint packages check 2017-01-16 22:24:02 +02:00
Arik Fraimovich
785b6fc412 Rename codeclimate file 2017-01-16 22:22:23 +02:00
Arik Fraimovich
94891502c3 Merge pull request #1525 from kakoni/patch-1
Update amazon linux bootstrap.sh
2017-01-16 17:02:54 +02:00
Arik Fraimovich
8d1b5b4153 Merge pull request #1526 from someones/fix_es_get_query_mappings
[ElasticSearch] Fix for #1521
2017-01-16 17:01:29 +02:00
Arik Fraimovich
e586f99cb1 Fix content-base option of webpack-dev-server 2017-01-16 15:10:01 +02:00
Arik Fraimovich
7e986db979 Make webpack-dev-server config more modular 2017-01-16 15:09:45 +02:00
Arik Fraimovich
681fd213da Fix package name in npm-shrinkwrap 2017-01-16 15:09:15 +02:00
lab79
34f7b2f50a add read_timeout to configuration_schema 2017-01-16 12:42:47 +03:00
lab79
1a06a5c789 add read_timeout
https://github.com/getredash/redash/issues/1527
2017-01-16 11:36:30 +03:00
Adam Griffiths
9d36d39f47 Fix for #1521
The merge from #1521 fixed the invalid variable error
but it fixed in in a way that introduced another error:
"dictionary changed size during iteration"
This correctly applies the fix.
2017-01-16 11:45:06 +11:00
Karri Niemelä
c67519e45d Update amazon linux bootstrap.sh
Changed this so it works with recent redash version.
2017-01-15 19:44:46 +02:00
hamza zia
ce65578c72 allowed embeds to recieve params 2017-01-15 22:23:18 +05:00
hamza zia
f4c25cb941 Merge branch 'master' of github.com:rainforestapp/redash 2017-01-15 20:36:59 +05:00
hamza zia
ba0daa218e JSON API that accepts params 2017-01-15 20:36:25 +05:00
Arik Fraimovich
b7ad138c6c Add pymongo to requirements_dev 2017-01-15 12:35:17 +02:00
Arik Fraimovich
6124e08fa3 Revert to original codeclimate configuration 2017-01-15 11:27:15 +02:00
Arik Fraimovich
9dd7efe894 Disable our eslint config 2017-01-15 11:24:33 +02:00
Arik Fraimovich
b1e7a767ae Disable eslint 2017-01-15 11:21:18 +02:00
Arik Fraimovich
99d867f1b4 Check only Python files in redash/ 2017-01-15 11:02:20 +02:00
Arik Fraimovich
6de66447bb Merge pull request #1523 from getredash/codeclimate
Add CodeClimate configuration
2017-01-15 10:53:31 +02:00
Arik Fraimovich
de4ff7fc56 Add CodeClimate configuration 2017-01-15 10:39:38 +02:00
Arik Fraimovich
29de13ba87 Merge pull request #1522 from getredash/reorg
Move package.json/webpack.config to root directory
2017-01-15 10:33:20 +02:00
Arik Fraimovich
09542138cc Add missing then 2017-01-15 10:16:04 +02:00
Arik Fraimovich
8f53274f17 Move package.json/webpack.config to top level 2017-01-15 10:13:34 +02:00
Arik Fraimovich
8f1750b9f0 Merge pull request #1521 from getredash/arikfr-patch-1
[ElasticSearch] Fix: wrong variable name.
2017-01-13 22:32:46 +02:00
Arik Fraimovich
3d0b90ff2a [ElasticSearch] Fix: wrong variable name.
Fixes #1519.
2017-01-13 20:51:22 +02:00
Vladislav Denisov
361abac7ad clickhouse: convert UInt64 to integer type 2017-01-12 14:09:37 +03:00
Arik Fraimovich
57e25786cd Fix: View Query link was pointing to the wrong page 2017-01-11 17:01:40 +02:00
Arik Fraimovich
47b1b03be7 Merge pull request #1514 from GAwadhwalAtlassian/AthenaQueryRunner_Annotations_Enable
[Athena] Change: enable query annotations
2017-01-11 12:08:51 +02:00
Arik Fraimovich
9d7171ffaf Merge pull request #1515 from denisov-vlad/python_get_schema
[Python] Add: get_source_schema method
2017-01-11 12:08:32 +02:00
Vladislav Denisov
34ffdf52c7 Python: rewrited some functions to static, fixed missed commas in safe_builtins 2017-01-11 08:57:02 +03:00
Vladislav Denisov
8226445e4d Add get_schema method to Python Query runner 2017-01-11 08:53:00 +03:00
Gaurav Awadhwal
4d4822fcfb Removed the code that disables the query annotations from Athena query runner. 2017-01-11 10:05:07 +11:00
Tyler Rockwood
cb2e6fddf4 Remove unused $scope 2017-01-10 08:52:08 -08:00
Tyler Rockwood
a2be7bf060 Adding an explict toggle for global parameters 2017-01-10 08:46:03 -08:00
Tyler Rockwood
894a85ae63 Remove events on widget delete 2017-01-10 08:25:32 -08:00
Arik Fraimovich
57a0ddb1a9 Add v1 section to the changelog' 2017-01-10 14:55:26 +02:00
Arik Fraimovich
dd24d27558 Merge pull request #1512 from denisov-vlad/python_safe_builtins
[Python] Add: define more safe_builtins
2017-01-10 14:55:16 +02:00
Arik Fraimovich
a62db75624 Merge pull request #1513 from denisov-vlad/python_runner_fix
Add: get_by_id & get_by_name methods for Query and DataSource classes
2017-01-10 14:26:54 +02:00
Vladislav Denisov
ab0a448c87 Add get_by_id & get_by_name methods for Query and DataSource classes 2017-01-10 15:08:36 +03:00
Vladislav Denisov
5da8c6c0cb Add safe_builtins in Python query runner 2017-01-10 13:19:47 +03:00
Arik Fraimovich
b11685d8d4 Merge pull request #1509 from GAwadhwalAtlassian/PublicSchema_Name_Fix
[Presto/Athena] Change: remove special rule around public schema
2017-01-09 16:57:21 +02:00
sseifert
187b557eee adapt to new field mapping syntax and add unit tests 2017-01-09 14:40:27 +01:00
sseifert
9126874c87 apply snake_case naming conventions 2017-01-09 14:40:19 +01:00
Arik Fraimovich
4ccf0decbd It's 2017 now ! 🎉 2017-01-09 08:50:42 +02:00
Gaurav Awadhwal
869fa263f6 Made fixes to Presto & Athena query runners so they do not omit the schema name in autocomplete and shame list if the schema name is ‘public’ 2017-01-09 11:51:45 +11:00
sseifert
689a1aac4d should set nothing instead of empty string as value when no valid list items are found 2017-01-07 12:15:43 +01:00
sseifert
2aae497169 include custom fields in JQL query results
convert list values to concatenated strings
support definition of fieldMapping property in query which allows to rename output columns or pick specific members from dict values
2017-01-07 00:41:42 +01:00
Arik Fraimovich
c635d9abed Add icon to dashboard refresh button 2017-01-05 13:36:56 +02:00
Arik Fraimovich
eb637b69b8 Alert fixes: alert name wasn't set right & couldn't delete alert 2017-01-05 13:36:56 +02:00
Arik Fraimovich
9213a18057 Fix: visualization tab wasnt updating on add/delete. 2017-01-05 13:36:56 +02:00
Arik Fraimovich
07b6b16fda Fix: show color options in colors dropdown 2017-01-05 13:36:56 +02:00
Arik Fraimovich
bc18b05d0b Use ui-select native clear button 2017-01-05 13:36:56 +02:00
Arik Fraimovich
6a489bb743 Fix: icons were not aligned in selectors 2017-01-05 13:36:56 +02:00
Tyler Rockwood
b1fd2101df Refactored to make more efficent and cleaner 2017-01-04 08:29:25 -08:00
Tyler Rockwood
96bc3a5d0e Adding global params to dashboard by prefixing with '$' 2017-01-03 18:14:36 -08:00
Arik Fraimovich
2df0979be5 Merge pull request #1482 from yershalom/master
[Cassandra] Add: schema browser support & explicit protocol version
2017-01-03 10:39:28 +02:00
Arik Fraimovich
512ac9bb27 Move all webpack stuff to devDependencies 2017-01-02 20:57:00 +02:00
Arik Fraimovich
e33439c9f7 Update plotly version & shrinkwrap 2017-01-02 20:50:27 +02:00
Arik Fraimovich
fd19d2b79d Add shrinkwrap file to the project 2017-01-02 17:25:21 +02:00
Arik Fraimovich
b3d2d5aba2 Set more specific version of Angular 2017-01-02 17:12:32 +02:00
Arik Fraimovich
3dfaea1dcf Update Node version in circle.yml 2017-01-02 16:58:01 +02:00
Arik Fraimovich
7d8b8a16fd Merge pull request #1493 from washort/more-commits
Fix: more `db.commit()` calls
2017-01-02 16:08:29 +02:00
Arik Fraimovich
1fae6017bd Change order of db.commit and event logging 2017-01-02 16:07:47 +02:00
Allen Short
d86962b4e3 Commit DB transaction when needed 2017-01-02 16:07:47 +02:00
syerushalmy
ca4db619f2 Fixed from BaseSQLQueryRunner to BaseQueryRunner and get_schema instead of _get_tables 2017-01-02 14:47:54 +02:00
Arik Fraimovich
c39af040fe Merge pull request #1500 from getredash/v1fixes
Remove ng-table and queries search fix
2017-01-02 11:34:28 +02:00
Arik Fraimovich
c900e83bd9 Fix #1499: queries search should be case insensitive 2017-01-02 11:28:23 +02:00
Arik Fraimovich
589634b621 Remove ng-table 2017-01-02 11:22:09 +02:00
Arik Fraimovich
627f3f4fd5 Merge pull request #1498 from getredash/v1fixes
Fix #1452: Python query runner log information was wrongly formatted
2017-01-02 10:44:27 +02:00
Arik Fraimovich
69339b7c80 Fix #1452: Python query runner log information was wrongly formatted 2017-01-01 12:46:20 +02:00
Arik Fraimovich
703f996630 Merge pull request #1497 from getredash/v1fixes
Fix #16: when updating dashboard name refresh dashboards dropdown
2017-01-01 12:30:21 +02:00
Arik Fraimovich
e58f703331 Fix #16: when updating dashboard name refresh dashboards dropdown 2017-01-01 12:09:13 +02:00
Arik Fraimovich
fe363e27a3 Flatten dashboards list in menu 2017-01-01 10:39:42 +02:00
Arik Fraimovich
4e218b76ae Merge pull request #1496 from getredash/v1fixes
Add content hash to JS/CSS build files. Closes #1450
2017-01-01 10:09:08 +02:00
syerushalmy
f54e7b3343 [Cassandra]: Changed test qurey due to error with parsing uuid as a result 2016-12-31 11:11:18 +02:00
Arik Fraimovich
bb24b878c6 Add content hash to JS/CSS build files. Closes #1450 2016-12-30 22:40:51 +02:00
Arik Fraimovich
7182cbb9d3 Merge pull request #1495 from getredash/v1fixes
Fix: dashboard filters working again
2016-12-30 22:40:03 +02:00
Arik Fraimovich
48faf50db6 Replace old filters directive with new component 2016-12-30 22:31:09 +02:00
Arik Fraimovich
1db12fa0ec Fix: counter editor wasn't showoing column names 2016-12-30 22:25:06 +02:00
Arik Fraimovich
c6ef932183 Fix: changes only includes changed properties 2016-12-30 22:24:51 +02:00
Arik Fraimovich
5d3cf5367a Filters component for use in dashboards 2016-12-30 22:09:02 +02:00
yuua
78408e50c5 impala query_runner get_tables error fix 2016-12-29 10:54:57 +09:00
Arik Fraimovich
ea12dc4038 Merge pull request #1491 from getredash/v1fixes
Fix: DynamoDB test connection was broken
2016-12-27 14:52:29 +02:00
Arik Fraimovich
1388e76b48 Fix: DynamoDB test connection was broken 2016-12-27 14:47:12 +02:00
Arik Fraimovich
8d92702fc7 Merge pull request #1490 from getredash/v1fixes
v1 fixes (data source delete & visualization first load)
2016-12-27 14:46:46 +02:00
Arik Fraimovich
f5e8fc816c Fix: data source delete was broken 2016-12-27 14:02:59 +02:00
Arik Fraimovich
b3d0f705be Fix: visualization wasn't loading on first page load 2016-12-27 12:17:10 +02:00
Arik Fraimovich
894da612f4 Improve data sources create test 2016-12-25 12:57:10 +02:00
Arik Fraimovich
35eb7b0980 Merge pull request #1489 from getredash/snowflake
Fix: data source wasn't saving in the UI
2016-12-25 12:47:58 +02:00
Arik Fraimovich
06f96d9258 Fix: data source saving 2016-12-25 12:39:54 +02:00
Arik Fraimovich
01076c0759 Merge pull request #1488 from getredash/snowflake
[Data Sources] Add: Snowflake query runner
2016-12-25 12:39:24 +02:00
Arik Fraimovich
490733eff9 Add missing enabled support 2016-12-25 12:33:40 +02:00
Arik Fraimovich
a781d312c0 [Data Sources] Add: Snowflake query runner 2016-12-25 12:29:22 +02:00
Arik Fraimovich
9e5944d563 Merge pull request #1487 from getredash/v1fixes
Fix #1432: delete visualization sends full visualization body instead…
2016-12-23 23:15:32 +02:00
Arik Fraimovich
ff6bb2c45b Merge pull request #1486 from getredash/v1fixes
Close #1451: render safe HTML in table output
2016-12-23 23:14:06 +02:00
Arik Fraimovich
e4f13253e5 Fix #1432: delete visualization sends full visualization body instead of only id 2016-12-23 23:13:48 +02:00
Arik Fraimovich
a16b333b93 Close #1451: render safe HTML in table output 2016-12-23 23:07:32 +02:00
Arik Fraimovich
bff4ebd43d Merge pull request #1485 from getredash/v1fixes
Close #1453: more minimal notification of draft status for query/dashboard
2016-12-23 23:06:54 +02:00
Arik Fraimovich
7a94bed250 Close #1453: more minimal notification of draft status for query/dashboard 2016-12-23 22:58:15 +02:00
Arik Fraimovich
e0a010f7be Merge pull request #1484 from getredash/v1fixes
Fix #1457: sort was using the string value
2016-12-23 22:57:33 +02:00
Arik Fraimovich
40b82004fa Fix #1457: sort was using the string value 2016-12-23 22:36:57 +02:00
Arik Fraimovich
3bc98fba5b Merge pull request #1479 from someones/es_schema
[ElasticSearch] Add: enable schema browser
2016-12-23 18:26:49 +02:00
syerushalmy
045c921372 Fixed get_tables for execute 1 query instead of N queries 2016-12-23 11:32:55 +02:00
syerushalmy
420973c015 Added get tables query for cassandra and expilicit protocol version to 3 (Also working with cassandra version 2.1 and above) 2016-12-22 11:32:10 +02:00
Arik Fraimovich
513d74ac7d Merge pull request #1478 from someones/es_test_connection
[ElasticSearch] Fix: connection test was always succesfful
2016-12-21 09:28:20 +02:00
Adam Griffiths
e0d6d3feeb Enable schema browser for elasticsearch
Split _get_mappings into 2 functions.
Add _get_query_mappings which is used by existing logic
and parses the mappings json for query mappings.
Add get_schema which uses basic _get_mappings and recurses
through the mappings json to build a schema for the indices.
2016-12-21 15:22:04 +11:00
Adam Griffiths
ae5b6fbc57 Fix ES test connection
Error was being created, but not returned. Which caused it
to always display as success.
2016-12-21 12:15:11 +11:00
Arik Fraimovich
9d579dc089 Merge pull request #1475 from yershalom/master
[Cassnadra] Added set_keyspace for easier query cassandra
2016-12-20 23:34:00 +02:00
Arik Fraimovich
94519d1d76 Merge pull request #1476 from getredash/v1fixes
Multiple fixes from latest refactors
2016-12-20 23:14:50 +02:00
Arik Fraimovich
9b4cf4d3ee Fix query saving 2016-12-20 15:58:47 +02:00
Arik Fraimovich
ee57a5bf08 Fix #1456: large result sets overflow from the frame 2016-12-20 15:54:13 +02:00
Arik Fraimovich
e5aa567c73 Add missing call to session.commit 2016-12-20 15:30:38 +02:00
Arik Fraimovich
0029b4cd7f Fix #1455: missing ngInject annotations 2016-12-20 14:27:08 +02:00
syerushalmy
c423832931 Fixed python typo 2016-12-20 14:04:15 +02:00
Arik Fraimovich
bf2366bf1c Make sure organization is fetched only once 2016-12-20 14:02:56 +02:00
Arik Fraimovich
358d6807e5 Fix groups APIs 2016-12-20 14:02:44 +02:00
syerushalmy
024837137b Added set_keyspace for easier query cassandra 2016-12-20 13:58:09 +02:00
Arik Fraimovich
6510b01b6c Fix: user group assignment wasn't persisted 2016-12-20 13:29:32 +02:00
Arik Fraimovich
ac18aedde9 Fix: members endpoint 2016-12-20 12:26:34 +02:00
Arik Fraimovich
70f1a923a3 Fix: dashbaords page not loading 2016-12-20 12:15:48 +02:00
Arik Fraimovich
350b253833 Fix: dashboard drop down not working 2016-12-20 12:13:32 +02:00
Arik Fraimovich
6f3ca1e01a Rename all re:dash/Re:dash to Readsh. Closes #1396. 2016-12-20 12:10:33 +02:00
Arik Fraimovich
8d39ee4171 Merge pull request #1474 from yershalom/master
[Cassandra] Change: test connection query
2016-12-20 11:54:54 +02:00
syerushalmy
a860c83963 Removed ReadTimeout exception 2016-12-20 11:46:58 +02:00
syerushalmy
f3f39a5b00 Changed exception type to ReadTimeout and added test query for test connection 2016-12-19 21:35:36 +02:00
Arik Fraimovich
e6e83423e7 Merge pull request #1468 from getredash/athena
[Datasources] Add: Amazon Athena query runner
2016-12-15 15:30:21 +02:00
Arik Fraimovich
d0696853af Amazon Athena query runner 2016-12-15 15:16:04 +02:00
Arik Fraimovich
b07b347faa Merge pull request #1433 from luke14free/graphs_errors_from_master
[Charts] Add: errors bands in graphs
2016-12-13 19:24:43 +02:00
Arik Fraimovich
47c54b3c85 Merge pull request #1464 from jaykelin/master
[Clickhouse] Change: use UTF-8 encoding for POST data
2016-12-12 10:05:49 +02:00
Jayke.Lin
d4534d6045 Using UTF-8 encoding for clickhouse POST data 2016-12-12 11:05:16 +08:00
Arik Fraimovich
3cf6e31727 Forgot to add Flaks-Migrate to requirements.txt. 😳 2016-12-11 16:43:50 +02:00
Arik Fraimovich
d631171e81 Fix Query.recent tests 2016-12-11 15:54:13 +02:00
Arik Fraimovich
4df58bb724 Merge pull request #1440 from whummer/fix/dashboard-layout-error
Fix: API errors for dashboards with invalid layout data
2016-12-11 15:43:03 +02:00
Arik Fraimovich
19960eedda Merge pull request #1417 from washort/sqlalchemy
Change: Replace Peewee with SQLAlchemy/Alembic
2016-12-11 15:42:07 +02:00
Arik Fraimovich
b3bfc3bc74 Bring back support for total query time/queries count 2016-12-11 15:41:07 +02:00
Arik Fraimovich
1978e07748 Use group ids instead of groups in Queries.search/recent 2016-12-11 15:11:30 +02:00
Allen Short
e524db0215 Measure query time with statsd 2016-12-09 18:21:56 -06:00
Arik Fraimovich
81fb139b88 Add shell_context_processor to inject models to shell. 2016-12-08 16:16:53 +02:00
Arik Fraimovich
1d18109964 Fix tests that used Query.all_queries 2016-12-08 16:07:25 +02:00
Arik Fraimovich
c380596930 Fix cases where we used User.groups instead of User.group_ids 2016-12-08 16:02:51 +02:00
Arik Fraimovich
106c743647 Keep same logging format in ALembic 2016-12-08 15:36:08 +02:00
Arik Fraimovich
12cbfe1af4 Stamp database on first creation 2016-12-08 15:35:54 +02:00
Arik Fraimovich
3cce4d0ce4 Add warning script to migrations folder 2016-12-08 14:59:21 +02:00
Allen Short
4945d0bec7 fix cleanup_query_results task 2016-12-07 19:59:48 -06:00
Allen Short
4ba399af67 fix basic query execution from UI 2016-12-07 17:57:21 -06:00
Allen Short
da31d983b7 Fix test_cli tests 2016-12-07 13:18:07 -06:00
Arik Fraimovich
923c463e4a Add migration for the is_draft column 2016-12-07 18:33:52 +02:00
Arik Fraimovich
70d545410d Add Flask-Migrate to the project
Also moved old migrations to old_migrations folder (before deleting them entirely).
2016-12-07 17:59:01 +02:00
Arik Fraimovich
74e6ef5c1d Fix users CLI tests 2016-12-07 15:54:08 +02:00
Arik Fraimovich
abf57e4e70 Upgrade setuptools to install mock 2016-12-07 15:33:58 +02:00
Arik Fraimovich
2d206ef470 Switch to flask.cli.AppGroup instead of flask.cli.with_app_context 2016-12-07 15:21:13 +02:00
Arik Fraimovich
2b33963bee Add missing db.session.commit calls in CLI 2016-12-07 15:11:42 +02:00
Arik Fraimovich
a84c3e25f5 Move CLI logic into redash.cli and uses manager for tests.
Otherwise the Flask wasn't created and tests were failing.
2016-12-07 14:58:33 +02:00
Arik Fraimovich
b9024b18c1 Remove unused code 2016-12-07 14:00:37 +02:00
Arik Fraimovich
bcce9cf251 Update circle.yml to skip docker builds for now 2016-12-07 14:00:03 +02:00
Arik Fraimovich
80a7d377fe Fix: set the column name of QueryResult.query_text 2016-12-07 12:43:17 +02:00
Arik Fraimovich
73121890b3 Remove usage of the deprecated flask.ext package 2016-12-07 12:42:46 +02:00
Arik Fraimovich
51117e8e5b Update dependencies to more latest versions 2016-12-07 12:42:01 +02:00
Arik Fraimovich
fb75626458 Create default visualization using a method instead of signal 2016-12-07 12:02:57 +02:00
Arik Fraimovich
045e880f25 Add dedicated delete method to widgets instead of using an event 2016-12-07 12:02:46 +02:00
Arik Fraimovich
0c974bd48b Update User.find_by_email to SQLA 2016-12-07 12:02:31 +02:00
Arik Fraimovich
463da02be1 remove group_hack method (unused) 2016-12-07 12:01:44 +02:00
Arik Fraimovich
ecbed0087e Update create_and_login_user not to call save 2016-12-07 12:01:34 +02:00
Arik Fraimovich
8c2b310419 Add tests to alerts celery task 2016-12-07 12:01:22 +02:00
Arik Fraimovich
6b0e45441c Update QuerySnippets code to SQLA 2016-12-07 12:01:03 +02:00
Arik Fraimovich
74e1b3119f Remove dead code 2016-12-07 12:00:01 +02:00
Allen Short
dc6bc071f1 work around flask proxy object 2016-12-07 03:09:55 -06:00
Allen Short
4edc3e3f21 gratuitous admin query fix 2016-12-07 03:09:41 -06:00
Allen Short
8280859ad3 add test coverage for remaining queries to convert 2016-12-07 03:09:33 -06:00
Arik Fraimovich
f3d813445b Fix data source models tests 2016-12-07 03:09:33 -06:00
Allen Short
520835dad0 Fix test_cli 2016-12-07 03:09:33 -06:00
Arik Fraimovich
a5805d0700 Fix session api (used groups instead of group_ids) 2016-12-07 02:13:52 -06:00
Arik Fraimovich
03b2a416c8 Fix queries update handler 2016-12-07 02:13:52 -06:00
Arik Fraimovich
7d45812ef7 Add setting to enable SQLA echo mode 2016-12-07 02:13:52 -06:00
Arik Fraimovich
3f54799020 More destination handlers test fixes 2016-12-07 02:13:52 -06:00
Arik Fraimovich
c0f48909a7 Fix destinations handlers code 2016-12-07 02:13:52 -06:00
Allen Short
9b5aaa787d test_permissions, test_changes, test_queries 2016-12-07 02:13:20 -06:00
Allen Short
271b468bcb test_alerts 2016-12-07 02:13:20 -06:00
Allen Short
6c3d5d184e test_queries 2016-12-07 02:13:20 -06:00
Allen Short
261b374924 test_permissions 2016-12-07 02:13:20 -06:00
Allen Short
9f789d3018 test_paginate 2016-12-07 02:13:20 -06:00
Allen Short
29cdfcd7a1 test_embed, test_groups 2016-12-07 02:13:20 -06:00
Arik Fraimovich
d103e3f7bf Fix groups tests (except for delete) 2016-12-07 02:13:20 -06:00
Arik Fraimovich
c5548e9375 Fix query handlers test 2016-12-07 02:13:20 -06:00
Arik Fraimovich
802b812932 Fix query results tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
9c1450f4c9 Fix users handlers tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
4459c464ca use Query#query_text instead of Query#query 2016-12-07 02:13:20 -06:00
Arik Fraimovich
f4c76527ee Fix refresh queries tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
419234a23e Fix widget tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
b61dbfa16b Fix test_authentication tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
6b2d6a22f5 Change groups property of ApiUser to be group_ids 2016-12-07 02:13:20 -06:00
Arik Fraimovich
c355eeffb6 Fix test_permissions tests 2016-12-07 02:13:20 -06:00
Allen Short
c6ef6041cf test_data_sources passes 2016-12-07 02:13:20 -06:00
Allen Short
dff39a6849 test_dashboards passes 2016-12-07 02:13:20 -06:00
Allen Short
bb755b5c25 test_models fixes 2016-12-07 02:13:20 -06:00
Allen Short
d1fcb43562 test_alerts passes 2016-12-07 02:13:20 -06:00
Arik Fraimovich
811a4ef248 Fix accesspemrissions tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
c386ff91d6 Fix data source models tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
8680ebe96f Change Dashboard factory to generate non drafts 2016-12-07 02:13:20 -06:00
Arik Fraimovich
d59299b85a Fix Alert model tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
9210f5fb0c Remove unused code 2016-12-07 02:13:20 -06:00
Allen Short
c2378d837a test_handlers passes 2016-12-07 02:13:20 -06:00
Arik Fraimovich
90879c964f Simplify query api key generation 2016-12-07 02:13:20 -06:00
Arik Fraimovich
2a525210e4 Start fixing visualizations tests 2016-12-07 02:13:20 -06:00
Arik Fraimovich
04447e0df6 Fix: connections leaking during tests. 2016-12-07 02:13:20 -06:00
Arik Fraimovich
55cb3747ed Use db.drop_all/create_all directly 2016-12-07 02:13:20 -06:00
Arik Fraimovich
2bff12b376 Update all tests to use the same test_client 2016-12-07 02:13:20 -06:00
Arik Fraimovich
b390cd2e3d Close DB connection between tests.
Otherwise we were running out of connections.
2016-12-07 02:13:20 -06:00
Arik Fraimovich
f55b836896 Fix: fix database URL 2016-12-07 02:13:20 -06:00
Allen Short
982667ffa9 Make draft status for queries and dashboards toggleable. 2016-12-07 02:13:20 -06:00
Allen Short
f00d77dec4 auth tests wip 2016-12-07 02:13:20 -06:00
Allen Short
ea166665d3 test_models passes 2016-12-07 02:13:20 -06:00
Allen Short
d2aef544c3 properly handle view_only permission in groups API 2016-12-07 02:13:20 -06:00
Allen Short
24217d969e schema for sqlalchemy, basic test support 2016-12-07 02:13:20 -06:00
Arik Fraimovich
dde55e764b Merge pull request #1458 from washort/click
Change: switch from flask_script to click, add CLI unit tests and upgrade Flask version
2016-12-06 23:38:03 +02:00
Allen Short
80491ea4c2 Switch from flask_script to click, add CLI unit tests. 2016-12-06 15:14:44 -06:00
Arik Fraimovich
c2f9e376be Merge pull request #1460 from washort/master
Run webpack on all branches
2016-12-06 22:52:25 +02:00
Allen Short
20a0d95c1f make deps on all branches 2016-12-06 14:08:48 -06:00
Arik Fraimovich
fcd623e203 Merge pull request #1438 from someones/better_json_errors
[ElasticSearch] Change: use simplejson for better error descriptions
2016-12-06 11:47:44 +02:00
Arik Fraimovich
4b6d4c14d0 Merge pull request #1454 from getredash/fix-eprovider
Fix: eProvider not found errors
2016-12-06 11:15:02 +02:00
Arik Fraimovich
550310ea63 Fix: eProvider not found errorso 2016-12-06 11:13:47 +02:00
luke14free
e7fdc23b03 wrong check 2016-12-04 10:56:13 +01:00
luke14free
a754e58fd8 Explicitly checking undefined values 2016-12-04 10:50:03 +01:00
Arik Fraimovich
17895d09a9 Correct version. 2016-12-02 17:25:17 +02:00
Arik Fraimovich
8201509216 Update bootstrap.sh for v0.12.0
Fixes #1442.
2016-12-02 17:24:18 +02:00
Arik Fraimovich
f3df2b1d7a Merge pull request #1441 from someones/fix_angular15
Fix symlinks to /frontend. Should be /client
2016-12-02 08:40:13 +02:00
Adam Griffiths
e546592c01 Fix symlinks to /frontend. Should be /client 2016-12-02 11:14:24 +11:00
Waldemar Hummer
eaa0b5da09 fix https://github.com/getredash/redash/issues/1439 2016-12-02 10:32:41 +11:00
Arik Fraimovich
ba60bfa3b0 Update version reference in bootstrap.sh. 2016-12-01 10:54:50 +02:00
Adam Griffiths
4cd58cdacf Use simplejson for better error descriptions.
The standard json library only provides an error
that the json failed to parse.
simplejson provides actual character and line numbers
along with an expected character in it's errors.
This makes writing elasticsearch queries much easier.
2016-12-01 11:34:57 +11:00
Arik Fraimovich
196177021c Merge pull request #1435 from mattrobenolt/safe-builtins
Whitelisting more builtin primitives
2016-11-28 23:13:12 +02:00
Matt Robenolt
bce2e3323a Whitelisting more builtin primitives
This is also a slight refactor to make it easier to expand on this list
of builtins we allow.

Also, doesn't mutate the global `safe_builtins` dict every time from
`RestrictedPython`, instead, opts for copying the dict first.
2016-11-28 11:38:25 -08:00
luke14free
624a144880 Fix: add error bands to plotly only if they are set by the user 2016-11-28 11:43:08 +01:00
luke14free
870e7c200e Adding errors bands in graphs and fixing chart-edit bugs 2016-11-28 11:33:04 +01:00
Arik Fraimovich
f473e18bef Merge pull request #1376 from getredash/webpack
Change: upgrade the frontend stack
2016-11-28 10:34:38 +02:00
Arik Fraimovich
a463bad9b5 Add missing feature to the changelog. 2016-11-28 10:24:56 +02:00
Arik Fraimovich
14d46063af Make keyboard shortcuts work again 2016-11-28 10:18:17 +02:00
Arik Fraimovich
dca899883c Bring back pace 2016-11-28 09:51:51 +02:00
Arik Fraimovich
b5e2234234 Set title 2016-11-27 15:49:17 +02:00
Arik Fraimovich
b507c7cdb1 Fix authentication handling for embeds 2016-11-27 15:31:04 +02:00
Arik Fraimovich
51528508ba Make sure session is loaded before route is rendered 2016-11-27 14:02:29 +02:00
Arik Fraimovich
724b7675c7 Fix: query filters 2016-11-27 13:08:37 +02:00
Arik Fraimovich
1ea9f0e900 Fix: sometimes order of columns in table was wrong 2016-11-27 13:08:22 +02:00
Arik Fraimovich
8901079084 Fix new dashboard link in app header 2016-11-27 13:08:07 +02:00
Arik Fraimovich
c25a4e3285 Fix dashboard creation 2016-11-27 13:07:11 +02:00
Arik Fraimovich
5a3033aeb6 Add /dashboards to list of paths 2016-11-27 13:07:03 +02:00
Arik Fraimovich
cd670b677a Implement sorting for data tables 2016-11-27 12:00:47 +02:00
Arik Fraimovich
2067eab56b Fix: query snippets were broken 2016-11-27 12:00:22 +02:00
Arik Fraimovich
7c5d395736 Show correct embed URL 2016-11-27 10:55:47 +02:00
Arik Fraimovich
0a06d516e2 Remove input-errors/show-errors usage 2016-11-26 12:16:41 +02:00
Arik Fraimovich
68ccf4b13a Remove references to rd_ui 2016-11-26 12:01:42 +02:00
Arik Fraimovich
c029e13ba2 Migrate the draft functionality and fork to this branch 2016-11-26 11:54:14 +02:00
Arik Fraimovich
a874d88667 Fix tests & update CircleCI configuration 2016-11-26 11:35:21 +02:00
Arik Fraimovich
3314599be7 Webpack build notifier 2016-11-26 11:35:21 +02:00
Arik Fraimovich
bb64b17e45 Udpate webpack config 2016-11-26 11:35:21 +02:00
Arik Fraimovich
5c99175d2e change default settings to use client/dist 2016-11-26 11:35:21 +02:00
Arik Fraimovich
0a06f950d5 Working embeds & renamed frontend to client 2016-11-26 11:35:21 +02:00
Arik Fraimovich
50fcb14fda Working login/logout, real session data & public dashboard page
Fixes #1276.
2016-11-26 11:35:21 +02:00
Arik Fraimovich
73e5ed4a07 use clientconfig in datetime filter 2016-11-26 11:34:43 +02:00
Arik Fraimovich
4ef4f98a66 Load currentUser/clientConfig from server 2016-11-26 11:34:43 +02:00
Arik Fraimovich
8676eb000d Change queries/format call to return JSON object 2016-11-26 11:33:49 +02:00
Arik Fraimovich
3fecc023d2 Move backend templates into redash/templates 2016-11-26 11:33:49 +02:00
Arik Fraimovich
afc31aea9a Remove unused files 2016-11-26 11:33:49 +02:00
Arik Fraimovich
3070d85789 change sourcemaps generation method 2016-11-26 11:33:49 +02:00
Arik Fraimovich
8952919f41 Pivot table visualization 2016-11-26 11:33:49 +02:00
Arik Fraimovich
c67828f48d Map visualization 2016-11-26 11:33:49 +02:00
Arik Fraimovich
8e55be9712 Cohort visualization| 2016-11-26 11:33:49 +02:00
Arik Fraimovich
2ef8ecd14a Add wordcloud and boxplot visualizations 2016-11-26 11:33:49 +02:00
Arik Fraimovich
2b9066bb49 Sankey visualization 2016-11-26 11:33:49 +02:00
Arik Fraimovich
7dbd20cb15 Cleanup eslint issues 2016-11-26 11:33:49 +02:00
Arik Fraimovich
9579c0a970 Sunburst visualization 2016-11-26 11:33:49 +02:00
Arik Fraimovich
d237943a85 remove .env.example file 2016-11-26 11:33:49 +02:00
Arik Fraimovich
ca3c934ee4 Remove old gulp file & package.json 2016-11-26 11:33:49 +02:00
Arik Fraimovich
55e3d86308 Backport changes made after creating this pull request 2016-11-26 11:33:49 +02:00
Arik Fraimovich
df5e1b51d0 Remove manual injections 2016-11-26 11:33:49 +02:00
luke14free
599fe5f4de Adding capabilities to the original script runner 2016-11-26 11:33:49 +02:00
luke14free
f7eec278c9 Adding a query runner for generic script execution 2016-11-26 11:33:49 +02:00
Arik Fraimovich
0ced011f0f Address lint issues 2016-11-26 11:33:49 +02:00
Arik Fraimovich
0ab815ba9c Remove unused logging 2016-11-26 11:33:49 +02:00
Arik Fraimovich
4b191637ea Working dashboard editor 2016-11-26 11:33:49 +02:00
luke14free
02d27c1a0b Improving security checks & removing unused log 2016-11-26 11:33:49 +02:00
luke14free
edd2a1b547 Adding correct classes for the toggle and option to stop refresh 2016-11-26 11:33:49 +02:00
luke14free
4c3de76ea1 Making select menu for refresh choice look nicer 2016-11-26 11:33:49 +02:00
luke14free
21cfa35211 Fixing stupid concatenation typo 2016-11-26 11:33:49 +02:00
luke14free
b88f36a9f9 Add: autorefresh capabilities do dashboard 2016-11-26 11:33:49 +02:00
luke14free
3743ef5611 Adding capabilities to the original script runner 2016-11-26 11:33:49 +02:00
luke14free
f9260ca60f Adding clientConfig for JS visualization 2016-11-26 11:33:49 +02:00
luke14free
a368b14a97 Fixing wrong package version and ES6 compliance 2016-11-26 11:33:49 +02:00
luke14free
e9746ac528 Removing unused pagination import 2016-11-26 11:33:49 +02:00
luke14free
b9664141d5 Removing tabs and making the changes ES6 compliant 2016-11-26 11:33:49 +02:00
luke14free
f5c43d819a finally moving variables to this 2016-11-26 11:33:49 +02:00
luke14free
ff697109c3 Remove variables with $scope and use self 2016-11-26 11:33:49 +02:00
luke14free
0e6b68d3b2 Fixing CSS 2016-11-26 11:33:49 +02:00
luke14free
21283caae6 Adding a query runner for generic script execution 2016-11-26 11:33:49 +02:00
luke14free
f44912babe Hide tabs when viz type is set to custom 2016-11-26 11:33:49 +02:00
luke14free
71be7aa1ee Fixing console log reporting and option label 2016-11-26 11:33:49 +02:00
luke14free
df11077279 Removing unused import 2016-11-26 11:33:49 +02:00
luke14free
d929226c69 Adding custom javascript charts 2016-11-26 11:33:49 +02:00
Arik Fraimovich
f372e68cb8 Add queries results page 2016-11-26 11:33:49 +02:00
luke14free
55d8f9e01c Adding dropdown menu link to the dashboards page 2016-11-26 11:33:49 +02:00
luke14free
0b6d2b4486 Unpaginated results 2016-11-26 11:33:49 +02:00
luke14free
b249b9a444 Working version of the dashboard page 2016-11-26 11:33:49 +02:00
Arik Fraimovich
00bd38771d add back the vendor scripts file 2016-11-26 11:33:49 +02:00
Arik Fraimovich
99815b7c71 autofocus directive 2016-11-26 11:33:49 +02:00
Arik Fraimovich
59c3f3859d Make create dashboard work 2016-11-26 11:33:49 +02:00
Arik Fraimovich
fece3f8269 Make ui-sortable work again 2016-11-26 11:33:49 +02:00
Arik Fraimovich
d02c4e7f8d Add widget dialog 2016-11-26 11:33:49 +02:00
Arik Fraimovich
416f7da75f Query view/edit screens 2016-11-26 11:33:49 +02:00
Arik Fraimovich
d561904aa6 First version of query pages 2016-11-26 11:33:41 +02:00
Arik Fraimovich
33834a4436 data sources pages 2016-11-26 11:33:41 +02:00
Arik Fraimovich
b76fbc2150 Destinations editor 2016-11-26 11:33:41 +02:00
Arik Fraimovich
e0aeae4541 Desitnations list 2016-11-26 11:33:41 +02:00
Arik Fraimovich
54eb2fed50 remove edit-in-place directive 2016-11-26 11:33:41 +02:00
Arik Fraimovich
cb01381dfa Migrate the group list and show page 2016-11-26 11:33:41 +02:00
Arik Fraimovich
98cc0fe1ce Fix new user form to show errors 2016-11-26 11:33:41 +02:00
Arik Fraimovich
3583f57d00 new user page 2016-11-26 11:33:41 +02:00
Arik Fraimovich
de91bb941b User show page 2016-11-26 11:33:41 +02:00
Arik Fraimovich
6eb083193f Add users list page 2016-11-26 11:33:41 +02:00
Arik Fraimovich
d49e5f9d57 Query snippets pages 2016-11-26 11:33:41 +02:00
Arik Fraimovich
0e5325ef1c Remove code from rd_ui that was already migrated to frontend 2016-11-26 11:33:41 +02:00
Arik Fraimovich
db795c7b59 Remove unused test code 2016-11-26 11:33:12 +02:00
Arik Fraimovich
bbbaa7a842 working version of chart visualization 2016-11-26 11:33:12 +02:00
Arik Fraimovich
ee31edf690 Visualzations base & table visualization 2016-11-26 11:33:12 +02:00
Arik Fraimovich
22236c7ffe Add alerts and admin pages 2016-11-26 11:33:12 +02:00
Arik Fraimovich
9c9feee7b5 Queries page 2016-11-26 11:33:12 +02:00
Arik Fraimovich
4ad53eb8dd Support for pushstate in dev server 2016-11-26 11:33:12 +02:00
Arik Fraimovich
aa529e40d3 Initial config 2016-11-26 11:33:12 +02:00
Arik Fraimovich
0318be5ed9 Separate npm modules to their own JS file 2016-11-26 11:33:12 +02:00
Arik Fraimovich
da790de60d First page implemented (home) 2016-11-26 11:33:12 +02:00
Arik Fraimovich
4e0c9af18d Migrated services & app header component 2016-11-26 11:33:12 +02:00
Arik Fraimovich
56bdea2d8d Migrate filters 2016-11-26 11:33:12 +02:00
Arik Fraimovich
a83646070f Initial Webpack setup 2016-11-26 11:33:12 +02:00
Arik Fraimovich
6f52c50adc Merge pull request #1429 from someones/es_error_propagation
Add missing error check from #1402
2016-11-25 18:19:44 +02:00
Adam Griffiths
c449bfbcf5 Add missing error check 2016-11-25 10:18:54 +11:00
Arik Fraimovich
47c1ac89f2 Merge pull request #1405 from denisov-vlad/google_analytics
[Datasources] Add: simple Google Analytics query runner
2016-11-24 22:18:02 +02:00
Vladislav Denisov
6bdc863b64 google_analytics: review fixes #2 2016-11-24 23:17:04 +03:00
Arik Fraimovich
9b6b27a002 Merge pull request #1409 from denisov-vlad/clickhouse
[Datasources] Add: Add query runner for Yandex ClickHouse
2016-11-24 21:52:26 +02:00
Arik Fraimovich
b9aeb2f419 Merge pull request #1427 from getredash/cass
[Cassandra] Fix: remove reference to non existing Error class
2016-11-24 21:50:05 +02:00
Vladislav Denisov
92dee61bcd google_analytics: added accounts and properties as schema tables 2016-11-23 17:17:05 +03:00
Arik Fraimovich
f3db250fd7 [Cassandra] Fix: remove reference to non existing Error class 2016-11-23 13:05:28 +02:00
Arik Fraimovich
9f68deefea Merge pull request #1256 from ninneko/fork_with_vis
Change: when forking a query, copy all visualizations
2016-11-23 11:49:26 +02:00
Vladislav Denisov
8eefad290b google_analytics: review fixes 2016-11-23 12:48:10 +03:00
Arik Fraimovich
0947491400 Merge pull request #1423 from getredash/cass_error
[Cassandra] Fix: cassandra.cluster.Error wasn't imported
2016-11-23 10:53:54 +02:00
Vladislav Denisov
f572315e9d clickhouse: changed exception's message type to unicode 2016-11-23 11:53:11 +03:00
Arik Fraimovich
52c71bc740 [Cassandra] Fix: cassandra.cluster.Error wasn't imported
Fixed #1422.
2016-11-23 10:51:06 +02:00
Vladislav Denisov
3a80dfff39 review fixes 2016-11-23 10:15:03 +03:00
Arik Fraimovich
e6482cffab Merge pull request #1421 from getredash/arikfr-patch-1
Change: [BigQuery] only specify useLegacySQL is it's True
2016-11-22 23:55:16 +02:00
Arik Fraimovich
971f961bcd Merge pull request #1353 from washort/draft-toggle
Change: make draft status for queries and dashboards toggleable
2016-11-22 23:38:33 +02:00
Arik Fraimovich
4cb0f910ea Change: [BigQuery] only specify useLegacySQL is it's False 2016-11-22 23:25:10 +02:00
Arik Fraimovich
265c9733ba Merge pull request #1419 from ehfeng/master
Change: use redash.utils.json_dumps instead of json.dumps in Python query runner
2016-11-22 15:27:43 +02:00
Eric Feng
a834b08603 Switching to redash.utils.json_dumps
Currently, python runner is returning datetime objects as unicode strings. `redash.utils.json_dumps` returns them as native python datetime objects.
2016-11-21 13:13:08 -08:00
Vladislav Denisov
a66136e6a4 clickhouse: removed unused code 2016-11-20 14:50:38 +03:00
Arik Fraimovich
037d196557 Merge pull request #1373 from AntoineAugusti/rate-limit-login
Add: rate limit the login page
2016-11-20 13:47:16 +02:00
Antoine Augusti
9118464970 Rate limit the login page 2016-11-20 12:44:43 +01:00
Vladislav Denisov
c94daceb5f google_analytics: added date/datetime parsing 2016-11-20 14:18:02 +03:00
Vladislav Denisov
0a0ca219d0 google_analytics: removed unused code 2016-11-20 13:54:58 +03:00
Arik Fraimovich
e65ec8cf4b Merge pull request #1402 from someones/es_error_propagation
Change: correctly propagate ElasticSearch errors to the UI
2016-11-20 12:49:39 +02:00
Vladislav Denisov
d03cafc09b clickhouse: added more column types 2016-11-20 13:14:17 +03:00
Arik Fraimovich
3b7f167861 Merge pull request #1371 from vitorbaptista/feature/show_admins_the_password_reset_link
Change: display user's password reset link to the admin when mail server disabled
2016-11-20 11:30:55 +02:00
Arik Fraimovich
a951034f4b Update release notes. 2016-11-20 11:16:38 +02:00
Arik Fraimovich
8a622fb7ca Bump version to 1.0.0. 2016-11-20 10:58:11 +02:00
Arik Fraimovich
ca39892c64 Update release date of 0.12.0. 2016-11-20 10:57:40 +02:00
Vladislav Denisov
bdee3392ec clickhouse: query runner for Yandex.Clickhouse DB 2016-11-18 15:48:01 +03:00
Adam Griffiths
8ad336ad71 Propagate elasticsearch errors to the UI
Handle and correctly print various errors which
we're being obscured as "Unable to serialise JSON"
errors.
Requests' exceptions also have non-json serializable
characters, and so have to be converted to a safer format.
2016-11-18 12:49:36 +11:00
Adam Griffiths
60a4c3de04 PEP8 updates for ES query runner 2016-11-18 12:49:19 +11:00
Vladislav Denisov
de64c4c80c simple GA query runner 2016-11-17 17:56:52 +03:00
Vitor Baptista
3ca78bebde Fix conditions to show the user reset link 2016-11-16 17:38:17 +00:00
Arik Fraimovich
2d7a497073 Merge pull request #1398 from getredash/012patches
Fix: missing images after minification
2016-11-16 08:58:47 +02:00
Arik Fraimovich
788c16ce37 Fix #1389: missing images after minification 2016-11-16 08:53:16 +02:00
Arik Fraimovich
2de4aa2a0c Merge pull request #1395 from getredash/012patches
Change: switch to requests in URL query runner
2016-11-15 18:23:06 +02:00
Arik Fraimovich
10cbb7fd52 Change: switch to requests in URL query runner 2016-11-15 18:19:44 +02:00
Arik Fraimovich
0cbbe7095d Merge pull request #1394 from getredash/012patches
Fix: conflict handling in dashboard widget editing was wrong
2016-11-15 16:05:30 +02:00
Arik Fraimovich
c88dafa4ad Fix: update version after deleting a widget 2016-11-15 15:57:34 +02:00
Arik Fraimovich
48a79fe996 Fix #1383: dashboard co-editors shuould be able to edit widgets 2016-11-15 15:53:06 +02:00
Arik Fraimovich
b70a24f6b4 Fix 1388: Wrong detection of conflict after adding a widget to the dashboard 2016-11-15 15:52:36 +02:00
Arik Fraimovich
d1b82694a6 Fix author name on #1113. 2016-11-15 15:51:46 +02:00
Arik Fraimovich
db1a941459 Merge pull request #1392 from getredash/012patches
Update documentation links to point at the new location.
2016-11-15 14:04:56 +02:00
Arik Fraimovich
e22706692a Remove old documentation. 👋 2016-11-15 14:01:15 +02:00
Arik Fraimovich
c06aeae84f Update references to documentation to point at the new one 2016-11-15 13:56:55 +02:00
Arik Fraimovich
e0617d9ad7 Merge pull request #1243 from kassyuz/patch-1
Create proxy_pass.rst
2016-11-15 13:17:54 +02:00
yohei.naruse
8c78252ea2 fix tests 2016-11-11 02:21:30 +09:00
Arik Fraimovich
29a2fb1931 Merge pull request #1382 from getredash/changelog
Add: a changelog
2016-11-10 10:06:16 +02:00
Arik Fraimovich
e21799a754 Add a changelog 📜 💥 2016-11-10 10:05:09 +02:00
yohei.naruse
1ad0c9c75f fix errors 2016-11-09 00:37:16 +09:00
Vitor Baptista
438ebb940e Fix condition to show forgotten password link and alter its message 2016-11-07 18:13:33 +00:00
Arik Fraimovich
d6febb0cb4 Merge pull request #1375 from moonami/issue-1247
Fix: Download Dataset does not work when not logged in
2016-11-07 10:38:38 +02:00
yohei.naruse
7bc71c9cb5 apply review. 2016-11-06 03:05:48 +09:00
yohei.naruse
519964a179 delete unused code 2016-11-06 03:05:48 +09:00
yohei.naruse
1d486938c1 fix bugs 2016-11-06 03:05:47 +09:00
yohei.naruse
ad3d01280a modify front scripts to use query fork api 2016-11-06 03:04:30 +09:00
yohei.naruse
3216e67b41 add query fork api 2016-11-06 03:03:04 +09:00
yohei.naruse
e5665879bd add query fork to models.py 2016-11-06 03:02:11 +09:00
Arik Fraimovich
61fe16e18e Merge pull request #1374 from washort/cors-star
Add: allow '*' in REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN
2016-11-05 17:46:55 +02:00
Joshua Dechant
2184f53277 JS vars should be camelCase 2016-11-04 23:46:54 -04:00
Joshua Dechant
733f245e36 This fixes #1247 2016-11-04 12:40:53 -04:00
Allen Short
6c4294b64d Allow '*' in REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN 2016-11-02 16:31:58 -05:00
Vitor Baptista
69c1f15ce9 Wrap "Password Reset Button" in form group to visually separate it 2016-11-02 18:23:15 +00:00
Vitor Baptista
72389b00c9 Display user's password reset link to the admin
Similarly to when we invite new users, this allows the admin to reset the
password herself (or send it manually to the user), in cases where there's some
issue sending the e-mail.
2016-11-02 18:20:05 +00:00
Allen Short
65a6385380 Make draft status for queries and dashboards toggleable. 2016-11-02 12:31:33 -05:00
Arik Fraimovich
2f090435a5 Merge pull request #1113 from whummer/feat/share-access-permissions
Add: share modify/access permissions for queries and dashboard
2016-10-28 19:11:03 +03:00
Arik Fraimovich
d9bad96e8e Remove MQL tests 2016-10-28 18:16:54 +03:00
Arik Fraimovich
b7a5d95bb8 Add JIRA connection test 2016-10-28 18:13:20 +03:00
Arik Fraimovich
ab85e43e58 Fix graphite test connection method 2016-10-28 17:50:26 +03:00
Arik Fraimovich
96553ad942 Merge pull request #1369 from someones/es_test_fix
Fix: missing format call in Elasticsearch test method
2016-10-28 09:14:10 +03:00
Adam Griffiths
c1847fbc12 Fix missing format call 2016-10-28 15:44:59 +11:00
Arik Fraimovich
dc345aa363 Fix: bring back correct timeout value 2016-10-27 19:34:00 +03:00
Arik Fraimovich
002f794f2a Merge pull request #1368 from getredash/rand
Change: added ability to disable auto update in admin views
2016-10-27 19:32:16 +03:00
Arik Fraimovich
d2c64c6da2 Ability to disable auto update in admin views 2016-10-27 19:28:43 +03:00
Arik Fraimovich
e2595e7540 Show queues data sources in a pop over 2016-10-27 19:21:42 +03:00
Arik Fraimovich
aa5d14ed02 Merge pull request #1366 from deecay/master
Change: improve error message for exception in the Python query runner
2016-10-27 09:35:00 +03:00
deecay
4ba7aa1fc0 Improve error message for exception. 2016-10-27 11:16:04 +09:00
Arik Fraimovich
fd9dc4b4e8 Update controller/view name 2016-10-26 22:17:17 +03:00
Arik Fraimovich
c57c765688 Merge pull request #1365 from washort/tz-fix
Fix: compare retrieval times in UTC timezone
2016-10-26 21:47:27 +03:00
Arik Fraimovich
52b87efb73 Add feature flag for the permissions control feature 2016-10-26 21:40:51 +03:00
Allen Short
36d01a2029 Compare retrieval times in UTC timezone 2016-10-26 10:18:33 -05:00
Arik Fraimovich
2592959550 Use version for partial query updates 2016-10-26 16:28:39 +03:00
Arik Fraimovich
6c5dd09a78 Add change tracking and fix tests 2016-10-26 16:09:55 +03:00
Arik Fraimovich
9cb9bdb515 Record events for permission changes 2016-10-26 11:47:57 +03:00
Arik Fraimovich
df17759ab4 Fix tests 2016-10-26 11:47:40 +03:00
Arik Fraimovich
028393b229 Return dashboard permission status with dashboard object 2016-10-26 11:22:51 +03:00
Arik Fraimovich
8245a667ef Return permission state with query object 2016-10-26 11:17:14 +03:00
Arik Fraimovich
6218421266 Tests for the permissions API (and rewrite) 2016-10-26 10:52:24 +03:00
Arik Fraimovich
f34471ec10 Return 409 when dashboard can't be updated due to conflict 2016-10-25 11:58:43 +03:00
Arik Fraimovich
40cc592591 Make sure error are logged in tests 2016-10-25 11:58:25 +03:00
Arik Fraimovich
bb96702ae6 Update dashboard testS 2016-10-25 10:45:00 +03:00
Arik Fraimovich
8b091129ed Use new helper for dashboards API 2016-10-24 21:33:49 +03:00
Arik Fraimovich
edea6f3a05 WIP:
- Move version/change tracking logic to mixins (the change mixin is still WIP).
- Tests for queries update API.
2016-10-24 16:58:30 +03:00
Arik Fraimovich
c51477ac93 Add tests outline 2016-10-24 13:56:39 +03:00
Arik Fraimovich
9f3bbfee13 Renames 2016-10-24 13:56:31 +03:00
Arik Fraimovich
7ba5a2062a Remove unused method 2016-10-24 13:37:32 +03:00
Arik Fraimovich
00a77f8d3a snake_case to camelCase 2016-10-24 12:57:54 +03:00
Arik Fraimovich
b9ab9135d0 Apply review to models code 2016-10-24 12:57:30 +03:00
Arik Fraimovich
19e5a0af86 Naming and indentation fixes 2016-10-24 12:40:17 +03:00
Arik Fraimovich
b748eb14f4 "Simplify" migration code 2016-10-24 12:35:52 +03:00
Waldemar Hummer
60a79cbe08 address code review comments 2016-10-24 12:33:29 +03:00
Waldemar Hummer
c0c4f453f2 fix handling of latest_version in query view 2016-10-24 12:33:29 +03:00
Waldemar Hummer
e0672f4c4d add optimistic locking for dashboard editing 2016-10-24 12:33:29 +03:00
Waldemar Hummer
6b540e03fc check for shared permissions in dashboard UI 2016-10-24 12:33:29 +03:00
Tatyana Tychshenko
95dca53b1e Finalised UI for sharing permissions 2016-10-24 12:33:29 +03:00
Waldemar Hummer
91a46ea1bb add optimistic locking for concurrent changes to queries by different users 2016-10-24 12:33:29 +03:00
Waldemar Hummer
903ba0c1e0 add backend API and tests for managing access permissions. 2016-10-24 12:33:29 +03:00
Tatyana Tychshenko
2a688200be UI for sharing edit permissions 2016-10-24 12:33:29 +03:00
Arik Fraimovich
37dff5f0a4 Merge pull request #1360 from shinji19/hotfix/mysql_connection_test
Fix: connection test was broken for MySQL
2016-10-24 12:09:07 +03:00
ichihara
6397b8ca1f fix variable name 2016-10-24 18:01:46 +09:00
Arik Fraimovich
360028c01f Merge pull request #1359 from laughingman7743/fix_schema_loading_query
Fix: schema loading query for Hive was wrong for non default schema
2016-10-23 16:12:42 +03:00
laughingman7743
6a42daffe2 Fix schema loading query for Hive query runner 2016-10-22 10:06:18 +09:00
Arik Fraimovich
7ee41d41b5 Merge pull request #1358 from getredash/add_user_id_to_run_query
Fix: make sure all calls to run_query updated with new parameter
2016-10-21 21:54:03 +03:00
Arik Fraimovich
c138d0592a Fix: make sure all calls to run_query updated with new parameter 2016-10-21 19:15:50 +03:00
Arik Fraimovich
3db0eea921 Merge pull request #1341 from zoetrope/specify-nameid-format-in-saml
Add: support for specifying SAML nameid-format
2016-10-21 08:17:11 +03:00
zoetrope
9ce211bf09 add environment variable name in doc 2016-10-21 13:58:27 +09:00
zoetrope
5610ce1721 specify nameid-format in SAML authentication 2016-10-21 13:58:12 +09:00
zoetrope
67528eeb73 Merge remote-tracking branch 'upstream/master' 2016-10-21 13:09:43 +09:00
Arik Fraimovich
880627c69c Merge pull request #1355 from getredash/add_user_id_to_run_query
Change: pass the user object to the run_query method
2016-10-21 00:06:05 +03:00
Arik Fraimovich
ae2cd5363f Change: pass the user object to the run_query method
This to allow different use cases like checking permissions
based on who is currently running the query.
2016-10-20 23:42:25 +03:00
Arik Fraimovich
b0ecd0e9a0 Merge pull request #1343 from zoetrope/use-local-metadata-in-saml
Add: support for local SAML metadata file
2016-10-20 15:39:34 +03:00
Arik Fraimovich
23c605b149 Merge pull request #1342 from zoetrope/add-entity-id-in-saml
SAML: specify entity id
2016-10-20 15:38:39 +03:00
Arik Fraimovich
464b8368bf Merge pull request #1301 from washort/connection-test
Add: "test connection" button for data sources
2016-10-20 10:21:31 +03:00
Arik Fraimovich
cb0ea7b63e Show spinner while testing connection 2016-10-20 10:11:16 +03:00
Arik Fraimovich
ef07388d2a Allow testing connection only after saving 2016-10-20 10:11:16 +03:00
Arik Fraimovich
8464d8c64a Fix the way we were calling the test API -
Previously it was overriding the content of $scope.dataSource and
resulting in a broken form.

Also updated the messages.
2016-10-20 10:11:16 +03:00
Arik Fraimovich
37a02bfe37 Make the DataSourceTest api more consistent with other APIs. 2016-10-20 10:11:16 +03:00
Arik Fraimovich
41f7791c87 Make the DataSourceList#get call more robust 2016-10-20 10:10:42 +03:00
Arik Fraimovich
9041ccabd3 Change: update Raven version (5.27.0 had a bug) 2016-10-20 10:10:42 +03:00
Arik Fraimovich
d4a1a5b239 Update CSS files in embed.html 2016-10-20 10:10:42 +03:00
Arik Fraimovich
cf7ed8fae7 Change: catch all exceptions from query runners 2016-10-20 10:10:42 +03:00
Arik Fraimovich
f63d43c3cf *Don't* anotate MSSQL queries.. 2016-10-20 10:10:42 +03:00
Arik Fraimovich
aec38614c0 Change: make visualization embeds more printer friendly 2016-10-20 10:10:42 +03:00
Arik Fraimovich
459a25bedd Revert settings screen menu to simple mode to allow extending it 2016-10-20 10:10:42 +03:00
Arik Fraimovich
14e024bca8 Add: allow changing alert email subject.
Fixes #1144.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
fc8985f689 Change: allow specifying recipient address when sending email test message.
Closes #1224.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
cecc1a9462 Fix: 0 is falsy, so need to check differently if there is value defined. 2016-10-20 10:10:42 +03:00
Arik Fraimovich
fe6497dfe7 Add: control over y axis min/max values 2016-10-20 10:10:42 +03:00
Arik Fraimovich
79df2b8d22 Add option to change the map tile layer 2016-10-20 10:10:42 +03:00
Arik Fraimovich
ef6a543850 Use group color for the marker-cluster 2016-10-20 10:10:42 +03:00
Arik Fraimovich
c17a6956dc Change: upgrade Python packages
- pytz
- funcy
- raven (Sentry client)
- xlsxwriter
2016-10-20 10:10:42 +03:00
Arik Fraimovich
6775f01684 Celery: Upgrade Celery to more recent version.
This might help with worker stopping to take new tasks after some time.

Closes #1258.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
3a4754303d Change: upgrade Requests to latest version.
Closes #643.
Related #1258.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
f9824675f1 Fix: Redis memory leak.
We were appending new QueryTaskTracker ids to query_task_trackers sorted set
but we were never removing them...

Also removed the migration to create index on org_id as it created by default
by Peewee for foreign keys.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
42ae78a017 Add: support for snapshot generation service 2016-10-20 10:10:42 +03:00
Arik Fraimovich
f56cbf051c Fix: queries API was doing N+1 queries in most cases 2016-10-20 10:10:42 +03:00
Arik Fraimovich
ef80fb1d1a Change: add more logging and information for refresh schemas task 2016-10-20 10:10:42 +03:00
Arik Fraimovich
b92f22c36e Add: collect runtime metrics for Celery tasks 2016-10-20 10:10:42 +03:00
Arik Fraimovich
fde0ba1503 Add: feature toggle to control if to report query results count 2016-10-20 10:10:42 +03:00
Arik Fraimovich
c8b62755d0 Change: remove deprecated settings 2016-10-20 10:10:42 +03:00
Arik Fraimovich
7de2d6c101 Only show BigQuery GCE option when on a GCE instance 2016-10-20 10:10:42 +03:00
Arik Fraimovich
8cc4e2bee7 Add: support for loading BigQuery schema 2016-10-20 10:10:42 +03:00
Arik Fraimovich
7b0f5a195e Add: support MongoDB SSL connections 2016-10-20 10:10:42 +03:00
Arik Fraimovich
0d8ee9ced7 Change: more flexible column width calculation 2016-10-20 10:10:42 +03:00
Arik Fraimovich
838c211198 Add: additional configuration for Celery jobs 2016-10-20 10:10:42 +03:00
Arik Fraimovich
9c3baed230 Fix: BoxPlot visualization wasn't rendering on a dashboard 2016-10-20 10:10:42 +03:00
Arik Fraimovich
435b49fa9c Change: don't annotate MSSQL queries.
(I got tired of chasing weird unicode issues)
2016-10-20 10:10:42 +03:00
Arik Fraimovich
707df82b40 Add: support for date/time with seconds parameters 2016-10-20 10:10:42 +03:00
Arik Fraimovich
8116c6140f Fix: properly render checkboxes in dynamic forms 2016-10-20 10:10:42 +03:00
Arik Fraimovich
34543e67f7 Fix: support for Unicode columns name in Google Spreadsheets 2016-10-20 10:10:42 +03:00
Arik Fraimovich
afe5cae2a9 Add: API to force refresh data source schema 2016-10-20 10:10:42 +03:00
Arik Fraimovich
94a0bddb3d Typo fix in dashboard page. 2016-10-20 10:10:42 +03:00
Kazuhito Hokamura
9786063dbb Add a comment 2016-10-20 10:10:42 +03:00
Kazuhito Hokamura
025e9d2710 Limit the editing functionality to only the text 2016-10-20 10:10:42 +03:00
Arik Fraimovich
a9562d361f Change: paginate query page & add explicit urls.
- Paginate the queries API result.
- Split the API to /api/queries (all queries) and /api/queries/my which returns
  a user's queries (or drafts).
- In the interface have explicit URLs for all queries (/queries), my queries (/queries/my)
  and drafts (/queries/drafts).
2016-10-20 10:10:42 +03:00
Kazuhito Hokamura
97ad716d5a Make it possible to edit a TextBox 2016-10-20 10:10:42 +03:00
Arik Fraimovich
95367abc91 Add JQL to default enabled query runners. 2016-10-20 10:10:42 +03:00
Tsuyoshi Tatsukawa
f7af1fa82a add Content-Type to JSON response of QueryResultResource 2016-10-20 10:10:42 +03:00
Arik Fraimovich
5321948e46 Add documentation on JIRA datasource 2016-10-20 10:10:42 +03:00
Arik Fraimovich
df437999ca Add JIRA query runner 2016-10-20 10:10:42 +03:00
Arik Fraimovich
f4b87e76a3 Change: update Slack configuration titles. 2016-10-20 10:10:42 +03:00
Arik Fraimovich
f0d0d60dc1 Change: don't annotate BigQuery queries
It's not really useful anyway and breaks support for `#StandardSQL` directive.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
26bd08bb2b Add markers cluster support & cleanup/refactor code. 2016-10-20 10:10:42 +03:00
Hirotaka Suzuki
e5146c3755 Add REDASH_FEATURE_DISABLE_REFRESH_QUERIES setting 2016-10-20 10:10:42 +03:00
IllusiveMilkman
f12d47752c Update bootstrap.sh
Check for Ubuntu 16.04 before upgrading pip.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
7683402741 Move around some functions and add support for window resize event. 2016-10-20 10:10:42 +03:00
Arik Fraimovich
ba354ce65a Remove unnecessary code. 2016-10-20 10:10:42 +03:00
Arik Fraimovich
f892a3c70a Fix: use key_as_string when available. 2016-10-20 10:10:42 +03:00
IllusiveMilkman
cc1dae8eed Update bootstrap.sh
Testing script on clean install of Ubuntu Desktop 16.04.1.

pip fails if not upgraded beforehand, whether "sudo" or "sudo -s" or "sudo -sH" is run.

After this modification it works perfectly from a clean install.  Below are my steps if anyone should want to replicate or validate:
1. Clean install of Ubuntu 16.04.1 Desktop (on VM)
2. sudo apt-get -y install git
3. mkdir ~/git
4. cd ~/git
5. git clone https://github.com/getredash/redash
6. cd ~/git/redash/setup/ubuntu
7. chmod +x bootstrap.sh
8. nano bootstrap.sh
9. added "pip install --upgrade pip" to the script above the "pip install -U..." line.
10. Saved script.
11. sudo -H ./bootstrap.sh

Note that the "-H" is necessary in order to run the script successfully, otherwise you will run into pip ownership issues.
2016-10-20 10:10:42 +03:00
Arik Fraimovich
0436c3b5b7 Use smaller Plot.ly build 2016-10-20 10:10:42 +03:00
Arik Fraimovich
e810b36496 Sepcify specific version of Plotly 2016-10-20 10:10:42 +03:00
Arik Fraimovich
50ece739d9 Remove non existing cache directory. 2016-10-20 09:16:08 +03:00
Arik Fraimovich
2d2df5c9e0 Try newer version of NodeJS for builds. 2016-10-20 08:56:19 +03:00
Allen Short
d54e9125d9 Connection-test UI 2016-10-19 12:03:28 -05:00
zoetrope
78bc42e65c add environment variable name in doc 2016-10-13 10:58:00 +09:00
zoetrope
186537d849 add environment variable name in doc 2016-10-13 10:57:13 +09:00
zoetrope
a729601dff specify entityid in AuthnRequest in SAML 2016-10-13 10:19:41 +09:00
zoetrope
07af792943 use local metadata in saml 2016-10-13 10:11:37 +09:00
Arik Fraimovich
c14d119fe7 Change: update Raven version (5.27.0 had a bug) 2016-10-10 18:08:15 +03:00
Arik Fraimovich
1c4225beff Update CSS files in embed.html 2016-10-09 22:57:34 +03:00
Arik Fraimovich
53b710ee7b Change: catch all exceptions from query runners 2016-10-09 22:52:28 +03:00
Arik Fraimovich
04398ff909 *Don't* anotate MSSQL queries.. 2016-10-09 13:50:00 +03:00
Arik Fraimovich
ce77f452c7 Change: make visualization embeds more printer friendly 2016-10-09 13:23:37 +03:00
Arik Fraimovich
7a855d1e0a Revert settings screen menu to simple mode to allow extending it 2016-10-09 13:15:14 +03:00
Arik Fraimovich
0235d37005 Merge pull request #1335 from getredash/add-yaxis-scales
Add: allow changing alert email subject.
2016-10-09 10:02:19 +03:00
Arik Fraimovich
5df4e7eb78 Add: allow changing alert email subject.
Fixes #1144.
2016-10-09 09:44:34 +03:00
Arik Fraimovich
015b1dc8fd Merge pull request #1334 from getredash/add-yaxis-scales
Change: allow specifying recipient address when sending email test message
2016-10-09 09:19:08 +03:00
Arik Fraimovich
8e9e288a1d Change: allow specifying recipient address when sending email test message.
Closes #1224.
2016-10-09 09:15:47 +03:00
Arik Fraimovich
2135dfd2e5 Merge pull request #1333 from getredash/add-yaxis-scales
Add: control over y axis min/max values
2016-10-09 09:14:58 +03:00
Arik Fraimovich
08676a3d0b Fix: 0 is falsy, so need to check differently if there is value defined. 2016-10-09 09:06:33 +03:00
Arik Fraimovich
1ac3119648 Add: control over y axis min/max values 2016-10-08 23:29:30 +03:00
Arik Fraimovich
39aaa2fd94 Merge pull request #1292 from getredash/add-cluster-marker
Change: improvements to map visualization
2016-10-08 15:37:51 +03:00
Arik Fraimovich
85fe74f3db Add option to change the map tile layer 2016-10-08 15:34:20 +03:00
Arik Fraimovich
7cbf350b73 Use group color for the marker-cluster 2016-10-08 11:59:19 +03:00
Arik Fraimovich
b22191b789 Merge pull request #1332 from getredash/small
Change: upgrade Python packages
2016-10-08 11:33:16 +03:00
Arik Fraimovich
23ba98bc94 Merge pull request #1331 from getredash/small
Celery: Upgrade Celery to more recent version.
2016-10-08 11:26:23 +03:00
Arik Fraimovich
66f8922d5b Change: upgrade Python packages
- pytz
- funcy
- raven (Sentry client)
- xlsxwriter
2016-10-08 11:25:54 +03:00
Arik Fraimovich
3283116518 Merge pull request #1330 from getredash/small
Change: upgrade Requests to latest version.
2016-10-08 11:10:09 +03:00
Arik Fraimovich
2565af604e Celery: Upgrade Celery to more recent version.
This might help with worker stopping to take new tasks after some time.

Closes #1258.
2016-10-08 11:08:28 +03:00
Arik Fraimovich
0d944794e4 Merge pull request #1329 from getredash/small
Fix: Redis memory leak.
2016-10-08 11:03:56 +03:00
Arik Fraimovich
7cc22c71a1 Change: upgrade Requests to latest version.
Closes #643.
Related #1258.
2016-10-08 11:03:43 +03:00
Arik Fraimovich
4d47583a94 Fix: Redis memory leak.
We were appending new QueryTaskTracker ids to query_task_trackers sorted set
but we were never removing them...

Also removed the migration to create index on org_id as it created by default
by Peewee for foreign keys.
2016-10-08 10:59:52 +03:00
Arik Fraimovich
49e788a1aa Merge pull request #1328 from getredash/small
Add: support for snapshot generation service
2016-10-07 17:34:10 +03:00
Arik Fraimovich
7145aa2086 Merge pull request #1325 from getredash/small
Fix: queries API was doing N+1 queries in most cases
2016-10-07 00:08:07 +03:00
Arik Fraimovich
d1a3ed312a Add: support for snapshot generation service 2016-10-07 00:07:54 +03:00
Arik Fraimovich
2db4b67505 Fix: queries API was doing N+1 queries in most cases 2016-10-07 00:00:41 +03:00
Arik Fraimovich
39091e006a Merge pull request #1324 from getredash/small
Change: add more logging and information for refresh schemas task
2016-10-06 22:20:20 +03:00
Arik Fraimovich
229ca6cb52 Merge pull request #1323 from getredash/small
Add: collect runtime metrics for Celery tasks
2016-10-06 15:54:58 +03:00
Arik Fraimovich
2ac64a7d08 Change: add more logging and information for refresh schemas task 2016-10-06 15:54:46 +03:00
Arik Fraimovich
00acaa214b Add: collect runtime metrics for Celery tasks 2016-10-06 15:30:43 +03:00
Arik Fraimovich
462faea52d Merge pull request #1316 from getredash/small
Change: remove deprecated settings
2016-10-05 17:22:02 +03:00
Arik Fraimovich
d6dd95db31 Add: feature toggle to control if to report query results count 2016-10-05 17:19:25 +03:00
Arik Fraimovich
a8fa68a563 Change: remove deprecated settings 2016-10-05 17:15:46 +03:00
Arik Fraimovich
931a1f3379 Merge pull request #1315 from getredash/small
Add: support for loading BigQuery schema
2016-10-05 17:15:13 +03:00
Arik Fraimovich
0952cf8178 Only show BigQuery GCE option when on a GCE instance 2016-10-05 17:07:01 +03:00
Arik Fraimovich
0eab12880f Add: support for loading BigQuery schema 2016-10-05 16:56:59 +03:00
Arik Fraimovich
39b4f9af22 Merge pull request #1314 from getredash/small
Add: support MongoDB SSL connections
2016-10-05 16:56:55 +03:00
Arik Fraimovich
1049d46a20 Add: support MongoDB SSL connections 2016-10-05 16:54:22 +03:00
Arik Fraimovich
73e1837469 Merge pull request #1313 from getredash/small
Change: more flexible column width calculation
2016-10-05 16:53:52 +03:00
Arik Fraimovich
ca1ca9b451 Merge pull request #1312 from getredash/small
Add: additional configuration for Celery jobs
2016-10-05 16:49:32 +03:00
Arik Fraimovich
fb30a8217c Change: more flexible column width calculation 2016-10-05 16:43:45 +03:00
Arik Fraimovich
30451bc0d9 Add: additional configuration for Celery jobs 2016-10-05 16:41:41 +03:00
Arik Fraimovich
cd2e9276fb Merge pull request #1311 from getredash/small
Fix: BoxPlot visualization wasn't rendering on a dashboard
2016-10-05 16:35:10 +03:00
Arik Fraimovich
fc00e61d49 Merge pull request #1310 from getredash/small
Add: support for date/time with seconds parameters
2016-10-05 16:34:32 +03:00
Arik Fraimovich
6a973f31b3 Fix: BoxPlot visualization wasn't rendering on a dashboard 2016-10-05 16:32:53 +03:00
Arik Fraimovich
a562ce748d Merge pull request #1309 from getredash/small
Fix: properly render checkboxes in dynamic forms
2016-10-05 16:32:20 +03:00
Arik Fraimovich
4462afc670 Change: don't annotate MSSQL queries.
(I got tired of chasing weird unicode issues)
2016-10-05 16:31:23 +03:00
Arik Fraimovich
ad5e4f46d6 Add: support for date/time with seconds parameters 2016-10-05 16:27:39 +03:00
Arik Fraimovich
d48192cb0f Merge pull request #1308 from getredash/small
Fix: support for Unicode columns name in Google Spreadsheets
2016-10-05 16:26:05 +03:00
Arik Fraimovich
1e85caa6c1 Fix: properly render checkboxes in dynamic forms 2016-10-05 16:25:34 +03:00
Arik Fraimovich
649e0bc53f Fix: support for Unicode columns name in Google Spreadsheets 2016-10-05 16:23:07 +03:00
Arik Fraimovich
d72a19894a Merge pull request #1307 from getredash/small
Add: API to force refresh data source schema
2016-10-05 16:20:45 +03:00
Arik Fraimovich
11a2b55c08 Add: API to force refresh data source schema 2016-10-05 16:17:48 +03:00
Arik Fraimovich
9cd9958827 Typo fix in dashboard page. 2016-10-05 16:14:19 +03:00
Arik Fraimovich
beb89ec657 Merge pull request #1305 from hokaccha/edit-text-box
Add: UI to edit dashboard text box widget
2016-10-05 16:12:47 +03:00
Kazuhito Hokamura
eb47d88b33 Add a comment 2016-10-05 22:08:23 +09:00
Kazuhito Hokamura
0530b5fe1e Limit the editing functionality to only the text 2016-10-05 22:03:39 +09:00
Arik Fraimovich
e8eb840d32 Merge pull request #1279 from IllusiveMilkman/patch-2
Change: update bootstrap.sh to support Ubuntu 16.04
2016-10-05 14:47:35 +03:00
Arik Fraimovich
8cf0252b07 Merge pull request #1262 from getredash/plotly_upgrade
Change: upgrade Plot.ly version and switch to smaller build
2016-10-05 14:45:26 +03:00
Arik Fraimovich
0b79fb833e Merge pull request #1306 from getredash/pagination
Change: paginate queries page & add explicit urls.
2016-10-05 14:44:01 +03:00
Arik Fraimovich
5096e4ed79 Change: paginate query page & add explicit urls.
- Paginate the queries API result.
- Split the API to /api/queries (all queries) and /api/queries/my which returns
  a user's queries (or drafts).
- In the interface have explicit URLs for all queries (/queries), my queries (/queries/my)
  and drafts (/queries/drafts).
2016-10-05 14:14:26 +03:00
Kazuhito Hokamura
83ffd915c8 Make it possible to edit a TextBox 2016-10-04 22:31:28 +09:00
Arik Fraimovich
e8582ec100 Add JQL to default enabled query runners. 2016-09-28 09:43:47 +03:00
Allen Short
6829192854 Connection-test queries 2016-09-27 18:57:47 -05:00
Alexander Leibzon
fefcb928da add memsql as datasource 2016-09-27 19:13:44 +03:00
Arik Fraimovich
41f99f54cf Merge pull request #1299 from tatsukawa/json-contenttype
Change: send Content-Type header (application/json) in query results responses
2016-09-27 10:50:44 +03:00
Tsuyoshi Tatsukawa
3b6017495e add Content-Type to JSON response of QueryResultResource 2016-09-27 15:14:32 +09:00
Arik Fraimovich
808fdd4507 Merge pull request #1298 from getredash/add_jql
Add: JIRA (JQL) query runner
2016-09-26 17:08:39 +03:00
Arik Fraimovich
aefd2fde0a Add documentation on JIRA datasource 2016-09-26 17:03:12 +03:00
Arik Fraimovich
af56f59255 Add JIRA query runner 2016-09-26 16:48:53 +03:00
Arik Fraimovich
dfb1a204e2 Merge pull request #1297 from getredash/arikfr-patch-1
Change: update Slack configuration titles.
2016-09-26 13:34:19 +03:00
Arik Fraimovich
b711e5c4a2 Change: update Slack configuration titles. 2016-09-26 11:04:48 +03:00
Arik Fraimovich
8c1056cc4f Merge pull request #1294 from getredash/arikfr-patch-1
Change: don't annotate BigQuery queries
2016-09-26 10:15:04 +03:00
Arik Fraimovich
9d6b3f14a5 Change: don't annotate BigQuery queries
It's not really useful anyway and breaks support for `#StandardSQL` directive.
2016-09-23 18:13:42 +03:00
Arik Fraimovich
03217dd7ea Add markers cluster support & cleanup/refactor code. 2016-09-22 23:08:32 +03:00
Arik Fraimovich
ff9e844204 Merge pull request #1280 from hirotaka-s/feature/disable_refresh_queries_setting
Add: configuration flag to disable scheduled queries
2016-09-20 12:41:24 +03:00
Hirotaka Suzuki
01eb099c3d Add REDASH_FEATURE_DISABLE_REFRESH_QUERIES setting 2016-09-20 17:56:18 +09:00
IllusiveMilkman
2b25f2e80a Update bootstrap.sh
Check for Ubuntu 16.04 before upgrading pip.
2016-09-19 20:35:35 +02:00
Arik Fraimovich
6d686f03a3 Move around some functions and add support for window resize event. 2016-09-18 15:34:08 +03:00
Arik Fraimovich
de222429a1 Remove unnecessary code. 2016-09-18 15:23:29 +03:00
Arik Fraimovich
a3cf92ecf6 Merge pull request #1289 from getredash/es_parser
Change: use key_as_string when available (ElasticSearch query runner)
2016-09-18 08:49:05 +03:00
Arik Fraimovich
37b40164ab Fix: use key_as_string when available. 2016-09-17 16:50:54 +03:00
Arik Fraimovich
e155191c93 Merge pull request #1285 from falling-down/oracle-metadata
Change: do not display Oracle tablespace name in schema browser
2016-09-14 22:24:11 +03:00
Matthew Carter
b20b263ed1 Do not display Oracle tablespace name in schema browser
Does not make sense to list tablespace name to end user. 
Also include all tables visible to user for querying not just owned by user.
Do not list known system tables in schema browser.
2016-09-12 12:47:00 -04:00
Matthew Carter
8cfbf8b8bb Merge pull request #1 from getredash/master
update master from upstream
2016-09-12 11:57:50 -04:00
Arik Fraimovich
e42f93fcce Merge pull request #1283 from getredash/fix/gs_dup_columns
Fix: schema browser was unstable after opening a table
2016-09-11 15:29:35 +03:00
Arik Fraimovich
b9d1e43a8e Fix: schema browser was unstable after opening a table (closes #1261) 2016-09-11 15:26:48 +03:00
Arik Fraimovich
6cbc39cbe2 Merge pull request #1282 from getredash/fix/gs_dup_columns
Change: deduplicate Google Spreadsheet columns
2016-09-11 10:10:51 +03:00
Arik Fraimovich
09a848f524 Change: deduplicate Google Spreadsheet columns 2016-09-11 09:41:15 +03:00
Arik Fraimovich
21a9b4b03e Fix: in multi-org setup login after logout is broken 2016-09-08 15:26:56 +03:00
IllusiveMilkman
d9623faf8c Update bootstrap.sh
Testing script on clean install of Ubuntu Desktop 16.04.1.

pip fails if not upgraded beforehand, whether "sudo" or "sudo -s" or "sudo -sH" is run.

After this modification it works perfectly from a clean install.  Below are my steps if anyone should want to replicate or validate:
1. Clean install of Ubuntu 16.04.1 Desktop (on VM)
2. sudo apt-get -y install git
3. mkdir ~/git
4. cd ~/git
5. git clone https://github.com/getredash/redash
6. cd ~/git/redash/setup/ubuntu
7. chmod +x bootstrap.sh
8. nano bootstrap.sh
9. added "pip install --upgrade pip" to the script above the "pip install -U..." line.
10. Saved script.
11. sudo -H ./bootstrap.sh

Note that the "-H" is necessary in order to run the script successfully, otherwise you will run into pip ownership issues.
2016-09-08 10:28:11 +02:00
Arik Fraimovich
ef4699aca7 Merge pull request #1269 from kurtgooden/big_query_drive
Add: Google Drive federated tables support in BigQuery query runner
2016-09-07 17:55:44 +03:00
Kurt Gooden
43075f741d Reverted GCE change 2016-09-07 06:16:06 -04:00
Kurt Gooden
ddd91e37db Merge remote-tracking branch 'getredash/master' into big_query_drive 2016-09-07 06:13:48 -04:00
Arik Fraimovich
4caf2e309d Merge pull request #1277 from getredash/arikfr-patch-1
Set specific version of cryptography lib
2016-09-07 08:48:04 +03:00
Arik Fraimovich
0eb5a7d203 Set specific version of cryptography
This to avoid incompatibility with `oauth2client`.
2016-09-07 08:45:40 +03:00
Arik Fraimovich
170bd65237 Merge pull request #1272 from ariarijp/fix-treasuredata-query-runner
Fix: TreasureData get_schema method was returning array instead of string as column name
2016-09-06 08:28:00 +03:00
ariarijp
2739f04f1e Fix get_schema method 2016-09-03 22:02:16 +09:00
Kurt Gooden
4a8a67f6f4 Add Google Drive scope to Big Query
To access federated tables based off Google Drive files, an additional
scope is needed during OAuth.
2016-08-31 23:05:44 -04:00
Arik Fraimovich
4710c4193e Merge pull request #1265 from getredash/fix/dashboard_refresh
Fix: refresh modal not working for unsaved query
2016-08-30 18:32:55 +03:00
Arik Fraimovich
2e5ec26be9 Mention how to restart the services after mail configuration update. 2016-08-30 18:11:05 +03:00
Arik Fraimovich
cfbb466f92 Fix #1263: refresh modal not working for unsaved query 2016-08-30 18:04:58 +03:00
Arik Fraimovich
bc3a5ab04c Merge pull request #1264 from getredash/fix/dashboard_refresh
Fix: dashboard refresh not working
2016-08-30 17:57:56 +03:00
Arik Fraimovich
db4aec22f6 Fix #1184: dashboard refresh not working. 2016-08-30 17:55:10 +03:00
Arik Fraimovich
d22f0d44b6 Merge pull request #1216 from atsaki/noniteractive-upgrade
Change: bootstrap.sh - use non interactive dist-upgrade
2016-08-29 19:13:49 +03:00
Arik Fraimovich
03837c0659 Merge pull request #1242 from ereli/patch-1
Docs: add warning re. quotes on column names and BigQuery
2016-08-29 19:12:19 +03:00
Arik Fraimovich
2eeb94765d Merge pull request #1236 from yershalom/master
Add: query runner for Cassandra and ScyllaDB
2016-08-29 13:26:22 +03:00
Arik Fraimovich
9fef335315 Use smaller Plot.ly build 2016-08-28 23:29:58 +03:00
Arik Fraimovich
17726dbcb9 Sepcify specific version of Plotly 2016-08-28 23:29:45 +03:00
Arik Fraimovich
10b398e8e6 Merge pull request #1249 from mystelynx/override-slack-params
Add: override slack webhook parameters
2016-08-28 22:34:01 +03:00
Arik Fraimovich
2b5e34099f Merge pull request #1252 from rohanpd/get-presto-schema
Add: Schema loading support for Presto query runner (using information_schema)
2016-08-27 15:07:07 +03:00
Arik Fraimovich
e05a63db9a Update recommended instance size. 2016-08-27 14:58:33 +03:00
Arik Fraimovich
9a980759d3 Merge pull request #1255 from vishesh92/add-influxdb-documentation
Docs: add documentation for InfluxDB
2016-08-26 22:27:39 +03:00
vishesh92
8ce02d3003 Add documentation for influxdb 2016-08-25 12:39:35 +05:30
Arik Fraimovich
6202d0963d Merge pull request #1240 from easytaxibr/bugfix/public_dashboard_not_found
Fix: when shared dashboard token not found, return 404
2016-08-25 00:08:44 +03:00
syerushalmy
d41b84eb2e Fixed syntax error at _get_tables 2016-08-24 10:19:20 +03:00
Wesley Batista
e7d6ac07c9 Catch the error and respond with 404 2016-08-23 17:51:40 -03:00
Arik Fraimovich
ba30577601 Rename 0025_add_notification_destination.py to 0025_add_query_snippets_table.py 2016-08-23 23:06:36 +03:00
syerushalmy
7cce9d5d6e Added Auth importer for cassandra 2016-08-23 20:04:17 +03:00
syerushalmy
b308e0275c Removed cursor.close() from hive_ds because its not needed 2016-08-23 16:55:55 +03:00
Rohan Dhupelia
0319acc7ca add the ability to load the schema for the presto query runner 2016-08-23 21:32:12 +10:00
Arik Fraimovich
93aac14c87 Merge pull request #1251 from getredash/feature/snippets
Fix: autocomplete went crazy when database has no autocomplete.
2016-08-23 08:51:08 +03:00
Arik Fraimovich
ca6ee5e04f Fix: autocomplete went crazy when database has no autocomplete. 2016-08-23 01:43:29 +03:00
Arik Fraimovich
2aaf5dd2f0 Merge pull request #1250 from getredash/feature/snippets
Add: query snippets feature
2016-08-23 01:35:46 +03:00
Arik Fraimovich
10f5ecdb00 Add: query snippets feature 2016-08-22 23:58:00 +03:00
mystelynx
6ba76debf0 override webhook params 2016-08-22 11:12:46 +09:00
Arik Fraimovich
b8eca28e20 Merge pull request #1246 from getredash/large-schema
Fix: support large schemas in schema browser
2016-08-19 23:41:10 +03:00
Arik Fraimovich
490928d474 Fix: support large schemas in schema browser 2016-08-19 23:38:38 +03:00
Arik Fraimovich
19530f4132 Merge pull request #1245 from getredash/feature/ace
Change: switch from CodeMirror to Ace editor
2016-08-19 23:24:45 +03:00
Arik Fraimovich
2e1dce5961 Switch from CodeMirror to Ace editor 2016-08-19 23:15:34 +03:00
Cassio A. Moreto
d5b374c540 Create proxy_pass.rst
Add docpage of proxy pass configuration.
2016-08-19 15:56:34 -03:00
Ereli
94ce4b7b6e adding warning not to use quotes on column names
Bigquery  doesn't work with "Action__filter" as it doesn't support quoted field names.
2016-08-19 13:58:48 +01:00
Wesley Batista
dfb7cc1934 Catch the error and respond with 404 2016-08-18 12:27:18 -03:00
syerushalmy
37271c746c Switched to fetch_columns instead of messy code 2016-08-17 10:59:09 +03:00
syerushalmy
986dc686bb Removed unnessecery exception throw 2016-08-17 10:42:20 +03:00
syerushalmy
bd5039ad95 Fixed little syntax error 2016-08-16 16:04:21 +03:00
syerushalmy
37873196ec Fixed some syntax 2016-08-16 15:59:51 +03:00
syerushalmy
87d77d4d27 Added cassandra-driver to requirements_all_ds.txt file 2016-08-16 14:12:35 +03:00
syerushalmy
eee2e7c833 Added new DS for Cassandra and ScyllaDB 2016-08-16 14:10:50 +03:00
Arik Fraimovich
dfb92dbb4e Merge pull request #1234 from getredash/arikfr-patch-1
Change: MongoDB query runner set DB name as mandatory
2016-08-11 15:40:15 +03:00
Arik Fraimovich
5baf72a01e Change: MongoDB query runner set DB name as mandatory 2016-08-11 15:36:46 +03:00
Arik Fraimovich
b78100355c Merge pull request #1223 from toyama0919/master
Fix: Alert: when hipchat Alert.name is multibyte character, occur error.
2016-08-10 17:04:00 +03:00
Arik Fraimovich
b750843865 Merge pull request #1230 from kataring/presto-annotate_query-true
Change: annotate Presto queries with metadata
2016-08-10 17:03:31 +03:00
Arik Fraimovich
a69ee0cfe9 Merge pull request #1225 from hokaccha/fix-document
Fix: RST formatting of the Vagrant documentation
2016-08-10 16:43:47 +03:00
Arik Fraimovich
0b928e6a9b Merge pull request #1227 from hokaccha/fix-provisioning-script
Fix: Bower install fails in vagrant
2016-08-10 16:40:51 +03:00
Arik Fraimovich
a411af2512 Merge pull request #1232 from hokaccha/fix-confirm-dialog
Fix: don't show warning when query string (parameters value) changes
2016-08-10 15:53:44 +03:00
Kazuhito Hokamura
7843d2ee84 Fix: don't show warning when query string (parameters value) changes 2016-08-10 21:43:05 +09:00
Noriaki Katayama
1d693ad220 annotate_query to True 2016-08-09 19:12:49 +09:00
toyama0919
88d61e8faa apply reviews arikfr. string to unicode. 2016-08-09 19:01:13 +09:00
Kazuhito Hokamura
058b6bc37c Fix failing bower install 2016-08-06 22:21:00 +09:00
Arik Fraimovich
8d8af7386c Merge pull request #1226 from getredash/feature/sankey
Add: Sankey visualization
2016-08-05 23:00:42 +03:00
Arik Fraimovich
91ca74b46c Add: Sankey visualization 2016-08-05 22:32:20 +03:00
Kazuhito Hokamura
1e186d10a8 Fix RST formatting 2016-08-06 01:36:06 +09:00
Arik Fraimovich
14dea68e25 Update screenshots. 2016-08-04 08:30:39 +03:00
Arik Fraimovich
12896ed039 Update screenshots. 2016-08-04 08:30:04 +03:00
Arik Fraimovich
549fe8a465 Add ap-northeast-2 AMI (closes #1135) 2016-08-03 17:27:47 +03:00
Arik Fraimovich
eafe0dbe34 Update AWS images 2016-08-03 17:25:10 +03:00
Arik Fraimovich
7598048317 Update bootstrap.sh:
- Update version to 0.11.1.
- Move all apt commands to the beginning of the script and add the missing ones (lib-sasl).
- Fix the Redash Metadata data source creation command.
2016-08-03 16:52:45 +03:00
Arik Fraimovich
17fa957a91 Update Packer configuration to remove SSH keys to comply with AWS marketplace 2016-08-03 16:52:06 +03:00
toyama0919
ae3af64c09 Fix: Alert: when hipchat Alert.name is multibyte character, occur error. 2016-08-03 09:56:54 +09:00
Arik Fraimovich
a02eddabb5 Merge pull request #1222 from getredash/feature/sunburst_visualization
Add: additional results format for sunburst visualization
2016-07-31 23:10:18 +03:00
Arik Fraimovich
ca7d8699c8 Add additional results format for sunburst 2016-07-31 23:05:00 +03:00
Arik Fraimovich
3dbb5a6bfc Merge pull request #1221 from getredash/feature/sunburst_visualization
Fix: sunburst didn't handle all cases of path lengths
2016-07-31 15:48:01 +03:00
Arik Fraimovich
50419f3d8c Fix: sunburst didn't handle all cases of path lengths 2016-07-31 15:46:00 +03:00
Arik Fraimovich
0e70188cb4 Merge pull request #1213 from getredash/feature/sunburst_visualization
Add: new sunburst sequence visualization
2016-07-31 10:55:53 +03:00
Arik Fraimovich
77ce9b1d58 Add help paragraph on data shape 2016-07-31 10:53:00 +03:00
Arik Fraimovich
20206048af Redraw sunburst on window resize or options change 2016-07-31 10:48:52 +03:00
Arik Fraimovich
a7cc1eee5f Merge pull request #1218 from getredash/arikfr-patch-1
Fix: updated result not being saved when changing query text.
2016-07-28 15:30:16 +03:00
Arik Fraimovich
295ca92e44 Simplify the code. 2016-07-28 15:30:05 +03:00
Arik Fraimovich
1995fe4258 Fix: updated result not being saved when changing query text. 2016-07-28 15:26:00 +03:00
Arik Fraimovich
5b20fe21aa Merge pull request #1217 from atsaki/install-libffi-dev
Change: install libffi-dev for Cryptography (Ubuntu setup script)
2016-07-28 11:32:55 +03:00
Atsushi Sasaki
738cd1d69d non interactive dist-upgrade 2016-07-28 15:24:13 +09:00
Atsushi Sasaki
57651f177b install libffi-dev for cryptography 2016-07-28 15:23:12 +09:00
Arik Fraimovich
061783313a Merge pull request #1215 from getredash/fix/alert_email
Fix: email alerts not working
2016-07-27 16:54:02 +03:00
Arik Fraimovich
218937b175 Skip email sending if there are no recipients 2016-07-27 16:48:17 +03:00
Arik Fraimovich
c43357cc77 Fix #1212: email alerts not being sent 2016-07-27 16:47:16 +03:00
Arik Fraimovich
42e7a41fcc Typo fix. 2016-07-27 16:21:15 +03:00
Arik Fraimovich
52cbb42aaf Implement the visualization rendering logic 2016-07-26 18:06:54 +03:00
Arik Fraimovich
767fc3644a Base skeleton for the new visualization 2016-07-25 11:27:39 +03:00
Arik Fraimovich
9a6d2d7c62 Merge pull request #1204 from falling-down/vertica-metadata
Add: show views in schema browser for Vertica data sources
2016-07-25 10:43:16 +03:00
Arik Fraimovich
a9fac34560 Merge pull request #1206 from kitsuyui/update-pymssql-version
Change: update pymssql version to 2.1.3
2016-07-25 10:42:25 +03:00
kitsuyui
6a9467451a Update pymssql version. (is needed for tds_version keyword argument)
- https://github.com/pymssql/pymssql/releases/tag/v2.1.3
2016-07-25 12:15:31 +09:00
Matthew Carter
56ffec1be7 view metadata missing from Vertica 2016-07-24 15:31:11 -04:00
Arik Fraimovich
5d43cbe67f Merge pull request #1198 from mystelynx/add/bigquery-config-sql-type
Change: add support for Standard SQL in BigQuery query runner
2016-07-24 11:45:09 +03:00
mystelynx
e0e5dd3dd8 fix key name and title 2016-07-21 21:56:57 +09:00
mystelynx
2dac682e8e specify to use standard sql or not 2016-07-21 21:44:16 +09:00
mystelynx
f524dda88b add bigquery configuration to use legacy/standard sql 2016-07-21 21:13:48 +09:00
Arik Fraimovich
84d0c2294c Merge pull request #1193 from ken880guchi/modify-ken880guchi-patch-1
Change: modify the argument order of moment.add function call
2016-07-20 15:49:09 +03:00
Arik Fraimovich
e0485dec56 Merge pull request #1195 from AntoineAugusti/patch-2
Docs: fix typo in maintenance page title
2016-07-20 11:17:07 +03:00
Antoine Augusti
fb523725f6 Typo 2016-07-20 10:12:51 +02:00
Kenya Yamaguchi
1dd736d9b5 Modify the argument order of moment.add function 2016-07-20 01:19:21 +09:00
Arik Fraimovich
600afa5c82 Merge pull request #1138 from smartcanvas/feature/bigquery_udf
Add: ability to register user defined function (UDF) resources for BigQuery DataSource/Query
2016-07-15 19:17:45 +03:00
Arik Fraimovich
78f65b145a Merge pull request #1187 from getredash/arikfr-patch-3
Fix: read only users receive the permission error modal in query view
2016-07-14 22:05:57 +03:00
Arik Fraimovich
ea28e71170 Fix: read only users receive the permission error modal in query view
Closes #1153.
2016-07-14 22:03:34 +03:00
Arik Fraimovich
9193fed393 Mention Extended JSON support in MongoDB docs. 2016-07-12 09:35:44 +03:00
Arik Fraimovich
57ee9fd18b Fix formatting. 2016-07-12 09:31:52 +03:00
Arik Fraimovich
3f1d48b1f2 Update restart documentation. 2016-07-12 09:27:23 +03:00
Arik Fraimovich
7844b908de Merge pull request #1104 from kitsuyui/fix/unicode-error-with-sql-server
Fix #1101: MSSQL Query runner: query execution fails if user name has unicode characters
2016-07-11 18:17:30 +03:00
Arik Fraimovich
28ffff8930 Update Query Result Format page. 2016-07-11 16:19:55 +03:00
Arik Fraimovich
21283e2e83 Merge pull request #1181 from getredash/fix/gs
Fix: Excel file generation fails when row missing column value.
2016-07-11 11:54:25 +03:00
Arik Fraimovich
d4bfbc2c57 Fix: Excel file generation fails when row missing column value. 2016-07-11 11:51:55 +03:00
Arik Fraimovich
49d8a99bc4 Merge pull request #1176 from someones/org_groups_list
Add: 'list' command for org and groups CLI
2016-07-11 10:55:55 +03:00
Arik Fraimovich
dae2907ca3 Merge pull request #1177 from someones/users_list_fix
Fix: users list CLI command was broken
2016-07-11 10:54:50 +03:00
Arik Fraimovich
dd45fe04ee Merge pull request #1179 from kitsuyui/fix/not-shown-left-pane
Fix: schema not loading when table name has unicode characters
2016-07-11 10:54:11 +03:00
kitsuyui
74021c2d5a Fix: #1178 Left Pane is not shown when database contains table that name has unicode characters (MSSQL)
- Update table_name to be unicode (not str).
2016-07-11 16:46:17 +09:00
Adam Griffiths
87d7d9cb5d Fix a copy paste error that broke list command 2016-07-11 17:05:09 +10:00
Adam Griffiths
697e377bec Add 'manage.py groups list' command
'groups list' simply prints out groups.
--org option is provided, limits printing to groups of
the specified organization.
--org accepts organization slugs.
2016-07-11 16:57:07 +10:00
Adam Griffiths
99906c1d0d Add 'manage.py org list' command
'org list' simply prints out the organizations.
2016-07-11 16:52:17 +10:00
Arik Fraimovich
b1937aaab2 Merge pull request #1173 from smartcanvas/fix/cursor-pointer-for-table-headers
Add: add cursor:pointer to SmartTable headers to indicate it's clickable
2016-07-06 15:58:12 +03:00
fabito
cd449183bf add cursor:pointer to smart table headers 2016-07-06 09:10:01 -03:00
Arik Fraimovich
dd0d29467e Merge pull request #1159 from shyamgopal/patch-1
Docs: update mention the option of querying Google Spreadsheet with Google BigQuery
2016-07-06 09:20:02 +03:00
Arik Fraimovich
ff49d25963 Merge pull request #1170 from easytaxibr/fix/docker_create_database
Fix: change parameters for 'manage.py ds new' CLI
2016-07-06 09:17:52 +03:00
ShyamK
5a1f4d9144 Update datasources.rst 2016-07-06 09:59:11 +05:30
kitsuyui
679e44c874 Add charset to configuration. 2016-07-06 11:40:39 +09:00
kitsuyui
eaf127da71 Merge remote-tracking branch 'upstream/master' into fix/unicode-error-with-sql-server 2016-07-06 11:35:20 +09:00
Wesley Batista
628122053b Fix: change parameters for 'manage.py ds new' 2016-07-05 20:36:38 -03:00
Arik Fraimovich
8a5a71421d Merge pull request #1168 from getredash/fix/gs
Fix: improve Google Spreadsheets parsing
2016-07-05 21:50:45 +03:00
Arik Fraimovich
906365f011 Merge pull request #967 from lloydw/master
Add: extend ElasticSearch query_runner to support aggregations
2016-07-05 21:40:33 +03:00
Arik Fraimovich
bab1029c9d Merge pull request #1151 from masaedw/azuredb
Change: ability to set pymssql TDS version (to support Azure Database) #backward-incompatible
2016-07-05 21:30:06 +03:00
Arik Fraimovich
d263688da4 Merge pull request #1147 from someones/celery-worker-count
Control celery worker count with environment variables, defaults to 2
2016-07-05 13:46:51 +03:00
Adam Griffiths
7d10edd32c Replace -c2 in Procfile.heroku with env variable
Replace -c2 in Procfile.heroku with
-c${REDASH_HEROKU_CELERY_WORKER_COUNT:-2}. This reads from the
environment variable REDASH_HEROKU_CELERY_WORKER_COUNT and
uses the value of that if set, otherwise defaults to 2.
Add REDASH_HEROKU_CELERY_WORKER_COUNT to the settings page.
2016-07-05 11:16:45 +10:00
Arik Fraimovich
a34357d222 Move dateutil import higher 2016-07-04 22:34:13 +03:00
Arik Fraimovich
95fa6849b3 More robust parsing of worksheets with handling:
- handle the case of empty worksheet.
- handle the case of worksheet with no data.
2016-07-04 22:25:10 +03:00
Arik Fraimovich
4496a004e8 Meaningful message for not found spreadsheet 2016-07-04 22:21:05 +03:00
Arik Fraimovich
6905340c2d Google Spreadsheets: Add support for unicode 2016-07-04 18:31:42 +03:00
Arik Fraimovich
3ec113e8d0 Bump version. 2016-07-03 15:22:15 +03:00
Arik Fraimovich
bba801f9d5 Merge pull request #1167 from ariarijp/fix-bootstrap-script-for-ubuntu
Fix the version of setuptools on bootstrap script for Ubuntu
2016-07-03 14:17:03 +03:00
Arik Fraimovich
b41041014f Merge pull request #1166 from getredash/refersh_14_days
Feature: add "every 14 days" refresh option
2016-07-03 14:14:34 +03:00
Arik Fraimovich
31edf9cf80 Add every 14 days refresh option 2016-07-03 14:12:09 +03:00
Takuya Arita
522e07ac95 Fix the version of setuptools on bootstrap script for Ubuntu 2016-07-03 20:10:01 +09:00
Arik Fraimovich
837073144f Dockerfile: pin setuptools version to 23.1.0 until they resolve bug introduced in 24.0 2016-07-03 13:39:38 +03:00
Arik Fraimovich
9895e28a3f Cleanup/fix script tags. 2016-07-03 13:31:59 +03:00
Arik Fraimovich
ae9e295d2f Fix #1165: don't use hard coded org/user. 2016-07-03 13:26:54 +03:00
Arik Fraimovich
7681d3ee84 Merge pull request #1164 from darabos/patch-1
Docs: update permission documentation
2016-07-01 08:30:15 +03:00
Daniel Darabos
458f5eb032 Update permission documentation
https://github.com/getredash/redash/pull/957 has been merged.
2016-06-30 13:22:55 +02:00
Arik Fraimovich
ce81d69f91 Merge pull request #1160 from 5t111111/fix-indentation-in-docker-compose-example
Fix indentation in docker-compose-example.yml
2016-06-28 16:12:07 +03:00
Hirofumi Wakasugi
0456caf798 Fix indentation in docker-compose-example.yml 2016-06-28 22:05:23 +09:00
ShyamK
bb2574ef0b Update datasources.rst for a new way using Google Spreadsheet. 2016-06-27 15:18:06 +05:30
Arik Fraimovich
bcd3670282 Merge pull request #1156 from jcox92/patch-1
Docs: add SSL parameters to nginx configuration
2016-06-26 08:56:19 +03:00
Josh Cox
f7e556969a Add SSL parameters to nginx configuration
These parameters prevent some common exploits and vulnerabilities. My primary reference was here: https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
2016-06-23 15:24:17 -04:00
Arik Fraimovich
dd759fe4b0 Merge pull request #1155 from getredash/random
Fix: make all configuration values of Oracle required
2016-06-23 21:24:09 +03:00
Arik Fraimovich
988b301f65 Fix: make all configuration values of Oracle required 2016-06-23 21:21:04 +03:00
Arik Fraimovich
923b3b18e4 Merge pull request #1152 from getredash/random
Fix: add missing paddings in titles
2016-06-22 16:08:45 +03:00
Arik Fraimovich
95c47138ab Fix: add missing paddings in titles 2016-06-22 14:12:27 +03:00
Masayuki Muto
cfbffe0cce Specify tds_version 2016-06-22 16:34:34 +09:00
Masayuki Muto
991fe618b7 Update pymssql version to connect Azure Database 2016-06-22 16:19:38 +09:00
Masayuki Muto
0538fe401b Fix typo 2016-06-22 16:18:42 +09:00
Arik Fraimovich
31e7375a30 Merge pull request #1150 from getredash/random
UI Fixes for v0.11
2016-06-21 14:07:50 +03:00
Arik Fraimovich
8808e38de9 Fix: shared dashboard fail to render queries. 2016-06-21 11:56:02 +03:00
Arik Fraimovich
0314313285 Merge pull request #1149 from toru-takahashi/patch-2
Presto QueryRunner supports tinyint and smallint
2016-06-21 11:50:32 +03:00
Toru Takahashi
9c0d1da7f9 Presto QueryRunner supports tinyint and smallint
Presto0.148 started to support tinyint and smallint.
https://prestodb.io/docs/current/release/release-0.148.html
2016-06-21 17:36:23 +09:00
Arik Fraimovich
904ea9f90a Fix: after creating new alert, it uses wrong id to load subscribers 2016-06-20 19:36:27 +03:00
Arik Fraimovich
6bb09d8446 Merge pull request #1146 from someones/doc-add-settings
Docs: add a link to settings documentation.
2016-06-20 09:31:50 +03:00
Arik Fraimovich
d5e5b2438b Merge pull request #1136 from someones/org-aware-cli
Feature: add --org option to all relevant CLI commands.
2016-06-20 09:27:38 +03:00
Arik Fraimovich
dbd48e15bc Merge pull request #1143 from ariarijp/fix/email-input
Fix: use the email input type where needed
2016-06-20 08:56:43 +03:00
Takuya Arita
21fdd6b69d Revert input type 2016-06-20 14:05:51 +09:00
Adam Griffiths
a666adeaa7 Add a link to settings.
The settings page doesn't seem to have any links to it.
The only way to find it is through searching for it.
So we'll add one to the setup.rst page.
2016-06-20 11:05:28 +10:00
Adam Griffiths
15361cc81c Improve the help text text
Add "(leave blank for 'default')." or
"(leave blank for all organizations)" to organization options.
Remove the text "This commands assume single organization operation."
from the `users` and `groups` managers help text.
2016-06-20 09:56:05 +10:00
Adam Griffiths
704a167c74 Fix organization parameters.
Move organization to the end of the parameter
list to prevent breaking any existing code.
Provide a default for all organization parameters
to allow people to call the CLI functions without
breaking existing code.
Add missing organization parameter to `list` in
`users.py`.
2016-06-20 09:49:37 +10:00
ariarijp
df2c8d83b0 Use the email input type 2016-06-19 20:48:01 +09:00
Arik Fraimovich
7445972c10 Merge pull request #1142 from getredash/random
Fix: dates in filters might be duplicated
2016-06-19 08:54:02 +03:00
Arik Fraimovich
1933995a28 Fix: dates in filters might be duplicated 2016-06-19 08:51:45 +03:00
Arik Fraimovich
8df822eee2 Merge pull request #1141 from getredash/random
Make create data source button more prominent
2016-06-17 18:10:28 +03:00
Arik Fraimovich
227fe9b44a Make create data source button more prominent 2016-06-17 18:07:48 +03:00
Arik Fraimovich
5d0ed02caa Merge pull request #1140 from getredash/random
Fix: Hive should use the enabled variable
2016-06-17 18:06:54 +03:00
Arik Fraimovich
392627d6d6 Merge pull request #1139 from getredash/random
Fix: Impala data source referencing wrong variable
2016-06-17 17:53:30 +03:00
Arik Fraimovich
72d02e9e9d Fix: Hive should use the enabled variable 2016-06-17 17:50:26 +03:00
Arik Fraimovich
902ce24f6f Fix: Impala data source referencing wrong variable 2016-06-17 17:49:34 +03:00
Arik Fraimovich
c5bfbbaef7 Merge pull request #1133 from vishesh92/fix-scroll
Fix: query scrolling issues
2016-06-17 17:43:04 +03:00
fabito
58a9bedb64 add documentation for UDF Source URIs 2016-06-17 09:50:03 -03:00
Arik Fraimovich
a03f5f88fb Limit Celery concurrency 2016-06-17 10:19:33 +03:00
fabito
ec50cf97a9 Add new optional property "UDF Source URIs" to BigQuery datasource so that users can reuse UDFs amongs queries 2016-06-17 02:02:48 -03:00
Adam Griffiths
a66e182f73 Add --org option to all relevant CLI commands.
--org is the organization slug, not the name.
Allows the management of users, datasources and groups
with respect to organisations.
All commands default to 'default' slug, or None where
relevant, which means the commands will still work
as they did before without any changes.
2016-06-17 12:03:09 +10:00
Arik Fraimovich
96dd811607 Merge pull request #1127 from someones/schema_secrets
Mark basic_auth_password as secret
2016-06-16 21:24:16 +03:00
Vishesh Jindal
409200188e Fix query scrolling #1024 2016-06-16 17:40:48 +05:30
Arik Fraimovich
ad65391914 Merge pull request #1130 from AntoineAugusti/patch-1
Improve Slack notification style
2016-06-15 17:22:31 +03:00
Antoine Augusti
203f6afa09 Improve Slack notification style 2016-06-15 15:56:04 +02:00
Arik Fraimovich
2b710420ab Docs: start worker process on Heroku 2016-06-15 16:17:11 +03:00
Arik Fraimovich
01116f41ed Don't auto reload/run in debug mode on Heroku 2016-06-15 16:17:11 +03:00
Arik Fraimovich
87e25f2107 Merge pull request #1129 from getredash/fix-viz-options
Feature: support for JSON query formatting (Mongo, ElasticSearch)
2016-06-15 15:21:41 +03:00
Arik Fraimovich
c495250a54 Feature: support for JSON query formatting (Mongo, ElasticSearch) 2016-06-15 15:06:50 +03:00
Arik Fraimovich
c01d266030 Merge pull request #1128 from getredash/fix-viz-options
Fix: visualization options not updating after changing type
2016-06-15 12:49:43 +03:00
Arik Fraimovich
8515ac25bc Fix: visualization options not updating after changing type 2016-06-15 12:42:18 +03:00
Adam Griffiths
23988a72aa Mark basic_auth_password as secret 2016-06-15 11:34:02 +10:00
Arik Fraimovich
6bc0e7a716 Merge pull request #1126 from getredash/fix_669
Fix #669: save fails when doing partial save of new query
2016-06-14 15:39:58 +03:00
Arik Fraimovich
2c2ff0d252 Fix #669: save fails when doing partial save of new query 2016-06-14 15:39:12 +03:00
Arik Fraimovich
69cefee0d4 Update Heroku instructions. 2016-06-14 14:36:41 +03:00
Arik Fraimovich
02c065751a Update Heroku pre_compile hook 2016-06-14 14:23:56 +03:00
Arik Fraimovich
aed65f4bad Deduplicate parameter names 2016-06-14 14:00:38 +03:00
Arik Fraimovich
6bb2716fe3 Merge pull request #1121 from getredash/fix_949
Show error when failing to communicate with server
2016-06-14 13:18:06 +03:00
Arik Fraimovich
efaeb08178 Merge pull request #1120 from getredash/feature/params_ui
Fix: default vale for parameters should be [] and not {}
2016-06-14 13:17:21 +03:00
Arik Fraimovich
e18a073128 Show error when failing to communicate with server
Closes #949.
2016-06-14 12:12:31 +03:00
Arik Fraimovich
f21276ec06 Merge pull request #1119 from getredash/feature/params_ui
Feature: add UI to delete alerts
2016-06-14 12:00:53 +03:00
Arik Fraimovich
b0c0582e41 Fix: default vale for parameters should be [] and not {} 2016-06-14 11:59:11 +03:00
Arik Fraimovich
9ad85091ed Add UI to delete alerts (closes #731) 2016-06-14 11:55:00 +03:00
Arik Fraimovich
2d2fb69b7b Add API to delete alerts (#731). 2016-06-14 11:21:05 +03:00
Arik Fraimovich
3ce27b9652 Merge pull request #1118 from getredash/feature/params_ui
Fix: remove alerts for archived queries
2016-06-14 11:15:50 +03:00
Arik Fraimovich
da4db94cf8 Close #930: remove alerts for archived queries 2016-06-14 11:09:35 +03:00
Arik Fraimovich
4cbc79a7aa Use default user for alert_subscription factory 2016-06-14 11:04:41 +03:00
Arik Fraimovich
4fabaaea8a Merge pull request #1117 from getredash/feature/params_ui
Fix #1052: filter not working for date/time values
2016-06-14 11:02:02 +03:00
Arik Fraimovich
a7af596da0 Fix #1052: filter not working for date/time values 2016-06-14 10:58:33 +03:00
Arik Fraimovich
df637e3f6b Merge pull request #1116 from getredash/feature/params_ui
Return meaningful error when there is no cached result.
2016-06-14 10:44:24 +03:00
Arik Fraimovich
68465b0c60 Return meaningful error when there is no cached result.
Previously it was crashing as it was trying to access an unreferenced
variables (query_result).
2016-06-14 10:41:01 +03:00
Arik Fraimovich
86565402fa Merge pull request #1069 from getredash/feature/params_ui
Feature: UI for query parameters
2016-06-14 10:15:36 +03:00
Arik Fraimovich
c2e3637dce Feature: UI for query parameters
This pull request implements UI for parameters and also allows to set the default value and type of a parameter.
(Closes #583)

Other changes in this pull request:

- Loading/error state for dashboard widgets.
- Refresh button on dashboard widgets (Closes #810).
- Maintain sync between query/dashboard URL and current parameters, and preserve them when navigating.
- Removed Pivot Table tab.
2016-06-14 10:09:16 +03:00
Arik Fraimovich
52558043ee Merge pull request #1091 from whummer/feature/cache_embeds
Add caching for queries used in embeds
2016-06-14 08:34:13 +03:00
Waldemar Hummer
a045d7ddf7 simplify code to get parameters 2016-06-14 09:36:32 +10:00
Arik Fraimovich
c107c94a27 Merge pull request #1077 from nabilblk/master
Fix: install needed dependencies to use Hive in Docker image
2016-06-13 15:22:53 +03:00
Arik Fraimovich
790128ce77 Merge pull request #1067 from anthony-coble/add_word_cloud
Feature: word cloud visualization
2016-06-13 13:40:02 +03:00
Arik Fraimovich
abc790ce41 Merge pull request #1115 from getredash/fix-1097
Fix: allow non integers in alert reference value
2016-06-13 13:13:27 +03:00
Arik Fraimovich
f2643521f7 Fix: allow non integers in alert reference value 2016-06-13 13:03:08 +03:00
nabil
0d897e6878 move hive depencencies into req_all_ds.txt 2016-06-09 22:29:46 +00:00
Arik Fraimovich
4ec473cf5e Merge pull request #1110 from getredash/fix-1097
Fix #1109: mixed group permissions resulting in wrong permission
2016-06-09 20:02:06 +03:00
Arik Fraimovich
0c7f0c25a8 Fix #1109: mixed group permissions resulting in wrong permission 2016-06-09 19:59:26 +03:00
Arik Fraimovich
8c21e9149d Merge pull request #1108 from getredash/fix-1097
Remove potnetially concurrency not safe code form enqueue_query
2016-06-09 17:08:53 +03:00
Arik Fraimovich
7159f0beb0 Remove potnetially concurrency not safe code form enqueue_query.
This might have been causing the behavior described in #1097.
2016-06-09 16:53:29 +03:00
Arik Fraimovich
095e7596b5 Merge pull request #1103 from AntoineAugusti/patch-1
Docs: add section about monitoring
2016-06-09 16:32:24 +03:00
Arik Fraimovich
31013836ea Fix path reference in embed.html. 2016-06-09 11:06:52 +03:00
kitsuyui
91e99c42cd Fix #1101: Query execution fails if user name has unicode characters
- Encode the query with connection's charset when its type is unicode(not str).
2016-06-09 12:08:58 +09:00
Arik Fraimovich
b67f412f58 Add test for enqueue_query 2016-06-08 20:00:59 +03:00
Antoine Augusti
c1bf9dc67d Add section about monitoring 2016-06-08 15:47:00 +02:00
Arik Fraimovich
65635ec703 Merge pull request #1102 from getredash/feature/hipchat_v2
Switch to HipChat V2 API
2016-06-08 16:17:10 +03:00
Arik Fraimovich
ceaa00e448 Fix HipChat base URL 2016-06-08 16:09:06 +03:00
Arik Fraimovich
679b0a3125 Switch to HipChat V2. 2016-06-08 16:04:28 +03:00
Arik Fraimovich
fe81dbd3a2 Fix paths in Gulp build pipeline 2016-06-08 10:00:05 +03:00
Arik Fraimovich
1409907ef1 WIP: gulp fix 2016-06-08 09:32:14 +03:00
Arik Fraimovich
cbbfc4e931 Update bower.json 2016-06-08 08:57:51 +03:00
Arik Fraimovich
1ca5262fa8 Merge pull request #1099 from someones/heroku-clean
Fix RST syntax for links
2016-06-08 08:14:29 +03:00
Adam Griffiths
429b76f5a7 Fix RST syntax for links 2016-06-08 15:01:03 +10:00
Arik Fraimovich
8b73a2b135 Merge pull request #1098 from getredash/flexible_notifications
Feature: UI for alert destinations & new destination types
2016-06-07 15:18:11 +03:00
Arik Fraimovich
eed5485080 Update Alerts/subscriptions UI for new look and feel. 2016-06-07 15:12:47 +03:00
Arik Fraimovich
daa6c1cd6f Merge pull request #1096 from AntoineAugusti/patch-2
Fix typo in env variable VERSION_CHECK
2016-06-07 11:01:00 +03:00
Antoine Augusti
68dc3b033c Fix typo in env variable VERSION_CHECK 2016-06-07 09:58:49 +02:00
Anthony Coble
2e88e7f396 fixup! Add a word cloud vis 2016-06-06 17:49:31 -04:00
Arik Fraimovich
cd06d276e4 Merge pull request #1095 from ordd/fix_new_query_permission
Fix: use create_query permission for new query button.
2016-06-06 17:25:28 +03:00
Or
437f589fde Fix: use create_query permission for new query button. 2016-06-06 12:27:08 +03:00
Arik Fraimovich
1fbeb5d2a5 Merge pull request #1092 from someones/heroku-clean
Add Heroku support
2016-06-06 09:24:27 +03:00
Arik Fraimovich
df1e72ca01 Take into account that node_modules moves to root 2016-06-06 09:24:13 +03:00
Arik Fraimovich
fcc656e04e Add support for REDIS_URL and DATABASE_URL in settings.
(preparation for Heroku support - #1092)
2016-06-06 09:22:33 +03:00
Adam Griffiths
a0b97c1fc9 Update Heroku support as per comments
Fix comment in bin/pre_compile.
Remove .gitattributes and .travis.yml in rd_ui/.
Remove bin/run from Procfile.heroku.
Update documentation:
-Add a note about upgrading from version to version.
-Remove commands for DATABASE_URL and REDIS_URL.
-Add importance to the cookie secret variable.
-Merge adding redis and postgres addons into 1 step.
2016-06-06 11:39:10 +10:00
Arik Fraimovich
4d6599e0ea WIP 2016-06-05 15:51:49 +03:00
Adam Griffiths
c75054b320 Add Heroku support
Move .bowerrc, bower.json, gulpfile.js, package.json
down to root level.
Update paths in .bowerrc, gulpfile.js, Makefile
Add a heroku-postbuild step to package.json which
installs devDependencies and runs the build.
Add step in bin/pre_compile which adds the
requirements_all_ds.txt to requirements.txt to ensure that
cffi is installed. Also removes pymssql as this is
not supported on Heroku.
Add content from rd_ui/.gitignore to .gitignore and
remove rd_ui/.gitignore.
Add section in setup.rst about Heroku deployments.
2016-06-03 12:21:09 +10:00
Waldemar Hummer
011ca74338 add caching for queries used in embeds 2016-06-03 09:14:59 +10:00
Arik Fraimovich
434615a1be Merge remote-tracking branch 'origin/master' into flexible_notifications 2016-06-02 10:21:52 +03:00
Arik Fraimovich
2bc0b276b5 Merge pull request #1061 from thoughtworks/fix/area_plots
Fix: area chart stacking doesn't work
2016-06-01 21:21:18 +03:00
Arik Fraimovich
e942486ed7 Merge pull request #1090 from getredash/contributing_guide
Contributing Guide
2016-06-01 15:56:36 +03:00
Arik Fraimovich
9eff7ef8c9 Update CONTRIBUTING.md 2016-06-01 15:55:50 +03:00
Arik Fraimovich
34b305d232 Update CONTRIBUTING.md 2016-06-01 15:52:52 +03:00
Arik Fraimovich
f0d97bc5d1 Update CONTRIBUTING.md 2016-06-01 15:30:04 +03:00
Arik Fraimovich
f64622db77 Merge pull request #1089 from James226/master
Add support for serialising UUID type within MSSQL #961
2016-06-01 15:14:59 +03:00
Arik Fraimovich
8030baa6a5 Create "Contributing Guide" 2016-06-01 14:55:11 +03:00
Raymond Machira
3d82b702b3 Merge branch 'upstream/master' into fix/area_plots
# Conflicts:
#	rd_ui/app/scripts/directives/plotly.js
2016-05-31 10:50:05 -05:00
Arik Fraimovich
ad8676df2e Merge pull request #1087 from getredash/fix/chart_editor
Maintain fixed size of chart area
2016-05-31 11:29:37 +03:00
Arik Fraimovich
ea031e9a98 Maintain fixed size of chart area 2016-05-31 11:27:01 +03:00
Arik Fraimovich
9cfebedec9 Merge pull request #1086 from getredash/fix/chart_editor
Give bottom margin setting more meaningful name & change to input type to number.
2016-05-31 10:36:24 +03:00
Arik Fraimovich
772d263827 Give bottom margin setting more meaningful name & change to input to number. 2016-05-31 10:27:28 +03:00
Arik Fraimovich
8c455c8a1c Update login page title 2016-05-31 09:46:29 +03:00
Arik Fraimovich
857caab20e Merge pull request #1085 from getredash/feature/pause-api
Feature: API to pause a data source
2016-05-31 09:08:03 +03:00
Arik Fraimovich
59f8af2c44 Switch to Redis for pause state storage 2016-05-30 22:44:09 +03:00
Arik Fraimovich
9538ee7c31 Feature: API to pause a data source 2016-05-30 18:30:05 +03:00
Arik Fraimovich
e8312185dc Merge pull request #1084 from getredash/fix_dup_alerts
Fix #1049: duplicate alerts when data source belongs to multiple groups
2016-05-30 14:42:05 +03:00
Arik Fraimovich
07d2b5ba42 Fix #1049: duplicate alerts 2016-05-30 14:39:58 +03:00
Arik Fraimovich
f8120284d5 WIP: updated look and feel 2016-05-30 14:39:01 +03:00
James Parker
5b654fd1c8 Add support for serialising UUID type within MSSQL #961 2016-05-27 09:22:38 +01:00
Arik Fraimovich
6edb0ca8ec Merge pull request #1080 from jeffwidman/patch-1
Fix typo
2016-05-27 08:42:21 +03:00
Lloyd Weehuizen
3f208c03fd Add missing type parameter to collect_value call 2016-05-27 10:23:16 +12:00
Jeff Widman
ef0de1414d Fix typo 2016-05-26 14:29:40 -07:00
Arik Fraimovich
214aa3b799 Merge pull request #1060 from thoughtworks/saml-authorization
Feature: support configuring user's groups with SAML
2016-05-26 23:07:30 +03:00
Arik Fraimovich
64d7538040 Merge pull request #1074 from toyama0919/master
Fix: ElasticSearch wasn't using correct type names
2016-05-26 22:57:32 +03:00
Kumar Vora
69177752bc addresses PR feedback! 2016-05-26 14:46:25 -05:00
Kumar Vora
d83c6c42dd Raymond/Kumar : Fixes issue where going into edit more would break stacking. - selects legend divs from current graph only (instead of selecting from the entire dom) 2016-05-26 14:17:19 -05:00
nabil
2043834ae9 Issue #1076 : addtional dependencies for Hive Datasource 2016-05-26 10:38:07 +01:00
toyama0919
d6f4af448c fix bug. There is a case set unsupport type for elasticsearch. 2016-05-25 17:50:13 +09:00
Raymond Machira
43b425f91c Merge branch 'get-redash-master' of github.com:thoughtworks/redash into fix/area_plots 2016-05-24 18:11:13 -05:00
Raymond Machira
17427cf47b Names the legend item click listener to avoid overriding other places the event may be used. Also removes the event listener when type of chart changes. 2016-05-24 17:54:50 -05:00
Kumar Vora
b5be5a8fa4 no need to check count of results 2016-05-24 16:38:41 -05:00
Arik Fraimovich
14fcf01751 Merge pull request #1072 from getredash/arikfr-patch-2
Remove counter from the tasks Done tab (as it always shows 50). #1047
2016-05-23 21:24:01 +03:00
Arik Fraimovich
09848d65a1 Remove counter from the tasks Done tab (as it always shows 50). #1047 2016-05-23 18:32:59 +03:00
Arik Fraimovich
0d897ea959 Update AMIs to 0.10.1 2016-05-22 13:35:07 +03:00
Arik Fraimovich
e88d4c3d27 Remove reference to Google Groups and add Discourse instead 2016-05-22 10:33:46 +03:00
Arik Fraimovich
82f0b4c386 Update version reference in bootstrap scripts. 2016-05-22 10:33:46 +03:00
Arik Fraimovich
3037c4f90d Merge pull request #1066 from edwardsharp/edwardsharp-fix-1057
Docs: command type-o fix.
2016-05-22 08:59:12 +03:00
Kumar Vora
8900d02c95 fixing test 2016-05-20 14:35:49 -05:00
Kumar Vora
c1c2db4a73 use user.org instead of passing org as a separate argument 2016-05-20 14:28:08 -05:00
Anthony Coble
574d8a18ae Add a word cloud vis 2016-05-19 16:19:08 -04:00
edward sharp
82872db111 command type-o in setup docs. fix #1057 2016-05-19 12:57:18 -07:00
Arik Fraimovich
3f90dd9247 Merge pull request #1064 from getredash/fix/keys_cleanup
Fix: old task trackers were not really removed
2016-05-19 10:08:58 +03:00
Arik Fraimovich
b2e2277d0b Fix: old task trackers were not really removed 2016-05-19 09:58:30 +03:00
Arik Fraimovich
e20a00566a Merge pull request #1007 from vorakumar/issue-1006
Issue#1006:  Make bottom margin editable for Chart visualization
2016-05-18 23:18:12 +03:00
Arik Fraimovich
e10ecd2dad Merge pull request #1058 from AntoineAugusti/patch-1
Bring back filters if dashboard filters are enabled
2016-05-18 22:50:31 +03:00
Arik Fraimovich
6e0dd2b9a3 Merge pull request #1063 from windward-ltd/master
Add support for date/time Y axis
2016-05-18 22:50:13 +03:00
tomerb
0bb3fb9c40 added datetime to the yaxis scale options 2016-05-18 18:41:08 +03:00
Arik Fraimovich
1a1160eb76 Merge pull request #1062 from getredash/fix_dql
DynamoDB: Better exception handling
2016-05-18 14:14:00 +03:00
Arik Fraimovich
d4ae97aab2 Move pyparsing import to the try/except block 2016-05-18 14:08:42 +03:00
Arik Fraimovich
8bc42c8ad9 Remove duplicate reference to ParseException 2016-05-18 13:45:26 +03:00
Arik Fraimovich
6c5865bd3b Better exception handling 2016-05-18 13:44:38 +03:00
Arik Fraimovich
701035fabd Merge pull request #1059 from getredash/fix_dql
Fix: DynamoDB having issues when setting host
2016-05-18 13:42:48 +03:00
Arik Fraimovich
31aee1b6b9 Better exception handling 2016-05-18 13:30:20 +03:00
Arik Fraimovich
367ea859e4 If host param is empty, change it to None 2016-05-18 13:30:10 +03:00
Raymond Machira
d79d3da955 Merge branch 'get-redash-master' into fix/area_plots 2016-05-17 15:55:21 -05:00
Raymond Machira
6c822d1e4b Force area charts to recalculate on click of legend items.
This fixes issue #948 where stacked area plots do not update once series are enabled/disabled using the legend.
It also fixes the behaviour of percentage stack area plots, so as to have similar behaviour to percentage stacked bar charts.
2016-05-17 15:49:25 -05:00
Ama Asare
ad85b9a62c Ama/Kumar: Configure authorization for SAML 2016-05-17 14:01:18 -05:00
Arik Fraimovich
b5a4a6b880 Merge pull request #979 from ninneko/860-managepy_support_gropu_operation
Feature: Add CLI to edit group permissions
2016-05-17 15:05:16 +03:00
Arik Fraimovich
1828de20b0 Fix: DynamoDB having issues when setting host 2016-05-17 14:36:15 +03:00
Antoine Augusti
48c85645c6 Bring back filters if dashboard filters are enabled 2016-05-17 09:57:08 +02:00
Arik Fraimovich
ed45dcb01d Merge pull request #1044 from thoughtworks/improve-vagrant-flow
Improve vagrant flow
2016-05-13 15:47:10 +03:00
Ama Asare
d4ff7482ad Ama: Install just pymongo and not everything in requirements_all_ds.txt
Because some dependencies were missing and we dont really need everything in the file...just pymongo
Also removed unneeded files, reverted circle.yml to as it is on redash, so it doesnt show in the PR diff
2016-05-09 17:15:07 -05:00
Ama Asare
90f0b3b49a Ama: Consolidate vagrant_provision script, move files to more intuitive locations, include command from #1021.
Also reset circle.yml to be as in the main redash repo so our changes are not included in the changeset
Check earlier PR https://github.com/getredash/redash/pull/1027 to follow conversation.
2016-05-09 17:13:33 -05:00
Ama Asare
f8efb2d7ea Ama/Chris #7121 Added script to run or test redash vagrant server in one command. 2016-05-09 17:13:18 -05:00
Kumar Vora
d2ba0cb6cf Let plotly calculate the height based on provided margin values 2016-05-09 16:11:51 -05:00
Arik Fraimovich
cfb852e9c5 Add missing import. 2016-05-08 22:29:36 +03:00
Arik Fraimovich
d5c6e57c62 Optionally get org_slug from g. 2016-05-08 10:41:56 +03:00
Arik Fraimovich
2924d4fce6 Merge pull request #1040 from getredash/fix/visaulizations
Small fixes to visualizations view
2016-05-08 10:39:37 +03:00
Arik Fraimovich
e602b8cf2b Don't render visualizations in the background 2016-05-08 10:34:30 +03:00
Arik Fraimovich
0b806e2e7d Fix: link in pivot tab was broken 2016-05-08 10:34:14 +03:00
yohei.naruse
c3c302e11e modify indent size 2016-05-08 12:43:42 +09:00
Arik Fraimovich
aa837ed09b Update for new design 2016-05-07 22:20:06 +03:00
Arik Fraimovich
f07e7273c1 Fix: add destination to list of static routes 2016-05-07 22:19:53 +03:00
Arik Fraimovich
9b6f555d76 Update alert task to use destinations 2016-05-07 17:58:15 +03:00
Arik Fraimovich
e069374232 Merge w/ latest master 2016-05-07 17:49:49 +03:00
Arik Fraimovich
c496df3b87 Update ISSUE_TEMPLATE.md 2016-05-05 22:30:10 +03:00
Arik Fraimovich
2ee0065102 Merge pull request #1038 from getredash/docs-github
Add an ISSUE_TEMPLATE.md to direct people at the forum
2016-05-05 22:29:23 +03:00
Arik Fraimovich
c0ffea7083 Add an ISSUE_TEMPLATE.md to direct people at the forum 2016-05-05 22:28:04 +03:00
Arik Fraimovich
fec0d5fecc Merge pull request #1037 from dheerajrav/master
multifilter bug fix
2016-05-05 16:28:03 +03:00
dheerajrav
83a03a22b1 multifilter bug fix 2016-05-05 18:51:41 +05:30
Arik Fraimovich
8b5dc8ef68 Merge pull request #1036 from getredash/fixes_160504
Add optional block for more scripts in template
2016-05-05 11:26:22 +03:00
Arik Fraimovich
f3a274a5c0 Add optional block for more scripts in template 2016-05-05 11:26:02 +03:00
Arik Fraimovich
386d6efdaa Merge pull request #1035 from whummer/feat/test_params_on_embeds
Add test case for embeds with parameters
2016-05-05 09:56:56 +03:00
Waldemar Hummer
e415189017 add test case for embeds with parameters; minor fix in embeds.py 2016-05-05 11:15:49 +10:00
Arik Fraimovich
b066ce4b74 Merge pull request #1033 from getredash/fixes_160504
Fix: only ask for notification permissions if wasn't denied
2016-05-04 17:03:26 +03:00
Arik Fraimovich
056ae4f63e Fix: only ask for notification permissions if wasn't denied 2016-05-04 16:57:58 +03:00
Arik Fraimovich
6d495d2f2c Merge pull request #1014 from whummer/feat/params_on_embeds
Add server-side parameter handling for embeds
2016-05-04 16:56:35 +03:00
Arik Fraimovich
960c416fcb Merge pull request #1032 from getredash/fixes_160504
Fix: make sure we return dashboards only for current org only
2016-05-04 16:54:25 +03:00
Arik Fraimovich
f7322a413f Merge pull request #1021 from ariarijp/documentation-improvement
Vagrant docs: add purging the cache step
2016-05-04 16:49:58 +03:00
Arik Fraimovich
d9cc063be2 Fix: make sure we return dashboards only for current org 2016-05-04 16:32:49 +03:00
Arik Fraimovich
8fa6fdb0d5 Merge pull request #1030 from getredash/fixes_160504
Make sure data sources list ordered by id
2016-05-04 12:12:17 +03:00
Arik Fraimovich
7016477700 Restore support for forwarding events 2016-05-04 12:07:59 +03:00
Arik Fraimovich
0bb722df5d Make sure data sources ordered by id 2016-05-04 12:03:47 +03:00
Arik Fraimovich
b3844d3643 Merge pull request #1029 from getredash/fixes_160504
Hive: close connection only if it exists
2016-05-04 10:42:59 +03:00
Arik Fraimovich
e32bfe3db7 Hive: close connection only if it exists 2016-05-04 10:40:53 +03:00
Waldemar Hummer
4591eff557 add server-side parameter handling for embeds 2016-05-03 10:49:01 +10:00
Arik Fraimovich
7062873cd1 Add note re. GCE image version 2016-05-02 12:48:43 +03:00
Lloyd Weehuizen
203cf6e28b Style updates 2016-05-02 10:18:11 +12:00
Arik Fraimovich
9e23cc2bf2 update version references 2016-05-01 15:49:39 +03:00
ariarijp
c5d92b4e7e Add purging the cache step 2016-05-01 21:37:51 +09:00
Arik Fraimovich
41dfcd8cbf Bump version. 2016-05-01 11:18:32 +03:00
Arik Fraimovich
869c060f5a Merge pull request #1017 from getredash/fix/ds_cli
Add data source to default group when creating with CLI
2016-04-29 16:11:30 +03:00
Arik Fraimovich
b9322004f8 Add data source to default group when creating with CLI 2016-04-29 16:08:23 +03:00
yohei.naruse
1fa701c136 apply reviews. 2016-04-28 11:43:01 +09:00
Arik Fraimovich
7b5d16ef6c Merge pull request #1005 from staritza/master
Update bootstrap.sh to include saml dependency
2016-04-25 23:44:39 +03:00
Kumar Vora
303e158eb1 Issue#1006: allowing user to change bottom margin for Chart visualizations 2016-04-22 13:16:00 -05:00
Arik Fraimovich
d331285c1f Merge pull request #980 from machira/master
Add environment variable to override secure_flag on session cookie
2016-04-21 19:16:40 +03:00
Ama A
aab0542a93 Update bootstrap.sh to include saml dependency
Required for saml to work
2016-04-20 14:17:10 -05:00
Arik Fraimovich
1f824fc5e3 Merge pull request #957 from gseva:dashboard-permissions
Hide dashboards that current user cannot see based on his groups
2016-04-20 20:18:19 +03:00
Raymond Machira
c19a0209eb Make secure_flag environment var default to Enforce HTTPs
Also wraps parse_boolean around the os.get call for the secure_flag variable
2016-04-20 11:01:37 -05:00
Arik Fraimovich
5bd133ca50 Add additional tests 2016-04-20 18:30:31 +03:00
Arik Fraimovich
3ce07782ad Fix #986: search might return duplicate queries 2016-04-20 17:54:20 +03:00
Arik Fraimovich
078fd96660 Record event when opening shared dashboard 2016-04-20 17:54:20 +03:00
Arik Fraimovich
5fe70b7aff Record event when opening visualization embed (closes #971). 2016-04-20 17:54:20 +03:00
Arik Fraimovich
ad445ef40d Fix: don't show viz edit button if user can't edit 2016-04-20 17:54:20 +03:00
Arik Fraimovich
61aca53300 Show query description only if enabled 2016-04-20 17:54:20 +03:00
Arik Fraimovich
6881da930b Fix #996: only show edit controls if user can edit 2016-04-20 17:54:20 +03:00
Arik Fraimovich
d9a8b25430 Fix #994: query description was rendered with bigger font than name 2016-04-20 17:54:20 +03:00
Antoine Augusti
8c77d77668 Mention how to use some special features 2016-04-20 17:54:20 +03:00
Antoine Augusti
5cef835a78 Specify the user to use when using the provided AMIs 2016-04-20 17:54:20 +03:00
Arik Fraimovich
3c0fc3b134 Feature: running queries (tasks) monitor
- Refactored tasks module into a package.
- Add new admins screens (running queries & outdated queries).
2016-04-20 17:54:20 +03:00
Arik Fraimovich
a9cab5fd46 Avoid drawing chart before there is data 2016-04-20 17:54:20 +03:00
Arik Fraimovich
152109a8ef use ng-src to avoid errors before scope is available 2016-04-20 17:54:20 +03:00
Arik Fraimovich
4ed1db3ccd Show message if dashboard is archived 2016-04-20 17:54:20 +03:00
Arik Fraimovich
b4af116fc5 Fix: new user form was in wrong scope 2016-04-20 17:54:20 +03:00
Arik Fraimovich
20f6993c8b Fix: embeds got broken due to missing inject 2016-04-20 17:54:20 +03:00
Arik Fraimovich
15c032668b Add material font to gulpfile 2016-04-20 17:54:20 +03:00
Arik Fraimovich
0f20f8d5f9 Fix #779: use the default chart type for new series 2016-04-20 17:54:20 +03:00
Arik Fraimovich
fc0dd22e03 Remove angular-plotly and use Plotly's autoresize 2016-04-20 17:54:20 +03:00
Arik Fraimovich
ae98bf9f60 Remove Plotly legend height workaround and use official support for scrolling. 2016-04-20 17:54:20 +03:00
Arik Fraimovich
a426002adf Switch to official Plotly.js bower distribution and use latest version. 2016-04-20 17:54:20 +03:00
Arik Fraimovich
2e9c6dd05d bower.json: move bootstrap version to correct location 2016-04-20 17:54:20 +03:00
Arik Fraimovich
509b8afefc Add documentation on permissions model 2016-04-20 17:54:20 +03:00
Arik Fraimovich
43fb88d49b Add Slack to list of contact methods 2016-04-20 17:54:20 +03:00
Arik Fraimovich
2bd60663b9 Update name in conf.py 2016-04-20 17:54:20 +03:00
Arik Fraimovich
accb3d973d Docs: re:dash -> Re:dash & new screenshots 2016-04-20 17:54:20 +03:00
Arik Fraimovich
807df66ae9 Refine docker instructions 2016-04-20 17:54:20 +03:00
Antoine Augusti
bdfb2e9e63 Snake case it is 2016-04-20 17:54:20 +03:00
Antoine Augusti
3d946b9a36 Clean code 2016-04-20 17:54:20 +03:00
Antoine Augusti
9ebd7c8f04 Add a command to send an invitation link to a user 2016-04-20 17:54:20 +03:00
Arik Fraimovich
222eb369ca Change logoUrl to logo_url to comply w/ code style 2016-04-20 17:54:20 +03:00
Arik Fraimovich
d8207241b7 New design 🎉 and UX improvements! In more detail:
- Based on the SuperFlat admin theme (I bought the extended license).
- All pages are now full-width to give your data the room it deserves.
- Various UX improvements (althuogh there is still room for improvement).
2016-04-20 17:54:20 +03:00
Antoine Augusti
2f94a21bd0 Inject variables with app context and ability to change the logo 2016-04-20 17:54:20 +03:00
tdawber
1233706aac Add link to embeds to open query in new window 2016-04-20 17:54:20 +03:00
Arik Fraimovich
0fb17c5478 Fix #958: group members/datasources were cached. 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
b74db8148d Correct ports per installation strategy used 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
d1b979b64e Add more instructions on getting started. 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
bf47e57abc Remove extra gif 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
f8161dc9a5 Add second demo 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
3fccd23a62 Add missing ) 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
2888f0dbf4 Add documentation link at the top 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
3b4bb6a557 Add gitter chat button 2016-04-20 17:54:20 +03:00
Arik Fraimovich
346b31d39e Add support for using Redis via unix socket 2016-04-20 17:54:20 +03:00
Arik Fraimovich
1d2425e002 Ability to disable some query runners 2016-04-20 17:54:20 +03:00
Arik Fraimovich
bee6a6d80b Friendlier name for MySQL query runner 2016-04-20 17:54:20 +03:00
Arik Fraimovich
515b52196c Allow toggling dashboard full screen from URL 2016-04-20 17:54:20 +03:00
Andrew Davison
02601ace68 Release download path must use the version, not the branch 2016-04-20 17:54:20 +03:00
Andrew Davison
5cb03baa95 Use a REDASH_BRANCH environment variable instead, in the same way as REDASH_VERSION.
Move REDASH_VERSION var setup to top of file where it is more visible and easier to update.
2016-04-20 17:54:20 +03:00
Arik Fraimovich
fac8295aaf Use ng-if instead of ng-show for schema 2016-04-20 17:54:20 +03:00
Arik Fraimovich
fd913402bc Fix: on first save, make sure we load alredy existing data 2016-04-20 17:54:20 +03:00
Arik Fraimovich
7f7ab39329 Fix mobile state of query page 2016-04-20 17:54:20 +03:00
Andrew Davison
23c7218195 Allow passing version to bootstrap.sh as a cli parameter, to download a specific tag's setup files. 2016-04-20 17:54:20 +03:00
Andrew Davison
2a559d6452 Fix "http directive is not allowed here" 2016-04-20 17:54:20 +03:00
Sam Ehlers
3a8af1e4c7 Fixed error when result doesn't contain series 2016-04-20 17:54:20 +03:00
Sam Ehlers
3c2877123f Fixed error when series doesn't have tags 2016-04-20 17:54:20 +03:00
Sam Ehlers
ebb07946ac Added support for multiple queries and tags
Multiple queries are separated by semicolons and could possibly have
different columns and tags.
https://docs.influxdata.com/influxdb/v0.11/guides/querying_data/#multiple-queries

Tags come in to the result set when you use a GROUP BY statement.
2016-04-20 17:54:20 +03:00
Arik Fraimovich
afd009e540 When opening a query page, don't automatically execute it 2016-04-20 17:54:20 +03:00
Arik Fraimovich
5d86d34b4e Fix: show notifications only when page in background 2016-04-20 17:54:20 +03:00
Arik Fraimovich
8b5673e973 Ask for notification permissions only on query execution 2016-04-20 17:54:20 +03:00
Arik Fraimovich
50c043ca54 Split colors palette to base and additional 2016-04-20 17:54:20 +03:00
chiragkparmar@gmail.com
42fdfdeb97 Update color palette to add more pretty colors
Inspired from ggplot2 color palette, update ColorPalette to make charts
more pretty.
2016-04-20 17:54:20 +03:00
Arik Fraimovich
cc51baabce Move buttons in the query page 2016-04-20 17:54:20 +03:00
Alex DeBrie
586f035a5c Prevent schemas from expanding on search 2016-04-20 17:54:20 +03:00
Andrea Leesley
d3c47e5bf3 Adjust query info ui. 2016-04-20 17:54:20 +03:00
Andrea Leesley
cfc064ef48 Make query results full width. 2016-04-20 17:54:20 +03:00
Andrea Leesley
36b471f26d Move the schema container to the right.
- Clean up ui on the new query page.
2016-04-20 17:54:20 +03:00
atharva.inamdar
96a0fe8ed8 updated query search bar visibility threshold to 500 2016-04-20 17:54:20 +03:00
Alexander Leibzon
f33a2fcaa9 code style, name method 2016-04-20 17:54:20 +03:00
Alexander Leibzon
073182612b requirements rearrangement 2016-04-20 17:54:20 +03:00
Alexander Leibzon
d3d6121fc0 fixes 2016-04-20 17:54:20 +03:00
Alexander Leibzon
0b222498e7 the dynamoDB SQL connector 2016-04-20 17:54:20 +03:00
Alexander Leibzon
1b3fe9dde2 add requirements 2016-04-20 17:54:20 +03:00
Alexander Leibzon
ccf6c0ede6 dynamodb SQL connector 2016-04-20 17:54:20 +03:00
John Katsnelson
07f18cbe0c docker-compose ls should be docker-machine ls 2016-04-20 17:54:20 +03:00
John Katsnelson
619b4ec32d adds basic docker compose instructions 2016-04-20 17:54:20 +03:00
Arik Fraimovich
b73fdf1f33 Merge pull request #1003 from getredash/feature/embed_event
Fix #986: search might return duplicate queries
2016-04-20 17:14:05 +03:00
Arik Fraimovich
10f12e5008 Fix #986: search might return duplicate queries 2016-04-20 17:09:59 +03:00
Arik Fraimovich
ff9336907e Merge pull request #1002 from getredash/feature/embed_event
Feature: record events for embed and shared dashboard open
2016-04-20 16:25:45 +03:00
Arik Fraimovich
fe54e63dd3 Record event when opening shared dashboard 2016-04-20 16:23:00 +03:00
Arik Fraimovich
17d371379b Record event when opening visualization embed (closes #971). 2016-04-20 16:15:31 +03:00
Arik Fraimovich
0908e222a6 Merge pull request #1000 from getredash/fix/edit_button
Fix: don't show visualization edit button if user can't edit it.
2016-04-19 14:14:37 +03:00
Arik Fraimovich
dbfe6c385c Fix: don't show viz edit button if user can't edit 2016-04-19 14:11:50 +03:00
Arik Fraimovich
e63220cc3a Merge pull request #998 from getredash/fix/embed_title
Fix #994: query description was rendered with bigger font than name
2016-04-18 22:10:30 +03:00
Arik Fraimovich
07ccd0986d Show query description only if enabled 2016-04-18 22:08:32 +03:00
Arik Fraimovich
9e96b7f81e Merge pull request #999 from getredash/fix/empty_dropdown
Fix #996: only show dashboard edit controls if user can edit
2016-04-18 18:46:40 +03:00
Arik Fraimovich
a9ccdc79a4 Fix #996: only show edit controls if user can edit 2016-04-18 18:43:56 +03:00
Arik Fraimovich
3ad726e87f Fix #994: query description was rendered with bigger font than name 2016-04-18 18:36:42 +03:00
Arik Fraimovich
2655eec907 Merge pull request #997 from AntoineAugusti/additional-documentation
Additional documentation
2016-04-18 18:09:36 +03:00
Antoine Augusti
1d54bf000b Mention how to use some special features 2016-04-18 17:00:23 +02:00
Antoine Augusti
2e45b67e11 Specify the user to use when using the provided AMIs 2016-04-18 15:39:42 +02:00
Arik Fraimovich
30227f4815 Merge pull request #856 from getredash/feature/task_monitoring
Feature: running queries monitor
2016-04-18 13:49:55 +03:00
Arik Fraimovich
d38ab20c45 Feature: running queries (tasks) monitor
- Refactored tasks module into a package.
- Add new admins screens (running queries & outdated queries).
2016-04-18 13:46:31 +03:00
Arik Fraimovich
c17ba03a20 Merge pull request #992 from getredash/fix/2016-04-17
Small UI fixes
2016-04-17 18:15:51 +03:00
Arik Fraimovich
ff641440aa Avoid drawing chart before there is data 2016-04-17 18:12:12 +03:00
Arik Fraimovich
505f807e5a use ng-src to avoid errors before scope is available 2016-04-17 18:08:09 +03:00
Arik Fraimovich
eb61caa6b8 Show message if dashboard is archived 2016-04-17 18:05:15 +03:00
Arik Fraimovich
cbc58ba594 Fix: new user form was in wrong scope 2016-04-17 17:57:25 +03:00
Arik Fraimovich
8b4e8729dd Fix: embeds got broken due to missing inject 2016-04-17 14:30:02 +03:00
Arik Fraimovich
3925c48d14 Add material font to gulpfile 2016-04-17 12:26:48 +03:00
Arik Fraimovich
376199957e Merge pull request #991 from getredash/plotly
Improvements to Plotly.js integration
2016-04-17 12:13:57 +03:00
Arik Fraimovich
cf2407b69b Fix #779: use the default chart type for new series 2016-04-17 11:58:29 +03:00
Arik Fraimovich
c51779708e Remove angular-plotly and use Plotly's autoresize 2016-04-17 11:58:00 +03:00
Arik Fraimovich
9cded144e6 Remove Plotly legend height workaround and use official support for scrolling. 2016-04-17 11:12:33 +03:00
Arik Fraimovich
1dd8b6293b Switch to official Plotly.js bower distribution and use latest version. 2016-04-17 11:12:09 +03:00
Arik Fraimovich
3881eaa72e bower.json: move bootstrap version to correct location 2016-04-17 11:12:03 +03:00
Arik Fraimovich
6db399893b Add documentation on permissions model 2016-04-17 09:45:52 +03:00
Arik Fraimovich
a98c45f649 Add Slack to list of contact methods 2016-04-17 09:24:21 +03:00
Arik Fraimovich
8e9cced4c5 Update name in conf.py 2016-04-15 23:27:29 +03:00
Arik Fraimovich
05eb9685ee Docs: re:dash -> Re:dash & new screenshots 2016-04-15 23:26:21 +03:00
Arik Fraimovich
7f920f352a Refine docker instructions 2016-04-15 23:14:14 +03:00
Arik Fraimovich
874793e4b0 Merge pull request #977 from ChiragKParmar/master
Adding two badges for better visibility.
2016-04-15 23:13:29 +03:00
Arik Fraimovich
6e440d8263 Merge pull request #911 from jkatsnelson/patch-1
Docs: Docker compose instructions
2016-04-15 22:45:17 +03:00
Arik Fraimovich
235109c3f7 Merge pull request #984 from getredash/surprise
New design 🎉 and UX improvements!
2016-04-15 18:59:04 +03:00
Arik Fraimovich
c7f2217f15 Merge pull request #988 from AntoineAugusti/cli-invite-user
Feature: add CLI to invite user
2016-04-15 18:54:52 +03:00
Antoine Augusti
25cfa04a2b Snake case it is 2016-04-15 17:34:57 +02:00
Antoine Augusti
a8758c3a5f Clean code 2016-04-15 16:38:05 +02:00
Antoine Augusti
e015adba7e Add a command to send an invitation link to a user 2016-04-15 15:55:52 +02:00
Arik Fraimovich
38b603b28c Change logoUrl to logo_url to comply w/ code style 2016-04-14 22:31:02 +03:00
Arik Fraimovich
44f8ccfd75 New design 🎉 and UX improvements! In more detail:
- Based on the SuperFlat admin theme (I bought the extended license).
- All pages are now full-width to give your data the room it deserves.
- Various UX improvements (althuogh there is still room for improvement).
2016-04-14 22:27:26 +03:00
Arik Fraimovich
6cc2cf765d Merge pull request #987 from AntoineAugusti/inject-app-context
Feature: ability to change logo
2016-04-14 22:18:32 +03:00
Arik Fraimovich
748f6e4f2c Merge pull request #983 from tdawber/feature/embed_open_in_redash
Add link to embeds to open query page in new window
2016-04-14 21:53:11 +03:00
Antoine Augusti
2d578247ef Inject variables with app context and ability to change the logo 2016-04-14 11:50:00 +02:00
tdawber
bde60d5919 Add link to embeds to open query in new window 2016-04-12 12:02:02 +10:00
Raymond Machira
17ca702cb3 Add environment variable to override secure_flag on session cookie 2016-04-11 13:02:29 -05:00
yohei.naruse
19aaa938d8 manage.py support group operations. 2016-04-10 22:08:36 +09:00
Arik Fraimovich
c80728c3fa Merge pull request #978 from getredash/fix958
Fix #958: group members/datasources were cached.
2016-04-10 11:28:28 +03:00
Arik Fraimovich
39a832aff5 Fix #958: group members/datasources were cached. 2016-04-10 11:26:33 +03:00
chiragkparmar@gmail.com
f3a12d20f8 Correct ports per installation strategy used 2016-04-08 12:41:29 -04:00
chiragkparmar@gmail.com
0743c4a532 Add more instructions on getting started. 2016-04-07 18:32:01 -04:00
chiragkparmar@gmail.com
1169ed2542 Remove extra gif 2016-04-07 18:19:31 -04:00
chiragkparmar@gmail.com
3f3a8fb903 Add second demo 2016-04-07 18:07:44 -04:00
chiragkparmar@gmail.com
8b87ac39d1 Add missing ) 2016-04-07 18:05:33 -04:00
chiragkparmar@gmail.com
4520d1889c Add documentation link at the top 2016-04-07 18:04:30 -04:00
chiragkparmar@gmail.com
57ec4bf21e Add gitter chat button 2016-04-07 17:55:32 -04:00
chiragkparmar@gmail.com
8091b546e0 Merge remote-tracking branch 'getredash/master' 2016-04-07 17:52:56 -04:00
Arik Fraimovich
d78ef8fab5 Merge pull request #974 from getredash/embed
Add support for using Redis via unix socket
2016-04-06 20:57:13 +03:00
Arik Fraimovich
31879f9f7d Add support for using Redis via unix socket 2016-04-06 20:54:21 +03:00
Arik Fraimovich
0c6317c1db Merge pull request #973 from getredash/embed
Small updates to data sources (friendlier name for MySQL, and ability to disable query runners)
2016-04-06 20:42:24 +03:00
Arik Fraimovich
eec883763a Ability to disable some query runners 2016-04-06 18:19:51 +03:00
Arik Fraimovich
85be5fb7e9 Friendlier name for MySQL query runner 2016-04-06 18:19:42 +03:00
Arik Fraimovich
2308a3af10 Merge pull request #972 from getredash/embed
Feature: allow toggling dashboard full screen from URL
2016-04-06 18:12:43 +03:00
Arik Fraimovich
db56818a52 Allow toggling dashboard full screen from URL 2016-04-06 18:02:42 +03:00
Arik Fraimovich
39315dbb18 Merge pull request #962 from handwritingio/influxdb_tags
InfluxDB: Added support for multiple queries and tags
2016-04-05 14:50:39 +03:00
Arik Fraimovich
0d9faa8c04 Merge pull request #964 from ink-adavison/bootstrap_version_parameter
Allow passing branch name to bootstrap.sh
2016-04-05 14:44:23 +03:00
Andrew Davison
70f7219057 Release download path must use the version, not the branch 2016-04-04 16:02:58 +01:00
Andrew Davison
ad2a5601bf Use a REDASH_BRANCH environment variable instead, in the same way as REDASH_VERSION.
Move REDASH_VERSION var setup to top of file where it is more visible and easier to update.
2016-04-04 15:37:38 +01:00
Arik Fraimovich
b0ea6b0f7f Merge pull request #970 from getredash/query_page
Use ng-if instead of ng-show for schema
2016-04-03 12:07:23 +03:00
Arik Fraimovich
43078f60cf Use ng-if instead of ng-show for schema 2016-04-03 12:06:52 +03:00
Arik Fraimovich
637c17bcd1 Merge pull request #969 from getredash/query_page
Fix: on first save, make sure we load alredy existing data
2016-04-03 11:08:09 +03:00
Arik Fraimovich
941657fbbc Fix: on first save, make sure we load alredy existing data 2016-04-03 10:42:48 +03:00
Arik Fraimovich
07a53d6aa8 Fix mobile state of query page 2016-04-03 10:30:53 +03:00
Lloyd Weehuizen
c850acb3b9 Extend ElasticSearch query_runner to support aggregations 2016-04-01 14:06:54 +13:00
Arik Fraimovich
93c663d5aa Merge pull request #963 from ink-adavison/nginx_vhost_http_fix
Fix "http directive is not allowed here" on Ubuntu and Amazon Linux
2016-03-31 10:38:25 +03:00
Andrew Davison
4a401db4d2 Allow passing version to bootstrap.sh as a cli parameter, to download a specific tag's setup files. 2016-03-30 17:04:57 +01:00
Andrew Davison
90128b90e6 Fix "http directive is not allowed here" 2016-03-30 16:19:14 +01:00
Sam Ehlers
c6794dde64 Fixed error when result doesn't contain series 2016-03-30 10:17:55 -05:00
Sam Ehlers
b100824f94 Fixed error when series doesn't have tags 2016-03-30 10:17:45 -05:00
Sam Ehlers
9ff33ac024 Added support for multiple queries and tags
Multiple queries are separated by semicolons and could possibly have
different columns and tags.
https://docs.influxdata.com/influxdb/v0.11/guides/querying_data/#multiple-queries

Tags come in to the result set when you use a GROUP BY statement.
2016-03-30 09:28:24 -05:00
Arik Fraimovich
f6f9dace4d Merge pull request #960 from getredash/notification
When opening a query page, don't automatically execute it
2016-03-30 11:53:11 +03:00
Arik Fraimovich
4cc8dd1df8 When opening a query page, don't automatically execute it 2016-03-30 11:33:55 +03:00
Arik Fraimovich
52902c3f47 Merge pull request #959 from getredash/notification
Fix: show browser notification only when page is hidden
2016-03-30 11:04:32 +03:00
Arik Fraimovich
1768778d1d Fix: show notifications only when page in background 2016-03-30 11:01:11 +03:00
Arik Fraimovich
f5abb47d89 Ask for notification permissions only on query execution 2016-03-30 11:01:01 +03:00
Arik Fraimovich
ffe23fc59c Split colors palette to base and additional 2016-03-30 10:30:15 +03:00
chiragkparmar@gmail.com
d6a474b9f1 Update color palette to add more pretty colors
Inspired from ggplot2 color palette, update ColorPalette to make charts
more pretty.
2016-03-30 10:27:38 +03:00
Arik Fraimovich
c5a763b5f2 Merge pull request #932 from hudl:SkunkUI
Adjust the UI on the New Query page
2016-03-30 10:11:37 +03:00
Arik Fraimovich
aab2da2f4c Move buttons in the query page 2016-03-30 10:06:48 +03:00
Arik Fraimovich
d83dfc977e Merge pull request #934 from alexanderlz/master
Feature: DynamoDB DQL query runner
2016-03-29 22:00:32 +03:00
Seva Gavrilov
5149845eec Merge branch 'master' of github.com:gseva/redash into dashboard-permissions 2016-03-29 13:29:45 -03:00
Seva Gavrilov
c98cdef8f2 Fixed dashboard restrictions and added tests. 2016-03-29 13:27:35 -03:00
Arik Fraimovich
0f727c2424 Fix typo in requirements.txt. 2016-03-29 16:16:57 +03:00
Arik Fraimovich
982b0efbe8 Fix #946: update Python redis lib version.
Looks like some of the Celery dependencies (which we don't have pinned version for) require newer version of redis lib.
2016-03-29 16:12:24 +03:00
Arik Fraimovich
5e22576c5c Merge pull request #956 from getredash/fix/impala
Fix: adapt Impala query runner for new configuration
2016-03-29 10:38:13 +03:00
Arik Fraimovich
76c2d37d0e Fix: adapt Impala query runner for new configuration 2016-03-29 10:30:31 +03:00
Seva Gavrilov
5bb1d2757e Text only widgets are now shown to everybody. 2016-03-28 18:00:37 -03:00
Arik Fraimovich
a66ac849ff Merge pull request #951 from seanauriti/patch-1
Fixes URL for Github Release
2016-03-28 21:35:22 +03:00
Arik Fraimovich
8b4e3226a8 Merge pull request #952 from seanauriti/patch-2
Update upgrade.rst
2016-03-28 21:34:49 +03:00
Sean Auriti
00c455fea5 Update upgrade.rst 2016-03-28 13:41:21 -04:00
Sean Auriti
339c91836f Fixes URL for Github Release 2016-03-28 12:17:52 -04:00
Arik Fraimovich
0dfbe6fc72 Merge pull request #947 from getredash/fix/migration
Fix: permissions migration was changing default's group type
2016-03-27 10:32:14 +03:00
Arik Fraimovich
dd836d909d Migration to make sure the default group has correct type 2016-03-27 10:29:26 +03:00
Arik Fraimovich
6cff6e833a Fix permissions migration 2016-03-27 10:26:09 +03:00
Arik Fraimovich
5885cd9aef Merge pull request #940 from kirikiriyamama/improve_security
Nginx configuration: hide version
2016-03-25 20:16:37 +02:00
Alex DeBrie
d43d5731ee Prevent schemas from expanding on search 2016-03-24 17:00:45 +00:00
Andrea Leesley
1701d6cb60 Adjust query info ui. 2016-03-24 16:59:14 +00:00
Andrea Leesley
a9fbb1ccb2 Make query results full width. 2016-03-24 16:59:14 +00:00
Andrea Leesley
c096a133c5 Move the schema container to the right.
- Clean up ui on the new query page.
2016-03-24 16:55:49 +00:00
atharva.inamdar
be90353cca updated query search bar visibility threshold to 500 2016-03-24 16:39:19 +00:00
Alex DeBrie
4bcb705a2a Hide user subscriptions if email is not enabled 2016-03-24 14:28:47 +00:00
Alex DeBrie
1c04f3cc29 Fix broken tests 2016-03-24 13:55:46 +00:00
Alex DeBrie
ee29f07802 Clean up after rebase 2016-03-24 02:46:59 +00:00
Alex DeBrie
df2067eec1 Make subscription display more clear 2016-03-23 20:57:19 +00:00
Alex DeBrie
601010e44e Remove email destination from AlertSubscription migration 2016-03-23 20:57:19 +00:00
Alex DeBrie
6c3b713b3d Add destination subscriptions to Alert page 2016-03-23 20:57:19 +00:00
Alex DeBrie
faf2f7dede Add user subscriptions back to Alert page 2016-03-23 20:57:19 +00:00
Alex DeBrie
bf880a834b Move notify to AlertSubscription; adjust email destination to take multiple addresses 2016-03-23 20:57:19 +00:00
Alex DeBrie
ce6ceac5c4 Add hipchat to default destinations 2016-03-23 20:57:19 +00:00
Alex DeBrie
70b4f9d447 Create dynamicForm directive 2016-03-23 20:57:18 +00:00
Alex DeBrie
3838b03417 Clean up tasks.py to remove unneeded code 2016-03-23 20:52:50 +00:00
Alex DeBrie
a11fa2717d Add migrations of existing alerts 2016-03-23 20:51:10 +00:00
Alex DeBrie
becf315e66 Add hipchat destination 2016-03-23 20:51:10 +00:00
Alex DeBrie
04eb37a7f2 Pass objects instead of IDs to notify method 2016-03-23 20:51:10 +00:00
Alex DeBrie
e91610f4b4 Remove hacky backwards compatibility for notifications 2016-03-23 20:51:10 +00:00
Alex DeBrie
63786c98df Remove unnecessary code 2016-03-23 20:51:10 +00:00
Alex DeBrie
54f3df6988 Move destination icons to BaseDestination 2016-03-23 20:49:20 +00:00
Alex DeBrie
bb3874e631 Pass subscription user to notify method 2016-03-23 20:49:20 +00:00
Alex DeBrie
eef18510d5 Fix email destination bugs; make email alerts backward compatible 2016-03-23 20:49:20 +00:00
Alex DeBrie
a3c0917d85 Fix AlertSubscription unsubscribe permissions and broken tests 2016-03-23 20:49:20 +00:00
Alex DeBrie
ed7f9ea5f0 Create UI for adding/removing alert subscriptions 2016-03-23 20:49:20 +00:00
Alex DeBrie
82b7146216 Enforce AlertSubscription uniqueness; update AlertSubscription delete handler 2016-03-23 20:49:20 +00:00
Alex DeBrie
3cfbb9855b Update notify logic in tasks and add destinations for Slack, email, and webhooks 2016-03-23 20:49:20 +00:00
Alex DeBrie
4938f8e013 Add ability to choose destination when creating alert 2016-03-23 20:47:50 +00:00
Alex DeBrie
a43761da39 Require destination_id in POSTs that create a subscription 2016-03-23 20:47:50 +00:00
Alex DeBrie
a3703b2058 Fix broken tests 2016-03-23 20:47:08 +00:00
Alex DeBrie
f2d5d52310 Remove destination groups; use ConfigurationContainer for options; Add user field on NotificationDestination 2016-03-23 20:44:14 +00:00
Alex DeBrie
eed2a41816 Add destination field to AlertSubscription 2016-03-23 20:39:22 +00:00
Alex DeBrie
16c0df4117 Group handlers for Destinations 2016-03-23 20:38:33 +00:00
Alex DeBrie
3844483776 Add destination elements to rd_ui 2016-03-23 20:35:50 +00:00
Alex DeBrie
53f8f1de3b Fix typo 2016-03-23 20:24:26 +00:00
Alex DeBrie
3ac7f02aea Add NotificationDestination model and handlers; Add BaseNotification class 2016-03-23 20:24:26 +00:00
Seva Gavrilov
66d1bb1af6 Merge github.com:yanenok/redash into dashboard-permissions 2016-03-23 12:36:11 -03:00
Arik Fraimovich
002396117d Merge pull request #941 from kasajei/master
Fix install command for freetds-devel on amazon_linux
2016-03-23 14:58:47 +02:00
kasajei
eaaeffb8a2 Fix install command for freetds-devel on amazon_linux 2016-03-23 19:06:27 +09:00
Alexander Leibzon
7bb80e375a code style, name method 2016-03-23 11:44:57 +02:00
kirikiriyamama
3aca06b57f Remove unnecessary blanks 2016-03-23 11:16:12 +09:00
kirikiriyamama
d2a57cbf62 Improve security
Hide nginx version
2016-03-23 11:16:05 +09:00
Arik Fraimovich
70a5ffdbf5 Merge pull request #939 from AntoineAugusti/patch-1
Docs: Fix command to restart the web server
2016-03-22 11:03:52 +02:00
Antoine Augusti
a77b2168bd Fix command to restart the web server 2016-03-22 10:00:14 +01:00
Arik Fraimovich
ba3013a513 Merge pull request #883 from tsibley/remote-user-auth
Support for REMOTE_USER authentication
2016-03-22 09:53:13 +02:00
Thomas Sibley
e61a5f3567 Support for remote user authentication via a trusted request header
This allows redash to use nearly any custom authentication setup.
Authentication via the REMOTE_USER environment variable is not provided
as it's deemed unlikely to ever be used.

Note that, like existing authentication providers, if you disable
password authentication and the remote user auth is unsuccessful
(probably due to a misconfiguration), then you'll get a redirect
loop of /login ⇄  /remote_user/login.
2016-03-21 17:00:16 -07:00
Arik Fraimovich
624ebbadb9 Retain copy of the event before it's being changed 2016-03-21 14:29:07 +02:00
Arik Fraimovich
2ce6b567ca Include public.html in frontend build 2016-03-21 13:12:01 +02:00
Arik Fraimovich
70e2b5de23 Merge pull request #938 from getredash/api_key_name
Fix: event reporting breaks when using ApiUser.
2016-03-21 12:49:40 +02:00
Arik Fraimovich
c3299ff0e6 Fix: event reporting breaks when using ApiUser. 2016-03-21 12:40:23 +02:00
Arik Fraimovich
0ec8c3e0b9 Add find_by_email method to User model 2016-03-21 10:20:58 +02:00
Arik Fraimovich
fbb81b62d6 Make signed out layout more modular 2016-03-20 10:07:10 +02:00
Arik Fraimovich
ea57175bfa Merge pull request #935 from getredash/extensibility
Feature: allow forwarding events to a webhook
2016-03-17 13:47:50 +02:00
Alexander Leibzon
ad95a5eb5e requirements rearrangement 2016-03-17 13:10:15 +02:00
Arik Fraimovich
efe1f8370c Feature: allow forwarding events to a webhook 2016-03-17 13:10:09 +02:00
Alexander Leibzon
2e93af3a21 fixes 2016-03-17 13:09:02 +02:00
Alexander Leibzon
c2f3c55d80 Merge remote-tracking branch 'upstream/master' 2016-03-17 12:51:53 +02:00
Alexander Leibzon
629c16acbe the dynamoDB SQL connector 2016-03-17 12:51:06 +02:00
Alexander Leibzon
158fc6222d add requirements 2016-03-17 12:50:39 +02:00
Alexander Leibzon
d88d1a1e61 dynamodb SQL connector 2016-03-17 03:13:44 +02:00
John Katsnelson
f2a1bc7f0e docker-compose ls should be docker-machine ls 2016-03-16 09:17:09 -07:00
Arik Fraimovich
9e6e913347 Merge pull request #928 from getredash/extensibility
Add extension points to override frontend elements
2016-03-15 22:49:45 +02:00
Arik Fraimovich
fde36298ce Add extension points to override frontend elemnts 2016-03-15 22:46:36 +02:00
Arik Fraimovich
e75c3c6871 Merge pull request #927 from getredash/fix/format
Fix: format API not working for non default organization
2016-03-15 15:28:13 +02:00
Arik Fraimovich
82871f606a Fix: format API not working for non defualt organization 2016-03-15 15:25:52 +02:00
Arik Fraimovich
0fcf232b5e Move footer to include file 2016-03-15 14:22:12 +02:00
Arik Fraimovich
e0ad3ee309 Merge pull request #925 from getredash/feature/password_reset
Feature: password reset & invite links functionality.
2016-03-15 10:59:54 +02:00
Arik Fraimovich
df180a2cb8 Allow admin to reset password instead of resend invite 2016-03-15 10:56:37 +02:00
Arik Fraimovich
0dccaa9ca4 Show warning if email server isn't configured 2016-03-15 10:37:33 +02:00
Arik Fraimovich
5a222beff4 Merge pull request #926 from erans/master
Python query runner: make max and min functions available to the scripts
2016-03-15 10:11:05 +02:00
Eran Sandler
86980793ac made Python's max and min functions available to the scripts 2016-03-15 09:40:03 +02:00
Arik Fraimovich
7a943f62b3 Password reset & invite links functionality. 2016-03-14 18:33:17 +02:00
Arik Fraimovich
56b3675a23 Merge pull request #923 from getredash/sentry_logs
Setup Sentry to catch error logs
2016-03-14 11:54:33 +02:00
Arik Fraimovich
7e094f2b2d Setup Sentry to catch error logs 2016-03-14 11:50:11 +02:00
Arik Fraimovich
079ae09253 Merge pull request #917 from getredash/modular
Restructure the Flask app
2016-03-14 11:47:26 +02:00
Arik Fraimovich
9ae503289c Restructure the Flask app:
Tried to untangle the cyclic dependencies, although there are still some of
them left. The main reason for this restructuring/refactoring is to make
the application a bit more extensible, so it's possible to add more routes
to it without touching the core.
2016-03-14 11:45:02 +02:00
Arik Fraimovich
f8a8928a90 Merge pull request #922 from getredash/feature/google_login
Allow existing users sign in with Google Apps even if they are not from an allowed domain
2016-03-14 11:30:11 +02:00
Arik Fraimovich
7da1c85315 Allow existing users sign in with Google Apps even if they are not in domain list. 2016-03-14 11:19:23 +02:00
Arik Fraimovich
d8b1131011 Merge pull request #921 from getredash/events
Additional events and information
2016-03-14 11:16:29 +02:00
Arik Fraimovich
3bdcd958ca Track data source and query creation 2016-03-14 10:59:11 +02:00
Arik Fraimovich
4d5d9fc42f Track user ip and useragent in events 2016-03-14 10:53:41 +02:00
Arik Fraimovich
dd5c1866f2 Merge pull request #920 from getredash/mongo_improvements
Feature: MongoDB - add support for $date and relative dates.
2016-03-14 10:16:25 +02:00
Arik Fraimovich
1359d386c6 Change tag to be humanTime 2016-03-14 10:13:38 +02:00
Arik Fraimovich
1aab5b4963 Install Pymongo for tests (temporary solution) 2016-03-13 23:32:54 +02:00
Arik Fraimovich
18d7c33620 Feature: MongoDB - add support for $date and relative dates. 2016-03-13 23:25:24 +02:00
Arik Fraimovich
abde67f2d9 Fix: gulp wasn't building app_layout.html 2016-03-13 22:58:12 +02:00
Arik Fraimovich
e60caf87a6 Merge pull request #919 from alexanderlz/master
Fix: schema fetching for Vertica & SQLite was broken (fix #916)
2016-03-13 22:51:25 +02:00
Alexander Leibzon
3f15ad36a5 fix schema resolution, resolves #916 2016-03-13 16:59:09 +02:00
Arik Fraimovich
2f35c1ea2b Merge pull request #918 from getredash/query_runners_improvements
Several improvements to query runners:
2016-03-13 15:44:04 +02:00
Arik Fraimovich
2d1a28389b Sort query runners by name 2016-03-13 15:40:51 +02:00
Arik Fraimovich
5cc7eda420 Remove from default list query runners we don't install deps for by default 2016-03-13 15:39:49 +02:00
Arik Fraimovich
32682483cd Add explicit Redshift query runner 2016-03-13 15:38:09 +02:00
Arik Fraimovich
605a12c34b PostgreSQL query runner: add timeout for connection 2016-03-13 15:38:00 +02:00
Arik Fraimovich
a6b86c7af2 Friendly name for MSSQL query runner 2016-03-13 15:34:41 +02:00
Arik Fraimovich
741faeef2b Update PyMongo versino to 3.2.1 2016-03-13 15:33:19 +02:00
Arik Fraimovich
2a745d5d54 Dockerfile: set the path to static assets 2016-03-12 18:37:20 +02:00
Arik Fraimovich
12660c3d51 Remove references to deprecated config 2016-03-12 18:22:53 +02:00
Arik Fraimovich
7c0c189b55 Merge pull request #910 from getredash/feature/better_fullscreen
Better full screen support
2016-03-12 18:18:07 +02:00
Arik Fraimovich
b0b9cd92f8 Merge pull request #912 from jkatsnelson/patch-2
redash static assets path should be pointed at dist, not app
2016-03-12 18:10:00 +02:00
Arik Fraimovich
27feb676b2 Added X-Forwarded-Proto to nginx config (closes #884) 2016-03-11 23:19:28 +02:00
Arik Fraimovich
cd5aec2b63 Fix #848: change instructions to recreate database instead of running migrations. 2016-03-11 23:13:17 +02:00
Arik Fraimovich
a1a73a1b2f Merge pull request #888 from toru-takahashi/improve-treasuredata-plugin
Improve TreasureData query runner
2016-03-11 22:58:11 +02:00
toru-takahashi
99ed8f8daf Modify property name and change default behavior 2016-03-12 00:31:54 +09:00
John Katsnelson
6fe5127f20 redash static assets path should be pointed at dist, not app 2016-03-10 11:36:42 -08:00
John Katsnelson
4d06a26038 adds basic docker compose instructions 2016-03-10 11:33:08 -08:00
Arik Fraimovich
841805496e Better full screen support 2016-03-10 14:05:34 +02:00
Arik Fraimovich
0e7098020c Merge pull request #909 from getredash/fix908
Fix #908: updating configuration without secrets was failing
2016-03-10 11:58:38 +02:00
Arik Fraimovich
33a5e06eb1 Fix #908: updating configuration without secrets was failing 2016-03-10 11:56:49 +02:00
Arik Fraimovich
536d7595c5 Merge pull request #906 from getredash/feature/public_dashboard
Feature: public dashboards
2016-03-10 11:52:01 +02:00
Arik Fraimovich
6104e5df3c Remove unused (Heroku related) Procfiles 2016-03-10 11:51:06 +02:00
Arik Fraimovich
b183651e04 Verify user has access to visualization before creating widget 2016-03-10 11:42:04 +02:00
Arik Fraimovich
fad8f2b7be UI for controlling access to dashboard 2016-03-10 11:28:39 +02:00
Arik Fraimovich
298db14bc1 API to create api key for dashboards 2016-03-10 10:09:26 +02:00
Arik Fraimovich
6bc3970ad5 Make sure user has access to data source when loading query result 2016-03-09 15:15:03 +02:00
Arik Fraimovich
be65582da9 Remove explicit header setting as we do it in the config 2016-03-09 13:43:52 +02:00
Arik Fraimovich
b92fbb489b Fix call to authenticate_request 2016-03-09 13:41:33 +02:00
Arik Fraimovich
52ad1f1ba1 Public dasboards feature. 2016-03-09 13:38:02 +02:00
Arik Fraimovich
b4b2bb86ee Merge pull request #902 from jeffwidman/fix-execute-bit
Make create_database script executable
2016-03-08 11:36:08 +02:00
Jeff Widman
ed01773d4e Make create_database script executable 2016-03-08 01:34:31 -08:00
Arik Fraimovich
399b7ad348 Merge pull request #901 from jeffwidman/fix-docker-compose
Docker: fix docker-compose env variables in example
2016-03-08 11:25:23 +02:00
Jeff Widman
6393f0225a No longer specifying google-apps domain from ENV var
http://docs.redash.io/en/latest/setup.html#users-google-authentication-setup
2016-03-08 01:21:04 -08:00
Jeff Widman
30066f6d04 Postgres and Redis urls should call out to their own container 2016-03-08 01:20:32 -08:00
Arik Fraimovich
feadf88159 Merge pull request #894 from jeffwidman/patch-4
Dockerfile: use redash's docker-hub nginx image
2016-03-08 10:56:21 +02:00
Jeff Widman
8d8605c7d8 volume mapping already handled in dockerfile 2016-03-08 00:53:31 -08:00
Arik Fraimovich
bf55d2f4da Merge pull request #895 from jeffwidman/patch-5
Use redash's docker-hub redash image
2016-03-08 08:32:03 +02:00
Arik Fraimovich
aec5f78e7b Merge pull request #893 from jeffwidman/patch-3
Fix YAML syntax error due to missing spaces
2016-03-08 08:27:44 +02:00
Jeff Widman
2a1354e70b Use redash's docker-hub redash image 2016-03-07 15:44:42 -08:00
Jeff Widman
2365f25e11 Use redash's docker-hub nginx image 2016-03-07 15:16:49 -08:00
Jeff Widman
8d10e9696e Fix YAML syntax error due to missing spaces
Environment variables weren't being parsed properly due to missing spaces.
2016-03-07 14:50:12 -08:00
toru-takahashi
6065545352 Fix case sensitive issue for query type 2016-03-08 02:13:52 +09:00
toru-takahashi
a98ead9030 Add option to enable Auto Get Schema 2016-03-08 02:05:05 +09:00
toru-takahashi
f07ed1df31 Update td-client to v0.4.1 2016-03-07 22:51:13 +09:00
Arik Fraimovich
a8ece8641a Bump version. 2016-03-06 12:13:19 +02:00
Arik Fraimovich
bac4025eff Merge pull request #882 from tsibley/new-data-source-via-cli
CLI: Restore ability to pass JSON options string for a new data source
2016-03-06 12:01:23 +02:00
Thomas Sibley
d07bf7e0aa CLI: Restore ability to pass JSON options string for a new data source
Commit "Encapsulate data source/query runner configuration in an
object." (ed99b84) accidentally removed that functionality by not
inflating the passed in JSON into a ConfigurationContainer object.

This led to errors of the form if you passed -o:

    Traceback (most recent call last):
      ...
      File "/opt/redash/redash-git/redash/models.py", line 321, in db_value
	return value.to_json()
    AttributeError: 'unicode' object has no attribute 'to_json'
2016-03-04 09:22:42 -08:00
Yana Manukhina
207dac693c Fix: show empty dashboards to their creators 2016-03-02 20:44:38 +03:00
Arik Fraimovich
8f937b7a35 Merge pull request #850 from toyama0919/master
Kibana: add support for limiting # of results returned
2016-03-01 23:37:24 +02:00
Arik Fraimovich
8747d0e724 Merge pull request #872 from erans/master
MongoDB: support for count queries
2016-03-01 23:36:24 +02:00
Yana Manukhina
866f378c88 List only dashboards available to current user based on user's groups 2016-03-01 20:46:36 +03:00
Arik Fraimovich
4a280eea29 Merge pull request #877 from ink-adavison/ink-adavison-ubuntubasepathfix
Correct Ubuntu Bootstrap.sh to a working Base URL
2016-03-01 13:36:25 +02:00
ink-adavison
194e9f4d7e Correct Ubuntu Bootstrap.sh to a working Base URL
The redash/docker/setup/... path is returning 404, but redash/master/setup/... works
2016-03-01 11:17:11 +00:00
Arik Fraimovich
4c5d2f14bf Merge pull request #866 from jeffwidman/fix_end_of_file_spacing
Fix whitespace issues
2016-02-29 22:39:15 +02:00
Jeff Widman
b86cf6ea4d Check should be 'x not in y' rather than 'not x in y' 2016-02-29 12:34:50 -08:00
Jeff Widman
dd72faaa77 Fix docstring spacing per PEP 257 2016-02-29 12:34:50 -08:00
Jeff Widman
c1b33939d0 A few misc whitespaces fixes 2016-02-29 12:34:50 -08:00
Jeff Widman
1aad95986b Add spaces around arithmetic operators per PEP 8 2016-02-29 12:34:50 -08:00
Jeff Widman
80209defc9 Remove extraneous spaces at end of lines 2016-02-29 12:34:46 -08:00
Jeff Widman
c198d22691 Format files to end in a single newline per PEP 8 2016-02-29 12:00:03 -08:00
Arik Fraimovich
43ac5600e5 Merge pull request #873 from getredash/feature/print_layout
Feature: print layout for dashboards
2016-02-29 21:11:41 +02:00
Arik Fraimovich
863365a412 Feature: print layout for dashboards 2016-02-29 21:07:07 +02:00
Eran Sandler
50c6bca421 added support for count queries 2016-02-29 21:05:50 +02:00
Arik Fraimovich
30b97e37f0 Merge pull request #854 from erans/master
Minors fixes for MongoDB and Python query runners
2016-02-29 21:04:14 +02:00
Eran Sandler
7f96de8b22 updated reverted change 2016-02-29 21:02:05 +02:00
Arik Fraimovich
dec30549f6 Merge pull request #867 from jeffwidman/fix_weird_indenting
Fix non-standard indentation to conventional four spaces
2016-02-29 15:25:11 +02:00
Arik Fraimovich
1a9059f1cc Merge pull request #865 from jeffwidman/fix_flask_ext
Replace deprecated flask.ext.* with flask_*
2016-02-29 15:22:13 +02:00
Jeff Widman
5208abd072 Make lines indented by four spaces instead of three 2016-02-29 01:58:19 -08:00
Jeff Widman
0ccbb24b3f Fix non-standard indentation to conventional four spaces
Not sure what happened in this section of code, but it was incorrectly indented by two spaces rather than four in several places.
2016-02-29 01:09:43 -08:00
Jeff Widman
09ccec59f5 Replace deprecated flask.ext.* with flask_*
Importing flask extensions using flask.ext.* is deprecated in favor of flask_*
For background, see: https://github.com/mitsuhiko/flask/issues/1135
2016-02-29 00:39:50 -08:00
Arik Fraimovich
8688b1c432 Merge pull request #864 from getredash/fix/datasource_show
Fix: data source loaded without properties
2016-02-28 18:56:10 +02:00
Arik Fraimovich
d06d1ada28 Fix: data source loaded without properties 2016-02-28 18:54:20 +02:00
Arik Fraimovich
3328de3462 Merge pull request #863 from getredash/fix/filters_datetime
Fix: properly show date/time in filters
2016-02-28 11:06:02 +02:00
Arik Fraimovich
84f71d1837 Fix: properly show date/time in filters 2016-02-28 11:04:08 +02:00
Arik Fraimovich
f219d20299 Merge pull request #857 from jeffwidman/patch-1
Fix typo: completly => completely
2016-02-27 21:55:56 +02:00
Eran Sandler
bdd2e0c418 fixed the query runner actually running code 2016-02-26 09:59:49 +02:00
Jeff Widman
d0cdf53b33 Fix typo: completly => completely 2016-02-25 18:00:15 -08:00
Arik Fraimovich
27faf8f88a Merge pull request #849 from sortable/presto-column-names
Fix: Presto - deduplicate column names
2016-02-25 21:39:29 +02:00
Arik Fraimovich
caf0734bac Merge pull request #855 from sreynen/patch-2
Docs: document settings.py
2016-02-25 21:37:57 +02:00
Eran Sandler
5f501b9df6 added JSON serialization support for internal bson timestamp which sometimes gets return in newer pymongo versions 2016-02-25 09:25:26 +02:00
Scott Reynen
caaf180d13 Create settings.rst
This is mostly just a template so far, as I'm only able to describe the settings I already understand, which isn't many.
2016-02-24 16:28:24 -07:00
Eran Sandler
68220a0d67 Added 'additionalModulesPaths' to the config allowing import modules from an external verified path. You'd still need to whitelist the module name in 'allowedImportModules' 2016-02-25 00:35:00 +02:00
Colin Dellow
0ebb53994b presto: use the disambiguated column name 2016-02-24 15:40:22 -05:00
Colin Dellow
177b62ea40 presto: use existing disambiguation path 2016-02-24 15:23:50 -05:00
Arik Fraimovich
a26da3aed3 Merge pull request #846 from sreynen/patch-1
Add link to dev environment documentation.
2016-02-24 22:07:35 +02:00
Arik Fraimovich
3a27955d24 Merge pull request #853 from getredash/arikfr-patch-1
Fix #851: embed doesn't load due to missing module.
2016-02-24 21:59:29 +02:00
Arik Fraimovich
86f2a0172f Fix #851: embed doesn't load due to missing module. 2016-02-24 21:53:12 +02:00
Arik Fraimovich
db59b34bda Merge pull request #852 from hudl/ConfigurationFixes
Small fixes for new ConfigurationContainer use
2016-02-24 21:49:57 +02:00
Alex DeBrie
51e92e0c71 Small fixes for new ConfigurationContainer use 2016-02-24 17:52:49 +00:00
toyama0919
246ce10a7f fix bug: Kibana not working limit, all select results. 2016-02-24 13:02:28 +09:00
Colin Dellow
cde54cec8b presto: don't merge columns with the same name
Fixes #847
2016-02-23 18:40:49 -05:00
Scott Reynen
21dc36b506 Add link to dev environment documentation. 2016-02-23 14:16:47 -07:00
Arik Fraimovich
d74442184e Merge pull request #844 from getredash/kms
Encapsulate data sources configuration logic in an object
2016-02-23 15:06:29 +02:00
Arik Fraimovich
db3e689e68 Update query runners for new config class 2016-02-23 15:02:49 +02:00
Arik Fraimovich
491e2e10d1 Fix test 2016-02-23 15:02:49 +02:00
Arik Fraimovich
ed99b8452c Encapsulate data source/query runner configuration in an object.
This is a step towards adding more complex logic in configuration
handling, like encryption of secrets.
2016-02-23 15:02:49 +02:00
Arik Fraimovich
f1e90fde31 Merge pull request #843 from getredash/design/download_links
Fix: dashboard query results links broken
2016-02-23 11:35:06 +02:00
Arik Fraimovich
954e63a41f Fix: dashboard query results links broken 2016-02-23 11:33:13 +02:00
Arik Fraimovich
6ec4c4c19c Merge pull request #840 from getredash/design/download_links
Improve layout of download links
2016-02-22 11:53:43 +02:00
Arik Fraimovich
553c6ac8d7 Improve layout of download links 2016-02-22 11:50:42 +02:00
Arik Fraimovich
b462869be7 Merge pull request #833 from toyama0919/feature/download-excel-from-dashboard
Feature: download Excel file link from dashboard.
2016-02-22 10:55:20 +02:00
Arik Fraimovich
3a5d59cf69 Merge pull request #839 from getredash/feature/api_params
Feature: add API to trigger query refresh and support for parameters.
2016-02-22 10:43:42 +02:00
Arik Fraimovich
c12b059d10 Add API to trigger query refresh and support for parameters. 2016-02-22 10:40:46 +02:00
Arik Fraimovich
e705ede3b7 Merge pull request #838 from erans/master
Python query runner -- added access to sorted and reversed functions
2016-02-21 13:03:05 +02:00
Eran Sandler
3b5aafa8e1 Added access to sorted and reversed functions 2016-02-21 11:13:46 +02:00
Arik Fraimovich
2440a83e46 Merge pull request #835 from benmanns/ubuntu-bootstrap-update-reorder
Ubuntu bootstrap script - move update before upgrade
2016-02-18 10:56:00 +02:00
Benjamin Manns
2b5a36cb3f Move update before upgrade
Running update before upgrade will fetch the latest sources, so we
can be sure that the upgrades will bring the box to the latest
versions of everything. Otherwise, this is often a no-op because
the box's sources will be cached at time of generation, meaning
there is nothing to upgrade.
2016-02-17 16:11:16 -05:00
toyama0919
78511fd0ce add feature, Excel download from dashboard. 2016-02-17 14:48:23 +09:00
Arik Fraimovich
a50ae19236 Merge pull request #823 from mobiledefense/add-widescreen-toggle
Feature: Button toggle to display dashboard in at full screen width
2016-02-16 10:23:16 +02:00
Arik Fraimovich
65f81c4d93 Merge pull request #831 from ninneko/801-download-excel
Feature: download results in Excel (XSLX) format (closes #801)
2016-02-16 09:19:53 +02:00
yohei.naruse
0afca7321a #801 fix test case.
schedule = "{:02d}:00".format(now.hour - 3) maybe be negative value when now.hour < 3.
I've fixed it.
2016-02-16 13:16:31 +09:00
yohei.naruse
32824f7575 apply reviews 2016-02-16 10:56:06 +09:00
yohei.naruse
2f16c8ae5f #801 Download DataSheets as Excel file 2016-02-15 23:47:31 +09:00
Arik Fraimovich
868263315b Merge pull request #829 from getredash/fix/embed
Fix: Plot.ly was given wrong timestamp
2016-02-14 20:40:43 +02:00
Arik Fraimovich
1ceddc9e91 Fix: we were sending wrong timestamp to Plotly 2016-02-14 20:38:32 +02:00
Arik Fraimovich
a96d135a4f Merge pull request #828 from getredash/fix/embed
Fix #797: user redirected to homepage when changing permission type
2016-02-14 20:11:51 +02:00
Arik Fraimovich
cec4e71d99 Fix #797: user redirected to homepage when changing permission type 2016-02-14 16:01:36 +02:00
Arik Fraimovich
0730ed8ed4 Merge pull request #827 from getredash/fix/embed
Feature: pivot tables are now regular visualizations that can be *saved*
2016-02-14 15:21:45 +02:00
Arik Fraimovich
e3420acd4b Feature: pivots are now regular visualizations that can be *saved*. 2016-02-14 15:17:52 +02:00
Arik Fraimovich
d21e2a79cc Close #772: upgrade to latest PivotTable.js lib 2016-02-14 14:40:01 +02:00
Arik Fraimovich
d1cf376ab3 Merge pull request #826 from getredash/fix/embed
Fix #802: switching to/from query source view resets chart colors
2016-02-14 14:13:24 +02:00
Arik Fraimovich
0ea0ba3fbe Fix #802: switching to/from query source view resets chart colors 2016-02-14 13:52:53 +02:00
Arik Fraimovich
0c93fe12ba Amend jshint settings 2016-02-14 13:51:32 +02:00
Arik Fraimovich
dad7b22cba Merge pull request #825 from getredash/fix/embed
Fix: sorting X values in charts had no effect
2016-02-14 13:26:32 +02:00
Arik Fraimovich
19766cf4ce Fix: sorting X values had no effect. 2016-02-14 13:24:14 +02:00
Arik Fraimovich
5e2727cfdf Use unminified d3.js in development. 2016-02-14 12:25:16 +02:00
Arik Fraimovich
3da326009b Bump Plot.ly version to a more recent one. 2016-02-14 12:24:56 +02:00
Matt Sochor
240739a445 Add dashboard toggle to display dashboard in at full screen width 2016-02-11 16:39:40 -05:00
Arik Fraimovich
253c4fd0a6 Merge pull request #821 from getredash/fix/embed
Fix embed URL & move logic into a directive
2016-02-10 15:41:05 +02:00
Arik Fraimovich
cda1068ff1 Show logo in embdes 2016-02-10 15:39:02 +02:00
Arik Fraimovich
eb324a4067 Limit the amount of information we return for embeds 2016-02-10 15:34:48 +02:00
Arik Fraimovich
8cf7314dc0 Fix embed URL & move logic into a directive 2016-02-10 15:34:31 +02:00
Arik Fraimovich
32b928d247 BSD 2-Clause
Updated copyright holder & removed last paragraph that doesn't belong to BSD-2 clause.
2016-02-10 11:32:00 +02:00
Arik Fraimovich
a5168ecc80 Update bootstrap.sh to more recent release 2016-02-09 15:18:58 +02:00
Arik Fraimovich
262ebb3bf1 Merge pull request #820 from getredash/gulp
Switch to Gulp from Grunt for faster builds
2016-02-09 15:15:38 +02:00
Arik Fraimovich
3e58d8798a Copy additional files on gulp build 2016-02-09 15:09:31 +02:00
Arik Fraimovich
bab536aaea Support for embeds in multi-org 2016-02-09 14:59:38 +02:00
Arik Fraimovich
bab4080430 Switch to Gulp from Grunt 2016-02-09 14:59:19 +02:00
Arik Fraimovich
a894f035dd Merge pull request #815 from getredash/fix/cli
Fix CLI issues with recent version
2016-02-09 00:56:16 +02:00
Arik Fraimovich
d4a83e29d4 Fix: delete data source CLI failing when data source has references 2016-02-09 00:03:35 +02:00
Arik Fraimovich
ded4761c8a If start_time not found skip metric collections (probably not running in real request context) 2016-02-09 00:01:44 +02:00
Arik Fraimovich
3fa143cfb1 Merge pull request #813 from ojarva/shellcheck-fixes
Fix shellcheck issues in bootstrap.sh scripts
2016-02-07 08:49:06 +02:00
Olli Jarva
de01184bbd Small shellcheck updates
Fix shellcheck complaints. These changes are not particularly important,
but spotting new/real issues is easier when checker output is empty by
default.
2016-02-06 16:42:24 +02:00
Arik Fraimovich
635bcc3e9f Pull latest docker image before building 2016-02-03 11:06:09 +02:00
Arik Fraimovich
b6b8daced6 Update Circle: build deps on master branch 2016-02-03 10:20:07 +02:00
Arik Fraimovich
b222f85d88 Add freetds-dev to Dockerfile 2016-02-03 09:06:01 +02:00
Arik Fraimovich
27c3fee345 Merge pull request #808 from joeharris76/master
Feature: Microsoft SQL Server query runner
2016-02-03 08:48:05 +02:00
Joe Harris
8c48ec5508 Cleanup of issues with the SQL Server feature PR 2016-02-02 16:18:21 -05:00
Joe Harris
cc176f5cba Add error handling to the pymssql import 2016-02-02 09:24:58 -05:00
Joe Harris
3a970a00c4 Add Microsoft SQL Server as a data source
Uses `pymssql` which in turn uses `FreeTDS`. Note that the data type
support is somewhat limited (see “datasources” page in docs).
2016-02-01 16:53:52 -05:00
Joe Harris
3b395a05b8 Merge pull request #1 from getredash/master
Pull from origin
2016-01-29 15:55:50 -05:00
Arik Fraimovich
9fa249a519 Update screenshots. 2016-01-27 12:55:52 +02:00
Arik Fraimovich
4e9b60ac82 Merge pull request #794 from getredash/hotfixes
Fixes for #792, #785, #733 and additional logging for execute_query
2016-01-24 12:03:34 +02:00
Arik Fraimovich
7a7e5be166 Fix #733: update migrations to work with new code 2016-01-24 11:57:05 +02:00
Arik Fraimovich
a1eec8490a Add more logging to execute_query 2016-01-24 11:32:44 +02:00
Arik Fraimovich
197bbde788 Fix #785: remove admin check box and direct users to use the groups
admin.
2016-01-24 11:08:02 +02:00
Arik Fraimovich
fed9d80fdb Fix #792: can't grant admin with CLI 2016-01-24 10:58:05 +02:00
Arik Fraimovich
78ba6f2739 Merge pull request #781 from woei66/master
Amazon Linux bootstrap script: check nginx default directory
2016-01-23 16:52:39 +02:00
Arik Fraimovich
cbb84ae3d3 Merge pull request #786 from JohnConnell/patch-1
Docs: instructions for compressed backup.
2016-01-23 16:51:21 +02:00
Arik Fraimovich
8120158119 Merge pull request #782 from shyamgopal/bug-768
Fix: Empty cells in google sheets displayed as datetime values #768
2016-01-23 16:50:44 +02:00
Arik Fraimovich
bd7b60d859 Merge pull request #784 from bobrik/fix-isoformat
Fix json serialization for datetime.timedelta, closes #783
2016-01-23 16:49:46 +02:00
Arik Fraimovich
80c03a5900 Merge pull request #787 from JohnConnell/patch-2
Docs: Updated links to Google's documentation about creating a service account
2016-01-23 16:46:04 +02:00
Arik Fraimovich
77e2d5db9b Merge pull request #790 from tknzk/fix_typo_on_doc
Docs: fix a typo in backup instructions
2016-01-23 16:44:35 +02:00
tknzk
7174dd856e fix a typo. 2016-01-22 17:45:40 +09:00
John Connell
6b5efc9e16 Update datasources.rst
Updated links to Google's documentation about creating a service account.
2016-01-21 13:05:02 -07:00
John Connell
4f95205795 Update maintenance.rst
Added: How to create a compressed backup.
2016-01-21 12:51:13 -07:00
Ivan Babrou
e26ea40c9b Fix json serialization for datetime.timedelta, closes #783 2016-01-21 14:37:36 +00:00
Arik Fraimovich
24137e87fd Update cloud images references 2016-01-21 14:47:51 +02:00
Shyamgopal Kundapurkar
221ec3a2a1 Fix of #768 2016-01-21 16:35:03 +05:30
David Lin
7081e25fa3 add -y to expect package, check nginx default directory and install to the right directory 2016-01-21 06:37:12 +00:00
Arik Fraimovich
8d126331cf Fix #778: update docs with correct CLI command. 2016-01-20 22:19:43 +02:00
Arik Fraimovich
33ffb2158b Update __init__.py 2016-01-20 10:21:45 +02:00
Arik Fraimovich
76ee88608d Merge pull request #777 from getredash/hotfix
Treat query errors as expected errors
2016-01-20 10:21:08 +02:00
Arik Fraimovich
a1ac289fb4 Treat query errors as expected errors 2016-01-20 10:17:10 +02:00
Arik Fraimovich
4f0b18b44e Merge pull request #776 from getredash/hotfix
Friendlier error messages for BigQuery query errors
2016-01-20 10:16:36 +02:00
Arik Fraimovich
44595cc930 Friendlier error messages for BigQuery 2016-01-20 10:01:08 +02:00
Arik Fraimovich
fcd478c93c Merge pull request #774 from getredash/hotfix
Fix: don't fail refresh_schema if one of the refresh ops fails
2016-01-19 18:44:47 +02:00
Arik Fraimovich
9971496401 Fix: don't fail refresh_schema if one of the refresh ops fails 2016-01-19 18:37:47 +02:00
Arik Fraimovich
8473783b0b Merge pull request #773 from getredash/hotfix
0.9.0 Hot Fixes
2016-01-19 18:34:19 +02:00
Arik Fraimovich
a9ae3c9ea3 Don't use DataSource.all in old migrations 2016-01-19 18:31:08 +02:00
Arik Fraimovich
505166455d Fix: show each data source only once 2016-01-19 18:26:51 +02:00
Arik Fraimovich
c6a06bd40a Remove debugging text 2016-01-19 18:01:35 +02:00
Arik Fraimovich
ed9e27019f Remove references to activity_log table 2016-01-19 18:00:42 +02:00
Arik Fraimovich
5b1abaaa52 Bump version. 2016-01-18 10:14:15 +02:00
Arik Fraimovich
c1da2579a3 Test for embed handler 2016-01-16 21:25:19 +02:00
Arik Fraimovich
1b36a62b91 Add conversion to int for Organization 2016-01-16 21:25:09 +02:00
Arik Fraimovich
ed2e06a787 Fix: counter visualization doesn't update when editing 2016-01-16 21:17:23 +02:00
Arik Fraimovich
47d3faae92 Fix: dashboard editor doesn't include last added widget 2016-01-16 21:11:25 +02:00
Olga Kogan
ff49321056 Update supervisor configs to recycle Gunicorn/Celery workers
This helps with avoiding memory leaks.
2016-01-15 17:57:09 +02:00
Arik Fraimovich
ee98b5a5c6 Improve the migration for unique data source name 2016-01-15 17:53:24 +02:00
Arik Fraimovich
245a4b5a3f Merge pull request #765 from nakechi/master
Feature: support HipChat Server
2016-01-15 17:30:48 +02:00
Arik Fraimovich
0546528b2c Merge pull request #762 from JohnConnell/master
Fix: typos and formatting issues in letsencrypt SSL cert documentation
2016-01-15 17:29:46 +02:00
Arik Fraimovich
d8d925c297 Merge pull request #764 from JohnConnell/master
Documentation: How to backup & restore redash db
2016-01-15 17:28:43 +02:00
nao-akechi
fac0af548b Feature: support HipChat Server 2016-01-15 18:36:07 +09:00
John Connell
5deca9bd60 Documentation: How to backup & restore redash db 2016-01-14 19:48:04 -07:00
John Connell
b1e0620f85 Update backup_restore.rst 2016-01-14 18:50:20 -07:00
John Connell
0a35f70a27 Update backup_restore.rst 2016-01-14 18:49:13 -07:00
John Connell
bd1551fb9d Rename backup_restore to backup_restore.rst 2016-01-14 18:47:18 -07:00
John Connell
f6a8a9975f How To: Backup re:dash database & restore to different server
Short guide explaining how to backup your re:dash database and restore it on a different server.
2016-01-14 18:46:31 -07:00
John Connell
179649d422 Update letsencrypt.rst 2016-01-14 01:32:10 -07:00
John Connell
1c584f65ba Update letsencrypt.rst
Fix various typos and formatting issues, including the commands for step 5 not being displayed.
2016-01-14 01:30:56 -07:00
John Connell
b62c75ac66 Update letsencrypt.rst
Fix two small typos. The first prevented the commands for step 5 from appearing and the second was a typo in the SSLLabs test URL.
2016-01-14 01:19:26 -07:00
Arik Fraimovich
f4096c0356 Update README.md 2016-01-14 09:56:17 +02:00
Arik Fraimovich
419fe389a4 Update README.md 2016-01-14 09:56:07 +02:00
Arik Fraimovich
031cb63f67 Rename peronal.html -> index.html 2016-01-13 10:03:52 +02:00
Arik Fraimovich
a62c5b5b24 Merge pull request #759 from getredash/fix/new_ds
Remove unused client side code
2016-01-13 10:02:25 +02:00
Arik Fraimovich
3befab7244 Remove client side performance collection 2016-01-13 10:00:06 +02:00
Arik Fraimovich
8c006238c5 Remove old IndexCtrl 2016-01-13 09:56:58 +02:00
Arik Fraimovich
03d897886e Merge pull request #758 from getredash/fix/new_ds
Fix: update dashboard after layout change
2016-01-12 21:43:10 +02:00
Arik Fraimovich
ebe032070e Fix: update dashboard after layout change 2016-01-12 16:25:10 +02:00
Arik Fraimovich
4a29f41ab3 Merge pull request #757 from getredash/fix/new_ds
Fix: infinite digest loop in coutner visualization
2016-01-12 15:14:05 +02:00
Arik Fraimovich
566cda359e Fix: infinite digest loop in coutner visualization 2016-01-12 15:13:23 +02:00
Arik Fraimovich
5a1736ad31 Merge pull request #756 from getredash/fix/new_ds
Fix: new data source should be assigned to default group
2016-01-12 15:13:04 +02:00
Arik Fraimovich
eed3d50372 create data source with default group specific method 2016-01-12 15:10:03 +02:00
Arik Fraimovich
901cf6f017 Fix: new data source should be assigned to default group? 2016-01-12 13:39:54 +02:00
Arik Fraimovich
83458ab25e increase opacity of overlay 2016-01-12 12:08:02 +02:00
Arik Fraimovich
9ab4e0e888 Merge pull request #754 from getredash/proxy_fix
Make groups listing only available for users with list_users permission
2016-01-12 09:22:06 +02:00
Arik Fraimovich
89ac67555e Make groups listing only available for users with list_users permission 2016-01-11 15:46:41 +02:00
Arik Fraimovich
4d7e58c8d7 Merge pull request #753 from getredash/proxy_fix
Show meaningful message when no data sources defined yet
2016-01-11 12:48:29 +02:00
Arik Fraimovich
14c4203593 Show meaningful message when no data sources defined yet 2016-01-11 12:47:17 +02:00
Arik Fraimovich
ccec964c24 Merge pull request #752 from getredash/proxy_fix
Fix: creating new user w/ Google Auth was broken.
2016-01-11 12:46:53 +02:00
Arik Fraimovich
d65e1a799a Fix: creating new user w/ Google Auth was broken. 2016-01-11 12:46:19 +02:00
Arik Fraimovich
451f216c31 Merge pull request #750 from JohnConnell/master
Docs: how to setup SSL using Let's Encrypt SSL certs
2016-01-11 12:07:21 +02:00
Arik Fraimovich
270afad6cf Merge pull request #751 from getredash/proxy_fix
Feature: ability to set # of proxies for the ProxyFix & fix the unique data source name migration
2016-01-11 12:07:14 +02:00
Arik Fraimovich
ccae8bcc69 Add option to override # of proxies 2016-01-11 12:02:18 +02:00
Arik Fraimovich
07f96a22af Update data source unique name migration to support another name of constraint 2016-01-11 11:30:26 +02:00
John Connell
3f6cf95307 Update letsencrypt.rst 2016-01-10 14:41:32 -07:00
John Connell
6f2d5090e6 Add documentation on using Let's Encrypt SSL certs 2016-01-09 16:00:09 -07:00
Arik Fraimovich
9cedb3bb66 Merge pull request #749 from getredash/unique_ds
Data sources should have unique names per organization
2016-01-09 22:37:40 +02:00
Arik Fraimovich
9751d3584b Remove forgotten console.log 2016-01-08 20:45:13 +02:00
Arik Fraimovich
13ced12cc9 Change data source index to be (org, name) 2016-01-08 20:44:11 +02:00
Arik Fraimovich
fdd60b364f Merge pull request #746 from Xangis/master
Feature: add an option to update a query every 30 days
2016-01-07 21:47:14 +02:00
Arik Fraimovich
dde63d1e96 Fix #745: when creating user from CLI, use default org. 2016-01-07 21:46:46 +02:00
=
174f7c0b1a Add an option to update a query every 30 days for use with things like monthly reports. 2016-01-07 08:24:34 -08:00
Arik Fraimovich
887d7179c4 Merge pull request #744 from getredash/feature/permissions
Run make deps only if rd_ui/app exists
2016-01-07 14:56:52 +02:00
Arik Fraimovich
fc84cf39fc Run make deps only if rd_ui/app exists 2016-01-07 14:56:28 +02:00
Arik Fraimovich
849c11b5f4 Merge pull request #743 from getredash/feature/permissions
Explicitly add httplib2 to requirements
2016-01-07 14:20:07 +02:00
Arik Fraimovich
66b4fe8e32 Explicitly add httplib2 to requirements 2016-01-07 14:18:12 +02:00
Arik Fraimovich
9d1823426c Fix SSLify skip list. 2016-01-07 13:09:41 +02:00
Arik Fraimovich
c004274108 Merge pull request #742 from getredash/feature/permissions
Add option to enforce HTTPs at the "Flask level"
2016-01-07 12:25:01 +02:00
Arik Fraimovich
0b89ee4653 Add option to enforce HTTPs at the Flask level 2016-01-07 12:22:32 +02:00
Arik Fraimovich
caff2e5caa Fix logo URL for multi-org 2016-01-07 12:03:28 +02:00
Arik Fraimovich
aa98f22a04 Merge pull request #741 from getredash/feature/permissions
Upgrade gunicorn version to latest.
2016-01-07 11:55:52 +02:00
Arik Fraimovich
db8915f154 Upgrade gunicorn 2016-01-07 11:52:50 +02:00
Arik Fraimovich
ce9a5c05fb Merge pull request #740 from getredash/feature/permissions
Fix #738: alert code was referencing non existing attribute
2016-01-07 11:48:27 +02:00
Arik Fraimovich
246725515d Fix #738: alert code was referencing non existing attribute 2016-01-07 11:46:35 +02:00
Arik Fraimovich
be4c59e73d Merge pull request #739 from toyama0919/master
Fix: Alert: when Alert.name is multibyte character, occur UnicodeEncodeError
2016-01-07 11:44:58 +02:00
toyama0919
40e047a47c Fix: Alert: when Alert.name is multibyte character, occur UnicodeEncodeError. 2016-01-07 11:03:33 +09:00
Arik Fraimovich
048ef7234c Merge pull request #737 from getredash/feature/permissions
Fix: user created without groups (+2 more)
2016-01-07 00:38:27 +02:00
Arik Fraimovich
bd29bdbb2e Fix: datasource refresh schemas was broken 2016-01-07 00:36:09 +02:00
Arik Fraimovich
13252bb0af Fix #736: user missing groups & events missing ord_id 2016-01-07 00:34:23 +02:00
Arik Fraimovich
07a709d59a Upgrade Sentry client to support new flask-login 2016-01-07 00:24:34 +02:00
Arik Fraimovich
55f80695b0 Merge pull request #707 from ryotarai/bower-in-dockerfile
Build dependencies during building Docker image
2016-01-06 23:11:14 +02:00
Arik Fraimovich
991512bc17 Merge pull request #735 from getredash/feature/permissions
Fix migration issue and CLI
2016-01-06 22:28:33 +02:00
Arik Fraimovich
5e58818043 Fix CLI to work with organizations 2016-01-06 15:14:09 +02:00
Arik Fraimovich
224998c62a Fix #733: merge migration #20 into #18, to avoid errors. 2016-01-06 14:59:18 +02:00
Arik Fraimovich
9a31077a99 Merge pull request #732 from getredash/feature/permissions
Fix #730: migration failing when no Google Apps domain set
2016-01-05 12:48:08 +02:00
Arik Fraimovich
ab39ed2898 Fix #730: migration failing when no Google Apps domain set 2016-01-05 12:46:00 +02:00
Arik Fraimovich
cb4fbf81a2 Merge pull request #724 from getredash/feature/permissions
Feature: new permission model
2016-01-04 17:27:01 +02:00
Arik Fraimovich
7c6b95e71d Change multi-org implementation:
To avoid complications with how Google Auth works, when enabling organization
multi-tenancy on a single instance, each organization becomes a "sub folder"
instead of a sub-domain.
2016-01-04 00:03:49 +02:00
Arik Fraimovich
f7b57fa580 Feature: new permissions system
This is one huge change for the permissions system and related:

* (Backward incompatible:) Remove the table based permissions in favour of the new model.
* Manage permission to view or query datasources based on groups.
* Add the concept of Organization. It's irrelevant for most deployments, but allows for
  multi-tenant support in re:dash.
* Replace ActivityLog with Event based rows (old data in activity_log table is retained).
* Enforce permissions on the server-side. There were some permissions that were only enforced
  on the client side. This is no more. All permissions are enforced by the server.
* Added new permission: 'super-admin' to access the status and Flask-Admin interface.
* Make sure that html is never cached by the browser - this is to make sure that the browser
  will always ask for the new Javascript/CSS resources (if such are available).
2015-12-31 10:43:33 +02:00
Arik Fraimovich
6e32f5b9f2 Merge pull request #726 from getredash/fix/lazy_load_oauth_app
Fix: lazy load the oauth app
2015-12-28 15:15:43 +02:00
Arik Fraimovich
1a748c2141 Fix expected path in test 2015-12-28 15:10:42 +02:00
Arik Fraimovich
99ed076c0c To speed up builds, install npm & pack only on master branch. 2015-12-28 15:06:12 +02:00
Arik Fraimovich
8a7dd3b46a Fix: lazy load the oauth app 2015-12-28 14:52:33 +02:00
Arik Fraimovich
6e28f949fb Merge pull request #725 from akariv/master
Fix: Google OAuth - support for next
2015-12-28 12:07:34 +02:00
Adam Kariv
a9ccfb8b42 Fix next for Google oauth 2015-12-27 13:48:59 +02:00
Arik Fraimovich
1aba777b61 Change output path for junit.xml. 2015-12-27 10:12:19 +02:00
Arik Fraimovich
1894df49fa Use XUnit reports in CircleCI tests. 2015-12-27 09:46:45 +02:00
Arik Fraimovich
200131bb45 Silence metrics collection in tests. 2015-12-27 09:43:36 +02:00
Arik Fraimovich
5e25ba0cf6 Merge pull request #722 from ninneko/721-chart-right-axis
Fix: use second y axis for line charts while stacking
2015-12-24 17:39:52 +02:00
Arik Fraimovich
184d208020 Merge pull request #723 from getredash/feature/metrics
Feature: collect metrics on query time & request time
2015-12-24 17:33:18 +02:00
Arik Fraimovich
610fe2a8a2 Feature: collect metrics on query time & request time 2015-12-24 16:35:41 +02:00
yohei.naruse
068ce57b24 make right axis enabled if there are stacked bars on right axis and lines on right axis. 2015-12-24 17:34:29 +09:00
Arik Fraimovich
af61784a28 Merge pull request #664 from akariv/master
Feature: ability to embed visualizations in external sites
2015-12-21 22:07:32 +02:00
Arik Fraimovich
871d8d6b6a Merge pull request #716 from getredash/fix/perf
Fix #708: dashboard breaks when removing widgets and adding again
2015-12-21 16:34:13 +02:00
Adam Kariv
ea1fac76a3 Adapt to changes in upstream 2015-12-21 09:01:44 +02:00
Adam Kariv
ed380fefaa CR fixes 2015-12-21 09:01:44 +02:00
Adam Kariv
cc9e89bb69 Fix allowAllToEditQueries not bound to settings 2015-12-21 09:01:44 +02:00
Adam Kariv
e9aeb11685 Embedding of visualizations in external sites 2015-12-21 09:01:44 +02:00
Arik Fraimovich
cc2dcb25b6 Merge pull request #714 from erans/mongodb-schema-support
Feature: load schema for MongoDB data source
2015-12-20 15:38:36 +02:00
Arik Fraimovich
bfb73166c6 Merge pull request #713 from alexanderlz/master
Fix: don't add "Copy of" when saving a query
2015-12-20 14:36:46 +02:00
Arik Fraimovich
30adfccd79 Fix #708: dashboard breaks when removing widgets and adding again 2015-12-20 13:15:58 +02:00
Eran Sandler
c3b6de55c0 added an extra check when a collection is empty and there are no documents to merge to show as fields 2015-12-20 09:58:29 +02:00
Eran Sandler
fa2cae1753 added schema support for MongoDB. Collections will be shown as tables and we merge the first and last documents (sorted by Natural order) to show the properties of the document. Since MongoDB is document based it might miss a few fields but it should give a good enough reference 2015-12-20 09:55:26 +02:00
Alexander Leibzon
b337a50fcc fix queryname when forking, add forked query_id to the name 2015-12-20 01:24:24 +02:00
Arik Fraimovich
3d178f9a60 Merge pull request #711 from alexanderlz/master
Feature: update forked query name
2015-12-16 20:56:06 +02:00
Arik Fraimovich
a0219bf354 Merge pull request #706 from alonho/fix/692_3
#692: Enable scrolling for pie charts with long legend
2015-12-16 17:41:02 +02:00
Ryota Arai
ec41077dc1 Run apt-get clean to reduce image size. 2015-12-17 00:07:56 +09:00
Ryota Arai
15f9a063ae Install nodejs, build assets and uninstall it in one instruction. 2015-12-17 00:07:56 +09:00
Ryota Arai
a15085dc93 Run supervisord as root. 2015-12-17 00:07:56 +09:00
Ryota Arai
78ae9ac647 Build dependencies during building Docker image. 2015-12-17 00:07:56 +09:00
Ryota Arai
f31ec7b1dd Stop to install bower and grunt-cli globally. 2015-12-17 00:07:56 +09:00
Arik Fraimovich
85916efa81 Merge pull request #710 from ryotarai/bq-max-mb-processed
Feature: BigQuery: limit amount of MB processed per query
2015-12-16 16:30:47 +02:00
Alexander Leibzon
31b6e6ff0f Merge remote-tracking branch 'upstream/master' 2015-12-16 15:17:58 +02:00
Ryota Arai
f20774b6c2 Rename maximumTotalMBytesProcessed to totalMBytesProcessedLimit. 2015-12-16 20:25:18 +09:00
Ryota Arai
dac6cabd1e Extract code into a method _get_query_result. 2015-12-16 20:19:35 +09:00
Ryota Arai
51949230d6 Extract code into a method _get_total_bytes_processed. 2015-12-16 20:19:31 +09:00
Ryota Arai
81386bcf37 If maximumTotalMBytesProcessed is set, do dryrun and check data size. 2015-12-16 20:04:33 +09:00
Alexander Leibzon
67118ee1aa add 'Copy of' to forked query 2015-12-15 01:15:03 +02:00
Alon Horev
e863d83bf4 #692: Enable scrolling for pie charts with long legend 2015-12-14 11:24:56 +02:00
Arik Fraimovich
d958817b10 Update 0014_add_alert_rearm_seconds.py 2015-12-14 10:47:46 +02:00
Arik Fraimovich
450631d6ce Merge pull request #680 from alexanderlz/master
Feature: show rows count per table
2015-12-14 10:31:08 +02:00
Arik Fraimovich
8b5a0206c2 Merge pull request #705 from alonho/fix/692_2
#692: Fix scrolling issue with plotly charts (didn't always work)
2015-12-13 17:25:02 +02:00
Alon Horev
49848a193a #692: Fix scrolling issue with plotly charts (didn't always work) 2015-12-13 17:06:07 +02:00
Alexander Leibzon
0f9d5219ef add setting for global enable/disable of table size estimations for schema 2015-12-13 15:13:14 +02:00
Alexander Leibzon
3cb14786f5 Bug 704: fix 2015-12-13 12:22:58 +02:00
Alexander Leibzon
8e432200aa Merge remote-tracking branch 'upstream/master' 2015-12-12 12:10:35 +02:00
Arik Fraimovich
30dd030a9d Merge pull request #703 from alonho/fix/area_stacking_hover
Chart: regular area stacking (not percent) now shows both the value and sum per point.
2015-12-12 07:46:22 +02:00
Alon Horev
fc3fc0e84a Chart: pie chart colors should use our custom palette and not the default plotly palette 2015-12-12 01:02:22 +02:00
Alon Horev
24b70e66af Chart: regular area stacking (not percent) now shows both the value and sum per point. 2015-12-11 23:22:22 +02:00
Arik Fraimovich
76a1b9fdbe Merge pull request #701 from alonho/fix/694_2
Fix: #694: When stacking is enabled show both the relative value (in %) and the absolute value (attempt #2)
2015-12-11 17:02:34 +02:00
Arik Fraimovich
e310f9d522 Merge pull request #700 from alonho/fix/692
Fix: #692: Chart legend was cut off with a large number of series. The wrapping div now scrolls to make it visible.
2015-12-11 14:18:19 +02:00
Alon Horev
86a0e74db8 #694: When stacking is enabled show both the relative value (in %) and the absolute value 2015-12-10 23:00:49 +02:00
Alon Horev
30a70338ba #692: Chart legend was cut off with a large number of series. The wrapping div now scrolls to make it visible. 2015-12-10 22:16:58 +02:00
Arik Fraimovich
b242dbb531 Merge pull request #698 from alonho/fix/694
Fix: When stacking is enabled show both the relative value (in %) and the absolute value
2015-12-10 21:59:38 +02:00
Arik Fraimovich
ca47b0e6f7 Merge pull request #699 from alonho/fix/695
Fix: Charts: when stacking is enabled we should use one yaxis otherwise they overlap
2015-12-10 18:57:14 +02:00
Alon Horev
7c992c53eb #694: When stacking is enabled show both the relative value (in %) and the absolute value 2015-12-10 17:28:47 +02:00
Alon Horev
4deb150a89 #695: Charts: when stacking is enabled we should use one yaxis otherwise they overlap 2015-12-10 16:18:32 +02:00
Arik Fraimovich
63f0a8cc20 Merge pull request #631 from brickx/master
Feature: alert rearm setting which allows periodic resending of alert messages.
2015-12-10 09:19:58 +02:00
Arik Fraimovich
7e4f5e1e03 Merge pull request #687 from alonho/feature/plotly
Feature: replace HighCharts with Plotly
2015-12-09 10:17:40 +02:00
Arik Fraimovich
6f1fed47b3 Merge pull request #691 from VirtualPaul/patch-1
Docs: add TreasureData to the list of datasources
2015-12-09 10:17:26 +02:00
Arik Fraimovich
4505437097 Bump version. 2015-12-09 10:16:15 +02:00
Paul Lacey
2ea2df5943 Update datasources.rst
Add Treasure Data to list of supported data sources
2015-12-08 15:31:58 -08:00
Alon Horev
135ffd693a Add an option to disable chart legend.
A user can disable it if he has tons of series.
Now that we explicitly enable it, it's also visible for a single series.
2015-12-07 19:07:04 +02:00
Alon Horev
0f82d4e17b Remove highcharts as it's not used anymore 2015-12-06 21:05:35 +02:00
Arik Fraimovich
32c0d3eb3d Merge pull request #688 from Xangis/patch-1
Docs: Add Greenplum to Postgresql section since it works with same settings.
2015-12-06 09:22:49 +02:00
Jason Champion
1bee22a578 Add Greenplum to Postgresql section since it works with same settings. 2015-12-05 15:24:55 -08:00
Arik Fraimovich
6bb57508e1 Merge pull request #686 from scottkrager/patch-1
Docs: Update bootstrap.sh link to getredash repo
2015-12-05 22:15:32 +02:00
Alon Horev
b7a43feeca #273: Replace highcharts with plotly (it's free!) 2015-12-05 03:01:44 +02:00
Arik Fraimovich
2d34bf1c54 Typo fix in task name. 2015-12-04 17:09:01 +02:00
Arik Fraimovich
7e3856b4f5 Unify deployment sections in CirlceCI config. 2015-12-04 16:18:58 +02:00
Scott Krager
189e105c68 Update bootstrap.sh link to getredash repo 2015-12-03 16:30:06 -08:00
Arik Fraimovich
378459d64f Merge pull request #685 from getredash/fix/alert_sub_migration
Feature: add settings to query results cleanup
2015-12-03 11:20:51 +02:00
Arik Fraimovich
ab72531889 Add settings to query results cleanup (closes #683) 2015-12-03 11:10:02 +02:00
Arik Fraimovich
51deb8f75d Merge pull request #684 from getredash/fix/alert_sub_migration
Fix: add migration for AlertSubscriber table
2015-12-03 11:04:31 +02:00
Arik Fraimovich
68f6e9b5e5 Add migration for AlertSubscriber table 2015-12-03 11:03:38 +02:00
Arik Fraimovich
fbfa76f4d6 Merge pull request #682 from alonho/master
Fix: bug with new version of ui-select and 'track by ' on choices
2015-12-02 20:12:42 +02:00
Alon Horev
28e8e049eb fix bug with new version of ui-select and 'track by ' on choices 2015-12-02 20:10:19 +02:00
Alon Horev
47dcead383 #273: as a preparation for adding plotly, remove date range picker in the chart (plotly supports it within the chart) 2015-12-02 11:08:25 +02:00
Arik Fraimovich
f1f9597998 Bump version. 2015-12-02 11:03:50 +02:00
Alexander Leibzon
0da39edf1a Merge branch 'master' of github.com:alexanderlz/redash
Conflicts:
	redash/models.py
	redash/query_runner/__init__.py
2015-12-01 16:32:03 +02:00
Alexander Leibzon
7845ad5ff7 refresh param 2015-12-01 16:27:35 +02:00
Alexander Leibzon
3808b451c6 add param to allow skipping table row count 2015-12-01 16:27:34 +02:00
Alexander Leibzon
c78789a670 modify hive/impala/oracle to use BaseSQLQueryRunner 2015-12-01 16:27:34 +02:00
Alexander Leibzon
2cd08d25a0 improve code, create BaseSQLQueryRunner class, adapt postgres/mysql 2015-12-01 16:27:34 +02:00
Alexander Leibzon
09ed4d5ede feature #674 2015-12-01 16:23:28 +02:00
Alexander Leibzon
1e97a0ce9f add param to allow skipping table row count 2015-12-01 15:18:25 +02:00
Alexander Leibzon
61cb203ce7 modify hive/impala/oracle to use BaseSQLQueryRunner 2015-12-01 13:38:17 +02:00
Alexander Leibzon
58c0c5c099 improve code, create BaseSQLQueryRunner class, adapt postgres/mysql 2015-12-01 13:30:39 +02:00
blu35ky
8072b06246 Merge with upstream/master. 2015-12-01 20:50:42 +11:00
Niels Draaisma
65f2c2136b Added handling of empty rearm settings 2015-12-01 20:47:42 +11:00
Niels Draaisma
8b9a9e9ac4 Added alert rearm setting 2015-12-01 20:43:49 +11:00
Arik Fraimovich
0b389d51aa Merge pull request #644 from toyama0919/feature/alert-to-hipchat
Feature: send alert notifications to HipChat or web hook
2015-12-01 10:50:53 +02:00
toyama0919
46f3e82571 Apply reviews. fix redash.utils instead of bson. 2015-12-01 10:36:21 +09:00
toyama0919
5b64918379 Apply reviews. fix, post json nested data for webhook. 2015-12-01 10:36:21 +09:00
toyama0919
7549f32d9a Apply reviews. fix http client library httplib2 to requests. 2015-12-01 10:36:21 +09:00
toyama0919
6f51776cbb fix, basic auth for webhook. 2015-12-01 10:36:21 +09:00
toyama0919
ad0afd8f3e add, alert notification to webhook. 2015-12-01 10:36:21 +09:00
toyama0919
8863282e58 Apply reviews from arikfr 2015-12-01 10:34:56 +09:00
toyama0919
9c1fda488c fix, alert notification to hipchat. 2015-12-01 10:33:01 +09:00
blu35ky
30a494dab0 Changes based on PR 2015-12-01 11:22:19 +11:00
Arik Fraimovich
995659ee0d Merge pull request #679 from alonho/table_pagination
Improve table widget pagination UI
2015-11-30 23:39:06 +02:00
Alon Horev
ad2642e9e5 Improve table widget pagination UI 2015-11-30 23:37:56 +02:00
Arik Fraimovich
740b305910 Merge pull request #676 from getredash/feature/version_check
Feature: re:dash version check
2015-11-30 22:37:20 +02:00
Arik Fraimovich
ca8cca0a8c Merge pull request #678 from alonho/655
Fix: Dashboard shouldn't crash with empty queries
2015-11-30 22:34:00 +02:00
Arik Fraimovich
7c4410ac63 Use ng-cloak to hide the new version message until relevant 2015-11-30 22:31:06 +02:00
Alon Horev
91a209ae82 #655: Dashboard shouldn't crash with empty queries 2015-11-30 18:17:37 +02:00
Arik Fraimovich
60cdb85cc4 Move all version check logic into a module of its own 2015-11-30 17:06:21 +02:00
Arik Fraimovich
becb4decf1 Show in UI if new version available 2015-11-30 16:38:42 +02:00
Arik Fraimovich
5f33e7ea18 Perform daily version check 2015-11-30 16:31:49 +02:00
Arik Fraimovich
7675de4ec7 Merge pull request #675 from alonho/redash_link
Add link to redash.io
2015-11-30 16:16:10 +02:00
Alon Horev
fe2aa71349 Add link to redash.io 2015-11-30 16:10:33 +02:00
Arik Fraimovich
b7720f7001 Merge pull request #672 from alonho/chart_editor
Feature: Improved chart editor UI/UX
2015-11-30 12:38:01 +02:00
Alon Horev
3b24f56eba #671: Improve chart editor UI/UX 2015-11-30 12:37:00 +02:00
Alexander Leibzon
06065badd4 feature #674 2015-11-29 01:16:27 +02:00
Arik Fraimovich
52b8e98b1a Merge pull request #620 from getredash/docker
Reorganize setup files & update Docker configurations
2015-11-26 11:27:52 +02:00
Arik Fraimovich
5fe9c2fcf0 Update Ubuntu with docker readme 2015-11-26 10:39:42 +02:00
Arik Fraimovich
816142aa54 Update evn files 2015-11-26 10:38:06 +02:00
Arik Fraimovich
f737be272f Update GitHub repo url (EverythingMe -> GetRedash) 2015-11-26 10:34:16 +02:00
Arik Fraimovich
0343fa7980 Merge pull request #661 from hudl/fix-cancelquery
Fix cancelling queries for Redshift/Postgres
2015-11-24 15:18:58 +02:00
Arik Fraimovich
0f9f9a24a0 Remove spaces in export command. 2015-11-24 15:10:27 +02:00
Alex DeBrie
5b9b18639b Move signal handler 2015-11-23 14:02:09 +00:00
Arik Fraimovich
ce46295dd3 Update location of config files 2015-11-23 15:46:00 +02:00
Arik Fraimovich
3781b0758e Fix nginx conf mounting 2015-11-23 15:39:48 +02:00
Arik Fraimovich
8d20180d40 Update mail setup guide. 2015-11-23 14:24:43 +02:00
Arik Fraimovich
a7b41327c6 Update docker hub organization 2015-11-23 11:41:45 +02:00
Arik Fraimovich
4d415c0246 WIP: bootstrap for docker 2015-11-23 11:38:17 +02:00
Arik Fraimovich
5331008e78 add docker-compose.yml 2015-11-23 11:38:17 +02:00
Arik Fraimovich
80783feda6 Bootstrap files for Docker image 2015-11-23 11:38:17 +02:00
Arik Fraimovich
2f308c3fa6 Remove test file 2015-11-23 11:38:17 +02:00
Arik Fraimovich
a63055f7f0 Fix build step 2015-11-23 11:38:17 +02:00
Arik Fraimovich
ce884ba6d3 Update CircleCI config to build images 2015-11-23 11:38:17 +02:00
Arik Fraimovich
63765281fe Fix path in bootstrap script 2015-11-23 11:38:16 +02:00
Arik Fraimovich
47e79003e5 Update packer config 2015-11-23 11:38:16 +02:00
Arik Fraimovich
541060c62e Remove latest_release_url.py - docker images will be created with current code base as context 2015-11-23 11:38:16 +02:00
Arik Fraimovich
3ba19fa80f update readme for ubuntu bootstrap 2015-11-23 11:38:16 +02:00
Arik Fraimovich
f3ec0448f5 Updates to Dockerfile:
- No need to pg client anymore.
- Fix path to supervisord.conf.
2015-11-23 11:38:16 +02:00
Arik Fraimovich
654349a7ae Better arrangement of setup directory 2015-11-23 11:38:16 +02:00
Arik Fraimovich
2b32de184e Change suffix of docker-compose file to .yml as suggested by docker-compose 2015-11-23 11:38:15 +02:00
Arik Fraimovich
1fb57edd1f Remove old Vagrant file 2015-11-23 11:38:15 +02:00
Arik Fraimovich
f6c65d139a Move Amazon Linux bootstrap into folder of its own 2015-11-23 11:38:15 +02:00
Arik Fraimovich
4e59472238 Fix .dockerignore file:
Allow sending rd_ui/dist, remove rd_ui/nodemodules.
2015-11-23 11:38:15 +02:00
Arik Fraimovich
feabc46da4 Merge pull request #668 from cou929/fix-all_models
Fix: AlertSubscription missing in all_models
2015-11-23 11:13:49 +02:00
Kosei Moriyama
51a10e5a20 Add AlertSubscription to all_models 2015-11-23 02:06:39 +09:00
Arik Fraimovich
5bf370d0f0 Merge pull request #660 from hudl/fix-regexanchors
Fix: strings that start with a date wrongly treated as date fields
2015-11-21 20:41:56 +02:00
Arik Fraimovich
5beec581d8 Merge pull request #667 from getredash/docs_alerts
Docs: add instructions on setting up email server
2015-11-20 21:32:20 +02:00
Arik Fraimovich
70080df534 Add instructions on setting up email server 2015-11-20 21:31:50 +02:00
Arik Fraimovich
0d4c3c329e Merge pull request #666 from alonho/patch-1
Fix: Specifying field type in the field name using __ didn't work
2015-11-20 16:39:06 +02:00
Alon Horev
76dfbad971 Specifying field type in the field name using __ didn't work
It works for '::' but probably didn't work for '__' due to a a copy-paste
2015-11-20 14:20:26 +02:00
Alex DeBrie
45a85c110f Add SIGINT signal 2015-11-18 18:30:54 +00:00
Alex DeBrie
f77c0aeb1d Add InterruptException to __all__ 2015-11-18 18:07:47 +00:00
Alex DeBrie
b23e328f69 Add sigint signal handler to BaseQueryRunner 2015-11-18 17:20:39 +00:00
Alex DeBrie
165d782b98 Add end of string anchor to date parsing regex 2015-11-18 16:15:10 +00:00
Arik Fraimovich
1bdc1bef73 Merge pull request #653 from hakobera/fix-date-range-selector
Fix date range selector does not show data of last day when user timezone is not UTC
2015-11-18 17:58:20 +02:00
Arik Fraimovich
e3b41b15d7 Update links in README. 2015-11-18 17:49:11 +02:00
Arik Fraimovich
7a95dec33b Merge pull request #659 from getredash/fixes_151118
Add footer to the layout, to have links to docs & GitHub
2015-11-18 17:45:55 +02:00
Arik Fraimovich
a3d059041c Add footer 2015-11-18 17:36:24 +02:00
Arik Fraimovich
3a6c1599f3 Update index.rst 2015-11-18 17:35:06 +02:00
Arik Fraimovich
f92aa7b15f Merge pull request #658 from getredash/fixes_151118
Charts: remove "Show Total %" menu option and the yellow color
2015-11-18 16:51:41 +02:00
Arik Fraimovich
d823506e5b Remove menu option and yellow color 2015-11-18 16:50:59 +02:00
Arik Fraimovich
fc93de7aa2 Merge pull request #657 from getredash/fixes_151118
Fix: Change user create button from Save to Create
2015-11-18 16:49:19 +02:00
Arik Fraimovich
a0cc25d174 Change user create button from Save to Create 2015-11-18 16:45:15 +02:00
Arik Fraimovich
df24bc3aae Merge pull request #656 from enriquesaid/header-gravatar-src
Fix: load user avatar image with ng-src
2015-11-17 23:19:23 +02:00
Enrique Marques Junior
60c2cb0a75 using ng-src 2015-11-17 14:53:43 -02:00
Kazuyuki Honda
ad19f2d304 Treat dateRange as UTC 2015-11-17 11:03:07 +09:00
Arik Fraimovich
3aa59a8152 Update README links. 2015-11-16 16:12:41 +02:00
Arik Fraimovich
32638aebed Merge pull request #650 from alonho/mql
Feature: MQL query runner
2015-11-15 17:21:44 +02:00
Arik Fraimovich
346ea66c9d Merge pull request #651 from alonho/datasource_defaults
Support default values in data source creation forms
2015-11-15 17:17:26 +02:00
Arik Fraimovich
d14b74b683 Merge pull request #654 from EverythingMe/fix-graphite-verify
Fix: verify is optional value of Graphite's config
2015-11-15 17:10:46 +02:00
Arik Fraimovich
5d879ce358 Update circle.yml 2015-11-15 17:02:43 +02:00
Arik Fraimovich
b4da4359a8 Fix: verify is optional value of Graphite's config 2015-11-14 23:35:37 +02:00
Kazuyuki Honda
7e08518a31 Fix date range selector when user timezone is not UTC 2015-11-14 13:03:14 +09:00
Alon Horev
bea0e9aad0 Add support for MQL (a propietery SQL implementation for MongoDB by digdata.io) 2015-11-13 23:35:34 +02:00
Alon Horev
a87179b68b Support default values in data source creation forms 2015-11-13 23:28:33 +02:00
Arik Fraimovich
91806eda44 Merge pull request #647 from runa/patch-3
Fix: bind Redis to localhost
2015-11-11 06:04:58 +02:00
martin sarsale
d1fe3d63fd bind redis to localhost
Having it bound to the public addresses is a security problem.
See http://antirez.com/news/96
2015-11-10 23:03:53 -03:00
Arik Fraimovich
8408409ce2 Merge pull request #642 from tjwudi/patch-3
Docs: make migrating Vagrant box command a one-liner
2015-11-10 20:43:59 +02:00
John Wu
6bbdd5eb44 Make migrating command one-liner 2015-11-09 14:54:45 -08:00
Arik Fraimovich
34ba54397d Merge pull request #638 from underdogio/dev/show.db.select.mobile.sqwished
Removed `rd-hidden-xs` to make everything visible on mobile
2015-11-08 22:59:14 +02:00
Arik Fraimovich
ec79ce74d0 Merge pull request #639 from hudl/Feature-ScheduleQueryPermission
Feature: permission to schedule query
2015-11-07 23:11:38 +02:00
Alex DeBrie
f324f1bf6f Add schedule_query permission 2015-11-07 17:52:32 +00:00
Todd Wolfson
47cfb7d620 Removed rd-hidden-xs to make everything visible on mobile 2015-11-05 18:55:40 -06:00
Arik Fraimovich
dab1a21b40 Merge pull request #637 from underdogio/dev/explore.regression.sqwished
Reverted pivottable upgrade to remove XSS vulnerability
2015-11-05 20:36:05 +02:00
Arik Fraimovich
aa04a6e4a5 Merge pull request #630 from gissehel/sqlite_query_runner
Feature: SQLite query runner
2015-11-05 09:19:13 +02:00
gissehel
e0a43a32ab * Removed commented lines
* Renamed "Database Name"/dbname to "Database Path"/dbpath
2015-11-04 07:17:58 +01:00
gissehel
68001ae0f1 sqlite support 2015-11-04 07:17:58 +01:00
Todd Wolfson
9d9501b158 Reverted pivottable upgrade to remove XSS vulnerability 2015-11-03 16:49:30 -06:00
Arik Fraimovich
67aecc0201 Merge pull request #594 from tjwudi/diwu/feature/date-range-selector
Feature: date range selector support for charts
2015-11-03 23:16:04 +02:00
Arik Fraimovich
0bc9fc1ed5 Merge pull request #575 from Wondermall/feature/support_for_basic_auth_on_elastic_queries
Feature: new ElasticSearch datasource, and rename previous one to Kibana
2015-11-03 22:01:51 +02:00
Arik Fraimovich
b548cb1d8f Merge pull request #625 from essence-tech/oracle-support
Feature: Oracle query runner
2015-11-03 21:56:38 +02:00
Arik Fraimovich
eb5c4dd5f3 Merge pull request #623 from stanhu/support-mysql-ssl
Feature: support MySQL over SSL
2015-11-03 21:54:58 +02:00
Stan Hu
a07a9b9390 Normalize SSL titles 2015-11-03 10:16:48 -08:00
Arik Fraimovich
56ade4735c Merge pull request #634 from tjwudi/patch-1
Document APIs exposed to Python scripts
2015-11-03 10:17:52 +02:00
John Wu
b8a9f1048a Document APIs exposed to Python scripts 2015-11-02 13:52:39 -08:00
Niels Draaisma
3dc62e3c85 Added handling of empty rearm settings 2015-10-30 16:18:15 +11:00
Niels Draaisma
73b2c5d38e Added alert rearm setting 2015-10-30 16:01:21 +11:00
Arik Fraimovich
5b3bcff4f5 Update README.md 2015-10-26 12:54:21 +02:00
Arik Fraimovich
b41b21c69e Update README.md 2015-10-26 12:53:32 +02:00
Arik Fraimovich
172d57e82c Update README.md 2015-10-26 12:51:58 +02:00
Arik Fraimovich
f507da9df7 Update README about re:dash future. 2015-10-26 12:51:20 +02:00
Stan Hu
2e27e43357 Support MySQL over SSL 2015-10-21 16:21:17 -07:00
Josh Fyne
8a0c287d05 Updated datasources docs 2015-10-21 12:06:47 -04:00
Josh Fyne
664a1806bc Better number handling 2015-10-21 10:05:38 -04:00
Josh Fyne
9a0ccd1bb5 Added cx_Oracle requirement 2015-10-20 15:40:18 -04:00
Josh Fyne
076fca0c5a Initial Oracle pass 2015-10-20 15:27:07 -04:00
Arik Fraimovich
59f099418a Merge pull request #617 from EverythingMe/fix/timezone
Improve timezone handling:
2015-10-20 16:29:47 +03:00
Arik Fraimovich
b9a0760d7e Improve timezone handling:
1. Load all date/datetime values with moment.utc() which doesn't apply
   current timezone to them.
2. Don't use toLocaleString to format strings (which was converting them
   to current timezone as well).

Ref #411.
2015-10-20 16:17:57 +03:00
Lior Rozner
4eb490a839 Code review fix.
Added migration to change all existing elasticsearch datasource to kibana datasource.
2015-10-13 20:14:58 -07:00
John Wu
410c5671f0 Revert: python data source in setting 2015-10-13 11:42:42 -07:00
John Wu
fad8bd47e8 Remove commented code
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-13 11:35:56 -07:00
John Wu
89f5074054 Prevent unneccesary call to setDateRangeToExtreme
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-13 11:33:20 -07:00
John Wu
5826fbd05f Use moment.min and moment.max 2015-10-13 11:20:36 -07:00
John Wu
ddab1c9493 Update angular-moment and moment 2015-10-13 11:19:19 -07:00
John Wu
f9d5fe235b Always use _addPointToSeriesIfInDateRange 2015-10-13 11:01:21 -07:00
John Wu
cc91981845 Naming stuff
`seriesCollection` -> `allSeries` (shorter)
`s` -> `series`

Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-08 14:49:45 -07:00
John Wu
9832b7f72a Use more descriptive name for series collection
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-06 15:04:34 -07:00
John Wu
2a6ed3ca52 Use bind(this) instead of creating that
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-06 15:04:02 -07:00
John Wu
2e78ef0128 Use more descriptive method name
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-06 14:50:15 -07:00
John Wu
d50af7dec9 Use dateRangeEnabled to decided whether we should display the data range selector
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-05 17:35:41 -07:00
John Wu
20159a1c2a Separate setDateRangeToExtreme function
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-05 17:32:46 -07:00
John Wu
06400ed840 Refactor addPointToSeries
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-05 17:13:36 -07:00
John Wu
0ddc6cf135 Use null to state empty object instead
Signed-off-by: John Wu <webmaster@leapoahead.com>
2015-10-05 17:13:04 -07:00
John Wu
61f2be02b7 Redundant filter removed 2015-09-28 15:06:09 -07:00
John Wu
9eca43801a Fix: date range does not update in dashboard
Replace the whole dateRange object in scope instead of changing min and max properties one-by-one. Given how angular `$watch` works with Moment.js object, I wrote some comment to clarify the right way to update dateRange.
2015-09-28 15:00:55 -07:00
John Wu
bcaefda600 Clearfix date-range-selector 2015-09-28 14:58:26 -07:00
Lior Rozner
42b0430866 Added support for ElasticSearch with basic auth.
Initial support for full blown ElasticSearch Search API (https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html)
2015-09-28 08:56:38 -07:00
John Wu
40ee0d8a6e Add date-range-selector to chart 2015-09-24 15:06:35 -07:00
820 changed files with 69131 additions and 15402 deletions

126
.circleci/config.yml Normal file
View File

@@ -0,0 +1,126 @@
version: 2.0
jobs:
unit-tests:
environment:
COMPOSE_FILE: .circleci/docker-compose.circle.yml
COMPOSE_PROJECT_NAME: redash
docker:
- image: circleci/buildpack-deps:xenial
steps:
- setup_remote_docker
- checkout
- run:
name: Build Docker Images
command: |
set -x
docker-compose up -d
sleep 10
- run:
name: Create Test Database
command: docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests;"
- run:
name: Run Tests
command: docker-compose run --name tests redash tests --junitxml=junit.xml tests/
- run:
name: Copy Test Results
command: |
mkdir -p /tmp/test-results/unit-tests
docker cp tests:/app/coverage.xml ./coverage.xml
docker cp tests:/app/junit.xml /tmp/test-results/unit-tests/results.xml
- store_test_results:
path: /tmp/test-results
- store_artifacts:
path: coverage.xml
build-tarball:
docker:
- image: circleci/node:8
steps:
- checkout
- run: npm install
- run: npm run build
- run: .circleci/update_version
- run: .circleci/pack
- store_artifacts:
path: /tmp/artifacts/
build-docker-image:
docker:
- image: circleci/buildpack-deps:xenial
steps:
- setup_remote_docker
- checkout
- run: .circleci/update_version
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
- run: docker build -t redash/redash:$(.circleci/docker_tag) .
- run: docker push redash/redash:$(.circleci/docker_tag)
integration-tests:
working_directory: ~/redash
machine: true
environment:
REDASH_SERVER_URL : "http://127.0.0.1:5000/"
DOCKER_IMAGE: mozilla/redash-ui-tests
steps:
- checkout
- run:
name: Install Docker Compose
command: |
set -x
pip install --upgrade pip
pip install docker-compose>=1.18
docker-compose --version
- run:
name: Pull redash images
command: |
set -x
docker-compose -f docker-compose.yml up --no-start
sleep 10
- run:
name: Pull redash-ui-tests
command: docker pull "${DOCKER_IMAGE}":latest
- run:
name: Setup redash instance
command: |
set -x
docker-compose run --rm --user root server create_db
docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests"
docker-compose run --rm --user root server /app/manage.py users create_root root@example.com "rootuser" --password "IAMROOT" --org default
docker-compose run --rm --user root server /app/manage.py ds new "ui-tests" --type "url" --options '{"title": "uitests"}'
docker-compose run -d -p 5000:5000 --user root server
docker-compose start postgres
docker-compose run --rm --user root server npm install
docker-compose run --rm --user root server npm run build
- run:
name: Run tests
command: |
set -x
docker run --net="host" --env REDASH_SERVER_URL="${REDASH_SERVER_URL}" "${DOCKER_IMAGE}"
- store_artifacts:
path: report.html
workflows:
version: 2
integration_tests:
jobs:
- integration-tests:
filters:
branches:
only: master
build:
jobs:
- unit-tests
- build-tarball:
requires:
- unit-tests
filters:
tags:
only: /v[0-9]+(\.[0-9\-a-z]+)*/
branches:
only:
- master
- release
- build-docker-image:
requires:
- unit-tests
filters:
branches:
ignore: /.*/
tags:
only: /v[0-9]+(\.[0-9\-a-z]+)*/

View File

@@ -0,0 +1,22 @@
version: '2'
services:
redash:
build: ../
command: manage version
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
redis:
image: redis:3.0-alpine
restart: unless-stopped
postgres:
image: postgres:9.5.6-alpine
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
restart: unless-stopped

5
.circleci/docker_tag Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
VERSION=$(jq -r .version package.json)
FULL_VERSION=$VERSION.b$CIRCLE_BUILD_NUM
echo $FULL_VERSION

9
.circleci/pack Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
NAME=redash
VERSION=$(jq -r .version package.json)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
FILENAME=$NAME.$FULL_VERSION.tar.gz
mkdir -p /tmp/artifacts/
tar -zcv -f /tmp/artifacts/$FILENAME --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *

5
.circleci/update_version Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
VERSION=$(jq -r .version package.json)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
sed -ri "s/^__version__ = '([A-Za-z0-9.-]*)'/__version__ = '$FULL_VERSION'/" redash/__init__.py

22
.codeclimate.yml Normal file
View File

@@ -0,0 +1,22 @@
engines:
pep8:
enabled: true
eslint:
enabled: true
channel: "eslint-3"
config:
config: client/.eslintrc.js
checks:
import/no-unresolved:
enabled: false
ratings:
paths:
- "redash/**/*.py"
- "client/**/*.js"
exclude_paths:
- tests/**/*.py
- migrations/**/*.py
- old_migrations/**/*.py
- setup/**/*
- bin/**/*

View File

@@ -1,5 +1,9 @@
[run]
branch = True
source = redash
[report]
omit =
*/settings.py
*/python?.?/*
*/site-packages/nose/*
show_missing = True

View File

@@ -1,4 +1,4 @@
rd_ui/dist/
rd_ui/.tmp/
client/.tmp/
node_modules/
.tmp/
.git/
.vagrant/

14
.editorconfig Normal file
View File

@@ -0,0 +1,14 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.py]
indent_style = space
indent_size = 4
[*.{js,css,html}]
indent_style = space
indent_size = 2

View File

@@ -1,6 +0,0 @@
REDASH_STATIC_ASSETS_PATH="../rd_ui/app/"
REDASH_LOG_LEVEL="INFO"
REDASH_REDIS_URL=redis://localhost:6379/1
REDASH_DATABASE_URL="postgresql://redash"
REDASH_COOKIE_SECRET=veryverysecret
REDASH_GOOGLE_APPS_DOMAIN=

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

@@ -0,0 +1,34 @@
<!--
#####################################################################
#
# Need support? USE THE FORUM! https://discuss.redash.io/c/support.
#
# Don't have steps to reproduce and actually not sure it's a bug?
# Use the forum! https://discuss.redash.io/c/support.
#
#####################################################################
**Got an idea for a new feature?** Check if it isn't on the roadmap already: http://bit.ly/redash-roadmap and start a new discussion in the features category: https://discuss.redash.io/c/feature-requests 🌟.
Found a bug? Please fill out the sections below... thank you 👍
Found a security vulnerability? Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use this PGP key.
-->
### Issue Summary
A summary of the issue and the browser/OS environment in which it occurs.
### Steps to Reproduce
1. This is the first step
2. This is the second step, etc.
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
### Technical details:
* Redash Version:
* Browser/OS:
* How did you install Redash:

5
.github/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
# https://github.com/behaviorbot/request-info?installation_id=189571
requestInfoLabelToAdd: needs-more-info
requestInfoReplyComment: >
We would appreciate it if you could provide us with more info about this issue/pr!

22
.gitignore vendored
View File

@@ -1,24 +1,26 @@
.venv
venv/
.cache
.coverage.*
.coveralls.yml
.idea
*.pyc
.coverage
rd_ui/dist
coverage.xml
client/dist
.DS_Store
celerybeat-schedule*
.#*
\#*#
*~
_build
# Vagrant related
.vagrant
Berksfile.lock
redash/dump.rdb
.vscode
.env
.ruby-version
venv
dump.rdb
# Docker related
docker-compose.yaml
node_modules
.tmp
.sass-cache
npm-debug.log

View File

@@ -1,2 +0,0 @@
ignore-paths:
- migrations

915
CHANGELOG.md Normal file
View File

@@ -0,0 +1,915 @@
# Change Log
## v5.0.0 - 2018-09-21
Final release for V5. Most of the changes were already in the beta release of V5, but this includes several fixes along
with UI improvements.
🙏 Thanks to @arikfr, @jezdez, @kravets-levko, @alison985, @kocsmy, @yossi-a, @tdsmith, @nasmithan, @jrbenny35, @sjakthol, @ariarijp and @combineads who contributed to this release.
### Security
* Fix: don't expose Google OAuth client secret. @arikfr
### Changed
* Improve mobile rendering of dashboards and queries. @kocsmy
* UI improvements for favorites and empty state. @arikfr
* Remove unnecessary X at the end of the query search. @kocsmy
* Add server-side sorting to dashboard list. @jezdez
* Sort queries in descending order. @jezdez
* Throw error when non-owner tries to add a user to dashboard permissions. @alison985
* Propagate query execution errors from Celery tasks properly. @alison985
* Reload the route when using the app header search input. @jezdez
### Fixed
* Fix: BigQuery default location is null and not US. @arikfr
* Fix: query embeds are broken. @arikfr
* Fix: typo in Celery log foramt. @ariarijp
* Use QuerySerializer in outdated queries list. @jezdez
* Fix: sometimes widgets are getting zero height. @kravets-levko
* Athena: Switch to simple_json to serialize NaN/Infinity values as nulls. @kravets-levko, @jezdez
* Fix: queries with parameters with no value breaking the scheduler. @arikfr
* Fix: MongoDB query results parser didn't support unicode keys. @arikfr
* Fix: Google Analytics schema wasn't loading in some cases. @arikfr
* Fix: date/time parameters not working as global param @kravets-levko.
* Fix: Widgets crumble when trying to move / resize a widget. @kravets-levko
* Fix: handling rows with "length" field with forOwn method. @yossi-a
* Fix: query selection not working on alert page. @sjakthol
* Fix: query_results for Embedded Parameters (removed deprecated to_dict function). @nasmithan
* Fix: unicode not supported in dashboard search. @combineads
* Fix: unicode not supported in users search. @arikfr
### Other
* Add test for using saved parameters in scheduled queries. @alison985
* Minor code smell cleanup. @jezdez
* Update QueryResultListResource docstring. @tdsmith
* Switch to CirlceCI 2.0 @jrbenny35, @arikfr
* Remove unnecessary init methods. @jezdez
## v5.0.0-Beta - 2018-08-06
This is the first beta of the V5 release (and hopefully the last one). This version includes a lot of exciting new additions along with bug fixes and other changes.
Some notable changes:
* Extensive work on parameters UI:
* New Date Range parameter type.
* UI for creating new parameters.
* Support for Now/Today as default value of date/time parameter.
* Tagging and favorites ⭐️ support for queries and dashboards.
* Users list page was improved (search, additional information) and you can now disable users.
* Query editor improvements: additional keyboard shortcuts and support for searching in query text.
* Visualizations improvements: option to select colors of pie chart sectors, X Axis type auto detect and option to format values, labels and tooltips.
* Data Sources:
* Support for Yandex Metrika and AppMetrika.
* BigQuery: location property support and schema will load all tables now.
* Elasticsearch: stop sending source_content_type parameter which wasn't supported in older versions.
* Started migrating the frontend codebase to React.
And much more!
🙏 Thanks to @kravets-levko, @arikfr, @ariarijp, @alison985, @kyoshidajp, @kocsmy, @denisov-vlad, @deecay, @yuua, @emtwo, @Pablohn26, @sieben, @atharvai, @matsumo, @tdawber, @innovia, @gabrieldutra, @coreyhuinker, @maxv, @sjakthol, @mtrbean and @washort who contributed to this release!
### Added
* #2712: Date/Time Range parameter type (@kravets-levko)
* #2482: Add support for ChatWork Alert Destination. (@matsumo)
* #2678: Explicit "Add Parameter" Button in Query Editor. (@kravets-levko)
* #2513: Add location property to BigQuery data source settings. (@kyoshidajp)
* #2616: Pie chart: support setting pie chart sector colors. (@kravets-levko)
* #2697: Date/Time parameters: support for "Now" as default value. (@kravets-levko)
* #2693: Enable search function in Query Editor. (@arikfr)
* #2573: Tagging and favorites for Queries and Dashboards (@arikfr)
* #2640: Keyboard shortcut to collapse query editor/schema browser (@kravets-levko)
* #2674: Add support for the Chrome Logger extension (@arikfr)
* #2653: Add redash db size to status page (@alison985)
* #2669: Store Athena query id with result metadata (@tdawber)
* #2546: Configuration for incorporating React components (@washort)
* #2533: New datasource: Yandex Metrika & AppMetrika (@denisov-vlad)
* #2536: Chart: formats for values, labels and tooltips (@kravets-levko)
* #2560: Introduce Policy object (@arikfr)
* #2380: Admin should be able to disable a user (@kravets-levko)
* #2509: Show custom date format on settings page (@kyoshidajp)
### Changed
* #2715: Improve users list page (@arikfr)
* #2710: Update Ant variables to fit Redash's style (@kocsmy)
* #2709: Move format button next Add New Param button. (@arikfr)
* #2664: Dashboard shows a spinner when query failed to load (@kravets-levko)
* #2626: Show real status when loading cached query result (@kravets-levko)
* #2663: Set column name implicitly when column name is blank (@ariarijp)
* #2695: Improve Date/DateTime type parameters (@kravets-levko)
* #2694: Block users with disposable email addresses (@arikfr)
* #2687: YAML: changed load to safe_load (@denisov-vlad)
* #2514: Update value parsing for google spreadsheets source (@atharvai)
* #2570: fixes query pagination alignment (@alison985)
* #2584: keep query result pagination out of scroll (@alison985)
* #2647: Improve Script Query Runner (@ariarijp)
* #2583: Query header improvements on widgets (@kocsmy)
* #2671: Save some space (@kocsmy)
* #2658: delaying schema filtering to improve responsiveness (@alison985)
* #2648: Update datasource documentation links (@Pablohn26)
* #2613: Improve Script Query Runner (@ariarijp)
* #2619: data source sort case insensitive (@alison985)
* #2604: Improve Google Spreadsheets Query Runner (@ariarijp)
* #2542: Closes #2541: x-axis improvements. (@emtwo)
* #2590: Remove redundant variables (@ariarijp)
* #2585: Show data only mode: allow to add and delete visualizations (@kravets-levko)
* #2549: Allow get_tables to see views and v10-style partitioned tables (@coreyhuinker)
* #2568: sort datasources alphabetically (@alison985)
* #2444: feat: show error if saml response cannot be parsed (@sjakthol)
* #2554: Display name to be delete (@kyoshidajp)
* #2510: Display confirmation dialog when deleting a item (@kyoshidajp)
* #2518: Design improvements (@kocsmy)
* #2520: Filter data sources in a data source input area (@kyoshidajp)
### Fixed
* #2722: Elasticsearch: Don't send source_content_type parameter. (@arikfr)
* #2719: Remove closing input tags (@maxv)
* #2458: Get all tables in the BigQuery (@kyoshidajp)
* #2698: Make sure we return distinct data source values (@arikfr)
* #2315: Fix: pyHive type matches (@yuua)
* #2638: Dashboard stops rendering when adding widget with empty query (@kravets-levko)
* #2610: Fix export query results output file name (@gabrieldutra)
* #2574: commit query result to db before evaluating alerts (@mtrbean)
* #2580: add break-word wrap to add/edit text box on dashboard (@alison985)
* #2578: Fix connection error when you run "create_tables" (@ariarijp)
* #2572: remove extra menu line if query is archived (@alison985)
* #2526: Fix pivot hide control in dashboards (@deecay)
* #2511: Fixing signed_out.html template (@kocsmy)
* #2523: Frontend: fix boolean field with null value display as null. (@innovia)
### Other
* #2682: Add Zeit's now support to have preview builds for every PR (@arikfr)
* #2668: Upgrade bootstrap script to Redash 4.0.1 (@ariarijp)
* #2639: Add tests for SpreadSheets (@ariarijp)
* #2635: Add tests for Query Results (@ariarijp)
* #2537: Remove trailing semicolon (@sieben)
## v4.0.1 - 2018-05-02
### Added
- Log user's screen resolution. @arikfr
### Changed
- [Redshift] fix the order of columns in the schema browser. @akiray03
- Improve dashboard refresh UX: show previous data while refreshing. @arikfr
### Fixed
- Disable fork button to view_only users. @tonyjiangh
- Hide overflowing data source and alert destination names. @kocsmy
- Login pages were broken on mobile. @kocsmy
- Cohort visualization wasn't rendering if value wasn't properly detected as date. @kravets-levko
- Dashboard filters setting wasn't persisting. @arikfr
- Display nulls and empty values as blank in table numeric fields. @chriszs
- Date column on alerts page is labeled "Created By". @dbravender
- Bootstrap script was breaking due to incompatability with pip 10. @ariarijp
### Other
- Updated README. @kocsmy
## v4.0.0 - 2018-04-16
### Added
- MatterMost alert destination. @alon710
- Full screen view on map visualizations. @deecay
- Choropleth map visualization 🗺. @kravets-levko
- Report Celery queue size. @arikfr
- Load dashboard refresh rate from URL. @arikfr
- Configuration for query refresh intervals. @arikfr
### Changed
- TreasureData: improve query failure message. @toru-takahashi
- Update botocore version (fixes an issue with loading Athena tables). @arikfr
- Changed Map visualization name to "Map (Markers)" to distinguish from the Choropleth one. @arikfr
- Use MongoClient for ReplicaSet connections. @fmy
- Update pymongo version to support newer MongoDB versions. @arikfr
- Changed "his" to "their" in user creation form success message. @tnetennba3
- Show friendly names in dynamic forms labels. @arikfr
- Render safe HTML by default in tables to remain backward compatible. @arikfr
- Apply time limit to alert status checking task. @arikfr
- Plotly: increase Y value accuracy. @arikfr
- close metadata database connection early in the execute query Celery task. @arikfr
### Fixed
- Query page layout gets messed up when clicking on "cancel" in "Do you want to leave this page?" dialog. @kravets-levko
- docker-entrypoint broke for other database names than "postgres". @valentin2105
- (BigQuery) UDF URI was used even if empty. @arikfr
- Show correct Box Plot chart hover data. @deeccay
- Fork button shows in data only view, but not working. @arikfr
- Saving widget sends too much data to the server, sometimes making dashboard save fail. @arikfr
- DynamoDB: always return counter as a number rather than string. @arikfr
- MSSQL: UUID fields were detected as booleans. @arikfr
- The whole dashboard page reloads when clicking on refresh. @arikfr
- Line chart with category x-axis: when some values missing, wrong hints displayed on hover. @kravets-levko
- Second Y-axis not displayed when stacking enabled. @kravets-levko
- Widget with empty contents had extra 40px of white space (paddings of container). @kravets-levko
- Add scrollbars to pivot table widgets. @kravets-levko
- Multiple performance, usability and auto-height related fixes to the dashboard rendering engine (also switched to GridStack). @kravets-levko
- Login form missing on LDAP logging page. @idalin
- Empty state: show connect data source link only to admins. @arikfr
- Dashboard "dancing" widgets (when auto-height enabled). @kravets-levko
### Other
- Webpack: ignore vim swap files. @deecay
## v4.0.0-rc.1 - 2018-03-05
### Added
- Configuration for query refresh intervals.
- [Prometheus] Support for range queries. @jubel-han
- Extensions system based on Python entrypoints. @jezdez
- Funnel visualization. @tonyjiangh
- UI to edit allowed Google OAuth domains. @arikfr
- Empty state for homepage, alerts, queries and dashboards pages. @kocsmy, @arikfr
### Changed
- Maintain widget's auto-height state until it's been resized by the user. @kravets-levko
- Change default table viz width from 4 to 3 columns. @kravets-levko
- When saving dashboard adding or removing widgets, save only modified widgets (with changed size and/or position). @kravets-levko
- Don't allow disabling Password based login if no SSO is enabled. @arikfr
- Always show login page, even if password based login disabled. @arikfr
- Upgrade `sqlparse` to 0.2.4. @ariarijp
- Make sure datetime/number columns in table visualization don't wrap. @kravets-levko
- Explicitly set order of tabs in settings page. @kravets-levko
- User can no longer change the type of a saved visualization. @kravets-levko
- Update docker-compose.yml to restart postgres/redis containers `unless-stopped`. @benmanns
- New default colors for chart visualizations. @kocsmy
- Updated design of all the authentication pages (login, forgot password, etc). @kravets-levko
### Fixed
- Glue schemas with more than 100 tables were showing only first 100 tables. @jezdez
- Long visualizations dind't render scrollbars on some browsers. @kravets-levko
- When the dataset was returning some columns name as non strings, table couldn't be rendered. @kravets-levko
- Missing logos for Prometheus and Snowflake. @kocsmy
- Render correct link to LDAP login on login page. @arikfr
- Sort widgets by column/row to make sure they are placed correctly. @arikfr
- Public dashboards were not rendered due to Javascript error. @kravets-levko
## v4.0.0-beta - 2018-02-14
### Added
- Massive update to the UI/UX of the whole application. @kocsmy, @kravets-levko, @arikfr
- Flexible dashboard layout: resize widgets both vertically and horizonally. @kravets-levko
- Configuration and new options for the table visualization. @kravets-levko
- API to return internal usage events. @arikfr
- Add an option to set a common prefix to the backend logs. @arikfr
- [MongoDB] support nested fields in results. @arikfr
- Cohort visualization: add options and fix rendering logic. @kravets-levko
- Table visualization: `URL` column type. @kravets-levko
- Table visualization: `Image` column type. @kravets-levko
- [BigQuery] show amount of data scanned. @arikfr
- Make dashboard refresh intervals configurable. @arikfr
- Button to insert table/column name from schema into the query text. @kravets-levko
- [Athena] show amount of data scanned. @washort
- [Salesforce] Add setting to set the API version. @mayconbordin
- UI for configuration options (auth, date format, etc). @arikfr
- CLI command to create the root user. @kyoshidajp
- [Redshift] support for loading late binding views in schema browser. @tonyjiangh
- Show user's profile picture and load it from Google when using Google OAuth. @kyoshidajp
- CockroachDB query runner. @yershalom
- MAPD query runner. @cdessanti
- Pie chart: show subplot titles. @deecay
### Changed
- Make trusted header authentication compatible with multiorg mode. @sjakthol
- Update AWS RDS certificate bundle. @arikfr
- Add Prometheus to the default query runners list. @arikfr
- [Athena] update botocore version to support Glue. @arikfr
- Support for quotes passwords in the Redis and Postgres connection URLs. @javier-sanz
- Change the way static assets are served. @arikfr
- [BigQuery] Properly handle RECORD fields in schema (show the nested fields). @arikfr
- Upgrade to Celery 3.1.25 in preparation to Celery 4. @jezdez
- Remove loading indicator when updating query parameter value (before executing). @kravets-levko
- Improvements to the chart visualization (see #2156 for details). @kravets-levko
- Start searching for queries immediately instead of waiting for 3 characters. @kyoshidajp
- Make all references to Elasticsearch be properly capitalized. @kakakakakku
- Use PostgreSQL's FTS/tsvector type for query searches. @jezdez
- [Redshift] Make sslmode configurable. @sjakthol
- Allow passing options to tests Docker command. @arikfr
- Improve error handling mechanism and make error pages friendlier. @kravets-levko, @kocsmy, @arikfr
- Make LDAP settings names more consistent. @gramakri
- [Oracle] support for non SELECT queries. @doddjc21
- Admin can no longer remove themselves from the built-in groups. @negibouze
- Update pie charts font style. @deecay
- Upgrade psycopg2 for support PostgreSQL 10.0. @kyoshidajp
- Convert all stylesheets to LESS. @kravets-levko
- [Elasticsearch] Collect doc_count field from aggregation. @arjan
- Switch to pytest. @jezdez
- Ensure email is case-insensitive. @miketheman
- [Redshift] change default SSL mode to prefer. @arikfr
- Return Redis memory usage in bytes for easier monitoring. @kakakakakku
- create_db command in docker-entrypoint waits for Postgres to become available first. @ariarijp
- [Elasticsearch] set source_content_type on ES queries to support Elasticsearch 6.0. @alexdrans
- Show `-` instead of `Invalid Date` for null values given to `dateTime` filter. @kyoshidajp
### Fixed
- Parameters list was resetting when adding a new parameter. @arikfr
- Don't escape values in non-html columns. @kravets-levko
- Commit SAML user group assignment to the database. @sjakthol
- Update correct settings in SAML settings form. @sjakthol
- Fix Google OAuth login in MULTIORG mode. @shinji19
- Strip annotation from query when path is specified in Script query runner. @ariarijp
- Fix filter headers when there are multiple rows of filters. @kocsmy
- Update query version when changing query data source. @washort
- Fix upgrade script to support changes in CircleCI. @rgjodekerken
- Don't show error indicators after submitting the user form. @bamboo-yujiro
- [Query Results] support unicode column names. @tonyjiangh
- Issue with Google OAuth caused by old pyOpenSSL version. @crooy
- Fix layout of outdated queries admin view. @bamboo-yujiro
- User can't download query results of a new query. @arikfr
- Typo in celery logs format. @ariarijp
- Handling whitespace characters in Query Results data source. @ariarijp
- [MySQL] Close cursor when cancellig the query. @jasonsmithj
## v3.0.0 - 2017-11-13
### Added
- Query Result data source (run queries on query results).
- Athena: option to load schema from Glue catalog. @myouju
- Allow running any command inside the container via the Docker entrypoint script. @jezdez
- Make invitation token max age configurable. @hhamalai
- Redshift: add support for the new ACM root CA.
- Redshift: support for Spectrum (external) tables. @atharvai
- MongoDB: option to set allowDiskUse in queries.
- Option to disable SQLAlchemy connection pool.
- Option to set a time limit on adhoc queries.
- Option to disable sending an invite to a new user.
- Azure SQL Data Warehouse query runner. @kitsuyui
- Prometheus query runner. @yershalom
- Option to set the Flask-Limiter storage engine.
- Option to set UnicodeWriter's error handling method. @fan-t-endo
- PostgreSQL: SSL configuration option. @TylerBrock
- Counter visualization: additional formatting options. @deecay
- Query based drop down parameter. @rohithmenon
- MySQL: multiple queries support & connection timeout.
- Ability to select all in multi-filter. @Posnet
- LDAP (Active Directory) support. @amarjayr
### Changed
- Copy parameters when forking a query. @kyoshidajp
- Prevent using Query API Key with refresh API (previously it was just failing).
- Reduce boilerplate in frontend code.
- Set auto focus in first input items. @kyoshidajp
- Update gunicorn to latest version.
- Make log format configurable.
- Sort series by name.
- Allow setting test file with Docker test run. @meinac
- Use outdated queries count stored already in Redis.
- Show links based on permissions the user have.
- Cassandra: update driver version. @yershalom
- Docker-Compose: update configuration to always restart services. @muddydixon
- Modernize Python 2 code to get ready for Python 3. @cclauss
- Cohort visualization: make it friendlier to use by better handle gaps in data, so it's easier to generate the data needed.
- Use a different markdown library. @alexmuller
- Salesforce: improve error messages we receive from the API. @akiray03
- Custom JS code visualization improvements. @deecay
- DQL: Update version to 0.5.24. @aterreno
- Cassandra: get_schema support for both C* 2.x and 3.x, support for SortedSet type serialization. (@mfouilleul))
- Replace deprecated ng-annotate with babel plugin. @44px
- Update Python dependencies to recent versions. @alison985
- Bootstrap script: create /opt/redash directory only if it doesn't exist. @isomura
- Bootstrap script: make use of REDASH_BASE_PATH variable in setup script. @sylvain
### Fixed
- Require full data source access to fork a query.
- API key of one query could be used to get results of another one.
- Delete group id from user object when deleting the group. @kyoshidajp
- Sorting of X axis wasn't working for Box plot type visualizations. @deecay
- Exporting query results as excel was failing when one of the columns had array data. @kyoshidajp
- Show query editor's Archive/Publish Query drop-down only on saved queries. @cyriac
- Move misplaced configuration in docker-compose.production.yml. @yutannihilation
- MySQL: support UTF8 schema.
- TreasureData queries were failing when returning 0 rows.
- Use series color for Boxplot. @deecay
- Revoke permission should respect to given grantee and access type. @meinac
- Fixed eslint "Cannot read property 'length' of undefined" error. @kravets-levko
- Don't crash query editor when there are unclosed curly brackets.
- Error value in charts wasn't displayed if it was 0.
- Prevent line breaks in EditInPlace description when using Firefox. @alexmuller
- Queries#all_queries was sometimes returning wrong number of queries.
- record_event fails for API events.
- Cancel button on tasks admin page was broken.
- Remove deprecated cx_Oracle types. @queeno
- Textbox widgets were updating their value even when editor was cancelled. @alison985
- Collaborators couldn't edit visualizations or schedule.
- Use series color for error bar. @deecay
- Upgrade script was using the wrong restart command on new AMIs.
## v2.0.1 - 2017-10-22
This is a patch release, that adds support for Redshift ACM certificates (see #2044 for details).
## v2.0.0 - 2017-08-08
### Added
- [Cassandra] Support for UUID serializing and setting protocol version. @mfouilleul
- [BigQuery] Add maximumBillingTier to BigQuery configuration. @dotneet
- Add the propertyOrder field to specify order of data source settings. @rmakulov
- Add Plotly based Boxplot visualization. @deecay
- [Presto] Add: query cancellation support. @fbertsch
- [MongoDB] add $oids JSON extension.
- [PostgreSQL] support for loading materialized views in schema.
- [MySQL] Add option to hide SSL settings.
- [MySQL] support for RDS MySQL and SSL.
- [Google Analytics] support for mcf queries & better errors.
- Add: static enum parameter type. @rockwotj
- Add: option to hide pivot table controls. @deecay
- Retry reload of query results if it had an error.
- [Data Sources] Add: MemSQL query runner. @alexanderlz
- "Dumb" recents option (see #1779 for details)
- Athena: direct query runner using the instead of JDBC proxy. @laughingman7743
- Optionally support parameters in embeds. @ziahamza
- Sorting ability in alerts view.
- Option to change default encoding of CSV writer. @yamamanx
- Ability to set dashboard level filters from UI.
- CLI command to open IPython shell.
- Add link to query page from admin view. @miketheman
- Add the option to write logs to STDOUT instead of STDERR. @eyalzek
- Add limit parameter to tasks API. @alexpekurovsky
- Add SQLAlchemy pool settings.
- Support for category type y axis.
- Add 12 & 24 hours refresh rate option to dashboards.
### Changed
- Upgrade Google API client library for all Google data sources. @ahamino
- [JIRA JQL] change default max results limit from 50 to 1000. @jvanegmond
- Upgrade to newer Plotly version. @deecay
- [Athena] Configuration flag to disable query annotations for Athena. @suemoc
- Ignore extra columns in CSV output. @alexanderlz
- [TreasureData] improve error handling and upgrade client.
- [InfluxDB] simpler test connection query (show databases requires admin).
- [MSSQL] Mark integers as decimals as well, as sometimes decimal columns being returned
with integer column type.
- [Google Spreadsheets] add timeout to requests.
- Sort dashboards list by name. @deecay
- Include Celery task name in statsd metrics.
- Don't include paused datasource's queries in outdated queries count.
- Cohort: handle the case where the value/total might be strings.
- Query results: better type guessing on the client side.
- Counter: support negative indexes to iterate from the end of the results.
- Data sources and destinations configuration: change order of name and type (type first now).
- Show API Key in a modal dialog instead of alert.
- Sentry: upgrade client version.
- Sentry: don't install logging hook.
- Split refresh schemas into separate tasks and add a timeout.
- Execute scheduled queries with parameters using their default value.
- Keep track of last query execution (including failed ones) for scheduling purposes.
- Same view for input on search result page as in header. @44px
- Metrics: report endpoints without dots for metrics.
- Redirect to / when org not found.
- Improve parameters label placement. @44px
- Auto-publish queries when they are named (with option to disable; #1830).
- Show friendly error message in case of duplicate data source name.
- Don't allow saving dashboard with empty name.
- Enable strict checking for Angular DI.
- Disable Angular debug info (should improve performance).
- Update to Webpack 2. @44px
- Remove /forgot endpoint if REDASH_PASSWORD_LOGIN_ENABLED is false. @amarjayr
- Docker: make Gunicorn worker count configurable. @unixwitch
- Snowflake support is no longer enabled by default.
- Enable memory optimization for Excel exporter.
### Fixed
- Fix: set default values in options to enable 'default: True' for checkbox. @rmakulov
- Support MULTI_ORG again.
- [Google Spreadsheets] handle distant future dates.
- [SQLite] better handle utf-8 error messages.
- Fix: don't remove locks for queries with task status of PENDING.
- Only split columns with __/:: that end with filter/MultiFilter.
- Alert notifications fail (sometime) with a SQLAlchemy error.
- Safeguard against empty query results when checking alert status. @danielerapati
- Delete data source doesn't work when query results referenced by queries.
- Fix redirect to /setup on the last setup step. @44px
- Cassandra: use port setting in connection options. @yershalom
- Metrics: table name wasn't found for count queries.
- BigQuery wasn't loading due to bad import.
- DynamicForm component was inserting empty values.
- Clear null values from data source options dictionary.
- /api/session API call wasn't working when multi tenancy enabled
- If column had no type it would use previous column's type.
- Alert destination details were not updating.
- When setting rearm on a new alert, it wasn't persisted.
- Salesforce: sandbox parameter should be optional. @msnider
- Alert page wasn't properly linked from alerts list. @alison985
- PostgreSQL passwords with spaces were not supported. (#1056)
- PivotTable wasn't updating after first save.
## v1.0.3 - 2017-04-18
### Fixed
- Fix: sort by column no longer working.
## v1.0.2 - 2017-04-18
### Fixed
- Fix: favicon wasn't showing up.
- Fix: support for unicode in dashboard tags. @deecay
- Fix: page freezes when rendering large result set.
- Fix: chart embeds were not rendering in PhantomJS.
## v1.0.1 - 2017-04-02
### Added
- Add: bubble charts support.
- Add "Refresh Schema" button to the datasource @44px
- [Data Sources] Add: ATSD query runner @rmakulov
- [Data Sources] Add: SalesForce query runner @msnider
- Add: scheduled query backoff in case of errors @washort
- Add: use results row count as the value for the counter visualization. @deecay
### Changed
- Moved CSV/Excel query results generation code to models. @akiray03
- Add support for filtered data in Pivot table visualization @deecay
- Friendlier labels for archived state of dashboard/query
### Fixed
- Fix: optimize queries to avoid N+1 queries.
- Fix: percent stacking math was wrong. @spasovski
- Fix: set query filter to match value from URL query string. @benmargo
- [Clickhouse] Fix: detection of various data types. @denisov-vlad
- Fix: user can't edit their own alert.
- Fix: angular minification issue in textbox editor and schema browser.
- Fixes to better support IE11 (add polyfill for Object.assign and show vertical scrollbar). @deecay
- Fix: datetime parameters were not using a date picker.
- Fix: Impala schema wasn't loading.
- Fix: query embed dialog close button wasn't working @r0fls
- Fix: make errors from Presto runner JSON-serializable @washort
- Fix: race condition in query task status reporting @washort
- Fix: remove $$hashKey from Pivot table
- Fix: map visualization had severe performance issue.
- Fix: pemrission dialog wasn't rendering.
- Fix: word cloud visualization didn't show column names.
- Fix: wrong timestamps in admin tasks page.
- Fix: page header wasn't updating on dashboards page @MichaelJAndy
- Fix: keyboard shortcuts didn't work in parameter inputs
### Other
- Change default job expiry times to: job lock expire after 12 hours (previously: 6 hours) and Celery task result object expire after 4 hours (previously: 1 hour). @shimpeko
## v1.0.0-rc.2 - 2017-02-22
### Changed
- [#1563](https://github.com/getredash/redash/pull/1563) Send events to webhook as JSON with a schema.
- [#1601] [Presto] friendlier error messages. (@aslotnick)
- Move the query runner unavailable log message to be DEBUG level instead of WARNING, as it was mainly confusing people.
- Remove "Send to Cloud" button from Plotly based visualizations.
- Change Plotly's default hover mode to "Compare".
- [#1612] Change: Improvements to the dashboards list page.
### Fixed
- [#1564] Fix: map visualization column picker wasn't populated. (@janusd)
- [#1597] [SQL Server] Fix: schema wasn't loading on case sensitive servers. (@deecay)
- Fix: dashbonard owner couldn't edit his dashboard.
- Fix: toggle_publish event wasn't logged properly.
- Fix: events with API keys were not logged.
- Fix: share dashboard dialog was broken after code minification.
- Fix: public dashboard endpoint was broken.
- Fix: public dashboard page was broken after code minification.
- Fix: visualization embed page was broken after code minification.
- Fix: schema browser has dark background.
- Fix: Google button missing on invite page.
- Fix: global parameters don't render on dashboards with text boxes.
- Fix: sunburst / Sankey visualizations have bad data.
- Fix: extra whitespace created by the filters component.
- Fix: query results cleanup task was trying to delete query objects.
- Fix: alert subscriptions were not triggered.
- [DynamoDB] Fix: count(*) queries were broken. (@kopanitsa))
- Fix: Redash is using too many database connections.
- Fix: download links were not working in dashboards.
- Fix: the first selection in multi filters was broken in dashboards.
### Other
- [#1555] Change sourcemaps to generate a sourcemap per module. (@44px)
- [#1570] Fix Docker Compose configuration for nginx. (@btmc)
- [#1582] Update Dockerfile to build frontend assets and update the folder ownership.
- Dockerfile: change the uid of the redash user to match host user uid.
- Update npm-shrinkwrap.json file to use http proctocol instead of git. (@deecay)
## v1.0.0-rc.1 - 2017-01-31
This version has two big changes behind the scenes:
* Refactor the frontend to use latest (at the time) Angular version (1.5) along with better frontend pipeline based on)
WebPack.
* Refactor the backend code to use SQLAlchemy and Alembic, for easier migrations/upgrades.)
Along with that we have many fixes, additions, new data sources (Google Analytics, ClickHouse, Amazon Athena, Snowflake)
and fixes to the existing ones (mainly ElasticSearch and Cassandra).
When upgrading make sure to upgrade from version 0.12.0 and update your .env file:
1. If you have local PostreSQL database, you will need to update the URL from `postgresql://redash` to `postgresql:///redash`.
2. Remove the `REDASH_STATIC_ASSETS_PATH` definition.
Make sure to make these changes before running upgrade as otherwise it will fail.
We're releasing a new upgrade script -- see [here](https://redash.io/help-onpremise/maintenance/how-to-upgrade-redash.html) for details.
### Added
- [#1546](https://github.com/getredash/redash/pull/1546) Add: API docstrings (@washort)
- [#1504](https://github.com/getredash/redash/pull/1504) Add: global parameters for dashboards (Tyler Rockwood)
- [#1508](https://github.com/getredash/redash/pull/1508) [Jira JQL] Add: support custom JIRA fields and enhance value mapping (@sseifert)
- [#1530](https://github.com/getredash/redash/pull/1530) Add: Docker based developer workflow (Arik Fraimovich)
- [#1515](https://github.com/getredash/redash/pull/1515) [Python] Add: get_source_schema method (Vladislav Denisov)
- [#1512](https://github.com/getredash/redash/pull/1512) [Python] Add: define more safe_builtins (Vladislav Denisov)
- [#1513](https://github.com/getredash/redash/pull/1513) Add: get_by_id & get_by_name methods for Query and DataSource classes (Vladislav Denisov)
- [#1482](https://github.com/getredash/redash/pull/1482) [Cassandra] Add: schema browser support & explicit protocol version (@yershalom)
- [#1488](https://github.com/getredash/redash/pull/1488) [Data Sources] Add: Snowflake query runner (@arikfr)
- [#1479](https://github.com/getredash/redash/pull/1479) [ElasticSearch] Add: enable schema browser (@adamlwgriffiths)
- [#1475](https://github.com/getredash/redash/pull/1475) [Cassnadra] Added set_keyspace for easier query cassandra (@yershalom)
- [#1468](https://github.com/getredash/redash/pull/1468) [Datasources] Add: Amazon Athena query runner (@arikfr)
- [#1433](https://github.com/getredash/redash/pull/1433) [Charts] Add: errors bands in graphs (@luke14free)
- [#1405](https://github.com/getredash/redash/pull/1405) [Datasources] Add: simple Google Analytics query runner (@denisov-vlad)
- [#1409](https://github.com/getredash/redash/pull/1409) [Datasources] Add: Add query runner for Yandex ClickHouse (@denisov-vlad)
- [#1373](https://github.com/getredash/redash/pull/1373) Add: rate limit the login page (@AntoineAugusti)
### Changed
- [#1549](https://github.com/getredash/redash/pull/1549) Change: disable version counter for queries: (Arik Fraimovich)
- [#1548](https://github.com/getredash/redash/pull/1548) Change: improve UI in small resolution: (Arik Fraimovich)
- [#1547](https://github.com/getredash/redash/pull/1547) Change: Improve drafts UX (Arik Fraimovich)
- [#1540](https://github.com/getredash/redash/pull/1540) [MySQL] Change: faster retrieval of schema (Yaning Zhu)
- [#1517](https://github.com/getredash/redash/pull/1517) [ClickHouse] Change: convert UInt64 columns to integer type (Vladislav Denisov)
- [#1528](https://github.com/getredash/redash/pull/1528) [Vertica] Change: set longer read_timeout (lab79)
- [#1522](https://github.com/getredash/redash/pull/1522) Change: move package.json/webpack.config to root directory (Arik Fraimovich)
- [#1514](https://github.com/getredash/redash/pull/1514) [Athena] Change: enable query annotations (Gaurav Awadhwal)
- [#1525](https://github.com/getredash/redash/pull/1525) Change: update amazon linux bootstrap.sh (Karri Niemelä)
- [#1509](https://github.com/getredash/redash/pull/1509) [Presto/Athena] Change: remove special rule around public schema (@GAwadhwalAtlassian)
- [#1485](https://github.com/getredash/redash/pull/1485) Close #1453: more minimal notification of draft status for query/dashboard (@arikfr)
- [#1474](https://github.com/getredash/redash/pull/1474) [Cassandra] Change: test connection query (@yershalom)
- [#1464](https://github.com/getredash/redash/pull/1464) [Clickhouse] Change: use UTF-8 encoding for POST data (@jaykelin)
- [#1417](https://github.com/getredash/redash/pull/1417) Change: Replace Peewee with SQLAlchemy/Alembic (@arikfr, @washort)
- [#1458](https://github.com/getredash/redash/pull/1458) Change: switch from flask_script to click, add CLI unit tests and upgrade Flask version (@washort)
- [#1438](https://github.com/getredash/redash/pull/1438) [ElasticSearch] Change: use simplejson for better error descriptions (@adamlwgriffiths)
- [#1435](https://github.com/getredash/redash/pull/1435) Whitelisting more builtin primitives (@mattrobenolt)
- [#1376](https://github.com/getredash/redash/pull/1376) Change: upgrade the frontend stack (@arikfr, @luke14free)
- [#1429](https://github.com/getredash/redash/pull/1429) Add missing error check from #1402 (@adamlwgriffiths)
- [#1256](https://github.com/getredash/redash/pull/1256) Change: when forking a query, copy all visualizations (@ninneko)
- [#1421](https://github.com/getredash/redash/pull/1421) Change: [BigQuery] only specify useLegacySQL is it's True (@arikfr)
- [#1353](https://github.com/getredash/redash/pull/1353) Change: make draft status for queries and dashboards toggleable (@washort)
- [#1419](https://github.com/getredash/redash/pull/1419) Change: use redash.utils.json_dumps instead of json.dumps in Python query runner (@ehfeng)
- [#1402](https://github.com/getredash/redash/pull/1402) Change: correctly propagate ElasticSearch errors to the UI (@adamlwgriffiths)
- [#1371](https://github.com/getredash/redash/pull/1371) Change: display user's password reset link to the admin when mail server disabled (@vitorbaptista)
### Fixed
- [#1551](https://github.com/getredash/redash/pull/1551) Fix: flask-admin - exclude created_at/updated_at so models can be saved (Arik Fraimovich)
- [#1545](https://github.com/getredash/redash/pull/1545) [ElasticSearch] Fix: query fails when properties key is missing (hgs847825)
- [#1526](https://github.com/getredash/redash/pull/1526) [ElasticSearch] Fix for #1521 (Adam Griffiths)
- [#1521](https://github.com/getredash/redash/pull/1521) [ElasticSearch] Fix: wrong variable name. (Arik Fraimovich)
- [#1497](https://github.com/getredash/redash/pull/1497) Fix #16: when updating dashboard name refresh dashboards dropdown (@arikfr)
- [#1491](https://github.com/getredash/redash/pull/1491) Fix: DynamoDB test connection was broken (@arikfr)
- [#1487](https://github.com/getredash/redash/pull/1487) Fix #1432: delete visualization sends full visualization body insteadĶ (@arikfr)
- [#1484](https://github.com/getredash/redash/pull/1484) Fix #1457: sort was using the string value (@arikfr)
- [#1478](https://github.com/getredash/redash/pull/1478) [ElasticSearch] Fix: connection test was always succesfful (@adamlwgriffiths)
- [#1440](https://github.com/getredash/redash/pull/1440) Fix: API errors for dashboards with invalid layout data (@whummer)
- [#1427](https://github.com/getredash/redash/pull/1427) [Cassandra] Fix: remove reference to non existing Error class (@arikfr)
- [#1423](https://github.com/getredash/redash/pull/1423) [Cassandra] Fix: cassandra.cluster.Error wasn't imported (@arikfr)
- Fix #1001: queries with a column named "length" were not rendered.
- Fix #578: dashboard list not scrollable.
- Fix #137: add direction indicators when sorting query results.
## v0.12.0 - 2016-11-20
### Added
- 61fe16e #1374: Add: allow '*' in REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN (Allen Short)
- 2f09043 #1113: Add: share modify/access permissions for queries and dashboard (whummer)
- 3db0eea #1341: Add: support for specifying SAML nameid-format (zoetrope)
- b0ecd0e #1343: Add: support for local SAML metadata file (zoetrope)
- 0235d37 #1335: Add: allow changing alert email subject. (Arik Fraimovich)
- 2135dfd #1333: Add: control over y axis min/max values (Arik Fraimovich)
- 49e788a #1328: Add: support for snapshot generation service (Arik Fraimovich)
- 229ca6c #1323: Add: collect runtime metrics for Celery tasks (Arik Fraimovich)
- 931a1f3 #1315: Add: support for loading BigQuery schema (Arik Fraimovich)
- 39b4f9a #1314: Add: support MongoDB SSL connections (Arik Fraimovich)
- ca1ca9b #1312: Add: additional configuration for Celery jobs (Arik Fraimovich)
- fc00e61 #1310: Add: support for date/time with seconds parameters (Arik Fraimovich)
- d72a198 #1307: Add: API to force refresh data source schema (Arik Fraimovich)
- beb89ec #1305: Add: UI to edit dashboard text box widget (Kazuhito Hokamura)
- 808fdd4 #1298: Add: JIRA (JQL) query runner (Arik Fraimovich)
- ff9e844 #1280: Add: configuration flag to disable scheduled queries (Hirotaka Suzuki)
- ef4699a #1269: Add: Google Drive federated tables support in BigQuery query runner (Kurt Gooden)
- 2eeb947 #1236: Add: query runner for Cassandra and ScyllaDB (syerushalmy)
- 10b398e #1249: Add: override slack webhook parameters (mystelynx)
- 2b5e340 #1252: Add: Schema loading support for Presto query runner (using information_schema) (Rohan Dhupelia)
- 2aaf5dd #1250: Add: query snippets feature (Arik Fraimovich)
- 8d8af73 #1226: Add: Sankey visualization (Arik Fraimovich)
- a02edda #1222: Add: additional results format for sunburst visualization (Arik Fraimovich)
- 0e70188 #1213: Add: new sunburst sequence visualization (Arik Fraimovich)
- 9a6d2d7 #1204: Add: show views in schema browser for Vertica data sources (Matthew Carter)
- 600afa5 #1138: Add: ability to register user defined function (UDF) resources for BigQuery DataSource/Query (fabito)
- b410410 #1166: Add: "every 14 days" refresh option (Arik Fraimovich)
- 906365f #967: Add: extend ElasticSearch query_runner to support aggregations (lloydw)
### Changed
- 2de4aa2 #1395: Change: switch to requests in URL query runner (Arik Fraimovich)
- db1a941 #1392: Change: Update documentation links to point at the new location. (Arik Fraimovich)
- 002f794 #1368: Change: added ability to disable auto update in admin views (Arik Fraimovich)
- aa5d14e #1366: Change: improve error message for exception in the Python query runner (deecay)
- 880627c #1355: Change: pass the user object to the run_query method (Arik Fraimovich)
- 23c605b #1342: SAML: specify entity id (zoetrope)
- 015b1dc #1334: Change: allow specifying recipient address when sending email test message (Arik Fraimovich)
- 39aaa2f #1292: Change: improvements to map visualization (Arik Fraimovich)
- b22191b #1332: Change: upgrade Python packages (Arik Fraimovich)
- 23ba98b #1331: Celery: Upgrade Celery to more recent version. (Arik Fraimovich)
- 3283116 #1330: Change: upgrade Requests to latest version. (Arik Fraimovich)
- 39091e0 #1324: Change: add more logging and information for refresh schemas task (Arik Fraimovich)
- 462faea #1316: Change: remove deprecated settings (Arik Fraimovich)
- 73e1837 #1313: Change: more flexible column width calculation (Arik Fraimovich)
- e8eb840 #1279: Change: update bootstrap.sh to support Ubuntu 16.04 (IllusiveMilkman)
- 8cf0252 #1262: Change: upgrade Plot.ly version and switch to smaller build (Arik Fraimovich)
- 0b79fb8 #1306: Change: paginate queries page & add explicit urls. (Arik Fraimovich)
- 41f99f5 #1299: Change: send Content-Type header (application/json) in query results responses (Tsuyoshi Tatsukawa)
- dfb1a20 #1297: Change: update Slack configuration titles. (Arik Fraimovich)
- 8c1056c #1294: Change: don't annotate BigQuery queries (Arik Fraimovich)
- a3cf92e #1289: Change: use key_as_string when available (ElasticSearch query runner) (Arik Fraimovich)
- e155191 #1285: Change: do not display Oracle tablespace name in schema browser (Matthew Carter)
- 6cbc39c #1282: Change: deduplicate Google Spreadsheet columns (Arik Fraimovich)
- 4caf2e3 #1277: Set specific version of cryptography lib (Arik Fraimovich)
- d22f0d4 #1216: Change: bootstrap.sh - use non interactive dist-upgrade (Atsushi Sasaki)
- 19530f4 #1245: Change: switch from CodeMirror to Ace editor (Arik Fraimovich)
- dfb92db #1234: Change: MongoDB query runner set DB name as mandatory (Arik Fraimovich)
- b750843 #1230: Change: annotate Presto queries with metadata (Noriaki Katayama)
- 5b20fe2 #1217: Change: install libffi-dev for Cryptography (Ubuntu setup script) (Atsushi Sasaki)
- a9fac34 #1206: Change: update pymssql version to 2.1.3 (kitsuyui)
- 5d43cbe #1198: Change: add support for Standard SQL in BigQuery query runner (mystelynx)
- 84d0c22 #1193: Change: modify the argument order of moment.add function call (Kenya Yamaguchi)
### Fixed
- d6febb0 #1375: Fix: Download Dataset does not work when not logged in (Joshua Dechant)
- 96553ad #1369: Fix: missing format call in Elasticsearch test method (Adam Griffiths)
- c57c765 #1365: Fix: compare retrieval times in UTC timezone (Allen Short)
- 37dff5f #1360: Fix: connection test was broken for MySQL (ichihara)
- 360028c #1359: Fix: schema loading query for Hive was wrong for non default schema (laughingman7743)
- 7ee41d4 #1358: Fix: make sure all calls to run_query updated with new parameter (Arik Fraimovich)
- 0d94479 #1329: Fix: Redis memory leak. (Arik Fraimovich)
- 7145aa2 #1325: Fix: queries API was doing N+1 queries in most cases (Arik Fraimovich)
- cd2e927 #1311: Fix: BoxPlot visualization wasn't rendering on a dashboard (Arik Fraimovich)
- a562ce7 #1309: Fix: properly render checkboxes in dynamic forms (Arik Fraimovich)
- d48192c #1308: Fix: support for Unicode columns name in Google Spreadsheets (Arik Fraimovich)
- e42f93f #1283: Fix: schema browser was unstable after opening a table (Arik Fraimovich)
- 170bd65 #1272: Fix: TreasureData get_schema method was returning array instead of string as column name (ariarijp)
- 4710c41 #1265: Fix: refresh modal not working for unsaved query (Arik Fraimovich)
- bc3a5ab #1264: Fix: dashboard refresh not working (Arik Fraimovich)
- 6202d09 #1240: Fix: when shared dashboard token not found, return 404 (Wesley Batista)
- 93aac14 #1251: Fix: autocomplete went crazy when database has no autocomplete. (Arik Fraimovich)
- b8eca28 #1246: Fix: support large schemas in schema browser (Arik Fraimovich)
- b781003 #1223: Fix: Alert: when hipchat Alert.name is multibyte character, occur error. (toyama0919)
- 0b928e6 #1227: Fix: Bower install fails in vagrant (Kazuhito Hokamura)
- a411af2 #1232: Fix: don't show warning when query string (parameters value) changes (Kazuhito Hokamura)
- 3dbb5a6 #1221: Fix: sunburst didn't handle all cases of path lengths (Arik Fraimovich)
- a7cc1ee #1218: Fix: updated result not being saved when changing query text. (Arik Fraimovich)
- 0617833 #1215: Fix: email alerts not working (Arik Fraimovich)
- 78f65b1 #1187: Fix: read only users receive the permission error modal in query view (Arik Fraimovich)
- bba801f #1167: Fix the version of setuptools on bootstrap script for Ubuntu (Takuya Arita)
- ce81d69 #1160: Fix indentation in docker-compose-example.yml (Hirofumi Wakasugi)
- dd759fe #1155: Fix: make all configuration values of Oracle required (Arik Fraimovich)
### Docs
- a69ee0c #1225: Fix: RST formatting of the Vagrant documentation (Kazuhito Hokamura)
- 03837c0 #1242: Docs: add warning re. quotes on column names and BigQuery (Ereli)
- 9a98075 #1255: Docs: add documentation for InfluxDB (vishesh92)
- e0485de #1195: Docs: fix typo in maintenance page title (Antoine Augusti)
- 7681d3e #1164: Docs: update permission documentation (Daniel Darabos)
- bcd3670 #1156: Docs: add SSL parameters to nginx configuration (Josh Cox)
## v0.11.1.b2095 - 2016-08-02
This is a hotfix release, which fixes an issue with email alerts in v0.11.0.
## v0.11.0.b2016 - 2016-07-03
The main features of this release are:
- Alert Destinations: ability to define multiple destinations for alert notifications (currently implemented: HipChat, Slack, Webhook and email).
- The long-awaited UI for query parameters (see example in #1069).
Also, this release includes numerous smaller features, improvements, and bug fixes.
A big thank you goes to all who contributed code and documentation in this release: @AntoineAugusti, @James226, @adamlwgriffiths, @alexdebrie, @anthony-coble, @ariarijp, @dheerajrav, @edwardsharp, @machira, @nabilblk, @ninneko, @ordd, @tomerben, @toru-takahashi, @vishesh92, @vorakumar and @whummer.
### Added
- d5e5b24 #1136: Feature: add --org option to all relevant CLI commands. (@adamlwgriffiths)
- 87e25f2 #1129: Feature: support for JSON query formatting (Mongo, ElasticSearch) (@arikfr)
- 6bb2716 #1121: Show error when failing to communicate with server (@arikfr)
- f21276e #1119: Feature: add UI to delete alerts (@arikfr)
- 8656540 #1069: Feature: UI for query parameters (@arikfr)
- 790128c #1067: Feature: word cloud visualization (@anthony-coble)
- 8b73a2b #1098: Feature: UI for alert destinations & new destination types (@alexdebrie)
- 1fbeb5d #1092: Add Heroku support (@adamlwgriffiths)
- f64622d #1089: Add support for serialising UUID type within MSSQL #961 (@James226)
- 857caab #1085: Feature: API to pause a data source (@arikfr)
- 214aa3b #1060: Feature: support configuring user's groups with SAML (@vorakumar)
- e20a005 #1007: Issue#1006: Make bottom margin editable for Chart visualization (@vorakumar)
- 6e0dd2b #1063: Add support for date/time Y axis (@tomerben)
- b5a4a6b #979: Feature: Add CLI to edit group permissions (@ninneko)
- 6d495d2 #1014: Add server-side parameter handling for embeds (@whummer)
- 5255804 #1091: Add caching for queries used in embeds (@whummer)
### Changed
- 0314313 #1149: Presto QueryRunner supports tinyint and smallint (@toru-takahashi)
- 8fa6fdb #1030: Make sure data sources list ordered by id (@arikfr)
- 8df822e #1141: Make create data source button more prominent (@arikfr)
- 96dd811 #1127: Mark basic_auth_password as secret (@adamlwgriffiths)
- ad65391 #1130: Improve Slack notification style (@AntoineAugusti)
- df637e3 #1116: Return meaningful error when there is no cached result. (@arikfr)
- 65635ec #1102: Switch to HipChat V2 API (@arikfr)
- 14fcf01 #1072: Remove counter from the tasks Done tab (as it always shows 50). #1047 (@arikfr)
- 1a1160e #1062: DynamoDB: Better exception handling (@arikfr)
- ed45dcb #1044: Improve vagrant flow (@staritza)
- 8b5dc8e #1036: Add optional block for more scripts in template (@arikfr)
### Fixed
- dbd48e1 #1143: Fix: use the email input type where needed (@ariarijp)
- 7445972 #1142: Fix: dates in filters might be duplicated (@arikfr)
- 5d0ed02 #1140: Fix: Hive should use the enabled variable (@arikfr)
- 392627d #1139: Fix: Impala data source referencing wrong variable (@arikfr)
- c5bfbba #1133: Fix: query scrolling issues (@vishesh92)
- c01d266 #1128: Fix: visualization options not updating after changing type (@arikfr)
- 6bc0e7a #1126: Fix #669: save fails when doing partial save of new query (@arikfr)
- 3ce27b9 #1118: Fix: remove alerts for archived queries (@arikfr)
- 4fabaae #1117: Fix #1052: filter not working for date/time values (@arikfr)
- c107c94 #1077: Fix: install needed dependencies to use Hive in Docker image (@nabilblk)
- abc790c #1115: Fix: allow non integers in alert reference value (@arikfr)
- 4ec473c #1110: Fix #1109: mixed group permissions resulting in wrong permission (@arikfr)
- 1ca5262 #1099: Fix RST syntax for links (@adamlwgriffiths)
- daa6c1c #1096: Fix typo in env variable VERSION_CHECK (@AntoineAugusti)
- cd06d27 #1095: Fix: use create_query permission for new query button. (@ordd)
- 2bc0b27 #1061: Fix: area chart stacking doesn't work (@machira)
- 8c21e91 #1108: Remove potnetially concurrency not safe code form enqueue_query (@arikfr)
- e831218 #1084: Fix #1049: duplicate alerts when data source belongs to multiple groups (@arikfr)
- 6edb0ca #1080: Fix typo (@jeffwidman)
- 64d7538 #1074: Fix: ElasticSearch wasn't using correct type names (@toyama0919)
- 3f90dd9 #1064: Fix: old task trackers were not really removed (@arikfr)
- e10ecd2 #1058: Bring back filters if dashboard filters are enabled (@AntoineAugusti)
- 701035f #1059: Fix: DynamoDB having issues when setting host (@arikfr)
- 2924d4f #1040: Small fixes to visualizations view (@arikfr)
- fec0d5f #1037: Fix: multi filter wasn't working with __ syntax (@dheerajrav)
- b066ce4 #1033: Fix: only ask for notification permissions if wasn't denied (@arikfr)
- 960c416 #1032: Fix: make sure we return dashboards only for current org only (@arikfr)
- b3844d3 #1029: Hive: close connection only if it exists (@arikfr)
### Docs
- 6bb09d8 #1146: Docs: add a link to settings documentation. (@adamlwgriffiths)
- 095e759 #1103: Docs: add section about monitoring (@AntoineAugusti)
- e942486 #1090: Contributing Guide (@arikfr)
- 3037c4f #1066: Docs: command type-o fix. (@edwardsharp)
- 2ee0065 #1038: Add an ISSUE_TEMPLATE.md to direct people at the forum (@arikfr)
- f7322a4 #1021: Vagrant docs: add purging the cache step (@ariarijp)
---
For older releases check the GitHub releases page:
https://github.com/getredash/redash/releases

78
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,78 @@
# Contributing Guide
Thank you for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to Redash. These are guidelines, not rules, please use your best judgement and feel free to propose changes to this document in a pull request.
## Quick Links:
- [Feature Roadmap](https://trello.com/b/b2LUHU7A/redash-roadmap)
- [Feature Requests](https://discuss.redash.io/c/feature-requests)
- [Documentation](https://redash.io/help/)
- [Blog](http://blog.redash.io/)
- [Twitter](https://twitter.com/getredash)
---
:star: If you already here and love the project, please make sure to press the Star button. :star:
---
## Table of Contents
[How can I contribute?](#how-can-i-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements / Feature Requests](#suggesting-enhancements--feature-requests)
- [Pull Requests](#pull-requests)
- [Documentation](#documentation)
- Design?
[Additional Notes](#additional-notes)
- [Release Method](#release-method)
- [Code of Conduct](#code-of-conduct)
## How can I contribute?
### Reporting Bugs
When creating a new bug report, please make sure to:
- Search for existing issues first. If you find a previous report of your issue, please update the existing issue with additional information instead of creating a new one.
- If you are not sure if your issue is really a bug or just some configuration/setup problem, please start a discussion in [the support forum](https://discuss.redash.io/c/support) first. Unless you can provide clear steps to reproduce, it's probably better to start with a thread in the forum and later to open an issue.
- If you still decide to open an issue, please review the template and guidelines and include as much details as possible.
### Suggesting Enhancements / Feature Requests
If you would like to suggest an enhancement or ask for a new feature:
- Please check [the roadmap](https://trello.com/b/b2LUHU7A/redash-roadmap) for existing Trello card for what you want to suggest/ask. If there is, feel free to upvote it to signal interest or add your comments.
- If there is no existing card, open a thread in [the forum](https://discuss.redash.io/c/feature-requests) to start a discussion about what you want to suggest. Try to provide as much details and context as possible and include information about *the problem you want to solve* rather only *your proposed solution*.
### Pull Requests
- **Code contributions are welcomed**. For big changes or significant features, it's usually better to reach out first and discuss what you want to implement and how (we recommend reading: [Pull Request First](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6#.ozlqxvj36)). This to make sure that what you want to implement is aligned with our goals for the project and that no one else is already working on it.
- Include screenshots and animated GIFs in your pull request whenever possible.
- Please add [documentation](#documentation) for new features or changes in functionality along with the code.
- Please follow existing code style:
- Python: we use PEP8 for Python.
- Javascript: we use Airbnb's style guides for [JavaScript](https://github.com/airbnb/javascript#naming-conventions) and [React](https://github.com/airbnb/javascript/blob/master/react) (currently we don't follow Airbnb's convention for naming files, but we're gradually fixing this). To make it automatic and easy, we recommend using [Prettier](https://github.com/prettier/prettier).
### Documentation
The project's documentation can be found at [https://redash.io/help/](https://redash.io/help/). The [documentation sources](https://github.com/getredash/website/tree/master/website/_kb) are hosted on GitHub. To contribute edits / new pages, you can use GitHub's interface. Click the "Edit on GitHub" link on the documentation page to quickly open the edit interface.
## Additional Notes
### Release Method
We publish a stable release every ~2 months, although the goal is to get to a stable release every month. You can see the change log on [GitHub releases page](http://github.com/getredash/redash/releases).
Every build of the master branch updates the latest *RC release*. These releases are usually stable, but might contain regressions and therefore recommended for "advanced users" only.
When we release a new stable release, we also update the *latest* Docker image tag, the EC2 AMIs and GCE images.
## Code of Conduct
This project adheres to the Contributor Covenant [code of conduct](http://redash.io/community/code_of_conduct). By participating, you are expected to uphold this code. Please report unacceptable behavior to team@redash.io.

View File

@@ -1,47 +1,14 @@
FROM ubuntu:trusty
MAINTAINER Di Wu <diwu@yelp.com>
FROM redash/base:latest
# Ubuntu packages
RUN apt-get update && \
apt-get install -y python-pip python-dev curl build-essential pwgen libffi-dev sudo git-core wget && \
# Postgres client
apt-get -y install libpq-dev postgresql-client && \
# Additional packages required for data sources:
apt-get install -y libssl-dev libmysqlclient-dev
# We first copy only the requirements file, to avoid rebuilding on every file
# change.
COPY requirements.txt requirements_dev.txt requirements_all_ds.txt ./
RUN pip install -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt
# Users creation
RUN useradd --system --comment " " --create-home redash
COPY . ./
RUN npm install && npm run build && rm -rf node_modules
RUN chown -R redash /app
USER redash
# Pip requirements for all data source types
RUN pip install -U setuptools && \
pip install supervisor==3.1.2
# Download latest source and extract into /opt/redash/current
# COPY setup/latest_release_url.py /tmp/latest_release_url.py
# RUN wget $(python /tmp/latest_release_url.py) -O redash.tar.gz && \
# mkdir -p /opt/redash/current && \
# tar -C /opt/redash/current -xvf redash.tar.gz && \
# rm redash.tar.gz
COPY . /opt/redash/current
# Setting working directory
WORKDIR /opt/redash/current
# Install project specific dependencies
RUN pip install -r requirements_all_ds.txt && \
pip install -r requirements.txt
# Setup supervisord
RUN mkdir -p /opt/redash/supervisord && \
mkdir -p /opt/redash/logs && \
cp /opt/redash/current/setup/files/supervisord_docker.conf /opt/redash/supervisord/supervisord.conf
# Fix permissions
RUN chown -R redash /opt/redash
# Expose ports
EXPOSE 5000
EXPOSE 9001
# Startup script
CMD ["supervisord", "-c", "/opt/redash/supervisord/supervisord.conf"]
ENTRYPOINT ["/app/bin/docker-entrypoint"]
CMD ["server"]

19
LICENSE
View File

@@ -1,4 +1,5 @@
Copyright 2013 DoAT. All rights reserved.
Copyright (c) 2013-2018, Arik Fraimovich.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
@@ -10,17 +11,13 @@ are permitted provided that the following conditions are met:
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED “AS IS” WITHOUT ANY WARRANTIES WHATSOEVER.
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF NON INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE HEREBY DISCLAIMED. IN NO EVENT SHALL DoAT OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of
the authors and should not be interpreted as representing official policies,
either expressed or implied, of DoAT.

View File

@@ -1,23 +0,0 @@
NAME=redash
VERSION=`python ./manage.py version`
FULL_VERSION=$(VERSION)+b$(CIRCLE_BUILD_NUM)
BASE_VERSION=$(shell python ./manage.py version | cut -d + -f 1)
# VERSION gets evaluated every time it's referenced, therefore we need to use VERSION here instead of FULL_VERSION.
FILENAME=$(CIRCLE_ARTIFACTS)/$(NAME).$(VERSION).tar.gz
deps:
cd rd_ui && npm install
cd rd_ui && npm install -g bower grunt-cli
cd rd_ui && bower install
cd rd_ui && grunt build
pack:
sed -ri "s/^__version__ = '([0-9.]*)'/__version__ = '$(FULL_VERSION)'/" redash/__init__.py
tar -zcv -f $(FILENAME) --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="rd_ui/node_modules" --exclude="rd_ui/dist/bower_components" --exclude="rd_ui/app" *
upload:
python bin/release_manager.py $(CIRCLE_SHA1) $(BASE_VERSION) $(FILENAME)
test:
nosetests --with-coverage --cover-package=redash tests/
#cd rd_ui && grunt test

View File

@@ -1 +0,0 @@
web: honcho start -f Procfile.heroku -p $PORT

View File

@@ -1,2 +0,0 @@
web: ./manage.py runserver -p $PORT --host 0.0.0.0
worker: ./bin/run celery worker --app=redash.worker --beat -Qqueries,celery,scheduled_queries

View File

@@ -1,2 +0,0 @@
web: ./manage.py runserver -p $PORT --host 0.0.0.0 -d -r
worker: ./bin/run celery worker --app=redash.worker --beat -Qqueries,celery,scheduled_queries

View File

@@ -1,52 +1,50 @@
<p align="center">
<img title="re:dash" src='http://redash.io/static/img/redash_logo.png' width="200px"/>
<img title="Redash" src='https://redash.io/assets/images/logo.png' width="200px"/>
</p>
<p align="center">
<img title="Build Status" src='https://circleci.com/gh/EverythingMe/redash.png?circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040'/>
<img title="Build Status" src='https://circleci.com/gh/getredash/redash.png?circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040'/>
</p>
**_re:dash_** is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.
[![Documentation](https://img.shields.io/badge/docs-redash.io/help-brightgreen.svg)](https://redash.io/help/)
Prior to **_re:dash_**, we tried to use traditional BI suites and discovered a set of bloated, technically challenged and slow tools/flows. What we were looking for was a more hacker'ish way to look at data, so we built one.
**_Redash_** is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.
**_re:dash_** was built to allow fast and easy access to billions of records, that we process and collect using Amazon Redshift ("petabyte scale data warehouse" that "speaks" PostgreSQL).
Today **_re:dash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite,
Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
Prior to **_Redash_**, we tried to use traditional BI suites and discovered a set of bloated, technically challenged and slow tools/flows. What we were looking for was a more hacker'ish way to look at data, so we built one.
**_re:dash_** consists of two parts:
**_Redash_** was built to allow fast and easy access to billions of records, that we process and collect using Amazon Redshift ("petabyte scale data warehouse" that "speaks" PostgreSQL).
Today **_Redash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite, Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
**_Redash_** consists of two parts:
1. **Query Editor**: think of [JS Fiddle](http://jsfiddle.net) for SQL queries. It's your way to share data in the organization in an open way, by sharing both the dataset and the query that generated it. This way everyone can peer review not only the resulting dataset but also the process that generated it. Also it's possible to fork it and generate new datasets and reach new insights.
2. **Dashboards/Visualizations**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently it supports charts, pivot table and cohorts.
2. **Visualizations and Dashboards**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently Redash supports charts, pivot table, cohorts and [more](https://redash.io/help/user-guide/visualizations/visualization-types).
**_re:dash_** is a work in progress and has its rough edges and way to go to fulfill its full potential. The Query Editor part is quite solid, but the visualizations need more work to enrich them and to make them more user friendly.
## Demo
![Screenshots](https://raw.github.com/EverythingMe/redash/screenshots/screenshots.gif)
You can try out the demo instance: http://demo.redash.io/ (login with any Google account).
<img src="https://raw.githubusercontent.com/getredash/website/8e820cd02c73a8ddf4f946a9d293c54fd3fb08b9/website/_assets/images/redash-anim.gif" width="80%"/>
## Getting Started
* [Setting up re:dash instance](http://redash.io/deployment/setup.html) (includes links to ready made AWS/GCE images).
* Additional documentation in the [Wiki](https://github.com/everythingme/redash/wiki).
* [Setting up Redash instance](https://redash.io/help/open-source/setup) (includes links to ready made AWS/GCE images).
* [Documentation](https://redash.io/help/).
## Supported Data Sources
## Getting help
Redash supports more than 25 [data sources](https://redash.io/help/data-sources/supported-data-sources).
* [Google Group (mailing list)](https://groups.google.com/forum/#!forum/redash-users): the best place to get updates about new releases or ask general questions.
* Find us [on gitter](https://gitter.im/EverythingMe/redash#) (chat).
* Contact Arik, the maintainer directly: arik@everything.me.
## Getting Help
## Roadmap
TBD.
* Issues: https://github.com/getredash/redash/issues
* Discussion Forum: https://discuss.redash.io/
* Slack: http://slack.redash.io/
## Reporting Bugs and Contributing Code
* Want to report a bug or request a feature? Please open [an issue](https://github.com/everythingme/redash/issues/new).
* Want to help us build **_re:dash_**? Fork the project and make a pull request. We need all the help we can get!
* Want to report a bug or request a feature? Please open [an issue](https://github.com/getredash/redash/issues/new).
* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/dev/guide.html), and make a pull request. We need all the help we can get!
## Security
Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use [this PGP key](https://keybase.io/arikfr/key.asc).
## License
See [LICENSE](https://github.com/EverythingMe/redash/blob/master/LICENSE) file.
BSD-2-Clause.

11
Vagrantfile vendored
View File

@@ -1,11 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "redash/dev"
config.vm.synced_folder "./", "/opt/redash/current"
config.vm.network "forwarded_port", guest: 5000, host: 9001
end

96
bin/docker-entrypoint Executable file
View File

@@ -0,0 +1,96 @@
#!/bin/bash
set -e
worker() {
WORKERS_COUNT=${WORKERS_COUNT:-2}
QUEUES=${QUEUES:-queries,scheduled_queries,celery}
echo "Starting $WORKERS_COUNT workers for queues: $QUEUES..."
exec /usr/local/bin/celery worker --app=redash.worker -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
}
scheduler() {
WORKERS_COUNT=${WORKERS_COUNT:-1}
QUEUES=${QUEUES:-celery}
echo "Starting scheduler and $WORKERS_COUNT workers for queues: $QUEUES..."
exec /usr/local/bin/celery worker --app=redash.worker --beat -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
}
server() {
exec /usr/local/bin/gunicorn -b 0.0.0.0:5000 --name redash -w${REDASH_WEB_WORKERS:-4} redash.wsgi:app
}
create_db() {
exec /app/manage.py database create_tables
}
help() {
echo "Redash Docker."
echo ""
echo "Usage:"
echo ""
echo "server -- start Redash server (with gunicorn)"
echo "worker -- start Celery worker"
echo "scheduler -- start Celery worker with a beat (scheduler) process"
echo ""
echo "shell -- open shell"
echo "dev_server -- start Flask development server with debugger and auto reload"
echo "create_db -- create database tables"
echo "manage -- CLI to manage redash"
echo "tests -- run tests"
}
tests() {
export REDASH_DATABASE_URL="postgresql://postgres@postgres/tests"
if [ $# -eq 0 ]; then
TEST_ARGS=tests/
else
TEST_ARGS=$@
fi
exec pytest $TEST_ARGS
}
case "$1" in
worker)
shift
worker
;;
server)
shift
server
;;
scheduler)
shift
scheduler
;;
dev_server)
export FLASK_DEBUG=1
exec /app/manage.py runserver --debugger --reload -h 0.0.0.0
;;
shell)
exec /app/manage.py shell
;;
create_db)
create_db
;;
manage)
shift
exec /app/manage.py $*
;;
tests)
shift
tests $@
;;
help)
shift
help
;;
*)
exec "$@"
;;
esac

35
bin/get_changes.py Normal file
View File

@@ -0,0 +1,35 @@
#!/bin/env python
import sys
import re
import subprocess
def get_change_log(previous_sha):
args = ['git', '--no-pager', 'log', '--merges', '--grep', 'Merge pull request', '--pretty=format:"%h|%s|%b|%p"', 'master...{}'.format(previous_sha)]
log = subprocess.check_output(args)
changes = []
for line in log.split('\n'):
try:
sha, subject, body, parents = line[1:-1].split('|')
except ValueError:
continue
try:
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
pull_request = " #{}".format(pull_request)
except Exception as ex:
pull_request = ""
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
changes.append("{}{}: {} ({})".format(sha, pull_request, body.strip(), author))
return changes
if __name__ == '__main__':
previous_sha = sys.argv[1]
changes = get_change_log(previous_sha)
for change in changes:
print change

8
bin/pack Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
NAME=redash
VERSION=$(python ./manage.py version)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
FILENAME=$NAME.$FULL_VERSION.tar.gz
sed -ri "s/^__version__ = '([A-Za-z0-9.-]*)'/__version__ = '$FULL_VERSION'/" redash/__init__.py
tar -zcv -f $FILENAME --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *

18
bin/pre_compile Normal file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Heroku pre_compile script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd $DIR/..
# heroku requires cffi to be in requirements.txt in order for libffi to be installed.
# https://github.com/heroku/heroku-buildpack-python/blob/master/bin/steps/cryptography
# to avoid making it a requirement for other build systems, we'll inject it now
# into the requirements.txt file
# Remove Heroku unsupported Python packages:
grep -v -E "^(pymssql|thrift|sasl|pyhive)" requirements_all_ds.txt >> requirements.txt
# make the heroku Procfile the active one
cp Procfile.heroku Procfile
popd

View File

@@ -1,3 +1,4 @@
from __future__ import print_function
import os
import sys
import json
@@ -7,7 +8,7 @@ import requests
github_token = os.environ['GITHUB_TOKEN']
auth = (github_token, 'x-oauth-basic')
repo = 'EverythingMe/redash'
repo = 'getredash/redash'
def _github_request(method, path, params=None, headers={}):
if not path.startswith('https://api.github.com'):
@@ -63,7 +64,7 @@ def upload_asset(release, filepath):
headers = {'Content-Type': 'application/gzip'}
response = requests.post(upload_url, file_content, params={'name': filename}, headers=headers, auth=auth, verify=False)
if response.status_code != 201: # not 200/201/...
if response.status_code != 201: # not 200/201/...
raise exception_from_error('Failed uploading asset', response)
return response
@@ -95,7 +96,7 @@ def get_changelog(commit_sha):
try:
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
pull_request = " #{}".format(pull_request)
except Exception, ex:
except Exception as ex:
pull_request = ""
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
@@ -124,7 +125,7 @@ def update_release(version, build_filepath, commit_sha):
else:
release = create_release(version, commit_sha)
print "Using release id: {}".format(release['id'])
print("Using release id: {}".format(release['id']))
remove_previous_builds(release)
response = upload_asset(release, build_filepath)
@@ -135,8 +136,8 @@ def update_release(version, build_filepath, commit_sha):
if response.status_code != 200:
raise exception_from_error("Failed updating release description", response)
except Exception, ex:
print ex
except Exception as ex:
print(ex)
if __name__ == '__main__':
commit_sha = sys.argv[1]

242
bin/upgrade Executable file
View File

@@ -0,0 +1,242 @@
#!/usr/bin/env python
import urllib
import argparse
import os
import subprocess
import sys
from collections import namedtuple
from fnmatch import fnmatch
import requests
try:
import semver
except ImportError:
print("Missing required library: semver.")
exit(1)
REDASH_HOME = os.environ.get('REDASH_HOME', '/opt/redash')
CURRENT_VERSION_PATH = '{}/current'.format(REDASH_HOME)
def run(cmd, cwd=None):
if not cwd:
cwd = REDASH_HOME
return subprocess.check_output(cmd, cwd=cwd, shell=True, stderr=subprocess.STDOUT)
def confirm(question):
reply = str(raw_input(question + ' (y/n): ')).lower().strip()
if reply[0] == 'y':
return True
if reply[0] == 'n':
return False
else:
return confirm("Please use 'y' or 'n'")
def version_path(version_name):
return "{}/{}".format(REDASH_HOME, version_name)
END_CODE = '\033[0m'
def colored_string(text, color):
if sys.stdout.isatty():
return "{}{}{}".format(color, text, END_CODE)
else:
return text
def h1(text):
print(colored_string(text, '\033[4m\033[1m'))
def green(text):
print(colored_string(text, '\033[92m'))
def red(text):
print(colored_string(text, '\033[91m'))
class Release(namedtuple('Release', ('version', 'download_url', 'filename', 'description'))):
def v1_or_newer(self):
return semver.compare(self.version, '1.0.0-alpha') >= 0
def is_newer(self, version):
return semver.compare(self.version, version) > 0
@property
def version_name(self):
return self.filename.replace('.tar.gz', '')
def get_latest_release_from_ci():
response = requests.get('https://circleci.com/api/v1.1/project/github/getredash/redash/latest/artifacts?branch=master')
if response.status_code != 200:
exit("Failed getting releases (status code: %s)." % response.status_code)
tarball_asset = filter(lambda asset: asset['url'].endswith('.tar.gz'), response.json())[0]
filename = urllib.unquote(tarball_asset['pretty_path'].split('/')[-1])
version = filename.replace('redash.', '').replace('.tar.gz', '')
release = Release(version, tarball_asset['url'], filename, '')
return release
def get_release(channel):
if channel == 'ci':
return get_latest_release_from_ci()
response = requests.get('https://version.redash.io/api/releases?channel={}'.format(channel))
release = response.json()[0]
filename = release['download_url'].split('/')[-1]
release = Release(release['version'], release['download_url'], filename, release['description'])
return release
def link_to_current(version_name):
green("Linking to current version...")
run('ln -nfs {} {}'.format(version_path(version_name), CURRENT_VERSION_PATH))
def restart_services():
# We're doing this instead of simple 'supervisorctl restart all' because
# otherwise it won't notice that /opt/redash/current pointing at a different
# directory.
green("Restarting...")
try:
run('sudo /etc/init.d/redash_supervisord restart')
except subprocess.CalledProcessError as e:
run('sudo service supervisor restart')
def update_requirements(version_name):
green("Installing new Python packages (if needed)...")
new_requirements_file = '{}/requirements.txt'.format(version_path(version_name))
install_requirements = False
try:
run('diff {}/requirements.txt {}'.format(CURRENT_VERSION_PATH, new_requirements_file)) != 0
except subprocess.CalledProcessError as e:
if e.returncode != 0:
install_requirements = True
if install_requirements:
run('sudo pip install -r {}'.format(new_requirements_file))
def apply_migrations(release):
green("Running migrations (if needed)...")
if not release.v1_or_newer():
return apply_migrations_pre_v1(release.version_name)
run("sudo -u redash bin/run ./manage.py db upgrade", cwd=version_path(release.version_name))
def find_migrations(version_name):
current_migrations = set([f for f in os.listdir("{}/migrations".format(CURRENT_VERSION_PATH)) if fnmatch(f, '*_*.py')])
new_migrations = sorted([f for f in os.listdir("{}/migrations".format(version_path(version_name))) if fnmatch(f, '*_*.py')])
return [m for m in new_migrations if m not in current_migrations]
def apply_migrations_pre_v1(version_name):
new_migrations = find_migrations(version_name)
if new_migrations:
green("New migrations to run: ")
print(', '.join(new_migrations))
else:
print("No new migrations in this version.")
if new_migrations and confirm("Apply new migrations? (make sure you have backup)"):
for migration in new_migrations:
print("Applying {}...".format(migration))
run("sudo sudo -u redash PYTHONPATH=. bin/run python migrations/{}".format(migration), cwd=version_path(version_name))
def download_and_unpack(release):
directory_name = release.version_name
green("Downloading release tarball...")
run('sudo wget --header="Accept: application/octet-stream" -O {} {}'.format(release.filename, release.download_url))
green("Unpacking to: {}...".format(directory_name))
run('sudo mkdir -p {}'.format(directory_name))
run('sudo tar -C {} -xvf {}'.format(directory_name, release.filename))
green("Changing ownership to redash...")
run('sudo chown redash {}'.format(directory_name))
green("Linking .env file...")
run('sudo ln -nfs {}/.env {}/.env'.format(REDASH_HOME, version_path(directory_name)))
def current_version():
real_current_path = os.path.realpath(CURRENT_VERSION_PATH).replace('.b', '+b')
return real_current_path.replace(REDASH_HOME + '/', '').replace('redash.', '')
def verify_minimum_version():
green("Current version: " + current_version())
if semver.compare(current_version(), '0.12.0') < 0:
red("You need to have Redash v0.12.0 or newer to upgrade to post v1.0.0 releases.")
green("To upgrade to v0.12.0, run the upgrade script set to the legacy channel (--channel legacy).")
exit(1)
def show_description_and_confirm(description):
if description:
print(description)
if not confirm("Continue with upgrade?"):
red("Cancelling upgrade.")
exit(1)
def verify_newer_version(release):
if not release.is_newer(current_version()):
red("The found release is not newer than your current deployed release ({}).".format(current_version()))
if not confirm("Continue with upgrade?"):
red("Cancelling upgrade.")
exit(1)
def deploy_release(channel):
h1("Starting Redash upgrade:")
release = get_release(channel)
green("Found version: {}".format(release.version))
if release.v1_or_newer():
verify_minimum_version()
verify_newer_version(release)
show_description_and_confirm(release.description)
try:
download_and_unpack(release)
update_requirements(release.version_name)
apply_migrations(release)
link_to_current(release.version_name)
restart_services()
green("Done! Enjoy.")
except subprocess.CalledProcessError as e:
red("Failed running: {}".format(e.cmd))
red("Exit status: {}\nOutput:\n{}".format(e.returncode, e.output))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("--channel", help="The channel to get release from (default: stable).", default='stable')
args = parser.parse_args()
deploy_release(args.channel)

View File

@@ -1,35 +0,0 @@
machine:
node:
version:
0.10.24
python:
version:
2.7.3
dependencies:
pre:
- wget http://downloads.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.5/optipng-0.7.5.tar.gz
- tar xvf optipng-0.7.5.tar.gz
- cd optipng-0.7.5; ./configure; make; sudo checkinstall -y;
- make deps
- pip install -r requirements_dev.txt
- pip install -r requirements.txt
cache_directories:
- rd_ui/node_modules/
- rd_ui/app/bower_components/
test:
override:
- make test
post:
- make pack
deployment:
github:
branch: master
commands:
- make upload
notify:
webhooks:
- url: https://webhooks.gitter.im/e/895d09c3165a0913ac2f
general:
branches:
ignore:
- gh-pages

10
client/.babelrc Normal file
View File

@@ -0,0 +1,10 @@
{
"presets": ["env", "react", "stage-2"],
"plugins": [
"angularjs-annotate",
"transform-object-assign",
["babel-plugin-transform-builtin-extend", {
"globals": ["Error"]
}]
]
}

3
client/.eslintignore Normal file
View File

@@ -0,0 +1,3 @@
build/*.js
config/*.js
node_modules

41
client/.eslintrc.js Normal file
View File

@@ -0,0 +1,41 @@
module.exports = {
root: true,
extends: "airbnb",
settings: {
"import/resolver": "webpack"
},
parser: "babel-eslint",
env: {
"browser": true,
"node": true
},
rules: {
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'no-param-reassign': 0,
'no-mixed-operators': 0,
'no-underscore-dangle': 0,
"prefer-destructuring": "off",
"prefer-template": "off",
"no-restricted-properties": "off",
"no-restricted-globals": "off",
"no-multi-assign": "off",
"no-lonely-if": "off",
"consistent-return": "off",
"no-control-regex": "off",
"react/jsx-filename-extension": "off",
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"react/prefer-stateless-function": "warn",
"react/forbid-prop-types": "warn",
"react/prop-types": "warn",
"jsx-a11y/anchor-is-valid": "off",
"max-len": ['error', 120, 2, {
ignoreUrls: true,
ignoreComments: false,
ignoreRegExpLiterals: true,
ignoreStrings: true,
ignoreTemplateLiterals: true,
}]
}
};

1
client/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
dist

View File

@@ -0,0 +1,69 @@
body {
padding-top: 0px !important;
background-color: #FFFFFF;
}
.logo-container {
background-color: #668899;
display: table;
width: 100%;
padding: 10px;
}
.content-container {
background-color: white;
display: table;
width: 100%;
padding: 10px;
height: calc(100vh - 116px);
}
@media (min-width: 992px) {
.content-container {
height: 100%;
width: 60%;
float: left;
}
.logo-container {
height: 100%;
width: 40%;
float: right;
}
}
.login-or {
position: relative;
font-size: 18px;
color: #aaa;
margin-top: 20px;
margin-bottom: 20px;
padding-top: 10px;
padding-bottom: 10px;
}
.span-or {
display: block;
position: absolute;
left: 50%;
top: -2px;
margin-left: -25px;
background-color: #fff;
width: 50px;
text-align: center;
}
.hr-or {
background-color: #cdcdcd;
height: 1px;
margin-top: 0px !important;
margin-bottom: 0px !important;
}
img.login-button {
width: 250px;
display: block;
margin-left: auto;
margin-right: auto;
}

Binary file not shown.

View File

@@ -0,0 +1,593 @@
<?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="robotobold" horiz-adv-x="1156" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="510" />
<glyph unicode="&#xfb01;" horiz-adv-x="1249" d="M20 877v205h161v74q0 204 124.5 314.5t350.5 110.5q78 0 154 -15.5t176 -44.5l-42 -230q-73 22 -132.5 34t-136.5 12q-101 0 -151.5 -46t-50.5 -135v-74h213v-205h-213v-877h-292v877h-161zM829 0v1082h292v-1082h-292z" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="510" />
<glyph unicode=" " horiz-adv-x="510" />
<glyph unicode="&#x09;" horiz-adv-x="510" />
<glyph unicode="&#xa0;" horiz-adv-x="510" />
<glyph unicode="!" horiz-adv-x="557" d="M134 0v256h292v-256h-292zM134 502v954h292v-954h-292z" />
<glyph unicode="&#x22;" horiz-adv-x="656" d="M50 1039v524h230v-275l-102 -249h-128zM376 1039v524h230v-275l-102 -249h-128z" />
<glyph unicode="#" horiz-adv-x="1219" d="M48 410v169h256l51 290h-232v171h262l73 416h183l-73 -416h192l74 416h183l-73 -416h220v-171h-250l-51 -290h225v-169h-254l-72 -410h-184l72 410h-192l-71 -410h-184l72 410h-227zM488 579h191l51 290h-192z" />
<glyph unicode="$" horiz-adv-x="1175" d="M96 449l2 5h285q0 -134 61.5 -192t156.5 -58q91 0 139.5 48.5t48.5 130.5q0 81 -46.5 132t-159.5 95q-222 81 -329.5 180.5t-107.5 280.5q0 168 107.5 275.5t289.5 126.5v215h159v-217q176 -26 276.5 -147t98.5 -314l-3 -5h-285q0 118 -48.5 182t-132.5 64 q-86 0 -128 -49.5t-42 -131.5q0 -78 44.5 -126.5t163.5 -95.5q221 -87 327.5 -186t106.5 -277q0 -174 -107 -278t-291 -123v-198h-159v197q-187 19 -309 132.5t-118 333.5z" />
<glyph unicode="%" horiz-adv-x="1513" d="M95 1099v77q0 129 83.5 215t232.5 86q151 0 234 -85.5t83 -215.5v-77q0 -129 -83 -214t-232 -85q-150 0 -234 85t-84 214zM289 1099q0 -58 32 -97.5t92 -39.5q58 0 89.5 39.5t31.5 97.5v77q0 58 -32 98.5t-91 40.5t-90.5 -40.5t-31.5 -98.5v-77zM319 184l711 1138 l142 -75l-711 -1138zM791 280v77q0 128 84 214t233 86q150 0 233.5 -85.5t83.5 -214.5v-77q0 -130 -83 -215t-232 -85q-150 0 -234.5 85.5t-84.5 214.5zM985 280q0 -57 34.5 -97.5t90.5 -40.5q65 0 93 37.5t28 100.5v77q0 57 -32 97.5t-91 40.5q-60 0 -91.5 -40.5 t-31.5 -97.5v-77z" />
<glyph unicode="&#x26;" horiz-adv-x="1346" d="M61 392q0 118 65 203.5t198 178.5q-68 92 -101.5 168t-33.5 155q0 173 108 276.5t289 103.5q159 0 258.5 -98.5t99.5 -238.5q0 -98 -49 -179t-134 -142l-93 -66l276 -322q36 60 56 130t20 148h218q0 -138 -34 -254t-104 -206l208 -244l-2 -5h-324l-77 89 q-85 -55 -175 -82.5t-193 -27.5q-218 0 -347 114.5t-129 298.5zM353 407q0 -89 55 -146.5t144 -57.5q53 0 106 13.5t102 40.5l-300 348l-19 -13q-51 -48 -69.5 -93.5t-18.5 -91.5zM450 1100q0 -43 21.5 -88.5t64.5 -100.5l86 56q56 36 75.5 74t19.5 83q0 50 -36.5 89 t-95.5 39q-65 0 -100 -43.5t-35 -108.5z" />
<glyph unicode="'" horiz-adv-x="330" d="M50 1008v552h230v-269l-102 -283h-128z" />
<glyph unicode="(" horiz-adv-x="711" d="M124 570v22q0 392 152 665.5t344 354.5h6l53 -146q-131 -98 -220 -316t-89 -556v-26q0 -339 89 -556.5t220 -318.5l-53 -143h-6q-192 81 -344 354t-152 666z" />
<glyph unicode=")" horiz-adv-x="713" d="M31 -307q129 98 219 317t90 558v26q0 336 -91 556.5t-218 319.5l54 142h6q194 -80 352.5 -359t158.5 -661v-22q0 -383 -158.5 -661.5t-352.5 -358.5h-6z" />
<glyph unicode="*" horiz-adv-x="908" d="M27 1055l57 177l297 -123l-18 347h187l-19 -353l291 120l56 -180l-306 -89l200 -265l-152 -110l-174 290l-173 -281l-153 106l209 272z" />
<glyph unicode="+" horiz-adv-x="1117" d="M56 560v252h362v394h276v-394h360v-252h-360v-414h-276v414h-362z" />
<glyph unicode="," horiz-adv-x="528" d="M63 -302l70 324v228h284v-237l-159 -315h-195z" />
<glyph unicode="-" horiz-adv-x="801" d="M113 510v225h564v-225h-564z" />
<glyph unicode="." horiz-adv-x="596" d="M144 0v256h292v-256h-292z" />
<glyph unicode="/" horiz-adv-x="825" d="M-14 -125l534 1581h284l-534 -1581h-284z" />
<glyph unicode="0" horiz-adv-x="1175" d="M95 567v321q0 288 132.5 438.5t359.5 150.5q226 0 359.5 -150.5t133.5 -438.5v-321q0 -289 -132.5 -438.5t-358.5 -149.5q-228 0 -361 149.5t-133 438.5zM386 539q0 -176 51.5 -256t151.5 -80q98 0 149 80t51 256v379q0 173 -52 253.5t-150 80.5q-99 0 -150 -80t-51 -254 v-379z" />
<glyph unicode="1" horiz-adv-x="1175" d="M171 1198v206l588 52v-1456h-292v1198h-296z" />
<glyph unicode="2" horiz-adv-x="1175" d="M76 1007q-5 197 129.5 333.5t362.5 136.5q225 0 353.5 -117t128.5 -312q0 -132 -72.5 -243.5t-239.5 -292.5l-259 -283l2 -5h612v-224h-994v191l471 505q102 117 145 197.5t43 149.5q0 92 -49.5 150.5t-140.5 58.5q-101 0 -153.5 -68.5t-52.5 -182.5h-284z" />
<glyph unicode="3" horiz-adv-x="1175" d="M70 390l2 6h283q0 -84 60 -138.5t152 -54.5q101 0 159.5 56t58.5 152q0 115 -57.5 168.5t-169.5 53.5h-164v219h164q104 0 154 54.5t50 151.5q0 88 -50 141t-145 53q-82 0 -138 -48t-56 -126h-283l-2 6q-6 171 131 282t340 111q226 0 360.5 -108t134.5 -308 q0 -95 -60 -180.5t-165 -133.5q121 -43 184.5 -132t63.5 -207q0 -200 -145.5 -314.5t-372.5 -114.5q-203 0 -348.5 107.5t-140.5 303.5z" />
<glyph unicode="4" horiz-adv-x="1175" d="M57 491l604 965h294v-914h165v-226h-165v-316h-291v316h-594zM329 542h335v524l-6 2l-23 -41z" />
<glyph unicode="5" horiz-adv-x="1175" d="M110 390l2 5l281 14q0 -97 55 -151.5t144 -54.5q102 0 150.5 72.5t48.5 189.5q0 126 -52 202t-154 76q-84 0 -128.5 -31t-63.5 -84l-257 17l84 811h812v-234h-573l-40 -336q40 30 97 49.5t126 20.5q210 3 325.5 -127t115.5 -362q0 -210 -126.5 -349t-364.5 -139 q-201 0 -344 109.5t-138 301.5z" />
<glyph unicode="6" horiz-adv-x="1175" d="M99 569v284q0 286 165 455t420 169q82 0 151.5 -15.5t139.5 -45.5l-52 -214q-66 23 -117.5 34.5t-119.5 11.5q-133 0 -213.5 -99.5t-74.5 -275.5l3 -5q49 51 124 80t169 29q195 0 305.5 -138.5t110.5 -353.5q0 -220 -136.5 -363t-353.5 -143q-231 0 -376 156.5 t-145 433.5zM391 562q0 -173 62.5 -266t166.5 -93q90 0 144.5 82.5t54.5 199.5q0 121 -55 196t-147 75q-81 0 -138 -26t-88 -71v-97z" />
<glyph unicode="7" horiz-adv-x="1175" d="M60 1231v225h1029v-225q-234 -274 -319.5 -511t-122.5 -572l-14 -148h-292l14 148q34 321 146 589.5t307 493.5h-748z" />
<glyph unicode="8" horiz-adv-x="1175" d="M91 398q0 118 66.5 208.5t183.5 140.5q-102 47 -159 130.5t-57 192.5q0 194 127 300.5t335 106.5q207 0 335 -106.5t128 -300.5q0 -109 -57.5 -193t-158.5 -131q116 -49 183 -140t67 -208q0 -202 -137 -310.5t-358 -108.5q-223 0 -360.5 108.5t-137.5 310.5zM384 418 q0 -100 56 -157.5t149 -57.5q91 0 147 58t56 157q0 98 -57 157t-148 59q-92 0 -147.5 -59t-55.5 -157zM417 1057q0 -91 45.5 -144.5t126.5 -53.5q79 0 124.5 53.5t45.5 144.5q0 88 -46.5 141.5t-125.5 53.5q-80 0 -125 -52.5t-45 -142.5z" />
<glyph unicode="9" horiz-adv-x="1175" d="M82 970q0 218 138 362.5t351 144.5q223 0 362 -153.5t139 -431.5v-344q0 -265 -155.5 -417t-396.5 -152q-76 0 -156.5 15.5t-149.5 45.5l34 211q65 -25 128.5 -36.5t143.5 -11.5q115 0 187.5 85.5t72.5 244.5v72q-49 -62 -116.5 -94t-145.5 -32q-203 0 -319.5 132.5 t-116.5 358.5zM373 970q0 -124 50.5 -200.5t143.5 -76.5q72 0 126 27t87 72v134q0 160 -56 243t-152 83q-88 0 -143.5 -82t-55.5 -200z" />
<glyph unicode=":" horiz-adv-x="582" d="M144 0v256h292v-256h-292zM144 876v256h292v-256h-292z" />
<glyph unicode=";" horiz-adv-x="562" d="M114 -302l70 324v228h284v-237l-159 -315h-195zM145 876v256h292v-256h-292z" />
<glyph unicode="&#x3c;" horiz-adv-x="1043" d="M54 436v227l862 366v-272l-577 -207v-6l577 -203v-272z" />
<glyph unicode="=" horiz-adv-x="1181" d="M136 332v229h896v-229h-896zM136 763v229h896v-229h-896z" />
<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M119 69v270l586 209v6l-586 206v269l872 -366v-227z" />
<glyph unicode="?" horiz-adv-x="1021" d="M32 1081q-3 192 126.5 294t337.5 102q224 0 351.5 -113.5t127.5 -308.5q0 -127 -74.5 -235t-186.5 -181q-61 -47 -80 -94.5t-19 -130.5h-291q1 140 41.5 205t161.5 158q71 58 113.5 125t42.5 150q0 92 -48.5 144t-138.5 52q-74 0 -125.5 -44t-52.5 -129h-284zM323 0v250 h294v-250h-294z" />
<glyph unicode="@" horiz-adv-x="1817" d="M66 478q18 427 255.5 683.5t625.5 256.5q387 0 593 -242.5t190 -662.5q-9 -218 -128 -376t-356 -158q-78 0 -135 44t-81 123q-44 -82 -109.5 -123t-153.5 -41q-141 0 -216.5 119t-55.5 315q25 254 143.5 407t287.5 153q116 0 186.5 -26t154.5 -80l-3 -4h5l-51 -573 q-7 -95 14 -130t57 -35q115 0 184.5 109t77.5 276q16 353 -136.5 551t-471.5 198q-303 0 -484 -213t-196 -571q-17 -355 146 -560t469 -205q85 0 175.5 20t155.5 50l38 -147q-67 -42 -170.5 -65.5t-202.5 -23.5q-396 0 -610.5 249t-197.5 682zM720 416q-10 -127 18.5 -192.5 t92.5 -65.5q56 0 101.5 26t81.5 96v6.5t1 6.5l44 496q-23 7 -46 11t-48 4q-111 0 -169 -96.5t-76 -291.5z" />
<glyph unicode="A" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM478 543h367l-180 572h-6z" />
<glyph unicode="B" horiz-adv-x="1314" d="M136 0v1456h492q257 0 401 -100t144 -299q0 -101 -53.5 -180.5t-155.5 -119.5q131 -28 196.5 -120t65.5 -213q0 -209 -138 -316.5t-391 -107.5h-561zM428 224h269q116 0 177 50.5t61 149.5q0 107 -52 163.5t-164 56.5h-291v-420zM428 846h210q117 0 180 48t63 140 q0 101 -63.5 149t-189.5 48h-200v-385z" />
<glyph unicode="C" horiz-adv-x="1309" d="M93 583v289q0 265 160 435t416 170q270 -1 422 -139q148 -135 148 -365v-12l-2 -6h-284q0 144 -69 220.5t-215 76.5q-131 0 -208 -106.5t-77 -271.5v-291q0 -167 81 -273.5t219 -106.5q137 0 202.5 73.5t65.5 218.5h283l2 -6v-12q1 -227 -143 -361q-148 -138 -410 -137 q-263 0 -427 169t-164 435z" />
<glyph unicode="D" horiz-adv-x="1342" d="M136 0v1456h500q267 0 440 -170.5t173 -437.5v-241q0 -268 -173 -437.5t-440 -169.5h-500zM428 224h193q157 0 246 106t89 277v243q0 169 -89 275t-246 106h-193v-1007z" />
<glyph unicode="E" horiz-adv-x="1176" d="M136 0v1456h995v-225h-703v-366h603v-225h-603v-416h705v-224h-997z" />
<glyph unicode="F" horiz-adv-x="1182" d="M136 0v1456h1004v-225h-712v-401h610v-225h-610v-605h-292z" />
<glyph unicode="G" horiz-adv-x="1369" d="M99 576v304q0 264 162.5 430.5t418.5 166.5q266 0 407.5 -129.5t144.5 -340.5l-2 -6h-275q-8 116 -74 183.5t-193 67.5q-134 0 -216 -103.5t-82 -266.5v-306q0 -166 85 -269.5t229 -103.5q102 0 164 21t94 52v270h-258v202h550v-549q-65 -86 -202.5 -153t-347.5 -67 q-267 0 -436 166t-169 431z" />
<glyph unicode="H" horiz-adv-x="1450" d="M136 0v1456h292v-626h594v626h291v-1456h-291v605h-594v-605h-292z" />
<glyph unicode="I" horiz-adv-x="601" d="M154 0v1456h292v-1456h-292z" />
<glyph unicode="J" horiz-adv-x="1169" d="M63 417l2 6h284q0 -115 55 -167.5t148 -52.5q81 0 137.5 62.5t56.5 171.5v1019h291v-1019q0 -211 -137.5 -334.5t-347.5 -123.5q-228 0 -361 111q-128 107 -128 311v16z" />
<glyph unicode="K" horiz-adv-x="1323" d="M136 0v1456h292v-595h127l386 595h357l-490 -678l529 -778h-356l-391 608h-162v-608h-292z" />
<glyph unicode="L" horiz-adv-x="1108" d="M136 0v1456h292v-1232h648v-224h-940z" />
<glyph unicode="M" horiz-adv-x="1787" d="M136 0v1456h381l371 -1073h6l374 1073h382v-1456h-292v434l28 643l-6 1l-390 -1078h-196l-388 1074l-6 -1l28 -639v-434h-292z" />
<glyph unicode="N" horiz-adv-x="1450" d="M136 0v1456h292l588 -994l6 1v993h291v-1456h-291l-588 995l-6 -1v-994h-292z" />
<glyph unicode="O" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264q0 170 -85 279t-234 109t-231 -108.5t-82 -279.5v-264z" />
<glyph unicode="P" horiz-adv-x="1334" d="M136 0v1456h580q251 0 395 -128t144 -337t-144 -336t-395 -127h-288v-528h-292zM428 753h288q122 0 185 66.5t63 169.5q0 105 -62.5 173.5t-185.5 68.5h-288v-478z" />
<glyph unicode="Q" horiz-adv-x="1433" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -132 -43 -244.5t-123 -195.5l241 -236l-191 -156l-262 254q-54 -19 -112 -29.5t-120 -10.5q-269 0 -437 175t-168 443zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264 q0 170 -85 279t-234 109t-231 -108.5t-82 -279.5v-264z" />
<glyph unicode="R" horiz-adv-x="1354" d="M136 0v1456h549q249 0 389.5 -113.5t140.5 -316.5q0 -113 -59 -194t-173 -131q129 -38 185.5 -127t56.5 -220v-107q0 -61 16.5 -127.5t56.5 -98.5v-21h-301q-40 32 -52 107t-12 142v103q0 109 -59.5 169.5t-167.5 60.5h-278v-582h-292zM428 807h252q123 0 183.5 52 t60.5 154q0 100 -60.5 159t-178.5 59h-257v-424z" />
<glyph unicode="S" horiz-adv-x="1299" d="M90 445l2 6h284q0 -130 79.5 -190.5t221.5 -60.5q119 0 182 49t63 131q0 84 -59.5 135t-208.5 96q-260 75 -393 178t-133 282t152.5 292.5t389.5 113.5q240 1 391 -127q146 -123 146 -303v-12l-2 -6h-283q0 101 -67.5 163.5t-189.5 62.5q-117 0 -181 -52t-64 -133 q0 -74 68.5 -121.5t236.5 -100.5q241 -67 365 -177t124 -289q0 -187 -147.5 -295t-389.5 -108q-238 1 -415 123q-172 119 -172 331v12z" />
<glyph unicode="T" horiz-adv-x="1169" d="M28 1231v225h1114v-225h-412v-1231h-292v1231h-410z" />
<glyph unicode="U" horiz-adv-x="1407" d="M120 490v966h293v-966q0 -144 77 -215.5t212 -71.5q137 0 215 71t78 216v966h293v-966q0 -245 -162 -378t-424 -133q-261 0 -421.5 133t-160.5 378z" />
<glyph unicode="V" horiz-adv-x="1303" d="M7 1456h308l315 -1069l18 -79h6l17 77l317 1071h308l-495 -1456h-300z" />
<glyph unicode="W" horiz-adv-x="1815" d="M24 1456h286l209 -997l6 -1l273 998h215l275 -998h6l208 998h285l-340 -1456h-271l-267 961h-6l-267 -961h-271z" />
<glyph unicode="X" horiz-adv-x="1303" d="M31 0l443 734l-432 722h338l269 -516l273 516h340l-432 -722l457 -734h-353l-281 525l-281 -525h-341z" />
<glyph unicode="Y" horiz-adv-x="1292" d="M5 1456h320l318 -671h6l318 671h320l-500 -944v-512h-291v527z" />
<glyph unicode="Z" horiz-adv-x="1206" d="M77 0v152l692 1079h-691v225h1047v-146l-695 -1086h712v-224h-1065z" />
<glyph unicode="[" horiz-adv-x="570" d="M119 -336v2027h434v-216h-141v-1595h141v-216h-434z" />
<glyph unicode="\" horiz-adv-x="863" d="M2 1456h289l608 -1581h-289z" />
<glyph unicode="]" horiz-adv-x="570" d="M13 -120h142v1595h-142v216h434v-2027h-434v216z" />
<glyph unicode="^" horiz-adv-x="896" d="M44 729l299 727h212l299 -727h-231l-165 413l-8 34h-6l-7 -34l-162 -413h-231z" />
<glyph unicode="_" horiz-adv-x="914" d="M1 0h910v-219h-910v219z" />
<glyph unicode="`" horiz-adv-x="678" d="M77 1472l2 6h309l197 -266h-237z" />
<glyph unicode="a" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6v14q0 128 119 222q126 100 331 100q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5z" />
<glyph unicode="b" d="M112 0v1560h291v-593q47 65 112.5 100t150.5 35q206 0 314 -155.5t108 -414.5v-21q0 -242 -108 -387t-312 -145q-94 0 -164.5 39.5t-119.5 115.5l-22 -134h-250zM403 307q27 -49 74.5 -75t116.5 -26q113 0 158 79.5t45 225.5v21q0 158 -46.5 250.5t-158.5 92.5 q-68 0 -115 -28.5t-74 -81.5v-458z" />
<glyph unicode="c" horiz-adv-x="1060" d="M62 525v30q0 239 130.5 393t372.5 154q201 0 323 -114q119 -110 118 -288v-12l-2 -6h-266q0 84 -46 139.5t-127 55.5q-116 0 -163.5 -90t-47.5 -232v-30q0 -145 47.5 -233.5t164.5 -88.5q78 0 125 45.5t47 121.5h265l3 -6v-10q0 -156 -124 -264q-128 -110 -316 -111 q-242 0 -373 153t-131 393z" />
<glyph unicode="d" d="M67 511v21q0 256 110.5 413t311.5 157q81 0 146 -35t114 -100v593h293v-1560h-251l-24 132q-51 -75 -120.5 -114t-159.5 -39q-199 0 -309.5 146t-110.5 386zM358 511q0 -142 48 -223.5t156 -81.5q63 0 110 25.5t77 74.5v461q-30 51 -76.5 79.5t-108.5 28.5 q-107 0 -156.5 -95t-49.5 -248v-21z" />
<glyph unicode="e" horiz-adv-x="1084" d="M77 510v40q1 241 133 397q132 155 352 155h3q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-234 0 -374 150t-140 381zM379 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5 q-81 0 -128 -62t-58 -163z" />
<glyph unicode="f" horiz-adv-x="732" d="M27 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-877h-292v877h-161z" />
<glyph unicode="g" d="M67 511v21q0 256 111.5 413t312.5 157q91 0 160 -41t118 -117l23 138h252v-1077q0 -211 -138.5 -326.5t-385.5 -115.5q-82 0 -174 22.5t-170 61.5l54 218q67 -32 136.5 -48.5t151.5 -16.5q120 0 176.5 50t56.5 156v98q-48 -61 -113 -93t-149 -32q-199 0 -310.5 146.5 t-111.5 385.5zM359 511q0 -142 48 -223.5t156 -81.5q67 0 113.5 24.5t74.5 71.5v470q-28 49 -74.5 76t-111.5 27q-107 0 -156.5 -95t-49.5 -248v-21z" />
<glyph unicode="h" d="M105 0v1560h292v-615q51 74 125 115.5t164 41.5q169 0 265.5 -112.5t96.5 -347.5v-642h-292v644q0 126 -44.5 178.5t-132.5 52.5q-60 0 -106 -21.5t-76 -60.5v-793h-292z" />
<glyph unicode="i" horiz-adv-x="547" d="M127 0v1082h292v-1082h-292zM127 1341v219h292v-219h-292z" />
<glyph unicode="j" horiz-adv-x="543" d="M-98 -420l14 223q23 -6 46 -9t49 -3q59 0 91 41.5t32 127.5v1122h293v-1122q0 -190 -101 -293.5t-281 -103.5q-40 0 -73 4t-70 13zM128 1343v217h293v-217h-293z" />
<glyph unicode="k" horiz-adv-x="1097" d="M112 0v1560h292v-885h72l251 407h338l-346 -490l399 -592h-335l-299 453h-80v-453h-292z" />
<glyph unicode="l" horiz-adv-x="547" d="M127 0v1560h292v-1560h-292z" />
<glyph unicode="m" horiz-adv-x="1772" d="M112 0v1082h271l12 -143q52 78 130.5 120.5t181.5 42.5q104 0 178 -46t112 -139q50 87 130 136t188 49q160 0 252.5 -110.5t92.5 -336.5v-655h-292v656q0 123 -40 171t-119 48q-62 0 -107.5 -27.5t-72.5 -76.5q0 -19 1 -32.5t1 -27.5v-711h-291v656q0 120 -40 169.5 t-120 49.5q-59 0 -103.5 -22.5t-73.5 -63.5v-789h-291z" />
<glyph unicode="n" d="M107 0v1082h272l13 -155q54 83 133 129t177 46q164 0 256 -103t92 -323v-676h-293v675q0 109 -44 154.5t-133 45.5q-58 0 -104 -23.5t-77 -66.5v-785h-292z" />
<glyph unicode="o" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91q-113 0 -165.5 -91.5t-52.5 -234.5 v-21z" />
<glyph unicode="p" d="M112 -416v1498h263l17 -128q48 71 115.5 109.5t157.5 38.5q201 0 312 -157t111 -413v-21q0 -240 -111 -386t-310 -146q-85 0 -151 31.5t-113 92.5v-519h-291zM403 297q27 -46 73.5 -70t114.5 -24q106 0 155.5 83t49.5 225v21q0 153 -51 248t-156 95q-66 0 -112.5 -27 t-73.5 -77v-474z" />
<glyph unicode="q" d="M67 511v21q0 256 110.5 413t311.5 157q90 0 158 -39.5t117 -113.5l27 133h248v-1498h-292v517q-48 -60 -112.5 -91t-147.5 -31q-199 0 -309.5 146t-110.5 386zM358 511q0 -142 48 -225t156 -83q64 0 110 24t75 70v480q-29 48 -74.5 74t-108.5 26q-107 0 -156.5 -96 t-49.5 -249v-21z" />
<glyph unicode="r" horiz-adv-x="717" d="M112 0v1082h271l13 -160q38 85 98.5 132.5t139.5 47.5q22 0 40.5 -3.5t37.5 -8.5l-31 -259l-107 3q-65 0 -107 -27t-64 -76v-731h-291z" />
<glyph unicode="s" horiz-adv-x="1056" d="M64 338l2 6h267q3 -87 57 -126t141 -39q81 0 123.5 32t42.5 87q0 48 -46.5 83t-172.5 62q-192 39 -289.5 115.5t-97.5 208.5q0 140 117.5 237.5t314.5 97.5q207 0 329 -97q118 -93 118 -233v-12l-2 -6h-282q0 65 -41.5 106t-121.5 41q-71 0 -111.5 -34.5t-40.5 -86.5 q0 -50 42.5 -82t172.5 -57q200 -40 297 -117.5t97 -213.5q0 -146 -125 -238.5t-330 -92.5q-215 -1 -341 109q-120 105 -120 237v13z" />
<glyph unicode="t" horiz-adv-x="715" d="M9 877v205h158v265h292v-265h182v-205h-182v-551q0 -63 26 -90t70 -27q23 0 39.5 2.5t38.5 8.5l25 -211q-44 -15 -86 -22.5t-91 -7.5q-151 0 -232.5 83t-81.5 263v552h-158z" />
<glyph unicode="u" d="M105 429v653h291v-655q0 -118 40 -169.5t118 -51.5q70 0 120 22.5t82 66.5v787h292v-1082h-249l-26 156q-50 -85 -127 -131t-177 -46q-171 0 -267.5 109.5t-96.5 340.5z" />
<glyph unicode="v" horiz-adv-x="1046" d="M16 1082h305l182 -679l19 -100h6l20 100l178 679h305l-368 -1082h-279z" />
<glyph unicode="w" horiz-adv-x="1507" d="M29 1082h274l143 -693h6l202 693h195l204 -695h6l141 695h274l-275 -1082h-244l-201 644h-6l-201 -644h-243z" />
<glyph unicode="x" horiz-adv-x="1046" d="M19 0l337 547l-327 535h328l162 -344h6l166 344h330l-326 -535l337 -547h-329l-177 359l-177 -359h-330z" />
<glyph unicode="y" horiz-adv-x="1046" d="M5 1082h314l183 -628l12 -60h6l207 688h314l-439 -1244q-46 -116 -125 -195.5t-237 -79.5q-37 0 -68.5 6t-76.5 17l34 213q13 -2 28 -4t27 -2q72 0 111 35.5t60 88.5l34 84z" />
<glyph unicode="z" horiz-adv-x="1046" d="M75 0v172l515 684h-499v226h866v-167l-519 -691h536v-224h-899z" />
<glyph unicode="{" horiz-adv-x="676" d="M48 518v201q90 0 133.5 54.5t43.5 155.5v203q0 171 82.5 290.5t277.5 174.5l56 -157q-85 -31 -120 -110.5t-35 -197.5v-203q0 -104 -44.5 -184.5t-134.5 -125.5q90 -47 134.5 -127.5t44.5 -182.5v-203q0 -118 35 -197.5t120 -110.5l-56 -158q-195 55 -277.5 175 t-82.5 291v203q0 99 -43.5 154t-133.5 55z" />
<glyph unicode="|" horiz-adv-x="519" d="M173 -270v1726h176v-1726h-176z" />
<glyph unicode="}" horiz-adv-x="676" d="M34 -202q85 31 120 110.5t35 197.5v203q0 104 46 184t140 125q-94 45 -140 125.5t-46 185.5v203q0 118 -35 197.5t-120 110.5l56 157q194 -55 277 -174.5t83 -290.5v-203q0 -101 43 -155.5t135 -54.5v-201q-92 0 -135 -55t-43 -154v-203q0 -171 -83 -291t-277 -175z" />
<glyph unicode="~" horiz-adv-x="1327" d="M105 448q0 162 86.5 269.5t223.5 107.5q83 0 158.5 -33.5t151.5 -99.5q49 -45 86.5 -64.5t81.5 -19.5q50 0 87 52t37 125l203 -27q0 -161 -88.5 -270.5t-223.5 -109.5q-85 0 -157 31.5t-150 101.5q-52 44 -89.5 64t-81.5 20q-52 0 -87.5 -51t-35.5 -122z" />
<glyph unicode="&#xa1;" horiz-adv-x="580" d="M142 -374v953h292v-953h-292zM142 825v257h292v-257h-292z" />
<glyph unicode="&#xa2;" horiz-adv-x="1181" d="M72 525v30q0 218 110.5 367.5t317.5 174.5v221h200v-229q148 -34 235 -141.5t87 -265.5h-274q0 84 -46 139.5t-127 55.5q-116 0 -163.5 -90t-47.5 -232v-30q0 -145 47.5 -233.5t164.5 -88.5q78 0 125 45.5t47 121.5h267l2 -5q3 -135 -85.5 -237t-231.5 -135v-238h-200 v229q-207 23 -317.5 172.5t-110.5 368.5z" />
<glyph unicode="&#xa3;" horiz-adv-x="1216" d="M92 588v225h155l-8 214q0 210 120.5 330t322.5 120q215 0 333.5 -111.5t114.5 -294.5l-2 -6h-284q0 96 -46 141.5t-117 45.5q-70 0 -110 -58.5t-40 -166.5l10 -214h355v-225h-345l4 -85q0 -78 -30 -150t-86 -129h713v-224h-996v224h10q47 12 70.5 95t23.5 171l-4 98h-164 z" />
<glyph unicode="&#xa4;" horiz-adv-x="1417" d="M80 118l135 137q-49 76 -74.5 165.5t-25.5 187.5q0 101 28 194t81 171l-144 147l141 144l142 -145q74 55 162.5 85t185.5 30q96 0 185 -30.5t164 -86.5l144 148l142 -145l-148 -151q51 -78 79 -169.5t28 -191.5q0 -97 -25.5 -185.5t-72.5 -163.5l139 -141l-142 -145 l-132 134q-77 -62 -169 -94.5t-192 -32.5q-101 0 -193.5 32.5t-167.5 93.5l-129 -132zM301 608q0 -185 119 -312t291 -127q170 0 289.5 127.5t119.5 311.5q0 183 -119.5 310t-289.5 127q-172 0 -291 -127t-119 -310z" />
<glyph unicode="&#xa5;" horiz-adv-x="1253" d="M22 1456h321l280 -608h6l281 608h320l-382 -714h244v-200h-324v-110h324v-200h-324v-232h-292v232h-339v200h339v110h-339v200h267z" />
<glyph unicode="&#xa6;" horiz-adv-x="517" d="M127 -270v795h262v-795h-262zM127 698v758h262v-758h-262z" />
<glyph unicode="&#xa7;" horiz-adv-x="1287" d="M94 536q0 89 42 158t121 113q-69 50 -103 120.5t-34 168.5q0 172 141.5 276.5t378.5 104.5q243 0 380.5 -111t132.5 -311l-2 -6h-283q0 88 -60 145.5t-168 57.5q-114 0 -171 -43.5t-57 -110.5q0 -75 55.5 -113.5t232.5 -86.5q247 -64 363.5 -157.5t116.5 -265.5 q0 -91 -42 -159t-121 -111q68 -51 102.5 -121t34.5 -168q0 -177 -140 -277t-377 -100q-232 0 -387.5 99.5t-150.5 317.5l2 6l283 1q0 -106 72.5 -152t180.5 -46q107 0 166.5 41.5t59.5 108.5t-61 107.5t-230 90.5q-244 64 -361 157.5t-117 265.5zM385 562q0 -80 55.5 -121.5 t232.5 -93.5q34 -10 68.5 -20t69.5 -21q39 22 60.5 59t21.5 85q0 71 -62 116t-232 97q-40 10 -74 21t-65 22q-38 -22 -56.5 -59t-18.5 -85z" />
<glyph unicode="&#xa8;" horiz-adv-x="1090" d="M156 1252v204h266v-204h-266zM656 1252v204h266v-204h-266z" />
<glyph unicode="&#xa9;" horiz-adv-x="1606" d="M86 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -208 -533t-502 -217q-296 0 -503 217t-207 533zM208 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M433 669v119q0 173 94.5 280t254.5 107q157 0 245.5 -79.5t84.5 -228.5l-2 -6h-148q0 94 -45 136.5t-135 42.5q-94 0 -144 -69t-50 -182v-120q0 -115 50 -183.5t144 -68.5q90 0 134.5 41.5t44.5 137.5h148l2 -6q4 -151 -84 -229.5t-245 -78.5q-160 0 -254.5 106t-94.5 281z " />
<glyph unicode="&#xaa;" horiz-adv-x="909" d="M112 920q0 111 84.5 171t246.5 60h137v51q0 62 -29.5 94.5t-86.5 32.5q-66 0 -102 -26t-36 -73l-165 13l-1 6q-6 98 79 163t225 65q134 0 212.5 -71t78.5 -205v-314q0 -51 6 -95t20 -86h-177q-8 21 -13 44.5t-8 49.5q-33 -47 -88.5 -77.5t-133.5 -30.5q-119 0 -184 61 t-65 167zM287 924q0 -43 29 -65.5t88 -22.5q51 0 105 30t71 65v103h-136q-74 0 -115.5 -32t-41.5 -78z" />
<glyph unicode="&#xab;" horiz-adv-x="1025" d="M98 507v19l280 390h187l-240 -400l240 -399h-187zM432 507v19l280 390h187l-240 -400l240 -399h-187z" />
<glyph unicode="&#xac;" horiz-adv-x="1129" d="M126 634v171h835v-431h-200v260h-635z" />
<glyph unicode="&#xad;" horiz-adv-x="801" d="M113 510v225h564v-225h-564z" />
<glyph unicode="&#xae;" horiz-adv-x="1606" d="M86 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -208 -533t-502 -217q-296 0 -503 217t-207 533zM208 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M501 316v850h281q151 0 238 -68t87 -194q0 -58 -29 -101.5t-85 -74.5q58 -30 84.5 -84.5t26.5 -128.5v-56q0 -41 3.5 -73.5t13.5 -53.5v-16h-155q-9 21 -11 61.5t-2 82.5v54q0 71 -33.5 105t-109.5 34h-158v-337h-151zM652 787h135q71 0 120.5 30t49.5 86q0 72 -39 101 t-136 29h-130v-246z" />
<glyph unicode="&#xaf;" horiz-adv-x="1028" d="M148 1292v165h731v-165h-731z" />
<glyph unicode="&#xb0;" horiz-adv-x="796" d="M126 1203q0 112 80.5 193t192.5 81q110 0 189 -81t79 -193q0 -113 -79 -192t-189 -79q-113 0 -193 79t-80 192zM273 1203q0 -53 37 -88.5t89 -35.5q51 0 86 35t35 89t-35 91t-86 37q-52 0 -89 -37t-37 -91z" />
<glyph unicode="&#xb1;" horiz-adv-x="1101" d="M90 715v232h333v363h256v-363h327v-232h-327v-383h-256v383h-333zM114 -43v228h834v-228h-834z" />
<glyph unicode="&#xb2;" horiz-adv-x="860" d="M108 1223q-6 106 82.5 181t236.5 75q144 0 223 -65t79 -183q0 -82 -53.5 -144.5t-178.5 -165.5l-109 -93l2 -6h346v-155h-622v155l309 252q60 50 77.5 83.5t17.5 74.5q0 39 -23.5 65.5t-72.5 26.5q-55 0 -83 -30t-28 -77h-201z" />
<glyph unicode="&#xb3;" horiz-adv-x="856" d="M95 893l2 6h201q0 -42 31.5 -65.5t91.5 -23.5q56 0 90 24t34 68q0 50 -35 77t-102 27h-111v133h111q62 0 92 24.5t30 70.5q0 38 -28.5 63.5t-83.5 25.5q-51 0 -79.5 -22t-28.5 -53h-200l-2 6q-6 101 82 162.5t222 61.5q152 0 240.5 -59.5t88.5 -169.5q0 -55 -35.5 -100.5 t-96.5 -70.5q70 -24 107.5 -71.5t37.5 -115.5q0 -112 -89.5 -174t-241.5 -62q-146 0 -240 62.5t-88 175.5z" />
<glyph unicode="&#xb4;" horiz-adv-x="727" d="M108 1212l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xb5;" horiz-adv-x="1264" d="M139 -416v1498h291v-620q0 -149 45 -202.5t135 -53.5q75 0 125 27.5t78 79.5v769h292v-1082h-272l-6 67q-44 -43 -100.5 -65.5t-123.5 -22.5q-51 0 -94.5 10.5t-78.5 33.5v-439h-291z" />
<glyph unicode="&#xb6;" horiz-adv-x="1078" d="M61 988q0 207 129.5 337.5t362.5 130.5h375v-1456h-292v520h-83q-233 0 -362.5 129.5t-129.5 338.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="619" d="M159 568v260h292v-260h-292z" />
<glyph unicode="&#xb8;" horiz-adv-x="549" d="M97 -136l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" />
<glyph unicode="&#xb9;" horiz-adv-x="573" d="M78 1295v159l338 23v-812h-211v630h-127z" />
<glyph unicode="&#xba;" horiz-adv-x="937" d="M118 1025v117q0 148 94 241.5t252 93.5t252.5 -93.5t94.5 -241.5v-117q0 -149 -94 -241.5t-251 -92.5q-159 0 -253.5 92.5t-94.5 241.5zM293 1025q0 -85 44 -136.5t129 -51.5q82 0 126 51.5t44 136.5v117q0 83 -44.5 135t-127.5 52q-84 0 -127.5 -52t-43.5 -135v-117z " />
<glyph unicode="&#xbb;" horiz-adv-x="1025" d="M102 151l239 399l-239 400h188l280 -390v-19l-280 -390h-188zM448 151l239 399l-239 400h188l280 -390v-19l-280 -390h-188z" />
<glyph unicode="&#xbc;" horiz-adv-x="1493" d="M167 1294v159l338 23v-812h-211v630h-127zM309 192l711 1138l142 -75l-711 -1138zM762 265l424 536h211v-505h101v-157h-101v-139h-211v139h-410zM978 296h208v257l-6 2l-13 -20z" />
<glyph unicode="&#xbd;" horiz-adv-x="1553" d="M167 1294v159l338 23v-812h-211v630h-127zM322 192l711 1138l142 -75l-711 -1138zM919 556q-6 106 82.5 181t236.5 75q144 0 223 -65t79 -183q0 -82 -53.5 -144.5t-178.5 -165.5l-109 -93l2 -6h346v-155h-622v155l309 252q60 50 77.5 83.5t17.5 74.5q0 39 -23.5 65.5 t-72.5 26.5q-55 0 -83 -30t-28 -77h-201z" />
<glyph unicode="&#xbe;" horiz-adv-x="1717" d="M111 894l2 6h201q0 -42 31.5 -65.5t91.5 -23.5q56 0 90 24t34 68q0 50 -35 77t-102 27h-111v133h111q62 0 92 24.5t30 70.5q0 38 -28.5 63.5t-83.5 25.5q-51 0 -79.5 -22t-28.5 -53h-200l-2 6q-6 101 82 162.5t222 61.5q152 0 240.5 -59.5t88.5 -169.5 q0 -55 -35.5 -100.5t-96.5 -70.5q70 -24 107.5 -71.5t37.5 -115.5q0 -112 -89.5 -174t-241.5 -62q-146 0 -240 62.5t-88 175.5zM492 192l711 1138l142 -75l-711 -1138zM951 265l424 536h211v-505h101v-157h-101v-139h-211v139h-410zM1167 296h208v257l-6 2l-13 -20z" />
<glyph unicode="&#xbf;" horiz-adv-x="1037" d="M75 27q0 125 74 233t187 183q60 45 79.5 92.5t19.5 132.5h291q-2 -141 -42.5 -206.5t-159.5 -157.5q-72 -58 -114.5 -125.5t-42.5 -149.5q0 -90 48.5 -142t139.5 -52q73 0 124 43t54 128h283l2 -6q2 -191 -127.5 -292.5t-335.5 -101.5q-226 0 -353 113t-127 308zM433 831 v251h294v-251h-294z" />
<glyph unicode="&#xc0;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM307 1820l2 6h309l197 -266h-237zM478 543h367l-180 572h-6z" />
<glyph unicode="&#xc1;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM478 543h367l-180 572h-6zM519 1560l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xc2;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM286 1592v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM478 543h367l-180 572h-6z" />
<glyph unicode="&#xc3;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM281 1644q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5zM478 543h367 l-180 572h-6z" />
<glyph unicode="&#xc4;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM272 1601v204h266v-204h-266zM478 543h367l-180 572h-6zM772 1601v204h266v-204h-266z" />
<glyph unicode="&#xc5;" horiz-adv-x="1311" d="M12 0l501 1456h299l499 -1456h-295l-99 314h-511l-99 -314h-295zM444 1739q0 83 61.5 139.5t151.5 56.5q88 0 149 -56.5t61 -139.5q0 -84 -60.5 -138t-149.5 -54q-90 0 -151.5 54t-61.5 138zM478 543h367l-180 572h-6zM560 1739q0 -43 28 -70.5t69 -27.5t67.5 27.5 t26.5 70.5q0 44 -26.5 72t-67.5 28q-42 0 -69.5 -28.5t-27.5 -71.5z" />
<glyph unicode="&#xc6;" horiz-adv-x="1925" d="M3 0l784 1456h1016v-228h-596l16 -366h499v-227h-490l17 -408h616v-227h-898l-14 335h-440l-168 -335h-342zM633 575h310l-23 559l-6 1z" />
<glyph unicode="&#xc7;" horiz-adv-x="1309" d="M93 583v289q0 265 160 435t416 170q270 0 422 -138.5t148 -377.5l-2 -6h-284q0 144 -69 220.5t-215 76.5q-131 0 -208 -106.5t-77 -271.5v-291q0 -167 81 -273.5t219 -106.5q137 0 202.5 73.5t65.5 218.5h283l2 -6q4 -235 -143.5 -372.5t-409.5 -137.5q-263 0 -427 169 t-164 435zM524 -137l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="1176" d="M136 0v1456h995v-225h-703v-366h603v-225h-603v-416h705v-224h-997zM244 1820l2 6h309l197 -266h-237z" />
<glyph unicode="&#xc9;" horiz-adv-x="1176" d="M136 0v1456h995v-225h-703v-366h603v-225h-603v-416h705v-224h-997zM456 1560l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xca;" horiz-adv-x="1176" d="M136 0v1456h995v-225h-703v-366h603v-225h-603v-416h705v-224h-997zM238 1592v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227z" />
<glyph unicode="&#xcb;" horiz-adv-x="1176" d="M136 0v1456h995v-225h-703v-366h603v-225h-603v-416h705v-224h-997zM221 1601v204h266v-204h-266zM721 1601v204h266v-204h-266z" />
<glyph unicode="&#xcc;" horiz-adv-x="601" d="M-58 1820l2 6h309l197 -266h-237zM154 0v1456h292v-1456h-292z" />
<glyph unicode="&#xcd;" horiz-adv-x="601" d="M152 1560l199 266h309l2 -6l-277 -260h-233zM154 0v1456h292v-1456h-292z" />
<glyph unicode="&#xce;" horiz-adv-x="601" d="M-64 1592v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM154 0v1456h292v-1456h-292z" />
<glyph unicode="&#xcf;" horiz-adv-x="601" d="M-81 1601v204h266v-204h-266zM154 0v1456h292v-1456h-292zM419 1601v204h266v-204h-266z" />
<glyph unicode="&#xd0;" horiz-adv-x="1372" d="M31 652v181h135v623h500q267 0 440 -170.5t173 -437.5v-241q0 -268 -173 -437.5t-440 -169.5h-500v652h-135zM458 224h193q157 0 246 106t89 277v243q0 169 -89 275t-246 106h-193v-398h244v-181h-244v-428z" />
<glyph unicode="&#xd1;" horiz-adv-x="1450" d="M136 0v1456h292l588 -994l6 1v993h291v-1456h-291l-588 995l-6 -1v-994h-292zM349 1644q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5z " />
<glyph unicode="&#xd2;" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM339 1820l2 6h309l197 -266h-237zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264q0 170 -85 279t-234 109 t-231 -108.5t-82 -279.5v-264z" />
<glyph unicode="&#xd3;" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264q0 170 -85 279t-234 109t-231 -108.5t-82 -279.5v-264zM551 1581 l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xd4;" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM333 1613v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282 v264q0 170 -85 279t-234 109t-231 -108.5t-82 -279.5v-264z" />
<glyph unicode="&#xd5;" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM324 1665q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5 q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264q0 170 -85 279t-234 109t-231 -108.5t-82 -279.5v-264z" />
<glyph unicode="&#xd6;" horiz-adv-x="1399" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q271 0 441 -175.5t170 -442.5v-262q0 -268 -169.5 -443t-440.5 -175q-269 0 -437 175t-168 443zM316 1622v204h266v-204h-266zM383 597q0 -173 83 -282t231 -109q150 0 234 109t84 282v264q0 170 -85 279t-234 109t-231 -108.5 t-82 -279.5v-264zM816 1622v204h266v-204h-266z" />
<glyph unicode="&#xd7;" horiz-adv-x="1088" d="M64 371l309 315l-309 315l172 164l303 -310l304 310l172 -164l-309 -315l309 -315l-172 -164l-304 309l-303 -309z" />
<glyph unicode="&#xd8;" horiz-adv-x="1410" d="M92 597v262q0 267 167.5 442.5t436.5 175.5q100 0 188.5 -26.5t162.5 -74.5l83 142h143l-130 -223q79 -83 121.5 -195t42.5 -241v-262q0 -268 -169.5 -443t-440.5 -175q-79 0 -151 16t-133 47l-80 -137h-143l119 204q-104 83 -160.5 209.5t-56.5 278.5zM383 597 q0 -74 15.5 -137.5t45.5 -107.5l6 -1l468 803q-42 45 -98 70t-124 25q-149 0 -231 -108.5t-82 -279.5v-264zM535 251q33 -22 74 -33.5t88 -11.5q150 0 234 109t84 282v264q0 45 -7 87t-18 73l-6 1z" />
<glyph unicode="&#xd9;" horiz-adv-x="1407" d="M120 490v966h293v-966q0 -144 77 -215.5t212 -71.5q137 0 215 71t78 216v966h293v-966q0 -245 -162 -378t-424 -133q-261 0 -421.5 133t-160.5 378zM344 1820l2 6h309l197 -266h-237z" />
<glyph unicode="&#xda;" horiz-adv-x="1407" d="M120 490v966h293v-966q0 -144 77 -215.5t212 -71.5q137 0 215 71t78 216v966h293v-966q0 -245 -162 -378t-424 -133q-261 0 -421.5 133t-160.5 378zM556 1560l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xdb;" horiz-adv-x="1407" d="M120 490v966h293v-966q0 -144 77 -215.5t212 -71.5q137 0 215 71t78 216v966h293v-966q0 -245 -162 -378t-424 -133q-261 0 -421.5 133t-160.5 378zM338 1592v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227z" />
<glyph unicode="&#xdc;" horiz-adv-x="1407" d="M120 490v966h293v-966q0 -144 77 -215.5t212 -71.5q137 0 215 71t78 216v966h293v-966q0 -245 -162 -378t-424 -133q-261 0 -421.5 133t-160.5 378zM321 1601v204h266v-204h-266zM821 1601v204h266v-204h-266z" />
<glyph unicode="&#xdd;" horiz-adv-x="1292" d="M5 1456h320l318 -671h6l318 671h320l-500 -944v-512h-291v527zM504 1560l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xde;" horiz-adv-x="1247" d="M132 0v1456h292v-270h221q254 0 396 -124t142 -324q0 -201 -142 -325t-396 -124h-221v-289h-292zM424 514h221q123 0 184.5 63.5t61.5 158.5t-61.5 160t-184.5 65h-221v-447z" />
<glyph unicode="&#xdf;" horiz-adv-x="1294" d="M135 0v1101q0 226 129 349t352 123q180 0 299 -95.5t119 -271.5q0 -108 -53.5 -205.5t-53.5 -165.5q0 -56 150 -197.5t150 -281.5q0 -189 -115 -283t-332 -94q-81 0 -160.5 15t-118.5 41l55 223q39 -22 96 -38.5t122 -16.5q76 0 119 38t43 103q0 71 -150 205.5 t-150 276.5q0 90 54.5 190t54.5 175q0 68 -45 113t-103 45q-76 0 -123.5 -67.5t-47.5 -184.5v-1097h-291z" />
<glyph unicode="&#xe0;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM184 1492l2 6h309l197 -266h-237zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5z" />
<glyph unicode="&#xe1;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5zM396 1232l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xe2;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM178 1270v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5z" />
<glyph unicode="&#xe3;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM169 1322q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5zM346 315q0 -54 36 -87t98 -33q77 0 137 38 t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5z" />
<glyph unicode="&#xe4;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM161 1279v204h266v-204h-266zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5zM661 1279v204h266v-204h-266z" />
<glyph unicode="&#xe5;" horiz-adv-x="1100" d="M55 305q0 159 122.5 246.5t357.5 87.5h163v86q0 78 -41 121t-121 43q-71 0 -109.5 -34.5t-38.5 -95.5l-282 1l-1 6q-7 137 119 236.5t331 99.5q194 0 315 -98.5t121 -280.5v-447q0 -76 11.5 -143t36.5 -133h-292q-16 37 -27.5 78t-16.5 84q-45 -79 -118.5 -131 t-175.5 -52q-170 0 -262 87.5t-92 238.5zM332 1417q0 83 61.5 139.5t151.5 56.5q88 0 149 -56.5t61 -139.5q0 -84 -60.5 -138t-149.5 -54q-90 0 -151.5 54t-61.5 138zM346 315q0 -54 36 -87t98 -33q77 0 137 38t81 88v153h-163q-93 0 -141 -46.5t-48 -112.5zM448 1417 q0 -43 28 -70.5t69 -27.5t67.5 27.5t26.5 70.5q0 44 -26.5 72t-67.5 28q-42 0 -69.5 -28.5t-27.5 -71.5z" />
<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M46 317q0 159 127 245t370 86h181v59q0 79 -41 124.5t-115 45.5q-81 0 -127 -37.5t-46 -93.5l-283 18l-2 6q-6 144 121.5 238t339.5 94q102 0 186 -27.5t143 -79.5q61 52 142.5 79.5t180.5 27.5q212 0 333 -132t121 -358v-158h-650l-2 -6q4 -112 66 -178.5t186 -66.5 q92 0 154 20t140 61l77 -184q-62 -48 -169 -84.5t-233 -36.5q-129 0 -229.5 40.5t-167.5 116.5q-60 -68 -161.5 -112.5t-240.5 -44.5q-192 0 -296.5 90.5t-104.5 247.5zM338 313q0 -59 41.5 -93.5t123.5 -34.5q58 0 121 30.5t100 72.5v176h-179q-98 0 -152.5 -44t-54.5 -107 zM1027 649l2 -5h362v28q0 94 -42.5 149.5t-125.5 55.5q-95 0 -142 -61.5t-54 -166.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="1060" d="M62 525v30q0 239 130.5 393t372.5 154q200 0 322.5 -114t118.5 -300l-2 -6h-266q0 84 -46 139.5t-127 55.5q-116 0 -163.5 -90t-47.5 -232v-30q0 -145 47.5 -233.5t164.5 -88.5q78 0 125 45.5t47 121.5h265l3 -6q4 -164 -123.5 -274.5t-316.5 -110.5q-242 0 -373 153 t-131 393zM415 -137l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="1084" d="M77 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-234 0 -374 150t-140 381zM186 1498l2 6h309l197 -266h-237zM379 652l3 -5h358v26 q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" />
<glyph unicode="&#xe9;" horiz-adv-x="1084" d="M77 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-234 0 -374 150t-140 381zM379 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5 q-81 0 -128 -62t-58 -163zM398 1238l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xea;" horiz-adv-x="1084" d="M77 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-234 0 -374 150t-140 381zM180 1271v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133 h-227zM379 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" />
<glyph unicode="&#xeb;" horiz-adv-x="1084" d="M77 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-234 0 -374 150t-140 381zM163 1280v204h266v-204h-266zM379 652l3 -5h358v26 q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163zM663 1280v204h266v-204h-266z" />
<glyph unicode="&#xec;" horiz-adv-x="562" d="M-78 1498l2 6h309l197 -266h-237zM133 0v1082h292v-1082h-292z" />
<glyph unicode="&#xed;" horiz-adv-x="562" d="M132 1217l199 266h309l2 -6l-277 -260h-233zM133 0v1082h292v-1082h-292z" />
<glyph unicode="&#xee;" horiz-adv-x="562" d="M-84 1251v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM133 0v1082h292v-1082h-292z" />
<glyph unicode="&#xef;" horiz-adv-x="562" d="M-101 1258v204h266v-204h-266zM133 0v1082h292v-1082h-292zM399 1258v204h266v-204h-266z" />
<glyph unicode="&#xf0;" horiz-adv-x="1218" d="M48 468q0 226 134.5 362.5t365.5 136.5q81 0 153 -25.5t124 -70.5l4 4q-14 83 -54 153.5t-100 125.5l-245 -136l-78 113l192 106l-1 6q-31 16 -68 30t-77 26l92 218q88 -19 168.5 -52.5t149.5 -80.5l198 109l77 -113l-162 -90q102 -106 158.5 -245t56.5 -303v-196 q0 -250 -157 -408.5t-392 -158.5q-238 0 -388.5 140.5t-150.5 348.5zM340 468q0 -112 68 -188.5t183 -76.5q116 0 184.5 96.5t68.5 246.5v118q-35 39 -99 65t-151 26q-122 0 -188 -79t-66 -208z" />
<glyph unicode="&#xf1;" d="M107 0v1082h272l13 -155q54 83 133 129t177 46q164 0 256 -103t92 -323v-676h-293v675q0 109 -44 154.5t-133 45.5q-58 0 -104 -23.5t-77 -66.5v-785h-292zM202 1322q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5 t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5z" />
<glyph unicode="&#xf2;" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM217 1498l2 6h309l197 -266h-237zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91 q-113 0 -165.5 -91.5t-52.5 -234.5v-21z" />
<glyph unicode="&#xf3;" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91q-113 0 -165.5 -91.5t-52.5 -234.5 v-21zM429 1238l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xf4;" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM211 1270v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90 t52.5 237v21q0 144 -53 235t-167 91q-113 0 -165.5 -91.5t-52.5 -234.5v-21z" />
<glyph unicode="&#xf5;" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM202 1322q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5 q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91q-113 0 -165.5 -91.5t-52.5 -234.5v-21z" />
<glyph unicode="&#xf6;" d="M67 530v21q0 242 135 396.5t374 154.5q240 0 376 -154t136 -397v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-240 0 -375.5 153.5t-135.5 397.5zM194 1279v204h266v-204h-266zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91 q-113 0 -165.5 -91.5t-52.5 -234.5v-21zM694 1279v204h266v-204h-266z" />
<glyph unicode="&#xf7;" horiz-adv-x="1168" d="M63 573v227h1029v-227h-1029zM432 164v233h293v-233h-293zM432 973v233h293v-233h-293z" />
<glyph unicode="&#xf8;" d="M67 530v21q0 242 135 396.5t374 154.5q50 0 96.5 -8t90.5 -22l70 143h161l-103 -211q95 -74 146 -191.5t51 -261.5v-21q0 -244 -135.5 -397.5t-374.5 -153.5q-48 0 -92 7t-84 19l-71 -146h-161l103 211q-101 71 -153.5 190.5t-52.5 269.5zM358 530q0 -62 8.5 -114 t26.5 -86l6 -1l260 531q-19 8 -39.5 12.5t-43.5 4.5q-113 0 -165.5 -91.5t-52.5 -234.5v-21zM505 215q15 -7 33.5 -9.5t39.5 -2.5q113 0 165.5 90t52.5 237v21q0 54 -8 102t-22 82l-6 1z" />
<glyph unicode="&#xf9;" d="M105 429v653h291v-655q0 -118 40 -169.5t118 -51.5q70 0 120 22.5t82 66.5v787h292v-1082h-249l-26 156q-50 -85 -127 -131t-177 -46q-171 0 -267.5 109.5t-96.5 340.5zM216 1477l2 6h309l197 -266h-237z" />
<glyph unicode="&#xfa;" d="M105 429v653h291v-655q0 -118 40 -169.5t118 -51.5q70 0 120 22.5t82 66.5v787h292v-1082h-249l-26 156q-50 -85 -127 -131t-177 -46q-171 0 -267.5 109.5t-96.5 340.5zM428 1217l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xfb;" d="M105 429v653h291v-655q0 -118 40 -169.5t118 -51.5q70 0 120 22.5t82 66.5v787h292v-1082h-249l-26 156q-50 -85 -127 -131t-177 -46q-171 0 -267.5 109.5t-96.5 340.5zM210 1251v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227z" />
<glyph unicode="&#xfc;" d="M105 429v653h291v-655q0 -118 40 -169.5t118 -51.5q70 0 120 22.5t82 66.5v787h292v-1082h-249l-26 156q-50 -85 -127 -131t-177 -46q-171 0 -267.5 109.5t-96.5 340.5zM193 1258v204h266v-204h-266zM693 1258v204h266v-204h-266z" />
<glyph unicode="&#xfd;" horiz-adv-x="1046" d="M5 1082h314l183 -628l12 -60h6l207 688h314l-439 -1244q-46 -116 -125 -195.5t-237 -79.5q-37 0 -68.5 6t-76.5 17l34 213q13 -2 28 -4t27 -2q72 0 111 35.5t60 88.5l34 84zM375 1217l199 266h309l2 -6l-277 -260h-233z" />
<glyph unicode="&#xfe;" horiz-adv-x="1162" d="M121 0v1560h292v-591q47 64 112 98.5t150 34.5q201 0 312 -157t111 -413v-21q0 -240 -111 -386t-310 -146q-85 0 -151 31.5t-113 92.5v-519h-291v416h-1zM413 297q27 -46 73.5 -70t114.5 -24q106 0 155.5 83t49.5 225v21q0 153 -51 248t-156 95q-66 0 -112.5 -27 t-73.5 -77v-474z" />
<glyph unicode="&#xff;" horiz-adv-x="1046" d="M5 1082h314l183 -628l12 -60h6l207 688h314l-439 -1244q-46 -116 -125 -195.5t-237 -79.5q-37 0 -68.5 6t-76.5 17l34 213q13 -2 28 -4t27 -2q72 0 111 35.5t60 88.5l34 84zM142 1258v204h266v-204h-266zM642 1258v204h266v-204h-266z" />
<glyph unicode="&#x152;" horiz-adv-x="1984" d="M97 576v304q0 265 167 431t437 166q69 0 140 -6t150 -15h865v-225h-703v-366h603v-225h-603v-416h705v-224h-867q-92 -10 -156.5 -15.5t-131.5 -5.5q-270 0 -438 165.5t-168 431.5zM388 576q0 -182 83.5 -277t231.5 -95q40 0 79.5 2t78.5 7v1030q-45 4 -83.5 6.5 t-76.5 2.5q-148 0 -230.5 -94.5t-82.5 -275.5v-306z" />
<glyph unicode="&#x153;" horiz-adv-x="1848" d="M67 530v21q0 242 135 396.5t374 154.5q127 0 227 -46.5t167 -129.5q65 84 159.5 130t213.5 46q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-66 -54 -173 -89.5t-238 -35.5q-127 0 -228 46t-169 131 q-67 -85 -167 -131t-227 -46q-240 0 -375.5 153.5t-135.5 397.5zM358 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91q-113 0 -165.5 -91.5t-52.5 -234.5v-21zM1157 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62 t-58 -163z" />
<glyph unicode="&#x178;" horiz-adv-x="1292" d="M5 1456h320l318 -671h6l318 671h320l-500 -944v-512h-291v527zM269 1601v204h266v-204h-266zM769 1601v204h266v-204h-266z" />
<glyph unicode="&#x2c6;" horiz-adv-x="1016" d="M137 1252v26l282 240h169l287 -243v-23h-232l-140 133l-139 -133h-227z" />
<glyph unicode="&#x2dc;" horiz-adv-x="986" d="M119 1272q0 94 59.5 163.5t149.5 69.5q56 0 152 -43.5t148 -43.5q34 0 60 32t26 79l154 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60 -32.5t-24 -77.5z" />
<glyph unicode="&#x2000;" horiz-adv-x="967" />
<glyph unicode="&#x2001;" horiz-adv-x="1935" />
<glyph unicode="&#x2002;" horiz-adv-x="967" />
<glyph unicode="&#x2003;" horiz-adv-x="1935" />
<glyph unicode="&#x2004;" horiz-adv-x="645" />
<glyph unicode="&#x2005;" horiz-adv-x="483" />
<glyph unicode="&#x2006;" horiz-adv-x="322" />
<glyph unicode="&#x2007;" horiz-adv-x="322" />
<glyph unicode="&#x2008;" horiz-adv-x="241" />
<glyph unicode="&#x2009;" horiz-adv-x="387" />
<glyph unicode="&#x200a;" horiz-adv-x="107" />
<glyph unicode="&#x2010;" horiz-adv-x="801" d="M113 510v225h564v-225h-564z" />
<glyph unicode="&#x2011;" horiz-adv-x="801" d="M113 510v225h564v-225h-564z" />
<glyph unicode="&#x2012;" horiz-adv-x="801" d="M113 510v225h564v-225h-564z" />
<glyph unicode="&#x2013;" horiz-adv-x="1413" d="M141 601v228h1084v-228h-1084z" />
<glyph unicode="&#x2014;" horiz-adv-x="1670" d="M106 601v228h1334v-228h-1334z" />
<glyph unicode="&#x2018;" horiz-adv-x="405" d="M50 1015v192l162 353h143l-60 -352v-193h-245z" />
<glyph unicode="&#x2019;" horiz-adv-x="405" d="M57 1016l60 349v195h246v-194l-162 -350h-144z" />
<glyph unicode="&#x201a;" horiz-adv-x="406" d="M50 -263l60 266v284h246v-268l-147 -282h-159z" />
<glyph unicode="&#x201c;" horiz-adv-x="742" d="M50 1015v192l162 353h143l-60 -352v-193h-245zM379 1015v192l162 353h143l-60 -352v-193h-245z" />
<glyph unicode="&#x201d;" horiz-adv-x="750" d="M57 1016l60 349v195h246v-194l-162 -350h-144zM394 1016l60 349v195h246v-194l-162 -350h-144z" />
<glyph unicode="&#x201e;" horiz-adv-x="732" d="M50 -225l60 268v255h230v-243l-162 -280h-128zM391 -225l60 276v247h231v-243l-162 -280h-129z" />
<glyph unicode="&#x2022;" horiz-adv-x="737" d="M135 716v90q0 100 65 164t172 64q110 0 175 -63.5t65 -164.5v-90q0 -101 -64.5 -163t-173.5 -62t-174 62.5t-65 162.5z" />
<glyph unicode="&#x2026;" horiz-adv-x="1519" d="M144 0v256h292v-256h-292zM587 0v256h292v-256h-292zM1007 0v256h292v-256h-292z" />
<glyph unicode="&#x202f;" horiz-adv-x="387" />
<glyph unicode="&#x2039;" horiz-adv-x="639" d="M108 541v19l280 390h187l-240 -400l240 -399h-187z" />
<glyph unicode="&#x203a;" horiz-adv-x="619" d="M80 151l239 399l-239 400h188l280 -390v-19l-280 -390h-188z" />
<glyph unicode="&#x205f;" horiz-adv-x="483" />
<glyph unicode="&#x20ac;" horiz-adv-x="1116" d="M71 455v200h146v116h-146v200h146v13q0 203 150.5 348t394.5 145q60 0 117.5 -8t125.5 -23l-21 -229q-53 16 -109.5 25.5t-112.5 9.5q-118 0 -185.5 -80.5t-67.5 -185.5v-15h428v-200h-428v-116h428v-200h-428v-8q0 -99 67.5 -171.5t187.5 -72.5q58 0 113.5 8.5 t106.5 25.5l21 -227q-57 -15 -118 -23t-123 -8q-245 0 -396 137.5t-151 330.5v8h-146z" />
<glyph unicode="&#x2122;" horiz-adv-x="1294" d="M96 1351v105h398v-105h-128v-434h-144v434h-126zM565 915v541h159l119 -362h6l120 362h154v-541h-129v282l-6 1l-105 -283h-73l-110 298l-6 -1v-297h-129z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1279" d="M27 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-877h-292v877h-161zM859 0v1560h292v-1560h-292z" />
<glyph unicode="&#xfb03;" horiz-adv-x="1981" d="M27 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-877h-292v877h-161zM752 877v205h161v74q0 204 124.5 314.5t350.5 110.5q78 0 154 -15.5t176 -44.5l-42 -230 q-73 22 -132.5 34t-136.5 12q-101 0 -151.5 -46t-50.5 -135v-74h213v-205h-213v-877h-292v877h-161zM1561 0v1082h292v-1082h-292z" />
<glyph unicode="&#xfb04;" horiz-adv-x="2011" d="M27 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-877h-292v877h-161zM759 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217 q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-877h-292v877h-161zM1591 0v1560h292v-1560h-292z" />
<hkern u1="&#x22;" u2="w" k="-12" />
<hkern u1="&#x27;" u2="w" k="-12" />
<hkern u1="&#x28;" u2="&#x178;" k="-25" />
<hkern u1="&#x28;" u2="&#xdd;" k="-25" />
<hkern u1="&#x28;" u2="Y" k="-25" />
<hkern u1="&#x28;" u2="W" k="-26" />
<hkern u1="&#x28;" u2="V" k="-23" />
<hkern u1="A" u2="w" k="39" />
<hkern u1="A" u2="t" k="20" />
<hkern u1="A" u2="&#x3f;" k="77" />
<hkern u1="C" u2="&#x29;" k="30" />
<hkern u1="D" u2="&#xc6;" k="61" />
<hkern u1="E" u2="w" k="25" />
<hkern u1="F" u2="&#x2026;" k="325" />
<hkern u1="F" u2="&#x201e;" k="325" />
<hkern u1="F" u2="&#x201a;" k="325" />
<hkern u1="F" u2="&#x153;" k="52" />
<hkern u1="F" u2="&#xff;" k="28" />
<hkern u1="F" u2="&#xfd;" k="28" />
<hkern u1="F" u2="&#xfc;" k="25" />
<hkern u1="F" u2="&#xfb;" k="25" />
<hkern u1="F" u2="&#xfa;" k="25" />
<hkern u1="F" u2="&#xf9;" k="25" />
<hkern u1="F" u2="&#xf6;" k="54" />
<hkern u1="F" u2="&#xf5;" k="54" />
<hkern u1="F" u2="&#xf4;" k="54" />
<hkern u1="F" u2="&#xf3;" k="54" />
<hkern u1="F" u2="&#xf2;" k="54" />
<hkern u1="F" u2="&#xeb;" k="52" />
<hkern u1="F" u2="&#xea;" k="52" />
<hkern u1="F" u2="&#xe9;" k="52" />
<hkern u1="F" u2="&#xe8;" k="52" />
<hkern u1="F" u2="&#xe7;" k="52" />
<hkern u1="F" u2="&#xe5;" k="68" />
<hkern u1="F" u2="&#xe4;" k="68" />
<hkern u1="F" u2="&#xe3;" k="68" />
<hkern u1="F" u2="&#xe2;" k="68" />
<hkern u1="F" u2="&#xe1;" k="68" />
<hkern u1="F" u2="&#xe0;" k="68" />
<hkern u1="F" u2="&#xc5;" k="163" />
<hkern u1="F" u2="&#xc4;" k="163" />
<hkern u1="F" u2="&#xc3;" k="163" />
<hkern u1="F" u2="&#xc2;" k="163" />
<hkern u1="F" u2="&#xc1;" k="163" />
<hkern u1="F" u2="&#xc0;" k="163" />
<hkern u1="F" u2="y" k="28" />
<hkern u1="F" u2="v" k="28" />
<hkern u1="F" u2="u" k="25" />
<hkern u1="F" u2="r" k="30" />
<hkern u1="F" u2="q" k="52" />
<hkern u1="F" u2="o" k="54" />
<hkern u1="F" u2="g" k="52" />
<hkern u1="F" u2="e" k="52" />
<hkern u1="F" u2="d" k="52" />
<hkern u1="F" u2="c" k="52" />
<hkern u1="F" u2="a" k="68" />
<hkern u1="F" u2="T" k="-20" />
<hkern u1="F" u2="A" k="163" />
<hkern u1="F" u2="&#x3a;" k="325" />
<hkern u1="F" u2="&#x2e;" k="325" />
<hkern u1="F" u2="&#x2c;" k="325" />
<hkern u1="K" u2="w" k="74" />
<hkern u1="L" u2="w" k="104" />
<hkern u1="O" u2="&#xc6;" k="61" />
<hkern u1="P" u2="&#xc6;" k="165" />
<hkern u1="P" u2="t" k="-16" />
<hkern u1="Q" u2="&#x178;" k="71" />
<hkern u1="Q" u2="&#xdd;" k="71" />
<hkern u1="Q" u2="Y" k="71" />
<hkern u1="Q" u2="W" k="23" />
<hkern u1="Q" u2="V" k="33" />
<hkern u1="Q" u2="T" k="39" />
<hkern u1="R" u2="&#x178;" k="57" />
<hkern u1="R" u2="&#xdd;" k="57" />
<hkern u1="R" u2="Y" k="57" />
<hkern u1="R" u2="V" k="22" />
<hkern u1="R" u2="T" k="31" />
<hkern u1="T" u2="&#xf8;" k="112" />
<hkern u1="T" u2="&#xe6;" k="99" />
<hkern u1="T" u2="&#xc6;" k="195" />
<hkern u1="T" u2="&#xbb;" k="173" />
<hkern u1="T" u2="&#xab;" k="175" />
<hkern u1="T" u2="w" k="55" />
<hkern u1="T" u2="r" k="77" />
<hkern u1="V" u2="&#x7d;" k="-22" />
<hkern u1="V" u2="r" k="35" />
<hkern u1="V" u2="]" k="-20" />
<hkern u1="V" u2="&#x29;" k="-23" />
<hkern u1="W" u2="&#x7d;" k="-16" />
<hkern u1="W" u2="r" k="24" />
<hkern u1="W" u2="]" k="-14" />
<hkern u1="W" u2="&#x29;" k="-17" />
<hkern u1="Y" u2="&#x2022;" k="105" />
<hkern u1="Y" u2="&#xf8;" k="91" />
<hkern u1="Y" u2="&#xe6;" k="89" />
<hkern u1="Y" u2="&#xc6;" k="136" />
<hkern u1="Y" u2="&#xbb;" k="60" />
<hkern u1="Y" u2="&#xab;" k="119" />
<hkern u1="Y" u2="&#x7d;" k="-22" />
<hkern u1="Y" u2="t" k="33" />
<hkern u1="Y" u2="r" k="62" />
<hkern u1="Y" u2="f" k="40" />
<hkern u1="Y" u2="]" k="-21" />
<hkern u1="Y" u2="&#x2a;" k="88" />
<hkern u1="Y" u2="&#x29;" k="-23" />
<hkern u1="Y" u2="&#x26;" k="57" />
<hkern u1="Z" u2="w" k="31" />
<hkern u1="[" u2="&#xdc;" k="21" />
<hkern u1="[" u2="&#xdb;" k="21" />
<hkern u1="[" u2="&#xda;" k="21" />
<hkern u1="[" u2="&#xd9;" k="21" />
<hkern u1="[" u2="U" k="21" />
<hkern u1="[" u2="J" k="21" />
<hkern u1="f" u2="&#x201d;" k="-34" />
<hkern u1="f" u2="&#x201c;" k="-34" />
<hkern u1="f" u2="&#x2019;" k="-34" />
<hkern u1="f" u2="&#x2018;" k="-34" />
<hkern u1="f" u2="&#x7d;" k="-37" />
<hkern u1="f" u2="]" k="-66" />
<hkern u1="f" u2="&#x29;" k="-53" />
<hkern u1="f" u2="&#x27;" k="-34" />
<hkern u1="f" u2="&#x22;" k="-34" />
<hkern u1="k" u2="&#x153;" k="23" />
<hkern u1="k" u2="&#xeb;" k="23" />
<hkern u1="k" u2="&#xea;" k="23" />
<hkern u1="k" u2="&#xe9;" k="23" />
<hkern u1="k" u2="&#xe8;" k="23" />
<hkern u1="k" u2="&#xe7;" k="23" />
<hkern u1="k" u2="q" k="23" />
<hkern u1="k" u2="g" k="23" />
<hkern u1="k" u2="e" k="23" />
<hkern u1="k" u2="d" k="23" />
<hkern u1="k" u2="c" k="23" />
<hkern u1="r" u2="w" k="-27" />
<hkern u1="r" u2="t" k="-27" />
<hkern u1="r" u2="f" k="-24" />
<hkern u1="v" u2="f" k="-15" />
<hkern u1="w" u2="&#x2026;" k="72" />
<hkern u1="w" u2="&#x201e;" k="72" />
<hkern u1="w" u2="&#x201a;" k="72" />
<hkern u1="w" u2="&#x3a;" k="72" />
<hkern u1="w" u2="&#x2e;" k="72" />
<hkern u1="w" u2="&#x2c;" k="72" />
<hkern u1="y" u2="f" k="-15" />
<hkern u1="&#x7b;" u2="&#xdc;" k="23" />
<hkern u1="&#x7b;" u2="&#xdb;" k="23" />
<hkern u1="&#x7b;" u2="&#xda;" k="23" />
<hkern u1="&#x7b;" u2="&#xd9;" k="23" />
<hkern u1="&#x7b;" u2="U" k="23" />
<hkern u1="&#x7b;" u2="J" k="23" />
<hkern u1="&#xc0;" u2="w" k="39" />
<hkern u1="&#xc0;" u2="t" k="20" />
<hkern u1="&#xc0;" u2="&#x3f;" k="77" />
<hkern u1="&#xc1;" u2="w" k="39" />
<hkern u1="&#xc1;" u2="t" k="20" />
<hkern u1="&#xc1;" u2="&#x3f;" k="77" />
<hkern u1="&#xc2;" u2="w" k="39" />
<hkern u1="&#xc2;" u2="t" k="20" />
<hkern u1="&#xc2;" u2="&#x3f;" k="77" />
<hkern u1="&#xc3;" u2="w" k="39" />
<hkern u1="&#xc3;" u2="t" k="20" />
<hkern u1="&#xc3;" u2="&#x3f;" k="77" />
<hkern u1="&#xc4;" u2="w" k="39" />
<hkern u1="&#xc4;" u2="t" k="20" />
<hkern u1="&#xc4;" u2="&#x3f;" k="77" />
<hkern u1="&#xc5;" u2="w" k="39" />
<hkern u1="&#xc5;" u2="t" k="20" />
<hkern u1="&#xc5;" u2="&#x3f;" k="77" />
<hkern u1="&#xc7;" u2="&#x29;" k="30" />
<hkern u1="&#xc8;" u2="w" k="25" />
<hkern u1="&#xc9;" u2="w" k="25" />
<hkern u1="&#xca;" u2="w" k="25" />
<hkern u1="&#xcb;" u2="w" k="25" />
<hkern u1="&#xd0;" u2="&#xc6;" k="61" />
<hkern u1="&#xd2;" u2="&#xc6;" k="61" />
<hkern u1="&#xd3;" u2="&#xc6;" k="61" />
<hkern u1="&#xd4;" u2="&#xc6;" k="61" />
<hkern u1="&#xd5;" u2="&#xc6;" k="61" />
<hkern u1="&#xd6;" u2="&#xc6;" k="61" />
<hkern u1="&#xdd;" u2="&#x2022;" k="105" />
<hkern u1="&#xdd;" u2="&#xf8;" k="91" />
<hkern u1="&#xdd;" u2="&#xe6;" k="89" />
<hkern u1="&#xdd;" u2="&#xc6;" k="136" />
<hkern u1="&#xdd;" u2="&#xbb;" k="60" />
<hkern u1="&#xdd;" u2="&#xab;" k="119" />
<hkern u1="&#xdd;" u2="&#x7d;" k="-22" />
<hkern u1="&#xdd;" u2="t" k="33" />
<hkern u1="&#xdd;" u2="r" k="62" />
<hkern u1="&#xdd;" u2="f" k="40" />
<hkern u1="&#xdd;" u2="]" k="-21" />
<hkern u1="&#xdd;" u2="&#x2a;" k="88" />
<hkern u1="&#xdd;" u2="&#x29;" k="-23" />
<hkern u1="&#xdd;" u2="&#x26;" k="57" />
<hkern u1="&#xfd;" u2="f" k="-15" />
<hkern u1="&#xff;" u2="f" k="-15" />
<hkern u1="&#x178;" u2="&#x2022;" k="105" />
<hkern u1="&#x178;" u2="&#xf8;" k="91" />
<hkern u1="&#x178;" u2="&#xe6;" k="89" />
<hkern u1="&#x178;" u2="&#xc6;" k="136" />
<hkern u1="&#x178;" u2="&#xbb;" k="60" />
<hkern u1="&#x178;" u2="&#xab;" k="119" />
<hkern u1="&#x178;" u2="&#x7d;" k="-22" />
<hkern u1="&#x178;" u2="t" k="33" />
<hkern u1="&#x178;" u2="r" k="62" />
<hkern u1="&#x178;" u2="f" k="40" />
<hkern u1="&#x178;" u2="]" k="-21" />
<hkern u1="&#x178;" u2="&#x2a;" k="88" />
<hkern u1="&#x178;" u2="&#x29;" k="-23" />
<hkern u1="&#x178;" u2="&#x26;" k="57" />
<hkern u1="&#x2018;" u2="w" k="-12" />
<hkern u1="&#x2019;" u2="w" k="-12" />
<hkern u1="&#x201c;" u2="w" k="-12" />
<hkern u1="&#x201d;" u2="w" k="-12" />
<hkern g1="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="285" />
<hkern g1="B" g2="T" k="31" />
<hkern g1="B" g2="V" k="28" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="130" />
<hkern g1="C,Ccedilla" g2="T" k="34" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="24" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="31" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="25" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="50" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="88" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="25" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="26" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="22" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="30" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="25" />
<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="30" />
<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" />
<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="26" />
<hkern g1="K" g2="v,y,yacute,ydieresis" k="47" />
<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="168" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="58" />
<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="298" />
<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-22" />
<hkern g1="L" g2="T" k="213" />
<hkern g1="L" g2="V" k="215" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="267" />
<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="16" />
<hkern g1="L" g2="v,y,yacute,ydieresis" k="140" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="59" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="28" />
<hkern g1="L" g2="W" k="117" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="168" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="12" />
<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="15" />
<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" />
<hkern g1="P" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="382" />
<hkern g1="P" g2="X" k="77" />
<hkern g1="P" g2="Z" k="39" />
<hkern g1="P" g2="v,y,yacute,ydieresis" k="-17" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="100" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="98" />
<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="105" />
<hkern g1="T" g2="m,n,p,ntilde" k="83" />
<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="93" />
<hkern g1="T" g2="s" k="90" />
<hkern g1="T" g2="T" k="-19" />
<hkern g1="T" g2="V" k="-19" />
<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-19" />
<hkern g1="T" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="203" />
<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="77" />
<hkern g1="T" g2="v,y,yacute,ydieresis" k="97" />
<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="200" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" />
<hkern g1="T" g2="W" k="-17" />
<hkern g1="T" g2="S" k="19" />
<hkern g1="T" g2="x" k="91" />
<hkern g1="T" g2="z" k="71" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="141" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="54" />
<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="52" />
<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="54" />
<hkern g1="V" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="215" />
<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" />
<hkern g1="V" g2="v,y,yacute,ydieresis" k="12" />
<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="73" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="73" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="39" />
<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="36" />
<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="36" />
<hkern g1="W" g2="T" k="-16" />
<hkern g1="W" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="169" />
<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="22" />
<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="101" />
<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="30" />
<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="32" />
<hkern g1="X" g2="V" k="-16" />
<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="24" />
<hkern g1="X" g2="v,y,yacute,ydieresis" k="51" />
<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="186" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="159" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="96" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="129" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="77" />
<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="144" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="121" />
<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-20" />
<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-21" />
<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-21" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="247" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="75" />
<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="23" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="131" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="34" />
<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="61" />
<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-20" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="19" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="34" />
<hkern g1="Y,Yacute,Ydieresis" g2="z" k="42" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="159" />
<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-15" />
<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="24" />
<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="24" />
<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="22" />
<hkern g1="Z" g2="v,y,yacute,ydieresis" k="31" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="50" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="17" />
<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="49" />
<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="12" />
<hkern g1="b,p,thorn" g2="x" k="17" />
<hkern g1="b,p,thorn" g2="z" k="17" />
<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="42" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="38" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="56" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="61" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="17" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="32" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="19" />
<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-19" />
<hkern g1="r" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="146" />
<hkern g1="r" g2="v,y,yacute,ydieresis" k="-28" />
<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="17" />
<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="17" />
<hkern g1="v,y,yacute,ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="140" />
<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="23" />
<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="28" />
<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,641 @@
<?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="robotolight" horiz-adv-x="1140" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="498" />
<glyph unicode="&#xfb01;" horiz-adv-x="1100" d="M48 984v98h180v138q0 172 95 266.5t264 94.5q67 0 136 -15t140 -44l-20 -103q-61 25 -118 39t-130 14q-122 0 -184.5 -65t-62.5 -187v-138h253v-98h-253v-984h-120v984h-180zM808 0v1082h120v-1082h-120z" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="498" />
<glyph unicode=" " horiz-adv-x="498" />
<glyph unicode="&#x09;" horiz-adv-x="498" />
<glyph unicode="&#xa0;" horiz-adv-x="498" />
<glyph unicode="!" horiz-adv-x="462" d="M158 0v167h142v-167h-142zM169 478v978h119v-978h-119z" />
<glyph unicode="&#x22;" horiz-adv-x="588" d="M127 1083l3 255v222h102v-216l-33 -261h-72zM366 1083l4 258v219h101v-216l-33 -261h-72z" />
<glyph unicode="#" horiz-adv-x="1270" d="M67 410v93h272l83 441h-279v96h297l79 416h100l-79 -416h314l79 416h100l-79 -416h229v-96h-247l-83 -441h255v-93h-273l-77 -410h-100l77 410h-313l-77 -410h-100l77 410h-255zM439 503h314l83 441h-314z" />
<glyph unicode="$" horiz-adv-x="1135" d="M120 412l3 6h112q0 -177 101 -255t244 -78q148 0 234.5 77.5t86.5 196.5q0 110 -72 180t-254 135q-208 66 -308 159t-100 262q0 162 100 264t272 116v202h102v-202q175 -16 271 -131t94 -311l-3 -5h-112q0 152 -80 247t-224 95q-148 0 -224.5 -77.5t-76.5 -195.5 q0 -114 68 -183.5t261 -133.5q207 -69 306.5 -160.5t99.5 -258.5q0 -166 -104 -265.5t-280 -113.5v-190h-101v189q-181 11 -300.5 115.5t-115.5 315.5z" />
<glyph unicode="%" horiz-adv-x="1514" d="M110 1099v77q0 127 78.5 214t206.5 87q127 0 205.5 -87t78.5 -214v-77q0 -126 -78 -212.5t-204 -86.5q-129 0 -208 86.5t-79 212.5zM206 1099q0 -88 49.5 -150t141.5 -62q89 0 137.5 62t48.5 150v77q0 88 -49 151t-139 63t-139.5 -63t-49.5 -151v-77zM386 169l711 1138 l74 -48l-711 -1138zM842 278v78q0 126 78.5 213t206.5 87q127 0 206 -87t79 -213v-78q0 -126 -78.5 -212.5t-204.5 -86.5q-129 0 -208 86.5t-79 212.5zM939 278q0 -88 49 -150t141 -62q89 0 137.5 62t48.5 150v78q0 91 -49 152t-139 61t-139 -61.5t-49 -151.5v-78z" />
<glyph unicode="&#x26;" horiz-adv-x="1260" d="M91 371q0 120 72.5 216.5t209.5 196.5l15 11q-81 100 -120 182.5t-39 169.5q0 158 89 244t244 86q144 0 228.5 -81t84.5 -204q0 -90 -45 -155t-130 -130l-159 -122l412 -481q49 71 76 159t27 188h110q0 -128 -36.5 -235.5t-105.5 -194.5l185 -216l-2 -5h-137l-122 141 q-85 -78 -186 -120t-218 -42q-209 0 -331 107t-122 285zM211 371q0 -124 85.5 -207.5t247.5 -83.5q92 0 179.5 36t157.5 103l-414 482l-8.5 8.5t-5.5 7.5l-47 -36q-116 -94 -155.5 -170t-39.5 -140zM349 1149q0 -66 31.5 -137t96.5 -151l177 132q58 45 82.5 94t24.5 105 q0 79 -52.5 131t-146.5 52q-102 0 -157.5 -65t-55.5 -161z" />
<glyph unicode="'" horiz-adv-x="348" d="M116 1090l8 266v204h102v-195l-38 -275h-72z" />
<glyph unicode="(" horiz-adv-x="640" d="M140 573v15q0 363 139 651t310 386l6 -1l26 -73q-145 -103 -253 -366t-108 -594v-20q0 -331 108 -594t253 -370l-26 -70h-6q-173 100 -311 382t-138 654z" />
<glyph unicode=")" horiz-adv-x="652" d="M18 -393q144 102 252.5 367t108.5 597v20q0 329 -110.5 595.5t-250.5 368.5l26 70h6q170 -98 309 -386t139 -651v-15q0 -372 -138 -654t-310 -382h-6z" />
<glyph unicode="*" horiz-adv-x="869" d="M29 1108l32 101l332 -123l-4 370h104l-8 -373l324 127l33 -101l-333 -115l223 -294l-85 -63l-214 305l-204 -303l-85 61l217 300z" />
<glyph unicode="+" horiz-adv-x="1156" d="M75 628v112h434v466h121v-466h443v-112h-443v-482h-121v482h-434z" />
<glyph unicode="," horiz-adv-x="392" d="M83 -258l69 279v167h119v-170l-106 -276h-82z" />
<glyph unicode="-" horiz-adv-x="586" d="M49 570v101h479v-101h-479z" />
<glyph unicode="." horiz-adv-x="489" d="M167 0v164h137v-164h-137z" />
<glyph unicode="/" horiz-adv-x="813" d="M30 -125l608 1581h108l-607 -1581h-109z" />
<glyph unicode="0" horiz-adv-x="1194" d="M135 565v325q0 281 122 434t339 153t340 -153t123 -434v-325q0 -282 -122 -434t-339 -152q-216 0 -339.5 152.5t-123.5 433.5zM255 547q0 -222 88.5 -344.5t254.5 -122.5t253.5 122t87.5 345v363q0 224 -88 344.5t-255 120.5t-254 -120.5t-87 -344.5v-363z" />
<glyph unicode="1" horiz-adv-x="1135" d="M188 1288v84l490 88v-1467h-120v1338z" />
<glyph unicode="2" horiz-adv-x="1135" d="M111 1043q-5 182 118 308t333 126q188 0 301 -108t113 -290q0 -120 -75.5 -243.5t-210.5 -275.5l-401 -454l2 -5h750v-101h-904v92l477 541q132 149 186.5 249.5t54.5 192.5q0 136 -76.5 218t-216.5 82q-166 0 -252 -92t-86 -246h-111z" />
<glyph unicode="3" horiz-adv-x="1135" d="M104 389l2 6h112q0 -139 96.5 -227t249.5 -88q155 0 242 80.5t87 230.5q0 153 -91 226.5t-260 73.5h-139v102h139q159 0 241 79.5t82 204.5q0 136 -77 217t-229 81q-140 0 -229.5 -82.5t-89.5 -217.5h-112l-2 6q-5 170 119 283t314 113q195 0 310.5 -107t115.5 -297 q0 -103 -64 -193.5t-180 -134.5q136 -39 203.5 -131.5t67.5 -218.5q0 -194 -125.5 -305t-322.5 -111q-191 0 -328 108.5t-132 301.5z" />
<glyph unicode="4" horiz-adv-x="1135" d="M69 368v68l671 1020h131v-987h228v-101h-228v-368h-119v368h-683zM211 469h541v830l-6 2l-51 -109z" />
<glyph unicode="5" horiz-adv-x="1135" d="M174 377l2 6h107q0 -147 83.5 -225t222.5 -78q162 0 242.5 98t80.5 284q0 163 -80.5 261.5t-225.5 98.5q-140 0 -213.5 -44.5t-106.5 -134.5l-97 16l81 797h707v-111h-605l-54 -519q55 50 121 77t179 30q186 3 300 -125t114 -344q0 -221 -110.5 -353t-332.5 -132 q-180 0 -300 100.5t-115 297.5z" />
<glyph unicode="6" horiz-adv-x="1135" d="M152 540v367q0 252 143 411t352 159q75 0 148 -17t130 -49l-31 -98q-57 32 -113 47t-134 15q-162 0 -268.5 -126t-106.5 -331v-129q60 78 153 125t206 47q196 0 310 -135t114 -352q0 -215 -122.5 -355t-318.5 -140q-201 0 -331.5 150t-130.5 411zM272 531q0 -209 96 -330 t246 -121q146 0 233.5 114.5t87.5 279.5q0 175 -85 282t-243 107q-121 0 -211.5 -63t-123.5 -162v-107z" />
<glyph unicode="7" horiz-adv-x="1135" d="M77 1354v102h955v-102q-236 -280 -361 -568.5t-167 -663.5l-11 -122h-120l11 122q42 370 174 669.5t350 562.5h-831z" />
<glyph unicode="8" horiz-adv-x="1135" d="M100 386q0 129 79 224.5t212 136.5q-115 40 -182.5 128t-67.5 206q0 188 118.5 292t307.5 104q188 0 308.5 -104.5t120.5 -291.5q0 -118 -69 -206.5t-184 -128.5q133 -41 213.5 -136.5t80.5 -223.5q0 -196 -131 -301.5t-337 -105.5q-210 0 -339.5 105t-129.5 302z M219 385q0 -143 97 -224t253 -81q152 0 250 81.5t98 223.5q0 138 -100 224.5t-250 86.5q-152 0 -250 -86.5t-98 -224.5zM260 1082q0 -129 86.5 -206.5t222.5 -77.5q133 0 220 77.5t87 206.5q0 126 -88.5 209.5t-220.5 83.5q-135 0 -221 -80t-86 -213z" />
<glyph unicode="9" horiz-adv-x="1135" d="M89 958q0 221 127.5 370t315.5 149q211 0 338 -137.5t127 -399.5v-429q0 -253 -134 -392.5t-352 -139.5q-78 0 -156.5 15t-149.5 46l22 100q68 -32 134.5 -46t149.5 -14q166 0 264 111t98 318v146q-53 -92 -142.5 -142t-199.5 -50q-199 0 -320.5 138t-121.5 357zM213 958 q0 -168 86 -281t232 -113q130 0 217.5 66.5t124.5 164.5v154q0 207 -90.5 316.5t-245.5 109.5q-141 0 -232.5 -122t-91.5 -295z" />
<glyph unicode=":" horiz-adv-x="434" d="M154 0v164h137v-164h-137zM154 916v164h137v-164h-137z" />
<glyph unicode=";" horiz-adv-x="438" d="M106 -258l69 279v167h119v-170l-106 -276h-82zM158 918v164h137v-164h-137z" />
<glyph unicode="&#x3c;" horiz-adv-x="1047" d="M77 501v97l827 378v-126l-614 -272l-108 -28v-6l108 -28l614 -268v-126z" />
<glyph unicode="=" horiz-adv-x="1147" d="M149 422v106h834v-106h-834zM149 833v106h834v-106h-834z" />
<glyph unicode="&#x3e;" horiz-adv-x="1061" d="M124 122v124l632 274l108 27v6l-108 29l-632 271v123l845 -378v-97z" />
<glyph unicode="?" horiz-adv-x="930" d="M81 1122q-3 165 104 260t273 95q179 0 280.5 -101t101.5 -273q0 -135 -66.5 -239.5t-188.5 -218.5q-62 -53 -75.5 -99t-13.5 -142h-119q1 131 22 182.5t114 136.5q108 112 157.5 187.5t49.5 191.5q0 128 -68 198t-194 70q-118 0 -190 -68.5t-73 -185.5h-112zM373 0v154 h139v-154h-139z" />
<glyph unicode="@" horiz-adv-x="1870" d="M122 478q18 424 252.5 683t609.5 259q391 0 587.5 -241.5t179.5 -665.5q-10 -216 -117 -375t-313 -159q-78 0 -130.5 51t-69.5 142q-53 -96 -131 -144.5t-180 -48.5q-131 0 -199 120t-49 317q23 254 141 407.5t286 153.5q94 0 151 -26.5t126 -81.5l-2 -2h3l-50 -574 q-10 -132 30 -180t95 -48q142 0 224.5 124.5t93.5 323.5q18 389 -150 604.5t-530 215.5q-323 0 -533 -235.5t-227 -619.5q-19 -379 163.5 -612.5t519.5 -233.5q88 0 178 22t152 57l31 -75q-64 -41 -167 -65t-198 -24q-380 0 -588 249.5t-189 681.5zM672 416 q-16 -155 26 -247t138 -92q86 0 156.5 43t122.5 157v8.5t1 7.5l47 544q-32 23 -71 36t-87 13q-134 0 -222 -119t-111 -351z" />
<glyph unicode="A" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM346 513h588l-290 788h-6z" />
<glyph unicode="B" horiz-adv-x="1269" d="M191 0v1456h425q227 0 353.5 -95.5t126.5 -287.5q0 -112 -63.5 -195t-172.5 -115q133 -24 216 -125t83 -233q0 -195 -126.5 -300t-338.5 -105h-503zM310 101h384q161 0 253 79.5t92 222.5q0 131 -83.5 215t-242.5 84h-403v-601zM310 803h335q158 0 244.5 69.5t86.5 204.5 q0 138 -92 207.5t-268 69.5h-306v-551z" />
<glyph unicode="C" horiz-adv-x="1313" d="M132 609v237q0 278 149 454.5t392 176.5q232 0 368 -123t155 -346l-2 -6h-112q-24 181 -124.5 277t-284.5 96q-191 0 -306.5 -148t-115.5 -379v-239q0 -234 115.5 -381.5t306.5 -147.5q184 0 285 94t124 281h112l2 -6q-19 -219 -156 -344.5t-367 -125.5 q-243 0 -392 175.5t-149 454.5z" />
<glyph unicode="D" horiz-adv-x="1344" d="M191 0v1456h423q267 0 441 -178t174 -457v-187q0 -280 -174 -457t-441 -177h-423zM310 101h304q216 0 355.5 151t139.5 382v190q0 228 -140 379t-355 151h-304v-1253z" />
<glyph unicode="E" horiz-adv-x="1180" d="M191 0v1456h917v-102h-798v-547h701v-102h-701v-604h803v-101h-922z" />
<glyph unicode="F" horiz-adv-x="1181" d="M191 0v1456h929v-102h-810v-569h708v-103h-708v-682h-119z" />
<glyph unicode="G" horiz-adv-x="1401" d="M146 600v267q0 270 154.5 440t400.5 170q235 0 367.5 -117.5t153.5 -305.5l-2 -6h-111q-26 146 -123 236.5t-285 90.5q-196 0 -315.5 -142t-119.5 -364v-269q0 -228 127 -374t332 -146q145 0 246.5 40.5t138.5 88.5v380h-387v102h507v-518q-49 -71 -178.5 -132.5 t-326.5 -61.5q-254 0 -416.5 173t-162.5 448z" />
<glyph unicode="H" horiz-adv-x="1448" d="M191 0v1456h119v-684h828v684h119v-1456h-119v670h-828v-670h-119z" />
<glyph unicode="I" horiz-adv-x="554" d="M217 0v1456h120v-1456h-120z" />
<glyph unicode="J" horiz-adv-x="1127" d="M82 395l2 6h112q0 -158 84 -239.5t240 -81.5q133 0 219 90.5t86 242.5v1043h120v-1043q0 -199 -118.5 -316.5t-306.5 -117.5q-205 0 -324 106q-114 102 -114 294v16z" />
<glyph unicode="K" horiz-adv-x="1308" d="M191 0v1456h119v-670h199l573 670h135l2 -5l-602 -711l645 -735l-2 -5h-142l-608 685h-200v-685h-119z" />
<glyph unicode="L" horiz-adv-x="1079" d="M191 0v1456h120v-1355h720v-101h-840z" />
<glyph unicode="M" horiz-adv-x="1775" d="M191 0v1456h157l535 -1282h6l537 1282h158v-1456h-119v643l10 637l-6 2l-541 -1282h-83l-540 1276l-6 -1l11 -632v-643h-119z" />
<glyph unicode="N" horiz-adv-x="1454" d="M191 0v1456h120l827 -1250l6 1v1249h119v-1456h-119l-827 1252l-6 -1v-1251h-120z" />
<glyph unicode="O" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239z" />
<glyph unicode="P" horiz-adv-x="1267" d="M191 0v1456h501q229 0 354.5 -116.5t125.5 -308.5q0 -194 -125.5 -310t-354.5 -116h-382v-605h-119zM310 707h382q180 0 270.5 91.5t90.5 230.5q0 140 -90 232.5t-271 92.5h-382v-647z" />
<glyph unicode="Q" horiz-adv-x="1379" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -164 -54.5 -295.5t-155.5 -214.5l250 -236l-83 -75l-264 249q-59 -29 -124.5 -43.5t-137.5 -14.5q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5 t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380v-239z" />
<glyph unicode="R" horiz-adv-x="1348" d="M188 0v1455h493q234 0 359 -102.5t125 -299.5q0 -116 -67 -207.5t-189 -133.5q135 -34 194.5 -121.5t59.5 -219.5v-137q0 -68 16 -122t53 -88v-24h-122q-37 36 -52 101t-15 135v133q0 134 -86.5 211.5t-241.5 77.5h-408v-658h-119zM307 760h359q197 0 288 79.5t91 214.5 q0 144 -90.5 221.5t-273.5 77.5h-374v-593z" />
<glyph unicode="S" horiz-adv-x="1231" d="M100 408l2 6h110q0 -170 127 -252t299 -82q173 0 279.5 76t106.5 201q0 119 -89 194.5t-310 133.5q-239 60 -362 156t-123 259q0 167 137.5 272t353.5 105q225 0 363 -125q134 -121 134 -295v-10l-3 -6h-110q0 146 -103.5 240t-280.5 94q-175 0 -273.5 -78t-98.5 -194 q0 -110 91 -183.5t314 -129.5q235 -60 357.5 -162t122.5 -269q0 -174 -142.5 -277t-363.5 -103q-218 -1 -380 109q-158 106 -158 308v12z" />
<glyph unicode="T" horiz-adv-x="1213" d="M45 1354v102h1122v-102h-501v-1354h-120v1354h-501z" />
<glyph unicode="U" horiz-adv-x="1374" d="M167 469v987h120v-987q0 -186 110 -287.5t287 -101.5q180 0 293 101t113 288v987h119v-987q0 -238 -145.5 -364t-379.5 -126q-231 0 -374 126.5t-143 363.5z" />
<glyph unicode="V" horiz-adv-x="1263" d="M32 1456h130l438 -1210l29 -97h6l29 97l437 1210h130l-543 -1456h-113z" />
<glyph unicode="W" horiz-adv-x="1834" d="M57 1456h123l265 -1044l44 -223l6 -1l55 224l308 1044h113l308 -1044l53 -225l6 1l47 224l263 1044h122l-374 -1456h-113l-327 1117l-38 153h-6l-37 -153l-330 -1117h-114z" />
<glyph unicode="X" horiz-adv-x="1256" d="M59 0l500 738l-485 718h145l409 -622l411 622h145l-484 -718l500 -738h-143l-427 642l-426 -642h-145z" />
<glyph unicode="Y" horiz-adv-x="1244" d="M33 1456h139l448 -809l451 809h139l-531 -924v-532h-119v539z" />
<glyph unicode="Z" horiz-adv-x="1224" d="M95 0v92l858 1262h-831v102h977v-87l-861 -1268h893v-101h-1036z" />
<glyph unicode="[" horiz-adv-x="491" d="M163 -312v1976h330v-102h-210v-1772h210v-102h-330z" />
<glyph unicode="\" horiz-adv-x="807" d="M48 1456h117l608 -1581h-117z" />
<glyph unicode="]" horiz-adv-x="491" d="M0 -210h211v1772h-211v102h331v-1976h-331v102z" />
<glyph unicode="^" horiz-adv-x="852" d="M77 729l299 727h90l298 -727h-116l-196 484l-30 106h-6l-30 -106l-193 -484h-116z" />
<glyph unicode="_" horiz-adv-x="884" d="M1 0h881v-101h-881v101z" />
<glyph unicode="`" horiz-adv-x="585" d="M93 1471l2 5h154l202 -266h-117z" />
<glyph unicode="a" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6v12q0 114 110 204q116 96 297 96q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5z" />
<glyph unicode="b" d="M157 0v1560h120v-648q54 91 138 140.5t200 49.5q195 0 305 -155.5t110 -414.5v-21q0 -243 -110 -387.5t-303 -144.5q-119 0 -205 47.5t-139 136.5l-13 -163h-103zM277 288q40 -94 119.5 -149.5t197.5 -55.5q157 0 236 116t79 312v21q0 207 -80 336.5t-237 129.5 q-125 0 -201.5 -62t-113.5 -159v-489z" />
<glyph unicode="c" horiz-adv-x="1061" d="M97 520v42q0 236 121 388t340 152q178 0 296 -105q115 -102 115 -265v-11l-2 -6h-107q0 130 -87.5 207.5t-214.5 77.5q-174 0 -257.5 -124.5t-83.5 -313.5v-42q0 -192 83 -316t259 -124q119 0 210 68t91 189h106l2 -6v-11q0 -142 -120 -240q-125 -101 -289 -101 q-221 0 -341.5 151.5t-120.5 389.5z" />
<glyph unicode="d" d="M111 511v21q0 259 109.5 414.5t305.5 155.5q113 0 196 -48t138 -136v642h119v-1560h-106l-10 157q-54 -86 -139 -132t-200 -46q-194 0 -303.5 144.5t-109.5 387.5zM231 511q0 -196 78.5 -312t236.5 -116q116 0 193.5 52t120.5 144v508q-41 94 -116 152.5t-196 58.5 q-158 0 -237.5 -129.5t-79.5 -336.5v-21z" />
<glyph unicode="e" horiz-adv-x="1055" d="M92 509v55q0 232 133.5 385t323.5 153q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 191 31t135 89l51 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-203 0 -337.5 150t-134.5 380zM221 644l2 -5h634v30q0 141 -83 236t-225 95q-133 0 -223 -101.5 t-105 -254.5z" />
<glyph unicode="f" horiz-adv-x="673" d="M66 984v98h179v158q0 163 81.5 252t228.5 89q33 0 67 -5t69 -14l-15 -99q-24 6 -49.5 9.5t-59.5 3.5q-98 0 -150 -62t-52 -174v-158h258v-98h-258v-984h-120v984h-179z" />
<glyph unicode="g" horiz-adv-x="1141" d="M111 511v21q0 259 110.5 414.5t307.5 155.5q115 0 199 -50.5t139 -142.5l14 173h101v-1068q0 -209 -115.5 -330t-321.5 -121q-78 0 -166 19t-154 52l31 101q64 -32 135 -48.5t152 -16.5q158 0 238.5 91t80.5 253v136q-55 -82 -139 -126.5t-196 -44.5q-195 0 -305.5 145 t-110.5 387zM231 511q0 -195 80 -311.5t238 -116.5q116 0 193.5 53t119.5 146v502q-39 94 -114.5 154t-196.5 60q-158 0 -239 -130t-81 -336v-21z" />
<glyph unicode="h" d="M158 0v1560h120v-663q54 97 144 151t210 54q171 0 262.5 -106t91.5 -329v-667h-120v669q0 176 -69.5 252.5t-191.5 76.5q-123 0 -205.5 -64.5t-121.5 -171.5v-762h-120z" />
<glyph unicode="i" horiz-adv-x="465" d="M173 0v1082h119v-1082h-119zM173 1392v168h119v-168h-119z" />
<glyph unicode="j" horiz-adv-x="484" d="M-115 -418l13 101q16 -5 44 -10t49 -5q89 0 139 61.5t50 181.5v1171h119v-1171q0 -167 -80 -257.5t-222 -90.5q-30 0 -56.5 5t-55.5 14zM174 1396v164h119v-164h-119z" />
<glyph unicode="k" horiz-adv-x="1006" d="M159 0v1560h120v-930h126l402 452h140l2 -5l-433 -488l478 -584l-3 -5h-137l-437 527h-138v-527h-120z" />
<glyph unicode="l" horiz-adv-x="465" d="M173 0v1560h119v-1560h-119z" />
<glyph unicode="m" horiz-adv-x="1815" d="M152 0v1082h107l11 -179q52 95 138.5 147t206.5 52q124 0 207.5 -60t119.5 -183q49 114 139.5 178.5t220.5 64.5q173 0 267 -115t94 -356v-631h-120v633q0 200 -70.5 282.5t-196.5 82.5q-139 0 -215 -87t-94 -223q0 -7 0.5 -20t0.5 -19v-649h-121v633q0 196 -71.5 280.5 t-196.5 84.5q-127 0 -201.5 -64.5t-104.5 -173.5v-760h-121z" />
<glyph unicode="n" d="M158 0v1082h106l11 -189q52 100 140.5 154.5t209.5 54.5q176 0 268 -107.5t92 -335.5v-659h-120v658q0 186 -69.5 263t-197.5 77q-126 0 -205.5 -66.5t-114.5 -176.5v-755h-120z" />
<glyph unicode="o" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33z" />
<glyph unicode="p" d="M157 -416v1498h101l15 -168q54 90 139.5 139t201.5 49q195 0 305 -155.5t110 -414.5v-21q0 -243 -110 -387.5t-303 -144.5q-114 0 -199.5 43t-139.5 123v-561h-120zM277 271q41 -89 118.5 -140t193.5 -51q157 0 238.5 118t81.5 313v21q0 206 -82 336t-240 130 q-121 0 -196.5 -57.5t-113.5 -149.5v-520z" />
<glyph unicode="q" d="M111 511v21q0 259 109.5 414.5t305.5 155.5q111 0 194.5 -46.5t137.5 -132.5l12 159h104v-1498h-119v558q-55 -79 -138 -121t-193 -42q-194 0 -303.5 144.5t-109.5 387.5zM231 511q0 -196 78.5 -313.5t236.5 -117.5q112 0 188.5 50.5t120.5 137.5v530 q-41 89 -116.5 145.5t-190.5 56.5q-158 0 -237.5 -130.5t-79.5 -337.5v-21z" />
<glyph unicode="r" horiz-adv-x="697" d="M158 0v1082h105l15 -180v-12q47 100 126 156t188 56q23 0 44.5 -3.5t35.5 -7.5l-16 -112l-89 6q-113 0 -185.5 -63.5t-103.5 -174.5v-747h-120z" />
<glyph unicode="s" horiz-adv-x="1043" d="M110 297l2 6h110q7 -117 95.5 -170t208.5 -53q130 0 205 57t75 138q0 76 -62.5 133t-225.5 93q-194 42 -286.5 111t-92.5 195q0 124 104.5 209.5t276.5 85.5q183 0 290 -90q102 -86 102 -215v-12l-2 -6h-111q0 89 -75.5 155t-203.5 66q-131 0 -196.5 -56.5t-65.5 -132.5 q0 -75 56.5 -124t225.5 -86q193 -43 289 -117.5t96 -202.5q0 -135 -109.5 -218.5t-289.5 -83.5q-198 0 -310 94q-107 89 -106 211v13z" />
<glyph unicode="t" horiz-adv-x="680" d="M38 984v98h187v277h121v-277h238v-98h-238v-705q0 -106 38.5 -150.5t102.5 -44.5q29 0 56.5 2.5t63.5 8.5l18 -89q-30 -13 -73 -20t-86 -7q-114 0 -177.5 72t-63.5 228v705h-187z" />
<glyph unicode="u" d="M154 455v627h120v-629q0 -198 67.5 -284t191.5 -86q136 0 217 61t113 168v770h120v-1082h-106l-10 177q-52 -95 -140 -146.5t-208 -51.5q-171 0 -268 116t-97 360z" />
<glyph unicode="v" horiz-adv-x="1002" d="M44 1082h124l298 -811l35 -127h6l38 127l294 811h124l-411 -1082h-96z" />
<glyph unicode="w" horiz-adv-x="1550" d="M65 1082h124l202 -731l41 -193h6l51 193l230 731h103l230 -731l52 -198h6l45 198l197 731h124l-315 -1082h-102l-240 740l-47 187h-6l-48 -187l-236 -740h-103z" />
<glyph unicode="x" horiz-adv-x="1002" d="M50 0l383 551l-367 531h141l291 -442l293 442h142l-367 -531l382 -551h-140l-308 461l-308 -461h-142z" />
<glyph unicode="y" horiz-adv-x="1002" d="M35 1082h133l297 -789l38 -129h6l327 918h134l-470 -1255q-42 -110 -109 -187t-196 -77q-21 0 -51 4.5t-44 9.5l14 100q12 -2 38.5 -4.5t38.5 -2.5q78 0 125 55.5t80 142.5l57 146z" />
<glyph unicode="z" horiz-adv-x="1002" d="M90 0v88l652 891h-632v103h783v-89l-655 -892h703v-101h-851z" />
<glyph unicode="{" horiz-adv-x="676" d="M68 543v104q118 0 174.5 67t56.5 190v228q0 171 77.5 290.5t260.5 174.5l26 -79q-127 -41 -185.5 -142t-58.5 -244v-228q0 -110 -45.5 -191t-138.5 -118q93 -39 138.5 -120.5t45.5 -190.5v-226q0 -143 59.5 -241.5t187.5 -140.5l-29 -80q-183 55 -260.5 173.5 t-77.5 288.5v226q0 122 -56.5 190.5t-174.5 68.5z" />
<glyph unicode="|" horiz-adv-x="452" d="M178 -270v1726h101v-1726h-101z" />
<glyph unicode="}" horiz-adv-x="676" d="M9 -324q127 42 187 140.5t60 241.5v226q0 112 47 193t146 117q-99 35 -146 116t-47 194v228q0 144 -58.5 244.5t-185.5 141.5l26 79q182 -55 260 -174.5t78 -290.5v-228q0 -122 56 -189.5t175 -67.5v-104q-119 0 -175 -68.5t-56 -190.5v-226q0 -170 -77.5 -288.5 t-260.5 -173.5z" />
<glyph unicode="~" horiz-adv-x="1402" d="M143 474q0 131 79 222t202 91q87 0 160.5 -37t162.5 -113q63 -57 116.5 -82.5t110.5 -25.5q77 0 131 64t54 162l98 -15q0 -129 -81 -223t-202 -94q-88 0 -160.5 35.5t-160.5 114.5q-64 54 -118.5 80.5t-110.5 26.5q-79 0 -131.5 -60.5t-52.5 -160.5z" />
<glyph unicode="&#xa1;" horiz-adv-x="452" d="M145 898v184h142v-184h-142zM156 -374v978h120v-978h-120z" />
<glyph unicode="&#xa2;" horiz-adv-x="1115" d="M122 520v42q0 217 103 364.5t292 171.5v220h120v-219q158 -17 259.5 -119t98.5 -259l-3 -6h-107q0 130 -87.5 207.5t-214.5 77.5q-174 0 -257.5 -124.5t-83.5 -313.5v-42q0 -192 83 -316t259 -124q119 0 210 68t91 189h107l2 -6q4 -137 -102 -234t-255 -115v-227h-120 v228q-190 23 -292.5 170.5t-102.5 366.5z" />
<glyph unicode="&#xa3;" horiz-adv-x="1170" d="M67 642v102h203l-11 296q0 204 106 320.5t284 116.5q187 0 281 -103.5t91 -277.5l-3 -6h-112q0 148 -68.5 216.5t-188.5 68.5q-125 0 -197.5 -88t-72.5 -247l11 -296h450v-102h-447l7 -176q0 -107 -25.5 -204t-71.5 -161h769v-101h-941v101h10q70 15 105 130t35 235 l-7 176h-207z" />
<glyph unicode="&#xa4;" horiz-adv-x="1481" d="M109 60l159 161q-60 81 -92 179t-32 208q0 112 34.5 214t98.5 184l-168 171l85 87l167 -170q78 67 175 103.5t204 36.5q106 0 203 -37.5t176 -104.5l170 173l86 -88l-171 -175q62 -82 96 -182.5t34 -211.5q0 -108 -32 -206t-90 -178l163 -164l-86 -87l-158 160 q-80 -74 -180.5 -113.5t-210.5 -39.5q-111 0 -211.5 39.5t-179.5 112.5l-155 -158zM257 608q0 -215 141.5 -366t341.5 -151q198 0 339.5 151t141.5 366q0 213 -141.5 363.5t-339.5 150.5q-200 0 -341.5 -150.5t-141.5 -363.5z" />
<glyph unicode="&#xa5;" horiz-adv-x="1223" d="M45 1456h139l423 -723l424 723h139l-455 -751h371v-102h-421v-175h421v-102h-421v-326h-119v326h-416v102h416v175h-416v102h370z" />
<glyph unicode="&#xa6;" horiz-adv-x="444" d="M159 -270v771h120v-771h-120zM159 698v758h120v-758h-120z" />
<glyph unicode="&#xa7;" horiz-adv-x="1239" d="M108 -70l2 6l112 2q0 -173 113 -252t271 -79q163 0 255.5 70.5t92.5 181.5q0 106 -77 166t-292 121q-243 61 -360 149.5t-117 255.5q0 98 58.5 169t164.5 105q-90 49 -134 119.5t-44 175.5q0 161 128 259t343 98q222 0 346.5 -111.5t120.5 -313.5l-2 -6h-112 q0 141 -94 235t-259 94q-173 0 -262 -71t-89 -181q0 -114 74 -173t299 -122q247 -65 360 -148.5t113 -248.5q0 -98 -61 -168.5t-171 -103.5q94 -50 141 -120.5t47 -177.5q0 -166 -127.5 -261t-341.5 -95q-213 0 -358 102.5t-140 322.5zM228 553q0 -116 79 -175t323 -127 q34 -10 65 -19t60 -18q115 13 179.5 71.5t64.5 142.5q0 108 -85 170.5t-318 130.5q-40 9 -75.5 19.5t-66.5 22.5q-112 -14 -169 -73t-57 -145z" />
<glyph unicode="&#xa8;" horiz-adv-x="959" d="M162 1299v157h174v-157h-174zM632 1299v157h173v-157h-173z" />
<glyph unicode="&#xa9;" horiz-adv-x="1637" d="M107 729q0 315 207 531t503 216q295 0 502 -216t207 -531q0 -316 -207.5 -533t-501.5 -217q-296 0 -503 217t-207 533zM192 729q0 -279 182.5 -471.5t442.5 -192.5q257 0 440.5 192.5t183.5 471.5q0 277 -183 468.5t-441 191.5q-260 0 -442.5 -191.5t-182.5 -468.5z M474 669v119q0 172 91 279.5t242 107.5q147 0 230 -79t79 -228l-2 -6h-91q0 113 -55 168t-161 55q-110 0 -172 -83.5t-62 -212.5v-120q0 -132 61.5 -214.5t172.5 -82.5q107 0 161 54t54 170h91l2 -6q4 -150 -78.5 -229t-229.5 -79q-151 0 -242 106.5t-91 280.5z" />
<glyph unicode="&#xaa;" horiz-adv-x="906" d="M135 920q0 105 79 163t229 58h182v61q0 85 -41 131.5t-120 46.5q-92 0 -142.5 -37.5t-50.5 -108.5l-99 9l-2 6q-5 98 77 163t217 65q123 0 196.5 -71.5t73.5 -204.5v-314q0 -48 6 -92.5t20 -88.5h-111q-9 25 -14.5 52.5t-7.5 55.5q-37 -53 -98.5 -87.5t-144.5 -34.5 q-119 0 -184 61t-65 167zM243 924q0 -66 39.5 -101.5t121.5 -35.5q70 0 135.5 38t85.5 85v147h-181q-96 0 -148.5 -38.5t-52.5 -94.5z" />
<glyph unicode="&#xab;" horiz-adv-x="933" d="M123 541v19l295 379h105l-276 -389l276 -388h-105zM432 541v19l295 379h105l-276 -389l276 -388h-105z" />
<glyph unicode="&#xac;" horiz-adv-x="1117" d="M124 670v106h812v-390h-120v284h-692z" />
<glyph unicode="&#xad;" horiz-adv-x="586" d="M49 570v101h479v-101h-479z" />
<glyph unicode="&#xae;" horiz-adv-x="1642" d="M102 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -207.5 -533t-502.5 -217q-296 0 -503 217t-207 533zM187 729q0 -279 183 -471.5t442 -192.5q258 0 441 192.5t183 471.5q0 277 -183 468.5t-441 191.5q-259 0 -442 -191.5t-183 -468.5zM552 316v850 h258q147 0 226 -63t79 -185q0 -68 -36.5 -117.5t-104.5 -79.5q68 -25 98 -78t30 -128v-56q0 -40 4 -73t13 -54v-16h-102q-10 21 -12 61.5t-2 82.5v54q0 84 -38 121t-127 37h-188v-356h-98zM650 763h181q79 0 132.5 40.5t53.5 112.5q0 85 -46 122t-161 37h-160v-312z" />
<glyph unicode="&#xaf;" horiz-adv-x="874" d="M106 1359v97h670v-97h-670z" />
<glyph unicode="&#xb0;" horiz-adv-x="774" d="M143 1227q0 102 72 176t173 74q99 0 170.5 -74t71.5 -176q0 -104 -71 -175.5t-171 -71.5q-101 0 -173 72t-72 175zM233 1227q0 -68 44.5 -112t110.5 -44q65 0 108.5 44t43.5 112t-43.5 113.5t-108.5 45.5q-66 0 -110.5 -46t-44.5 -113z" />
<glyph unicode="&#xb1;" horiz-adv-x="1086" d="M85 728v101h414v438h110v-438h392v-101h-392v-439h-110v439h-414zM193 48v102h835v-102h-835z" />
<glyph unicode="&#xb2;" horiz-adv-x="835" d="M118 667v90l315 282q77 71 104 115.5t27 91.5q0 64 -39 103t-118 39q-87 0 -134 -42t-47 -108h-100l-2 6q-6 97 72.5 166t210.5 69q124 0 195 -60.5t71 -173.5q0 -75 -47 -136t-150 -158l-214 -188l2 -6h423v-90h-569z" />
<glyph unicode="&#xb3;" horiz-adv-x="852" d="M120 882l2 6h101q0 -63 51 -103t135 -40q90 0 140.5 38t50.5 103q0 75 -46.5 109.5t-139.5 34.5h-122v89h122q88 0 130.5 35t42.5 99q0 59 -45 96.5t-133 37.5q-75 0 -124.5 -35.5t-49.5 -93.5h-99l-2 6q-6 94 74.5 154t200.5 60q132 0 209 -58.5t77 -166.5 q0 -58 -35.5 -105t-98.5 -72q72 -22 110 -70.5t38 -119.5q0 -109 -83.5 -170t-216.5 -61q-121 0 -207.5 58.5t-81.5 168.5z" />
<glyph unicode="&#xb4;" horiz-adv-x="576" d="M116 1212l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xb5;" d="M162 -416v1498h119v-633q0 -207 71 -288t192 -81q137 0 212 59.5t103 170.5v772h120v-1082h-103l-11 155q-48 -85 -126 -130.5t-187 -45.5q-88 0 -157 30t-114 96v-521h-119z" />
<glyph unicode="&#xb6;" horiz-adv-x="973" d="M82 988q0 207 129.5 337.5t362.5 130.5h226v-1456h-120v520h-106q-233 0 -362.5 129.5t-129.5 338.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="503" d="M166 624v180h155v-180h-155z" />
<glyph unicode="&#xb8;" horiz-adv-x="498" d="M98 -357q90 0 151.5 30.5t61.5 89.5q0 57 -41.5 79.5t-145.5 30.5l29 127h93l-12 -64q79 -9 127.5 -48.5t48.5 -122.5q0 -91 -79 -145.5t-226 -54.5z" />
<glyph unicode="&#xb9;" horiz-adv-x="511" d="M87 1361v93l257 23v-812h-109v703z" />
<glyph unicode="&#xba;" horiz-adv-x="922" d="M135 1026v116q0 148 87.5 241.5t235.5 93.5t236 -93.5t88 -241.5v-116q0 -149 -87.5 -241.5t-234.5 -92.5q-149 0 -237 92.5t-88 241.5zM243 1026q0 -107 54.5 -173t162.5 -66q103 0 158.5 66.5t55.5 172.5v116q0 104 -56 171t-160 67t-159.5 -67t-55.5 -171v-116z" />
<glyph unicode="&#xbb;" horiz-adv-x="928" d="M130 162l276 388l-276 389h105l295 -379v-19l-295 -379h-105zM445 162l276 388l-276 389h105l295 -379v-19l-295 -379h-105z" />
<glyph unicode="&#xbc;" horiz-adv-x="1561" d="M160 1360v93l257 23v-812h-109v703zM326 177l711 1138l74 -48l-711 -1138zM771 237l429 564h113v-541h153v-90h-153v-170h-108v170h-430zM900 260h305v402l-6 1l-25 -43z" />
<glyph unicode="&#xbd;" horiz-adv-x="1567" d="M160 1360v93l257 23v-812h-109v703zM338 177l711 1138l74 -48l-711 -1138zM912 0v90l315 282q77 71 104 115.5t27 91.5q0 64 -39 103t-118 39q-87 0 -134 -42t-47 -108h-100l-2 6q-6 97 72.5 166t210.5 69q124 0 195 -60.5t71 -173.5q0 -75 -47 -136t-150 -158l-214 -188 l2 -6h423v-90h-569z" />
<glyph unicode="&#xbe;" horiz-adv-x="1712" d="M145 883l2 6h101q0 -63 51 -103t135 -40q90 0 140.5 38t50.5 103q0 75 -46.5 109.5t-139.5 34.5h-122v89h122q88 0 130.5 35t42.5 99q0 59 -45 96.5t-133 37.5q-75 0 -124.5 -35.5t-49.5 -93.5h-99l-2 6q-6 94 74.5 154t200.5 60q132 0 209 -58.5t77 -166.5 q0 -58 -35.5 -105t-98.5 -72q72 -22 110 -70.5t38 -119.5q0 -109 -83.5 -170t-216.5 -61q-121 0 -207.5 58.5t-81.5 168.5zM533 177l711 1138l74 -48l-711 -1138zM980 237l429 564h113v-541h153v-90h-153v-170h-108v170h-430zM1109 260h305v402l-6 1l-25 -43z" />
<glyph unicode="&#xbf;" horiz-adv-x="958" d="M108 -20q0 133 66 237.5t189 219.5q61 52 75 98.5t14 142.5h120q-2 -131 -23.5 -183t-113.5 -136q-109 -113 -158 -188.5t-49 -189.5q0 -128 67.5 -198t194.5 -70q117 0 189 68.5t74 185.5h112l2 -6q2 -165 -105 -260t-272 -95q-180 0 -281 101t-101 273zM436 928v155 h139v-155h-139z" />
<glyph unicode="&#xc0;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM346 513h588l-290 788h-6zM370 1822l2 5h154l202 -266h-117z" />
<glyph unicode="&#xc1;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM346 513h588l-290 788h-6zM583 1557l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xc2;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM346 513h588l-290 788h-6zM382 1601v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xc3;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM313 1622q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89zM346 513h588l-290 788h-6z" />
<glyph unicode="&#xc4;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM341 1641v157h174v-157h-174zM346 513h588l-290 788h-6zM811 1641v157h173v-157h-173z" />
<glyph unicode="&#xc5;" horiz-adv-x="1279" d="M32 0l553 1456h113l549 -1456h-124l-150 406h-667l-150 -406h-124zM346 513h588l-290 788h-6zM487 1730q0 69 49.5 117.5t119.5 48.5q68 0 117 -48.5t49 -117.5q0 -71 -48.5 -117t-117.5 -46q-71 0 -120 46t-49 117zM565 1730q0 -39 26.5 -65t64.5 -26q37 0 62.5 25.5 t25.5 65.5t-25.5 66.5t-62.5 26.5q-38 0 -64.5 -27t-26.5 -66z" />
<glyph unicode="&#xc6;" horiz-adv-x="1865" d="M17 0l881 1456h864v-102h-694l23 -545h589v-102h-585l26 -606h702v-101h-817l-17 389h-597l-229 -389h-146zM459 502h526l-35 839l-6 1l-15 -44z" />
<glyph unicode="&#xc7;" horiz-adv-x="1313" d="M132 609v237q0 278 149 454.5t392 176.5q232 0 368 -123t155 -346l-2 -6h-112q-24 181 -124.5 277t-284.5 96q-191 0 -306.5 -148t-115.5 -379v-239q0 -234 115.5 -381.5t306.5 -147.5q184 0 285 94t124 281h112l2 -6q-19 -219 -156 -344.5t-367 -125.5 q-243 0 -392 175.5t-149 454.5zM580 -365q90 0 151.5 30.5t61.5 89.5q0 57 -41.5 79.5t-145.5 30.5l29 127h93l-12 -64q79 -9 127.5 -48.5t48.5 -122.5q0 -91 -79 -145.5t-226 -54.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="1180" d="M191 0v1456h917v-102h-798v-547h701v-102h-701v-604h803v-101h-922zM335 1822l2 5h154l202 -266h-117z" />
<glyph unicode="&#xc9;" horiz-adv-x="1180" d="M191 0v1456h917v-102h-798v-547h701v-102h-701v-604h803v-101h-922zM548 1557l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xca;" horiz-adv-x="1180" d="M191 0v1456h917v-102h-798v-547h701v-102h-701v-604h803v-101h-922zM347 1601v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xcb;" horiz-adv-x="1180" d="M191 0v1456h917v-102h-798v-547h701v-102h-701v-604h803v-101h-922zM306 1641v157h174v-157h-174zM776 1641v157h173v-157h-173z" />
<glyph unicode="&#xcc;" horiz-adv-x="554" d="M-9 1822l2 5h154l202 -266h-117zM217 0v1456h120v-1456h-120z" />
<glyph unicode="&#xcd;" horiz-adv-x="554" d="M202 1557l207 266h147l3 -6l-249 -260h-108zM217 0v1456h120v-1456h-120z" />
<glyph unicode="&#xce;" horiz-adv-x="554" d="M3 1601v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110zM217 0v1456h120v-1456h-120z" />
<glyph unicode="&#xcf;" horiz-adv-x="554" d="M-38 1641v157h174v-157h-174zM217 0v1456h120v-1456h-120zM432 1641v157h173v-157h-173z" />
<glyph unicode="&#xd0;" horiz-adv-x="1374" d="M68 689v102h153v665h423q267 0 441 -178t174 -457v-187q0 -280 -174 -457t-441 -177h-423v689h-153zM340 101h304q216 0 355.5 151t139.5 382v190q0 228 -140 379t-355 151h-304v-563h340v-102h-340v-588z" />
<glyph unicode="&#xd1;" horiz-adv-x="1454" d="M191 0v1456h120l827 -1250l6 1v1249h119v-1456h-119l-827 1252l-6 -1v-1251h-120zM382 1622q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89z" />
<glyph unicode="&#xd2;" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239zM398 1843l2 5h154l202 -266h-117z" />
<glyph unicode="&#xd3;" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239zM611 1578l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xd4;" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239zM410 1622v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xd5;" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239zM341 1643q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89z" />
<glyph unicode="&#xd6;" horiz-adv-x="1378" d="M124 609v237q0 281 152 456t408 175q260 0 415 -175t155 -456v-237q0 -282 -154.5 -456t-414.5 -174q-256 0 -408.5 174t-152.5 456zM244 609q0 -238 116.5 -382t324.5 -144q213 0 331.5 143.5t118.5 382.5v239q0 236 -119.5 380t-331.5 144q-208 0 -324 -144t-116 -380 v-239zM369 1662v157h174v-157h-174zM839 1662v157h173v-157h-173z" />
<glyph unicode="&#xd7;" horiz-adv-x="1072" d="M93 318l358 365l-343 350l79 80l342 -350l343 350l79 -80l-343 -350l358 -365l-79 -79l-358 364l-357 -364z" />
<glyph unicode="&#xd8;" horiz-adv-x="1379" d="M124 609v237q0 281 152 456t408 175q109 0 201.5 -33t165.5 -95l96 156h104l-136 -222q67 -84 103 -195.5t36 -241.5v-237q0 -282 -154.5 -456t-414.5 -174q-92 0 -171.5 23.5t-144.5 68.5l-96 -155h-104l131 212q-86 84 -131 207.5t-45 273.5zM244 609 q0 -118 29.5 -214.5t85.5 -160.5l6 -1l627 1021q-58 57 -135.5 87.5t-172.5 30.5q-208 0 -324 -144t-116 -380v-239zM426 164q51 -40 116.5 -60.5t142.5 -20.5q213 0 331.5 143.5t118.5 382.5v239q0 97 -21.5 180.5t-60.5 144.5h-6z" />
<glyph unicode="&#xd9;" horiz-adv-x="1374" d="M167 469v987h120v-987q0 -186 110 -287.5t287 -101.5q180 0 293 101t113 288v987h119v-987q0 -238 -145.5 -364t-379.5 -126q-231 0 -374 126.5t-143 363.5zM409 1822l2 5h154l202 -266h-117z" />
<glyph unicode="&#xda;" horiz-adv-x="1374" d="M167 469v987h120v-987q0 -186 110 -287.5t287 -101.5q180 0 293 101t113 288v987h119v-987q0 -238 -145.5 -364t-379.5 -126q-231 0 -374 126.5t-143 363.5zM622 1557l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xdb;" horiz-adv-x="1374" d="M167 469v987h120v-987q0 -186 110 -287.5t287 -101.5q180 0 293 101t113 288v987h119v-987q0 -238 -145.5 -364t-379.5 -126q-231 0 -374 126.5t-143 363.5zM421 1601v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xdc;" horiz-adv-x="1374" d="M167 469v987h120v-987q0 -186 110 -287.5t287 -101.5q180 0 293 101t113 288v987h119v-987q0 -238 -145.5 -364t-379.5 -126q-231 0 -374 126.5t-143 363.5zM380 1641v157h174v-157h-174zM850 1641v157h173v-157h-173z" />
<glyph unicode="&#xdd;" horiz-adv-x="1244" d="M33 1456h139l448 -809l451 809h139l-531 -924v-532h-119v539zM545 1550l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xde;" horiz-adv-x="1214" d="M183 0v1456h120v-304h324q221 0 345 -115.5t124 -298.5q0 -185 -124 -299.5t-345 -114.5h-324v-324h-120zM303 425h324q173 0 261 92t88 219q0 130 -88 222.5t-261 92.5h-324v-626z" />
<glyph unicode="&#xdf;" horiz-adv-x="1200" d="M151 0v1082q0 204 102.5 317t273.5 113q140 0 232 -79.5t92 -222.5q0 -109 -61.5 -215.5t-61.5 -184.5q0 -86 184 -228t184 -287q0 -153 -110 -234.5t-266 -81.5q-86 0 -176.5 23.5t-129.5 56.5l34 101q41 -31 114.5 -55.5t143.5 -24.5q125 0 197.5 60t72.5 155 q0 99 -184 240.5t-184 276.5q0 93 63 201.5t63 190.5q0 92 -60 149.5t-137 57.5q-121 0 -193.5 -85.5t-72.5 -243.5v-1082h-120z" />
<glyph unicode="&#xe0;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5zM255 1501l2 5h154l202 -266h-117z" />
<glyph unicode="&#xe1;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5zM468 1236l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xe2;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5zM267 1280v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xe3;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM198 1301q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241 q-163 0 -260.5 -69.5t-97.5 -172.5z" />
<glyph unicode="&#xe4;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5zM226 1320v157h174v-157h-174zM696 1320v157h173v-157h-173z" />
<glyph unicode="&#xe5;" horiz-adv-x="1101" d="M103 288q0 150 129.5 240t349.5 90h239v134q0 116 -74.5 182t-208.5 66q-125 0 -207.5 -63t-82.5 -154l-110 1l-2 6q-6 121 110.5 216.5t296.5 95.5q179 0 288 -91t109 -261v-532q0 -57 6.5 -111t21.5 -107h-125q-12 55 -17 95t-5 81q-60 -85 -160 -141t-225 -56 q-158 0 -245.5 84t-87.5 225zM222 284q0 -88 60.5 -143.5t167.5 -55.5q129 0 228 60.5t143 154.5v226h-241q-163 0 -260.5 -69.5t-97.5 -172.5zM372 1409q0 69 49.5 117.5t119.5 48.5q68 0 117 -48.5t49 -117.5q0 -71 -48.5 -117t-117.5 -46q-71 0 -120 46t-49 117z M450 1409q0 -39 26.5 -65t64.5 -26q37 0 62.5 25.5t25.5 65.5t-25.5 66.5t-62.5 26.5q-38 0 -64.5 -27t-26.5 -66z" />
<glyph unicode="&#xe6;" horiz-adv-x="1732" d="M77 293q0 158 113 248.5t326 90.5h262v88q0 134 -63 207t-187 73q-135 0 -213.5 -67t-78.5 -168l-110 12l-2 6q-5 138 106.5 228.5t297.5 90.5q124 0 212.5 -54t128.5 -157q61 99 156.5 155t209.5 56q200 0 311.5 -124t111.5 -340v-100h-754v-29q0 -191 89.5 -310 t271.5 -119q103 0 181.5 32.5t142.5 86.5l47 -87q-60 -55 -148.5 -94t-222.5 -39q-138 0 -241 55.5t-163 157.5q-49 -87 -159.5 -150t-269.5 -63q-170 0 -262.5 84.5t-92.5 229.5zM197 289q0 -97 65 -153.5t187 -56.5q102 0 197.5 53.5t131.5 115.5v288h-260 q-155 0 -238 -71t-83 -176zM912 641l2 -5h625v31q0 146 -77.5 239.5t-226.5 93.5q-138 0 -224 -101.5t-99 -257.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="1061" d="M97 520v42q0 236 121 388t340 152q178 0 296.5 -105t114.5 -276l-2 -6h-107q0 130 -87.5 207.5t-214.5 77.5q-174 0 -257.5 -124.5t-83.5 -313.5v-42q0 -192 83 -316t259 -124q119 0 210 68t91 189h106l2 -6q5 -150 -120 -251t-289 -101q-221 0 -341.5 151.5 t-120.5 389.5zM444 -365q90 0 151.5 30.5t61.5 89.5q0 57 -41.5 79.5t-145.5 30.5l29 127h93l-12 -64q79 -9 127.5 -48.5t48.5 -122.5q0 -91 -79 -145.5t-226 -54.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="1055" d="M92 509v55q0 232 133.5 385t323.5 153q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 191 31t135 89l51 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-203 0 -337.5 150t-134.5 380zM221 644l2 -5h634v30q0 141 -83 236t-225 95q-133 0 -223 -101.5 t-105 -254.5zM274 1501l2 5h154l202 -266h-117z" />
<glyph unicode="&#xe9;" horiz-adv-x="1055" d="M92 509v55q0 232 133.5 385t323.5 153q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 191 31t135 89l51 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-203 0 -337.5 150t-134.5 380zM221 644l2 -5h634v30q0 141 -83 236t-225 95q-133 0 -223 -101.5 t-105 -254.5zM487 1236l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xea;" horiz-adv-x="1055" d="M92 509v55q0 232 133.5 385t323.5 153q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 191 31t135 89l51 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-203 0 -337.5 150t-134.5 380zM221 644l2 -5h634v30q0 141 -83 236t-225 95q-133 0 -223 -101.5 t-105 -254.5zM286 1280v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xeb;" horiz-adv-x="1055" d="M92 509v55q0 232 133.5 385t323.5 153q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 191 31t135 89l51 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-203 0 -337.5 150t-134.5 380zM221 644l2 -5h634v30q0 141 -83 236t-225 95q-133 0 -223 -101.5 t-105 -254.5zM245 1320v157h174v-157h-174zM715 1320v157h173v-157h-173z" />
<glyph unicode="&#xec;" horiz-adv-x="456" d="M-58 1479l2 5h154l202 -266h-117zM168 0v1082h120v-1082h-120z" />
<glyph unicode="&#xed;" horiz-adv-x="456" d="M153 1214l207 266h147l3 -6l-249 -260h-108zM168 0v1082h120v-1082h-120z" />
<glyph unicode="&#xee;" horiz-adv-x="456" d="M-46 1258v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110zM168 0v1082h120v-1082h-120z" />
<glyph unicode="&#xef;" horiz-adv-x="456" d="M-87 1299v157h174v-157h-174zM168 0v1082h120v-1082h-120zM383 1299v157h173v-157h-173z" />
<glyph unicode="&#xf0;" horiz-adv-x="1191" d="M99 455q0 235 130 372.5t348 137.5q104 0 193 -40t143 -107l4 5q-18 131 -68 234t-126 182l-308 -176l-50 74l287 164q-45 33 -94.5 61t-103.5 51l39 104q77 -30 144 -68t124 -85l257 147l51 -74l-241 -138q111 -120 169 -288.5t58 -387.5v-88q0 -245 -137 -400.5 t-344 -155.5q-208 0 -341.5 137t-133.5 339zM219 455q0 -149 97 -261t262 -112q158 0 257.5 127.5t99.5 325.5v90q0 9 -0.5 27.5t-0.5 28.5q-38 76 -128 128t-229 52q-173 0 -265.5 -115t-92.5 -291z" />
<glyph unicode="&#xf1;" d="M158 0v1082h106l11 -189q52 100 140.5 154.5t209.5 54.5q176 0 268 -107.5t92 -335.5v-659h-120v658q0 186 -69.5 263t-197.5 77q-126 0 -205.5 -66.5t-114.5 -176.5v-755h-120zM233 1300q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20 q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89z" />
<glyph unicode="&#xf2;" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33zM294 1500l2 5h154 l202 -266h-117z" />
<glyph unicode="&#xf3;" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33zM507 1235l207 266 h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xf4;" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33zM306 1279v21 l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xf5;" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33zM237 1300 q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89z" />
<glyph unicode="&#xf6;" d="M91 524v33q0 239 131 392t347 153q217 0 348 -153t131 -392v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-218 0 -349 152.5t-131 392.5zM211 524q0 -188 95 -316t265 -128q167 0 262.5 128t95.5 316v33q0 185 -96 314t-264 129t-263 -129t-95 -314v-33zM265 1319v157h174 v-157h-174zM735 1319v157h173v-157h-173z" />
<glyph unicode="&#xf7;" horiz-adv-x="1164" d="M72 644v116h998v-116h-998zM506 212v160h142v-160h-142zM506 1010v160h142v-160h-142z" />
<glyph unicode="&#xf8;" horiz-adv-x="1141" d="M91 524v33q0 239 131 392t347 153q60 0 114 -12.5t102 -36.5l79 161h93l-101 -207q91 -72 141.5 -189t50.5 -261v-33q0 -240 -130.5 -392.5t-346.5 -152.5q-55 0 -104.5 10.5t-94.5 30.5l-78 -160h-93l99 202q-100 70 -154.5 190.5t-54.5 271.5zM211 524q0 -112 35 -206 t100 -149h6l385 787q-36 21 -78.5 32.5t-89.5 11.5q-168 0 -263 -129t-95 -314v-33zM418 114q33 -17 71.5 -25.5t81.5 -8.5q167 0 262.5 128t95.5 316v33q0 102 -32 192t-89 147h-6z" />
<glyph unicode="&#xf9;" d="M154 455v627h120v-629q0 -198 67.5 -284t191.5 -86q136 0 217 61t113 168v770h120v-1082h-106l-10 177q-52 -95 -140 -146.5t-208 -51.5q-171 0 -268 116t-97 360zM292 1479l2 5h154l202 -266h-117z" />
<glyph unicode="&#xfa;" d="M154 455v627h120v-629q0 -198 67.5 -284t191.5 -86q136 0 217 61t113 168v770h120v-1082h-106l-10 177q-52 -95 -140 -146.5t-208 -51.5q-171 0 -268 116t-97 360zM505 1214l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xfb;" d="M154 455v627h120v-629q0 -198 67.5 -284t191.5 -86q136 0 217 61t113 168v770h120v-1082h-106l-10 177q-52 -95 -140 -146.5t-208 -51.5q-171 0 -268 116t-97 360zM304 1258v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#xfc;" d="M154 455v627h120v-629q0 -198 67.5 -284t191.5 -86q136 0 217 61t113 168v770h120v-1082h-106l-10 177q-52 -95 -140 -146.5t-208 -51.5q-171 0 -268 116t-97 360zM263 1299v157h174v-157h-174zM733 1299v157h173v-157h-173z" />
<glyph unicode="&#xfd;" horiz-adv-x="1002" d="M35 1082h133l297 -789l38 -129h6l327 918h134l-470 -1255q-42 -110 -109 -187t-196 -77q-21 0 -51 4.5t-44 9.5l14 100q12 -2 38.5 -4.5t38.5 -2.5q78 0 125 55.5t80 142.5l57 146zM439 1214l207 266h147l3 -6l-249 -260h-108z" />
<glyph unicode="&#xfe;" horiz-adv-x="1151" d="M161 -416v1976h120v-640q54 87 138.5 134.5t198.5 47.5q195 0 305 -155.5t110 -414.5v-21q0 -243 -110 -387.5t-303 -144.5q-114 0 -199.5 43t-139.5 123v-561h-120zM281 271q41 -89 118.5 -140t193.5 -51q157 0 238.5 118t81.5 313v21q0 206 -82 336t-240 130 q-121 0 -196.5 -57.5t-113.5 -149.5v-520z" />
<glyph unicode="&#xff;" horiz-adv-x="1002" d="M35 1082h133l297 -789l38 -129h6l327 918h134l-470 -1255q-42 -110 -109 -187t-196 -77q-21 0 -51 4.5t-44 9.5l14 100q12 -2 38.5 -4.5t38.5 -2.5q78 0 125 55.5t80 142.5l57 146zM197 1299v157h174v-157h-174zM667 1299v157h173v-157h-173z" />
<glyph unicode="&#x152;" horiz-adv-x="1913" d="M108 576v304q0 264 148.5 430.5t387.5 166.5q75 0 152 -6t161 -15h862v-102h-798v-547h701v-102h-701v-604h803v-101h-867q-97 -10 -167.5 -15.5t-143.5 -5.5q-239 0 -388.5 166t-149.5 431zM228 576q0 -228 113.5 -361.5t304.5 -133.5q66 0 131.5 3.5t124.5 11.5v1264 q-60 7 -125 11t-133 4q-192 0 -304 -132t-112 -361v-306z" />
<glyph unicode="&#x153;" horiz-adv-x="1892" d="M94 524v33q0 239 131 392t347 153q146 0 255.5 -72.5t168.5 -199.5q59 125 166 198.5t234 73.5q199 0 313 -126t114 -336v-102h-764v-29q0 -183 97 -306t255 -123q112 0 190.5 31t134.5 89l52 -82q-61 -64 -154.5 -101.5t-222.5 -37.5q-139 0 -248.5 71.5t-168.5 197.5 q-58 -126 -167 -197.5t-253 -71.5q-218 0 -349 152.5t-131 392.5zM214 524q0 -188 95 -316t265 -128q167 0 262 128t95 316v33q0 185 -95.5 314t-263.5 129t-263 -129t-95 -314v-33zM1068 644l2 -5h633v30q0 141 -82.5 236t-224.5 95q-133 0 -223 -101.5t-105 -254.5z" />
<glyph unicode="&#x178;" horiz-adv-x="1244" d="M33 1456h139l448 -809l451 809h139l-531 -924v-532h-119v539zM303 1634v157h174v-157h-174zM773 1634v157h173v-157h-173z" />
<glyph unicode="&#x2c6;" horiz-adv-x="880" d="M160 1252v21l227 221h98l230 -224v-18h-112l-167 168l-166 -168h-110z" />
<glyph unicode="&#x2dc;" horiz-adv-x="892" d="M102 1281q0 86 54 144.5t137 58.5q65 0 147 -55t135 -55q46 0 79 36t33 91l80 -20q0 -88 -55 -146t-137 -58q-74 0 -151 55t-131 55q-47 0 -79 -35t-32 -89z" />
<glyph unicode="&#x2000;" horiz-adv-x="948" />
<glyph unicode="&#x2001;" horiz-adv-x="1896" />
<glyph unicode="&#x2002;" horiz-adv-x="948" />
<glyph unicode="&#x2003;" horiz-adv-x="1896" />
<glyph unicode="&#x2004;" horiz-adv-x="632" />
<glyph unicode="&#x2005;" horiz-adv-x="474" />
<glyph unicode="&#x2006;" horiz-adv-x="316" />
<glyph unicode="&#x2007;" horiz-adv-x="316" />
<glyph unicode="&#x2008;" horiz-adv-x="237" />
<glyph unicode="&#x2009;" horiz-adv-x="379" />
<glyph unicode="&#x200a;" horiz-adv-x="105" />
<glyph unicode="&#x2010;" horiz-adv-x="586" d="M49 570v101h479v-101h-479z" />
<glyph unicode="&#x2011;" horiz-adv-x="586" d="M49 570v101h479v-101h-479z" />
<glyph unicode="&#x2012;" horiz-adv-x="586" d="M49 570v101h479v-101h-479z" />
<glyph unicode="&#x2013;" horiz-adv-x="1414" d="M165 686v102h1086v-102h-1086z" />
<glyph unicode="&#x2014;" horiz-adv-x="1667" d="M136 686v102h1336v-102h-1336z" />
<glyph unicode="&#x2018;" horiz-adv-x="364" d="M91 1074v174l111 312h71l-63 -312v-174h-119z" />
<glyph unicode="&#x2019;" horiz-adv-x="364" d="M91 1074l63 304v182h119v-179l-111 -307h-71z" />
<glyph unicode="&#x201a;" horiz-adv-x="353" d="M91 -211l52 266v204h119v-194l-100 -276h-71z" />
<glyph unicode="&#x201c;" horiz-adv-x="612" d="M91 1074v174l111 312h71l-63 -312v-174h-119zM338 1074v174l111 312h71l-63 -312v-174h-119z" />
<glyph unicode="&#x201d;" horiz-adv-x="617" d="M91 1074l63 304v182h119v-179l-111 -307h-71zM343 1074l63 304v182h119v-179l-111 -307h-71z" />
<glyph unicode="&#x201e;" horiz-adv-x="593" d="M91 -202l51 295v181h120v-175l-100 -301h-71zM330 -202l52 299v177h120v-175l-100 -301h-72z" />
<glyph unicode="&#x2022;" horiz-adv-x="662" d="M146 717v65q0 78 50.5 128.5t134.5 50.5q85 0 135.5 -50.5t50.5 -128.5v-65q0 -79 -50.5 -128t-134.5 -49q-85 0 -135.5 49t-50.5 128z" />
<glyph unicode="&#x2026;" horiz-adv-x="1313" d="M188 0v164h137v-164h-137zM598 0v164h137v-164h-137zM990 0v164h137v-164h-137z" />
<glyph unicode="&#x202f;" horiz-adv-x="379" />
<glyph unicode="&#x2039;" horiz-adv-x="609" d="M108 541v19l295 379h105l-276 -389l276 -388h-105z" />
<glyph unicode="&#x203a;" horiz-adv-x="609" d="M101 162l276 388l-276 389h105l295 -379v-19l-295 -379h-105z" />
<glyph unicode="&#x205f;" horiz-adv-x="474" />
<glyph unicode="&#x20ac;" horiz-adv-x="1073" d="M80 533v102h169v168h-169v102h169v37q0 244 135.5 389.5t355.5 145.5q57 0 112.5 -8t119.5 -23l-9 -106q-54 16 -110.5 25.5t-112.5 9.5q-172 0 -272 -116t-100 -315v-39h547v-102h-547v-168h547v-102h-547v-19q0 -198 101.5 -316t272.5 -118q57 0 113 8.5t108 25.5 l9 -104q-54 -15 -112.5 -23t-117.5 -8q-220 0 -356.5 145t-136.5 390v19h-169z" />
<glyph unicode="&#x2122;" horiz-adv-x="1264" d="M96 1387v69h384v-69h-152v-468h-74v468h-158zM558 919v537h94l171 -423h6l174 423h88v-537h-73v383l-6 1l-160 -384h-51l-165 399l-6 -1v-398h-72z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1138" d="M66 984v98h179v158q0 163 81.5 252t228.5 89q33 0 67 -5t69 -14l-15 -99q-24 6 -49.5 9.5t-59.5 3.5q-98 0 -150 -62t-52 -174v-158h258v-98h-258v-984h-120v984h-179zM846 0v1560h119v-1560h-119z" />
<glyph unicode="&#xfb03;" horiz-adv-x="1773" d="M66 984v98h179v158q0 163 81.5 252t228.5 89q33 0 67 -5t69 -14l-15 -99q-24 6 -49.5 9.5t-59.5 3.5q-98 0 -150 -62t-52 -174v-158h258v-98h-258v-984h-120v984h-179zM721 984v98h180v138q0 172 95 266.5t264 94.5q67 0 136 -15t140 -44l-20 -103q-61 25 -118 39 t-130 14q-122 0 -184.5 -65t-62.5 -187v-138h253v-98h-253v-984h-120v984h-180zM1481 0v1082h120v-1082h-120z" />
<glyph unicode="&#xfb04;" horiz-adv-x="1811" d="M66 984v98h179v158q0 163 81.5 252t228.5 89q33 0 67 -5t69 -14l-15 -99q-24 6 -49.5 9.5t-59.5 3.5q-98 0 -150 -62t-52 -174v-158h258v-98h-258v-984h-120v984h-179zM739 984v98h179v158q0 163 81.5 252t228.5 89q33 0 67 -5t69 -14l-15 -99q-24 6 -49.5 9.5t-59.5 3.5 q-98 0 -150 -62t-52 -174v-158h258v-98h-258v-984h-120v984h-179zM1519 0v1560h119v-1560h-119z" />
<hkern u1="&#x22;" u2="w" k="-11" />
<hkern u1="&#x27;" u2="w" k="-11" />
<hkern u1="&#x28;" u2="&#x178;" k="-22" />
<hkern u1="&#x28;" u2="&#xdd;" k="-22" />
<hkern u1="&#x28;" u2="Y" k="-22" />
<hkern u1="&#x28;" u2="W" k="-18" />
<hkern u1="&#x28;" u2="V" k="-20" />
<hkern u1="&#x2f;" u2="&#x2f;" k="224" />
<hkern u1="A" u2="w" k="33" />
<hkern u1="A" u2="t" k="17" />
<hkern u1="A" u2="&#x3f;" k="61" />
<hkern u1="C" u2="&#x7d;" k="17" />
<hkern u1="C" u2="]" k="12" />
<hkern u1="C" u2="&#x29;" k="26" />
<hkern u1="D" u2="&#xc6;" k="33" />
<hkern u1="E" u2="w" k="22" />
<hkern u1="E" u2="f" k="18" />
<hkern u1="F" u2="&#x2026;" k="234" />
<hkern u1="F" u2="&#x201e;" k="234" />
<hkern u1="F" u2="&#x201a;" k="234" />
<hkern u1="F" u2="&#x153;" k="21" />
<hkern u1="F" u2="&#xff;" k="24" />
<hkern u1="F" u2="&#xfd;" k="24" />
<hkern u1="F" u2="&#xfc;" k="22" />
<hkern u1="F" u2="&#xfb;" k="22" />
<hkern u1="F" u2="&#xfa;" k="22" />
<hkern u1="F" u2="&#xf9;" k="22" />
<hkern u1="F" u2="&#xf6;" k="21" />
<hkern u1="F" u2="&#xf5;" k="21" />
<hkern u1="F" u2="&#xf4;" k="21" />
<hkern u1="F" u2="&#xf3;" k="21" />
<hkern u1="F" u2="&#xf2;" k="21" />
<hkern u1="F" u2="&#xeb;" k="21" />
<hkern u1="F" u2="&#xea;" k="21" />
<hkern u1="F" u2="&#xe9;" k="21" />
<hkern u1="F" u2="&#xe8;" k="21" />
<hkern u1="F" u2="&#xe7;" k="21" />
<hkern u1="F" u2="&#xe5;" k="34" />
<hkern u1="F" u2="&#xe4;" k="34" />
<hkern u1="F" u2="&#xe3;" k="34" />
<hkern u1="F" u2="&#xe2;" k="34" />
<hkern u1="F" u2="&#xe1;" k="34" />
<hkern u1="F" u2="&#xe0;" k="34" />
<hkern u1="F" u2="&#xc5;" k="59" />
<hkern u1="F" u2="&#xc4;" k="59" />
<hkern u1="F" u2="&#xc3;" k="59" />
<hkern u1="F" u2="&#xc2;" k="59" />
<hkern u1="F" u2="&#xc1;" k="59" />
<hkern u1="F" u2="&#xc0;" k="59" />
<hkern u1="F" u2="y" k="24" />
<hkern u1="F" u2="v" k="24" />
<hkern u1="F" u2="u" k="22" />
<hkern u1="F" u2="r" k="26" />
<hkern u1="F" u2="q" k="21" />
<hkern u1="F" u2="o" k="21" />
<hkern u1="F" u2="g" k="21" />
<hkern u1="F" u2="e" k="21" />
<hkern u1="F" u2="d" k="21" />
<hkern u1="F" u2="c" k="21" />
<hkern u1="F" u2="a" k="34" />
<hkern u1="F" u2="T" k="-20" />
<hkern u1="F" u2="J" k="264" />
<hkern u1="F" u2="A" k="59" />
<hkern u1="F" u2="&#x2e;" k="234" />
<hkern u1="F" u2="&#x2c;" k="234" />
<hkern u1="K" u2="w" k="63" />
<hkern u1="L" u2="w" k="92" />
<hkern u1="O" u2="&#xc6;" k="33" />
<hkern u1="P" u2="&#xc6;" k="97" />
<hkern u1="P" u2="t" k="-14" />
<hkern u1="Q" u2="&#x178;" k="35" />
<hkern u1="Q" u2="&#xdd;" k="35" />
<hkern u1="Q" u2="Y" k="35" />
<hkern u1="Q" u2="W" k="20" />
<hkern u1="Q" u2="V" k="28" />
<hkern u1="Q" u2="T" k="43" />
<hkern u1="R" u2="&#x178;" k="48" />
<hkern u1="R" u2="&#xdd;" k="48" />
<hkern u1="R" u2="Y" k="48" />
<hkern u1="R" u2="V" k="19" />
<hkern u1="R" u2="T" k="80" />
<hkern u1="T" u2="&#xf8;" k="95" />
<hkern u1="T" u2="&#xe6;" k="114" />
<hkern u1="T" u2="&#xc6;" k="179" />
<hkern u1="T" u2="&#xbb;" k="216" />
<hkern u1="T" u2="&#xab;" k="328" />
<hkern u1="T" u2="w" k="57" />
<hkern u1="T" u2="r" k="75" />
<hkern u1="V" u2="&#x7d;" k="-19" />
<hkern u1="V" u2="r" k="30" />
<hkern u1="V" u2="]" k="-17" />
<hkern u1="V" u2="&#x29;" k="-20" />
<hkern u1="W" u2="&#x7d;" k="-14" />
<hkern u1="W" u2="r" k="21" />
<hkern u1="W" u2="]" k="-12" />
<hkern u1="W" u2="&#x29;" k="-15" />
<hkern u1="Y" u2="&#x2022;" k="45" />
<hkern u1="Y" u2="&#xf8;" k="64" />
<hkern u1="Y" u2="&#xe6;" k="63" />
<hkern u1="Y" u2="&#xc6;" k="96" />
<hkern u1="Y" u2="&#xbb;" k="51" />
<hkern u1="Y" u2="&#xab;" k="82" />
<hkern u1="Y" u2="&#x7d;" k="-19" />
<hkern u1="Y" u2="t" k="22" />
<hkern u1="Y" u2="r" k="40" />
<hkern u1="Y" u2="f" k="22" />
<hkern u1="Y" u2="]" k="-18" />
<hkern u1="Y" u2="&#x2a;" k="49" />
<hkern u1="Y" u2="&#x29;" k="-20" />
<hkern u1="Y" u2="&#x26;" k="30" />
<hkern u1="Z" u2="w" k="27" />
<hkern u1="[" u2="&#xdc;" k="18" />
<hkern u1="[" u2="&#xdb;" k="18" />
<hkern u1="[" u2="&#xda;" k="18" />
<hkern u1="[" u2="&#xd9;" k="18" />
<hkern u1="[" u2="U" k="18" />
<hkern u1="[" u2="J" k="18" />
<hkern u1="f" u2="&#x201d;" k="-16" />
<hkern u1="f" u2="&#x201c;" k="-16" />
<hkern u1="f" u2="&#x2019;" k="-16" />
<hkern u1="f" u2="&#x2018;" k="-16" />
<hkern u1="f" u2="&#x153;" k="24" />
<hkern u1="f" u2="&#xeb;" k="24" />
<hkern u1="f" u2="&#xea;" k="24" />
<hkern u1="f" u2="&#xe9;" k="24" />
<hkern u1="f" u2="&#xe8;" k="24" />
<hkern u1="f" u2="&#xe7;" k="24" />
<hkern u1="f" u2="&#x7d;" k="-19" />
<hkern u1="f" u2="q" k="24" />
<hkern u1="f" u2="g" k="24" />
<hkern u1="f" u2="e" k="24" />
<hkern u1="f" u2="d" k="24" />
<hkern u1="f" u2="c" k="24" />
<hkern u1="f" u2="]" k="-18" />
<hkern u1="f" u2="&#x29;" k="-20" />
<hkern u1="f" u2="&#x27;" k="-16" />
<hkern u1="f" u2="&#x22;" k="-16" />
<hkern u1="k" u2="&#x153;" k="20" />
<hkern u1="k" u2="&#xeb;" k="20" />
<hkern u1="k" u2="&#xea;" k="20" />
<hkern u1="k" u2="&#xe9;" k="20" />
<hkern u1="k" u2="&#xe8;" k="20" />
<hkern u1="k" u2="&#xe7;" k="20" />
<hkern u1="k" u2="q" k="20" />
<hkern u1="k" u2="g" k="20" />
<hkern u1="k" u2="e" k="20" />
<hkern u1="k" u2="d" k="20" />
<hkern u1="k" u2="c" k="20" />
<hkern u1="r" u2="w" k="-17" />
<hkern u1="r" u2="t" k="-32" />
<hkern u1="r" u2="f" k="-15" />
<hkern u1="t" u2="&#xf6;" k="20" />
<hkern u1="t" u2="&#xf5;" k="20" />
<hkern u1="t" u2="&#xf4;" k="20" />
<hkern u1="t" u2="&#xf3;" k="20" />
<hkern u1="t" u2="&#xf2;" k="20" />
<hkern u1="t" u2="o" k="20" />
<hkern u1="v" u2="f" k="-13" />
<hkern u1="w" u2="&#x2026;" k="124" />
<hkern u1="w" u2="&#x201e;" k="124" />
<hkern u1="w" u2="&#x201a;" k="124" />
<hkern u1="w" u2="&#x2e;" k="124" />
<hkern u1="w" u2="&#x2c;" k="124" />
<hkern u1="y" u2="f" k="-13" />
<hkern u1="&#x7b;" u2="&#xdc;" k="20" />
<hkern u1="&#x7b;" u2="&#xdb;" k="20" />
<hkern u1="&#x7b;" u2="&#xda;" k="20" />
<hkern u1="&#x7b;" u2="&#xd9;" k="20" />
<hkern u1="&#x7b;" u2="U" k="20" />
<hkern u1="&#x7b;" u2="J" k="20" />
<hkern u1="&#xc0;" u2="w" k="33" />
<hkern u1="&#xc0;" u2="t" k="17" />
<hkern u1="&#xc0;" u2="&#x3f;" k="61" />
<hkern u1="&#xc1;" u2="w" k="33" />
<hkern u1="&#xc1;" u2="t" k="17" />
<hkern u1="&#xc1;" u2="&#x3f;" k="61" />
<hkern u1="&#xc2;" u2="w" k="33" />
<hkern u1="&#xc2;" u2="t" k="17" />
<hkern u1="&#xc2;" u2="&#x3f;" k="61" />
<hkern u1="&#xc3;" u2="w" k="33" />
<hkern u1="&#xc3;" u2="t" k="17" />
<hkern u1="&#xc3;" u2="&#x3f;" k="61" />
<hkern u1="&#xc4;" u2="w" k="33" />
<hkern u1="&#xc4;" u2="t" k="17" />
<hkern u1="&#xc4;" u2="&#x3f;" k="61" />
<hkern u1="&#xc5;" u2="w" k="33" />
<hkern u1="&#xc5;" u2="t" k="17" />
<hkern u1="&#xc5;" u2="&#x3f;" k="61" />
<hkern u1="&#xc7;" u2="&#x7d;" k="17" />
<hkern u1="&#xc7;" u2="]" k="12" />
<hkern u1="&#xc7;" u2="&#x29;" k="26" />
<hkern u1="&#xc8;" u2="w" k="22" />
<hkern u1="&#xc8;" u2="f" k="18" />
<hkern u1="&#xc9;" u2="w" k="22" />
<hkern u1="&#xc9;" u2="f" k="18" />
<hkern u1="&#xca;" u2="w" k="22" />
<hkern u1="&#xca;" u2="f" k="18" />
<hkern u1="&#xcb;" u2="w" k="22" />
<hkern u1="&#xcb;" u2="f" k="18" />
<hkern u1="&#xd0;" u2="&#xc6;" k="33" />
<hkern u1="&#xd2;" u2="&#xc6;" k="33" />
<hkern u1="&#xd3;" u2="&#xc6;" k="33" />
<hkern u1="&#xd4;" u2="&#xc6;" k="33" />
<hkern u1="&#xd5;" u2="&#xc6;" k="33" />
<hkern u1="&#xd6;" u2="&#xc6;" k="33" />
<hkern u1="&#xdd;" u2="&#x2022;" k="45" />
<hkern u1="&#xdd;" u2="&#xf8;" k="64" />
<hkern u1="&#xdd;" u2="&#xe6;" k="63" />
<hkern u1="&#xdd;" u2="&#xc6;" k="96" />
<hkern u1="&#xdd;" u2="&#xbb;" k="51" />
<hkern u1="&#xdd;" u2="&#xab;" k="82" />
<hkern u1="&#xdd;" u2="&#x7d;" k="-19" />
<hkern u1="&#xdd;" u2="t" k="22" />
<hkern u1="&#xdd;" u2="r" k="40" />
<hkern u1="&#xdd;" u2="f" k="22" />
<hkern u1="&#xdd;" u2="]" k="-18" />
<hkern u1="&#xdd;" u2="&#x2a;" k="49" />
<hkern u1="&#xdd;" u2="&#x29;" k="-20" />
<hkern u1="&#xdd;" u2="&#x26;" k="30" />
<hkern u1="&#xfd;" u2="f" k="-13" />
<hkern u1="&#xff;" u2="f" k="-13" />
<hkern u1="&#x178;" u2="&#x2022;" k="45" />
<hkern u1="&#x178;" u2="&#xf8;" k="64" />
<hkern u1="&#x178;" u2="&#xe6;" k="63" />
<hkern u1="&#x178;" u2="&#xc6;" k="96" />
<hkern u1="&#x178;" u2="&#xbb;" k="51" />
<hkern u1="&#x178;" u2="&#xab;" k="82" />
<hkern u1="&#x178;" u2="&#x7d;" k="-19" />
<hkern u1="&#x178;" u2="t" k="22" />
<hkern u1="&#x178;" u2="r" k="40" />
<hkern u1="&#x178;" u2="f" k="22" />
<hkern u1="&#x178;" u2="]" k="-18" />
<hkern u1="&#x178;" u2="&#x2a;" k="49" />
<hkern u1="&#x178;" u2="&#x29;" k="-20" />
<hkern u1="&#x178;" u2="&#x26;" k="30" />
<hkern u1="&#x2018;" u2="w" k="-11" />
<hkern u1="&#x2019;" u2="w" k="-11" />
<hkern u1="&#x201c;" u2="w" k="-11" />
<hkern u1="&#x201d;" u2="w" k="-11" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="170" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="120" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="12" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="11" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="129" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="17" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="87" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="69" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="94" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="11" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v,y,yacute,ydieresis" k="50" />
<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="z" k="-12" />
<hkern g1="B" g2="T" k="27" />
<hkern g1="B" g2="V" k="24" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" />
<hkern g1="C,Ccedilla" g2="T" k="29" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="27" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="102" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" />
<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="K" g2="m,n,p,ntilde" k="23" />
<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" />
<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" />
<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" />
<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="64" />
<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="138" />
<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="65" />
<hkern g1="L" g2="T" k="275" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="54" />
<hkern g1="L" g2="V" k="175" />
<hkern g1="L" g2="W" k="143" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="239" />
<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="44" />
<hkern g1="L" g2="v,y,yacute,ydieresis" k="133" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="138" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" />
<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" />
<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" />
<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="324" />
<hkern g1="P" g2="X" k="31" />
<hkern g1="P" g2="Z" k="26" />
<hkern g1="P" g2="J" k="200" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="79" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="113" />
<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="99" />
<hkern g1="T" g2="m,n,p,ntilde" k="109" />
<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="99" />
<hkern g1="T" g2="s" k="116" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" />
<hkern g1="T" g2="T" k="-16" />
<hkern g1="T" g2="V" k="-16" />
<hkern g1="T" g2="W" k="-15" />
<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" />
<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="95" />
<hkern g1="T" g2="v,y,yacute,ydieresis" k="72" />
<hkern g1="T" g2="z" k="60" />
<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="218" />
<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="232" />
<hkern g1="T" g2="J" k="240" />
<hkern g1="T" g2="S" k="16" />
<hkern g1="T" g2="x" k="77" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" />
<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" />
<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" />
<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" />
<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="225" />
<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="37" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" />
<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" />
<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" />
<hkern g1="W" g2="T" k="-14" />
<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="123" />
<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" />
<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" />
<hkern g1="X" g2="V" k="-14" />
<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" />
<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" />
<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="46" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="94" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="73" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" />
<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" />
<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" />
<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" />
<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" />
<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="211" />
<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="52" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" />
<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" />
<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" />
<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" />
<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="67" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" />
<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="b,p,thorn" g2="z" k="15" />
<hkern g1="b,p,thorn" g2="x" k="15" />
<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" />
<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="20" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" />
<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" />
<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" />
<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="123" />
<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" />
<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="107" />
<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" />
<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" />
<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,593 @@
<?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="robotomedium" horiz-adv-x="1160" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="510" />
<glyph unicode="&#xfb01;" horiz-adv-x="1192" d="M24 902v180h165v92q0 195 115 301t322 106q72 0 143 -15.5t163 -44.5l-37 -201q-62 21 -122 34.5t-130 13.5q-109 0 -160 -48.5t-51 -145.5v-92h213v-180h-213v-902h-243v902h-165zM804 0v1082h243v-1082h-243z" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="510" />
<glyph unicode=" " horiz-adv-x="510" />
<glyph unicode="&#x09;" horiz-adv-x="510" />
<glyph unicode="&#xa0;" horiz-adv-x="510" />
<glyph unicode="!" horiz-adv-x="549" d="M154 0v234h243v-234h-243zM154 491v965h243v-965h-243z" />
<glyph unicode="&#x22;" horiz-adv-x="664" d="M66 1038v524h214v-275l-102 -249h-112zM384 1038v524h214v-275l-102 -249h-112z" />
<glyph unicode="#" horiz-adv-x="1250" d="M60 410v158h261l58 313h-243v159h273l78 416h167l-78 -416h224l78 416h168l-78 -416h208v-159h-238l-58 -313h221v-158h-251l-76 -410h-167l76 410h-225l-76 -410h-167l76 410h-231zM488 568h225l58 313h-225z" />
<glyph unicode="$" horiz-adv-x="1164" d="M105 438l2 5h236q0 -142 69.5 -203t173.5 -61q111 0 172 54t61 147q0 85 -55.5 141t-185.5 102q-211 72 -316.5 173.5t-105.5 276.5q0 166 101 273t274 127v218h160v-220q171 -26 267.5 -146.5t96.5 -319.5h-242q0 125 -56 198t-154 73q-102 0 -153 -54.5t-51 -146.5 q0 -86 53.5 -140t192.5 -103q211 -76 314 -176t103 -274q0 -173 -105 -276t-287 -122v-195h-159v194q-179 19 -294.5 129.5t-111.5 325.5z" />
<glyph unicode="%" horiz-adv-x="1504" d="M100 1099v77q0 128 82.5 214.5t225.5 86.5q144 0 226.5 -86t82.5 -215v-77q0 -128 -82.5 -213.5t-224.5 -85.5q-144 0 -227 85.5t-83 213.5zM269 1099q0 -64 36.5 -108.5t104.5 -44.5q66 0 101.5 44t35.5 109v77q0 65 -36.5 110t-102.5 45q-67 0 -103 -45t-36 -110v-77z M335 181l711 1138l125 -72l-711 -1138zM800 279v78q0 127 83 213.5t225 86.5q144 0 226.5 -86t82.5 -214v-78q0 -129 -82.5 -214.5t-224.5 -85.5q-144 0 -227 86t-83 214zM969 279q0 -64 37.5 -109t103.5 -45q70 0 104 43.5t34 110.5v78q0 64 -36.5 109t-103.5 45t-103 -45 t-36 -109v-78z" />
<glyph unicode="&#x26;" horiz-adv-x="1309" d="M62 393q0 120 68 208.5t204 178.5q-73 95 -109 172t-36 157q0 171 103 269.5t278 98.5q159 0 258.5 -95.5t99.5 -230.5q0 -98 -51.5 -174.5t-145.5 -145.5l-100 -72l305 -362q40 63 62.5 138t22.5 159h197q0 -137 -36.5 -252t-110.5 -205l196 -232l-2 -5h-274l-81 95 q-82 -57 -175.5 -86.5t-197.5 -29.5q-217 0 -346 115t-129 299zM305 401q0 -100 63 -164t176 -64q62 0 123 18t116 53l-328 387l-30 -22q-72 -56 -96 -108t-24 -100zM417 1112q0 -48 24.5 -99t72.5 -113l114 76q57 37 76.5 77.5t19.5 89.5q0 54 -42.5 96.5t-111.5 42.5 q-74 0 -113.5 -49t-39.5 -121z" />
<glyph unicode="'" horiz-adv-x="346" d="M66 1028v532h214v-249l-102 -283h-112z" />
<glyph unicode="(" horiz-adv-x="695" d="M128 576v16q0 394 156.5 670.5t338.5 361.5l6 -1l45 -134q-134 -102 -229.5 -327t-95.5 -568v-20q0 -343 95 -568t230 -334l-45 -128h-6q-183 86 -339 362t-156 670z" />
<glyph unicode=")" horiz-adv-x="700" d="M17 -328q133 102 229 330t96 572v20q0 340 -98.5 568.5t-226.5 332.5l46 129h6q182 -84 342 -364t160 -668v-16q0 -389 -159.5 -668t-342.5 -364h-6z" />
<glyph unicode="*" horiz-adv-x="895" d="M27 1061l53 169l296 -117l-13 343h174l-15 -350l291 115l53 -171l-303 -88l195 -266l-141 -105l-177 287l-174 -279l-143 102l202 271z" />
<glyph unicode="+" horiz-adv-x="1141" d="M68 579v222h382v405h236v-405h380v-222h-380v-433h-236v433h-382z" />
<glyph unicode="," horiz-adv-x="462" d="M54 -281l70 321v198h239v-207l-155 -312h-154z" />
<glyph unicode="-" horiz-adv-x="672" d="M71 521v196h525v-196h-525z" />
<glyph unicode="." horiz-adv-x="572" d="M153 0v233h242v-233h-242z" />
<glyph unicode="/" horiz-adv-x="839" d="M2 -125l573 1581h223l-573 -1581h-223z" />
<glyph unicode="0" horiz-adv-x="1164" d="M104 561v333q0 283 128 433t349 150q220 0 349 -150t129 -433v-333q0 -284 -128 -433t-348 -149q-221 0 -350 149t-129 433zM347 526q0 -180 60.5 -266.5t175.5 -86.5t174 86t59 267v405q0 179 -60 265t-175 86t-174.5 -86t-59.5 -265v-405z" />
<glyph unicode="1" horiz-adv-x="1164" d="M179 1225v179l539 52v-1456h-243v1225h-296z" />
<glyph unicode="2" horiz-adv-x="1164" d="M87 1018q-5 194 127 326.5t362 132.5q210 0 332 -116t122 -303q0 -125 -70.5 -239t-218.5 -277l-324 -342l3 -6h656v-194h-967v167l474 517q116 127 160 208.5t44 159.5q0 98 -57 164t-154 66q-128 0 -190 -72t-62 -198h-235z" />
<glyph unicode="3" horiz-adv-x="1164" d="M86 384l2 6h234q0 -97 65 -157t173 -60q113 0 178 61t65 173q0 123 -59.5 181.5t-184.5 58.5h-169v191h169q118 0 170 58.5t52 165.5q0 105 -56 162.5t-165 57.5q-99 0 -161.5 -56.5t-62.5 -148.5h-234l-2 6q-6 167 124.5 280.5t332.5 113.5q213 0 340 -108t127 -307 q0 -93 -57 -180t-162 -135q124 -44 182.5 -134t58.5 -205q0 -200 -137.5 -314.5t-351.5 -114.5q-202 0 -339.5 107.5t-131.5 297.5z" />
<glyph unicode="4" horiz-adv-x="1164" d="M56 472l623 984h250v-937h184v-196h-184v-323h-242v323h-625zM296 519h391v591l-6 2l-20 -43z" />
<glyph unicode="5" horiz-adv-x="1164" d="M135 384l2 5l227 8q0 -106 62 -165t161 -59q113 0 172.5 79.5t59.5 210.5q0 132 -61 214.5t-174 82.5q-100 0 -148.5 -32.5t-70.5 -93.5l-209 17l84 805h769v-210h-567l-44 -365q43 32 99.5 52.5t127.5 22.5q205 2 321 -130t116 -361q0 -214 -122 -350t-353 -136 q-192 0 -324.5 105.5t-127.5 299.5z" />
<glyph unicode="6" horiz-adv-x="1164" d="M116 571v278q0 284 160.5 456t403.5 172q78 0 150 -16.5t129 -43.5l-46 -188q-56 24 -109 37.5t-123 13.5q-146 0 -234.5 -112.5t-88.5 -303.5v-7q60 55 139.5 85t174.5 30q195 0 308.5 -136.5t113.5 -347.5q0 -223 -130 -366t-341 -143q-222 0 -364.5 156t-142.5 436z M358 558q0 -185 74.5 -285t190.5 -100q106 0 167 91t61 224q0 131 -64 213t-175 82q-92 0 -156 -32.5t-98 -88.5v-104z" />
<glyph unicode="7" horiz-adv-x="1164" d="M69 1261v195h1006v-195q-251 -295 -339 -532t-128 -575l-15 -154h-243l15 154q39 330 156 598.5t319 508.5h-771z" />
<glyph unicode="8" horiz-adv-x="1164" d="M97 397q0 120 69.5 212t190.5 139q-104 44 -163 128.5t-59 195.5q0 194 122.5 299.5t323.5 105.5q199 0 323.5 -105.5t124.5 -299.5q0 -110 -60 -195t-163 -130q119 -46 189.5 -138t70.5 -212q0 -203 -134 -310.5t-349 -107.5q-218 0 -352 107.5t-134 310.5zM340 409 q0 -110 66 -173t177 -63q107 0 174 63.5t67 172.5q0 107 -68.5 174t-174.5 67q-108 0 -174.5 -66.5t-66.5 -174.5zM378 1063q0 -99 55.5 -158.5t149.5 -59.5q92 0 147.5 59.5t55.5 158.5q0 96 -57 157.5t-148 61.5q-94 0 -148.5 -59.5t-54.5 -159.5z" />
<glyph unicode="9" horiz-adv-x="1164" d="M82 974q0 218 135 360.5t334 142.5q226 0 361 -148.5t135 -427.5v-341q0 -276 -148.5 -428.5t-383.5 -152.5q-75 0 -155 15t-147 45l32 186q61 -28 125 -40t145 -12q130 0 210 96.5t80 281.5v67q-49 -67 -119.5 -101.5t-154.5 -34.5q-208 0 -328.5 131.5t-120.5 360.5z M325 974q0 -136 60.5 -219.5t168.5 -83.5q91 0 155 36t96 93v130q0 173 -65 262.5t-185 89.5q-98 0 -164 -87.5t-66 -220.5z" />
<glyph unicode=":" horiz-adv-x="549" d="M153 0v233h242v-233h-242zM153 876v233h242v-233h-242z" />
<glyph unicode=";" horiz-adv-x="544" d="M105 -281l70 321v198h239v-207l-155 -312h-154zM154 876v233h242v-233h-242z" />
<glyph unicode="&#x3c;" horiz-adv-x="1041" d="M63 458v193l837 372v-242l-578 -222l-19 -3v-6l19 -3l578 -218v-243z" />
<glyph unicode="=" horiz-adv-x="1166" d="M145 366v201h862v-201h-862zM145 790v202h862v-202h-862z" />
<glyph unicode="&#x3e;" horiz-adv-x="1066" d="M128 86v239l605 226l18 2l1 6l-19 4l-605 221v239l864 -372v-193z" />
<glyph unicode="?" horiz-adv-x="996" d="M47 1100q-3 178 119.5 277.5t316.5 99.5q210 0 327.5 -107t117.5 -297q0 -127 -73.5 -235.5t-185.5 -198.5q-57 -50 -71.5 -95t-14.5 -132h-243q1 143 33 204.5t142 154.5q78 76 124 145.5t46 153.5q0 97 -52.5 150.5t-149.5 53.5q-83 0 -141 -45.5t-58 -134.5h-234z M339 0v233h248v-233h-248z" />
<glyph unicode="@" horiz-adv-x="1825" d="M91 478q18 424 252 685t613 261q383 0 587 -246t188 -671q-9 -216 -124 -372t-344 -156q-75 0 -129.5 42t-78.5 119q-47 -80 -116 -119.5t-161 -39.5q-133 0 -204.5 119.5t-53.5 315.5q24 256 140.5 411t282.5 155q110 0 177.5 -26t147.5 -80l-3 -4h5l-51 -579 q-8 -101 18 -139t69 -38q119 0 190.5 110.5t79.5 280.5q16 367 -140 572t-484 205q-306 0 -489.5 -221t-198.5 -585q-18 -365 147.5 -575t475.5 -210q87 0 177 20t154 53l38 -130q-67 -42 -170.5 -65.5t-202.5 -23.5q-387 0 -598 249.5t-194 681.5zM721 416 q-10 -133 20 -202t99 -69q59 0 109 24.5t89 87.5q0 8 0.5 16t1.5 20l45 515q-23 9 -49 14.5t-54 5.5q-118 0 -180 -102.5t-81 -309.5z" />
<glyph unicode="A" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM448 543h431l-211 622h-6z" />
<glyph unicode="B" horiz-adv-x="1312" d="M159 0v1456h484q242 0 378 -99.5t136 -297.5q0 -99 -57 -177t-158 -116q130 -29 200 -125t70 -223q0 -205 -134 -311.5t-370 -106.5h-549zM402 194h306q126 0 194 57.5t68 166.5q0 116 -57 180t-178 64h-333v-468zM402 843h268q113 0 178.5 53.5t65.5 151.5 q0 108 -69 160.5t-202 52.5h-241v-418z" />
<glyph unicode="C" horiz-adv-x="1302" d="M106 589v277q0 266 157.5 438.5t409.5 172.5q259 1 407 -135q145 -132 144 -353v-12l-2 -6h-235q0 147 -79.5 229t-234.5 82q-149 0 -236.5 -118t-87.5 -296v-279q0 -180 89.5 -298t241.5 -118q151 0 229 81t78 229h234l2 -6v-12q1 -213 -143 -347q-148 -138 -400 -139 q-255 0 -414.5 171.5t-159.5 438.5z" />
<glyph unicode="D" horiz-adv-x="1346" d="M159 0v1456h472q277 0 450.5 -173t173.5 -445v-221q0 -273 -173.5 -445t-450.5 -172h-472zM402 194h222q181 0 284.5 118t103.5 305v223q0 185 -103.5 303t-284.5 118h-222v-1067z" />
<glyph unicode="E" horiz-adv-x="1187" d="M159 0v1456h975v-195h-732v-411h637v-195h-637v-461h739v-194h-982z" />
<glyph unicode="F" horiz-adv-x="1188" d="M159 0v1456h983v-195h-740v-445h638v-195h-638v-621h-243z" />
<glyph unicode="G" horiz-adv-x="1383" d="M110 576v304q0 264 160.5 430.5t414.5 166.5q257 0 399.5 -126.5t145.5 -329.5l-2 -6h-230q-8 120 -85.5 193.5t-224.5 73.5q-151 0 -243.5 -113t-92.5 -287v-306q0 -176 100.5 -289.5t260.5 -113.5q114 0 185 26.5t103 62.5v296h-289v182h532v-543 q-58 -83 -190.5 -150.5t-340.5 -67.5q-263 0 -433 166.5t-170 430.5z" />
<glyph unicode="H" horiz-adv-x="1456" d="M159 0v1456h243v-640h652v640h242v-1456h-242v621h-652v-621h-243z" />
<glyph unicode="I" horiz-adv-x="589" d="M173 0v1456h243v-1456h-243z" />
<glyph unicode="J" horiz-adv-x="1148" d="M64 407l2 6h235q0 -124 61.5 -182t171.5 -58q96 0 158.5 67t62.5 181v1035h243v-1035q0 -204 -130 -323t-334 -119q-219 0 -347 109q-123 105 -123 303v16z" />
<glyph unicode="K" horiz-adv-x="1320" d="M159 0v1456h243v-617h139l457 617h288l-530 -695l571 -761h-297l-460 630h-168v-630h-243z" />
<glyph unicode="L" horiz-adv-x="1108" d="M159 0v1456h243v-1262h669v-194h-912z" />
<glyph unicode="M" horiz-adv-x="1794" d="M159 0v1456h315l419 -1120h6l420 1120h315v-1456h-243v496l24 631l-6 1l-432 -1128h-163l-430 1125l-6 -1l24 -628v-496h-243z" />
<glyph unicode="N" horiz-adv-x="1456" d="M159 0v1456h243l646 -1062l6 2v1060h242v-1456h-242l-646 1063l-6 -2v-1061h-243z" />
<glyph unicode="O" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299t-263.5 117q-160 0 -253 -117 t-93 -299v-264z" />
<glyph unicode="P" horiz-adv-x="1323" d="M159 0v1456h569q241 0 377.5 -124.5t136.5 -327.5q0 -205 -136.5 -328.5t-377.5 -123.5h-326v-552h-243zM402 747h326q135 0 203 72t68 183t-68 185t-203 74h-326v-514z" />
<glyph unicode="Q" horiz-adv-x="1414" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -135 -46 -251t-130 -200l242 -235l-162 -145l-268 256q-54 -22 -114 -32.5t-124 -10.5q-262 0 -425.5 175.5t-163.5 442.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264 q0 182 -97.5 299t-263.5 117q-160 0 -253 -117t-93 -299v-264z" />
<glyph unicode="R" horiz-adv-x="1356" d="M159 0v1456h538q244 0 377 -110t133 -314q0 -113 -58.5 -194.5t-170.5 -130.5q123 -39 177 -127.5t54 -217.5v-121q0 -64 16 -125t54 -93v-23h-250q-40 33 -51.5 104t-11.5 139v117q0 112 -64 178t-176 66h-324v-604h-243zM402 799h282q146 0 213 56t67 171 q0 110 -66 172.5t-201 62.5h-295v-462z" />
<glyph unicode="S" horiz-adv-x="1288" d="M96 430l2 6h234q0 -133 92 -198.5t239 -65.5q135 0 210 54.5t75 147.5q0 91 -67.5 149t-238.5 104q-244 64 -375.5 169.5t-131.5 276.5q0 176 145.5 290t375.5 114q240 0 386 -129q141 -125 140 -298v-12l-2 -6h-233q0 112 -76 181.5t-217 69.5q-133 0 -204.5 -58 t-71.5 -150q0 -83 77.5 -138t256.5 -104q235 -63 357 -174t122 -283q0 -182 -145.5 -289.5t-382.5 -107.5q-228 1 -400 121q-167 117 -167 318v12z" />
<glyph unicode="T" horiz-adv-x="1185" d="M31 1261v195h1123v-195h-440v-1261h-243v1261h-440z" />
<glyph unicode="U" horiz-adv-x="1396" d="M134 480v976h243v-976q0 -153 86 -230t231 -77q150 0 239 77t89 230v976h243v-976q0 -242 -158 -371.5t-413 -129.5q-250 0 -405 130t-155 371z" />
<glyph unicode="V" horiz-adv-x="1300" d="M15 1456h259l347 -1075l26 -101h6l25 99l348 1077h259l-520 -1456h-231z" />
<glyph unicode="W" horiz-adv-x="1812" d="M40 1456h239l233 -1068v-2l1 5l291 1065h194l294 -1068l1 -7l1 10l230 1065h239l-346 -1456h-221l-291 1045h-6l-292 -1045h-222z" />
<glyph unicode="X" horiz-adv-x="1300" d="M50 0l458 734l-448 722h286l304 -538l307 538h288l-448 -722l465 -734h-292l-316 547l-316 -547h-288z" />
<glyph unicode="Y" horiz-adv-x="1270" d="M13 1456h271l350 -708l352 708h271l-505 -945v-511h-242v524z" />
<glyph unicode="Z" horiz-adv-x="1216" d="M88 0v152l731 1109h-725v195h1018v-146l-735 -1116h760v-194h-1049z" />
<glyph unicode="[" horiz-adv-x="561" d="M132 -324v2002h408v-190h-165v-1623h165v-189h-408z" />
<glyph unicode="\" horiz-adv-x="855" d="M21 1456h236l608 -1581h-236z" />
<glyph unicode="]" horiz-adv-x="561" d="M12 -135h167v1623h-167v190h410v-2002h-410v189z" />
<glyph unicode="^" horiz-adv-x="875" d="M53 729l299 727h171l298 -727h-205l-165 413l-12 54h-6l-12 -54l-162 -413h-206z" />
<glyph unicode="_" horiz-adv-x="924" d="M3 0h917v-191h-917v191z" />
<glyph unicode="`" horiz-adv-x="660" d="M80 1472l2 6h268l185 -266h-196z" />
<glyph unicode="a" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6v14q1 120 115 213q122 99 316 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5z" />
<glyph unicode="b" d="M128 0v1560h243v-601q50 69 120 106t163 37q203 0 313.5 -158t110.5 -418v-21q0 -237 -110.5 -381.5t-311.5 -144.5q-101 0 -175.5 41t-124.5 120l-24 -140h-204zM371 313q31 -65 86 -100.5t138 -35.5q126 0 183 88.5t57 239.5v21q0 169 -58 273t-184 104 q-81 0 -135.5 -36t-86.5 -100v-454z" />
<glyph unicode="c" horiz-adv-x="1075" d="M81 523v35q0 235 127.5 389.5t366.5 154.5q195 0 317 -114q118 -110 117 -277v-11l-2 -6h-221q0 89 -58.5 151t-152.5 62q-137 0 -194 -99.5t-57 -249.5v-35q0 -153 57 -251.5t194 -98.5q89 0 150 52.5t61 131.5h220l2 -6v-11q0 -145 -124 -251q-128 -110 -309 -110 q-239 0 -366.5 154t-127.5 390z" />
<glyph unicode="d" d="M83 505v21q0 259 111 417.5t312 158.5q88 0 157.5 -35.5t120.5 -101.5v595h243v-1560h-204l-24 134q-52 -76 -125 -115.5t-170 -39.5q-199 0 -310 145t-111 381zM326 505q0 -150 57.5 -239t182.5 -89q77 0 130.5 33t87.5 94v472q-34 60 -88 93.5t-128 33.5 q-124 0 -183 -104.5t-59 -272.5v-21z" />
<glyph unicode="e" horiz-adv-x="1084" d="M89 516v40q-1 236 135 392q135 155 337 154h3q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-230 0 -366.5 150.5t-136.5 386.5zM344 654l2 -5h429v25q0 103 -52.5 168t-158.5 65 q-90 0 -148 -71.5t-72 -181.5z" />
<glyph unicode="f" horiz-adv-x="719" d="M42 902v180h165v126q0 179 97.5 276t273.5 97q35 0 71 -5.5t81 -15.5l-25 -188q-20 4 -44.5 7t-52.5 3q-79 0 -118.5 -45t-39.5 -129v-126h220v-180h-220v-902h-243v902h-165z" />
<glyph unicode="g" d="M84 505v21q0 258 113 417t314 159q97 0 170.5 -41.5t124.5 -119.5l24 141h202v-1082q0 -209 -129 -323t-366 -114q-79 0 -170.5 22.5t-165.5 59.5l52 191q60 -31 132.5 -48.5t149.5 -17.5q132 0 193 56.5t61 173.5v111q-51 -65 -120.5 -98.5t-159.5 -33.5 q-199 0 -312 145t-113 381zM327 505q0 -149 59.5 -238.5t184.5 -89.5q78 0 131.5 32.5t86.5 93.5v474q-34 59 -87.5 92.5t-128.5 33.5q-125 0 -185.5 -105t-60.5 -272v-21z" />
<glyph unicode="h" d="M125 0v1560h243v-618q54 76 131.5 118t171.5 42q172 0 268.5 -108.5t96.5 -334.5v-659h-243v661q0 128 -51 185t-153 57q-71 0 -127.5 -29.5t-93.5 -81.5v-792h-243z" />
<glyph unicode="i" horiz-adv-x="531" d="M144 0v1082h243v-1082h-243zM144 1347v213h243v-213h-243z" />
<glyph unicode="j" horiz-adv-x="537" d="M-80 -420l14 194q17 -5 42 -8.5t46 -3.5q62 0 97.5 42.5t35.5 132.5v1145h243v-1145q0 -179 -93 -276.5t-259 -97.5q-36 0 -65 4t-61 13zM149 1347v213h243v-213h-243z" />
<glyph unicode="k" horiz-adv-x="1072" d="M129 0v1560h242v-892h101l273 414h286l-357 -492l410 -590h-282l-322 473h-109v-473h-242z" />
<glyph unicode="l" horiz-adv-x="531" d="M144 0v1560h243v-1560h-243z" />
<glyph unicode="m" horiz-adv-x="1781" d="M128 0v1082h222l13 -141q53 77 133 119t185 42q106 0 182 -48t114 -144q50 90 132 141t192 51q163 0 257.5 -111.5t94.5 -338.5v-652h-243v653q0 138 -47.5 194t-142.5 56q-78 0 -132 -42t-78 -113q0 -15 1 -26t1 -21v-701h-243v653q0 133 -48.5 191.5t-142.5 58.5 q-74 0 -125.5 -28.5t-81.5 -80.5v-794h-243z" />
<glyph unicode="n" d="M126 0v1082h222l14 -156q53 83 133.5 129.5t181.5 46.5q169 0 263.5 -102.5t94.5 -319.5v-680h-243v678q0 122 -50.5 173.5t-153.5 51.5q-71 0 -127 -31.5t-92 -86.5v-785h-243z" />
<glyph unicode="o" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM326 530q0 -158 62 -258q61 -99 192 -99q127 0 190 99q64 100 64 258v21q0 155 -64 255q-63 101 -192 101 q-127 0 -190 -101q-62 -101 -62 -255v-21z" />
<glyph unicode="p" d="M128 -416v1498h205l24 -136q52 76 125.5 116t170.5 40q200 0 311.5 -158.5t111.5 -417.5v-21q0 -236 -111 -381t-309 -145q-92 0 -163 33t-122 97v-525h-243zM371 291q32 -57 85 -87.5t131 -30.5q124 0 185.5 91.5t61.5 240.5v21q0 166 -62.5 271.5t-186.5 105.5 q-76 0 -129 -32.5t-85 -90.5v-489z" />
<glyph unicode="q" d="M83 505v21q0 259 111 417.5t312 158.5q94 0 166 -39t123 -112l28 131h197v-1498h-243v518q-50 -61 -118 -92t-155 -31q-199 0 -310 145t-111 381zM326 505q0 -150 57.5 -241t182.5 -91q74 0 125.5 29.5t85.5 85.5v504q-34 54 -86 84.5t-123 30.5q-124 0 -183 -106.5 t-59 -274.5v-21z" />
<glyph unicode="r" horiz-adv-x="709" d="M128 0v1082h222l16 -157q41 83 105.5 130t148.5 47q22 0 41 -3.5t35 -8.5l-29 -227l-104 4q-71 0 -118.5 -30t-73.5 -85v-752h-243z" />
<glyph unicode="s" horiz-adv-x="1065" d="M88 335l2 6h226q4 -94 68 -137t156 -43q94 0 145 36t51 97q0 56 -48 93t-179 65q-194 41 -293.5 116.5t-99.5 205.5q0 136 115 232t303 96q198 0 314 -98q112 -93 112 -229v-12l-2 -6h-233q0 67 -51 115t-140 48q-88 0 -134 -39.5t-46 -96.5t43.5 -90.5t176.5 -59.5 q204 -42 302.5 -118.5t98.5 -208.5q0 -146 -120.5 -237t-317.5 -91q-211 0 -333 108q-116 103 -116 235v13z" />
<glyph unicode="t" horiz-adv-x="712" d="M23 902v180h165v263h242v-263h194v-180h-194v-598q0 -67 29 -95.5t77 -28.5q20 0 39 3.5t36 9.5l26 -178q-31 -17 -74 -26.5t-89 -9.5q-134 0 -210 78.5t-76 246.5v598h-165z" />
<glyph unicode="u" d="M123 435v647h242v-649q0 -142 46 -199t139 -57q88 0 147.5 31.5t93.5 91.5v782h243v-1082h-212l-20 158q-51 -86 -129 -132.5t-180 -46.5q-174 0 -272 111t-98 345z" />
<glyph unicode="v" horiz-adv-x="1038" d="M32 1082h251l221 -716l18 -88h6l19 88l215 716h251l-384 -1082h-211z" />
<glyph unicode="w" horiz-adv-x="1530" d="M37 1082h233l173 -758l6 -1l225 759h177l229 -770l6 1l169 769h233l-296 -1082h-199l-230 739l-2 10l-1 -10l-228 -739h-199z" />
<glyph unicode="x" horiz-adv-x="1038" d="M33 0l350 547l-340 535h276l197 -371l200 371h279l-340 -535l350 -547h-276l-209 380l-209 -380h-278z" />
<glyph unicode="y" horiz-adv-x="1038" d="M16 1082h265l206 -648l24 -108h6l237 756h266l-448 -1246q-43 -113 -121 -193t-221 -80q-30 0 -64.5 6t-66.5 14l27 188q13 -1 37 -3t36 -2q66 0 105.5 45t64.5 104l40 98z" />
<glyph unicode="z" horiz-adv-x="1038" d="M85 0v159l546 727h-535v196h842v-154l-552 -734h578v-194h-879z" />
<glyph unicode="{" horiz-adv-x="687" d="M56 529v178q98 0 145.5 58t47.5 164v203q0 171 82.5 290.5t277.5 174.5l48 -140q-98 -33 -138.5 -117t-40.5 -208v-203q0 -104 -43 -184.5t-130 -125.5q87 -47 130 -127.5t43 -182.5v-203q0 -124 40.5 -208t138.5 -117l-48 -141q-195 55 -277.5 175t-82.5 291v203 q0 104 -47.5 162t-145.5 58z" />
<glyph unicode="|" horiz-adv-x="514" d="M174 -270v1726h167v-1726h-167z" />
<glyph unicode="}" horiz-adv-x="687" d="M27 -219q97 33 138.5 117t41.5 208v203q0 105 44.5 185t137.5 124q-93 43 -137.5 123.5t-44.5 187.5v203q0 124 -41.5 208t-138.5 117l48 140q194 -55 277 -174.5t83 -290.5v-203q0 -106 47 -164t147 -58v-178q-100 0 -147 -58t-47 -162v-203q0 -171 -83 -291t-277 -175z " />
<glyph unicode="~" horiz-adv-x="1361" d="M117 460q0 150 86 252.5t221 102.5q86 0 161.5 -33.5t155.5 -101.5q54 -48 97 -69t90 -21q59 0 102 54.5t43 128.5l171 -23q0 -151 -88 -257t-221 -106q-87 0 -159.5 32.5t-155.5 103.5q-55 46 -99 68t-90 22q-60 0 -102 -51.5t-42 -123.5z" />
<glyph unicode="&#xa1;" horiz-adv-x="542" d="M143 -374v964h243v-964h-243zM143 847v235h243v-235h-243z" />
<glyph unicode="&#xa2;" horiz-adv-x="1149" d="M91 523v35q0 208 101.5 356t294.5 180v224h200v-225q154 -29 245 -136.5t88 -257.5l-2 -5h-222q0 89 -58.5 151t-152.5 62q-137 0 -194 -99.5t-57 -249.5v-35q0 -153 57 -251.5t194 -98.5q89 0 150 52.5t61 131.5h222l2 -5q3 -129 -92.5 -231t-240.5 -131v-235h-200v232 q-193 31 -294.5 178.5t-101.5 357.5z" />
<glyph unicode="&#xa3;" horiz-adv-x="1205" d="M81 600v195h155l-9 238q0 207 116 325.5t311 118.5q207 0 321 -108.5t110 -286.5l-2 -6h-235q0 105 -54.5 155.5t-139.5 50.5q-86 0 -135 -65.5t-49 -183.5l9 -238h389v-195h-381l5 -114q0 -82 -22.5 -158t-64.5 -134h725v-194h-986v194h10q47 13 70.5 101.5t23.5 182.5 l-5 122h-162z" />
<glyph unicode="&#xa4;" horiz-adv-x="1437" d="M93 118l135 137q-49 76 -74.5 165.5t-25.5 187.5q0 101 28 193.5t81 171.5l-144 147l141 144l142 -145q74 55 162 85t185 30q96 0 185 -30.5t164 -86.5l145 148l142 -145l-148 -151q51 -78 79 -169.5t28 -191.5q0 -97 -25.5 -185.5t-72.5 -163.5l139 -141l-142 -145 l-132 134q-77 -61 -169.5 -94t-192.5 -33q-101 0 -193 32.5t-167 93.5l-129 -132zM313 608q0 -185 119.5 -314t290.5 -129q170 0 289.5 129t119.5 314q0 184 -119.5 312t-289.5 128q-171 0 -290.5 -128t-119.5 -312z" />
<glyph unicode="&#xa5;" horiz-adv-x="1248" d="M26 1456h272l322 -640l323 640h271l-397 -714h276v-195h-355v-115h355v-195h-355v-237h-243v237h-357v195h357v115h-357v195h287z" />
<glyph unicode="&#xa6;" horiz-adv-x="508" d="M136 -270v795h229v-795h-229zM136 698v758h229v-758h-229z" />
<glyph unicode="&#xa7;" horiz-adv-x="1272" d="M94 542q0 90 43.5 160t125.5 114q-67 50 -100 119.5t-33 166.5q0 169 137.5 272t367.5 103q238 0 372 -111.5t129 -312.5l-2 -6h-234q0 101 -70 168t-195 67q-130 0 -196 -50.5t-66 -127.5q0 -86 61 -129t257 -95q244 -66 358.5 -158.5t114.5 -266.5q0 -93 -44.5 -162 t-126.5 -111q67 -50 101 -119t34 -166q0 -175 -136.5 -274t-367.5 -99q-226 0 -379 101t-148 319l2 6l233 1q0 -122 85 -177t207 -55t192 49.5t70 126.5t-67 122t-254 101q-242 64 -356.5 157t-114.5 267zM336 558q0 -89 62 -134.5t256 -100.5q53 -16 88 -26.5t67 -21.5 q55 22 85 64.5t30 99.5q0 80 -68 128.5t-255 105.5q-42 10 -81 22.5t-76 26.5q-55 -21 -81.5 -63.5t-26.5 -100.5z" />
<glyph unicode="&#xa8;" horiz-adv-x="1054" d="M164 1252v204h241v-204h-241zM647 1252v204h242v-204h-242z" />
<glyph unicode="&#xa9;" horiz-adv-x="1604" d="M87 729q0 315 207 531t503 216q295 0 502 -216t207 -531q0 -316 -207.5 -533t-501.5 -217q-296 0 -503 217t-207 533zM209 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M434 669v119q0 173 94.5 280t254.5 107q157 0 245.5 -79.5t84.5 -228.5l-2 -6h-148q0 94 -45 136.5t-135 42.5q-94 0 -144.5 -69t-50.5 -182v-120q0 -115 50.5 -183.5t144.5 -68.5q90 0 134.5 41.5t44.5 137.5h148l2 -6q4 -151 -84 -229.5t-245 -78.5q-160 0 -254.5 106 t-94.5 281z" />
<glyph unicode="&#xaa;" horiz-adv-x="913" d="M116 920q0 111 84.5 171t246.5 60h137v51q0 62 -29.5 94.5t-86.5 32.5q-66 0 -102 -26t-36 -73l-165 13l-1 6q-6 98 79 163t225 65q134 0 212.5 -71t78.5 -205v-314q0 -51 6 -95t20 -86h-177q-8 21 -13 44.5t-8 49.5q-33 -47 -88.5 -77.5t-133.5 -30.5q-119 0 -184 61 t-65 167zM291 924q0 -43 29 -65.5t88 -22.5q51 0 104.5 29t71.5 64v105h-136q-74 0 -115.5 -32t-41.5 -78z" />
<glyph unicode="&#xab;" horiz-adv-x="994" d="M98 507v19l288 390h167l-247 -400l247 -399h-167zM432 507v19l288 390h167l-247 -400l247 -399h-167z" />
<glyph unicode="&#xac;" horiz-adv-x="1133" d="M127 634v171h835v-431h-200v260h-635z" />
<glyph unicode="&#xad;" horiz-adv-x="672" d="M71 521v196h525v-196h-525z" />
<glyph unicode="&#xae;" horiz-adv-x="1604" d="M87 729q0 315 207 531t503 216q295 0 502 -216t207 -531q0 -316 -207.5 -533t-501.5 -217q-296 0 -503 217t-207 533zM209 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M502 316v850h281q151 0 238 -66.5t87 -193.5q0 -59 -30.5 -104t-89.5 -76q62 -28 89.5 -82t27.5 -129v-56q0 -41 3.5 -73.5t13.5 -53.5v-16h-155q-9 21 -11 61.5t-2 82.5v54q0 71 -33.5 105t-109.5 34h-158v-337h-151zM653 787h143q68 0 115 30.5t47 85.5q0 72 -39 101 t-136 29h-130v-246z" />
<glyph unicode="&#xaf;" horiz-adv-x="987" d="M135 1298v158h727v-158h-727z" />
<glyph unicode="&#xb0;" horiz-adv-x="778" d="M127 1208q0 110 77.5 189.5t186.5 79.5q107 0 183.5 -79.5t76.5 -189.5t-76.5 -187t-183.5 -77q-109 0 -186.5 77t-77.5 187zM266 1208q0 -53 36.5 -88.5t88.5 -35.5q51 0 86.5 35t35.5 89t-35.5 91t-86.5 37q-52 0 -88.5 -37t-36.5 -91z" />
<glyph unicode="&#xb1;" horiz-adv-x="1099" d="M95 707v199h358v384h215v-384h343v-199h-343v-395h-215v395h-358zM126 -23v196h835v-196h-835z" />
<glyph unicode="&#xb2;" horiz-adv-x="865" d="M114 1231q-6 103 80 175.5t231 72.5q139 0 216.5 -65t77.5 -182q0 -81 -48.5 -140t-168.5 -164l-129 -110l2 -6h350v-145h-607v145l305 256q64 54 84 89t20 76q0 44 -25.5 72t-79.5 28q-61 0 -93 -30t-32 -78h-181z" />
<glyph unicode="&#xb3;" horiz-adv-x="867" d="M104 888l2 6h181q0 -43 34.5 -68.5t95.5 -25.5q64 0 102 26t38 71q0 56 -35.5 83.5t-104.5 27.5h-123v131h123q65 0 95.5 26.5t30.5 74.5q0 39 -32.5 65.5t-94.5 26.5q-53 0 -84.5 -22t-31.5 -56h-181l-2 6q-6 98 80 158t216 60q149 0 235 -59.5t86 -169.5 q0 -55 -35.5 -100.5t-96.5 -70.5q70 -24 107.5 -71.5t37.5 -115.5q0 -112 -90 -174t-239 -62q-135 0 -227.5 60.5t-86.5 172.5z" />
<glyph unicode="&#xb4;" horiz-adv-x="689" d="M120 1212l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xb5;" horiz-adv-x="1211" d="M146 -416v1498h242v-620q0 -167 50 -227t147 -60q87 0 142.5 30.5t84.5 90.5v786h243v-1082h-223l-7 86q-45 -53 -104.5 -80t-134.5 -27q-61 0 -110.5 13.5t-87.5 41.5v-450h-242z" />
<glyph unicode="&#xb6;" horiz-adv-x="1040" d="M62 988q0 207 129.5 337.5t362.5 130.5h326v-1456h-243v520h-83q-233 0 -362.5 129.5t-129.5 338.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="578" d="M160 594v240h242v-240h-242z" />
<glyph unicode="&#xb8;" horiz-adv-x="528" d="M109 -136l32 139h177l-11 -54q64 -11 107 -52t43 -121q0 -102 -85 -162.5t-242 -60.5l-7 137q62 0 99.5 22t37.5 67q0 44 -34.5 62t-116.5 23z" />
<glyph unicode="&#xb9;" horiz-adv-x="565" d="M87 1304v150l319 23v-812h-192v639h-127z" />
<glyph unicode="&#xba;" horiz-adv-x="935" d="M119 1026v116q0 148 94 241.5t252 93.5t252.5 -93.5t94.5 -241.5v-116q0 -149 -94 -241.5t-251 -92.5q-159 0 -253.5 92.5t-94.5 241.5zM294 1026q0 -85 44 -136.5t129 -51.5q82 0 126 51.5t44 136.5v116q0 83 -44.5 135t-127.5 52q-84 0 -127.5 -52t-43.5 -135v-116z " />
<glyph unicode="&#xbb;" horiz-adv-x="994" d="M106 151l247 399l-247 400h167l288 -390v-19l-288 -390h-167zM452 151l247 399l-247 400h167l288 -390v-19l-288 -390h-167z" />
<glyph unicode="&#xbc;" horiz-adv-x="1548" d="M176 1303v150l319 23v-812h-192v639h-127zM325 189l711 1138l125 -72l-711 -1138zM775 261l422 540h192v-511h114v-145h-114v-145h-191v145h-413zM977 295l3 -5h218v277l-6 2l-12 -20z" />
<glyph unicode="&#xbd;" horiz-adv-x="1638" d="M176 1303v150l319 23v-812h-192v639h-127zM338 189l711 1138l125 -72l-711 -1138zM925 564q-6 103 80 175.5t231 72.5q139 0 216.5 -65t77.5 -182q0 -81 -48.5 -140t-168.5 -164l-129 -110l2 -6h350v-145h-607v145l305 256q64 54 84 89t20 76q0 44 -25.5 72t-79.5 28 q-61 0 -93 -30t-32 -78h-181z" />
<glyph unicode="&#xbe;" horiz-adv-x="1753" d="M120 889l2 6h181q0 -43 34.5 -68.5t95.5 -25.5q64 0 102 26t38 71q0 56 -35.5 83.5t-104.5 27.5h-123v131h123q65 0 95.5 26.5t30.5 74.5q0 39 -32.5 65.5t-94.5 26.5q-53 0 -84.5 -22t-31.5 -56h-181l-2 6q-6 98 80 158t216 60q149 0 235 -59.5t86 -169.5 q0 -55 -35.5 -100.5t-96.5 -70.5q70 -24 107.5 -71.5t37.5 -115.5q0 -112 -90 -174t-239 -62q-135 0 -227.5 60.5t-86.5 172.5zM508 189l711 1138l125 -72l-711 -1138zM964 261l422 540h192v-511h114v-145h-114v-145h-191v145h-413zM1166 295l3 -5h218v277l-6 2l-12 -20z " />
<glyph unicode="&#xbf;" horiz-adv-x="1025" d="M96 8q0 127 73 235.5t186 198.5q56 49 71.5 94.5t15.5 132.5h242q-2 -144 -33.5 -205t-141.5 -153q-80 -79 -125 -147.5t-45 -151.5q0 -97 52 -150.5t151 -53.5q81 0 139 46t60 135h234l3 -6q1 -178 -121.5 -277.5t-314.5 -99.5q-211 0 -328.5 107t-117.5 295zM438 849 v233h248v-233h-248z" />
<glyph unicode="&#xc0;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM346 1820l2 6h268l185 -266h-196zM448 543h431l-211 622h-6z" />
<glyph unicode="&#xc1;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM448 543h431l-211 622h-6zM569 1559l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xc2;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM324 1597v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193zM448 543h431l-211 622h-6z" />
<glyph unicode="&#xc3;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM300 1637q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5zM448 543h431 l-211 622h-6z" />
<glyph unicode="&#xc4;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM298 1601v204h241v-204h-241zM448 543h431l-211 622h-6zM781 1601v204h242v-204h-242z" />
<glyph unicode="&#xc5;" horiz-adv-x="1320" d="M16 0l535 1456h230l529 -1456h-247l-115 340h-570l-116 -340h-246zM448 543h431l-211 622h-6zM450 1737q0 84 61.5 141t150.5 57q87 0 147.5 -57t60.5 -141q0 -85 -60.5 -139.5t-147.5 -54.5q-89 0 -150.5 54.5t-61.5 139.5zM560 1737q0 -43 29.5 -72t72.5 -29 q42 0 70 28t28 73t-28 74.5t-70 30.5q-43 -1 -72.5 -30.5t-29.5 -74.5z" />
<glyph unicode="&#xc6;" horiz-adv-x="1925" d="M-10 0l835 1456h992v-197h-646l17 -408h548v-197h-540l20 -458h663v-196h-898l-15 340h-502l-184 -340h-290zM580 555h377l-27 637l-5 1z" />
<glyph unicode="&#xc7;" horiz-adv-x="1302" d="M106 589v277q0 266 157.5 438.5t409.5 172.5q258 0 406.5 -135.5t144.5 -364.5l-2 -6h-235q0 147 -79.5 229t-234.5 82q-149 0 -236.5 -118t-87.5 -296v-279q0 -180 89.5 -298t241.5 -118q151 0 229 81t78 229h234l2 -6q4 -221 -143.5 -359.5t-399.5 -138.5 q-255 0 -414.5 171.5t-159.5 438.5zM554 -140l32 139h177l-11 -54q64 -11 107 -52t43 -121q0 -102 -85 -162.5t-242 -60.5l-7 137q62 0 99.5 22t37.5 67q0 44 -34.5 62t-116.5 23z" />
<glyph unicode="&#xc8;" horiz-adv-x="1187" d="M159 0v1456h975v-195h-732v-411h637v-195h-637v-461h739v-194h-982zM276 1820l2 6h268l185 -266h-196z" />
<glyph unicode="&#xc9;" horiz-adv-x="1187" d="M159 0v1456h975v-195h-732v-411h637v-195h-637v-461h739v-194h-982zM499 1559l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xca;" horiz-adv-x="1187" d="M159 0v1456h975v-195h-732v-411h637v-195h-637v-461h739v-194h-982zM282 1597v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193z" />
<glyph unicode="&#xcb;" horiz-adv-x="1187" d="M159 0v1456h975v-195h-732v-411h637v-195h-637v-461h739v-194h-982zM255 1601v204h241v-204h-241zM738 1601v204h242v-204h-242z" />
<glyph unicode="&#xcc;" horiz-adv-x="589" d="M-45 1820l2 6h268l185 -266h-196zM173 0v1456h243v-1456h-243z" />
<glyph unicode="&#xcd;" horiz-adv-x="589" d="M173 0v1456h243v-1456h-243zM176 1559l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xce;" horiz-adv-x="589" d="M-39 1597v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193zM173 0v1456h243v-1456h-243z" />
<glyph unicode="&#xcf;" horiz-adv-x="589" d="M-66 1601v204h241v-204h-241zM173 0v1456h243v-1456h-243zM417 1601v204h242v-204h-242z" />
<glyph unicode="&#xd0;" horiz-adv-x="1376" d="M36 657v170h153v629h472q277 0 450.5 -173t173.5 -445v-221q0 -273 -173.5 -445t-450.5 -172h-472v657h-153zM432 194h222q181 0 284.5 118t103.5 305v223q0 185 -103.5 303t-284.5 118h-222v-434h259v-170h-259v-463z" />
<glyph unicode="&#xd1;" horiz-adv-x="1456" d="M159 0v1456h243l646 -1062l6 2v1060h242v-1456h-242l-646 1063l-6 -2v-1061h-243zM366 1637q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5z " />
<glyph unicode="&#xd2;" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299t-263.5 117q-160 0 -253 -117 t-93 -299v-264zM358 1841l2 6h268l185 -266h-196z" />
<glyph unicode="&#xd3;" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299t-263.5 117q-160 0 -253 -117 t-93 -299v-264zM581 1580l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xd4;" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299t-263.5 117q-160 0 -253 -117 t-93 -299v-264zM364 1618v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193z" />
<glyph unicode="&#xd5;" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM339 1658q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39q0 -95 -60 -162t-150 -67 q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299t-263.5 117q-160 0 -253 -117t-93 -299v-264z" />
<glyph unicode="&#xd6;" horiz-adv-x="1398" d="M103 597v262q0 266 163.5 442t424.5 176q267 0 435 -176t168 -442v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-262 0 -425.5 175.5t-163.5 442.5zM337 1622v204h241v-204h-241zM345 597q0 -184 93 -301.5t254 -117.5q167 0 263.5 117t96.5 302v264q0 182 -97.5 299 t-263.5 117q-160 0 -253 -117t-93 -299v-264zM820 1622v204h242v-204h-242z" />
<glyph unicode="&#xd7;" horiz-adv-x="1092" d="M77 364l316 322l-316 322l148 150l315 -322l316 322l148 -150l-316 -322l316 -322l-148 -150l-316 321l-315 -321z" />
<glyph unicode="&#xd8;" horiz-adv-x="1403" d="M103 597v262q0 266 163.5 442t424.5 176q97 0 182.5 -25.5t158.5 -72.5l82 139h148l-131 -222q78 -84 120.5 -196.5t42.5 -240.5v-262q0 -267 -167.5 -442.5t-434.5 -175.5q-82 0 -155.5 18t-136.5 54l-86 -146h-148l130 221q-93 84 -143 206t-50 265zM345 597 q0 -79 17.5 -146.5t50.5 -114.5l6 -1l504 858q-47 40 -105 62t-127 22q-160 0 -253 -117t-93 -299v-264zM506 232q39 -27 86 -40.5t100 -13.5q167 0 263.5 117t96.5 302v264q0 61 -12 115.5t-33 96.5l-6 1z" />
<glyph unicode="&#xd9;" horiz-adv-x="1396" d="M134 480v976h243v-976q0 -153 86 -230t231 -77q150 0 239 77t89 230v976h243v-976q0 -242 -158 -371.5t-413 -129.5q-250 0 -405 130t-155 371zM359 1820l2 6h268l185 -266h-196z" />
<glyph unicode="&#xda;" horiz-adv-x="1396" d="M134 480v976h243v-976q0 -153 86 -230t231 -77q150 0 239 77t89 230v976h243v-976q0 -242 -158 -371.5t-413 -129.5q-250 0 -405 130t-155 371zM582 1559l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xdb;" horiz-adv-x="1396" d="M134 480v976h243v-976q0 -153 86 -230t231 -77q150 0 239 77t89 230v976h243v-976q0 -242 -158 -371.5t-413 -129.5q-250 0 -405 130t-155 371zM365 1597v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193z" />
<glyph unicode="&#xdc;" horiz-adv-x="1396" d="M134 480v976h243v-976q0 -153 86 -230t231 -77q150 0 239 77t89 230v976h243v-976q0 -242 -158 -371.5t-413 -129.5q-250 0 -405 130t-155 371zM338 1601v204h241v-204h-241zM821 1601v204h242v-204h-242z" />
<glyph unicode="&#xdd;" horiz-adv-x="1270" d="M13 1456h271l350 -708l352 708h271l-505 -945v-511h-242v524zM520 1559l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xde;" horiz-adv-x="1226" d="M148 0v1456h243v-280h246q242 0 377.5 -121.5t135.5 -316.5q0 -196 -135.5 -317t-377.5 -121h-246v-300h-243zM391 495h246q135 0 202.5 69.5t67.5 171.5q0 104 -67.5 174.5t-202.5 70.5h-246v-486z" />
<glyph unicode="&#xdf;" horiz-adv-x="1255" d="M136 0v1093q0 224 123 349t325 125q170 0 279.5 -91.5t109.5 -264.5q0 -113 -59 -216.5t-59 -165.5q0 -68 162 -210t162 -280q0 -180 -109 -270t-306 -90q-82 0 -166.5 17t-122.5 45l49 197q41 -25 102.5 -45t123.5 -20q93 0 140 41.5t47 112.5q0 76 -162.5 214.5 t-162.5 283.5q0 85 63 190t63 180q0 80 -47.5 128.5t-110.5 48.5q-91 0 -146.5 -74t-55.5 -207v-1091h-242z" />
<glyph unicode="&#xe0;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM209 1498l2 6h268l185 -266h-196zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5z" />
<glyph unicode="&#xe1;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5zM432 1237l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xe2;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM215 1275v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5z" />
<glyph unicode="&#xe3;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM190 1315q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46 t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5z" />
<glyph unicode="&#xe4;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM188 1279v204h241v-204h-241zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5zM671 1279v204h242v-204h-242z" />
<glyph unicode="&#xe5;" horiz-adv-x="1114" d="M82 305q0 157 124 244.5t349 87.5h189v95q0 85 -50 133t-143 48q-83 0 -132 -40t-49 -103h-234l-1 6q-7 128 114.5 227t316.5 99q189 0 305 -96t116 -276v-481q0 -67 9 -128.5t29 -120.5h-246q-13 41 -21.5 80t-11.5 78q-50 -76 -131.5 -127.5t-182.5 -51.5 q-169 0 -259.5 87t-90.5 239zM325 309q0 -62 40.5 -98.5t115.5 -36.5q92 0 165.5 46t97.5 105v160h-193q-106 0 -166 -52.5t-60 -123.5zM339 1415q0 84 61.5 141t150.5 57q87 0 147.5 -57t60.5 -141q0 -85 -60.5 -139.5t-147.5 -54.5q-89 0 -150.5 54.5t-61.5 139.5z M449 1415q0 -43 29.5 -72t72.5 -29q42 0 70 28t28 73t-28 74.5t-70 30.5q-43 -1 -72.5 -30.5t-29.5 -74.5z" />
<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M52 312q0 158 120.5 244t351.5 86h206v71q0 91 -46.5 142.5t-132.5 51.5q-93 0 -146.5 -45t-53.5 -110l-233 18l-2 6q-6 141 115 233.5t322 92.5q107 0 192.5 -33t141.5 -97q63 63 147 96.5t184 33.5q214 0 332 -131t118 -359v-141h-680l-3 -6q4 -131 74 -211.5 t209 -80.5q98 0 161 23t144 69l73 -165q-57 -45 -158 -83t-234 -38q-132 0 -234 44.5t-169 127.5q-59 -74 -166 -123t-256 -49q-180 0 -278.5 89.5t-98.5 243.5zM295 308q0 -65 45.5 -104.5t135.5 -39.5q67 0 140 36.5t114 85.5v189h-204q-109 0 -170 -49t-61 -118zM988 647 l2 -5h438v30q0 105 -51.5 170t-158.5 65q-104 0 -162 -71.5t-68 -188.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="1075" d="M81 523v35q0 235 127.5 389.5t366.5 154.5q195 0 316.5 -113.5t117.5 -288.5l-2 -6h-221q0 89 -58.5 151t-152.5 62q-137 0 -194 -99.5t-57 -249.5v-35q0 -153 57 -251.5t194 -98.5q89 0 150 52.5t61 131.5h220l2 -6q5 -152 -123.5 -262t-309.5 -110q-239 0 -366.5 154 t-127.5 390zM427 -140l32 139h177l-11 -54q64 -11 107 -52t43 -121q0 -102 -85 -162.5t-242 -60.5l-7 137q62 0 99.5 22t37.5 67q0 44 -34.5 62t-116.5 23z" />
<glyph unicode="&#xe8;" horiz-adv-x="1084" d="M89 516v40q0 236 135.5 391.5t339.5 154.5q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-230 0 -366.5 150.5t-136.5 386.5zM211 1499l2 6h268l185 -266h-196zM344 654l2 -5h429 v25q0 103 -52.5 168t-158.5 65q-90 0 -148 -71.5t-72 -181.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="1084" d="M89 516v40q0 236 135.5 391.5t339.5 154.5q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-230 0 -366.5 150.5t-136.5 386.5zM344 654l2 -5h429v25q0 103 -52.5 168t-158.5 65 q-90 0 -148 -71.5t-72 -181.5zM434 1238l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xea;" horiz-adv-x="1084" d="M89 516v40q0 236 135.5 391.5t339.5 154.5q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-230 0 -366.5 150.5t-136.5 386.5zM217 1276v26l264 240h143l266 -242v-24h-195 l-143 139l-142 -139h-193zM344 654l2 -5h429v25q0 103 -52.5 168t-158.5 65q-90 0 -148 -71.5t-72 -181.5z" />
<glyph unicode="&#xeb;" horiz-adv-x="1084" d="M89 516v40q0 236 135.5 391.5t339.5 154.5q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-230 0 -366.5 150.5t-136.5 386.5zM190 1280v204h241v-204h-241zM344 654l2 -5h429v25 q0 103 -52.5 168t-158.5 65q-90 0 -148 -71.5t-72 -181.5zM673 1280v204h242v-204h-242z" />
<glyph unicode="&#xec;" horiz-adv-x="538" d="M-74 1477l2 6h268l185 -266h-196zM143 0v1082h243v-1082h-243z" />
<glyph unicode="&#xed;" horiz-adv-x="538" d="M143 0v1082h243v-1082h-243zM147 1216l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xee;" horiz-adv-x="538" d="M-68 1254v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193zM143 0v1082h243v-1082h-243z" />
<glyph unicode="&#xef;" horiz-adv-x="538" d="M-95 1258v204h241v-204h-241zM143 0v1082h243v-1082h-243zM388 1258v204h242v-204h-242z" />
<glyph unicode="&#xf0;" horiz-adv-x="1210" d="M60 468q0 226 136.5 365.5t358.5 139.5q85 0 160.5 -31.5t127.5 -83.5l4 5q-12 94 -53 172.5t-105 138.5l-268 -150l-78 109l219 123v6q-33 17 -71.5 32t-77.5 27l75 196q84 -19 160 -52.5t142 -79.5l207 116l78 -109l-178 -100q98 -105 151.5 -243t53.5 -301v-207 q0 -248 -150 -405t-375 -157q-227 0 -372 140.5t-145 348.5zM303 468q0 -121 75.5 -208t202.5 -87q125 0 201.5 104t76.5 264v132q-35 48 -107.5 80t-175.5 32q-126 0 -199.5 -90t-73.5 -227z" />
<glyph unicode="&#xf1;" d="M126 0v1082h222l14 -156q53 83 133.5 129.5t181.5 46.5q169 0 263.5 -102.5t94.5 -319.5v-680h-243v678q0 122 -50.5 173.5t-153.5 51.5q-71 0 -127 -31.5t-92 -86.5v-785h-243zM217 1315q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78 l131 -39q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5z" />
<glyph unicode="&#xf2;" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM238 1498l2 6h268l185 -266h-196zM326 530q0 -158 62 -258q61 -99 192 -99q127 0 190 99q64 100 64 258v21 q0 155 -64 255q-63 101 -192 101q-127 0 -190 -101q-62 -101 -62 -255v-21z" />
<glyph unicode="&#xf3;" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM326 530q0 -158 62 -258q61 -99 192 -99q127 0 190 99q64 100 64 258v21q0 155 -64 255q-63 101 -192 101 q-127 0 -190 -101q-62 -101 -62 -255v-21zM461 1237l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xf4;" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM244 1275v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193zM326 530q0 -158 62 -258 q61 -99 192 -99q127 0 190 99q64 100 64 258v21q0 155 -64 255q-63 101 -192 101q-127 0 -190 -101q-62 -101 -62 -255v-21z" />
<glyph unicode="&#xf5;" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM219 1315q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39 q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5zM326 530q0 -158 62 -258q61 -99 192 -99q127 0 190 99q64 100 64 258v21q0 155 -64 255q-63 101 -192 101q-127 0 -190 -101q-62 -101 -62 -255v-21z" />
<glyph unicode="&#xf6;" d="M83 530v21q0 241 132 396q134 155 363 155q233 0 365 -155q133 -154 133 -396v-21q0 -244 -133 -398q-132 -153 -363 -153q-232 0 -365 154q-132 154 -132 397zM217 1279v204h241v-204h-241zM326 530q0 -158 62 -258q61 -99 192 -99q127 0 190 99q64 100 64 258v21 q0 155 -64 255q-63 101 -192 101q-127 0 -190 -101q-62 -101 -62 -255v-21zM700 1279v204h242v-204h-242z" />
<glyph unicode="&#xf7;" horiz-adv-x="1169" d="M67 582v212h1012v-212h-1012zM453 170v221h243v-221h-243zM453 985v221h243v-221h-243z" />
<glyph unicode="&#xf8;" horiz-adv-x="1161" d="M83 530v21q0 242 132.5 396.5t362.5 154.5q53 0 102.5 -9.5t94.5 -26.5l72 146h144l-104 -211q91 -74 140 -190.5t49 -259.5v-21q0 -244 -132.5 -397.5t-363.5 -153.5q-48 0 -93 7.5t-87 21.5l-72 -146h-144l102 207q-99 71 -151 191t-52 270zM326 530q0 -78 14.5 -142 t44.5 -104l6 -1l294 600q-24 11 -50.5 17.5t-56.5 6.5q-127 0 -189.5 -100.5t-62.5 -255.5v-21zM489 189q20 -8 43 -12t48 -4q127 0 190.5 99.5t63.5 257.5v21q0 68 -13 127t-37 100l-6 1z" />
<glyph unicode="&#xf9;" d="M123 435v647h242v-649q0 -142 46 -199t139 -57q88 0 147.5 31.5t93.5 91.5v782h243v-1082h-212l-20 158q-51 -86 -129 -132.5t-180 -46.5q-174 0 -272 111t-98 345zM237 1477l2 6h268l185 -266h-196z" />
<glyph unicode="&#xfa;" d="M123 435v647h242v-649q0 -142 46 -199t139 -57q88 0 147.5 31.5t93.5 91.5v782h243v-1082h-212l-20 158q-51 -86 -129 -132.5t-180 -46.5q-174 0 -272 111t-98 345zM460 1216l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xfb;" d="M123 435v647h242v-649q0 -142 46 -199t139 -57q88 0 147.5 31.5t93.5 91.5v782h243v-1082h-212l-20 158q-51 -86 -129 -132.5t-180 -46.5q-174 0 -272 111t-98 345zM243 1254v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193z" />
<glyph unicode="&#xfc;" d="M123 435v647h242v-649q0 -142 46 -199t139 -57q88 0 147.5 31.5t93.5 91.5v782h243v-1082h-212l-20 158q-51 -86 -129 -132.5t-180 -46.5q-174 0 -272 111t-98 345zM216 1258v204h241v-204h-241zM699 1258v204h242v-204h-242z" />
<glyph unicode="&#xfd;" horiz-adv-x="1038" d="M16 1082h265l206 -648l24 -108h6l237 756h266l-448 -1246q-43 -113 -121 -193t-221 -80q-30 0 -64.5 6t-66.5 14l27 188q13 -1 37 -3t36 -2q66 0 105.5 45t64.5 104l40 98zM400 1216l191 266h269l2 -6l-273 -260h-189z" />
<glyph unicode="&#xfe;" horiz-adv-x="1175" d="M138 -416v1976h243v-595q50 66 120.5 101.5t161.5 35.5q200 0 311.5 -158.5t111.5 -417.5v-21q0 -236 -111 -381t-309 -145q-92 0 -163 33t-122 97v-525h-243zM381 291q32 -57 85 -87.5t131 -30.5q124 0 185.5 91.5t61.5 240.5v21q0 166 -62.5 271.5t-186.5 105.5 q-76 0 -129 -32.5t-85 -90.5v-489z" />
<glyph unicode="&#xff;" horiz-adv-x="1038" d="M16 1082h265l206 -648l24 -108h6l237 756h266l-448 -1246q-43 -113 -121 -193t-221 -80q-30 0 -64.5 6t-66.5 14l27 188q13 -1 37 -3t36 -2q66 0 105.5 45t64.5 104l40 98zM158 1258v204h241v-204h-241zM641 1258v204h242v-204h-242z" />
<glyph unicode="&#x152;" horiz-adv-x="1972" d="M101 576v304q0 265 160.5 431t419.5 166q69 0 140 -6t150 -15h888v-195h-732v-411h637v-195h-637v-461h739v-194h-895q-92 -10 -156.5 -15.5t-131.5 -5.5q-260 0 -421 165.5t-161 431.5zM343 576q0 -196 90 -299t250 -103q51 0 101.5 3.5t99.5 10.5v1080q-53 6 -103.5 10 t-99.5 4q-159 0 -248.5 -102.5t-89.5 -297.5v-306z" />
<glyph unicode="&#x153;" horiz-adv-x="1851" d="M83 530v21q0 242 132.5 396.5t362.5 154.5q129 0 229.5 -50.5t165.5 -141.5q64 91 160 141.5t209 50.5q219 0 335.5 -132.5t116.5 -355.5v-143h-675l-2 -5q6 -129 75.5 -211t192.5 -82q98 0 168 24t135 69l78 -159q-61 -54 -162 -91t-234 -37q-129 0 -231 49.5 t-167 139.5q-65 -91 -164.5 -140t-227.5 -49q-232 0 -364.5 154t-132.5 397zM326 530q0 -159 62 -258t192 -99q127 0 190.5 99.5t63.5 257.5v21q0 155 -63.5 255.5t-192.5 100.5q-127 0 -189.5 -100.5t-62.5 -255.5v-21zM1122 654l2 -5h429v25q0 103 -52.5 168t-158.5 65 q-90 0 -148 -71.5t-72 -181.5z" />
<glyph unicode="&#x178;" horiz-adv-x="1270" d="M13 1456h271l350 -708l352 708h271l-505 -945v-511h-242v524zM276 1601v204h241v-204h-241zM759 1601v204h242v-204h-242z" />
<glyph unicode="&#x2c6;" horiz-adv-x="998" d="M155 1252v26l264 240h143l266 -242v-24h-195l-143 139l-142 -139h-193z" />
<glyph unicode="&#x2dc;" horiz-adv-x="984" d="M128 1273q0 94 59.5 163.5t149.5 69.5q56 0 145.5 -44.5t141.5 -44.5q38 0 66 32t28 78l131 -39q0 -95 -60 -162t-150 -67q-71 0 -153.5 44.5t-133.5 44.5q-39 0 -66 -32.5t-27 -77.5z" />
<glyph unicode="&#x2000;" horiz-adv-x="967" />
<glyph unicode="&#x2001;" horiz-adv-x="1935" />
<glyph unicode="&#x2002;" horiz-adv-x="967" />
<glyph unicode="&#x2003;" horiz-adv-x="1935" />
<glyph unicode="&#x2004;" horiz-adv-x="645" />
<glyph unicode="&#x2005;" horiz-adv-x="483" />
<glyph unicode="&#x2006;" horiz-adv-x="322" />
<glyph unicode="&#x2007;" horiz-adv-x="322" />
<glyph unicode="&#x2008;" horiz-adv-x="241" />
<glyph unicode="&#x2009;" horiz-adv-x="387" />
<glyph unicode="&#x200a;" horiz-adv-x="107" />
<glyph unicode="&#x2010;" horiz-adv-x="672" d="M71 521v196h525v-196h-525z" />
<glyph unicode="&#x2011;" horiz-adv-x="672" d="M71 521v196h525v-196h-525z" />
<glyph unicode="&#x2012;" horiz-adv-x="672" d="M71 521v196h525v-196h-525z" />
<glyph unicode="&#x2013;" horiz-adv-x="1415" d="M156 621v196h1086v-196h-1086z" />
<glyph unicode="&#x2014;" horiz-adv-x="1665" d="M125 621v196h1336v-196h-1336z" />
<glyph unicode="&#x2018;" horiz-adv-x="413" d="M66 1015v188l162 357h119l-60 -358v-187h-221z" />
<glyph unicode="&#x2019;" horiz-adv-x="413" d="M69 1016l60 348v196h221v-194l-162 -350h-119z" />
<glyph unicode="&#x201a;" horiz-adv-x="413" d="M66 -262l60 265v266h221v-249l-155 -282h-126z" />
<glyph unicode="&#x201c;" horiz-adv-x="746" d="M66 1015v188l162 357h119l-60 -358v-187h-221zM395 1015v188l162 357h119l-60 -358v-187h-221z" />
<glyph unicode="&#x201d;" horiz-adv-x="754" d="M69 1016l60 348v196h221v-194l-162 -350h-119zM406 1016l60 348v196h221v-194l-162 -350h-119z" />
<glyph unicode="&#x201e;" horiz-adv-x="731" d="M66 -233l60 295v228h214v-217l-162 -306h-112zM391 -233l60 303v220h214v-217l-162 -306h-112z" />
<glyph unicode="&#x2022;" horiz-adv-x="715" d="M136 724v77q0 94 60 154.5t161 60.5q102 0 162.5 -60t60.5 -155v-77q0 -96 -60 -154.5t-162 -58.5q-101 0 -161.5 59t-60.5 154z" />
<glyph unicode="&#x2026;" horiz-adv-x="1446" d="M153 0v233h242v-233h-242zM596 0v233h242v-233h-242zM1016 0v233h242v-233h-242z" />
<glyph unicode="&#x202f;" horiz-adv-x="387" />
<glyph unicode="&#x2039;" horiz-adv-x="626" d="M108 541v19l288 390h167l-247 -400l247 -399h-167z" />
<glyph unicode="&#x203a;" horiz-adv-x="617" d="M84 151l247 399l-247 400h167l288 -390v-19l-288 -390h-167z" />
<glyph unicode="&#x205f;" horiz-adv-x="483" />
<glyph unicode="&#x20ac;" horiz-adv-x="1101" d="M75 457v195h146v128h-146v195h146v12q0 198 145.5 344t382.5 146q60 0 118 -8t125 -23l-20 -199q-54 16 -110.5 25.5t-112.5 9.5q-132 0 -208.5 -89.5t-76.5 -203.5v-14h460v-195h-460v-128h460v-195h-460v-2q0 -112 77 -197t210 -85q57 0 113 8.5t108 25.5l20 -197 q-56 -15 -117.5 -23t-123.5 -8q-237 0 -383.5 141.5t-146.5 334.5v2h-146z" />
<glyph unicode="&#x2122;" horiz-adv-x="1289" d="M100 1361v95h391v-95h-138v-443h-117v443h-136zM565 916v540h137l141 -373h6l142 373h131v-540h-110v317l-6 1l-129 -318h-61l-134 330l-6 -1v-329h-111z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1250" d="M42 902v180h165v126q0 179 97.5 276t273.5 97q35 0 71 -5.5t81 -15.5l-25 -188q-20 4 -44.5 7t-52.5 3q-79 0 -118.5 -45t-39.5 -129v-126h220v-180h-220v-902h-243v902h-165zM863 0v1560h243v-1560h-243z" />
<glyph unicode="&#xfb03;" horiz-adv-x="1911" d="M42 902v180h165v126q0 179 97.5 276t273.5 97q35 0 71 -5.5t81 -15.5l-25 -188q-20 4 -44.5 7t-52.5 3q-79 0 -118.5 -45t-39.5 -129v-126h220v-180h-220v-902h-243v902h-165zM743 902v180h165v92q0 195 115 301t322 106q72 0 143 -15.5t163 -44.5l-37 -201 q-62 21 -122 34.5t-130 13.5q-109 0 -160 -48.5t-51 -145.5v-92h213v-180h-213v-902h-243v902h-165zM1523 0v1082h243v-1082h-243z" />
<glyph unicode="&#xfb04;" horiz-adv-x="1969" d="M42 902v180h165v126q0 179 97.5 276t273.5 97q35 0 71 -5.5t81 -15.5l-25 -188q-20 4 -44.5 7t-52.5 3q-79 0 -118.5 -45t-39.5 -129v-126h220v-180h-220v-902h-243v902h-165zM761 902v180h165v126q0 179 97.5 276t273.5 97q35 0 71 -5.5t81 -15.5l-25 -188 q-20 4 -44.5 7t-52.5 3q-79 0 -118.5 -45t-39.5 -129v-126h220v-180h-220v-902h-243v902h-165zM1582 0v1560h243v-1560h-243z" />
<hkern u1="&#x22;" u2="w" k="-11" />
<hkern u1="&#x27;" u2="w" k="-11" />
<hkern u1="&#x28;" u2="&#x178;" k="-23" />
<hkern u1="&#x28;" u2="&#xdd;" k="-23" />
<hkern u1="&#x28;" u2="Y" k="-23" />
<hkern u1="&#x28;" u2="W" k="-32" />
<hkern u1="&#x28;" u2="V" k="-21" />
<hkern u1="A" u2="w" k="35" />
<hkern u1="A" u2="t" k="18" />
<hkern u1="A" u2="&#x3f;" k="79" />
<hkern u1="C" u2="&#x29;" k="28" />
<hkern u1="D" u2="&#xc6;" k="46" />
<hkern u1="E" u2="w" k="23" />
<hkern u1="F" u2="&#x2026;" k="297" />
<hkern u1="F" u2="&#x201e;" k="297" />
<hkern u1="F" u2="&#x201a;" k="297" />
<hkern u1="F" u2="&#x153;" k="35" />
<hkern u1="F" u2="&#xff;" k="26" />
<hkern u1="F" u2="&#xfd;" k="26" />
<hkern u1="F" u2="&#xfc;" k="23" />
<hkern u1="F" u2="&#xfb;" k="23" />
<hkern u1="F" u2="&#xfa;" k="23" />
<hkern u1="F" u2="&#xf9;" k="23" />
<hkern u1="F" u2="&#xf6;" k="36" />
<hkern u1="F" u2="&#xf5;" k="36" />
<hkern u1="F" u2="&#xf4;" k="36" />
<hkern u1="F" u2="&#xf3;" k="36" />
<hkern u1="F" u2="&#xf2;" k="36" />
<hkern u1="F" u2="&#xeb;" k="35" />
<hkern u1="F" u2="&#xea;" k="35" />
<hkern u1="F" u2="&#xe9;" k="35" />
<hkern u1="F" u2="&#xe8;" k="35" />
<hkern u1="F" u2="&#xe7;" k="35" />
<hkern u1="F" u2="&#xe5;" k="50" />
<hkern u1="F" u2="&#xe4;" k="50" />
<hkern u1="F" u2="&#xe3;" k="50" />
<hkern u1="F" u2="&#xe2;" k="50" />
<hkern u1="F" u2="&#xe1;" k="50" />
<hkern u1="F" u2="&#xe0;" k="50" />
<hkern u1="F" u2="&#xc5;" k="107" />
<hkern u1="F" u2="&#xc4;" k="107" />
<hkern u1="F" u2="&#xc3;" k="107" />
<hkern u1="F" u2="&#xc2;" k="107" />
<hkern u1="F" u2="&#xc1;" k="107" />
<hkern u1="F" u2="&#xc0;" k="107" />
<hkern u1="F" u2="y" k="26" />
<hkern u1="F" u2="v" k="26" />
<hkern u1="F" u2="u" k="23" />
<hkern u1="F" u2="r" k="28" />
<hkern u1="F" u2="q" k="35" />
<hkern u1="F" u2="o" k="36" />
<hkern u1="F" u2="g" k="35" />
<hkern u1="F" u2="e" k="35" />
<hkern u1="F" u2="d" k="35" />
<hkern u1="F" u2="c" k="35" />
<hkern u1="F" u2="a" k="50" />
<hkern u1="F" u2="T" k="-20" />
<hkern u1="F" u2="A" k="107" />
<hkern u1="F" u2="&#x3a;" k="297" />
<hkern u1="F" u2="&#x2e;" k="297" />
<hkern u1="F" u2="&#x2c;" k="297" />
<hkern u1="K" u2="w" k="68" />
<hkern u1="L" u2="w" k="76" />
<hkern u1="O" u2="&#xc6;" k="46" />
<hkern u1="P" u2="&#xc6;" k="235" />
<hkern u1="P" u2="t" k="-15" />
<hkern u1="Q" u2="&#x178;" k="51" />
<hkern u1="Q" u2="&#xdd;" k="51" />
<hkern u1="Q" u2="Y" k="51" />
<hkern u1="Q" u2="W" k="21" />
<hkern u1="Q" u2="V" k="30" />
<hkern u1="Q" u2="T" k="35" />
<hkern u1="R" u2="&#x178;" k="52" />
<hkern u1="R" u2="&#xdd;" k="52" />
<hkern u1="R" u2="Y" k="52" />
<hkern u1="R" u2="V" k="20" />
<hkern u1="R" u2="T" k="41" />
<hkern u1="T" u2="&#xf8;" k="103" />
<hkern u1="T" u2="&#xe6;" k="91" />
<hkern u1="T" u2="&#xc6;" k="192" />
<hkern u1="T" u2="&#xbb;" k="158" />
<hkern u1="T" u2="&#xab;" k="160" />
<hkern u1="T" u2="w" k="50" />
<hkern u1="T" u2="r" k="70" />
<hkern u1="V" u2="&#x7d;" k="-20" />
<hkern u1="V" u2="r" k="32" />
<hkern u1="V" u2="]" k="-18" />
<hkern u1="V" u2="&#x29;" k="-21" />
<hkern u1="W" u2="&#x7d;" k="-15" />
<hkern u1="W" u2="r" k="22" />
<hkern u1="W" u2="]" k="-13" />
<hkern u1="W" u2="&#x29;" k="-16" />
<hkern u1="Y" u2="&#x2022;" k="73" />
<hkern u1="Y" u2="&#xf8;" k="76" />
<hkern u1="Y" u2="&#xe6;" k="75" />
<hkern u1="Y" u2="&#xc6;" k="114" />
<hkern u1="Y" u2="&#xbb;" k="55" />
<hkern u1="Y" u2="&#xab;" k="99" />
<hkern u1="Y" u2="&#x7d;" k="-20" />
<hkern u1="Y" u2="t" k="27" />
<hkern u1="Y" u2="r" k="50" />
<hkern u1="Y" u2="f" k="30" />
<hkern u1="Y" u2="]" k="-19" />
<hkern u1="Y" u2="&#x2a;" k="67" />
<hkern u1="Y" u2="&#x29;" k="-21" />
<hkern u1="Y" u2="&#x26;" k="42" />
<hkern u1="Z" u2="w" k="29" />
<hkern u1="[" u2="&#xdc;" k="19" />
<hkern u1="[" u2="&#xdb;" k="19" />
<hkern u1="[" u2="&#xda;" k="19" />
<hkern u1="[" u2="&#xd9;" k="19" />
<hkern u1="[" u2="U" k="19" />
<hkern u1="[" u2="J" k="19" />
<hkern u1="f" u2="&#x201d;" k="-24" />
<hkern u1="f" u2="&#x201c;" k="-24" />
<hkern u1="f" u2="&#x2019;" k="-24" />
<hkern u1="f" u2="&#x2018;" k="-24" />
<hkern u1="f" u2="&#x7d;" k="-27" />
<hkern u1="f" u2="]" k="-40" />
<hkern u1="f" u2="&#x29;" k="-35" />
<hkern u1="f" u2="&#x27;" k="-24" />
<hkern u1="f" u2="&#x22;" k="-24" />
<hkern u1="k" u2="&#x153;" k="21" />
<hkern u1="k" u2="&#xeb;" k="21" />
<hkern u1="k" u2="&#xea;" k="21" />
<hkern u1="k" u2="&#xe9;" k="21" />
<hkern u1="k" u2="&#xe8;" k="21" />
<hkern u1="k" u2="&#xe7;" k="21" />
<hkern u1="k" u2="q" k="21" />
<hkern u1="k" u2="g" k="21" />
<hkern u1="k" u2="e" k="21" />
<hkern u1="k" u2="d" k="21" />
<hkern u1="k" u2="c" k="21" />
<hkern u1="r" u2="w" k="-21" />
<hkern u1="r" u2="t" k="-21" />
<hkern u1="r" u2="f" k="-19" />
<hkern u1="v" u2="f" k="-14" />
<hkern u1="w" u2="&#x2026;" k="99" />
<hkern u1="w" u2="&#x201e;" k="99" />
<hkern u1="w" u2="&#x201a;" k="99" />
<hkern u1="w" u2="&#x3a;" k="99" />
<hkern u1="w" u2="&#x2e;" k="99" />
<hkern u1="w" u2="&#x2c;" k="99" />
<hkern u1="y" u2="f" k="-14" />
<hkern u1="&#x7b;" u2="&#xdc;" k="21" />
<hkern u1="&#x7b;" u2="&#xdb;" k="21" />
<hkern u1="&#x7b;" u2="&#xda;" k="21" />
<hkern u1="&#x7b;" u2="&#xd9;" k="21" />
<hkern u1="&#x7b;" u2="U" k="21" />
<hkern u1="&#x7b;" u2="J" k="21" />
<hkern u1="&#xc0;" u2="w" k="35" />
<hkern u1="&#xc0;" u2="t" k="18" />
<hkern u1="&#xc0;" u2="&#x3f;" k="79" />
<hkern u1="&#xc1;" u2="w" k="35" />
<hkern u1="&#xc1;" u2="t" k="18" />
<hkern u1="&#xc1;" u2="&#x3f;" k="79" />
<hkern u1="&#xc2;" u2="w" k="35" />
<hkern u1="&#xc2;" u2="t" k="18" />
<hkern u1="&#xc2;" u2="&#x3f;" k="79" />
<hkern u1="&#xc3;" u2="w" k="35" />
<hkern u1="&#xc3;" u2="t" k="18" />
<hkern u1="&#xc3;" u2="&#x3f;" k="79" />
<hkern u1="&#xc4;" u2="w" k="35" />
<hkern u1="&#xc4;" u2="t" k="18" />
<hkern u1="&#xc4;" u2="&#x3f;" k="79" />
<hkern u1="&#xc5;" u2="w" k="35" />
<hkern u1="&#xc5;" u2="t" k="18" />
<hkern u1="&#xc5;" u2="&#x3f;" k="79" />
<hkern u1="&#xc7;" u2="&#x29;" k="28" />
<hkern u1="&#xc8;" u2="w" k="23" />
<hkern u1="&#xc9;" u2="w" k="23" />
<hkern u1="&#xca;" u2="w" k="23" />
<hkern u1="&#xcb;" u2="w" k="23" />
<hkern u1="&#xd0;" u2="&#xc6;" k="46" />
<hkern u1="&#xd2;" u2="&#xc6;" k="46" />
<hkern u1="&#xd3;" u2="&#xc6;" k="46" />
<hkern u1="&#xd4;" u2="&#xc6;" k="46" />
<hkern u1="&#xd5;" u2="&#xc6;" k="46" />
<hkern u1="&#xd6;" u2="&#xc6;" k="46" />
<hkern u1="&#xdd;" u2="&#x2022;" k="73" />
<hkern u1="&#xdd;" u2="&#xf8;" k="76" />
<hkern u1="&#xdd;" u2="&#xe6;" k="75" />
<hkern u1="&#xdd;" u2="&#xc6;" k="114" />
<hkern u1="&#xdd;" u2="&#xbb;" k="55" />
<hkern u1="&#xdd;" u2="&#xab;" k="99" />
<hkern u1="&#xdd;" u2="&#x7d;" k="-20" />
<hkern u1="&#xdd;" u2="t" k="27" />
<hkern u1="&#xdd;" u2="r" k="50" />
<hkern u1="&#xdd;" u2="f" k="30" />
<hkern u1="&#xdd;" u2="]" k="-19" />
<hkern u1="&#xdd;" u2="&#x2a;" k="67" />
<hkern u1="&#xdd;" u2="&#x29;" k="-21" />
<hkern u1="&#xdd;" u2="&#x26;" k="42" />
<hkern u1="&#xfd;" u2="f" k="-14" />
<hkern u1="&#xff;" u2="f" k="-14" />
<hkern u1="&#x178;" u2="&#x2022;" k="73" />
<hkern u1="&#x178;" u2="&#xf8;" k="76" />
<hkern u1="&#x178;" u2="&#xe6;" k="75" />
<hkern u1="&#x178;" u2="&#xc6;" k="114" />
<hkern u1="&#x178;" u2="&#xbb;" k="55" />
<hkern u1="&#x178;" u2="&#xab;" k="99" />
<hkern u1="&#x178;" u2="&#x7d;" k="-20" />
<hkern u1="&#x178;" u2="t" k="27" />
<hkern u1="&#x178;" u2="r" k="50" />
<hkern u1="&#x178;" u2="f" k="30" />
<hkern u1="&#x178;" u2="]" k="-19" />
<hkern u1="&#x178;" u2="&#x2a;" k="67" />
<hkern u1="&#x178;" u2="&#x29;" k="-21" />
<hkern u1="&#x178;" u2="&#x26;" k="42" />
<hkern u1="&#x2018;" u2="w" k="-11" />
<hkern u1="&#x2019;" u2="w" k="-11" />
<hkern u1="&#x201c;" u2="w" k="-11" />
<hkern u1="&#x201d;" u2="w" k="-11" />
<hkern g1="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="285" />
<hkern g1="B" g2="T" k="29" />
<hkern g1="B" g2="V" k="26" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="C,Ccedilla" g2="T" k="31" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="29" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="23" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="46" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="106" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="23" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="24" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="18" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="28" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="23" />
<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="28" />
<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="29" />
<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="24" />
<hkern g1="K" g2="v,y,yacute,ydieresis" k="43" />
<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="166" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" />
<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="276" />
<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-20" />
<hkern g1="L" g2="T" k="208" />
<hkern g1="L" g2="V" k="210" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="273" />
<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="15" />
<hkern g1="L" g2="v,y,yacute,ydieresis" k="131" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="26" />
<hkern g1="L" g2="W" k="104" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="173" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" />
<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="14" />
<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="14" />
<hkern g1="P" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="393" />
<hkern g1="P" g2="X" k="63" />
<hkern g1="P" g2="Z" k="37" />
<hkern g1="P" g2="v,y,yacute,ydieresis" k="-16" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="105" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="89" />
<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="96" />
<hkern g1="T" g2="m,n,p,ntilde" k="86" />
<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="85" />
<hkern g1="T" g2="s" k="82" />
<hkern g1="T" g2="T" k="-17" />
<hkern g1="T" g2="V" k="-17" />
<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-17" />
<hkern g1="T" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="232" />
<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="70" />
<hkern g1="T" g2="v,y,yacute,ydieresis" k="88" />
<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="238" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="T" g2="W" k="-16" />
<hkern g1="T" g2="S" k="17" />
<hkern g1="T" g2="x" k="83" />
<hkern g1="T" g2="z" k="65" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="105" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="49" />
<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="47" />
<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="49" />
<hkern g1="V" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="215" />
<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="30" />
<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="118" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="21" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="56" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="35" />
<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="33" />
<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="33" />
<hkern g1="W" g2="T" k="-15" />
<hkern g1="W" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="155" />
<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" />
<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="79" />
<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="28" />
<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="26" />
<hkern g1="X" g2="V" k="-15" />
<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="22" />
<hkern g1="X" g2="v,y,yacute,ydieresis" k="40" />
<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="170" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="154" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="78" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="95" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="57" />
<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="102" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="87" />
<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-19" />
<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-19" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="238" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="56" />
<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="21" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="142" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" />
<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="79" />
<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="17" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="28" />
<hkern g1="Y,Yacute,Ydieresis" g2="z" k="35" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="125" />
<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-14" />
<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="22" />
<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="22" />
<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" />
<hkern g1="Z" g2="v,y,yacute,ydieresis" k="29" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="32" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="16" />
<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="38" />
<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="b,p,thorn" g2="x" k="16" />
<hkern g1="b,p,thorn" g2="z" k="16" />
<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="25" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="25" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="14" />
<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="34" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="39" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="26" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="17" />
<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-17" />
<hkern g1="r" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="160" />
<hkern g1="r" g2="v,y,yacute,ydieresis" k="-22" />
<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="16" />
<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="14" />
<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" />
<hkern g1="v,y,yacute,ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="154" />
<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" />
<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="34" />
<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="17" />
<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="17" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,621 @@
<?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="robotoregular" horiz-adv-x="1164" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="509" />
<glyph unicode="&#xfb01;" horiz-adv-x="1140" d="M28 936v146h170v117q0 182 106.5 282t295.5 100q67 0 132 -15.5t153 -45.5l-34 -160q-53 21 -113 36t-123 15q-117 0 -168.5 -52t-51.5 -160v-117h215v-146h-215v-936h-197v936h-170zM783 0v1082h198v-1082h-198z" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="509" />
<glyph unicode=" " horiz-adv-x="509" />
<glyph unicode="&#x09;" horiz-adv-x="509" />
<glyph unicode="&#xa0;" horiz-adv-x="509" />
<glyph unicode="!" horiz-adv-x="539" d="M171 0v204h198v-204h-198zM171 478v978h197v-978h-197z" />
<glyph unicode="&#x22;" horiz-adv-x="668" d="M80 1040l1 240v280h197v-270l-101 -250h-97zM389 1040l1 248v272h197v-270l-101 -250h-97z" />
<glyph unicode="#" horiz-adv-x="1276" d="M70 410v140h264l68 348h-256v142h284l82 416h151l-82 -416h255l82 416h151l-82 -416h199v-142h-226l-68 -348h219v-140h-247l-80 -410h-152l80 410h-255l-80 -410h-151l80 410h-236zM485 550h255l68 348h-255z" />
<glyph unicode="$" horiz-adv-x="1153" d="M114 424l2 5h190q0 -154 77.5 -219.5t190.5 -65.5q129 0 201.5 61.5t72.5 170.5q0 89 -64 153t-210 114q-202 61 -305 163t-103 272q0 165 94.5 269t260.5 125v221h158v-222q168 -24 260.5 -143.5t92.5 -320.5h-196q0 136 -63 220t-175 84q-118 0 -176.5 -61.5 t-58.5 -168.5q0 -97 60.5 -157t218.5 -114q205 -66 304 -164.5t99 -267.5q0 -172 -103 -273.5t-283 -120.5v-192h-157v191q-172 18 -282 125.5t-106 315.5z" />
<glyph unicode="%" horiz-adv-x="1498" d="M104 1099v77q0 127 82 214t219 87t219 -86.5t82 -214.5v-77q0 -127 -81.5 -213t-217.5 -86q-138 0 -220.5 86t-82.5 213zM250 1099q0 -74 40.5 -125.5t116.5 -51.5q73 0 113 51t40 126v77q0 74 -40.5 126.5t-114.5 52.5q-75 0 -115 -52.5t-40 -126.5v-77zM349 177 l711 1138l109 -67l-711 -1138zM809 279v78q0 127 82 213.5t219 86.5q136 0 218.5 -86.5t82.5 -213.5v-78q0 -128 -82 -214t-217 -86q-138 0 -220.5 86t-82.5 214zM955 279q0 -75 40.5 -126.5t116.5 -51.5q73 0 113 51.5t40 126.5v78q0 74 -41 126t-114 52q-74 0 -114.5 -52 t-40.5 -126v-78z" />
<glyph unicode="&#x26;" horiz-adv-x="1276" d="M64 392q0 122 70.5 213.5t210.5 183.5q-78 99 -116 176.5t-38 159.5q0 169 97.5 260.5t268.5 91.5q158 0 257 -91t99 -219q0 -98 -52.5 -169.5t-155.5 -146.5l-109 -80l340 -409q41 65 64 144t23 167h176q0 -132 -39 -244t-113 -201l185 -223l-2 -5h-229l-85 102 q-80 -60 -177 -91.5t-201 -31.5q-217 0 -345.5 115t-128.5 298zM261 392q0 -113 71 -186t206 -73q72 0 142 24.5t132 70.5l-361 435l-40 -29q-91 -68 -120.5 -130t-29.5 -112zM388 1127q0 -53 27 -110.5t81 -125.5l138 95q57 38 77.5 82.5t20.5 98.5q0 61 -48.5 108 t-126.5 47q-81 0 -125 -56.5t-44 -138.5z" />
<glyph unicode="'" horiz-adv-x="359" d="M80 1055l1 265v240h197v-223l-101 -282h-97z" />
<glyph unicode="(" horiz-adv-x="679" d="M132 582v9q0 394 159 673t334 372l6 -1l38 -116q-137 -107 -238.5 -343t-101.5 -583v-13q0 -347 101 -583t239 -352l-38 -108h-6q-175 93 -334 371.5t-159 673.5z" />
<glyph unicode=")" horiz-adv-x="687" d="M6 -355q135 105 237.5 345.5t102.5 589.5v13q0 342 -105.5 583.5t-234.5 351.5l38 108h6q174 -93 333.5 -372t159.5 -673v-9q0 -395 -159.5 -673.5t-333.5 -371.5h-6z" />
<glyph unicode="*" horiz-adv-x="884" d="M28 1071l49 154l296 -111l-10 342h161l-10 -348l293 110l48 -156l-302 -89l193 -270l-131 -96l-181 287l-176 -279l-132 93l198 274z" />
<glyph unicode="+" horiz-adv-x="1162" d="M78 605v178h402v423h197v-423h399v-178h-399v-459h-197v459h-402z" />
<glyph unicode="," horiz-adv-x="404" d="M48 -258l70 316v163h197v-173l-150 -306h-117z" />
<glyph unicode="-" horiz-adv-x="561" d="M35 538v154h490v-154h-490z" />
<glyph unicode="." horiz-adv-x="548" d="M161 0v202h197v-202h-197z" />
<glyph unicode="/" horiz-adv-x="850" d="M16 -125l608 1581h167l-607 -1581h-168z" />
<glyph unicode="0" horiz-adv-x="1154" d="M113 555v345q0 278 124.5 427.5t338.5 149.5q215 0 339.5 -149.5t124.5 -427.5v-345q0 -279 -123.5 -427.5t-338.5 -148.5t-340 149t-125 427zM310 515q0 -189 69 -285.5t199 -96.5t197.5 96t67.5 286v427q0 189 -68.5 284.5t-198.5 95.5t-198 -95.5t-68 -284.5v-427z " />
<glyph unicode="1" horiz-adv-x="1153" d="M186 1260v142l495 54v-1456h-197v1264z" />
<glyph unicode="2" horiz-adv-x="1153" d="M97 1033q-5 188 125 316t360 128q196 0 312.5 -114.5t116.5 -291.5q0 -119 -70.5 -238.5t-197.5 -256.5l-383 -417l2 -5h700v-154h-944v135l477 530q128 143 173.5 227t45.5 172q0 109 -63.5 183.5t-168.5 74.5q-151 0 -222.5 -77.5t-71.5 -217.5h-189z" />
<glyph unicode="3" horiz-adv-x="1153" d="M100 378l3 6h188q0 -115 70.5 -183t193.5 -68q125 0 196 68t71 201q0 135 -63 199t-199 64h-172v154h172q131 0 185.5 65.5t54.5 182.5q0 125 -62 190t-183 65q-115 0 -184.5 -67.5t-69.5 -179.5h-189l-2 6q-5 165 119.5 280.5t325.5 115.5q202 0 322 -107.5t120 -306.5 q0 -90 -54.5 -179.5t-163.5 -136.5q131 -43 185.5 -135t54.5 -206q0 -199 -130.5 -313t-333.5 -114q-199 0 -329.5 107.5t-125.5 291.5z" />
<glyph unicode="4" horiz-adv-x="1153" d="M55 336v111l642 1009h208v-966h201v-154h-201v-336h-196v336h-654zM265 490h444v683l-6 1l-19 -50z" />
<glyph unicode="5" horiz-adv-x="1153" d="M157 377l2 6h178q0 -119 68.5 -184.5t177.5 -65.5q125 0 194 88t69 241q0 140 -70 230t-193 90q-116 0 -168 -35t-76 -107l-164 17l84 799h729v-175h-562l-48 -409q46 34 102.5 56.5t130.5 24.5q201 2 316.5 -131t115.5 -358q0 -219 -117.5 -352t-342.5 -133 q-185 0 -308 101t-118 297z" />
<glyph unicode="6" horiz-adv-x="1153" d="M132 571v278q0 280 156 454t387 174q75 0 148.5 -17t121.5 -43l-42 -151q-49 25 -102.5 40.5t-125.5 15.5q-156 0 -251.5 -125t-95.5 -326v-23q64 56 146.5 87.5t177.5 31.5q195 0 311 -135t116 -342q0 -226 -123.5 -368.5t-329.5 -142.5q-214 0 -354 155t-140 437z M328 552q0 -201 85 -310t213 -109q121 0 188.5 102.5t67.5 254.5q0 144 -72.5 237t-201.5 93q-101 0 -172 -41t-108 -109v-118z" />
<glyph unicode="7" horiz-adv-x="1153" d="M77 1301v155h985v-155q-264 -314 -356.5 -556.5t-133.5 -587.5l-16 -157h-197l16 157q42 344 163 615t331 529h-792z" />
<glyph unicode="8" horiz-adv-x="1153" d="M102 394q0 123 74 217t200 138q-109 42 -171 127.5t-62 199.5q0 192 118.5 296.5t313.5 104.5q192 0 313.5 -104.5t121.5 -296.5q0 -114 -64 -199.5t-173 -127.5q126 -44 201.5 -138t75.5 -217q0 -202 -131.5 -308.5t-341.5 -106.5q-214 0 -344.5 106.5t-130.5 308.5z M299 398q0 -124 76 -194.5t202 -70.5q123 0 200 71t77 194q0 120 -79 197t-200 77q-123 0 -199.5 -77t-76.5 -197zM340 1072q0 -111 65.5 -178t171.5 -67q104 0 170 67t66 178q0 108 -67.5 179t-170.5 71q-105 0 -170 -68.5t-65 -181.5z" />
<glyph unicode="9" horiz-adv-x="1153" d="M83 978q0 219 131.5 359t319.5 140q228 0 359.5 -142.5t131.5 -419.5v-347q0 -285 -142.5 -437t-371.5 -152q-77 0 -156.5 14.5t-142.5 44.5l30 151q59 -31 122.5 -43.5t146.5 -12.5q144 0 230.5 109t86.5 324v66q-49 -71 -122.5 -107.5t-163.5 -36.5q-211 0 -335 130.5 t-124 359.5zM280 978q0 -150 70.5 -243t191.5 -93q109 0 181.5 47t104.5 120v126q0 191 -73.5 289t-214.5 98q-108 0 -184 -96.5t-76 -247.5z" />
<glyph unicode=":" horiz-adv-x="517" d="M161 0v202h197v-202h-197zM161 876v202h197v-202h-197z" />
<glyph unicode=";" horiz-adv-x="525" d="M99 -258l70 316v163h197v-173l-150 -306h-117zM162 876v202h197v-202h-197z" />
<glyph unicode="&#x3c;" horiz-adv-x="1040" d="M71 466v149l816 378v-201l-559 -233l-85 -18v-6l85 -19l559 -228v-201z" />
<glyph unicode="=" horiz-adv-x="1153" d="M152 407v164h834v-164h-834zM152 823v164h834v-164h-834z" />
<glyph unicode="&#x3e;" horiz-adv-x="1072" d="M136 87v196l598 238l85 17v6l-85 20l-598 234v195l856 -378v-149z" />
<glyph unicode="?" horiz-adv-x="974" d="M61 1122q-3 161 113.5 258t296.5 97q197 0 306 -100.5t109 -280.5q0 -129 -70.5 -236t-186.5 -219q-54 -54 -65.5 -97t-11.5 -134h-197q1 145 25 201t126 148q99 117 141 180t42 152q0 106 -56.5 163t-161.5 57q-91 0 -155 -49.5t-64 -145.5h-188zM353 0v208h206v-208 h-206z" />
<glyph unicode="@" horiz-adv-x="1833" d="M114 478q19 423 249 688t602 265q379 0 581.5 -250t185.5 -679q-9 -214 -120 -368.5t-332 -154.5q-73 0 -126 41.5t-76 117.5q-50 -80 -122 -119.5t-168 -39.5q-125 0 -194 120.5t-51 316.5q23 259 137.5 415.5t279.5 156.5q105 0 169 -26t139 -80l-4 -4h6l-51 -585 q-9 -110 21.5 -151.5t81.5 -41.5q123 0 197 113.5t82 288.5q16 382 -144 595.5t-496 213.5q-308 0 -495.5 -231t-202.5 -602q-18 -376 150 -594.5t482 -218.5q88 0 178.5 21.5t152.5 56.5l38 -107q-67 -42 -170.5 -65.5t-202.5 -23.5q-380 0 -587.5 249.5t-189.5 681.5z M720 416q-11 -142 21.5 -216t106.5 -74q64 0 117 24.5t97 87.5q-1 12 -0.5 25.5t2.5 29.5l47 538q-26 12 -54.5 19t-59.5 7q-125 0 -191 -109.5t-86 -331.5z" />
<glyph unicode="A" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM420 540h490l-240 663h-6z" />
<glyph unicode="B" horiz-adv-x="1309" d="M180 0v1456h475q228 0 357 -98.5t129 -295.5q0 -97 -62 -173.5t-163 -113.5q132 -28 207.5 -129t75.5 -235q0 -200 -129.5 -305.5t-351.5 -105.5h-538zM377 154h341q134 0 209 66.5t75 188.5q0 128 -62.5 201t-192.5 73h-370v-529zM377 837h319q110 0 179 60.5t69 168.5 q0 118 -74.5 176.5t-214.5 58.5h-278v-464z" />
<glyph unicode="C" horiz-adv-x="1297" d="M118 598v259q0 269 155.5 444.5t402.5 175.5q247 1 393 -131q142 -128 142 -337v-12l-2 -6h-189q0 153 -90 242t-254 89q-165 0 -263 -133t-98 -330v-261q0 -199 98 -332t263 -133q164 0 254 88.5t90 244.5h189l2 -6v-11q0 -198 -144 -332q-148 -138 -391 -138 q-247 0 -402.5 175t-155.5 444z" />
<glyph unicode="D" horiz-adv-x="1349" d="M180 0v1456h447q286 0 459 -175.5t173 -453.5v-199q0 -279 -173 -453.5t-459 -174.5h-447zM377 154h250q202 0 318.5 133t116.5 341v201q0 206 -116.5 339t-318.5 133h-250v-1147z" />
<glyph unicode="E" horiz-adv-x="1197" d="M180 0v1456h955v-155h-758v-471h667v-155h-667v-521h769v-154h-966z" />
<glyph unicode="F" horiz-adv-x="1193" d="M180 0v1456h963v-155h-766v-502h664v-155h-664v-644h-197z" />
<glyph unicode="G" horiz-adv-x="1396" d="M120 578v300q0 265 159 432t410 167q250 0 393 -123t146 -317l-2 -6h-188q-9 127 -96.5 209t-252.5 82q-167 0 -269 -125t-102 -317v-302q0 -194 114 -319.5t290 -125.5q124 0 203 33t113 75v331h-319v155h516v-534q-52 -80 -180.5 -147t-332.5 -67q-261 0 -431.5 167 t-170.5 432z" />
<glyph unicode="H" horiz-adv-x="1461" d="M180 0v1456h197v-658h707v658h197v-1456h-197v643h-707v-643h-197z" />
<glyph unicode="I" horiz-adv-x="579" d="M190 0v1456h198v-1456h-198z" />
<glyph unicode="J" horiz-adv-x="1130" d="M66 395l2 6h189q0 -135 68.5 -201.5t193.5 -66.5q109 0 178 73.5t69 196.5v1053h197v-1053q0 -195 -123.5 -309.5t-320.5 -114.5q-210 0 -334 107q-119 102 -119 293v16z" />
<glyph unicode="K" horiz-adv-x="1317" d="M180 0v1456h197v-644h152l521 644h218l3 -5l-565 -699l606 -747l-3 -5h-235l-527 657h-170v-657h-197z" />
<glyph unicode="L" horiz-adv-x="1106" d="M180 0v1456h197v-1302h689v-154h-886z" />
<glyph unicode="M" horiz-adv-x="1799" d="M180 0v1456h252l464 -1183h6l464 1183h252v-1456h-197v576l20 592l-5 1l-472 -1169h-131l-470 1166l-5 -1l19 -589v-576h-197z" />
<glyph unicode="N" horiz-adv-x="1461" d="M180 0v1456h197l701 -1124l6 2v1122h197v-1456h-197l-701 1126l-6 -2v-1124h-197z" />
<glyph unicode="O" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261z" />
<glyph unicode="P" horiz-adv-x="1312" d="M180 0v1456h557q233 0 362 -120t129 -316q0 -199 -129 -317.5t-362 -118.5h-360v-584h-197zM377 738h360q148 0 221 79.5t73 200.5t-73.5 202t-220.5 81h-360v-563z" />
<glyph unicode="Q" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -142 -50 -263t-140 -205l247 -233l-135 -129l-276 257q-56 -23 -116.5 -34.5t-124.5 -11.5q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5 t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128t-102.5 -328v-261z" />
<glyph unicode="R" horiz-adv-x="1357" d="M180 0v1455h527q239 0 365 -106t126 -308q0 -112 -58.5 -195t-170.5 -132q120 -39 172.5 -126.5t52.5 -216.5v-137q0 -68 15 -122t52 -88v-24h-203q-39 34 -50 100t-11 136v133q0 118 -69 190t-185 72h-366v-631h-197zM377 786h310q167 0 240.5 63.5t73.5 193.5 q0 123 -71.5 190.5t-222.5 67.5h-330v-515z" />
<glyph unicode="S" horiz-adv-x="1277" d="M102 413l2 6h188q0 -140 103 -213t255 -73q149 0 236 63t87 171q0 100 -75 167.5t-266 113.5q-231 55 -360.5 162t-129.5 269q0 170 139.5 284t361.5 114q239 0 381 -131q137 -127 136 -292v-12l-2 -6h-188q0 128 -84.5 207t-242.5 79q-147 0 -225.5 -66.5t-78.5 -173.5 q0 -95 85 -158.5t276 -111.5q230 -57 350 -168t120 -275q0 -176 -144 -283t-376 -107q-218 0 -386 118q-163 115 -162 305v11z" />
<glyph unicode="T" horiz-adv-x="1200" d="M34 1301v155h1132v-155h-468v-1301h-197v1301h-467z" />
<glyph unicode="U" horiz-adv-x="1386" d="M147 469v987h197v-987q0 -165 94 -250.5t248 -85.5q162 0 261.5 85.5t99.5 250.5v987h197v-987q0 -238 -154.5 -364t-403.5 -126q-240 0 -389.5 126.5t-149.5 363.5z" />
<glyph unicode="V" horiz-adv-x="1295" d="M22 1456h214l376 -1094l33 -115h6l33 115l376 1094h213l-541 -1456h-169z" />
<glyph unicode="W" horiz-adv-x="1809" d="M54 1456h196l222 -952l27 -182l6 -1l39 183l267 952h174l269 -952l40 -187h6l29 187l217 952h197l-351 -1456h-176l-287 1010l-26 131h-6l-25 -131l-292 -1010h-176z" />
<glyph unicode="X" horiz-adv-x="1295" d="M66 0l472 734l-462 722h236l338 -568l340 568h238l-462 -722l472 -734h-235l-349 578l-350 -578h-238z" />
<glyph unicode="Y" horiz-adv-x="1250" d="M20 1456h225l380 -740l380 740h225l-511 -944v-512h-196v525z" />
<glyph unicode="Z" horiz-adv-x="1225" d="M97 0v146l778 1155h-767v155h992v-141l-781 -1161h814v-154h-1036z" />
<glyph unicode="[" horiz-adv-x="552" d="M143 -312v1976h385v-155h-188v-1666h188v-155h-385z" />
<glyph unicode="\" horiz-adv-x="846" d="M39 1456h186l608 -1581h-186z" />
<glyph unicode="]" horiz-adv-x="552" d="M11 -157h189v1666h-189v155h386v-1976h-386v155z" />
<glyph unicode="^" horiz-adv-x="856" d="M61 729l299 727h134l298 -727h-181l-166 419l-16 70h-6l-16 -70l-163 -419h-183z" />
<glyph unicode="_" horiz-adv-x="931" d="M4 0h923v-154h-923v154z" />
<glyph unicode="`" horiz-adv-x="641" d="M82 1471l3 6h230l175 -266h-158z" />
<glyph unicode="a" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6v11q0 111 112 205q118 98 303 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141z" />
<glyph unicode="b" d="M143 0v1560h197v-606q51 72 126.5 110t176.5 38q200 0 312 -160t112 -421v-21q0 -234 -112.5 -377.5t-309.5 -143.5q-107 0 -186 41.5t-131 122.5l-24 -143h-161zM340 309q38 -80 99.5 -125t155.5 -45q139 0 207 99t68 262v21q0 186 -68.5 303.5t-208.5 117.5 q-91 0 -153.5 -44.5t-99.5 -119.5v-469z" />
<glyph unicode="c" horiz-adv-x="1087" d="M97 520v42q0 231 125.5 385.5t360.5 154.5q191 0 311 -112q117 -108 116 -265v-10l-2 -6h-178q0 99 -70 168.5t-177 69.5q-155 0 -221.5 -111.5t-66.5 -273.5v-42q0 -166 66 -276.5t222 -110.5q98 0 172.5 60.5t74.5 148.5h177l2 -6v-10q-1 -134 -125 -238 q-130 -108 -301 -109q-236 0 -361 154t-125 387z" />
<glyph unicode="d" d="M98 500v21q0 261 111.5 421t312.5 160q95 0 168.5 -35t125.5 -102v595h197v-1560h-161l-23 133q-53 -76 -130 -115t-179 -39q-198 0 -310 143.5t-112 377.5zM295 500q0 -164 67 -262.5t208 -98.5q88 0 148 40t98 112v505q-38 67 -98.5 106.5t-145.5 39.5 q-142 0 -209.5 -117t-67.5 -304v-21z" />
<glyph unicode="e" horiz-adv-x="1083" d="M99 520v44q0 231 137.5 384.5t325.5 153.5q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-226 0 -359.5 150.5t-133.5 390.5zM307 654l2 -5h499v26q0 116 -62 194t-184 78 q-99 0 -169 -83.5t-86 -209.5z" />
<glyph unicode="f" horiz-adv-x="707" d="M56 936v146h169v137q0 173 90.5 267.5t252.5 94.5q34 0 68.5 -5.5t76.5 -15.5l-24 -150q-18 4 -43.5 7t-53.5 3q-86 0 -128 -51.5t-42 -149.5v-137h225v-146h-225v-936h-197v936h-169z" />
<glyph unicode="g" d="M100 500v21q0 261 114 421t315 160q103 0 181 -41.5t130 -119.5l24 141h157v-1088q0 -208 -121 -319.5t-349 -111.5q-78 0 -168.5 21.5t-159.5 58.5l50 153q53 -30 128 -48.5t148 -18.5q144 0 209.5 65.5t65.5 199.5v122q-53 -68 -127 -102.5t-170 -34.5q-199 0 -313 144 t-114 377zM297 500q0 -163 69 -262t210 -99q89 0 149 40.5t99 114.5v498q-38 69 -99 109.5t-147 40.5q-141 0 -211 -118t-70 -303v-21z" />
<glyph unicode="h" d="M143 0v1560h197v-623q56 78 137.5 121.5t180.5 43.5q173 0 269.5 -104t96.5 -320v-678h-197v680q0 134 -57.5 198t-171.5 64q-82 0 -148.5 -38.5t-109.5 -104.5v-799h-197z" />
<glyph unicode="i" horiz-adv-x="516" d="M159 0v1082h197v-1082h-197zM159 1359v201h197v-201h-197z" />
<glyph unicode="j" horiz-adv-x="530" d="M-66 -419l14 155q14 -5 40 -8.5t43 -3.5q65 0 103.5 44t38.5 143v1171h197v-1171q0 -167 -86 -257.5t-239 -90.5q-31 0 -56.5 4.5t-54.5 13.5zM167 1363v197h197v-197h-197z" />
<glyph unicode="k" horiz-adv-x="1050" d="M144 0v1560h197v-904h126l296 426h236l-370 -492l423 -590h-232l-351 499h-128v-499h-197z" />
<glyph unicode="l" horiz-adv-x="516" d="M159 0v1560h197v-1560h-197z" />
<glyph unicode="m" horiz-adv-x="1790" d="M143 0v1082h176l14 -142q53 77 134.5 119.5t189.5 42.5t185.5 -50t116.5 -150q51 92 135 146t196 54q165 0 261 -113.5t96 -341.5v-647h-197v649q0 160 -55 226.5t-164 66.5q-101 0 -163.5 -70t-73.5 -177v-8v-687h-198v649q0 152 -56.5 222.5t-162.5 70.5 q-90 0 -148 -37t-89 -104v-801h-197z" />
<glyph unicode="n" d="M143 0v1082h176l14 -161q54 86 135.5 133.5t185.5 47.5q175 0 271 -102.5t96 -316.5v-683h-197v679q0 143 -56.5 203t-172.5 60q-85 0 -150.5 -41t-104.5 -112v-789h-197z" />
<glyph unicode="o" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113q-141 0 -213.5 -113t-72.5 -283v-22z" />
<glyph unicode="p" d="M143 -416v1498h151l31 -140q53 78 132 119t184 41q201 0 312.5 -159.5t111.5 -421.5v-21q0 -234 -112 -377.5t-309 -143.5q-100 0 -175.5 33.5t-128.5 100.5v-529h-197zM340 275q37 -67 97 -104.5t147 -37.5q140 0 212 102.5t72 264.5v21q0 184 -72.5 302.5t-213.5 118.5 q-85 0 -145 -38.5t-97 -105.5v-523z" />
<glyph unicode="q" d="M98 500v21q0 261 111.5 421t312.5 160q99 0 174 -37.5t127 -109.5l29 127h150v-1498h-197v518q-52 -61 -123 -92t-162 -31q-198 0 -310 143.5t-112 377.5zM295 500q0 -164 67.5 -265.5t207.5 -101.5q81 0 138.5 36t96.5 101v546q-39 61 -96.5 96t-136.5 35 q-141 0 -209 -119.5t-68 -306.5v-21z" />
<glyph unicode="r" horiz-adv-x="702" d="M143 0v1082h176l19 -158q46 84 113.5 131t155.5 47q22 0 42 -3.5t33 -7.5l-27 -183l-101 6q-78 0 -131.5 -37t-82.5 -104v-773h-197z" />
<glyph unicode="s" horiz-adv-x="1071" d="M109 329l2 6h188q5 -105 78 -153.5t171 -48.5q105 0 164.5 42.5t59.5 111.5q0 65 -49.5 107t-187.5 73q-197 43 -296.5 116.5t-99.5 200.5q0 132 112 225t292 93q189 0 301 -97q107 -93 106 -224v-12l-2 -6h-188q0 71 -59.5 127.5t-157.5 56.5q-105 0 -156 -46t-51 -111 q0 -64 45 -101t183 -66q205 -44 305 -119.5t100 -202.5q0 -144 -116.5 -233t-304.5 -89q-207 0 -326 105q-113 100 -113 232v13z" />
<glyph unicode="t" horiz-adv-x="708" d="M34 936v146h172v261h197v-261h205v-146h-205v-657q0 -76 31.5 -107t83.5 -31q17 0 37.5 4t36.5 10l26 -135q-22 -18 -64.5 -29.5t-85.5 -11.5q-120 0 -191 72.5t-71 227.5v657h-172z" />
<glyph unicode="u" d="M139 444v638h197v-640q0 -173 51 -238t159 -65q105 0 173.5 42.5t103.5 120.5v780h197v-1082h-177l-13 160q-51 -87 -131 -134t-185 -47q-177 0 -276 113t-99 352z" />
<glyph unicode="v" horiz-adv-x="1030" d="M46 1082h202l256 -763l17 -76h6l19 76l249 763h201l-398 -1082h-149z" />
<glyph unicode="w" horiz-adv-x="1550" d="M45 1082h196l179 -688l23 -131h6l28 131l216 688h158l217 -688l31 -146h6l29 146l170 688h196l-314 -1082h-159l-209 659l-45 184l-6 -1l-43 -183l-206 -659h-159z" />
<glyph unicode="x" horiz-adv-x="1030" d="M46 0l361 547l-351 535h227l227 -399l230 399h230l-351 -535l361 -547h-226l-240 409l-240 -409h-228z" />
<glyph unicode="y" horiz-adv-x="1030" d="M26 1082h220l228 -681l35 -136h6l266 817h219l-455 -1248q-41 -109 -117.5 -190t-206.5 -81q-24 0 -61 5.5t-57 10.5l20 155q-6 1 35.5 -2t52.5 -3q63 0 103 56t67 124l47 113z" />
<glyph unicode="z" horiz-adv-x="1030" d="M94 0v138l585 788h-578v156h819v-134l-591 -794h625v-154h-860z" />
<glyph unicode="{" horiz-adv-x="696" d="M63 543v147q106 0 157.5 61.5t51.5 174.5v206q0 171 82 290.5t277 174.5l40 -117q-110 -35 -156 -125.5t-46 -222.5v-206q0 -105 -42.5 -185t-127.5 -125q85 -46 127.5 -126.5t42.5 -183.5v-205q0 -132 46 -221.5t156 -125.5l-40 -118q-195 55 -277 175t-82 290v205 q0 112 -51.5 174.5t-157.5 62.5z" />
<glyph unicode="|" horiz-adv-x="507" d="M175 -270v1726h158v-1726h-158z" />
<glyph unicode="}" horiz-adv-x="696" d="M21 -246q109 36 156 125.5t47 221.5v205q0 107 45 187t139 123q-94 41 -139 121t-45 189v206q0 132 -47 222.5t-156 125.5l41 117q194 -55 276.5 -174.5t82.5 -290.5v-206q0 -113 50.5 -174.5t158.5 -61.5v-147q-108 0 -158.5 -62.5t-50.5 -174.5v-205q0 -170 -82.5 -290 t-276.5 -175z" />
<glyph unicode="~" horiz-adv-x="1391" d="M128 474q0 136 85.5 232.5t217.5 96.5q88 0 163 -34.5t160 -104.5q58 -51 106 -74t100 -23q66 0 114.5 57t48.5 134l141 -18q0 -137 -87 -238t-217 -101q-90 0 -163.5 33t-158.5 107q-59 48 -108 72t-99 24q-67 0 -114.5 -53t-47.5 -128z" />
<glyph unicode="&#xa1;" horiz-adv-x="507" d="M144 -374v978h197v-978h-197zM144 876v206h197v-206h-197z" />
<glyph unicode="&#xa2;" horiz-adv-x="1122" d="M107 520v42q0 199 95 344.5t276 183.5v228h198v-223q157 -24 252.5 -130.5t92.5 -250.5l-2 -5h-179q0 99 -70 168.5t-177 69.5q-155 0 -221.5 -111.5t-66.5 -273.5v-42q0 -166 66 -276.5t222 -110.5q98 0 172.5 60.5t74.5 148.5h178l3 -6q3 -122 -98 -223t-247 -126v-232 h-198v236q-182 36 -276.5 182t-94.5 347z" />
<glyph unicode="&#xa3;" horiz-adv-x="1194" d="M70 615v155h158l-10 270q0 204 112 320.5t300 116.5q200 0 310 -104.5t106 -276.5l-2 -6h-190q0 118 -63 175t-161 57q-99 0 -157 -74.5t-58 -207.5l10 -270h418v-155h-413l6 -149q0 -90 -15.5 -171.5t-44.5 -140.5h735l-1 -154h-976v154h10q48 13 72 111t24 201l-6 149 h-164z" />
<glyph unicode="&#xa4;" horiz-adv-x="1456" d="M104 112l138 140q-50 76 -76.5 166.5t-26.5 189.5q0 102 28.5 196t82.5 172l-146 149l139 139l143 -146q74 55 163 85.5t185 30.5q97 0 186 -31t164 -87l146 149l140 -140l-150 -153q52 -78 80.5 -170.5t28.5 -193.5q0 -98 -26.5 -187.5t-74.5 -165.5l142 -143l-140 -139 l-133 135q-77 -62 -169.5 -95t-193.5 -33t-193.5 32.5t-167.5 93.5l-130 -132zM321 608q0 -188 120.5 -320.5t292.5 -132.5q170 0 290.5 132.5t120.5 320.5q0 186 -120.5 318t-290.5 132q-172 0 -292.5 -132t-120.5 -318z" />
<glyph unicode="&#xa5;" horiz-adv-x="1243" d="M30 1456h226l359 -663l360 663h224l-418 -718h312v-155h-383v-135h383v-155h-383v-293h-197v293h-375v155h375v135h-375v155h311z" />
<glyph unicode="&#xa6;" horiz-adv-x="499" d="M145 -270v792h197v-792h-197zM145 698v758h197v-758h-197z" />
<glyph unicode="&#xa7;" horiz-adv-x="1259" d="M94 551q0 91 47 161.5t134 111.5q-68 50 -102 119.5t-34 166.5q0 166 134 266.5t358 100.5q233 0 363 -111.5t126 -313.5l-3 -6h-188q0 118 -79 197t-219 79q-145 0 -220 -59.5t-75 -150.5q0 -99 67 -148.5t278 -107.5q244 -69 355.5 -159.5t111.5 -265.5q0 -94 -48 -164 t-135 -110q69 -51 104 -119t35 -166q0 -172 -133 -269.5t-358 -97.5q-221 0 -372 102.5t-146 322.5l2 6l188 2q0 -143 96.5 -210.5t231.5 -67.5q137 0 215.5 59.5t78.5 150.5t-72 141.5t-276 113.5q-239 63 -352 156t-113 270zM291 553q0 -100 68 -151.5t278 -110.5 q56 -17 93 -28t70 -23q72 20 112 69.5t40 118.5q0 91 -73.5 144.5t-275.5 116.5q-47 12 -88.5 24.5t-77.5 27.5q-73 -19 -109.5 -69t-36.5 -119z" />
<glyph unicode="&#xa8;" horiz-adv-x="1021" d="M170 1256v200h219v-200h-219zM640 1256v200h219v-200h-219z" />
<glyph unicode="&#xa9;" horiz-adv-x="1604" d="M88 729q0 315 207 531t503 216q295 0 502 -216t207 -531q0 -316 -207.5 -533t-501.5 -217q-296 0 -503 217t-207 533zM209 729q0 -265 171.5 -447t417.5 -182q245 0 417 182t172 447q0 263 -172 444t-417 181q-246 0 -417.5 -181t-171.5 -444zM436 669v119q0 173 94 280 t254 107q157 0 245.5 -79t84.5 -228l-2 -6h-146q0 95 -45.5 138.5t-136.5 43.5q-94 0 -145 -70.5t-51 -184.5v-120q0 -117 51 -187t145 -70q91 0 136 43t45 141h146l2 -6q4 -151 -84 -229.5t-245 -78.5q-160 0 -254 106.5t-94 280.5z" />
<glyph unicode="&#xaa;" horiz-adv-x="917" d="M120 920q0 110 84.5 170t245.5 60h139v52q0 63 -30 97t-88 34q-67 0 -103.5 -27t-36.5 -76l-162 13l-1 6q-6 98 78.5 163t224.5 65q134 0 212 -71t78 -205v-314q0 -50 6 -94t20 -87h-174q-8 21 -13 45t-8 50q-33 -47 -89.5 -78t-133.5 -31q-119 0 -184 61t-65 167z M293 924q0 -45 29 -69t89 -24q51 0 105.5 30t72.5 65v110h-138q-75 0 -116.5 -33t-41.5 -79z" />
<glyph unicode="&#xab;" horiz-adv-x="966" d="M98 507v19l295 389h148l-255 -399l255 -398h-148zM432 507v19l295 389h148l-255 -399l255 -398h-148z" />
<glyph unicode="&#xac;" horiz-adv-x="1137" d="M127 637v165h835v-427h-198v262h-637z" />
<glyph unicode="&#xad;" horiz-adv-x="561" d="M35 538v154h490v-154h-490z" />
<glyph unicode="&#xae;" horiz-adv-x="1604" d="M88 729q0 315 207 531t503 216q295 0 502 -216t207 -531q0 -316 -207.5 -533t-501.5 -217q-296 0 -503 217t-207 533zM209 729q0 -266 171.5 -447.5t417.5 -181.5q244 0 416 182t172 447q0 264 -171.5 444.5t-416.5 180.5q-246 0 -417.5 -180.5t-171.5 -444.5zM504 316 v850h280q152 0 238.5 -65.5t86.5 -191.5q0 -62 -33 -109t-96 -78q66 -26 95.5 -79t29.5 -128v-56q0 -41 3.5 -73.5t13.5 -53.5v-16h-153q-9 21 -11 61.5t-2 82.5v54q0 72 -33.5 106t-110.5 34h-159v-338h-149zM653 784h152q65 1 110.5 32.5t45.5 87.5q0 73 -39.5 102.5 t-137.5 29.5h-131v-252z" />
<glyph unicode="&#xaf;" horiz-adv-x="950" d="M123 1310v146h721v-146h-721z" />
<glyph unicode="&#xb0;" horiz-adv-x="763" d="M128 1216q0 106 76 183.5t181 77.5q103 0 177.5 -77.5t74.5 -183.5q0 -108 -74 -182.5t-178 -74.5q-106 0 -181.5 74.5t-75.5 182.5zM259 1216q0 -55 36.5 -91t89.5 -36q52 0 87.5 36t35.5 91t-36 92.5t-87 37.5q-53 0 -89.5 -37.5t-36.5 -92.5z" />
<glyph unicode="&#xb1;" horiz-adv-x="1097" d="M99 702v154h381v411h177v-411h358v-154h-358v-413h-177v413h-381zM136 4v155h835v-155h-835z" />
<glyph unicode="&#xb2;" horiz-adv-x="868" d="M119 1240q-6 99 78 169t225 70q135 0 211 -64t76 -180q0 -80 -44.5 -136t-160.5 -161l-153 -135l2 -6h361v-130h-592v130l302 262q69 60 91 97.5t22 79.5q0 50 -28.5 81t-86.5 31q-67 0 -103.5 -32t-36.5 -82h-161z" />
<glyph unicode="&#xb3;" horiz-adv-x="876" d="M112 882l1 6h163q0 -46 37.5 -74.5t100.5 -28.5q72 0 114 29.5t42 77.5q0 62 -36.5 90.5t-109.5 28.5h-132v126h132q67 0 99.5 28.5t32.5 80.5q0 43 -36.5 72t-105.5 29q-56 0 -90.5 -24t-34.5 -64h-162l-2 6q-6 94 78.5 153.5t210.5 59.5q145 0 229 -59.5t84 -169.5 q0 -55 -35.5 -100.5t-97.5 -71.5q70 -23 108 -71t38 -116q0 -111 -90 -173t-236 -62q-127 0 -217.5 58t-84.5 169z" />
<glyph unicode="&#xb4;" horiz-adv-x="654" d="M131 1211l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xb5;" d="M153 -416v1498h196v-642q2 -178 57.5 -242.5t155.5 -64.5q98 0 158.5 36t92.5 106v807h197v-1082h-177l-9 108q-44 -63 -107.5 -96t-146.5 -33q-72 0 -126.5 16.5t-94.5 51.5v-463h-196z" />
<glyph unicode="&#xb6;" horiz-adv-x="1006" d="M63 988q0 207 129.5 337.5t362.5 130.5h281v-1456h-197v520h-84q-233 0 -362.5 129.5t-129.5 338.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="540" d="M161 624v212h198v-212h-198z" />
<glyph unicode="&#xb8;" horiz-adv-x="509" d="M119 -326q72 0 116 24.5t44 73.5q0 48 -36 67t-123 26l32 135h140l-12 -52q65 -11 108 -52t43 -121q0 -96 -79 -153t-226 -57z" />
<glyph unicode="&#xb9;" horiz-adv-x="557" d="M95 1320v134l301 23v-812h-174v655h-127z" />
<glyph unicode="&#xba;" horiz-adv-x="933" d="M120 1025v117q0 148 94 241.5t251 93.5q158 0 252 -93.5t94 -241.5v-117q0 -149 -93.5 -241.5t-250.5 -92.5q-158 0 -252.5 92.5t-94.5 241.5zM293 1025q0 -88 44 -140.5t130 -52.5q83 0 127.5 53t44.5 140v117q0 84 -45 137.5t-129 53.5t-128 -53.5t-44 -137.5v-117z " />
<glyph unicode="&#xbb;" horiz-adv-x="966" d="M110 152l255 398l-255 399h148l295 -389v-19l-295 -389h-148zM456 152l255 398l-255 399h148l295 -389v-19l-295 -389h-148z" />
<glyph unicode="&#xbc;" horiz-adv-x="1595" d="M184 1319v134l301 23v-812h-174v655h-127zM339 185l711 1138l109 -67l-711 -1138zM785 254l422 547h173v-519h126v-130h-126v-152h-170v152h-417zM967 282h243v310l-6 1l-13 -22z" />
<glyph unicode="&#xbd;" horiz-adv-x="1708" d="M184 1319v134l301 23v-812h-174v655h-127zM352 185l711 1138l109 -67l-711 -1138zM930 573q-6 99 78 169t225 70q135 0 211 -64t76 -180q0 -80 -44.5 -136t-160.5 -161l-153 -135l2 -6h361v-130h-592v130l302 262q69 60 91 97.5t22 79.5q0 50 -28.5 81t-86.5 31 q-67 0 -103.5 -32t-36.5 -82h-161z" />
<glyph unicode="&#xbe;" horiz-adv-x="1781" d="M128 883l1 6h163q0 -46 37.5 -74.5t100.5 -28.5q72 0 114 29.5t42 77.5q0 62 -36.5 90.5t-109.5 28.5h-132v126h132q67 0 99.5 28.5t32.5 80.5q0 43 -36.5 72t-105.5 29q-56 0 -90.5 -24t-34.5 -64h-162l-2 6q-6 94 78.5 153.5t210.5 59.5q145 0 229 -59.5t84 -169.5 q0 -55 -35.5 -100.5t-97.5 -71.5q70 -23 108 -71t38 -116q0 -111 -90 -173t-236 -62q-127 0 -217.5 58t-84.5 169zM522 185l711 1138l109 -67l-711 -1138zM974 254l422 547h173v-519h126v-130h-126v-152h-170v152h-417zM1156 282h243v310l-6 1l-13 -22z" />
<glyph unicode="&#xbf;" horiz-adv-x="1013" d="M114 -13q0 127 70 233.5t187 220.5q53 53 65 96t12 135h197q-2 -146 -26 -202t-125 -147q-100 -118 -141.5 -181t-41.5 -150q0 -106 56 -163t162 -57q90 0 154.5 49.5t64.5 145.5h188l3 -6q2 -161 -114.5 -258t-295.5 -97q-198 0 -306.5 100.5t-108.5 280.5zM441 874v209 h206v-209h-206z" />
<glyph unicode="&#xc0;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM378 1820l3 6h230l175 -266h-158zM420 540h490l-240 663h-6z" />
<glyph unicode="&#xc1;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM420 540h490l-240 663h-6zM613 1556l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xc2;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM356 1601v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160zM420 540h490l-240 663h-6z" />
<glyph unicode="&#xc3;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM316 1628q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5zM420 540h490l-240 663h-6z " />
<glyph unicode="&#xc4;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM319 1605v200h219v-200h-219zM420 540h490l-240 663h-6zM789 1605v200h219v-200h-219z" />
<glyph unicode="&#xc5;" horiz-adv-x="1326" d="M20 0l563 1456h169l554 -1456h-201l-136 375h-610l-138 -375h-201zM420 540h490l-240 663h-6zM457 1734q0 84 60.5 141t147.5 57q85 0 145 -56.5t60 -141.5q0 -86 -59.5 -140t-145.5 -54q-87 0 -147.5 54t-60.5 140zM560 1734q0 -43 31 -73.5t74 -30.5q42 0 72 29.5 t30 74.5t-30 76t-72 31q-43 0 -74 -31t-31 -76z" />
<glyph unicode="&#xc6;" horiz-adv-x="1922" d="M-20 0l880 1456h967v-155h-691l20 -466h590v-155h-584l22 -526h705v-154h-895l-15 350h-557l-202 -350h-240zM525 529h447l-31 710l-5 2z" />
<glyph unicode="&#xc7;" horiz-adv-x="1297" d="M118 598v259q0 269 155.5 444.5t402.5 175.5t393 -131.5t142 -348.5l-2 -6h-189q0 153 -90 242t-254 89q-165 0 -263 -133t-98 -330v-261q0 -199 98 -332t263 -133q164 0 254 88.5t90 244.5h189l2 -6q4 -205 -144 -343t-391 -138q-247 0 -402.5 175t-155.5 444zM581 -334 q72 0 116 24.5t44 73.5q0 48 -36 67t-123 26l32 135h140l-12 -52q65 -11 108 -52t43 -121q0 -96 -79 -153t-226 -57z" />
<glyph unicode="&#xc8;" horiz-adv-x="1197" d="M180 0v1456h955v-155h-758v-471h667v-155h-667v-521h769v-154h-966zM303 1820l3 6h230l175 -266h-158z" />
<glyph unicode="&#xc9;" horiz-adv-x="1197" d="M180 0v1456h955v-155h-758v-471h667v-155h-667v-521h769v-154h-966zM538 1556l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xca;" horiz-adv-x="1197" d="M180 0v1456h955v-155h-758v-471h667v-155h-667v-521h769v-154h-966zM322 1601v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160z" />
<glyph unicode="&#xcb;" horiz-adv-x="1197" d="M180 0v1456h955v-155h-758v-471h667v-155h-667v-521h769v-154h-966zM284 1605v200h219v-200h-219zM754 1605v200h219v-200h-219z" />
<glyph unicode="&#xcc;" horiz-adv-x="579" d="M-34 1820l3 6h230l175 -266h-158zM190 0v1456h198v-1456h-198z" />
<glyph unicode="&#xcd;" horiz-adv-x="579" d="M190 0v1456h198v-1456h-198zM199 1556l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xce;" horiz-adv-x="579" d="M-15 1601v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160zM190 0v1456h198v-1456h-198z" />
<glyph unicode="&#xcf;" horiz-adv-x="579" d="M-53 1605v200h219v-200h-219zM190 0v1456h198v-1456h-198zM417 1605v200h219v-200h-219z" />
<glyph unicode="&#xd0;" horiz-adv-x="1379" d="M42 663v155h168v638h447q286 0 459 -175.5t173 -453.5v-199q0 -279 -173 -453.5t-459 -174.5h-447v663h-168zM407 154h250q202 0 318.5 133t116.5 341v201q0 206 -116.5 339t-318.5 133h-250v-483h276v-155h-276v-509z" />
<glyph unicode="&#xd1;" horiz-adv-x="1461" d="M180 0v1456h197l701 -1124l6 2v1122h197v-1456h-197l-701 1126l-6 -2v-1124h-197zM381 1628q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5z" />
<glyph unicode="&#xd2;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261zM373 1841l3 6h230l175 -266h-158z" />
<glyph unicode="&#xd3;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261zM608 1577l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xd4;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261zM392 1622v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160z" />
<glyph unicode="&#xd5;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261zM351 1649q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5z" />
<glyph unicode="&#xd6;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q264 0 429.5 -176.5t165.5 -443.5v-259q0 -267 -165.5 -443t-429.5 -176q-255 0 -414.5 176t-159.5 443zM310 598q0 -202 102.5 -330t274.5 -128q183 0 290.5 127.5t107.5 330.5v261q0 200 -108 328t-290 128q-172 0 -274.5 -128 t-102.5 -328v-261zM354 1626v200h219v-200h-219zM824 1626v200h219v-200h-219z" />
<glyph unicode="&#xd7;" horiz-adv-x="1096" d="M88 351l327 334l-327 334l126 126l326 -333l327 333l126 -126l-328 -334l328 -334l-126 -126l-327 332l-326 -332z" />
<glyph unicode="&#xd8;" horiz-adv-x="1396" d="M113 598v259q0 266 159.5 443t414.5 177q94 0 178.5 -25.5t156.5 -71.5l81 137h149l-132 -221q77 -84 119.5 -197t42.5 -242v-259q0 -267 -165.5 -443t-429.5 -176q-85 0 -160.5 20.5t-139.5 60.5l-91 -154h-149l139 234q-84 84 -128.5 202t-44.5 256zM310 598 q0 -85 19 -158t54 -125l6 -1l544 916q-50 41 -112 63t-134 22q-172 0 -274.5 -128t-102.5 -328v-261zM475 208q44 -34 97 -51t115 -17q183 0 290.5 127.5t107.5 330.5v261q0 75 -16.5 142t-46.5 117l-6 1z" />
<glyph unicode="&#xd9;" horiz-adv-x="1386" d="M147 469v987h197v-987q0 -165 94 -250.5t248 -85.5q162 0 261.5 85.5t99.5 250.5v987h197v-987q0 -238 -154.5 -364t-403.5 -126q-240 0 -389.5 126.5t-149.5 363.5zM372 1820l3 6h230l175 -266h-158z" />
<glyph unicode="&#xda;" horiz-adv-x="1386" d="M147 469v987h197v-987q0 -165 94 -250.5t248 -85.5q162 0 261.5 85.5t99.5 250.5v987h197v-987q0 -238 -154.5 -364t-403.5 -126q-240 0 -389.5 126.5t-149.5 363.5zM607 1556l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xdb;" horiz-adv-x="1386" d="M147 469v987h197v-987q0 -165 94 -250.5t248 -85.5q162 0 261.5 85.5t99.5 250.5v987h197v-987q0 -238 -154.5 -364t-403.5 -126q-240 0 -389.5 126.5t-149.5 363.5zM391 1601v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160z" />
<glyph unicode="&#xdc;" horiz-adv-x="1386" d="M147 469v987h197v-987q0 -165 94 -250.5t248 -85.5q162 0 261.5 85.5t99.5 250.5v987h197v-987q0 -238 -154.5 -364t-403.5 -126q-240 0 -389.5 126.5t-149.5 363.5zM353 1605v200h219v-200h-219zM823 1605v200h219v-200h-219z" />
<glyph unicode="&#xdd;" horiz-adv-x="1250" d="M20 1456h225l380 -740l380 740h225l-511 -944v-512h-196v525zM535 1555l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xde;" horiz-adv-x="1209" d="M163 0v1456h197v-293h269q232 0 362 -118t130 -307q0 -190 -130 -307.5t-362 -117.5h-269v-313h-197zM360 467h269q147 0 220.5 78t73.5 191q0 114 -73.5 193.5t-220.5 79.5h-269v-542z" />
<glyph unicode="&#xdf;" horiz-adv-x="1221" d="M137 0v1082q0 223 117.5 348t300.5 125q161 0 262 -86t101 -253q0 -118 -64.5 -228t-64.5 -167q0 -82 173.5 -224t173.5 -281q0 -167 -104.5 -252t-282.5 -85q-84 0 -172.5 20.5t-125.5 50.5l44 159q43 -28 108 -52t126 -24q108 0 159 47.5t51 125.5q0 84 -173.5 227.5 t-173.5 289.5q0 80 70.5 190.5t70.5 186.5q0 93 -51 147t-117 54q-104 0 -168 -83.5t-64 -235.5v-1082h-196z" />
<glyph unicode="&#xe0;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM230 1498l3 6h230l175 -266h-158zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141z" />
<glyph unicode="&#xe1;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141zM465 1234l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xe2;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM249 1279v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141z" />
<glyph unicode="&#xe3;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM208 1306q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5zM303 300q0 -72 45 -114t133 -42q107 0 193 55 t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141z" />
<glyph unicode="&#xe4;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM211 1283v200h219v-200h-219zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141zM681 1283v200h219v-200h-219z" />
<glyph unicode="&#xe5;" horiz-adv-x="1126" d="M106 304q0 155 125.5 242.5t340.5 87.5h214v107q0 95 -58 150.5t-164 55.5q-95 0 -154.5 -48.5t-59.5 -116.5h-188l-2 6q-6 118 111.5 216t303.5 98q184 0 296 -93.5t112 -269.5v-521q0 -58 6 -112t22 -106h-203q-10 49 -15.5 86.5t-6.5 75.5q-55 -78 -143.5 -130.5 t-190.5 -52.5q-169 0 -257.5 86.5t-88.5 238.5zM303 300q0 -72 45 -114t133 -42q107 0 193 55t112 126v176h-221q-119 0 -190.5 -60t-71.5 -141zM346 1412q0 84 60.5 141t147.5 57q85 0 145 -56.5t60 -141.5q0 -86 -59.5 -140t-145.5 -54q-87 0 -147.5 54t-60.5 140z M449 1412q0 -43 31 -73.5t74 -30.5q42 0 72 29.5t30 74.5t-30 76t-72 31q-43 0 -74 -31t-31 -76z" />
<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M58 304q0 158 115 244.5t335 86.5h229v85q0 106 -51.5 166.5t-149.5 60.5q-103 0 -164 -55t-61 -133l-188 18l-2 6q-5 138 109.5 228.5t305.5 90.5q114 0 201.5 -40.5t137.5 -117.5q64 75 151.5 116.5t188.5 41.5q214 0 329.5 -130t115.5 -358v-119h-709l-2 -5 q1 -159 79.5 -258t233.5 -99q103 0 169.5 27.5t144.5 78.5l67 -138q-53 -44 -147 -83t-234 -39q-136 0 -240 48.5t-170 138.5q-56 -79 -167.5 -133t-271.5 -54q-170 0 -262.5 87t-92.5 238zM255 300q0 -74 50 -120.5t147 -46.5q76 0 159 43.5t126 100.5v216h-227 q-120 0 -187.5 -56t-67.5 -137zM953 645l2 -5h508v31q0 122 -60 199t-188 77q-113 0 -182 -84.5t-80 -217.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="1087" d="M97 520v42q0 231 125.5 385.5t360.5 154.5q190 0 310.5 -112t116.5 -275l-2 -6h-178q0 99 -70 168.5t-177 69.5q-155 0 -221.5 -111.5t-66.5 -273.5v-42q0 -166 66 -276.5t222 -110.5q98 0 172.5 60.5t74.5 148.5h177l2 -6q5 -140 -124.5 -248.5t-301.5 -108.5 q-236 0 -361 154t-125 387zM440 -334q72 0 116 24.5t44 73.5q0 48 -36 67t-123 26l32 135h140l-12 -52q65 -11 108 -52t43 -121q0 -96 -79 -153t-226 -57z" />
<glyph unicode="&#xe8;" horiz-adv-x="1083" d="M99 520v44q0 231 137.5 384.5t325.5 153.5q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-226 0 -359.5 150.5t-133.5 390.5zM233 1499l3 6h230l175 -266h-158zM307 654l2 -5 h499v26q0 116 -62 194t-184 78q-99 0 -169 -83.5t-86 -209.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="1083" d="M99 520v44q0 231 137.5 384.5t325.5 153.5q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-226 0 -359.5 150.5t-133.5 390.5zM307 654l2 -5h499v26q0 116 -62 194t-184 78 q-99 0 -169 -83.5t-86 -209.5zM468 1235l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xea;" horiz-adv-x="1083" d="M99 520v44q0 231 137.5 384.5t325.5 153.5q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-226 0 -359.5 150.5t-133.5 390.5zM252 1280v26l246 237h120l248 -238v-25h-161 l-147 148l-146 -148h-160zM307 654l2 -5h499v26q0 116 -62 194t-184 78q-99 0 -169 -83.5t-86 -209.5z" />
<glyph unicode="&#xeb;" horiz-adv-x="1083" d="M99 520v44q0 231 137.5 384.5t325.5 153.5q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-226 0 -359.5 150.5t-133.5 390.5zM214 1284v200h219v-200h-219zM307 654l2 -5h499 v26q0 116 -62 194t-184 78q-99 0 -169 -83.5t-86 -209.5zM684 1284v200h219v-200h-219z" />
<glyph unicode="&#xec;" horiz-adv-x="515" d="M-71 1477l3 6h230l175 -266h-158zM153 0v1082h197v-1082h-197z" />
<glyph unicode="&#xed;" horiz-adv-x="515" d="M153 0v1082h197v-1082h-197zM162 1213l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xee;" horiz-adv-x="515" d="M-52 1258v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160zM153 0v1082h197v-1082h-197z" />
<glyph unicode="&#xef;" horiz-adv-x="515" d="M-90 1262v200h219v-200h-219zM153 0v1082h197v-1082h-197zM380 1262v200h219v-200h-219z" />
<glyph unicode="&#xf0;" horiz-adv-x="1202" d="M72 466q0 228 138 370t351 142q90 0 169.5 -37t131.5 -97l4 5q-9 109 -51.5 197t-110.5 154l-290 -165l-77 102l256 146q-39 22 -80.5 39t-85.5 31l60 164q79 -19 151 -52t135 -79l218 125l77 -102l-195 -112q95 -104 147 -241.5t52 -300.5v-220q0 -245 -144 -400.5 t-359 -155.5q-218 0 -357.5 140t-139.5 347zM269 466q0 -132 82 -232.5t222 -100.5q133 0 217.5 114t84.5 288v148q-35 59 -115.5 99.5t-198.5 40.5q-131 0 -211.5 -104t-80.5 -253z" />
<glyph unicode="&#xf1;" d="M143 0v1082h176l14 -161q54 86 135.5 133.5t185.5 47.5q175 0 271 -102.5t96 -316.5v-683h-197v679q0 143 -56.5 203t-172.5 60q-85 0 -150.5 -41t-104.5 -112v-789h-197zM231 1306q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32 q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5z" />
<glyph unicode="&#xf2;" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM257 1498l3 6h230l175 -266h-158zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113 q-141 0 -213.5 -113t-72.5 -283v-22z" />
<glyph unicode="&#xf3;" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113q-141 0 -213.5 -113t-72.5 -283v-22z M492 1234l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xf4;" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM276 1279v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22 q0 170 -73.5 283t-215.5 113q-141 0 -213.5 -113t-72.5 -283v-22z" />
<glyph unicode="&#xf5;" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM235 1306q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5 t-128 46.5q-43 0 -72 -32.5t-29 -78.5zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113q-141 0 -213.5 -113t-72.5 -283v-22z" />
<glyph unicode="&#xf6;" d="M97 529v22q0 240 130 395.5t353 155.5q225 0 355.5 -155t130.5 -396v-22q0 -242 -130 -396t-354 -154t-354.5 154.5t-130.5 395.5zM238 1283v200h219v-200h-219zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113 q-141 0 -213.5 -113t-72.5 -283v-22zM708 1283v200h219v-200h-219z" />
<glyph unicode="&#xf7;" horiz-adv-x="1170" d="M71 597v188h998v-188h-998zM472 180v203h198v-203h-198zM472 999v203h198v-203h-198z" />
<glyph unicode="&#xf8;" d="M97 529v22q0 240 130 395.5t353 155.5q56 0 107.5 -11t97.5 -31l74 149h129l-104 -211q88 -74 135 -190t47 -257v-22q0 -242 -130 -396t-354 -154q-51 0 -97 8.5t-88 24.5l-72 -147h-129l100 204q-96 71 -147.5 191t-51.5 269zM294 529q0 -91 20 -166.5t61 -123.5h6 l332 674q-29 16 -62.5 25t-70.5 9q-141 0 -213.5 -113t-72.5 -283v-22zM469 156q24 -12 52 -17.5t61 -5.5q141 0 214 112t73 284v22q0 80 -17.5 150.5t-49.5 117.5h-6z" />
<glyph unicode="&#xf9;" d="M139 444v638h197v-640q0 -173 51 -238t159 -65q105 0 173.5 42.5t103.5 120.5v780h197v-1082h-177l-13 160q-51 -87 -131 -134t-185 -47q-177 0 -276 113t-99 352zM255 1477l3 6h230l175 -266h-158z" />
<glyph unicode="&#xfa;" d="M139 444v638h197v-640q0 -173 51 -238t159 -65q105 0 173.5 42.5t103.5 120.5v780h197v-1082h-177l-13 160q-51 -87 -131 -134t-185 -47q-177 0 -276 113t-99 352zM490 1213l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xfb;" d="M139 444v638h197v-640q0 -173 51 -238t159 -65q105 0 173.5 42.5t103.5 120.5v780h197v-1082h-177l-13 160q-51 -87 -131 -134t-185 -47q-177 0 -276 113t-99 352zM274 1258v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160z" />
<glyph unicode="&#xfc;" d="M139 444v638h197v-640q0 -173 51 -238t159 -65q105 0 173.5 42.5t103.5 120.5v780h197v-1082h-177l-13 160q-51 -87 -131 -134t-185 -47q-177 0 -276 113t-99 352zM236 1262v200h219v-200h-219zM706 1262v200h219v-200h-219z" />
<glyph unicode="&#xfd;" horiz-adv-x="1030" d="M26 1082h220l228 -681l35 -136h6l266 817h219l-455 -1248q-41 -109 -117.5 -190t-206.5 -81q-24 0 -61 5.5t-57 10.5l20 155q-6 1 35.5 -2t52.5 -3q63 0 103 56t67 124l47 113zM424 1213l185 266h230l2 -6l-270 -260h-147z" />
<glyph unicode="&#xfe;" horiz-adv-x="1186" d="M153 -416v1976h197v-598q53 68 128 104t173 36q201 0 312.5 -159.5t111.5 -421.5v-21q0 -234 -112 -377.5t-309 -143.5q-100 0 -175.5 33.5t-128.5 100.5v-529h-197zM350 275q37 -67 97 -104.5t147 -37.5q140 0 212 102.5t72 264.5v21q0 184 -72.5 302.5t-213.5 118.5 q-85 0 -145 -38.5t-97 -105.5v-523z" />
<glyph unicode="&#xff;" horiz-adv-x="1030" d="M26 1082h220l228 -681l35 -136h6l266 817h219l-455 -1248q-41 -109 -117.5 -190t-206.5 -81q-24 0 -61 5.5t-57 10.5l20 155q-6 1 35.5 -2t52.5 -3q63 0 103 56t67 124l47 113zM170 1262v200h219v-200h-219zM640 1262v200h219v-200h-219z" />
<glyph unicode="&#x152;" horiz-adv-x="1960" d="M104 576v304q0 265 154.5 431t403.5 166q69 0 140.5 -6t150.5 -15h907v-155h-758v-471h667v-155h-667v-521h769v-154h-918q-92 -10 -157 -15.5t-132 -5.5q-249 0 -404.5 166t-155.5 431zM301 576q0 -214 97 -328t266 -114q61 0 122 4.5t119 13.5v1151q-61 8 -122 13.5 t-121 5.5q-169 0 -265 -113.5t-96 -326.5v-306z" />
<glyph unicode="&#x153;" horiz-adv-x="1854" d="M97 529v22q0 240 130 395.5t353 155.5q130 0 230 -54.5t164 -152.5q65 97 161.5 152t204.5 55q219 0 331 -132t112 -352v-123h-702l-3 -5q3 -156 79 -256.5t213 -100.5q100 0 175.5 28.5t130.5 78.5l77 -128q-58 -57 -153 -95t-230 -38q-131 0 -232.5 52.5t-166.5 148.5 q-64 -96 -163 -148.5t-226 -52.5q-224 0 -354.5 154.5t-130.5 395.5zM294 529q0 -172 72.5 -284t215.5 -112q141 0 214 112t73 284v22q0 170 -73.5 283t-215.5 113q-141 0 -213.5 -113t-72.5 -283v-22zM1085 654l2 -5h499v26q0 116 -62 194t-184 78q-99 0 -169 -83.5 t-86 -209.5z" />
<glyph unicode="&#x178;" horiz-adv-x="1250" d="M20 1456h225l380 -740l380 740h225l-511 -944v-512h-196v525zM281 1604v200h219v-200h-219zM751 1604v200h219v-200h-219z" />
<glyph unicode="&#x2c6;" horiz-adv-x="979" d="M171 1252v26l246 237h120l248 -238v-25h-161l-147 148l-146 -148h-160z" />
<glyph unicode="&#x2dc;" horiz-adv-x="979" d="M135 1275q0 93 59 161.5t150 68.5q56 0 140 -47t136 -47q41 0 71 32.5t30 79.5l108 -32q0 -94 -59.5 -159t-149.5 -65q-71 0 -148 46.5t-128 46.5q-43 0 -72 -32.5t-29 -78.5z" />
<glyph unicode="&#x2000;" horiz-adv-x="966" />
<glyph unicode="&#x2001;" horiz-adv-x="1932" />
<glyph unicode="&#x2002;" horiz-adv-x="966" />
<glyph unicode="&#x2003;" horiz-adv-x="1932" />
<glyph unicode="&#x2004;" horiz-adv-x="644" />
<glyph unicode="&#x2005;" horiz-adv-x="483" />
<glyph unicode="&#x2006;" horiz-adv-x="322" />
<glyph unicode="&#x2007;" horiz-adv-x="322" />
<glyph unicode="&#x2008;" horiz-adv-x="241" />
<glyph unicode="&#x2009;" horiz-adv-x="386" />
<glyph unicode="&#x200a;" horiz-adv-x="107" />
<glyph unicode="&#x2010;" horiz-adv-x="561" d="M35 538v154h490v-154h-490z" />
<glyph unicode="&#x2011;" horiz-adv-x="561" d="M35 538v154h490v-154h-490z" />
<glyph unicode="&#x2012;" horiz-adv-x="561" d="M35 538v154h490v-154h-490z" />
<glyph unicode="&#x2013;" horiz-adv-x="1416" d="M169 648v155h1086v-155h-1086z" />
<glyph unicode="&#x2014;" horiz-adv-x="1660" d="M141 648v155h1336v-155h-1336z" />
<glyph unicode="&#x2018;" horiz-adv-x="418" d="M80 1020v184l160 356h97l-60 -362v-178h-197z" />
<glyph unicode="&#x2019;" horiz-adv-x="418" d="M80 1021l60 343v196h197v-193l-160 -346h-97z" />
<glyph unicode="&#x201a;" horiz-adv-x="417" d="M80 -255l60 263v241h197v-223l-160 -281h-97z" />
<glyph unicode="&#x201c;" horiz-adv-x="744" d="M80 1020v184l160 356h97l-60 -362v-178h-197zM409 1020v184l160 356h97l-60 -362v-178h-197z" />
<glyph unicode="&#x201d;" horiz-adv-x="752" d="M80 1021l60 343v196h197v-193l-160 -346h-97zM417 1021l60 343v196h197v-193l-160 -346h-97z" />
<glyph unicode="&#x201e;" horiz-adv-x="726" d="M80 -239l60 325v194h197v-184l-160 -335h-97zM388 -239l60 333v186h197v-184l-160 -335h-97z" />
<glyph unicode="&#x2022;" horiz-adv-x="695" d="M137 733v60q0 88 56 144t150 56q95 0 151.5 -56t56.5 -144v-60q0 -89 -56 -143.5t-151 -54.5t-151 55t-56 143z" />
<glyph unicode="&#x2026;" horiz-adv-x="1380" d="M161 0v202h197v-202h-197zM604 0v202h197v-202h-197zM1024 0v202h197v-202h-197z" />
<glyph unicode="&#x202f;" horiz-adv-x="386" />
<glyph unicode="&#x2039;" horiz-adv-x="615" d="M108 541v19l295 389h148l-255 -399l255 -398h-148z" />
<glyph unicode="&#x203a;" horiz-adv-x="615" d="M88 152l255 398l-255 399h148l295 -389v-19l-295 -389h-148z" />
<glyph unicode="&#x205f;" horiz-adv-x="483" />
<glyph unicode="&#x20ac;" horiz-adv-x="1088" d="M79 481v155h146v136h-146v155h146v15q0 244 141.5 389.5t372.5 145.5q59 0 117.5 -8t124.5 -23l-19 -159q-54 16 -110.5 25.5t-112.5 9.5q-146 0 -231.5 -103t-85.5 -275v-17h492v-155h-492v-136h492v-155h-485l-2 -5q-4 -138 81.5 -240.5t232.5 -102.5q57 0 113 8.5 t108 25.5l19 -157q-56 -15 -117.5 -23t-122.5 -8q-231 0 -373.5 144.5t-142.5 357.5h-146z" />
<glyph unicode="&#x2122;" horiz-adv-x="1284" d="M103 1374v82h384v-82h-145v-455h-94v455h-145zM565 919v537h116l161 -390h6l162 390h110v-537h-93v343l-6 2l-150 -345h-51l-156 359l-6 -2v-357h-93z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1223" d="M56 936v146h169v137q0 173 90.5 267.5t252.5 94.5q34 0 68.5 -5.5t76.5 -15.5l-24 -150q-18 4 -43.5 7t-53.5 3q-86 0 -128 -51.5t-42 -149.5v-137h225v-146h-225v-936h-197v936h-169zM866 0v1560h197v-1560h-197z" />
<glyph unicode="&#xfb03;" horiz-adv-x="1847" d="M56 936v146h169v137q0 173 90.5 267.5t252.5 94.5q34 0 68.5 -5.5t76.5 -15.5l-24 -150q-18 4 -43.5 7t-53.5 3q-86 0 -128 -51.5t-42 -149.5v-137h225v-146h-225v-936h-197v936h-169zM735 936v146h170v117q0 182 106.5 282t295.5 100q67 0 132 -15.5t153 -45.5l-34 -160 q-53 21 -113 36t-123 15q-117 0 -168.5 -52t-51.5 -160v-117h215v-146h-215v-936h-197v936h-170zM1490 0v1082h198v-1082h-198z" />
<glyph unicode="&#xfb04;" horiz-adv-x="1930" d="M56 936v146h169v137q0 173 90.5 267.5t252.5 94.5q34 0 68.5 -5.5t76.5 -15.5l-24 -150q-18 4 -43.5 7t-53.5 3q-86 0 -128 -51.5t-42 -149.5v-137h225v-146h-225v-936h-197v936h-169zM763 936v146h169v137q0 173 90.5 267.5t252.5 94.5q34 0 68.5 -5.5t76.5 -15.5 l-24 -150q-18 4 -43.5 7t-53.5 3q-86 0 -128 -51.5t-42 -149.5v-137h225v-146h-225v-936h-197v936h-169zM1573 0v1560h197v-1560h-197z" />
<hkern u1="&#x22;" u2="w" k="-11" />
<hkern u1="&#x27;" u2="w" k="-11" />
<hkern u1="&#x28;" u2="&#x178;" k="-22" />
<hkern u1="&#x28;" u2="&#xdd;" k="-22" />
<hkern u1="&#x28;" u2="Y" k="-22" />
<hkern u1="&#x28;" u2="W" k="-37" />
<hkern u1="&#x28;" u2="V" k="-20" />
<hkern u1="A" u2="w" k="33" />
<hkern u1="A" u2="t" k="17" />
<hkern u1="A" u2="&#x3f;" k="80" />
<hkern u1="C" u2="&#x7d;" k="17" />
<hkern u1="C" u2="]" k="12" />
<hkern u1="C" u2="&#x29;" k="26" />
<hkern u1="D" u2="&#xc6;" k="33" />
<hkern u1="E" u2="w" k="22" />
<hkern u1="E" u2="f" k="18" />
<hkern u1="F" u2="&#x2026;" k="273" />
<hkern u1="F" u2="&#x201e;" k="273" />
<hkern u1="F" u2="&#x201a;" k="273" />
<hkern u1="F" u2="&#x153;" k="21" />
<hkern u1="F" u2="&#xff;" k="24" />
<hkern u1="F" u2="&#xfd;" k="24" />
<hkern u1="F" u2="&#xfc;" k="22" />
<hkern u1="F" u2="&#xfb;" k="22" />
<hkern u1="F" u2="&#xfa;" k="22" />
<hkern u1="F" u2="&#xf9;" k="22" />
<hkern u1="F" u2="&#xf6;" k="21" />
<hkern u1="F" u2="&#xf5;" k="21" />
<hkern u1="F" u2="&#xf4;" k="21" />
<hkern u1="F" u2="&#xf3;" k="21" />
<hkern u1="F" u2="&#xf2;" k="21" />
<hkern u1="F" u2="&#xeb;" k="21" />
<hkern u1="F" u2="&#xea;" k="21" />
<hkern u1="F" u2="&#xe9;" k="21" />
<hkern u1="F" u2="&#xe8;" k="21" />
<hkern u1="F" u2="&#xe7;" k="21" />
<hkern u1="F" u2="&#xe5;" k="34" />
<hkern u1="F" u2="&#xe4;" k="34" />
<hkern u1="F" u2="&#xe3;" k="34" />
<hkern u1="F" u2="&#xe2;" k="34" />
<hkern u1="F" u2="&#xe1;" k="34" />
<hkern u1="F" u2="&#xe0;" k="34" />
<hkern u1="F" u2="&#xc5;" k="59" />
<hkern u1="F" u2="&#xc4;" k="59" />
<hkern u1="F" u2="&#xc3;" k="59" />
<hkern u1="F" u2="&#xc2;" k="59" />
<hkern u1="F" u2="&#xc1;" k="59" />
<hkern u1="F" u2="&#xc0;" k="59" />
<hkern u1="F" u2="y" k="24" />
<hkern u1="F" u2="v" k="24" />
<hkern u1="F" u2="u" k="22" />
<hkern u1="F" u2="r" k="26" />
<hkern u1="F" u2="q" k="21" />
<hkern u1="F" u2="o" k="21" />
<hkern u1="F" u2="g" k="21" />
<hkern u1="F" u2="e" k="21" />
<hkern u1="F" u2="d" k="21" />
<hkern u1="F" u2="c" k="21" />
<hkern u1="F" u2="a" k="34" />
<hkern u1="F" u2="T" k="-20" />
<hkern u1="F" u2="A" k="59" />
<hkern u1="F" u2="&#x3a;" k="273" />
<hkern u1="F" u2="&#x2e;" k="273" />
<hkern u1="F" u2="&#x2c;" k="273" />
<hkern u1="K" u2="w" k="63" />
<hkern u1="L" u2="w" k="52" />
<hkern u1="O" u2="&#xc6;" k="33" />
<hkern u1="P" u2="&#xc6;" k="293" />
<hkern u1="P" u2="t" k="-14" />
<hkern u1="Q" u2="&#x178;" k="35" />
<hkern u1="Q" u2="&#xdd;" k="35" />
<hkern u1="Q" u2="Y" k="35" />
<hkern u1="Q" u2="W" k="20" />
<hkern u1="Q" u2="V" k="28" />
<hkern u1="Q" u2="T" k="33" />
<hkern u1="R" u2="&#x178;" k="48" />
<hkern u1="R" u2="&#xdd;" k="48" />
<hkern u1="R" u2="Y" k="48" />
<hkern u1="R" u2="V" k="19" />
<hkern u1="R" u2="T" k="50" />
<hkern u1="T" u2="&#xf8;" k="95" />
<hkern u1="T" u2="&#xe6;" k="84" />
<hkern u1="T" u2="&#xc6;" k="188" />
<hkern u1="T" u2="&#xbb;" k="147" />
<hkern u1="T" u2="&#xab;" k="151" />
<hkern u1="T" u2="w" k="47" />
<hkern u1="T" u2="r" k="65" />
<hkern u1="V" u2="&#x7d;" k="-19" />
<hkern u1="V" u2="r" k="30" />
<hkern u1="V" u2="]" k="-17" />
<hkern u1="V" u2="&#x29;" k="-20" />
<hkern u1="W" u2="&#x7d;" k="-14" />
<hkern u1="W" u2="r" k="21" />
<hkern u1="W" u2="]" k="-12" />
<hkern u1="W" u2="&#x29;" k="-15" />
<hkern u1="Y" u2="&#x2022;" k="45" />
<hkern u1="Y" u2="&#xf8;" k="64" />
<hkern u1="Y" u2="&#xe6;" k="63" />
<hkern u1="Y" u2="&#xc6;" k="96" />
<hkern u1="Y" u2="&#xbb;" k="51" />
<hkern u1="Y" u2="&#xab;" k="82" />
<hkern u1="Y" u2="&#x7d;" k="-19" />
<hkern u1="Y" u2="t" k="22" />
<hkern u1="Y" u2="r" k="40" />
<hkern u1="Y" u2="f" k="22" />
<hkern u1="Y" u2="]" k="-18" />
<hkern u1="Y" u2="&#x2a;" k="49" />
<hkern u1="Y" u2="&#x29;" k="-20" />
<hkern u1="Y" u2="&#x26;" k="30" />
<hkern u1="Z" u2="w" k="27" />
<hkern u1="[" u2="&#xdc;" k="18" />
<hkern u1="[" u2="&#xdb;" k="18" />
<hkern u1="[" u2="&#xda;" k="18" />
<hkern u1="[" u2="&#xd9;" k="18" />
<hkern u1="[" u2="U" k="18" />
<hkern u1="[" u2="J" k="18" />
<hkern u1="f" u2="&#x201d;" k="-16" />
<hkern u1="f" u2="&#x201c;" k="-16" />
<hkern u1="f" u2="&#x2019;" k="-16" />
<hkern u1="f" u2="&#x2018;" k="-16" />
<hkern u1="f" u2="&#x153;" k="24" />
<hkern u1="f" u2="&#xeb;" k="24" />
<hkern u1="f" u2="&#xea;" k="24" />
<hkern u1="f" u2="&#xe9;" k="24" />
<hkern u1="f" u2="&#xe8;" k="24" />
<hkern u1="f" u2="&#xe7;" k="24" />
<hkern u1="f" u2="&#x7d;" k="-19" />
<hkern u1="f" u2="q" k="24" />
<hkern u1="f" u2="g" k="24" />
<hkern u1="f" u2="e" k="24" />
<hkern u1="f" u2="d" k="24" />
<hkern u1="f" u2="c" k="24" />
<hkern u1="f" u2="]" k="-18" />
<hkern u1="f" u2="&#x29;" k="-20" />
<hkern u1="f" u2="&#x27;" k="-16" />
<hkern u1="f" u2="&#x22;" k="-16" />
<hkern u1="k" u2="&#x153;" k="20" />
<hkern u1="k" u2="&#xeb;" k="20" />
<hkern u1="k" u2="&#xea;" k="20" />
<hkern u1="k" u2="&#xe9;" k="20" />
<hkern u1="k" u2="&#xe8;" k="20" />
<hkern u1="k" u2="&#xe7;" k="20" />
<hkern u1="k" u2="q" k="20" />
<hkern u1="k" u2="g" k="20" />
<hkern u1="k" u2="e" k="20" />
<hkern u1="k" u2="d" k="20" />
<hkern u1="k" u2="c" k="20" />
<hkern u1="r" u2="w" k="-17" />
<hkern u1="r" u2="t" k="-17" />
<hkern u1="r" u2="f" k="-15" />
<hkern u1="v" u2="f" k="-13" />
<hkern u1="w" u2="&#x2026;" k="124" />
<hkern u1="w" u2="&#x201e;" k="124" />
<hkern u1="w" u2="&#x201a;" k="124" />
<hkern u1="w" u2="&#x3a;" k="124" />
<hkern u1="w" u2="&#x2e;" k="124" />
<hkern u1="w" u2="&#x2c;" k="124" />
<hkern u1="y" u2="f" k="-13" />
<hkern u1="&#x7b;" u2="&#xdc;" k="20" />
<hkern u1="&#x7b;" u2="&#xdb;" k="20" />
<hkern u1="&#x7b;" u2="&#xda;" k="20" />
<hkern u1="&#x7b;" u2="&#xd9;" k="20" />
<hkern u1="&#x7b;" u2="U" k="20" />
<hkern u1="&#x7b;" u2="J" k="20" />
<hkern u1="&#xc0;" u2="w" k="33" />
<hkern u1="&#xc0;" u2="t" k="17" />
<hkern u1="&#xc0;" u2="&#x3f;" k="80" />
<hkern u1="&#xc1;" u2="w" k="33" />
<hkern u1="&#xc1;" u2="t" k="17" />
<hkern u1="&#xc1;" u2="&#x3f;" k="80" />
<hkern u1="&#xc2;" u2="w" k="33" />
<hkern u1="&#xc2;" u2="t" k="17" />
<hkern u1="&#xc2;" u2="&#x3f;" k="80" />
<hkern u1="&#xc3;" u2="w" k="33" />
<hkern u1="&#xc3;" u2="t" k="17" />
<hkern u1="&#xc3;" u2="&#x3f;" k="80" />
<hkern u1="&#xc4;" u2="w" k="33" />
<hkern u1="&#xc4;" u2="t" k="17" />
<hkern u1="&#xc4;" u2="&#x3f;" k="80" />
<hkern u1="&#xc5;" u2="w" k="33" />
<hkern u1="&#xc5;" u2="t" k="17" />
<hkern u1="&#xc5;" u2="&#x3f;" k="80" />
<hkern u1="&#xc7;" u2="&#x7d;" k="17" />
<hkern u1="&#xc7;" u2="]" k="12" />
<hkern u1="&#xc7;" u2="&#x29;" k="26" />
<hkern u1="&#xc8;" u2="w" k="22" />
<hkern u1="&#xc8;" u2="f" k="18" />
<hkern u1="&#xc9;" u2="w" k="22" />
<hkern u1="&#xc9;" u2="f" k="18" />
<hkern u1="&#xca;" u2="w" k="22" />
<hkern u1="&#xca;" u2="f" k="18" />
<hkern u1="&#xcb;" u2="w" k="22" />
<hkern u1="&#xcb;" u2="f" k="18" />
<hkern u1="&#xd0;" u2="&#xc6;" k="33" />
<hkern u1="&#xd2;" u2="&#xc6;" k="33" />
<hkern u1="&#xd3;" u2="&#xc6;" k="33" />
<hkern u1="&#xd4;" u2="&#xc6;" k="33" />
<hkern u1="&#xd5;" u2="&#xc6;" k="33" />
<hkern u1="&#xd6;" u2="&#xc6;" k="33" />
<hkern u1="&#xdd;" u2="&#x2022;" k="45" />
<hkern u1="&#xdd;" u2="&#xf8;" k="64" />
<hkern u1="&#xdd;" u2="&#xe6;" k="63" />
<hkern u1="&#xdd;" u2="&#xc6;" k="96" />
<hkern u1="&#xdd;" u2="&#xbb;" k="51" />
<hkern u1="&#xdd;" u2="&#xab;" k="82" />
<hkern u1="&#xdd;" u2="&#x7d;" k="-19" />
<hkern u1="&#xdd;" u2="t" k="22" />
<hkern u1="&#xdd;" u2="r" k="40" />
<hkern u1="&#xdd;" u2="f" k="22" />
<hkern u1="&#xdd;" u2="]" k="-18" />
<hkern u1="&#xdd;" u2="&#x2a;" k="49" />
<hkern u1="&#xdd;" u2="&#x29;" k="-20" />
<hkern u1="&#xdd;" u2="&#x26;" k="30" />
<hkern u1="&#xfd;" u2="f" k="-13" />
<hkern u1="&#xff;" u2="f" k="-13" />
<hkern u1="&#x178;" u2="&#x2022;" k="45" />
<hkern u1="&#x178;" u2="&#xf8;" k="64" />
<hkern u1="&#x178;" u2="&#xe6;" k="63" />
<hkern u1="&#x178;" u2="&#xc6;" k="96" />
<hkern u1="&#x178;" u2="&#xbb;" k="51" />
<hkern u1="&#x178;" u2="&#xab;" k="82" />
<hkern u1="&#x178;" u2="&#x7d;" k="-19" />
<hkern u1="&#x178;" u2="t" k="22" />
<hkern u1="&#x178;" u2="r" k="40" />
<hkern u1="&#x178;" u2="f" k="22" />
<hkern u1="&#x178;" u2="]" k="-18" />
<hkern u1="&#x178;" u2="&#x2a;" k="49" />
<hkern u1="&#x178;" u2="&#x29;" k="-20" />
<hkern u1="&#x178;" u2="&#x26;" k="30" />
<hkern u1="&#x2018;" u2="w" k="-11" />
<hkern u1="&#x2019;" u2="w" k="-11" />
<hkern u1="&#x201c;" u2="w" k="-11" />
<hkern u1="&#x201d;" u2="w" k="-11" />
<hkern g1="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="282" />
<hkern g1="B" g2="T" k="27" />
<hkern g1="B" g2="V" k="24" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" />
<hkern g1="C,Ccedilla" g2="T" k="29" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="27" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="121" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" />
<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" />
<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" />
<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" />
<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="162" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" />
<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="255" />
<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" />
<hkern g1="L" g2="T" k="206" />
<hkern g1="L" g2="V" k="205" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="278" />
<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" />
<hkern g1="L" g2="v,y,yacute,ydieresis" k="123" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="24" />
<hkern g1="L" g2="W" k="93" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="177" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" />
<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" />
<hkern g1="P" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="402" />
<hkern g1="P" g2="X" k="50" />
<hkern g1="P" g2="Z" k="35" />
<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="108" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="83" />
<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="89" />
<hkern g1="T" g2="m,n,p,ntilde" k="89" />
<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="79" />
<hkern g1="T" g2="s" k="76" />
<hkern g1="T" g2="T" k="-16" />
<hkern g1="T" g2="V" k="-16" />
<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" />
<hkern g1="T" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="257" />
<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="65" />
<hkern g1="T" g2="v,y,yacute,ydieresis" k="81" />
<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="271" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" />
<hkern g1="T" g2="W" k="-15" />
<hkern g1="T" g2="S" k="16" />
<hkern g1="T" g2="x" k="77" />
<hkern g1="T" g2="z" k="60" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" />
<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" />
<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" />
<hkern g1="V" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="215" />
<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" />
<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="154" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" />
<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" />
<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" />
<hkern g1="W" g2="T" k="-14" />
<hkern g1="W" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="142" />
<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" />
<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="X" g2="V" k="-14" />
<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" />
<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" />
<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="153" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="148" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="63" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" />
<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" />
<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="230" />
<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" />
<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="150" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" />
<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" />
<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" />
<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" />
<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" />
<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" />
<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="17" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" />
<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="b,p,thorn" g2="x" k="15" />
<hkern g1="b,p,thorn" g2="z" k="15" />
<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" />
<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="20" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" />
<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" />
<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="r" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="172" />
<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" />
<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" />
<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="165" />
<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" />
<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="39" />
<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" />
<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,631 @@
<?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="robotothin" horiz-adv-x="1121" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="490" />
<glyph unicode="&#xfb01;" horiz-adv-x="1067" d="M66 1027v55h188v158q0 163 85.5 252t237.5 89q67 0 135 -13.5t133 -43.5l-8 -52q-66 29 -121.5 42t-137.5 13q-126 0 -198 -76t-72 -211v-158h286v-55h-286v-1027h-54v1027h-188zM830 0v1082h54v-1082h-54z" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="490" />
<glyph horiz-adv-x="0" />
<glyph unicode="&#x9;" horiz-adv-x="0" />
<glyph unicode=" " horiz-adv-x="490" />
<glyph unicode="&#x09;" horiz-adv-x="490" />
<glyph unicode="&#xa0;" horiz-adv-x="490" />
<glyph unicode="!" horiz-adv-x="397" d="M147 0v134h95v-134h-95zM167 478v978h54v-978h-54z" />
<glyph unicode="&#x22;" horiz-adv-x="521" d="M120 1122l45 268v170h55v-167l-50 -271h-50zM301 1122l46 268v170h54v-167l-50 -271h-50z" />
<glyph unicode="#" horiz-adv-x="1265" d="M65 410v52h281l95 524h-300v54h310l75 416h56l-76 -416h365l76 416h56l-76 -416h254v-54h-264l-96 -524h285v-52h-294l-75 -410h-56l75 410h-364l-74 -410h-56l74 410h-271zM402 462h363l96 524h-365z" />
<glyph unicode="$" d="M127 403l2 6h46q0 -199 121.5 -288t289.5 -89q163 0 262 92t99 220q0 130 -79 205.5t-292 152.5q-215 71 -311.5 156t-96.5 252q0 160 104.5 259.5t281.5 106.5v187h55v-187q181 -10 281.5 -120.5t97.5 -303.5l-2 -5h-47q0 166 -95 271.5t-265 105.5q-174 0 -265.5 -91.5 t-91.5 -220.5q0 -131 73.5 -208t297.5 -150q210 -73 309 -158t99 -250q0 -161 -104 -258.5t-277 -107.5v-188h-55v187q-189 6 -316 108t-122 316z" />
<glyph unicode="%" horiz-adv-x="1527" d="M114 1099v77q0 126 76 213.5t196 87.5q119 0 195 -87.5t76 -213.5v-77q0 -126 -75.5 -212.5t-193.5 -86.5q-122 0 -198 86.5t-76 212.5zM169 1099q0 -100 56.5 -172t162.5 -72q102 0 158 72t56 172v77q0 100 -56.5 173t-159.5 73t-160 -73.5t-57 -172.5v-77zM417 162 l711 1138l45 -31l-711 -1138zM870 279v78q0 125 75.5 212.5t195.5 87.5t196 -87t76 -213v-78q0 -126 -75.5 -213t-194.5 -87q-121 0 -197 87t-76 213zM925 279q0 -101 56 -173t162 -72q103 0 159 72t56 173v78q0 106 -56 175.5t-161 69.5q-103 0 -159.5 -70t-56.5 -175v-78z " />
<glyph unicode="&#x26;" horiz-adv-x="1247" d="M115 352q0 114 67.5 211t188.5 199l51 41q-82 103 -121 188t-39 176q0 149 81.5 229.5t223.5 80.5q132 0 204 -72t72 -190q0 -84 -38.5 -142.5t-108.5 -114.5l-202 -161l475 -540q54 76 84.5 171t30.5 204h55q0 -125 -35 -227.5t-98 -188.5l185 -211l-2 -5h-60l-157 177 l-8 -8t-4 -5q-90 -89 -188.5 -137t-222.5 -48q-202 0 -318 100.5t-116 272.5zM169 352q0 -134 98 -226.5t282 -92.5q110 0 211 47.5t177 135.5l-449 509q-8 8 -15.5 17t-18.5 22l-52 -41q-137 -118 -185 -205.5t-48 -165.5zM317 1169q0 -79 35 -163t110 -172l209 166 q60 50 88 103.5t28 111.5q0 94 -56.5 151t-163.5 57q-120 0 -185 -72.5t-65 -181.5z" />
<glyph unicode="'" horiz-adv-x="340" d="M120 1122l45 267v171h55v-169l-50 -269h-50z" />
<glyph unicode="(" horiz-adv-x="607" d="M148 566v20q0 338 120.5 632.5t290.5 397.5h6l16 -36q-153 -101 -266 -387.5t-113 -602.5v-26q0 -317 113 -603.5t266 -387.5l-16 -36h-6q-172 105 -291.5 390.5t-119.5 638.5z" />
<glyph unicode=")" horiz-adv-x="623" d="M28 -427q152 101 265.5 387.5t113.5 603.5v26q0 316 -113.5 602.5t-265.5 387.5l16 36h6q169 -103 290 -397.5t121 -632.5v-20q0 -353 -120 -638.5t-291 -390.5h-6z" />
<glyph unicode="*" horiz-adv-x="856" d="M30 1141l18 54l362 -133l1 394h56l-7 -395l352 143l20 -53l-360 -137l249 -317l-47 -33l-242 322l-228 -325l-45 32l234 324z" />
<glyph unicode="+" horiz-adv-x="1151" d="M73 649v53h462v504h55v-504h481v-53h-481v-503h-55v503h-462z" />
<glyph unicode="," horiz-adv-x="383" d="M114 -258l67 246v171h54v-167l-70 -250h-51z" />
<glyph unicode="-" horiz-adv-x="607" d="M61 599v54h470v-54h-470z" />
<glyph unicode="." horiz-adv-x="439" d="M173 0v130h86v-130h-86z" />
<glyph unicode="/" horiz-adv-x="782" d="M42 -125l608 1581h59l-608 -1581h-59z" />
<glyph unicode="0" horiz-adv-x="1167" d="M140 574v308q0 284 116 439.5t327 155.5t327.5 -155.5t116.5 -439.5v-308q0 -285 -115.5 -440t-326.5 -155t-328 155.5t-117 439.5zM194 576q0 -252 100.5 -397.5t290.5 -145.5q189 0 288.5 145t99.5 398v306q0 254 -100 397.5t-290 143.5t-289.5 -143.5t-99.5 -397.5 v-306z" />
<glyph unicode="1" d="M207 1334v46l452 84v-1477h-54v1425z" />
<glyph unicode="2" d="M123 1052q-5 177 111.5 301t311.5 124q181 0 290.5 -102.5t109.5 -288.5q0 -121 -78.5 -247t-221.5 -293l-417 -487l2 -5h793v-54h-871v54l477 550q136 157 198.5 271t62.5 211q0 159 -88 248t-257 89q-179 0 -277 -105t-98 -272h-46z" />
<glyph unicode="3" d="M109 399l2 6h46q0 -162 118.5 -267t297.5 -105q180 0 280 92.5t100 256.5q0 170 -114.5 251.5t-310.5 81.5h-111v56h111q183 0 288 91t105 224q0 147 -90.5 242t-266.5 95q-162 0 -269 -95t-107 -253h-46l-2 6q-5 177 118.5 286.5t305.5 109.5q188 0 299.5 -106.5 t111.5 -288.5q0 -115 -72.5 -206t-195.5 -131q142 -35 221 -127t79 -232q0 -190 -121 -298.5t-313 -108.5q-185 0 -327 109.5t-137 310.5z" />
<glyph unicode="4" d="M82 397v30l695 1029h65v-1005h252v-54h-252v-397h-54v397h-706zM166 451h622v929l-6 2l-78 -129z" />
<glyph unicode="5" d="M188 377l2 6h47q0 -172 96 -261t261 -89q194 0 284.5 107t90.5 322q0 184 -90.5 290t-253.5 106q-160 0 -251.5 -53.5t-131.5 -158.5l-41 16l78 794h690v-53h-641l-61 -618q63 63 137.5 95t219.5 36q174 5 287 -119t113 -333q0 -223 -105 -354t-325 -131 q-177 0 -294 100.5t-112 297.5z" />
<glyph unicode="6" d="M170 512v448q0 227 131.5 372t321.5 145q76 0 148.5 -16.5t136.5 -53.5l-21 -51q-66 38 -122.5 52.5t-141.5 14.5q-167 0 -283 -127t-116 -335v-255q47 109 150.5 180t239.5 71q197 0 309 -136t112 -361q0 -207 -121.5 -344t-309.5 -137q-190 0 -312 145.5t-122 387.5z M224 513q0 -216 106 -348.5t274 -132.5q167 0 272 126t105 302q0 202 -96 322.5t-278 120.5q-153 0 -267.5 -102.5t-114.5 -244.5h-1v-43z" />
<glyph unicode="7" d="M77 1402v54h930v-54q-215 -250 -365.5 -570.5t-195.5 -740.5l-6 -91h-54l6 91q43 394 183.5 719t366.5 592h-865z" />
<glyph unicode="8" d="M98 379q0 133 84.5 231t224.5 135q-122 37 -195 127.5t-73 213.5q0 184 118.5 287.5t303.5 103.5q183 0 303 -104t120 -287q0 -122 -74.5 -213t-195.5 -128q139 -38 225.5 -136t86.5 -230q0 -192 -130.5 -296t-332.5 -104q-206 0 -335.5 104t-129.5 296zM152 374 q0 -161 115 -251t296 -90q176 0 292 90.5t116 250.5q0 154 -118 249t-292 95q-177 0 -293 -95t-116 -249zM193 1091q0 -146 104 -232.5t266 -86.5q157 0 262 87t105 232q0 143 -107 237.5t-262 94.5q-161 0 -264.5 -90.5t-103.5 -241.5z" />
<glyph unicode="9" d="M95 978q0 207 123 353t313 146q196 0 319 -133t123 -381v-503q0 -224 -126.5 -352.5t-334.5 -128.5q-78 0 -156 16t-157 47l16 57q75 -34 143 -50t154 -16q185 0 292 113t107 312v283q-56 -109 -158.5 -171t-229.5 -62q-188 0 -308 137.5t-120 332.5zM157 978 q0 -170 100 -293.5t266 -123.5q148 0 248 85.5t140 204.5v111q0 222 -104.5 341.5t-271.5 119.5q-168 0 -273 -134t-105 -311z" />
<glyph unicode=":" horiz-adv-x="364" d="M146 0v130h86v-130h-86zM146 949v130h86v-130h-86z" />
<glyph unicode=";" horiz-adv-x="364" d="M115 -258l67 246v171h54v-167l-70 -250h-51zM153 952v130h86v-130h-86z" />
<glyph unicode="&#x3c;" horiz-adv-x="1053" d="M82 515v50l837 378v-58l-661 -308l-119 -37v-6l119 -36l661 -303v-59z" />
<glyph unicode="=" horiz-adv-x="1142" d="M147 436v54h834v-54h-834zM147 843v54h834v-54h-834z" />
<glyph unicode="&#x3e;" horiz-adv-x="1053" d="M114 137v59l660 307l118 36v6l-118 37l-660 304v58l836 -378v-50z" />
<glyph unicode="?" horiz-adv-x="893" d="M98 1122q-2 170 96.5 262.5t253.5 92.5q164 0 258.5 -101t94.5 -266q0 -141 -62.5 -243t-190.5 -217q-69 -53 -84 -101.5t-15 -148.5h-54q1 117 20.5 165.5t104.5 126.5q121 116 174 197.5t53 222.5q0 146 -78 229t-221 83q-142 0 -220 -84.5t-81 -223.5h-46zM391 0v106 h82v-106h-82z" />
<glyph unicode="@" horiz-adv-x="1902" d="M129 478q18 427 255.5 680t616.5 253q402 0 592.5 -234t173.5 -654q-10 -219 -114 -381.5t-296 -162.5q-83 0 -135 61t-61 169q-55 -114 -139 -172t-193 -58q-136 0 -203 119t-48 318q23 250 144 401t293 151q83 0 135 -27.5t115 -82.5l-49 -565q-11 -152 36.5 -205.5 t107.5 -53.5q158 0 248.5 134.5t101.5 354.5q20 396 -154 613.5t-559 217.5q-336 0 -564.5 -239.5t-248.5 -636.5q-20 -383 174.5 -629.5t551.5 -246.5q87 0 177.5 22t152.5 58l24 -46q-62 -40 -164 -64.5t-194 -24.5q-380 0 -588 249.5t-189 681.5zM632 416 q-19 -167 31.5 -275t163.5 -108q108 0 194 66.5t144 245.5l42 486q-34 39 -82.5 60.5t-112.5 21.5q-142 0 -248 -126.5t-132 -370.5z" />
<glyph unicode="A" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82z" />
<glyph unicode="B" horiz-adv-x="1235" d="M200 0v1456h383q226 0 351 -93t125 -280q0 -130 -67 -219t-189 -111q136 -18 229 -119t93 -233q0 -191 -123.5 -296t-326.5 -105h-475zM254 54h421q184 0 290 91t106 254q0 134 -101.5 227t-284.5 93h-431v-665zM254 773h349q199 0 300 77.5t101 236.5 q0 156 -106.5 235.5t-314.5 79.5h-329v-629z" />
<glyph unicode="C" horiz-adv-x="1327" d="M144 619v218q0 286 144 463t383 177q227 0 367 -119q136 -116 136 -328v-12l-2 -6h-46q0 197 -122.5 304t-332.5 107q-213 0 -343 -161t-130 -423v-220q0 -265 130 -425.5t343 -160.5q210 0 332.5 103t122.5 310h46l2 -6v-12q0 -214 -136 -330q-140 -118 -367 -119 q-239 0 -383 176.5t-144 463.5z" />
<glyph unicode="D" horiz-adv-x="1340" d="M200 0v1456h403q251 0 426 -180t175 -459v-178q0 -280 -175 -459.5t-426 -179.5h-403zM254 54h349q227 0 387 166t160 419v181q0 250 -160 416t-387 166h-349v-1348z" />
<glyph unicode="E" horiz-adv-x="1166" d="M200 0v1456h886v-54h-832v-616h730v-54h-730v-678h832v-54h-886z" />
<glyph unicode="F" horiz-adv-x="1172" d="M200 0v1456h902v-54h-848v-630h746v-56h-746v-716h-54z" />
<glyph unicode="G" horiz-adv-x="1406" d="M168 620v238q0 274 151 446.5t393 172.5q231 0 366.5 -119.5t138.5 -308.5l-2 -6h-45q-8 169 -124.5 274.5t-333.5 105.5q-221 0 -355.5 -157.5t-134.5 -405.5v-240q0 -260 139 -423.5t368 -163.5q161 0 281.5 47t161.5 101v424h-445v55h499v-504q-46 -64 -176.5 -120.5 t-320.5 -56.5q-250 0 -405.5 178t-155.5 463z" />
<glyph unicode="H" horiz-adv-x="1438" d="M200 0v1456h54v-707h930v707h54v-1456h-54v695h-930v-695h-54z" />
<glyph unicode="I" horiz-adv-x="534" d="M240 0v1456h54v-1456h-54z" />
<glyph unicode="J" horiz-adv-x="1125" d="M96 395l2 6h46q0 -178 97 -273t280 -95q153 0 254 105t101 284v1034h54v-1034q0 -203 -114.5 -323t-294.5 -120q-200 0 -315 106q-110 102 -110 293v17z" />
<glyph unicode="K" horiz-adv-x="1300" d="M200 0v1456h54v-692h238l618 692h64l2 -5l-639 -721l685 -724l-3 -6h-63l-679 711h-223v-711h-54z" />
<glyph unicode="L" horiz-adv-x="1057" d="M200 0v1456h55v-1402h747v-54h-802z" />
<glyph unicode="M" horiz-adv-x="1756" d="M200 0v1456h77l596 -1370h6l598 1370h79v-1456h-54v1361l-6 2l-598 -1363h-43l-595 1356l-6 -2v-1354h-54z" />
<glyph unicode="N" horiz-adv-x="1449" d="M200 0v1456h55l934 -1353l6 2v1351h54v-1456h-54l-934 1356l-6 -2v-1354h-55z" />
<glyph unicode="O" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z " />
<glyph unicode="P" horiz-adv-x="1230" d="M200 0v1456h455q226 0 348 -113.5t122 -301.5q0 -190 -121.5 -303t-348.5 -113h-401v-625h-54zM254 679h401q207 0 311.5 103t104.5 257q0 158 -104 260.5t-312 102.5h-401v-723z" />
<glyph unicode="Q" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -182 -57.5 -320.5t-164.5 -218.5l254 -248l-39 -35l-262 251q-59 -34 -129.5 -51.5t-149.5 -17.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5 t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z" />
<glyph unicode="R" horiz-adv-x="1340" d="M195 -1v1456h464q230 0 354 -99.5t124 -290.5q0 -123 -78.5 -223.5t-214.5 -130.5q157 -27 225 -115t68 -225v-137q0 -68 16.5 -122t54.5 -88v-25h-53q-36 41 -54 101.5t-18 135.5v133q0 148 -101.5 231t-289.5 83h-443v-684h-54zM249 737h400q223 0 328.5 94t105.5 234 q0 163 -106.5 249.5t-317.5 86.5h-410v-664z" />
<glyph unicode="S" horiz-adv-x="1223" d="M105 404l2 6h45q0 -198 146 -287.5t337 -89.5q192 0 315.5 88t123.5 228q0 137 -100.5 219t-348.5 150q-249 67 -364.5 152.5t-115.5 249.5q0 163 136 260t347 97q213 0 348 -119q131 -116 131 -295v-11l-2 -6h-46q0 163 -120 270t-311 107q-198 0 -313.5 -88.5 t-115.5 -212.5t95.5 -206t345.5 -146q242 -64 365.5 -156.5t123.5 -262.5q0 -173 -141 -272.5t-353 -99.5q-219 1 -377 103q-153 99 -153 309v13z" />
<glyph unicode="T" horiz-adv-x="1224" d="M55 1402v54h1114v-54h-530v-1402h-54v1402h-530z" />
<glyph unicode="U" horiz-adv-x="1365" d="M185 469v987h54v-987q0 -205 124 -320.5t320 -115.5q195 0 319 115.5t124 320.5v987h54v-987q0 -238 -138 -364t-359 -126q-223 0 -360.5 126.5t-137.5 363.5z" />
<glyph unicode="V" horiz-adv-x="1223" d="M35 1456h59l489 -1314l26 -79h6l26 79l489 1314h59l-544 -1456h-66z" />
<glyph unicode="W" horiz-adv-x="1855" d="M61 1456h60l302 -1126l63 -229h6l63 229l344 1126h60l342 -1126l62 -229h6l65 229l300 1126h59l-392 -1456h-61l-361 1214l-48 145h-6l-46 -145l-364 -1214h-61z" />
<glyph unicode="X" horiz-adv-x="1223" d="M53 0l524 743l-504 713h68l469 -671l471 671h67l-503 -713l524 -743h-67l-492 701l-491 -701h-66z" />
<glyph unicode="Y" horiz-adv-x="1223" d="M36 1456h66l481 -809l26 -50l27 50l483 809h66l-547 -903v-553h-55v553z" />
<glyph unicode="Z" horiz-adv-x="1224" d="M94 0v44l929 1359h-889v53h964v-38l-930 -1364h962v-54h-1036z" />
<glyph unicode="[" horiz-adv-x="439" d="M181 -312v1976h283v-54h-229v-1868h229v-54h-283z" />
<glyph unicode="\" horiz-adv-x="774" d="M57 1456h58l608 -1581h-58z" />
<glyph unicode="]" horiz-adv-x="439" d="M-8 -258h228v1868h-228v54h283v-1976h-283v54z" />
<glyph unicode="^" horiz-adv-x="849" d="M91 729l299 727h52l299 -727h-61l-222 543l-40 114h-6l-43 -114l-219 -543h-59z" />
<glyph unicode="_" horiz-adv-x="845" d="M-1 0h846v-54h-846v54z" />
<glyph unicode="`" horiz-adv-x="537" d="M103 1471l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="a" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5v14q0 117 98 199q104 88 275 88q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5z" />
<glyph unicode="b" d="M170 0v1560h54v-671q54 99 147 156t220 57q191 0 299.5 -151.5t108.5 -408.5v-21q0 -250 -108 -396t-298 -146q-128 0 -223 51.5t-148 139.5l-7 -170h-45zM224 268q40 -107 134 -171t236 -64q171 0 260 132t89 356v21q0 225 -90 365.5t-261 140.5q-157 0 -244 -79 t-124 -194v-507z" />
<glyph unicode="c" horiz-adv-x="1039" d="M97 520v42q0 242 117 391t323 149q169 0 285 -98q113 -95 112 -266v-12l-2 -6h-46q0 159 -102 243.5t-247 84.5q-190 0 -288 -136t-98 -350v-42q0 -216 98 -351.5t290 -135.5q137 0 242 75t105 225h46l2 -6v-10q0 -151 -116 -243q-120 -94 -279 -95q-207 0 -324.5 149 t-117.5 392z" />
<glyph unicode="d" d="M122 521v21q0 257 108 408.5t300 151.5q127 0 219.5 -57t147.5 -156v671h54v-1560h-52l-2 168q-54 -87 -148.5 -138t-220.5 -51q-191 0 -298.5 146t-107.5 396zM178 521q0 -224 88.5 -356t260.5 -132q141 0 234.5 64t135.5 171v507q-39 116 -126 194.5t-242 78.5 q-172 0 -261.5 -140.5t-89.5 -365.5v-21z" />
<glyph unicode="e" horiz-adv-x="1032" d="M87 500v64q0 233 130 385.5t321 152.5q183 0 298.5 -120t115.5 -322v-83h-811v-13v-64q0 -196 115 -331.5t285 -135.5q121 0 202.5 33t139.5 99l29 -42q-64 -71 -155.5 -107.5t-215.5 -36.5q-185 0 -319.5 149.5t-134.5 371.5zM149 637l3 -6h746v33q0 165 -100 274.5 t-260 109.5q-161 0 -268 -117.5t-121 -293.5z" />
<glyph unicode="f" horiz-adv-x="645" d="M66 1027v55h188v178q0 153 74.5 237t208.5 84q33 0 65.5 -4t62.5 -13l-8 -52q-32 8 -56.5 11.5t-62.5 3.5q-108 0 -169 -71t-61 -196v-178h286v-55h-286v-1027h-54v1027h-188z" />
<glyph unicode="g" d="M121 521v21q0 257 108 408.5t300 151.5q126 0 219 -57t148 -157l8 194h46v-1088q0 -206 -108.5 -318.5t-300.5 -112.5q-79 0 -164.5 16.5t-149.5 45.5l16 54q73 -32 141 -47.5t155 -15.5q175 0 265.5 97.5t90.5 280.5v172q-55 -86 -149 -136.5t-219 -50.5 q-191 0 -298.5 146t-107.5 396zM176 521q0 -224 89 -356t261 -132q141 0 234 63.5t135 169.5v512q-40 115 -126.5 192.5t-240.5 77.5q-172 0 -262 -140.5t-90 -365.5v-21z" />
<glyph unicode="h" d="M172 0v1560h54v-706q50 118 147 183t237 65q169 0 256.5 -107t87.5 -337v-658h-55v660q0 213 -78.5 300.5t-209.5 87.5q-175 0 -268 -104.5t-117 -267.5v-676h-54z" />
<glyph unicode="i" horiz-adv-x="422" d="M185 0v1082h54v-1082h-54zM185 1422v138h54v-138h-54z" />
<glyph unicode="j" horiz-adv-x="445" d="M-157 -417l13 52q19 -6 46.5 -12t52.5 -6q110 0 170.5 77t60.5 217v1171h54v-1171q0 -167 -75 -257.5t-210 -90.5q-29 0 -55 5t-57 15zM180 1426v134h54v-134h-54z" />
<glyph unicode="k" horiz-adv-x="969" d="M172 0v1560h54v-953h127l492 475h63l2 -6l-496 -487l534 -584l-2 -5h-63l-509 553h-148v-553h-54z" />
<glyph unicode="l" horiz-adv-x="422" d="M185 0v1560h54v-1560h-54z" />
<glyph unicode="m" horiz-adv-x="1836" d="M161 0v1082h47l7 -223q49 115 141 179t224 64q140 0 227.5 -71.5t120.5 -220.5q43 138 140.5 215.5t243.5 77.5q179 0 272 -117t93 -368v-617h-55v619q0 235 -84 332t-224 97q-172 0 -260 -103.5t-110 -267.5q0 -20 1 -34.5t1 -28.5v-615h-55v619q0 236 -84 332.5 t-225 96.5q-168 0 -255 -98.5t-111 -255.5v-694h-55z" />
<glyph unicode="n" d="M172 0v1082h46l7 -223q49 116 143 179.5t232 63.5q177 0 265.5 -111.5t88.5 -353.5v-637h-54v639q0 225 -80.5 317t-218.5 92q-175 0 -264 -104.5t-111 -267.5v-676h-54z" />
<glyph unicode="o" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z " />
<glyph unicode="p" d="M170 -416v1498h42l11 -194q54 100 147 157t221 57q191 0 299.5 -151.5t108.5 -408.5v-21q0 -250 -108 -396t-298 -146q-127 0 -221.5 51t-147.5 138v-584h-54zM224 269q40 -108 134 -172t236 -64q171 0 260.5 132t89.5 356v21q0 225 -90.5 365.5t-261.5 140.5 q-157 0 -244 -79t-124 -194v-506z" />
<glyph unicode="q" d="M122 521v21q0 257 108 408.5t300 151.5q127 0 219.5 -57t147.5 -157l5 194h49v-1498h-54v584q-55 -87 -149 -138t-220 -51q-191 0 -298.5 146t-107.5 396zM178 521q0 -224 88.5 -356t260.5 -132q141 0 234.5 64t135.5 171v507q-39 116 -126 194.5t-242 78.5 q-172 0 -261.5 -140.5t-89.5 -365.5v-21z" />
<glyph unicode="r" horiz-adv-x="680" d="M172 0v1082h44l10 -188v-37q45 116 134 180.5t219 64.5q23 0 42.5 -3.5t33.5 -7.5l-6 -48l-70 6q-145 0 -235.5 -93.5t-117.5 -246.5v-709h-54z" />
<glyph unicode="s" horiz-adv-x="1019" d="M112 269l2 6h44q8 -128 110 -185t241 -57q150 0 238 70t88 162q0 86 -73.5 156.5t-256.5 110.5q-193 41 -279.5 105.5t-86.5 191.5q0 116 98 194.5t264 78.5q179 0 282 -84q98 -80 98 -207v-12l-2 -6h-46q0 106 -89.5 180.5t-242.5 74.5q-152 0 -230 -65.5t-78 -151.5 q0 -85 66 -145t262 -105q181 -42 274.5 -114.5t93.5 -202.5q0 -127 -104 -206t-276 -79q-189 1 -297 85q-101 79 -100 190v15z" />
<glyph unicode="t" horiz-adv-x="633" d="M29 1027v55h200v292h55v-292h266v-55h-266v-748q0 -133 45 -189.5t119 -56.5q27 0 48 2t58 7l10 -49q-25 -8 -52 -11t-61 -3q-109 0 -165.5 71t-56.5 229v748h-200z" />
<glyph unicode="u" d="M168 465v617h54v-619q0 -220 81 -325t219 -105q169 0 259.5 83t115.5 220v746h55v-1082h-45l-8 194q-51 -103 -145.5 -159t-229.5 -56q-167 0 -261.5 118.5t-94.5 367.5z" />
<glyph unicode="v" horiz-adv-x="978" d="M43 1082h58l334 -853l51 -146h6l52 146l333 853h58l-421 -1081l1 -1h-52z" />
<glyph unicode="w" horiz-adv-x="1550" d="M83 1082h62l221 -769l56 -222l6 -1l71 223l243 769h55l242 -769l70 -223l6 1l58 222l220 769h63l-315 -1082h-54l-267 813l-48 183h-6l-52 -183l-263 -813h-54z" />
<glyph unicode="x" horiz-adv-x="978" d="M55 0l400 555l-380 527h68l346 -480l345 480h68l-380 -527l400 -555h-67l-367 508l-366 -508h-67z" />
<glyph unicode="y" horiz-adv-x="978" d="M43 1082h59l356 -886l40 -108h6l6 16l374 978h60l-481 -1262q-44 -114 -102.5 -185.5t-186.5 -71.5q-19 0 -42 3.5t-34 7.5l9 51q11 -3 33 -6t34 -3q92 0 143.5 54t91.5 160l65 176z" />
<glyph unicode="z" horiz-adv-x="978" d="M87 0v44l711 983h-680v55h753v-48l-711 -980h770v-54h-843z" />
<glyph unicode="{" horiz-adv-x="660" d="M73 543v66q128 0 189 72t61 204v247q0 171 73 290.5t246 174.5l15 -45q-143 -46 -211.5 -155.5t-68.5 -264.5v-247q0 -120 -52 -202t-159 -107q107 -26 159 -109t52 -202v-245q0 -154 70.5 -260t214.5 -155l-20 -46q-173 55 -246 173t-73 288v245q0 132 -61 205t-189 73z " />
<glyph unicode="|" horiz-adv-x="406" d="M181 -270v1726h54v-1726h-54z" />
<glyph unicode="}" horiz-adv-x="660" d="M0 -395q143 49 213.5 155t70.5 260v245q0 119 51.5 202t159.5 109q-108 25 -159.5 107t-51.5 202v247q0 155 -68.5 264.5t-210.5 155.5l14 45q172 -55 245.5 -174.5t73.5 -290.5v-247q0 -132 61 -204t189 -72v-66q-128 0 -189 -73.5t-61 -204.5v-245q0 -171 -73 -288.5 t-246 -172.5z" />
<glyph unicode="~" horiz-adv-x="1412" d="M156 474q0 128 73.5 214t188.5 86q86 0 158.5 -39.5t164.5 -120.5q67 -62 125 -90t121 -28q86 0 144.5 70.5t58.5 186.5l61 -13q0 -121 -75.5 -209t-188.5 -88q-87 0 -158.5 38t-162.5 121q-68 59 -127.5 88.5t-120.5 29.5q-89 0 -146 -68t-57 -190z" />
<glyph unicode="&#xa1;" horiz-adv-x="406" d="M147 918v164h95v-164h-95zM167 -374v978h54v-978h-54z" />
<glyph unicode="&#xa2;" horiz-adv-x="1110" d="M134 520v42q0 234 110 381.5t305 157.5v217h55v-217q158 -10 264.5 -107.5t103.5 -267.5l-3 -6h-46q0 159 -102 243.5t-247 84.5q-190 0 -288 -136t-98 -350v-42q0 -216 98 -351.5t290 -135.5q137 0 242 75t105 225h46l2 -6q4 -152 -106 -245t-261 -102v-225h-55v225 q-196 11 -305.5 158t-109.5 382z" />
<glyph unicode="&#xa3;" horiz-adv-x="1150" d="M65 667v54h241l-11 319q0 204 101 320.5t270 116.5q175 0 256 -102t78 -280l-2 -5h-47q0 176 -73.5 254.5t-211.5 78.5q-147 0 -232 -100t-85 -283l11 -319h478v-54h-476l8 -201q0 -125 -36 -235.5t-102 -176.5h808l1 -54h-912v54h10q89 16 133 145.5t44 266.5l-8 201 h-243z" />
<glyph unicode="&#xa4;" horiz-adv-x="1502" d="M114 13l179 182q-69 84 -106.5 189.5t-37.5 223.5q0 122 40 230.5t114 193.5l-189 193l40 39l188 -192q80 77 183.5 119.5t219.5 42.5q114 0 217.5 -43t185.5 -121l191 195l41 -40l-193 -196q72 -85 112 -193t40 -228q0 -117 -37 -221.5t-104 -187.5l182 -186l-41 -40 l-180 183q-82 -84 -188.5 -130t-225.5 -46q-120 0 -226.5 45.5t-188.5 128.5l-176 -180zM204 608q0 -238 159 -406.5t382 -168.5q221 0 380.5 168.5t159.5 406.5q0 237 -159.5 405t-380.5 168q-223 0 -382 -168t-159 -405z" />
<glyph unicode="&#xa5;" horiz-adv-x="1207" d="M58 1456h65l452 -718l24 -51h5l24 51l451 718h66l-489 -780h424v-55h-452v-240h452v-55h-452v-326h-54v326h-450v55h450v240h-450v55h421z" />
<glyph unicode="&#xa6;" horiz-adv-x="398" d="M172 -270v752h54v-752h-54zM172 698v758h54v-758h-54z" />
<glyph unicode="&#xa7;" horiz-adv-x="1223" d="M121 -69l2 5l46 2q0 -199 127 -289t304 -90q185 0 290 80.5t105 209.5q0 120 -80.5 188.5t-307.5 128.5q-245 58 -365.5 142.5t-120.5 242.5q0 108 76 179t211 92q-122 48 -182 120.5t-60 187.5q0 157 123 252t329 95q214 0 333 -111.5t115 -313.5l-2 -6h-46 q0 162 -106.5 269.5t-293.5 107.5q-197 0 -297.5 -81.5t-100.5 -208.5q0 -126 79.5 -194t316.5 -135q252 -64 365 -140.5t113 -232.5q0 -105 -82 -176t-222 -91q131 -50 195.5 -122t64.5 -191q0 -161 -122 -253.5t-328 -92.5q-205 0 -344.5 102.5t-134.5 323.5zM175 553 q0 -130 88 -195.5t361 -142.5l69 -19q161 1 254 67t93 165q0 123 -95.5 194.5t-354.5 143.5q-30 6 -57 13.5t-51 16.5q-152 -7 -229.5 -74t-77.5 -169z" />
<glyph unicode="&#xa8;" horiz-adv-x="906" d="M155 1338v118h137v-118h-137zM625 1338v118h136v-118h-136z" />
<glyph unicode="&#xa9;" horiz-adv-x="1666" d="M123 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -207.5 -533t-502.5 -217t-502.5 217t-207.5 533zM179 729q0 -290 191.5 -492.5t462.5 -202.5q269 0 461.5 202.5t192.5 492.5q0 289 -192 490.5t-462 201.5q-271 0 -462.5 -201.5t-191.5 -490.5z M506 669v119q0 172 88.5 279.5t231.5 107.5q139 0 218 -79.5t76 -227.5l-3 -6h-44q0 129 -64 194.5t-183 65.5q-123 0 -194 -95t-71 -238v-120q0 -145 70.5 -238.5t194.5 -93.5q120 0 183 63.5t63 195.5h44l3 -6q3 -150 -75.5 -229t-217.5 -79q-144 0 -232 107t-88 280z" />
<glyph unicode="&#xaa;" horiz-adv-x="898" d="M148 920q0 101 74 157t215 56h220v69q0 105 -51 163t-148 58q-114 0 -175.5 -47t-61.5 -138l-46 5l-2 6q-5 98 74.5 163t210.5 65q115 0 184.5 -71.5t69.5 -204.5v-314q0 -48 6 -92.5t20 -88.5h-58q-10 28 -15.5 58.5t-6.5 61.5q-40 -58 -106.5 -96t-154.5 -38 q-119 0 -184 61t-65 167zM202 924q0 -84 48 -130.5t148 -46.5q87 0 163 47.5t96 105.5v177h-219q-113 0 -174.5 -44t-61.5 -109z" />
<glyph unicode="&#xab;" horiz-adv-x="905" d="M145 516v19l295 370h70l-294 -380l294 -379h-70zM432 516v19l295 370h70l-294 -380l294 -379h-70z" />
<glyph unicode="&#xac;" horiz-adv-x="1101" d="M122 700v53h793v-357h-54v304h-739z" />
<glyph unicode="&#xad;" horiz-adv-x="607" d="M61 599v54h470v-54h-470z" />
<glyph unicode="&#xae;" horiz-adv-x="1674" d="M115 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -207.5 -533t-502.5 -217q-296 0 -503 217t-207 533zM170 729q0 -290 192 -492.5t463 -202.5q269 0 461.5 202.5t192.5 492.5q0 289 -192 490.5t-462 201.5q-271 0 -463 -201.5t-192 -490.5zM593 316 v850h239q143 0 216 -61t73 -179q0 -73 -40 -125t-113 -81q70 -22 101 -75.5t31 -129.5v-56q0 -38 4 -71.5t13 -55.5v-16h-59q-10 21 -12 61.5t-2 82.5v54q0 94 -42 134t-142 40h-212v-372h-55zM648 744h205q91 0 152 48t61 135q0 96 -52.5 140t-181.5 44h-184v-367z" />
<glyph unicode="&#xaf;" horiz-adv-x="811" d="M92 1403v53h627v-53h-627z" />
<glyph unicode="&#xb0;" horiz-adv-x="783" d="M156 1237q0 98 69 169t167 71q95 0 163.5 -71t68.5 -169q0 -100 -68.5 -168.5t-163.5 -68.5q-98 0 -167 68.5t-69 168.5zM211 1237q0 -79 51.5 -130t129.5 -51q76 0 126 51t50 130q0 80 -50 132.5t-126 52.5q-78 0 -129.5 -53t-51.5 -132z" />
<glyph unicode="&#xb1;" horiz-adv-x="1077" d="M72 751v54h443v462h54v-462h419v-54h-419v-462h-54v462h-443zM240 88v54h835v-54h-835z" />
<glyph unicode="&#xb2;" horiz-adv-x="807" d="M114 667v55l327 300q83 80 114.5 131t31.5 102q0 78 -48 123.5t-144 45.5q-104 0 -160 -51t-56 -131h-48l-3 6q-5 95 69 163t198 68q115 0 181.5 -57.5t66.5 -167.5q0 -70 -49.5 -136.5t-140.5 -154.5l-265 -235l2 -6h475v-55h-551z" />
<glyph unicode="&#xb3;" horiz-adv-x="831" d="M129 882l2 6h48q0 -78 62.5 -128t163.5 -50q106 0 164 45.5t58 125.5q0 86 -55.5 126t-165.5 40h-114v56h114q107 0 157.5 40.5t50.5 116.5q0 73 -52.5 118t-156.5 45q-92 0 -153 -45.5t-61 -119.5h-46l-2 6q-6 94 71 154t191 60q122 0 193 -57.5t71 -163.5 q0 -61 -36 -109t-101 -72q74 -21 112.5 -69.5t38.5 -123.5q0 -107 -77.5 -167.5t-200.5 -60.5q-115 0 -198 58.5t-78 168.5z" />
<glyph unicode="&#xb4;" horiz-adv-x="511" d="M109 1217l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xb5;" d="M171 -416v1498h52v-642q0 -223 85 -315t221 -92q184 0 268 93t102 263v693h54v-577h2q0 -16 -0.5 -30.5t-1.5 -36.5v-438h-41l-11 205q-48 -109 -138 -167.5t-225 -58.5q-103 0 -185.5 45t-129.5 147v-587h-52z" />
<glyph unicode="&#xb6;" horiz-adv-x="946" d="M99 988q0 207 129.5 337.5t362.5 130.5h179v-1456h-54v520h-125q-234 0 -363 129.5t-129 338.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="472" d="M171 624v152h118v-152h-118z" />
<glyph unicode="&#xb8;" horiz-adv-x="490" d="M81 -386q104 0 180.5 36t76.5 105q0 64 -45.5 89t-163.5 35l25 121h53l-11 -76q91 -7 144 -45.5t53 -123.5q0 -87 -79 -138.5t-226 -51.5z" />
<glyph unicode="&#xb9;" horiz-adv-x="471" d="M79 1398v56l220 23v-812h-54v747z" />
<glyph unicode="&#xba;" horiz-adv-x="914" d="M148 1025v117q0 148 82 241.5t222 93.5t222.5 -93.5t82.5 -241.5v-117q0 -149 -82 -241.5t-221 -92.5q-141 0 -223.5 92.5t-82.5 241.5zM202 1025q0 -125 63 -202.5t189 -77.5q120 0 185 78.5t65 201.5v117q0 122 -65 201.5t-187 79.5q-121 0 -185.5 -79.5t-64.5 -201.5 v-117z" />
<glyph unicode="&#xbb;" horiz-adv-x="897" d="M128 171l293 379l-293 390h70l294 -380v-19l-294 -370h-70zM418 171l293 379l-293 390h70l294 -380v-19l-294 -370h-70z" />
<glyph unicode="&#xbc;" horiz-adv-x="1533" d="M141 1397v56l220 23v-812h-54v747zM316 170l711 1138l45 -31l-711 -1138zM760 186v36l435 579h62v-560h176v-55h-176v-186h-55v186h-442zM843 241h359v481l-6 2l-36 -60z" />
<glyph unicode="&#xbd;" horiz-adv-x="1447" d="M141 1397v56l220 23v-812h-54v747zM328 170l711 1138l45 -31l-711 -1138zM895 0v55l327 300q83 80 114.5 131t31.5 102q0 78 -48 123.5t-144 45.5q-104 0 -160 -51t-56 -131h-48l-3 6q-5 95 69 163t198 68q115 0 181.5 -57.5t66.5 -167.5q0 -70 -49.5 -136.5 t-140.5 -154.5l-265 -235l2 -6h475v-55h-551z" />
<glyph unicode="&#xbe;" horiz-adv-x="1653" d="M161 883l2 6h48q0 -78 62.5 -128t163.5 -50q106 0 164 45.5t58 125.5q0 86 -55.5 126t-165.5 40h-114v56h114q107 0 157.5 40.5t50.5 116.5q0 73 -52.5 118t-156.5 45q-92 0 -153 -45.5t-61 -119.5h-46l-2 6q-6 94 71 154t191 60q122 0 193 -57.5t71 -163.5 q0 -61 -36 -109t-101 -72q74 -21 112.5 -69.5t38.5 -123.5q0 -107 -77.5 -167.5t-200.5 -60.5q-115 0 -198 58.5t-78 168.5zM543 170l711 1138l45 -31l-711 -1138zM985 186v36l435 579h62v-560h176v-55h-176v-186h-55v186h-442zM1068 241h359v481l-6 2l-36 -60z" />
<glyph unicode="&#xbf;" horiz-adv-x="912" d="M104 -27q0 140 62 242t191 218q68 52 83.5 100.5t15.5 149.5h54q-2 -118 -21.5 -166.5t-103.5 -125.5q-122 -117 -174.5 -198.5t-52.5 -221.5q0 -146 77.5 -229t221.5 -83q141 0 219 84.5t82 223.5h46l3 -6q1 -170 -97.5 -262.5t-252.5 -92.5q-165 0 -259 101t-94 266z M432 977v106h82v-106h-82z" />
<glyph unicode="&#xc0;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82zM355 1823l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xc1;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82zM555 1561l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xc2;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82zM362 1601v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xc3;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM270 1615q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98zM275 489h672l-305 820l-28 82 h-6l-27 -82z" />
<glyph unicode="&#xc4;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82zM317 1673v118h137v-118h-137zM787 1673v118h136v-118h-136z" />
<glyph unicode="&#xc5;" horiz-adv-x="1223" d="M34 0l544 1456h66l545 -1456h-59l-163 435h-712l-162 -435h-59zM275 489h672l-305 820l-28 82h-6l-27 -82zM474 1726q0 56 40 97.5t96 41.5q54 0 93.5 -41t39.5 -98t-39 -96t-94 -39q-56 0 -96 39t-40 96zM531 1726q0 -34 23 -56.5t56 -22.5q32 0 54 22t22 57t-22 58.5 t-54 23.5q-33 0 -56 -23.5t-23 -58.5z" />
<glyph unicode="&#xc6;" horiz-adv-x="1816" d="M50 0l881 1456h776v-54h-696l26 -616h588v-54h-586l28 -678h701v-54h-752l-18 425h-628l-255 -425h-65zM402 478h594l-39 924l-5 1l-57 -105z" />
<glyph unicode="&#xc7;" horiz-adv-x="1327" d="M144 619v218q0 286 144 463t383 177q228 0 367.5 -119t135.5 -340l-2 -6h-46q0 197 -122.5 304t-332.5 107q-213 0 -343 -161t-130 -423v-220q0 -265 130 -425.5t343 -160.5q210 0 332.5 103t122.5 310h46l2 -6q4 -224 -135.5 -342.5t-367.5 -118.5q-239 0 -383 176.5 t-144 463.5zM553 -395q104 0 180.5 36t76.5 105q0 64 -45.5 89t-163.5 35l25 121h53l-11 -76q91 -7 144 -45.5t53 -123.5q0 -87 -79 -138.5t-226 -51.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="1166" d="M200 0v1456h886v-54h-832v-616h730v-54h-730v-678h832v-54h-886zM362 1823l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xc9;" horiz-adv-x="1166" d="M200 0v1456h886v-54h-832v-616h730v-54h-730v-678h832v-54h-886zM562 1561l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xca;" horiz-adv-x="1166" d="M200 0v1456h886v-54h-832v-616h730v-54h-730v-678h832v-54h-886zM369 1601v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xcb;" horiz-adv-x="1166" d="M200 0v1456h886v-54h-832v-616h730v-54h-730v-678h832v-54h-886zM324 1673v118h137v-118h-137zM794 1673v118h136v-118h-136z" />
<glyph unicode="&#xcc;" horiz-adv-x="534" d="M12 1823l2 5h89l220 -261l-2 -5h-75zM240 0v1456h54v-1456h-54z" />
<glyph unicode="&#xcd;" horiz-adv-x="534" d="M211 1561l220 261h78l2 -5l-231 -261h-67zM240 0v1456h54v-1456h-54z" />
<glyph unicode="&#xce;" horiz-adv-x="534" d="M19 1601v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66zM240 0v1456h54v-1456h-54z" />
<glyph unicode="&#xcf;" horiz-adv-x="534" d="M-26 1673v118h137v-118h-137zM240 0v1456h54v-1456h-54zM444 1673v118h136v-118h-136z" />
<glyph unicode="&#xd0;" horiz-adv-x="1370" d="M90 713v54h140v689h403q251 0 426 -180t175 -459v-178q0 -280 -175 -459.5t-426 -179.5h-403v713h-140zM284 54h349q227 0 387 166t160 419v181q0 250 -160 416t-387 166h-349v-635h393v-54h-393v-659z" />
<glyph unicode="&#xd1;" horiz-adv-x="1449" d="M200 0v1456h55l934 -1353l6 2v1351h54v-1456h-54l-934 1356l-6 -2v-1354h-55zM384 1615q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#xd2;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z M419 1844l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xd3;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z M619 1582l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xd4;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z M426 1622v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xd5;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z M334 1636q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#xd6;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q256 0 403 -173t147 -467v-218q0 -295 -146 -467.5t-402 -172.5q-257 0 -403.5 172.5t-146.5 467.5zM188 619q0 -270 128.5 -428t366.5 -158t366 157.5t128 428.5v220q0 268 -129 426t-367 158q-237 0 -365 -158t-128 -426v-220z M381 1694v118h137v-118h-137zM851 1694v118h136v-118h-136z" />
<glyph unicode="&#xd7;" horiz-adv-x="1052" d="M98 289l384 393l-357 364l39 39l356 -364l357 364l39 -39l-357 -364l385 -393l-39 -37l-384 391l-384 -391z" />
<glyph unicode="&#xd8;" horiz-adv-x="1364" d="M133 619v218q0 294 145.5 467t402.5 173q121 0 220 -41.5t171 -118.5l113 178h66l-142 -223q59 -83 90.5 -193.5t31.5 -241.5v-218q0 -295 -146 -467.5t-402 -172.5q-99 0 -181.5 26t-148.5 77l-99 -157h-66l123 193q-87 84 -132.5 211.5t-45.5 289.5zM188 619 q0 -146 38 -261t112 -186l6 -1l699 1100q-65 73 -156 112.5t-206 39.5q-237 0 -365 -158t-128 -426v-220zM382 127q59 -47 134.5 -70.5t166.5 -23.5q238 0 366 157.5t128 428.5v220q0 115 -24.5 212t-71.5 166l-6 1z" />
<glyph unicode="&#xd9;" horiz-adv-x="1365" d="M185 469v987h54v-987q0 -205 124 -320.5t320 -115.5q195 0 319 115.5t124 320.5v987h54v-987q0 -238 -138 -364t-359 -126q-223 0 -360.5 126.5t-137.5 363.5zM440 1823l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xda;" horiz-adv-x="1365" d="M185 469v987h54v-987q0 -205 124 -320.5t320 -115.5q195 0 319 115.5t124 320.5v987h54v-987q0 -238 -138 -364t-359 -126q-223 0 -360.5 126.5t-137.5 363.5zM640 1561l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xdb;" horiz-adv-x="1365" d="M185 469v987h54v-987q0 -205 124 -320.5t320 -115.5q195 0 319 115.5t124 320.5v987h54v-987q0 -238 -138 -364t-359 -126q-223 0 -360.5 126.5t-137.5 363.5zM447 1601v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xdc;" horiz-adv-x="1365" d="M185 469v987h54v-987q0 -205 124 -320.5t320 -115.5q195 0 319 115.5t124 320.5v987h54v-987q0 -238 -138 -364t-359 -126q-223 0 -360.5 126.5t-137.5 363.5zM402 1673v118h137v-118h-137zM872 1673v118h136v-118h-136z" />
<glyph unicode="&#xdd;" horiz-adv-x="1223" d="M36 1456h66l481 -809l26 -50l27 50l483 809h66l-547 -903v-553h-55v553zM551 1550l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xde;" horiz-adv-x="1219" d="M200 0v1456h54v-313h371q212 0 331 -113t119 -292q0 -180 -119 -292t-331 -112h-371v-334h-54zM254 388h371q195 0 295.5 104t100.5 244q0 144 -100 248.5t-296 104.5h-371v-701z" />
<glyph unicode="&#xdf;" horiz-adv-x="1183" d="M164 0v1082q0 188 89 290t250 102q123 0 207.5 -73t84.5 -195q0 -101 -59.5 -204.5t-59.5 -201.5q0 -90 193 -231.5t193 -291.5q0 -141 -114 -219.5t-253 -78.5q-87 0 -179.5 26t-132.5 63l25 49q42 -34 122.5 -59.5t156.5 -25.5q140 0 230.5 71.5t90.5 182.5 q0 113 -193 252t-193 264q0 105 56.5 212t56.5 194q0 90 -67.5 151t-154.5 61q-134 0 -214.5 -87.5t-80.5 -250.5v-1082h-54z" />
<glyph unicode="&#xe0;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM277 1503l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xe1;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM477 1241l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xe2;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM284 1281v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xe3;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM192 1295q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134 t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#xe4;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM239 1353v118h137v-118h-137zM709 1353v118h136v-118h-136z" />
<glyph unicode="&#xe5;" horiz-adv-x="1081" d="M92 284q0 136 128.5 228t321.5 92h309v158q0 135 -86.5 210.5t-243.5 75.5q-147 0 -236.5 -71t-89.5 -183l-45 2l-2 5q-6 126 98 213.5t275 87.5q174 0 279 -88t105 -254v-542q0 -57 6.5 -111t21.5 -107h-60q-13 71 -17.5 106.5t-4.5 76.5v17q-56 -98 -167 -159.5 t-269 -61.5q-151 0 -237 82.5t-86 222.5zM146 280q0 -109 73.5 -178.5t195.5 -69.5q161 0 272.5 71t163.5 203v243h-306q-168 0 -283.5 -77.5t-115.5 -191.5zM396 1406q0 56 40 97.5t96 41.5q54 0 93.5 -41t39.5 -98t-39 -96t-94 -39q-56 0 -96 39t-40 96zM453 1406 q0 -34 23 -56.5t56 -22.5q32 0 54 22t22 57t-22 58.5t-54 23.5q-33 0 -56 -23.5t-23 -58.5z" />
<glyph unicode="&#xe6;" horiz-adv-x="1735" d="M93 284q0 157 111.5 251.5t318.5 94.5h290v90q0 158 -73 243t-219 85q-162 0 -254.5 -78t-92.5 -199l-45 6l-2 6q-5 138 103.5 228.5t290.5 90.5q138 0 227 -73.5t112 -214.5q53 133 157 210.5t236 77.5q188 0 296 -118.5t108 -323.5v-83h-787v-13v-64q0 -208 99 -337.5 t299 -129.5q102 0 186.5 34.5t145.5 96.5l30 -42q-65 -66 -148.5 -104.5t-213.5 -38.5q-143 0 -245 66t-155 185v-12h1q-44 -95 -153 -167t-268 -72q-169 0 -262 82t-93 223zM148 280q0 -117 77.5 -183t221.5 -66q130 0 237 65.5t129 128.5v350h-288q-185 0 -281 -84 t-96 -211zM878 637l2 -5h723v32q0 168 -91.5 276t-258.5 108q-159 0 -260.5 -116.5t-114.5 -294.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="1039" d="M97 520v42q0 242 117 391t323 149q168 0 284.5 -98.5t112.5 -277.5l-2 -6h-46q0 159 -102 243.5t-247 84.5q-190 0 -288 -136t-98 -350v-42q0 -216 98 -351.5t290 -135.5q137 0 242 75t105 225h46l2 -6q4 -159 -116.5 -253.5t-278.5 -94.5q-207 0 -324.5 149t-117.5 392z M422 -395q104 0 180.5 36t76.5 105q0 64 -45.5 89t-163.5 35l25 121h53l-11 -76q91 -7 144 -45.5t53 -123.5q0 -87 -79 -138.5t-226 -51.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="1032" d="M87 500v64q0 233 130 385.5t321 152.5q183 0 298.5 -120t115.5 -322v-83h-811v-13v-64q0 -196 115 -331.5t285 -135.5q121 0 202.5 33t139.5 99l29 -42q-64 -71 -155.5 -107.5t-215.5 -36.5q-185 0 -319.5 149.5t-134.5 371.5zM149 637l3 -6h746v33q0 165 -100 274.5 t-260 109.5q-161 0 -268 -117.5t-121 -293.5zM310 1502l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xe9;" horiz-adv-x="1032" d="M87 500v64q0 233 130 385.5t321 152.5q183 0 298.5 -120t115.5 -322v-83h-811v-13v-64q0 -196 115 -331.5t285 -135.5q121 0 202.5 33t139.5 99l29 -42q-64 -71 -155.5 -107.5t-215.5 -36.5q-185 0 -319.5 149.5t-134.5 371.5zM149 637l3 -6h746v33q0 165 -100 274.5 t-260 109.5q-161 0 -268 -117.5t-121 -293.5zM510 1240l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xea;" horiz-adv-x="1032" d="M87 500v64q0 233 130 385.5t321 152.5q183 0 298.5 -120t115.5 -322v-83h-811v-13v-64q0 -196 115 -331.5t285 -135.5q121 0 202.5 33t139.5 99l29 -42q-64 -71 -155.5 -107.5t-215.5 -36.5q-185 0 -319.5 149.5t-134.5 371.5zM149 637l3 -6h746v33q0 165 -100 274.5 t-260 109.5q-161 0 -268 -117.5t-121 -293.5zM317 1280v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xeb;" horiz-adv-x="1032" d="M87 500v64q0 233 130 385.5t321 152.5q183 0 298.5 -120t115.5 -322v-83h-811v-13v-64q0 -196 115 -331.5t285 -135.5q121 0 202.5 33t139.5 99l29 -42q-64 -71 -155.5 -107.5t-215.5 -36.5q-185 0 -319.5 149.5t-134.5 371.5zM149 637l3 -6h746v33q0 165 -100 274.5 t-260 109.5q-161 0 -268 -117.5t-121 -293.5zM272 1352v118h137v-118h-137zM742 1352v118h136v-118h-136z" />
<glyph unicode="&#xec;" horiz-adv-x="406" d="M-47 1480l2 5h89l220 -261l-2 -5h-75zM181 0v1082h54v-1082h-54z" />
<glyph unicode="&#xed;" horiz-adv-x="406" d="M152 1218l220 261h78l2 -5l-231 -261h-67zM181 0v1082h54v-1082h-54z" />
<glyph unicode="&#xee;" horiz-adv-x="406" d="M-40 1258v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66zM181 0v1082h54v-1082h-54z" />
<glyph unicode="&#xef;" horiz-adv-x="406" d="M-85 1331v118h137v-118h-137zM181 0v1082h54v-1082h-54zM385 1331v118h136v-118h-136z" />
<glyph unicode="&#xf0;" horiz-adv-x="1183" d="M123 446q0 241 118.5 374t329.5 133q137 0 246.5 -51t162.5 -141l4 5q1 179 -53 308.5t-154 220.5l-360 -206l-28 48l341 195q-54 40 -116.5 73t-135.5 62l20 50q85 -34 155.5 -72.5t128.5 -82.5l260 149l29 -48l-244 -140q108 -102 161 -240.5t53 -327.5v-220 q0 -245 -131.5 -400.5t-330.5 -155.5t-327.5 134.5t-128.5 332.5zM178 446q0 -164 109.5 -286.5t295.5 -122.5q179 0 291.5 139.5t112.5 358.5v128q-43 95 -150.5 163.5t-265.5 68.5q-198 0 -295.5 -124.5t-97.5 -324.5z" />
<glyph unicode="&#xf1;" d="M172 0v1082h46l7 -223q49 116 143 179.5t232 63.5q177 0 265.5 -111.5t88.5 -353.5v-637h-54v639q0 225 -80.5 317t-218.5 92q-175 0 -264 -104.5t-111 -267.5v-676h-54zM236 1293q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10 q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#xf2;" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z M325 1501l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xf3;" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z M525 1239l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xf4;" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z M332 1279v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xf5;" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z M240 1293q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#xf6;" d="M87 520v42q0 238 131.5 389t341.5 151q211 0 342.5 -151t131.5 -389v-42q0 -239 -131.5 -390t-340.5 -151q-211 0 -343 151t-132 390zM141 520q0 -204 114 -345.5t307 -141.5q190 0 304 142t114 345v42q0 199 -115 342.5t-305 143.5q-191 0 -305 -143.5t-114 -342.5v-42z M287 1351v118h137v-118h-137zM757 1351v118h136v-118h-136z" />
<glyph unicode="&#xf7;" horiz-adv-x="1159" d="M73 686v52h998v-52h-998zM535 241v122h96v-122h-96zM535 1020v122h96v-122h-96z" />
<glyph unicode="&#xf8;" d="M87 520v42q0 238 131.5 389t341.5 151q61 0 117.5 -14.5t106.5 -40.5l84 172h63l-99 -203q95 -71 148.5 -189t53.5 -265v-42q0 -239 -131.5 -390t-340.5 -151q-58 0 -111 12t-100 36l-83 -172h-63l97 201q-102 68 -158.5 189t-56.5 275zM141 520q0 -130 48 -238.5 t135 -168.5h6l429 882q-44 25 -93.5 39t-105.5 14q-191 0 -305 -143.5t-114 -342.5v-42zM375 77q41 -22 88 -33t99 -11q190 0 304 142t114 345v42q0 120 -45.5 226t-125.5 168l-6 1z" />
<glyph unicode="&#xf9;" d="M168 465v617h54v-619q0 -220 81 -325t219 -105q169 0 259.5 83t115.5 220v746h55v-1082h-45l-8 194q-51 -103 -145.5 -159t-229.5 -56q-167 0 -261.5 118.5t-94.5 367.5zM323 1480l2 5h89l220 -261l-2 -5h-75z" />
<glyph unicode="&#xfa;" d="M168 465v617h54v-619q0 -220 81 -325t219 -105q169 0 259.5 83t115.5 220v746h55v-1082h-45l-8 194q-51 -103 -145.5 -159t-229.5 -56q-167 0 -261.5 118.5t-94.5 367.5zM523 1218l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xfb;" d="M168 465v617h54v-619q0 -220 81 -325t219 -105q169 0 259.5 83t115.5 220v746h55v-1082h-45l-8 194q-51 -103 -145.5 -159t-229.5 -56q-167 0 -261.5 118.5t-94.5 367.5zM330 1258v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#xfc;" d="M168 465v617h54v-619q0 -220 81 -325t219 -105q169 0 259.5 83t115.5 220v746h55v-1082h-45l-8 194q-51 -103 -145.5 -159t-229.5 -56q-167 0 -261.5 118.5t-94.5 367.5zM285 1331v118h137v-118h-137zM755 1331v118h136v-118h-136z" />
<glyph unicode="&#xfd;" horiz-adv-x="978" d="M43 1082h59l356 -886l40 -108h6l6 16l374 978h60l-481 -1262q-44 -114 -102.5 -185.5t-186.5 -71.5q-19 0 -42 3.5t-34 7.5l9 51q11 -3 33 -6t34 -3q92 0 143.5 54t91.5 160l65 176zM457 1218l220 261h78l2 -5l-231 -261h-67z" />
<glyph unicode="&#xfe;" d="M170 -416v1976h54v-671q54 99 147 156t220 57q191 0 299.5 -151.5t108.5 -408.5v-21q0 -250 -108 -396t-298 -146q-127 0 -221.5 51t-147.5 138v-584h-54zM224 269q40 -108 134 -172t236 -64q171 0 260.5 132t89.5 356v21q0 225 -90.5 365.5t-261.5 140.5 q-157 0 -244 -79t-124 -194v-506z" />
<glyph unicode="&#xff;" horiz-adv-x="978" d="M43 1082h59l356 -886l40 -108h6l6 16l374 978h60l-481 -1262q-44 -114 -102.5 -185.5t-186.5 -71.5q-19 0 -42 3.5t-34 7.5l9 51q11 -3 33 -6t34 -3q92 0 143.5 54t91.5 160l65 176zM219 1331v118h137v-118h-137zM689 1331v118h136v-118h-136z" />
<glyph unicode="&#x152;" horiz-adv-x="1873" d="M112 576v304q0 265 143 431t374 166q80 0 161.5 -6t170.5 -15h828v-54h-832v-616h730v-54h-730v-678h832v-54h-828q-103 -10 -178 -15.5t-152 -5.5q-231 0 -375 166t-144 431zM166 576q0 -240 127.5 -391.5t337.5 -151.5q73 0 143 2.5t129 9.5v1366q-60 6 -128.5 9 t-145.5 3q-211 0 -337 -149t-126 -392v-306z" />
<glyph unicode="&#x153;" horiz-adv-x="1921" d="M92 520v42q0 238 131.5 389t341.5 151q156 0 271 -85.5t167 -233.5q51 146 162.5 232.5t252.5 86.5q183 0 298.5 -120t115.5 -322v-83h-794q0 -3 0.5 -8t0.5 -7v-42q0 -30 -3 -59t-7 -59q28 -161 136.5 -265t255.5 -104q121 0 202.5 33t139.5 99l29 -42 q-64 -71 -155.5 -107.5t-215.5 -36.5q-136 0 -251 86t-168 230q-52 -147 -166.5 -231.5t-268.5 -84.5q-211 0 -343 151t-132 390zM146 520q0 -204 114 -345.5t307 -141.5q161 0 268.5 104t138.5 267q-4 22 -5.5 46t-1.5 50v64q0 29 1.5 55.5t6.5 51.5q-30 163 -139 270 t-271 107q-191 0 -305 -143.5t-114 -342.5v-42zM1030 673l6 -42h742v33q0 165 -100 274.5t-260 109.5q-151 0 -255.5 -105t-132.5 -270z" />
<glyph unicode="&#x178;" horiz-adv-x="1223" d="M36 1456h66l481 -809l26 -50l27 50l483 809h66l-547 -903v-553h-55v553zM313 1662v118h137v-118h-137zM783 1662v118h136v-118h-136z" />
<glyph unicode="&#x2c6;" horiz-adv-x="796" d="M152 1252v17l210 206h80l214 -210v-13h-70l-185 186l-183 -186h-66z" />
<glyph unicode="&#x2dc;" horiz-adv-x="818" d="M75 1286q0 80 50 129.5t126 49.5q72 0 153 -62t134 -62q50 0 85.5 39.5t35.5 101.5l55 -10q0 -82 -51 -134t-125 -52q-76 0 -154 62.5t-133 62.5q-52 0 -86.5 -37t-34.5 -98z" />
<glyph unicode="&#x2000;" horiz-adv-x="932" />
<glyph unicode="&#x2001;" horiz-adv-x="1865" />
<glyph unicode="&#x2002;" horiz-adv-x="932" />
<glyph unicode="&#x2003;" horiz-adv-x="1865" />
<glyph unicode="&#x2004;" horiz-adv-x="621" />
<glyph unicode="&#x2005;" horiz-adv-x="466" />
<glyph unicode="&#x2006;" horiz-adv-x="310" />
<glyph unicode="&#x2007;" horiz-adv-x="310" />
<glyph unicode="&#x2008;" horiz-adv-x="233" />
<glyph unicode="&#x2009;" horiz-adv-x="373" />
<glyph unicode="&#x200a;" horiz-adv-x="103" />
<glyph unicode="&#x2010;" horiz-adv-x="607" d="M61 599v54h470v-54h-470z" />
<glyph unicode="&#x2011;" horiz-adv-x="607" d="M61 599v54h470v-54h-470z" />
<glyph unicode="&#x2012;" horiz-adv-x="607" d="M61 599v54h470v-54h-470z" />
<glyph unicode="&#x2013;" horiz-adv-x="1412" d="M161 721v54h1085v-54h-1085z" />
<glyph unicode="&#x2014;" horiz-adv-x="1673" d="M131 721v54h1336v-54h-1336z" />
<glyph unicode="&#x2018;" horiz-adv-x="320" d="M100 1123v166l70 271h50l-66 -267v-170h-54z" />
<glyph unicode="&#x2019;" horiz-adv-x="320" d="M100 1123l66 268v169h54v-166l-70 -271h-50z" />
<glyph unicode="&#x201a;" horiz-adv-x="300" d="M100 -171l46 269v170h54v-168l-50 -271h-50z" />
<glyph unicode="&#x201c;" horiz-adv-x="500" d="M100 1123v166l70 271h50l-66 -267v-170h-54zM280 1123v166l70 271h50l-66 -267v-170h-54z" />
<glyph unicode="&#x201d;" horiz-adv-x="502" d="M100 1123l66 268v169h54v-166l-70 -271h-50zM282 1123l66 268v169h54v-166l-70 -271h-50z" />
<glyph unicode="&#x201e;" horiz-adv-x="481" d="M100 -169l45 269v169h55v-166l-50 -272h-50zM281 -169l46 269v169h54v-166l-50 -272h-50z" />
<glyph unicode="&#x2022;" horiz-adv-x="635" d="M155 703v70q0 70 45 115t121 45t122 -45.5t46 -114.5v-70q0 -70 -45.5 -114t-121.5 -44q-77 0 -122 44t-45 114z" />
<glyph unicode="&#x2026;" horiz-adv-x="1255" d="M211 0v130h86v-130h-86zM595 0v130h86v-130h-86zM964 0v130h86v-130h-86z" />
<glyph unicode="&#x202f;" horiz-adv-x="373" />
<glyph unicode="&#x2039;" horiz-adv-x="604" d="M108 551v19l295 370h70l-294 -380l294 -379h-70z" />
<glyph unicode="&#x203a;" horiz-adv-x="604" d="M106 171l293 379l-293 390h70l294 -380v-19l-294 -370h-70z" />
<glyph unicode="&#x205f;" horiz-adv-x="466" />
<glyph unicode="&#x20ac;" horiz-adv-x="1060" d="M82 553v55h187v222h-187v56h187v56q0 244 130.5 389.5t342.5 145.5q54 0 107 -8t115 -23v-58q-53 16 -109.5 25.5t-112.5 9.5q-193 0 -306 -128.5t-113 -350.5v-58h593v-56h-593v-222h593v-55h-593v-39q0 -219 114.5 -350t306.5 -131q57 0 113 8.5t107 25.5v-57 q-52 -15 -108 -23t-112 -8q-212 0 -343.5 145t-131.5 390v39h-187z" />
<glyph unicode="&#x2122;" horiz-adv-x="1247" d="M90 1399v57h384v-57h-158v-480h-56v480h-170zM552 919v537h75l181 -452h6l183 452h69v-537h-55v421l-6 1l-169 -422h-51l-172 436l-6 -1v-435h-55z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1067" d="M66 1027v55h188v178q0 153 74.5 237t208.5 84q33 0 65.5 -4t62.5 -13l-8 -52q-32 8 -56.5 11.5t-62.5 3.5q-108 0 -169 -71t-61 -196v-178h286v-55h-286v-1027h-54v1027h-188zM830 0v1560h54v-1560h-54z" />
<glyph unicode="&#xfb03;" horiz-adv-x="1712" d="M66 1027v55h188v178q0 153 74.5 237t208.5 84q33 0 65.5 -4t62.5 -13l-8 -52q-32 8 -56.5 11.5t-62.5 3.5q-108 0 -169 -71t-61 -196v-178h286v-55h-286v-1027h-54v1027h-188zM711 1027v55h188v158q0 163 85.5 252t237.5 89q67 0 135 -13.5t133 -43.5l-8 -52 q-66 29 -121.5 42t-137.5 13q-126 0 -198 -76t-72 -211v-158h286v-55h-286v-1027h-54v1027h-188zM1475 0v1082h54v-1082h-54z" />
<glyph unicode="&#xfb04;" horiz-adv-x="1712" d="M66 1027v55h188v178q0 153 74.5 237t208.5 84q33 0 65.5 -4t62.5 -13l-8 -52q-32 8 -56.5 11.5t-62.5 3.5q-108 0 -169 -71t-61 -196v-178h286v-55h-286v-1027h-54v1027h-188zM711 1027v55h188v178q0 153 74.5 237t208.5 84q33 0 65.5 -4t62.5 -13l-8 -52 q-32 8 -56.5 11.5t-62.5 3.5q-108 0 -169 -71t-61 -196v-178h286v-55h-286v-1027h-54v1027h-188zM1475 0v1560h54v-1560h-54z" />
<hkern u1="&#x22;" u2="w" k="-11" />
<hkern u1="&#x27;" u2="w" k="-11" />
<hkern u1="&#x28;" u2="&#x178;" k="-22" />
<hkern u1="&#x28;" u2="&#xdd;" k="-22" />
<hkern u1="&#x28;" u2="Y" k="-22" />
<hkern u1="&#x28;" u2="W" k="-18" />
<hkern u1="&#x28;" u2="V" k="-20" />
<hkern u1="A" u2="w" k="33" />
<hkern u1="A" u2="t" k="17" />
<hkern u1="A" u2="&#x3f;" k="61" />
<hkern u1="C" u2="&#x7d;" k="17" />
<hkern u1="C" u2="]" k="12" />
<hkern u1="C" u2="&#x29;" k="26" />
<hkern u1="D" u2="&#xc6;" k="33" />
<hkern u1="E" u2="w" k="22" />
<hkern u1="E" u2="f" k="18" />
<hkern u1="F" u2="&#x2026;" k="234" />
<hkern u1="F" u2="&#x201e;" k="234" />
<hkern u1="F" u2="&#x201a;" k="234" />
<hkern u1="F" u2="&#x153;" k="21" />
<hkern u1="F" u2="&#xff;" k="24" />
<hkern u1="F" u2="&#xfd;" k="24" />
<hkern u1="F" u2="&#xfc;" k="22" />
<hkern u1="F" u2="&#xfb;" k="22" />
<hkern u1="F" u2="&#xfa;" k="22" />
<hkern u1="F" u2="&#xf9;" k="22" />
<hkern u1="F" u2="&#xf6;" k="21" />
<hkern u1="F" u2="&#xf5;" k="21" />
<hkern u1="F" u2="&#xf4;" k="21" />
<hkern u1="F" u2="&#xf3;" k="21" />
<hkern u1="F" u2="&#xf2;" k="21" />
<hkern u1="F" u2="&#xeb;" k="21" />
<hkern u1="F" u2="&#xea;" k="21" />
<hkern u1="F" u2="&#xe9;" k="21" />
<hkern u1="F" u2="&#xe8;" k="21" />
<hkern u1="F" u2="&#xe7;" k="21" />
<hkern u1="F" u2="&#xe5;" k="34" />
<hkern u1="F" u2="&#xe4;" k="34" />
<hkern u1="F" u2="&#xe3;" k="34" />
<hkern u1="F" u2="&#xe2;" k="34" />
<hkern u1="F" u2="&#xe1;" k="34" />
<hkern u1="F" u2="&#xe0;" k="34" />
<hkern u1="F" u2="&#xc5;" k="59" />
<hkern u1="F" u2="&#xc4;" k="59" />
<hkern u1="F" u2="&#xc3;" k="59" />
<hkern u1="F" u2="&#xc2;" k="59" />
<hkern u1="F" u2="&#xc1;" k="59" />
<hkern u1="F" u2="&#xc0;" k="59" />
<hkern u1="F" u2="y" k="24" />
<hkern u1="F" u2="v" k="24" />
<hkern u1="F" u2="u" k="22" />
<hkern u1="F" u2="r" k="26" />
<hkern u1="F" u2="q" k="21" />
<hkern u1="F" u2="o" k="21" />
<hkern u1="F" u2="g" k="21" />
<hkern u1="F" u2="e" k="21" />
<hkern u1="F" u2="d" k="21" />
<hkern u1="F" u2="c" k="21" />
<hkern u1="F" u2="a" k="34" />
<hkern u1="F" u2="T" k="-20" />
<hkern u1="F" u2="A" k="59" />
<hkern u1="F" u2="&#x3a;" k="234" />
<hkern u1="F" u2="&#x2e;" k="234" />
<hkern u1="F" u2="&#x2c;" k="234" />
<hkern u1="K" u2="w" k="63" />
<hkern u1="L" u2="w" k="92" />
<hkern u1="O" u2="&#xc6;" k="33" />
<hkern u1="P" u2="&#xc6;" k="97" />
<hkern u1="P" u2="t" k="-14" />
<hkern u1="Q" u2="&#x178;" k="35" />
<hkern u1="Q" u2="&#xdd;" k="35" />
<hkern u1="Q" u2="Y" k="35" />
<hkern u1="Q" u2="W" k="20" />
<hkern u1="Q" u2="V" k="28" />
<hkern u1="Q" u2="T" k="43" />
<hkern u1="R" u2="&#x178;" k="48" />
<hkern u1="R" u2="&#xdd;" k="48" />
<hkern u1="R" u2="Y" k="48" />
<hkern u1="R" u2="V" k="19" />
<hkern u1="R" u2="T" k="80" />
<hkern u1="T" u2="&#xf8;" k="95" />
<hkern u1="T" u2="&#xe6;" k="114" />
<hkern u1="T" u2="&#xc6;" k="179" />
<hkern u1="T" u2="&#xbb;" k="216" />
<hkern u1="T" u2="&#xab;" k="328" />
<hkern u1="T" u2="w" k="57" />
<hkern u1="T" u2="r" k="75" />
<hkern u1="V" u2="&#x7d;" k="-19" />
<hkern u1="V" u2="r" k="30" />
<hkern u1="V" u2="]" k="-17" />
<hkern u1="V" u2="&#x29;" k="-20" />
<hkern u1="W" u2="&#x7d;" k="-14" />
<hkern u1="W" u2="r" k="21" />
<hkern u1="W" u2="]" k="-12" />
<hkern u1="W" u2="&#x29;" k="-15" />
<hkern u1="Y" u2="&#x2022;" k="45" />
<hkern u1="Y" u2="&#xf8;" k="64" />
<hkern u1="Y" u2="&#xe6;" k="63" />
<hkern u1="Y" u2="&#xc6;" k="96" />
<hkern u1="Y" u2="&#xbb;" k="51" />
<hkern u1="Y" u2="&#xab;" k="82" />
<hkern u1="Y" u2="&#x7d;" k="-19" />
<hkern u1="Y" u2="t" k="22" />
<hkern u1="Y" u2="r" k="40" />
<hkern u1="Y" u2="f" k="22" />
<hkern u1="Y" u2="]" k="-18" />
<hkern u1="Y" u2="&#x2a;" k="49" />
<hkern u1="Y" u2="&#x29;" k="-20" />
<hkern u1="Y" u2="&#x26;" k="30" />
<hkern u1="Z" u2="w" k="27" />
<hkern u1="[" u2="&#xdc;" k="18" />
<hkern u1="[" u2="&#xdb;" k="18" />
<hkern u1="[" u2="&#xda;" k="18" />
<hkern u1="[" u2="&#xd9;" k="18" />
<hkern u1="[" u2="U" k="18" />
<hkern u1="[" u2="J" k="18" />
<hkern u1="f" u2="&#x201d;" k="-16" />
<hkern u1="f" u2="&#x201c;" k="-16" />
<hkern u1="f" u2="&#x2019;" k="-16" />
<hkern u1="f" u2="&#x2018;" k="-16" />
<hkern u1="f" u2="&#x153;" k="24" />
<hkern u1="f" u2="&#xeb;" k="24" />
<hkern u1="f" u2="&#xea;" k="24" />
<hkern u1="f" u2="&#xe9;" k="24" />
<hkern u1="f" u2="&#xe8;" k="24" />
<hkern u1="f" u2="&#xe7;" k="24" />
<hkern u1="f" u2="&#x7d;" k="-19" />
<hkern u1="f" u2="q" k="24" />
<hkern u1="f" u2="g" k="24" />
<hkern u1="f" u2="e" k="24" />
<hkern u1="f" u2="d" k="24" />
<hkern u1="f" u2="c" k="24" />
<hkern u1="f" u2="]" k="-18" />
<hkern u1="f" u2="&#x29;" k="-20" />
<hkern u1="f" u2="&#x27;" k="-16" />
<hkern u1="f" u2="&#x22;" k="-16" />
<hkern u1="k" u2="&#x153;" k="20" />
<hkern u1="k" u2="&#xeb;" k="20" />
<hkern u1="k" u2="&#xea;" k="20" />
<hkern u1="k" u2="&#xe9;" k="20" />
<hkern u1="k" u2="&#xe8;" k="20" />
<hkern u1="k" u2="&#xe7;" k="20" />
<hkern u1="k" u2="q" k="20" />
<hkern u1="k" u2="g" k="20" />
<hkern u1="k" u2="e" k="20" />
<hkern u1="k" u2="d" k="20" />
<hkern u1="k" u2="c" k="20" />
<hkern u1="r" u2="w" k="-17" />
<hkern u1="r" u2="t" k="-17" />
<hkern u1="r" u2="f" k="-15" />
<hkern u1="v" u2="f" k="-13" />
<hkern u1="w" u2="&#x2026;" k="124" />
<hkern u1="w" u2="&#x201e;" k="124" />
<hkern u1="w" u2="&#x201a;" k="124" />
<hkern u1="w" u2="&#x3a;" k="124" />
<hkern u1="w" u2="&#x2e;" k="124" />
<hkern u1="w" u2="&#x2c;" k="124" />
<hkern u1="y" u2="f" k="-13" />
<hkern u1="&#x7b;" u2="&#xdc;" k="20" />
<hkern u1="&#x7b;" u2="&#xdb;" k="20" />
<hkern u1="&#x7b;" u2="&#xda;" k="20" />
<hkern u1="&#x7b;" u2="&#xd9;" k="20" />
<hkern u1="&#x7b;" u2="U" k="20" />
<hkern u1="&#x7b;" u2="J" k="20" />
<hkern u1="&#xc0;" u2="w" k="33" />
<hkern u1="&#xc0;" u2="t" k="17" />
<hkern u1="&#xc0;" u2="&#x3f;" k="61" />
<hkern u1="&#xc1;" u2="w" k="33" />
<hkern u1="&#xc1;" u2="t" k="17" />
<hkern u1="&#xc1;" u2="&#x3f;" k="61" />
<hkern u1="&#xc2;" u2="w" k="33" />
<hkern u1="&#xc2;" u2="t" k="17" />
<hkern u1="&#xc2;" u2="&#x3f;" k="61" />
<hkern u1="&#xc3;" u2="w" k="33" />
<hkern u1="&#xc3;" u2="t" k="17" />
<hkern u1="&#xc3;" u2="&#x3f;" k="61" />
<hkern u1="&#xc4;" u2="w" k="33" />
<hkern u1="&#xc4;" u2="t" k="17" />
<hkern u1="&#xc4;" u2="&#x3f;" k="61" />
<hkern u1="&#xc5;" u2="w" k="33" />
<hkern u1="&#xc5;" u2="t" k="17" />
<hkern u1="&#xc5;" u2="&#x3f;" k="61" />
<hkern u1="&#xc7;" u2="&#x7d;" k="17" />
<hkern u1="&#xc7;" u2="]" k="12" />
<hkern u1="&#xc7;" u2="&#x29;" k="26" />
<hkern u1="&#xc8;" u2="w" k="22" />
<hkern u1="&#xc8;" u2="f" k="18" />
<hkern u1="&#xc9;" u2="w" k="22" />
<hkern u1="&#xc9;" u2="f" k="18" />
<hkern u1="&#xca;" u2="w" k="22" />
<hkern u1="&#xca;" u2="f" k="18" />
<hkern u1="&#xcb;" u2="w" k="22" />
<hkern u1="&#xcb;" u2="f" k="18" />
<hkern u1="&#xd0;" u2="&#xc6;" k="33" />
<hkern u1="&#xd2;" u2="&#xc6;" k="33" />
<hkern u1="&#xd3;" u2="&#xc6;" k="33" />
<hkern u1="&#xd4;" u2="&#xc6;" k="33" />
<hkern u1="&#xd5;" u2="&#xc6;" k="33" />
<hkern u1="&#xd6;" u2="&#xc6;" k="33" />
<hkern u1="&#xdd;" u2="&#x2022;" k="45" />
<hkern u1="&#xdd;" u2="&#xf8;" k="64" />
<hkern u1="&#xdd;" u2="&#xe6;" k="63" />
<hkern u1="&#xdd;" u2="&#xc6;" k="96" />
<hkern u1="&#xdd;" u2="&#xbb;" k="51" />
<hkern u1="&#xdd;" u2="&#xab;" k="82" />
<hkern u1="&#xdd;" u2="&#x7d;" k="-19" />
<hkern u1="&#xdd;" u2="t" k="22" />
<hkern u1="&#xdd;" u2="r" k="40" />
<hkern u1="&#xdd;" u2="f" k="22" />
<hkern u1="&#xdd;" u2="]" k="-18" />
<hkern u1="&#xdd;" u2="&#x2a;" k="49" />
<hkern u1="&#xdd;" u2="&#x29;" k="-20" />
<hkern u1="&#xdd;" u2="&#x26;" k="30" />
<hkern u1="&#xfd;" u2="f" k="-13" />
<hkern u1="&#xff;" u2="f" k="-13" />
<hkern u1="&#x178;" u2="&#x2022;" k="45" />
<hkern u1="&#x178;" u2="&#xf8;" k="64" />
<hkern u1="&#x178;" u2="&#xe6;" k="63" />
<hkern u1="&#x178;" u2="&#xc6;" k="96" />
<hkern u1="&#x178;" u2="&#xbb;" k="51" />
<hkern u1="&#x178;" u2="&#xab;" k="82" />
<hkern u1="&#x178;" u2="&#x7d;" k="-19" />
<hkern u1="&#x178;" u2="t" k="22" />
<hkern u1="&#x178;" u2="r" k="40" />
<hkern u1="&#x178;" u2="f" k="22" />
<hkern u1="&#x178;" u2="]" k="-18" />
<hkern u1="&#x178;" u2="&#x2a;" k="49" />
<hkern u1="&#x178;" u2="&#x29;" k="-20" />
<hkern u1="&#x178;" u2="&#x26;" k="30" />
<hkern u1="&#x2018;" u2="w" k="-11" />
<hkern u1="&#x2019;" u2="w" k="-11" />
<hkern u1="&#x201c;" u2="w" k="-11" />
<hkern u1="&#x201d;" u2="w" k="-11" />
<hkern g1="B" g2="T" k="27" />
<hkern g1="B" g2="V" k="24" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" />
<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="27" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="102" />
<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" />
<hkern g1="C,Ccedilla" g2="T" k="29" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" />
<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="T" g2="v,y,yacute,ydieresis" k="72" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" />
<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="99" />
<hkern g1="T" g2="W" k="-15" />
<hkern g1="T" g2="T" k="-16" />
<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="95" />
<hkern g1="T" g2="z" k="60" />
<hkern g1="T" g2="V" k="-16" />
<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="79" />
<hkern g1="T" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="218" />
<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="99" />
<hkern g1="T" g2="x" k="77" />
<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="232" />
<hkern g1="T" g2="m,n,p,ntilde" k="109" />
<hkern g1="T" g2="S" k="16" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="113" />
<hkern g1="T" g2="s" k="116" />
<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" />
<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" />
<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" />
<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="64" />
<hkern g1="K" g2="m,n,p,ntilde" k="23" />
<hkern g1="L" g2="v,y,yacute,ydieresis" k="133" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="65" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="54" />
<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="138" />
<hkern g1="L" g2="W" k="143" />
<hkern g1="L" g2="T" k="275" />
<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="44" />
<hkern g1="L" g2="V" k="175" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="239" />
<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" />
<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" />
<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="138" />
<hkern g1="P" g2="X" k="31" />
<hkern g1="P" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="324" />
<hkern g1="P" g2="Z" k="26" />
<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" />
<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" />
<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" />
<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" />
<hkern g1="V" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="225" />
<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" />
<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="37" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" />
<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" />
<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" />
<hkern g1="X" g2="V" k="-14" />
<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" />
<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="46" />
<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" />
<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" />
<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" />
<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="94" />
<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="211" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="52" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="73" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" />
<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" />
<hkern g1="W" g2="T" k="-14" />
<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" />
<hkern g1="W" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="123" />
<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" />
<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" />
<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" />
<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" />
<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" />
<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" />
<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="67" />
<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" />
<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" />
<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" />
<hkern g1="b,p,thorn" g2="z" k="15" />
<hkern g1="b,p,thorn" g2="x" k="15" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" />
<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" />
<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="20" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" />
<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" />
<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" />
<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" />
<hkern g1="v,y,yacute,ydieresis" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="107" />
<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" />
<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" />
<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" />
<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" />
<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="r" g2="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" k="123" />
<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" />
<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" />
<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" />
<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" />
<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="107" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="61" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="59" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="m,n,p,ntilde" k="20" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="50" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="80" />
<hkern g1="comma,period,colon,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="170" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="630" height="630" viewBox="0 0 630 630" version="1.1">
<g transform="translate(-56.611934,-184.36221)">
<path fill="#a7a7a7" d="m 58.467329,810.92426 c 0,-10.37237 6.53079,-28.55017 15.29935,-42.58418 9.70782,-15.53729 28.965401,-35.11964 51.655121,-52.52627 7.21357,-5.53395 6.57284,-5.08564 22.23877,-15.56023 20.2393,-13.53245 55.34935,-32.58361 79.80676,-43.30416 19.72995,-8.64834 57.2268,-21.58721 62.55974,-21.58721 0.76988,0 3.09659,-0.67892 5.17046,-1.50872 7.3197,-2.92876 12.5713,-16.1286 13.89202,-34.91737 l 0.64689,-9.20257 -8.38455,-10.04931 c -7.66622,-9.18836 -11.59308,-14.62897 -20.80286,-28.82203 -9.85543,-15.1881 -22.91997,-47.26171 -24.69185,-60.61889 -0.56037,-4.22429 -1.0976,-5.21546 -3.27999,-6.05157 -10.15146,-3.88918 -15.7489,-9.08881 -20.96084,-19.47118 -6.6162,-13.17971 -8.62087,-36.5618 -4.2711,-49.81738 2.29242,-6.98599 4.4873,-10.89589 8.72413,-15.54098 2.11744,-2.32146 2.22102,-2.9999 1.45041,-9.5 -2.58899,-21.83821 -3.34954,-41.36055 -2.18394,-56.05862 3.87891,-48.91259 20.17112,-81.47548 50.89033,-101.71339 16.68129,-10.98968 34.4196,-16.74492 62.2113,-20.1846 32.20647,-3.98609 68.82401,0.75436 93.8318,12.14731 14.67849,6.68717 28.98155,17.91433 38.99893,30.61215 19.81832,25.12131 29.57328,66.42856 26.24603,111.13853 -0.69821,9.38224 -1.63714,20.17477 -2.08651,23.9834 -0.81425,6.90129 -0.80559,6.93815 2.55469,10.86388 7.03777,8.22205 10.02312,18.44949 9.84447,33.72599 -0.27308,23.35114 -10.37432,43.49379 -24.44339,48.74202 l -5.34465,1.99373 -1.18738,6.3748 c -4.9831,26.75313 -22.71761,61.14702 -45.76986,88.76506 l -7.88572,9.44759 0.64805,9.21931 c 1.18682,16.88381 6.49256,31.6953 12.30203,34.34227 1.23595,0.56314 6.42637,1.99946 11.53427,3.19182 35.45428,8.27628 97.76078,37.16683 137.59386,63.80012 15.66594,10.47459 15.02521,10.02628 22.23877,15.56023 22.46534,17.23449 41.43241,36.56563 52.11597,53.1163 7.31528,11.33263 13.49882,27.98884 14.54335,39.17447 l 0.58435,6.25763 -313.14461,0 -313.144601,0 0,-3.43795 z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

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