Google Fonts for WordPress - Version 1.9.8

Version Description

Download this release

Release Info

Developer DannyCooper
Plugin Icon 128x128 Google Fonts for WordPress
Version 1.9.8
Comparing to
See all releases

Code changes from version 1.9.7 to 1.9.8

Files changed (55) hide show
  1. changelog.txt +4 -0
  2. includes/functions.php +1 -1
  3. olympus-google-fonts.php +2 -2
  4. readme.txt +1 -1
  5. trunk/assets/css/customize-controls.css +824 -0
  6. trunk/assets/css/deactivation.css +144 -0
  7. trunk/assets/images/chosen-sprite.png +0 -0
  8. trunk/assets/images/chosen-sprite@2x.png +0 -0
  9. trunk/assets/images/fontsplugin-icon.png +0 -0
  10. trunk/assets/js/chosen.min.js +3 -0
  11. trunk/assets/js/customize-controls.js +236 -0
  12. trunk/assets/js/customize-preview.js +125 -0
  13. trunk/assets/js/customizer-repeater.js +100 -0
  14. trunk/assets/js/deactivation.js +75 -0
  15. trunk/assets/js/dismiss.js +28 -0
  16. trunk/assets/js/featherlight.min.js +8 -0
  17. trunk/assets/js/multiple-checkbox.js +29 -0
  18. trunk/assets/js/panels.js +142 -0
  19. trunk/blocks/dist/blocks.build.js +1 -0
  20. trunk/blocks/dist/blocks.editor.build.css +0 -0
  21. trunk/blocks/dist/blocks.style.build.css +0 -0
  22. trunk/blocks/init.php +134 -0
  23. trunk/blocks/package-lock.json +6974 -0
  24. trunk/blocks/package.json +14 -0
  25. trunk/blocks/src/blocks.js +8 -0
  26. trunk/blocks/src/common.scss +0 -0
  27. trunk/blocks/src/google-fonts/edit.js +213 -0
  28. trunk/blocks/src/google-fonts/fonts.json +11524 -0
  29. trunk/blocks/src/google-fonts/index.js +26 -0
  30. trunk/blocks/src/google-fonts/transforms.js +41 -0
  31. trunk/changelog.txt +242 -0
  32. trunk/class-olympus-google-fonts.php +174 -0
  33. trunk/compatability/themegrill.php +22 -0
  34. trunk/compatability/themeisle.php +27 -0
  35. trunk/includes/class-ogf-classic-editor.php +104 -0
  36. trunk/includes/class-ogf-dashboard-widget.php +123 -0
  37. trunk/includes/class-ogf-deactivation.php +110 -0
  38. trunk/includes/class-ogf-fonts.php +200 -0
  39. trunk/includes/class-ogf-notifications.php +261 -0
  40. trunk/includes/class-ogf-reset.php +108 -0
  41. trunk/includes/class-ogf-welcome.php +111 -0
  42. trunk/includes/customizer/controls/class-ogf-customize-multiple-checkbox-control.php +87 -0
  43. trunk/includes/customizer/controls/class-ogf-customize-multiple-fonts-control.php +64 -0
  44. trunk/includes/customizer/controls/class-ogf-customize-panel.php +45 -0
  45. trunk/includes/customizer/controls/class-ogf-customize-repeater-control.php +172 -0
  46. trunk/includes/customizer/controls/class-ogf-customize-typography-control.php +278 -0
  47. trunk/includes/customizer/controls/class-ogf-customize-upsell-control.php +47 -0
  48. trunk/includes/customizer/output-css.php +162 -0
  49. trunk/includes/customizer/panels.php +165 -0
  50. trunk/includes/customizer/settings.php +243 -0
  51. trunk/includes/functions.php +300 -0
  52. trunk/includes/gutenberg/output-css.php +173 -0
  53. trunk/languages/olympus-google-fonts.pot +531 -0
  54. trunk/olympus-google-fonts.php +36 -0
  55. trunk/readme.txt +102 -0
changelog.txt CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  = 1.9.7 =
2
 
3
  * Update Google Fonts list.
1
+ = 1.9.8 =
2
+
3
+ * Add new selector for 'Advanced Settings' → 'Content Typography'
4
+
5
  = 1.9.7 =
6
 
7
  * Update Google Fonts list.
includes/functions.php CHANGED
@@ -74,7 +74,7 @@ function ogf_get_elements() {
74
  'label' => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
75
  'description' => esc_html__( 'Select and configure the font for your post and page content.', 'olympus-google-fonts' ),
76
  'section' => 'ogf_advanced__content',
77
- 'selectors' => '.entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt',
78
  ),
79
  'ogf_post_page_h1' => array(
80
  'label' => esc_html__( 'Title and H1 Typography', 'olympus-google-fonts' ),
74
  'label' => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
75
  'description' => esc_html__( 'Select and configure the font for your post and page content.', 'olympus-google-fonts' ),
76
  'section' => 'ogf_advanced__content',
77
+ 'selectors' => '.entry-content, .entry-content p, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .excerpt',
78
  ),
79
  'ogf_post_page_h1' => array(
80
  'label' => esc_html__( 'Title and H1 Typography', 'olympus-google-fonts' ),
olympus-google-fonts.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin Name: Google Fonts Typography
6
  * Plugin URI: https://wordpress.org/plugins/olympus-google-fonts/
7
  * Description: The easiest to use Google Fonts typography plugin. No coding required. 870+ font choices.
8
- * Version: 1.9.7
9
  * Author: Fonts Plugin
10
  * Author URI: https://fontsplugin.com/?utm_source=wporg&utm_campaign=heading
11
  * Text Domain: olympus-google-fonts
@@ -18,7 +18,7 @@
18
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
19
  */
20
 
21
- define( 'OGF_VERSION', '1.9.7' );
22
  define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
24
 
5
  * Plugin Name: Google Fonts Typography
6
  * Plugin URI: https://wordpress.org/plugins/olympus-google-fonts/
7
  * Description: The easiest to use Google Fonts typography plugin. No coding required. 870+ font choices.
8
+ * Version: 1.9.8
9
  * Author: Fonts Plugin
10
  * Author URI: https://fontsplugin.com/?utm_source=wporg&utm_campaign=heading
11
  * Text Domain: olympus-google-fonts
18
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
19
  */
20
 
21
+ define( 'OGF_VERSION', '1.9.8' );
22
  define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
23
  define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
24
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://fontsplugin.com/#pricing
5
  Requires at least: 4.0
6
  Tested up to: 5.2
7
  License: GPLv2 or later
8
- Stable tag: 1.9.7
9
 
10
  The easiest to use Google Fonts Typography Plugin. No coding required. 900+ font choices.
11
 
5
  Requires at least: 4.0
6
  Tested up to: 5.2
7
  License: GPLv2 or later
8
+ Stable tag: 1.9.8
9
 
10
  The easiest to use Google Fonts Typography Plugin. No coding required. 900+ font choices.
11
 
trunk/assets/css/customize-controls.css ADDED
@@ -0,0 +1,824 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #customize-theme-controls #sub-accordion-section-ogf_basic,
2
+ #customize-theme-controls #sub-accordion-section-ogf_theme,
3
+ #customize-theme-controls #sub-accordion-section-ogf_custom,
4
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__branding,
5
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__navigation,
6
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__content,
7
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__sidebar,
8
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__footer,
9
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__custom,
10
+ #customize-theme-controls #sub-accordion-section-ogf_advanced__css {
11
+ overflow: visible;
12
+ }
13
+
14
+ #accordion-panel-ogf_google_fonts .accordion-section-title {
15
+ padding-left: 42px;
16
+ }
17
+
18
+ #customize-control-ogf_headings_typography .typography-font-size,
19
+ #customize-control-ogf_headings_typography .typography-line-height {
20
+ display: none;
21
+ }
22
+
23
+ .typography-font-size,
24
+ .typography-line-height,
25
+ .typography-font-color {
26
+ display: none;
27
+ }
28
+
29
+ .customize-control-typography li.typography-font-family select {
30
+ width: 85%;
31
+ }
32
+
33
+ .customize-control-typography li.typography-font-color,
34
+ .customize-control-typography li.typography-font-style,
35
+ .customize-control-typography li.typography-font-weight {
36
+ width: 50%;
37
+ float: left;
38
+ }
39
+
40
+ .customize-control-typography li.typography-font-size,
41
+ .customize-control-typography li.typography-line-height {
42
+ clear: both;
43
+ max-width: 94%;
44
+ padding-top: 10px;
45
+ }
46
+
47
+ .customize-control-typography li.typography-font-style select,
48
+ .customize-control-typography li.typography-font-weight select {
49
+ width: 90%;
50
+ }
51
+
52
+ .customize-control-typography li.typography-font-weight {
53
+ clear: both;
54
+ }
55
+
56
+ .customize-control-typography li.typography-font-size input,
57
+ .customize-control-typography li.typography-line-height input {
58
+ width: 50px;
59
+ float: right;
60
+ }
61
+
62
+ .customize-control-typography .advanced-settings-wrapper {
63
+ display: none;
64
+ }
65
+
66
+ .customize-control-typography .advanced-settings-wrapper.show {
67
+ display: block !important;
68
+ margin-top: 10px;
69
+ padding: 10px;
70
+ background: #dadada;
71
+ }
72
+
73
+ .advanced-settings-wrapper:after {
74
+ content: '';
75
+ display: table;
76
+ clear: both;
77
+ }
78
+
79
+ .advanced-button {
80
+ float: right;
81
+ margin: 0;
82
+ padding-top: 4px;
83
+ padding-bottom: 4px;
84
+ color: #72777c;
85
+ border: none;
86
+ background: 0 0;
87
+ cursor: pointer;
88
+ }
89
+
90
+ .advanced-button:before {
91
+ content: '\f108';
92
+ color: #0284ba;
93
+ background: 0 0;
94
+ font: 400 16px/20px dashicons;
95
+ }
96
+
97
+ .advanced-button.open:before {
98
+ content: '\f142';
99
+ color: #72777c;
100
+ border-radius: 5000px;
101
+ background: #dadada;
102
+ padding: 2px;
103
+ }
104
+
105
+ .customize-control-typography input[type='range'] {
106
+ width: 90%;
107
+ }
108
+
109
+ .customize-control-typography .customize-control-notifications-container {
110
+ display: none;
111
+ }
112
+
113
+ /* @group Base */
114
+
115
+ .chosen-container {
116
+ display: inline-block;
117
+ position: relative;
118
+ vertical-align: middle;
119
+ font-size: 13px;
120
+ -moz-user-select: none;
121
+ -ms-user-select: none;
122
+ -webkit-user-select: none;
123
+ user-select: none;
124
+ }
125
+
126
+ .chosen-container * {
127
+ -webkit-box-sizing: border-box;
128
+ box-sizing: border-box;
129
+ }
130
+
131
+ .chosen-container .chosen-drop {
132
+ z-index: 1010;
133
+ display: none;
134
+ position: absolute;
135
+ top: 100%;
136
+ width: 100%;
137
+ border: 1px solid #aaaaaa;
138
+ border-top: 0;
139
+ background: #ffffff;
140
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
141
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
142
+ }
143
+
144
+ .chosen-container.chosen-with-drop .chosen-drop {
145
+ display: block;
146
+ }
147
+
148
+ .chosen-container a {
149
+ cursor: pointer;
150
+ }
151
+
152
+ .chosen-container .chosen-single .group-name,
153
+ .chosen-container .search-choice .group-name {
154
+ margin-right: 4px;
155
+ color: #999999;
156
+ overflow: hidden;
157
+ text-overflow: ellipsis;
158
+ font-weight: normal;
159
+ white-space: nowrap;
160
+ }
161
+
162
+ .chosen-container .chosen-single .group-name:after,
163
+ .chosen-container .search-choice .group-name:after {
164
+ content: ':';
165
+ padding-left: 2px;
166
+ vertical-align: top;
167
+ }
168
+
169
+ /* @end */
170
+
171
+ /* @group Single Chosen */
172
+
173
+ .chosen-container-single .chosen-single,
174
+ .chosen-container-multi .chosen-choices {
175
+ display: block;
176
+ position: relative;
177
+ height: 25px;
178
+ padding: 0 0 0 8px;
179
+ color: #444444;
180
+ overflow: hidden;
181
+ border: 1px solid #aaaaaa;
182
+ border-radius: 5px;
183
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), to(#f4f4f4));
184
+ background: linear-gradient(
185
+ #ffffff 20%,
186
+ #f6f6f6 50%,
187
+ #eeeeee 52%,
188
+ #f4f4f4 100%
189
+ );
190
+ background-color: #ffffff;
191
+ background-clip: padding-box;
192
+ -webkit-box-shadow: 0 0 3px #ffffff inset,
193
+ 0 1px 1px rgba(0, 0, 0, 0.1);
194
+ box-shadow: 0 0 3px #ffffff inset,
195
+ 0 1px 1px rgba(0, 0, 0, 0.1);
196
+ text-decoration: none;
197
+ line-height: 24px;
198
+ white-space: nowrap;
199
+ }
200
+
201
+ .chosen-container-single .chosen-single input[type='text'] {
202
+ position: absolute;
203
+ width: 0;
204
+ opacity: 0;
205
+ cursor: pointer;
206
+ }
207
+
208
+ .chosen-container-single .chosen-default {
209
+ color: #999999;
210
+ }
211
+
212
+ .chosen-container-single .chosen-single span {
213
+ display: block;
214
+ margin-right: 26px;
215
+ overflow: hidden;
216
+ text-overflow: ellipsis;
217
+ white-space: nowrap;
218
+ }
219
+
220
+ .chosen-container-single .chosen-single-with-deselect span {
221
+ margin-right: 38px;
222
+ }
223
+
224
+ .chosen-container-single .chosen-single abbr {
225
+ display: block;
226
+ position: absolute;
227
+ top: 6px;
228
+ right: 26px;
229
+ width: 12px;
230
+ height: 12px;
231
+ background: url('../images/chosen-sprite.png') -42px 1px no-repeat;
232
+ font-size: 1px;
233
+ }
234
+
235
+ .chosen-container-single .chosen-single abbr:hover {
236
+ background-position: -42px -10px;
237
+ }
238
+
239
+ .chosen-container-single.chosen-disabled .chosen-single abbr:hover {
240
+ background-position: -42px -10px;
241
+ }
242
+
243
+ .chosen-container-single .chosen-single div {
244
+ display: block;
245
+ position: absolute;
246
+ top: 0;
247
+ right: 0;
248
+ width: 18px;
249
+ height: 100%;
250
+ }
251
+
252
+ .chosen-container-single .chosen-single div b {
253
+ display: block;
254
+ width: 100%;
255
+ height: 100%;
256
+ background: url('../images/chosen-sprite.png') no-repeat 0 2px;
257
+ }
258
+
259
+ .chosen-container-single .chosen-search {
260
+ z-index: 1010;
261
+ position: relative;
262
+ margin: 0;
263
+ padding: 3px 4px;
264
+ white-space: nowrap;
265
+ }
266
+
267
+ .chosen-container-single .chosen-search input[type='text'] {
268
+ width: 100%;
269
+ height: auto;
270
+ margin: 1px 0;
271
+ padding: 4px 20px 4px 5px;
272
+ border: 1px solid #aaaaaa;
273
+ border-radius: 0;
274
+ background: url('../images/chosen-sprite.png') no-repeat 100% -20px;
275
+ outline: 0;
276
+ font-family: sans-serif;
277
+ font-size: 1em;
278
+ line-height: normal;
279
+ }
280
+
281
+ .chosen-container-single .chosen-drop {
282
+ margin-top: -1px;
283
+ border-radius: 0 0 4px 4px;
284
+ background-clip: padding-box;
285
+ }
286
+
287
+ .chosen-container-single.chosen-container-single-nosearch .chosen-search {
288
+ position: absolute;
289
+ opacity: 0;
290
+ pointer-events: none;
291
+ }
292
+
293
+ /* @end */
294
+
295
+ /* @group Results */
296
+
297
+ .chosen-container .chosen-results {
298
+ position: relative;
299
+ max-height: 240px;
300
+ margin: 0 4px 4px 0;
301
+ padding: 0 0 0 4px;
302
+ color: #444444;
303
+ overflow-x: hidden;
304
+ overflow-y: auto;
305
+ }
306
+
307
+ .chosen-container .chosen-results li {
308
+ display: none;
309
+ margin: 0;
310
+ padding: 5px 6px;
311
+ line-height: 15px;
312
+ word-wrap: break-word;
313
+ list-style: none;
314
+ }
315
+
316
+ .chosen-container .chosen-results li.active-result {
317
+ display: list-item;
318
+ cursor: pointer;
319
+ }
320
+
321
+ .chosen-container .chosen-results li.disabled-result {
322
+ display: list-item;
323
+ color: #cccccc;
324
+ cursor: default;
325
+ }
326
+
327
+ .chosen-container .chosen-results li.highlighted {
328
+ color: #ffffff;
329
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
330
+ background-image: linear-gradient(
331
+ #3875d7 20%,
332
+ #2a62bc 90%
333
+ );
334
+ background-color: #3875d7;
335
+ }
336
+
337
+ .chosen-container .chosen-results li.no-results {
338
+ display: list-item;
339
+ color: #777777;
340
+ background: #f4f4f4;
341
+ }
342
+
343
+ .chosen-container .chosen-results li.group-result {
344
+ display: list-item;
345
+ font-weight: bold;
346
+ cursor: default;
347
+ }
348
+
349
+ .chosen-container .chosen-results li.group-option {
350
+ padding-left: 15px;
351
+ }
352
+
353
+ .chosen-container .chosen-results li em {
354
+ text-decoration: underline;
355
+ font-style: normal;
356
+ }
357
+
358
+ /* @end */
359
+
360
+ /* @group Multi Chosen */
361
+
362
+ .chosen-container-multi .chosen-choices {
363
+ position: relative;
364
+ width: 100%;
365
+ height: auto;
366
+ margin: 0;
367
+ padding: 0 5px;
368
+ overflow: hidden;
369
+ border: 1px solid #aaaaaa;
370
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
371
+ background-image: linear-gradient(
372
+ #eeeeee 1%,
373
+ #ffffff 15%
374
+ );
375
+ background-color: #ffffff;
376
+ cursor: text;
377
+ }
378
+
379
+ .chosen-container-multi .chosen-choices li {
380
+ float: left;
381
+ list-style: none;
382
+ }
383
+
384
+ .chosen-container-multi .chosen-choices li.search-field {
385
+ margin: 0;
386
+ padding: 0;
387
+ white-space: nowrap;
388
+ }
389
+
390
+ .chosen-container-multi .chosen-choices li.search-field input[type='text'] {
391
+ width: 25px;
392
+ height: 25px;
393
+ margin: 1px 0;
394
+ padding: 0;
395
+ color: #999999;
396
+ border: 0 !important;
397
+ border-radius: 0;
398
+ background: transparent !important;
399
+ outline: 0;
400
+ -webkit-box-shadow: none;
401
+ box-shadow: none;
402
+ font-family: sans-serif;
403
+ font-size: 100%;
404
+ line-height: normal;
405
+ }
406
+
407
+ .chosen-container-multi .chosen-choices li.search-choice {
408
+ position: relative;
409
+ max-width: 100%;
410
+ margin: 3px 5px 3px 0;
411
+ padding: 3px 20px 3px 5px;
412
+ color: #333333;
413
+ border: 1px solid #aaaaaa;
414
+ border-radius: 3px;
415
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eeeeee));
416
+ background-image: linear-gradient(
417
+ #f4f4f4 20%,
418
+ #f0f0f0 50%,
419
+ #e8e8e8 52%,
420
+ #eeeeee 100%
421
+ );
422
+ background-color: #eeeeee;
423
+ background-repeat: repeat-x;
424
+ background-size: 100% 19px;
425
+ background-clip: padding-box;
426
+ -webkit-box-shadow: 0 0 2px #ffffff inset,
427
+ 0 1px 0 rgba(0, 0, 0, 0.05);
428
+ box-shadow: 0 0 2px #ffffff inset,
429
+ 0 1px 0 rgba(0, 0, 0, 0.05);
430
+ line-height: 13px;
431
+ cursor: default;
432
+ }
433
+
434
+ .chosen-container-multi .chosen-choices li.search-choice span {
435
+ word-wrap: break-word;
436
+ }
437
+
438
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
439
+ display: block;
440
+ position: absolute;
441
+ top: 4px;
442
+ right: 3px;
443
+ width: 12px;
444
+ height: 12px;
445
+ background: url('../images/chosen-sprite.png') -42px 1px no-repeat;
446
+ font-size: 1px;
447
+ }
448
+
449
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
450
+ background-position: -42px -10px;
451
+ }
452
+
453
+ .chosen-container-multi .chosen-choices li.search-choice-disabled {
454
+ padding-right: 5px;
455
+ color: #666666;
456
+ border: 1px solid #cccccc;
457
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eeeeee));
458
+ background-image: linear-gradient(
459
+ #f4f4f4 20%,
460
+ #f0f0f0 50%,
461
+ #e8e8e8 52%,
462
+ #eeeeee 100%
463
+ );
464
+ background-color: #e4e4e4;
465
+ }
466
+
467
+ .chosen-container-multi .chosen-choices li.search-choice-focus {
468
+ background: #d4d4d4;
469
+ }
470
+
471
+ .chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
472
+ background-position: -42px -10px;
473
+ }
474
+
475
+ .chosen-container-multi .chosen-results {
476
+ margin: 0;
477
+ padding: 0;
478
+ }
479
+
480
+ .chosen-container-multi .chosen-drop .result-selected {
481
+ display: list-item;
482
+ color: #cccccc;
483
+ cursor: default;
484
+ }
485
+
486
+ /* @end */
487
+
488
+ /* @group Active */
489
+
490
+ .chosen-container-active .chosen-single {
491
+ border: 1px solid #5897fb;
492
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
493
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
494
+ }
495
+
496
+ .chosen-container-active.chosen-with-drop .chosen-single {
497
+ border: 1px solid #aaaaaa;
498
+ border-bottom-right-radius: 0;
499
+ border-bottom-left-radius: 0;
500
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
501
+ background-image: linear-gradient(
502
+ #eeeeee 20%,
503
+ #ffffff 80%
504
+ );
505
+ -webkit-box-shadow: 0 1px 0 #ffffff inset;
506
+ box-shadow: 0 1px 0 #ffffff inset;
507
+ }
508
+
509
+ .chosen-container-active.chosen-with-drop .chosen-single div {
510
+ border-left: none;
511
+ background: transparent;
512
+ }
513
+
514
+ .chosen-container-active.chosen-with-drop .chosen-single div b {
515
+ background-position: -18px 2px;
516
+ }
517
+
518
+ .chosen-container-active .chosen-choices {
519
+ border: 1px solid #5897fb;
520
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
521
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
522
+ }
523
+
524
+ .chosen-container-active .chosen-choices li.search-field input[type='text'] {
525
+ color: #222222 !important;
526
+ }
527
+
528
+ /* @end */
529
+
530
+ /* @group Disabled Support */
531
+
532
+ .chosen-disabled {
533
+ opacity: 0.5 !important;
534
+ cursor: default;
535
+ }
536
+
537
+ .chosen-disabled .chosen-single {
538
+ cursor: default;
539
+ }
540
+
541
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
542
+ cursor: default;
543
+ }
544
+
545
+ /* @end */
546
+
547
+ /* @group Right to Left */
548
+
549
+ .chosen-rtl {
550
+ text-align: right;
551
+ }
552
+
553
+ .chosen-rtl .chosen-single {
554
+ padding: 0 8px 0 0;
555
+ overflow: visible;
556
+ }
557
+
558
+ .chosen-rtl .chosen-single span {
559
+ margin-right: 0;
560
+ margin-left: 26px;
561
+ direction: rtl;
562
+ }
563
+
564
+ .chosen-rtl .chosen-single-with-deselect span {
565
+ margin-left: 38px;
566
+ }
567
+
568
+ .chosen-rtl .chosen-single div {
569
+ right: auto;
570
+ left: 3px;
571
+ }
572
+
573
+ .chosen-rtl .chosen-single abbr {
574
+ right: auto;
575
+ left: 26px;
576
+ }
577
+
578
+ .chosen-rtl .chosen-choices li {
579
+ float: right;
580
+ }
581
+
582
+ .chosen-rtl .chosen-choices li.search-field input[type='text'] {
583
+ direction: rtl;
584
+ }
585
+
586
+ .chosen-rtl .chosen-choices li.search-choice {
587
+ margin: 3px 5px 3px 0;
588
+ padding: 3px 5px 3px 19px;
589
+ }
590
+
591
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
592
+ right: auto;
593
+ left: 4px;
594
+ }
595
+
596
+ .chosen-rtl.chosen-container-single .chosen-results {
597
+ margin: 0 0 4px 4px;
598
+ padding: 0 4px 0 0;
599
+ }
600
+
601
+ .chosen-rtl .chosen-results li.group-option {
602
+ padding-right: 15px;
603
+ padding-left: 0;
604
+ }
605
+
606
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
607
+ border-right: none;
608
+ }
609
+
610
+ .chosen-rtl .chosen-search input[type='text'] {
611
+ padding: 4px 5px 4px 20px;
612
+ background: url('../images/chosen-sprite.png') no-repeat -30px -20px;
613
+ direction: rtl;
614
+ }
615
+
616
+ .chosen-rtl.chosen-container-single .chosen-single div b {
617
+ background-position: 6px 2px;
618
+ }
619
+
620
+ .chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
621
+ background-position: -12px 2px;
622
+ }
623
+
624
+ /* @end */
625
+
626
+ /* @group Retina compatibility */
627
+
628
+ @media
629
+ only screen
630
+ and (-webkit-min-device-pixel-ratio : 1.5),
631
+ only screen
632
+ and (min-resolution : 144dpi),
633
+ only screen
634
+ and (min-resolution : 1.5dppx) {
635
+ .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
636
+ .chosen-container-single .chosen-search input[type='text'],
637
+ .chosen-container-single .chosen-single abbr,
638
+ .chosen-container-single .chosen-single div b,
639
+ .chosen-container .chosen-results-scroll-down span,
640
+ .chosen-container .chosen-results-scroll-up span,
641
+ .chosen-rtl .chosen-search input[type='text'] {
642
+ background-image: url('../images/chosen-sprite@2x.png') !important;
643
+ background-repeat: no-repeat !important;
644
+ background-size: 52px 37px !important;
645
+ }
646
+ }
647
+
648
+ /* @end */
649
+
650
+ .in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent,
651
+ #customize-theme-controls .customize-pane-child.current-section-parent {
652
+ -webkit-transform: translateX(-100%);
653
+ -ms-transform: translateX(-100%);
654
+ transform: translateX(-100%);
655
+ }
656
+
657
+ /** Repeater Control **/
658
+
659
+ .repeater-item {
660
+ background: #ffffff;
661
+ padding: 20px;
662
+ border-radius: .25em;
663
+ border: 1px solid #d6d6d6;
664
+ margin-bottom: 1em;
665
+ }
666
+
667
+ .repeater-item .customize-control {
668
+ float: none
669
+ }
670
+
671
+ button#ogf-repeater-control-remove-field {
672
+ background: #bf0000;
673
+ color: white;
674
+ border-radius: .25em;
675
+ border: 0;
676
+ box-shadow: none;
677
+ }
678
+
679
+ .ogf_custom_selectors_actions {
680
+ margin-top: 1em
681
+ }
682
+
683
+ .ogf_save_elements_button {
684
+ float: right
685
+ }
686
+
687
+ /** Range Slider **/
688
+
689
+ .slider-custom-control {
690
+ margin-bottom: 30px;
691
+ }
692
+ .slider-custom-control input[type=number]::-webkit-inner-spin-button,
693
+ .slider-custom-control input[type=number]::-webkit-outer-spin-button {
694
+ -webkit-appearance: none;
695
+ margin: 0;
696
+ }
697
+ .slider-custom-control input[type=number] {
698
+ -moz-appearance: textfield;
699
+ }
700
+ .slider-custom-control .customize-control-title {
701
+ display: inline-block;
702
+ }
703
+ .slider-custom-control input[type=number] {
704
+ text-align: right;
705
+ width: 50px;
706
+ float: right;
707
+ }
708
+ .slider-custom-control .slider {
709
+ width: 65%;
710
+ float: left;
711
+ margin: 10px 0 10px;
712
+ }
713
+ .slider-custom-control .slider-reset {
714
+ float: right;
715
+ cursor: pointer;
716
+ }
717
+ .slider-custom-control .slider-value {
718
+ border: none;
719
+ text-align: right;
720
+ width: 50px;
721
+ margin-right: 5px;
722
+ }
723
+ .slider-custom-control .slider-value,
724
+ .slider-custom-control .slider-unit {
725
+ float: right;
726
+ }
727
+ .slider-custom-control .ui-widget.ui-widget-content {
728
+ border: 1px solid #f4f4f4;
729
+ }
730
+ .slider-custom-control .ui-corner-all,
731
+ .slider-custom-control .ui-corner-bottom,
732
+ .slider-custom-control .ui-corner-right,
733
+ .slider-custom-control .ui-corner-br {
734
+ border-bottom-right-radius: 3px;
735
+ }
736
+ .slider-custom-control .ui-corner-all,
737
+ .slider-custom-control .ui-corner-bottom,
738
+ .slider-custom-control .ui-corner-left,
739
+ .slider-custom-control .ui-corner-bl {
740
+ border-bottom-left-radius: 3px;
741
+ }
742
+ .slider-custom-control .ui-corner-all,
743
+ .slider-custom-control .ui-corner-top,
744
+ .slider-custom-control .ui-corner-right,
745
+ .slider-custom-control .ui-corner-tr {
746
+ border-top-right-radius: 3px;
747
+ }
748
+ .slider-custom-control .ui-corner-all,
749
+ .slider-custom-control .ui-corner-top,
750
+ .slider-custom-control .ui-corner-left,
751
+ .slider-custom-control .ui-corner-tl {
752
+ border-top-left-radius: 3px;
753
+ }
754
+ .slider-custom-control .ui-widget-content {
755
+ background: #f4f4f4 none repeat scroll 0 0;
756
+ color: #333;
757
+ }
758
+ .slider-custom-control .ui-slider-horizontal {
759
+ height: 3px;
760
+ }
761
+ .slider-custom-control .ui-slider {
762
+ position: relative;
763
+ text-align: left;
764
+ }
765
+ .slider-custom-control .ui-state-default,
766
+ .slider-custom-control .ui-widget-content .ui-state-default,
767
+ .slider-custom-control .ui-widget-header .ui-state-default,
768
+ .slider-custom-control .ui-button,
769
+ .slider-custom-control .ui-button.ui-state-disabled:hover,
770
+ .slider-custom-control .ui-button.ui-state-disabled:active {
771
+ background: #2885bb none repeat scroll 0 0;
772
+ border: 1px solid #2885bb;
773
+ color: #454545;
774
+ font-weight: normal;
775
+ }
776
+ .slider-custom-control .ui-slider-horizontal .ui-slider-handle {
777
+ margin-left: -7px;
778
+ top: -7px;
779
+ border-radius: 50%;
780
+ }
781
+ .slider-custom-control .ui-slider .ui-slider-handle {
782
+ cursor: pointer;
783
+ height: 14px;
784
+ position: absolute;
785
+ width: 14px;
786
+ z-index: 2;
787
+ }
788
+ .slider-custom-control .dashicons-image-rotate {
789
+ color: #989898;
790
+ font-size: 16px;
791
+ margin-top: 3px;
792
+ }
793
+ .slider-custom-control .dashicons-image-rotate:hover {
794
+ color: #a7a7a7;
795
+ }
796
+
797
+ /** Upsell Button **/
798
+
799
+ .ogf-upsell {
800
+ background: white;
801
+ padding: 25px;
802
+ margin-top: 25px;
803
+ box-shadow: 0px 2px 6px 2px #00000017;
804
+ border-top: 2px solid #0087bf;
805
+ }
806
+
807
+ .upsell__title {
808
+ margin-top: 0;
809
+ font-size: 14px;
810
+ }
811
+
812
+ .upsell__button {
813
+ margin-top: 1em !important
814
+ }
815
+
816
+ /** Customizer Icon **/
817
+
818
+ #accordion-panel-ogf_google_fonts .accordion-section-title,
819
+ #accordion-panel-ogf_google_fonts .accordion-section-title:hover {
820
+ background-image: url('../images/fontsplugin-icon.png') !important;
821
+ background-repeat: no-repeat !important;
822
+ background-size: 16px !important;
823
+ background-position: 15px 50% !important;
824
+ }
trunk/assets/css/deactivation.css ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #deactivation-form {
2
+ display: none
3
+ }
4
+
5
+ #deactivation-form textarea {
6
+ display: block;
7
+ padding: 10px;
8
+ margin: 16px 25px 8px;
9
+ width: 75%;
10
+ }
11
+
12
+ #deactivation-form h1 {
13
+ margin-top: 0;
14
+ font-size: 1.5em
15
+ }
16
+
17
+ #deactivation-form .bottom-row {
18
+ border-top: 1px solid #f1f1f1;
19
+ padding-top: 2em;
20
+ margin-top: 2em;
21
+ }
22
+
23
+ #deactivation-form .buttons {
24
+ display: inline-block;
25
+ float: right;
26
+ }
27
+
28
+ #deactivation-form .button-deactivate {
29
+ margin-left: 1em
30
+ }
31
+
32
+ html.with-featherlight {
33
+ overflow: hidden;
34
+ }
35
+
36
+ .featherlight {
37
+ display: none;
38
+ position:fixed;
39
+ top: 0; right: 0; bottom: 0; left: 0;
40
+ z-index: 2147483647; /* z-index needs to be >= elements on the site. */
41
+ text-align: center;
42
+ white-space: nowrap;
43
+ cursor: pointer;
44
+ background: #333;
45
+ background: rgba(0, 0, 0, 0);
46
+ }
47
+
48
+ .featherlight:last-of-type {
49
+ background: rgba(0, 0, 0, 0.8);
50
+ }
51
+
52
+ .featherlight:before {
53
+ content: '';
54
+ display: inline-block;
55
+ height: 100%;
56
+ vertical-align: middle;
57
+ }
58
+
59
+ .featherlight .featherlight-content {
60
+ position: relative;
61
+ text-align: left;
62
+ vertical-align: middle;
63
+ display: inline-block;
64
+ overflow: auto;
65
+ padding: 50px;
66
+ margin-left: 5%;
67
+ margin-right: 5%;
68
+ max-height: 95%;
69
+ max-width: 600px;
70
+ background: #fff;
71
+ cursor: auto;
72
+ white-space: normal;
73
+
74
+ }
75
+
76
+ .featherlight .featherlight-inner {
77
+ display: block !important;
78
+ }
79
+
80
+ .featherlight script.featherlight-inner,
81
+ .featherlight link.featherlight-inner,
82
+ .featherlight style.featherlight-inner {
83
+ display: none;
84
+ }
85
+
86
+ .featherlight .featherlight-close-icon {
87
+ position: absolute;
88
+ z-index: 9999;
89
+ top: 0;
90
+ right: 0;
91
+ line-height: 25px;
92
+ width: 25px;
93
+ cursor: pointer;
94
+ text-align: center;
95
+ font-family: Arial, sans-serif;
96
+ background: #fff; /* Set the background in case it overlaps the content */
97
+ background: rgba(255, 255, 255, 0.3);
98
+ color: #000;
99
+ border: none;
100
+ padding: 0;
101
+ }
102
+
103
+ .featherlight .featherlight-close-icon::-moz-focus-inner {
104
+ border: 0;
105
+ padding: 0;
106
+ }
107
+
108
+ .featherlight .featherlight-image {
109
+ /* styling */
110
+ width: 100%;
111
+ }
112
+
113
+
114
+ .featherlight-iframe .featherlight-content {
115
+ border-bottom: 0;
116
+ padding: 0;
117
+ -webkit-overflow-scrolling: touch;
118
+ }
119
+
120
+ .featherlight iframe {
121
+ border: none;
122
+ }
123
+
124
+ .featherlight * {
125
+ -webkit-box-sizing: border-box;
126
+ -moz-box-sizing: border-box;
127
+ box-sizing: border-box;
128
+ }
129
+
130
+ @media only screen and (max-width: 1024px) {
131
+ .featherlight .featherlight-content {
132
+ margin-left: 0;
133
+ margin-right: 0;
134
+ max-height: 98%;
135
+ padding: 10px 10px 0;
136
+ border-bottom: 10px solid transparent;
137
+ }
138
+ }
139
+
140
+ @media print {
141
+ html.with-featherlight > * > :not(.featherlight) {
142
+ display: none;
143
+ }
144
+ }
trunk/assets/images/chosen-sprite.png ADDED
Binary file
trunk/assets/images/chosen-sprite@2x.png ADDED
Binary file
trunk/assets/images/fontsplugin-icon.png ADDED
Binary file
trunk/assets/js/chosen.min.js ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /* Chosen v1.8.5 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+
3
+ (function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},o=function(t,e){function s(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},r={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,o,r;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),r=[],s=0,i=(o=t.childNodes).length;s<i;s++)n=o[s],r.push(this.add_option(n,e,t.disabled));return r},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,n,o,r;for(o=new i,s=0,n=(r=t.childNodes).length;s<n;s++)e=r[s],o.add_node(e);return o.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){return this.click_test_action=function(t){return function(e){return t.test_active_click(e)}}(this),this.activate_action=function(t){return function(e){return t.activate_field(e)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||Infinity,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+t.group_label+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,o,r,h;for(e="",h=0,n=0,o=(r=this.results_data).length;n<o&&(s=r[n],i="",""!==(i=s.group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(t){var e,s,i,n,o,r,h,l,c,_,a,u,d,f,p;for(this.no_results_clear(),_=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(o=l[i]).search_match=!1,a=null,u=null,o.highlighted_html="",this.include_option_in_results(o)&&(o.group&&(o.group_match=!1,o.active_options=0),null!=o.group_array_index&&this.results_data[o.group_array_index]&&(0===(a=this.results_data[o.group_array_index]).active_options&&a.search_match&&(_+=1),a.active_options+=1),p=o.group?o.label:o.text,o.group&&!this.group_search||(u=this.search_string_match(p,c),o.search_match=null!=u,o.search_match&&!o.group&&(_+=1),o.search_match?(h.length&&(d=u.index,r=p.slice(0,d),s=p.slice(d,d+h.length),f=p.slice(d+h.length),o.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(f)),null!=a&&(a.group_match=!0)):null!=o.group_array_index&&this.results_data[o.group_array_index].search_match&&(o.search_match=!0)));return this.result_clear_highlight(),_<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <input class="chosen-focus-input" type="text" autocomplete="off" />\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,o;o=(n=t(this)).data("chosen"),"destroy"!==i?o instanceof s||n.data("chosen",new s(this,i)):o instanceof s&&o.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return o(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input.chosen-search-input"),this.focus_field=this.container.find("input.chosen-focus-input"),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){var t;return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):(this.container.on("click.chosen",function(t){t.preventDefault()}),this.focus_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.focus_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),t=function(t){return function(){return t.search_field.val(t.focus_field.val()),t.focus_field.val("")}}(this),this.focus_field.on("keyup.chosen",function(e){return function(s){t(),e.keyup_checker(s)}}(this)),this.focus_field.on("keydown.chosen",function(e){return function(s){t(),e.keydown_checker(s)}}(this)),this.focus_field.on("cut.chosen",function(e){return function(s){setTimeout(t,0),e.clipboard_event_checker(s)}}(this)),this.focus_field.on("paste.chosen",function(e){return function(s){setTimeout(t,0),e.clipboard_event_checker(s)}}(this)))},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.focus_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.focus_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,o;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),o=this.search_results.scrollTop(),n=i+o,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<o)return this.search_results.scrollTop(s)}},n.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},n.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},n.prototype.update_results_content=function(t){return this.search_results.html(t)},n.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),setTimeout(function(t){return function(){return t.focus_field.focus()}}(this),0),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},n.prototype.set_tab_index=function(t){var e,s;if(this.form_field.tabIndex)return s=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=s,null!=(e=this.focus_field[0])?e.tabIndex=s:void 0},n.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):((i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("<div/>").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,o,r,h;if(this.is_multiple){for(o={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s<i;s++)o[n=r[s]]=this.search_field.css(n);return(e=t("<div />").css(o)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
trunk/assets/js/customize-controls.js ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /* global ogf_font_array, ajaxurl, fontsReset, location */
4
+ ( function( api ) {
5
+ api.controlConstructor[ 'typography' ] = api.Control.extend(
6
+ {
7
+ ready: function() {
8
+ const control = this;
9
+
10
+ // Load the Google Font for the preview.
11
+ function addGoogleFont( fontName ) {
12
+ const font = ogf_font_array[ fontName ];
13
+ const weights = jQuery.map(
14
+ font.variants,
15
+ function( value, key ) {
16
+ return key;
17
+ }
18
+ );
19
+ const weightsURL = weights.join( ',' );
20
+ const fontURL = font.family.replace( / /g, '+' ) + ':' + weightsURL;
21
+ wp.customize.previewer.send( 'olympusFontURL', '<link href=\'https://fonts.googleapis.com/css?family=' + fontURL + '\' rel=\'stylesheet\' type=\'text/css\'>' );
22
+ }
23
+
24
+ function isSystemFont( fontID ) {
25
+ if ( fontID.indexOf( 'sf-' ) !== -1 ) {
26
+ return true;
27
+ }
28
+ return false;
29
+ }
30
+
31
+ // Load the font-weights for the newly selected font.
32
+ control.container.on(
33
+ 'change',
34
+ '.typography-font-family select',
35
+ function() {
36
+ const value = jQuery( this ).val();
37
+ control.settings.family.set( value );
38
+ if ( value !== 'default' && ! isSystemFont( value ) ) {
39
+ addGoogleFont( value );
40
+
41
+ const font = ogf_font_array[ value ];
42
+ const weightsSelect = jQuery( '.typography-font-weight select' );
43
+ const newWeights = font.variants;
44
+ weightsSelect.empty();
45
+ jQuery.each(
46
+ newWeights,
47
+ function( key, val ) {
48
+ weightsSelect.append(
49
+ jQuery( '<option></option>' )
50
+ .attr( 'value', key ).text( val )
51
+ );
52
+ }
53
+ );
54
+ }
55
+ }
56
+ );
57
+
58
+ // Show advanced settings.
59
+ control.container.on(
60
+ 'click',
61
+ '.advanced-button',
62
+ function() {
63
+ jQuery( this ).toggleClass( 'open' );
64
+ jQuery( this ).parent().next( '.advanced-settings-wrapper' ).toggleClass( 'show' );
65
+ }
66
+ );
67
+
68
+ // Initialize the wpColorPicker.
69
+ const picker = this.container.find( '.typography-font-color .color-picker-hex' );
70
+
71
+ picker.wpColorPicker(
72
+ {
73
+ change: function() {
74
+ setTimeout(
75
+ function() {
76
+ control.settings.color.set( picker.val() );
77
+ },
78
+ 100
79
+ );
80
+ },
81
+ clear: function() {
82
+ control.settings.color.set( picker.val() );
83
+ },
84
+ }
85
+ );
86
+
87
+ // Initialize chosen.js
88
+ jQuery( '.ogf-select', control.container ).chosen( { width: '85%' } );
89
+
90
+ // Set our slider defaults and initialise the slider
91
+ jQuery( '.slider-custom-control' ).each( function() {
92
+ const sliderValue = jQuery( this ).find( '.customize-control-slider-value' ).val();
93
+ const newSlider = jQuery( this ).find( '.slider' );
94
+ const sliderMaxValue = parseFloat( newSlider.attr( 'slider-max-value' ) );
95
+ const sliderStepValue = parseFloat( newSlider.attr( 'slider-step-value' ) );
96
+
97
+ newSlider.slider( {
98
+ value: sliderValue,
99
+ max: sliderMaxValue,
100
+ step: sliderStepValue,
101
+ slide: function() {
102
+ // Important! When slider stops moving make sure to trigger change event so Customizer knows it has to save the field
103
+ jQuery( this ).parent().find( '.customize-control-slider-value' ).trigger( 'change' );
104
+ },
105
+ } );
106
+ } );
107
+
108
+ // Change the value of the input field as the slider is moved
109
+ jQuery( '.slider' ).on( 'slide', function( event, ui ) {
110
+ jQuery( this ).parent().find( '.customize-control-slider-value' ).val( ui.value );
111
+ } );
112
+
113
+ // Reset slider and input field back to the default value
114
+ jQuery( '.slider-reset' ).on( 'click', function() {
115
+ const resetValue = jQuery( this ).attr( 'slider-reset-value' );
116
+ jQuery( this ).parent().find( '.customize-control-slider-value' ).val( resetValue );
117
+ jQuery( this ).parent().find( '.customize-control-slider-value' ).trigger( 'change' );
118
+ jQuery( this ).parent().find( '.slider' ).slider( 'value', resetValue );
119
+ } );
120
+
121
+ // Update slider if the input field loses focus as it's most likely changed
122
+ jQuery( '.customize-control-slider-value' ).blur( function() {
123
+ let resetValue = jQuery( this ).val();
124
+ const slider = jQuery( this ).parent().find( '.slider' );
125
+ const sliderMinValue = parseInt( slider.attr( 'slider-min-value' ) );
126
+ const sliderMaxValue = parseInt( slider.attr( 'slider-max-value' ) );
127
+
128
+ // Make sure our manual input value doesn't exceed the minimum & maxmium values
129
+ if ( resetValue < sliderMinValue ) {
130
+ resetValue = sliderMinValue;
131
+ jQuery( this ).val( resetValue );
132
+ }
133
+ if ( resetValue > sliderMaxValue ) {
134
+ resetValue = sliderMaxValue;
135
+ jQuery( this ).val( resetValue );
136
+ }
137
+ jQuery( this ).parent().find( '.slider' ).slider( 'value', resetValue );
138
+ } );
139
+ },
140
+ /**
141
+ * Embed the control in the document.
142
+ *
143
+ * Override the embed() method to do nothing,
144
+ * so that the control isn't embedded on load,
145
+ * unless the containing section is already expanded.
146
+ *
147
+ */
148
+ embed: function() {
149
+ const control = this;
150
+ const sectionId = control.section();
151
+ if ( ! sectionId ) {
152
+ return;
153
+ }
154
+ wp.customize.section( sectionId, function( section ) {
155
+ section.expanded.bind( function( expanded ) {
156
+ if ( expanded ) {
157
+ control.actuallyEmbed();
158
+ }
159
+ } );
160
+ } );
161
+ },
162
+ /**
163
+ * Deferred embedding of control when actually
164
+ *
165
+ * This function is called in Section.onChangeExpanded() so the control
166
+ * will only get embedded when the Section is first expanded.
167
+ */
168
+ actuallyEmbed: function() {
169
+ const control = this;
170
+ if ( 'resolved' === control.deferred.embedded.state() ) {
171
+ return;
172
+ }
173
+ control.renderContent();
174
+ control.deferred.embedded.resolve(); // This triggers control.ready().
175
+ },
176
+ }
177
+ );
178
+
179
+ wp.customize.control( 'ogf_reset_fonts', function( control ) {
180
+ control.container.find( '.button' ).on( 'click', function( event ) {
181
+ event.preventDefault();
182
+
183
+ const data = {
184
+ wp_customize: 'on',
185
+ action: 'customizer_reset',
186
+ security: fontsReset.nonce,
187
+ };
188
+
189
+ const confirmReset = confirm( fontsReset.confirm );
190
+
191
+ if ( ! confirmReset ) {
192
+ return;
193
+ }
194
+
195
+ jQuery( this ).attr( 'disabled', 'disabled' );
196
+
197
+ jQuery.post( ajaxurl, data, function( result ) {
198
+ wp.customize.state( 'saved' ).set( true );
199
+ location.reload();
200
+ } );
201
+ } );
202
+ } );
203
+ }( wp.customize ) );
204
+
205
+ /* === Checkbox Multiple Control === */
206
+ jQuery( document ).ready( function() {
207
+ jQuery( '.customize-multiple-checkbox-control input[type="checkbox"]' ).on( 'change',
208
+ function() {
209
+ const checkboxValues = jQuery( this ).parents( '.customize-control' ).find( 'input[type="checkbox"]:checked' ).map(
210
+ function() {
211
+ return this.value;
212
+ }
213
+ ).get().join( ',' );
214
+
215
+ jQuery( this ).parents( '.customize-control' ).find( 'input[type="hidden"]' ).val( checkboxValues ).trigger( 'change' );
216
+ }
217
+ );
218
+ } );
219
+
220
+ /* === Multiple Fonts Control === */
221
+ ( function( api ) {
222
+ api.controlConstructor[ 'typography-multiselect' ] = api.Control.extend( {
223
+ ready: function() {
224
+ const control = this;
225
+ // Initialize chosen.js
226
+ jQuery( '.ogf-select', control.container ).chosen( { width: '85%' } );
227
+ jQuery( 'select', control.container ).change(
228
+ function() {
229
+ let selectValue = jQuery( this ).val();
230
+ selectValue = ( null === selectValue ) ? [] : selectValue;
231
+ control.setting.set( selectValue );
232
+ }
233
+ );
234
+ },
235
+ } );
236
+ }( wp.customize ) );
trunk/assets/js/customize-preview.js ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /* global ogf_elements, ogf_system_fonts */
4
+ jQuery( document ).ready(
5
+ function() {
6
+ // Retrieve the Google Fonts url from the Customizer and append it to head.
7
+ wp.customize.preview.bind(
8
+ 'olympusFontURL',
9
+ function( url ) {
10
+ jQuery( 'head' ).append( url );
11
+ }
12
+ );
13
+
14
+ // Update the font family for this element.
15
+ function fontFamilyChange( selector, value ) {
16
+ if ( value === 'default' ) {
17
+ jQuery( selector ).css( 'font-family', '' );
18
+ wp.customize.preview.send( 'refresh' );
19
+ } else if ( isSystemFont( value ) ) {
20
+ jQuery( selector ).each( function( i, v ) {
21
+ const fontID = value.replace( 'sf-', '' );
22
+ v.style.setProperty( 'font-family', ogf_system_fonts[ fontID ].stack, 'important' );
23
+ } );
24
+ } else {
25
+ jQuery( selector ).each( function( i, v ) {
26
+ v.style.setProperty( 'font-family', '"' + value.split( '-' ).join( ' ' ) + '"', 'important' );
27
+ } );
28
+ }
29
+ }
30
+
31
+ function isSystemFont( fontID ) {
32
+ if ( fontID.indexOf( 'sf-' ) !== -1 ) {
33
+ return true;
34
+ }
35
+ return false;
36
+ }
37
+
38
+ // Loop through the elements and bind the controls.
39
+ jQuery.map( ogf_elements, function( val, id ) {
40
+ wp.customize(
41
+ id + '_font',
42
+ function( value ) {
43
+ value.bind(
44
+ function( to ) {
45
+ fontFamilyChange( val.selectors, to );
46
+ }
47
+ );
48
+ }
49
+ );
50
+
51
+ wp.customize(
52
+ id + '_font_weight',
53
+ function( value ) {
54
+ value.bind(
55
+ function( to ) {
56
+ if ( to === '0' ) {
57
+ wp.customize.preview.send( 'refresh' );
58
+ } else {
59
+ jQuery( val.selectors ).each( function( i, v ) {
60
+ v.style.setProperty( 'font-weight', to, 'important' );
61
+ } );
62
+ }
63
+ }
64
+ );
65
+ }
66
+ );
67
+
68
+ wp.customize(
69
+ id + '_font_style',
70
+ function( value ) {
71
+ value.bind(
72
+ function( to ) {
73
+ jQuery( val.selectors ).each( function( i, v ) {
74
+ v.style.setProperty( 'font-style', to, 'important' );
75
+ } );
76
+ }
77
+ );
78
+ }
79
+ );
80
+
81
+ wp.customize(
82
+ id + '_font_color',
83
+ function( value ) {
84
+ value.bind(
85
+ function( to ) {
86
+ jQuery( val.selectors ).each( function( i, v ) {
87
+ v.style.setProperty( 'color', to, 'important' );
88
+ } );
89
+ }
90
+ );
91
+ }
92
+ );
93
+
94
+ wp.customize(
95
+ id + '_font_size',
96
+ function( value ) {
97
+ value.bind(
98
+ function( to ) {
99
+ jQuery( val.selectors ).each( function( i, v ) {
100
+ if ( to === '' ) {
101
+ wp.customize.preview.send( 'refresh' );
102
+ } else {
103
+ v.style.setProperty( 'font-size', to + 'px', 'important' );
104
+ }
105
+ } );
106
+ }
107
+ );
108
+ }
109
+ );
110
+
111
+ wp.customize(
112
+ id + '_line_height',
113
+ function( value ) {
114
+ value.bind(
115
+ function( to ) {
116
+ jQuery( val.selectors ).each( function( i, v ) {
117
+ v.style.setProperty( 'line-height', to, 'important' );
118
+ } );
119
+ }
120
+ );
121
+ }
122
+ );
123
+ } );
124
+ }
125
+ ); // jQuery( document ).ready
trunk/assets/js/customizer-repeater.js ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global ogf_custom_selectors_url */
2
+ 'use strict';
3
+
4
+ jQuery( document ).ready( function() {
5
+ 'use strict';
6
+ const themeControls = jQuery( '#customize-theme-controls' );
7
+
8
+ /**
9
+ * This adds a new box to repeater
10
+ */
11
+ themeControls.on( 'click', '.customizer-repeater-new-field', function() {
12
+ const parent = jQuery( this ).closest( '.customize-control' );
13
+
14
+ if ( typeof parent !== 'undefined' ) {
15
+ /* Clone the first box*/
16
+ const field = parent.find( '.customizer-repeater-general-control-repeater-container:first' ).clone( true, true );
17
+
18
+ if ( typeof field !== 'undefined' ) {
19
+ /*Show delete box button because it's not the first box*/
20
+ field.find( '#ogf-repeater-control-remove-field' ).show();
21
+
22
+ /*Remove value from text field*/
23
+ field.find( '.customizer-repeater-control' ).val( '' );
24
+
25
+ /*Append new box*/
26
+ parent.find( '.customizer-repeater-general-control-repeater-container:first' ).parent().append( field );
27
+
28
+ /*Refresh values*/
29
+ customizerRepeaterRefreshValues();
30
+ }
31
+ }
32
+ return false;
33
+ } );
34
+
35
+ themeControls.on( 'click', '#ogf-repeater-control-remove-field', function() {
36
+ const control = jQuery( this ).closest( '.customizer-repeater-general-control-repeater-container' );
37
+ if ( typeof control !== 'undefined' ) {
38
+ control.hide( 250, function() {
39
+ control.remove();
40
+ customizerRepeaterRefreshValues();
41
+ } );
42
+ }
43
+ return false;
44
+ } );
45
+
46
+ themeControls.on( 'keyup', '.customizer-repeater-control', function() {
47
+ customizerRepeaterRefreshValues();
48
+ } );
49
+
50
+ /**
51
+ * Save elements and refresh the customizer.
52
+ */
53
+ themeControls.on( 'click', '.ogf_save_elements_button', function() {
54
+ wp.customize.previewer.save().done( function() {
55
+ window.location.href = ogf_custom_selectors_url;
56
+ } );
57
+ } );
58
+ } );
59
+
60
+ function customizerRepeaterRefreshValues() {
61
+ 'use strict';
62
+ jQuery( '.customizer-repeater-general-control-repeater' ).each( function() {
63
+ const values = [];
64
+ jQuery( this ).find( '.customizer-repeater-general-control-repeater-container' ).each( function() {
65
+ let label = jQuery( this ).find( '.customizer-repeater-label-control' ).val();
66
+ const description = jQuery( this ).find( '.customizer-repeater-description-control' ).val();
67
+ const selectors = jQuery( this ).find( '.customizer-repeater-selectors-control' ).val();
68
+
69
+ if ( label !== '' || description !== '' || selectors !== '' ) {
70
+ label = ( label !== '' ? label : selectors );
71
+ values.push( {
72
+ label: escapeHtml( label ),
73
+ description: escapeHtml( description ),
74
+ selectors: escapeHtml( selectors ),
75
+ } );
76
+ }
77
+ } );
78
+ jQuery( this ).find( '.customizer-repeater-colector' ).val( JSON.stringify( values ) );
79
+ jQuery( this ).find( '.customizer-repeater-colector' ).trigger( 'change' );
80
+ } );
81
+ }
82
+
83
+ const entityMap = {
84
+ '&': '&amp;',
85
+ '<': '&lt;',
86
+ '>': '&gt;',
87
+ '"': '&quot;',
88
+ '\'': '&#39;',
89
+ '/': '&#x2F;',
90
+ };
91
+
92
+ function escapeHtml( string ) {
93
+ 'use strict';
94
+ //noinspection JSUnresolvedFunction
95
+ string = String( string ).replace( new RegExp( '\r?\n', 'g' ), '<br />' );
96
+ string = String( string ).replace( /\\/g, '&#92;' );
97
+ return String( string ).replace( /[&<>"'\/]/g, function( s ) {
98
+ return entityMap[ s ];
99
+ } );
100
+ }
trunk/assets/js/deactivation.js ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /* global ajaxurl */
4
+ jQuery( document ).ready(
5
+ function() {
6
+ 'use strict';
7
+ const form =
8
+ '<form id="deactivation-form" method="post">' +
9
+ '<h1>Help Us Do Better</h1>' +
10
+ '<p>We\'re sorry our Google Fonts plugin didn\'t work for you. Would you mind letting us know where we went wrong so we can fix it?</p>' +
11
+ '<ul class="reasons" style="padding: 0">' +
12
+ '<p><strong>Why you are deactivating this plugin?</strong></p>' +
13
+ ' <li><label class="reason expand"><input type="radio" name="reason" value="missing-font" /> The font I need is missing</label><textarea placeholder="Which font do you need?"></textarea></li>' +
14
+ ' <li><label class="reason expand"><input type="radio" name="reason" value="missing-feature" /> The plugin is great, but I need specific feature that you don\'t support</label><textarea placeholder="Which feature do you need?"></textarea></li>' +
15
+ '<li><label class="reason expand"><input type="radio" name="reason" value="not-working"> The plugin is not working</label><textarea placeholder="Please clarify which part of the plugin isn\'t working so we can try and fix it..."></textarea></li>' +
16
+ '<li><label class="reason expand"><input type="radio" name="reason" value="other-plugin"> I found a better plugin</label><textarea placeholder="What\'s the plugin name?"></textarea></li>' +
17
+ '<li><label class="reason expand"><input type="radio" name="reason" value="user-stuck"> I couldn\'t understand how to make it work</label><textarea placeholder="Where did you get stuck?"></textarea></li>' +
18
+ '<li><label class="reason"><input type="radio" name="reason" value="debugging"> It\'s a temporary deactivation. I\'m just debugging an issue.</label></li>' +
19
+ '<li><label class="reason expand"><input type="radio" name="reason" value="other"> Other</label><textarea placeholder="Please explain your reason for deactivation..."></textarea></li></ul>' +
20
+ '<div class="bottom-row">' +
21
+ '<label><input type="checkbox" name="anon" class="anonymous-feedback" value="1"> Submit feedback annoymously</label>' +
22
+ '<div class="buttons"><input type="button" class="button button-secondary button-close" value="Cancel" /><input type="button" name="deactivate" class="button button-primary button-deactivate allow-deactivate" value="Skip and Deactivate" /></div>' +
23
+ '</div>' +
24
+ '</form>';
25
+
26
+ jQuery( form ).appendTo( jQuery( 'body' ) );
27
+ const deactivateLink = jQuery( '#the-list [data-slug="olympus-google-fonts"] .deactivate a' );
28
+
29
+ jQuery( '.reason' ).click(
30
+ function() {
31
+ jQuery( '.reasons textarea' ).hide();
32
+ jQuery( this ).next( 'textarea' ).css( 'display', 'block' );
33
+ jQuery( '.button-deactivate' ).val( 'Submit & Deactivate' );
34
+ }
35
+ );
36
+
37
+ deactivateLink.click(
38
+ function( e ) {
39
+ e.preventDefault();
40
+ jQuery( '.reasons textarea' ).hide();
41
+ jQuery.featherlight( '#deactivation-form' );
42
+ }
43
+ );
44
+
45
+ jQuery( '#deactivation-form .button-close' ).click(
46
+ function( e ) {
47
+ e.preventDefault();
48
+ jQuery.featherlight.current().close();
49
+ }
50
+ );
51
+
52
+ jQuery( '.button-deactivate' ).click(
53
+ function() {
54
+ const anon = jQuery( '#deactivation-form .anonymous-feedback' ).is( ':checked' );
55
+ const reason = jQuery( '.reason input[type=radio]:checked' ).first();
56
+ const explanation = reason.parent().next( 'textarea' );
57
+
58
+ const data = {
59
+ action: 'ogf_submit_feedback',
60
+ reason: reason.val(),
61
+ explanation: explanation.val(),
62
+ anon: anon,
63
+ };
64
+
65
+ jQuery.post(
66
+ ajaxurl,
67
+ data,
68
+ function() {
69
+ window.location = jQuery( deactivateLink ).attr( 'href' );
70
+ }
71
+ );
72
+ }
73
+ );
74
+ }
75
+ );
trunk/assets/js/dismiss.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /* global ajaxurl */
4
+ jQuery( document ).ready( function() {
5
+ // Hook into the "notice-dismiss-welcome" class we added to the notice, so
6
+ // Only listen to YOUR notices being dismissed
7
+ jQuery( document ).on(
8
+ 'click',
9
+ '.notice-dismiss-dc .notice-dismiss',
10
+ function() {
11
+ // Read the "data-notice" information to track which notice
12
+ // is being dismissed and send it via AJAX
13
+ const type = jQuery( this ).closest( '.notice-dismiss-dc' ).data( 'notice' );
14
+ // Make an AJAX call
15
+ // Since WP 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
16
+ jQuery.ajax(
17
+ ajaxurl,
18
+ {
19
+ type: 'POST',
20
+ data: {
21
+ action: 'ogf_dismiss_notice',
22
+ type: type,
23
+ },
24
+ }
25
+ );
26
+ }
27
+ );
28
+ } );
trunk/assets/js/featherlight.min.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Featherlight - ultra slim jQuery lightbox
3
+ * Version 1.7.13 - http://noelboss.github.io/featherlight/
4
+ *
5
+ * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
6
+ * MIT Licensed.
7
+ **/
8
+ !function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}function c(a,b){var c={};for(var d in a)d in b&&(c[d]=a[d],delete a[d]);return c}function d(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));if(a.fn.jquery.match(/-ajax/))return void("console"in window&&window.console.info("Featherlight needs regular jQuery, not the slim version."));var e=[],f=function(b){return e=a.grep(e,function(a){return a!==b&&a.$instance.closest("body").length>0})},g={allow:1,allowfullscreen:1,frameborder:1,height:1,longdesc:1,marginheight:1,marginwidth:1,mozallowfullscreen:1,name:1,referrerpolicy:1,sandbox:1,scrolling:1,src:1,srcdoc:1,style:1,webkitallowfullscreen:1,width:1},h={keyup:"onKeyUp",resize:"onResize"},i=function(c){a.each(b.opened().reverse(),function(){return c.isDefaultPrevented()||!1!==this[h[c.type]](c)?void 0:(c.preventDefault(),c.stopPropagation(),!1)})},j=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(h,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,i)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"&#10005;",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=!1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['<div class="'+e+"-loading "+e+'">','<div class="'+e+'-content">','<button class="'+e+"-close-icon "+d.namespace+'-close" aria-label="Close">',d.closeIcon,"</button>",'<div class="'+d.namespace+'-inner">'+d.loading+"</div>","</div>","</div>"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){if(!b.isDefaultPrevented()){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(d.close(b),b.preventDefault())}}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f=b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){return this.$instance.removeClass(this.namespace+"-loading"),this.$instance.toggleClass(this.namespace+"-iframe",b.is("iframe")),this.$instance.find("."+this.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(this.$instance[0],b[0])?"":b),this.$content=b.addClass(this.namespace+"-inner"),this},open:function(b){var c=this;if(c.$instance.hide().appendTo(c.root),!(b&&b.isDefaultPrevented()||c.beforeOpen(b)===!1)){b&&b.preventDefault();var d=c.getContent();if(d)return e.push(c),j(!0),c.$instance.fadeIn(c.openSpeed),c.beforeContent(b),a.when(d).always(function(a){c.setContent(a),c.afterContent(b)}).then(c.$instance.promise()).done(function(){c.afterOpen(b)})}return c.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,d=a.Deferred();return c.beforeClose(b)===!1?d.reject():(0===f(c).length&&j(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),d.resolve()})),d.promise()},resize:function(a,b){if(a&&b){this.$content.css("width","").css("height","");var c=Math.max(a/(this.$content.parent().width()-1),b/(this.$content.parent().height()-1));c>1&&(c=b/Math.floor(b/c),this.$content.css("width",""+a/c+"px").css("height",""+b/c+"px"))}},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff?|bmp|svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('<img src="'+b+'" alt="" class="'+c.namespace+'-image" />');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("<div></div>").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var e=new a.Deferred,f=a("<iframe/>"),h=d(this,"iframe"),i=c(h,g);return f.hide().attr("src",b).attr(i).css(h).on("load",function(){e.resolve(f.show())}).appendTo(this.$instance.find("."+this.namespace+"-content")),e.promise()}},text:{process:function(b){return a("<div>",{text:b})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(b,c){var d=this,e=new RegExp("^data-"+c+"-(.*)"),f={};return b&&b.attributes&&a.each(b.attributes,function(){var b=this.name.match(e);if(b){var c=this.value,g=a.camelCase(b[1]);if(a.inArray(g,d.functionAttributes)>=0)c=new Function(c);else try{c=JSON.parse(c)}catch(h){}f[g]=c}}),f},extend:function(b,c){var d=function(){this.constructor=b};return d.prototype=this.prototype,b.prototype=new d,b.__super__=this.prototype,a.extend(b,this,c),b.defaults=b.prototype,b},attach:function(b,c,d){var e=this;"object"!=typeof c||c instanceof a!=!1||d||(d=c,c=void 0),d=a.extend({},d);var f,g=d.namespace||e.defaults.namespace,h=a.extend({},e.defaults,e.readElementConfig(b[0],g),d),i=function(g){var i=a(g.currentTarget),j=a.extend({$source:b,$currentTarget:i},e.readElementConfig(b[0],h.namespace),e.readElementConfig(g.currentTarget,h.namespace),d),k=f||i.data("featherlight-persisted")||new e(c,j);"shared"===k.persist?f=k:k.persist!==!1&&i.data("featherlight-persisted",k),j.$currentTarget.blur&&j.$currentTarget.blur(),k.open(g)};return b.on(h.openTrigger+"."+h.namespace,h.filter,i),{filter:h.filter,handler:i}},current:function(){var a=this.opened();return a[a.length-1]||null},opened:function(){var b=this;return f(),a.grep(e,function(a){return a instanceof b})},close:function(a){var b=this.current();return b?b.close(a):void 0},_onReady:function(){var b=this;if(b.autoBind){var c=a(b.autoBind);c.each(function(){b.attach(a(this))}),a(document).on("click",b.autoBind,function(d){if(!d.isDefaultPrevented()){var e=a(d.currentTarget),f=c.length;if(c=c.add(e),f!==c.length){var g=b.attach(e);(!g.filter||a(d.target).parentsUntil(e,g.filter).length>0)&&g.handler(d)}}})}},_callbackChain:{onKeyUp:function(b,c){return 27===c.keyCode?(this.closeOnEsc&&a.featherlight.close(c),!1):b(c)},beforeOpen:function(b,c){return a(document.documentElement).addClass("with-featherlight"),this._previouslyActive=document.activeElement,this._$previouslyTabbable=a("a, input, select, textarea, iframe, button, iframe, [contentEditable=true]").not("[tabindex]").not(this.$instance.find("button")),this._$previouslyWithTabIndex=a("[tabindex]").not('[tabindex="-1"]'),this._previousWithTabIndices=this._$previouslyWithTabIndex.map(function(b,c){return a(c).attr("tabindex")}),this._$previouslyWithTabIndex.add(this._$previouslyTabbable).attr("tabindex",-1),document.activeElement.blur&&document.activeElement.blur(),b(c)},afterClose:function(c,d){var e=c(d),f=this;return this._$previouslyTabbable.removeAttr("tabindex"),this._$previouslyWithTabIndex.each(function(b,c){a(c).attr("tabindex",f._previousWithTabIndices[b])}),this._previouslyActive.focus(),0===b.opened().length&&a(document.documentElement).removeClass("with-featherlight"),e},onResize:function(a,b){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),a(b)},afterContent:function(a,b){var c=a(b);return this.$instance.find("[autofocus]:not([disabled])").focus(),this.onResize(b),c}}}),a.featherlight=b,a.fn.featherlight=function(a,c){return b.attach(this,a,c),this},a(document).ready(function(){b._onReady()})}(jQuery);
trunk/assets/js/multiple-checkbox.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ wp.customize.controlConstructor[ 'multiple-checkbox' ] = wp.customize.Control.extend( {
4
+
5
+ // When we're finished loading continue processing.
6
+ ready: function() {
7
+ 'use strict';
8
+
9
+ const control = this;
10
+
11
+ // Save the value
12
+ control.container.on( 'change', 'input', function() {
13
+ const value = [];
14
+ let i = 0;
15
+
16
+ // Build the value as an object using the sub-values from individual checkboxes.
17
+ jQuery.each( control.params.choices, function( key ) {
18
+ if ( control.container.find( 'input[value="' + key + '"]' ).is( ':checked' ) ) {
19
+ value[ i ] = key;
20
+ i++;
21
+ }
22
+ } );
23
+
24
+ // Update the value in the customizer.
25
+ control.setting.set( value );
26
+ } );
27
+ },
28
+
29
+ } );
trunk/assets/js/panels.js ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function( $ ) {
4
+ const api = wp.customize;
5
+
6
+ api.bind(
7
+ 'pane-contents-reflowed',
8
+ function() {
9
+ // Reflow panels
10
+ const panels = [];
11
+
12
+ api.panel.each(
13
+ function( panel ) {
14
+ if (
15
+ 'ogf_panel' !== panel.params.type ||
16
+ 'undefined' === typeof panel.params.panel
17
+ ) {
18
+ return;
19
+ }
20
+ panels.push( panel );
21
+ }
22
+ );
23
+
24
+ panels.sort( api.utils.prioritySort ).reverse();
25
+
26
+ $.each(
27
+ panels,
28
+ function( i, panel ) {
29
+ const parentContainer = $( '#sub-accordion-panel-' + panel.params.panel );
30
+ parentContainer.children( '#accordion-section-ogf_basic' ).after( panel.headContainer );
31
+ }
32
+ );
33
+ }
34
+ );
35
+
36
+ // Extend Panel
37
+ const _panelEmbed = wp.customize.Panel.prototype.embed;
38
+ const _panelIsContextuallyActive = wp.customize.Panel.prototype.isContextuallyActive;
39
+ const _panelAttachEvents = wp.customize.Panel.prototype.attachEvents;
40
+
41
+ wp.customize.Panel = wp.customize.Panel.extend(
42
+ {
43
+ attachEvents: function() {
44
+ if (
45
+ 'ogf_panel' !== this.params.type ||
46
+ 'undefined' === typeof this.params.panel
47
+ ) {
48
+ _panelAttachEvents.call( this );
49
+ return;
50
+ }
51
+
52
+ _panelAttachEvents.call( this );
53
+
54
+ const panel = this;
55
+
56
+ panel.expanded.bind(
57
+ function( expanded ) {
58
+ const parent = api.panel( panel.params.panel );
59
+
60
+ if ( expanded ) {
61
+ parent.contentContainer.addClass( 'current-panel-parent' );
62
+ } else {
63
+ parent.contentContainer.removeClass( 'current-panel-parent' );
64
+ }
65
+ }
66
+ );
67
+
68
+ panel.container.find( '.customize-panel-back' )
69
+ .off( 'click keydown' )
70
+ .on(
71
+ 'click keydown',
72
+ function( event ) {
73
+ if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
74
+ return;
75
+ }
76
+
77
+ event.preventDefault(); // Keep this AFTER the key filter above
78
+
79
+ if ( panel.expanded() ) {
80
+ api.panel( panel.params.panel ).expand();
81
+ }
82
+ }
83
+ );
84
+ },
85
+ embed: function() {
86
+ if (
87
+ 'ogf_panel' !== this.params.type ||
88
+ 'undefined' === typeof this.params.panel
89
+ ) {
90
+ _panelEmbed.call( this );
91
+ return;
92
+ }
93
+
94
+ _panelEmbed.call( this );
95
+
96
+ const panel = this;
97
+ const parentContainer = $( '#sub-accordion-panel-' + this.params.panel );
98
+
99
+ parentContainer.append( panel.headContainer );
100
+ },
101
+ isContextuallyActive: function() {
102
+ if (
103
+ 'ogf_panel' !== this.params.type
104
+ ) {
105
+ return _panelIsContextuallyActive.call( this );
106
+ }
107
+
108
+ const panel = this;
109
+ const children = this._children( 'panel', 'section' );
110
+
111
+ api.panel.each(
112
+ function( child ) {
113
+ if ( ! child.params.panel ) {
114
+ return;
115
+ }
116
+
117
+ if ( child.params.panel !== panel.id ) {
118
+ return;
119
+ }
120
+
121
+ children.push( child );
122
+ }
123
+ );
124
+
125
+ children.sort( api.utils.prioritySort );
126
+
127
+ let activeCount = 0;
128
+
129
+ _( children ).each(
130
+ function( child ) {
131
+ if ( child.active() && child.isContextuallyActive() ) {
132
+ activeCount += 1;
133
+ }
134
+ }
135
+ );
136
+
137
+ return ( activeCount !== 0 );
138
+ },
139
+
140
+ }
141
+ );
142
+ }( jQuery ) );
trunk/blocks/dist/blocks.build.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a){function i(l){if(t[l])return t[l].exports;var e=t[l]={i:l,l:!1,exports:{}};return a[l].call(e.exports,e,e.exports,i),e.l=!0,e.exports}var t={};i.m=a,i.c=t,i.d=function(a,t,l){i.o(a,t)||Object.defineProperty(a,t,{configurable:!1,enumerable:!0,get:l})},i.n=function(a){var t=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(t,"a",t),t},i.o=function(a,i){return Object.prototype.hasOwnProperty.call(a,i)},i.p="",i(i.s=0)}([function(a,i,t){"use strict";Object.defineProperty(i,"__esModule",{value:!0});t(1)},function(a,i,t){"use strict";var l=t(2),e=t(4),__=wp.i18n.__;(0,wp.blocks.registerBlockType)("olympus-google-fonts/google-fonts",{title:__("Google Fonts","olympus-google-fonts"),category:"common",icon:wp.element.createElement("svg",{baseProfile:"tiny",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),wp.element.createElement("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"})),keywords:[__("Fonts","olympus-google-fonts"),__("Heading","olympus-google-fonts")],transforms:e.a,edit:l.a,save:function(){return null}})},function(a,i,t){"use strict";function l(a,i){if(!(a instanceof i))throw new TypeError("Cannot call a class as a function")}function e(a,i){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!i||"object"!==typeof i&&"function"!==typeof i?a:i}function s(a,i){if("function"!==typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function, not "+typeof i);a.prototype=Object.create(i&&i.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),i&&(Object.setPrototypeOf?Object.setPrototypeOf(a,i):a.__proto__=i)}var r=t(3),n=t.n(r),u=function(){function a(a,i){for(var t=0;t<i.length;t++){var l=i[t];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(a,l.key,l)}}return function(i,t,l){return t&&a(i.prototype,t),l&&a(i,l),i}}(),__=wp.i18n.__,m=wp.element,c=m.Component,g=m.Fragment,v=wp.components,y=v.SelectControl,b=v.RangeControl,f=v.PanelBody,o=wp.editor,x=o.RichText,d=o.InspectorControls,h=o.BlockControls,S=o.AlignmentToolbar,k=o.PanelColorSettings,p=function(a){function i(){return l(this,i),e(this,(i.__proto__||Object.getPrototypeOf(i)).apply(this,arguments))}return s(i,a),u(i,[{key:"componentDidUpdate",value:function(a){this.props.attributes.fontID!==a.attributes.fontID&&(this.props.attributes.variant="regular")}},{key:"getFontsForSelect",value:function(){return n.a.items.map(function(a){var i=a.family;return{value:i.replace(/\s+/g,"+"),label:i}})}},{key:"isItalic",value:function(a){return!a.includes("0i")&&"italic"!==a}},{key:"getVariantsForSelect",value:function(a){if(a)return a.variants.filter(this.isItalic).map(function(a){return{value:a,label:a}})}},{key:"getFontObject",value:function(a){if(a)for(var i=0;i<n.a.items.length;i++)if(n.a.items[i].family===a)return n.a.items[i]}},{key:"addGoogleFontToHead",value:function(a,i){if(a&&i){var t=document.head,l=document.createElement("link");l.type="text/css",l.rel="stylesheet",l.href="https://fonts.googleapis.com/css?family="+a.replace(/\s+/g,"+")+":"+i.variants.join(","),t.appendChild(l)}}},{key:"render",value:function(){var a=this.props,i=a.attributes,t=a.setAttributes,l=i.fontID,e=i.content,s=i.align,r=i.variant,n=i.fontSize,u=i.lineHeight,m=i.color,c=i.blockType,v=this.getFontsForSelect();v.unshift({label:"- Select Font -",value:""});var o=this.getFontObject(l.replace(/\+/g," ")),p=this.getVariantsForSelect(o);this.addGoogleFontToHead(l,o);var C=wp.element.createElement(d,null,wp.element.createElement(f,{title:__("Font Settings","olympus-google-fonts")},wp.element.createElement(y,{label:__("Block Type","olympus-google-fonts"),type:"string",value:c,options:[{label:"Paragraph",value:"p"},{label:"H1",value:"h1"},{label:"H2",value:"h2"},{label:"H3",value:"h3"},{label:"H4",value:"h4"},{label:"H5",value:"h5"},{label:"H6",value:"h6"},{label:"Span",value:"span"}],onChange:function(a){return t({blockType:a})}}),wp.element.createElement(y,{label:__("Font","olympus-google-fonts"),type:"string",value:l,options:v,onChange:function(a){return t({fontID:a})}}),wp.element.createElement(y,{label:__("Font Variant","olympus-google-fonts"),type:"string",value:r,options:p,onChange:function(a){return t({variant:a})}}),wp.element.createElement(b,{label:__("Font Size","olympus-google-fonts"),value:n,onChange:function(a){return t({fontSize:a})},allowReset:!0,min:"10",max:"50"}),wp.element.createElement(b,{label:__("Line Height","olympus-google-fonts"),value:u,onChange:function(a){return t({lineHeight:a})},allowReset:!0,min:"1",max:"3",step:"0.1"}),wp.element.createElement(k,{title:__("Color Settings","olympus-google-fonts"),colorSettings:[{value:i.color,onChange:function(a){return t({color:a})},label:__("Text Color","olympus-google-fonts")}]})));return wp.element.createElement(g,null,C,wp.element.createElement(h,null,wp.element.createElement(S,{value:s,onChange:function(a){return t({align:a})}})),wp.element.createElement(x,{tagName:c||"p",value:e,onChange:function(a){return t({content:a})},style:{fontSize:n?n+"px":void 0,textAlign:s,fontFamily:l.replace(/\+/g," "),fontWeight:r,lineHeight:u,color:m},placeholder:__("Add some content...","olympus-google-fonts"),formattingControls:["italic","link"]}))}}]),i}(c);i.a=p},function(a,i){a.exports={kind:"webfonts#webfontList",items:[{family:"ABeeZee",variants:["regular","italic"],subsets:["latin"]},{family:"Abel",variants:["regular"],subsets:["latin"]},{family:"Abhaya Libre",variants:["regular","500","600","700","800"],subsets:["sinhala","latin","latin-ext"]},{family:"Abril Fatface",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Aclonica",variants:["regular"],subsets:["latin"]},{family:"Acme",variants:["regular"],subsets:["latin"]},{family:"Actor",variants:["regular"],subsets:["latin"]},{family:"Adamina",variants:["regular"],subsets:["latin"]},{family:"Advent Pro",variants:["100","200","300","regular","500","600","700"],subsets:["greek","latin","latin-ext"]},{family:"Aguafina Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Akronim",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Aladin",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Aldrich",variants:["regular"],subsets:["latin"]},{family:"Alef",variants:["regular","700"],subsets:["hebrew","latin"]},{family:"Alegreya",variants:["regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Alegreya SC",variants:["regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Alegreya Sans",variants:["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Alegreya Sans SC",variants:["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Aleo",variants:["300","300italic","regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Alex Brush",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Alfa Slab One",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Alice",variants:["regular"],subsets:["cyrillic","cyrillic-ext","latin"]},{family:"Alike",variants:["regular"],subsets:["latin"]},{family:"Alike Angular",variants:["regular"],subsets:["latin"]},{family:"Allan",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Allerta",variants:["regular"],subsets:["latin"]},{family:"Allerta Stencil",variants:["regular"],subsets:["latin"]},{family:"Allura",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Almendra",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Almendra Display",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Almendra SC",variants:["regular"],subsets:["latin"]},{family:"Amarante",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Amaranth",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Amatic SC",variants:["regular","700"],subsets:["hebrew","cyrillic","vietnamese","latin","latin-ext"]},{family:"Amethysta",variants:["regular"],subsets:["latin"]},{family:"Amiko",variants:["regular","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Amiri",variants:["regular","italic","700","700italic"],subsets:["arabic","latin","latin-ext"]},{family:"Amita",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Anaheim",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Andada",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Andika",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Angkor",variants:["regular"],subsets:["khmer"]},{family:"Annie Use Your Telescope",variants:["regular"],subsets:["latin"]},{family:"Anonymous Pro",variants:["regular","italic","700","700italic"],subsets:["cyrillic","greek","latin","latin-ext"]},{family:"Antic",variants:["regular"],subsets:["latin"]},{family:"Antic Didone",variants:["regular"],subsets:["latin"]},{family:"Antic Slab",variants:["regular"],subsets:["latin"]},{family:"Anton",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Arapey",variants:["regular","italic"],subsets:["latin"]},{family:"Arbutus",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Arbutus Slab",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Architects Daughter",variants:["regular"],subsets:["latin"]},{family:"Archivo",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Archivo Black",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Archivo Narrow",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Aref Ruqaa",variants:["regular","700"],subsets:["arabic","latin"]},{family:"Arima Madurai",variants:["100","200","300","regular","500","700","800","900"],subsets:["tamil","vietnamese","latin","latin-ext"]},{family:"Arimo",variants:["regular","italic","700","700italic"],subsets:["hebrew","cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Arizonia",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Armata",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Arsenal",variants:["regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Artifika",variants:["regular"],subsets:["latin"]},{family:"Arvo",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Arya",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Asap",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Asap Condensed",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Asar",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Asset",variants:["regular"],subsets:["latin"]},{family:"Assistant",variants:["200","300","regular","600","700","800"],subsets:["hebrew","latin"]},{family:"Astloch",variants:["regular","700"],subsets:["latin"]},{family:"Asul",variants:["regular","700"],subsets:["latin"]},{family:"Athiti",variants:["200","300","regular","500","600","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Atma",variants:["300","regular","500","600","700"],subsets:["latin","latin-ext","bengali"]},{family:"Atomic Age",variants:["regular"],subsets:["latin"]},{family:"Aubrey",variants:["regular"],subsets:["latin"]},{family:"Audiowide",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Autour One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Average",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Average Sans",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Averia Gruesa Libre",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Averia Libre",variants:["300","300italic","regular","italic","700","700italic"],subsets:["latin"]},{family:"Averia Sans Libre",variants:["300","300italic","regular","italic","700","700italic"],subsets:["latin"]},{family:"Averia Serif Libre",variants:["300","300italic","regular","italic","700","700italic"],subsets:["latin"]},{family:"B612",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"B612 Mono",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Bad Script",variants:["regular"],subsets:["cyrillic","latin"]},{family:"Bahiana",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Bahianita",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bai Jamjuree",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Baloo",variants:["regular"],subsets:["devanagari","vietnamese","latin","latin-ext"]},{family:"Baloo Bhai",variants:["regular"],subsets:["gujarati","vietnamese","latin","latin-ext"]},{family:"Baloo Bhaijaan",variants:["regular"],subsets:["arabic","vietnamese","latin","latin-ext"]},{family:"Baloo Bhaina",variants:["regular"],subsets:["vietnamese","oriya","latin","latin-ext"]},{family:"Baloo Chettan",variants:["regular"],subsets:["malayalam","vietnamese","latin","latin-ext"]},{family:"Baloo Da",variants:["regular"],subsets:["vietnamese","latin","latin-ext","bengali"]},{family:"Baloo Paaji",variants:["regular"],subsets:["vietnamese","latin","gurmukhi","latin-ext"]},{family:"Baloo Tamma",variants:["regular"],subsets:["vietnamese","kannada","latin","latin-ext"]},{family:"Baloo Tammudu",variants:["regular"],subsets:["telugu","vietnamese","latin","latin-ext"]},{family:"Baloo Thambi",variants:["regular"],subsets:["tamil","vietnamese","latin","latin-ext"]},{family:"Balthazar",variants:["regular"],subsets:["latin"]},{family:"Bangers",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Barlow",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Barlow Condensed",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Barlow Semi Condensed",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Barriecito",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Barrio",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Basic",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Battambang",variants:["regular","700"],subsets:["khmer"]},{family:"Baumans",variants:["regular"],subsets:["latin"]},{family:"Bayon",variants:["regular"],subsets:["khmer"]},{family:"Belgrano",variants:["regular"],subsets:["latin"]},{family:"Bellefair",variants:["regular"],subsets:["hebrew","latin","latin-ext"]},{family:"Belleza",variants:["regular"],subsets:["latin","latin-ext"]},{family:"BenchNine",variants:["300","regular","700"],subsets:["latin","latin-ext"]},{family:"Bentham",variants:["regular"],subsets:["latin"]},{family:"Berkshire Swash",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Beth Ellen",variants:["regular"],subsets:["latin"]},{family:"Bevan",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bigelow Rules",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Bigshot One",variants:["regular"],subsets:["latin"]},{family:"Bilbo",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Bilbo Swash Caps",variants:["regular"],subsets:["latin","latin-ext"]},{family:"BioRhyme",variants:["200","300","regular","700","800"],subsets:["latin","latin-ext"]},{family:"BioRhyme Expanded",variants:["200","300","regular","700","800"],subsets:["latin","latin-ext"]},{family:"Biryani",variants:["200","300","regular","600","700","800","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Bitter",variants:["regular","italic","700"],subsets:["latin","latin-ext"]},{family:"Black And White Picture",variants:["regular"],subsets:["latin","korean"]},{family:"Black Han Sans",variants:["regular"],subsets:["latin","korean"]},{family:"Black Ops One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Blinker",variants:["100","200","300","regular","600","700","800","900"],subsets:["latin","latin-ext"]},{family:"Bokor",variants:["regular"],subsets:["khmer"]},{family:"Bonbon",variants:["regular"],subsets:["latin"]},{family:"Boogaloo",variants:["regular"],subsets:["latin"]},{family:"Bowlby One",variants:["regular"],subsets:["latin"]},{family:"Bowlby One SC",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Brawler",variants:["regular"],subsets:["latin"]},{family:"Bree Serif",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Bubblegum Sans",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Bubbler One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Buda",variants:["300"],subsets:["latin"]},{family:"Buenard",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Bungee",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bungee Hairline",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bungee Inline",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bungee Outline",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Bungee Shade",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Butcherman",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Butterfly Kids",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cabin",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Cabin Condensed",variants:["regular","500","600","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Cabin Sketch",variants:["regular","700"],subsets:["latin"]},{family:"Caesar Dressing",variants:["regular"],subsets:["latin"]},{family:"Cagliostro",variants:["regular"],subsets:["latin"]},{family:"Cairo",variants:["200","300","regular","600","700","900"],subsets:["arabic","latin","latin-ext"]},{family:"Calligraffitti",variants:["regular"],subsets:["latin"]},{family:"Cambay",variants:["regular","italic","700","700italic"],subsets:["devanagari","latin","latin-ext"]},{family:"Cambo",variants:["regular"],subsets:["latin"]},{family:"Candal",variants:["regular"],subsets:["latin"]},{family:"Cantarell",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Cantata One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cantora One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Capriola",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cardo",variants:["regular","italic","700"],subsets:["greek-ext","greek","latin","latin-ext"]},{family:"Carme",variants:["regular"],subsets:["latin"]},{family:"Carrois Gothic",variants:["regular"],subsets:["latin"]},{family:"Carrois Gothic SC",variants:["regular"],subsets:["latin"]},{family:"Carter One",variants:["regular"],subsets:["latin"]},{family:"Catamaran",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["tamil","latin","latin-ext"]},{family:"Caudex",variants:["regular","italic","700","700italic"],subsets:["greek-ext","greek","latin","latin-ext"]},{family:"Caveat",variants:["regular","700"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Caveat Brush",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cedarville Cursive",variants:["regular"],subsets:["latin"]},{family:"Ceviche One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Chakra Petch",variants:["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Changa",variants:["200","300","regular","500","600","700","800"],subsets:["arabic","latin","latin-ext"]},{family:"Changa One",variants:["regular","italic"],subsets:["latin"]},{family:"Chango",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Charm",variants:["regular","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Charmonman",variants:["regular","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Chathura",variants:["100","300","regular","700","800"],subsets:["telugu","latin"]},{family:"Chau Philomene One",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Chela One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Chelsea Market",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Chenla",variants:["regular"],subsets:["khmer"]},{family:"Cherry Cream Soda",variants:["regular"],subsets:["latin"]},{family:"Cherry Swash",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Chewy",variants:["regular"],subsets:["latin"]},{family:"Chicle",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Chilanka",variants:["regular"],subsets:["malayalam","latin"]},{family:"Chivo",variants:["300","300italic","regular","italic","700","700italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Chonburi",variants:["regular"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Cinzel",variants:["regular","700","900"],subsets:["latin","latin-ext"]},{family:"Cinzel Decorative",variants:["regular","700","900"],subsets:["latin"]},{family:"Clicker Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Coda",variants:["regular","800"],subsets:["latin","latin-ext"]},{family:"Coda Caption",variants:["800"],subsets:["latin","latin-ext"]},{family:"Codystar",variants:["300","regular"],subsets:["latin","latin-ext"]},{family:"Coiny",variants:["regular"],subsets:["tamil","vietnamese","latin","latin-ext"]},{family:"Combo",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Comfortaa",variants:["300","regular","500","600","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek","latin","latin-ext"]},{family:"Coming Soon",variants:["regular"],subsets:["latin"]},{family:"Concert One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Condiment",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Content",variants:["regular","700"],subsets:["khmer"]},{family:"Contrail One",variants:["regular"],subsets:["latin"]},{family:"Convergence",variants:["regular"],subsets:["latin"]},{family:"Cookie",variants:["regular"],subsets:["latin"]},{family:"Copse",variants:["regular"],subsets:["latin"]},{family:"Corben",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Cormorant",variants:["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cormorant Garamond",variants:["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cormorant Infant",variants:["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cormorant SC",variants:["300","regular","500","600","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cormorant Unicase",variants:["300","regular","500","600","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cormorant Upright",variants:["300","regular","500","600","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Courgette",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cousine",variants:["regular","italic","700","700italic"],subsets:["hebrew","cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Coustard",variants:["regular","900"],subsets:["latin"]},{family:"Covered By Your Grace",variants:["regular"],subsets:["latin"]},{family:"Crafty Girls",variants:["regular"],subsets:["latin"]},{family:"Creepster",variants:["regular"],subsets:["latin"]},{family:"Crete Round",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Crimson Pro",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Crimson Text",variants:["regular","italic","600","600italic","700","700italic"],subsets:["latin"]},{family:"Croissant One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Crushed",variants:["regular"],subsets:["latin"]},{family:"Cuprum",variants:["regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Cute Font",variants:["regular"],subsets:["latin","korean"]},{family:"Cutive",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Cutive Mono",variants:["regular"],subsets:["latin","latin-ext"]},{family:"DM Sans",variants:["regular","italic","500","500italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"DM Serif Display",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"DM Serif Text",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Damion",variants:["regular"],subsets:["latin"]},{family:"Dancing Script",variants:["regular","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Dangrek",variants:["regular"],subsets:["khmer"]},{family:"Darker Grotesque",variants:["300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"David Libre",variants:["regular","500","700"],subsets:["hebrew","vietnamese","latin","latin-ext"]},{family:"Dawning of a New Day",variants:["regular"],subsets:["latin"]},{family:"Days One",variants:["regular"],subsets:["latin"]},{family:"Dekko",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Delius",variants:["regular"],subsets:["latin"]},{family:"Delius Swash Caps",variants:["regular"],subsets:["latin"]},{family:"Delius Unicase",variants:["regular","700"],subsets:["latin"]},{family:"Della Respira",variants:["regular"],subsets:["latin"]},{family:"Denk One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Devonshire",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Dhurjati",variants:["regular"],subsets:["telugu","latin"]},{family:"Didact Gothic",variants:["regular"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Diplomata",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Diplomata SC",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Do Hyeon",variants:["regular"],subsets:["latin","korean"]},{family:"Dokdo",variants:["regular"],subsets:["latin","korean"]},{family:"Domine",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Donegal One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Doppio One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Dorsa",variants:["regular"],subsets:["latin"]},{family:"Dosis",variants:["200","300","regular","500","600","700","800"],subsets:["vietnamese","latin","latin-ext"]},{family:"Dr Sugiyama",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Duru Sans",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Dynalight",variants:["regular"],subsets:["latin","latin-ext"]},{family:"EB Garamond",variants:["regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Eagle Lake",variants:["regular"],subsets:["latin","latin-ext"]},{family:"East Sea Dokdo",variants:["regular"],subsets:["latin","korean"]},{family:"Eater",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Economica",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Eczar",variants:["regular","500","600","700","800"],subsets:["devanagari","latin","latin-ext"]},{family:"El Messiri",variants:["regular","500","600","700"],subsets:["arabic","cyrillic","latin"]},{family:"Electrolize",variants:["regular"],subsets:["latin"]},{family:"Elsie",variants:["regular","900"],subsets:["latin","latin-ext"]},{family:"Elsie Swash Caps",variants:["regular","900"],subsets:["latin","latin-ext"]},{family:"Emblema One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Emilys Candy",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Encode Sans",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Encode Sans Condensed",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Encode Sans Expanded",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Encode Sans Semi Condensed",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Encode Sans Semi Expanded",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Engagement",variants:["regular"],subsets:["latin"]},{family:"Englebert",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Enriqueta",variants:["regular","500","600","700"],subsets:["latin","latin-ext"]},{family:"Erica One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Esteban",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Euphoria Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ewert",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Exo",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Exo 2",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","latin","latin-ext"]},{family:"Expletus Sans",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["latin"]},{family:"Fahkwang",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Fanwood Text",variants:["regular","italic"],subsets:["latin"]},{family:"Farro",variants:["300","regular","500","700"],subsets:["latin","latin-ext"]},{family:"Farsan",variants:["regular"],subsets:["gujarati","vietnamese","latin","latin-ext"]},{family:"Fascinate",variants:["regular"],subsets:["latin"]},{family:"Fascinate Inline",variants:["regular"],subsets:["latin"]},{family:"Faster One",variants:["regular"],subsets:["latin"]},{family:"Fasthand",variants:["regular"],subsets:["khmer"]},{family:"Fauna One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Faustina",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Federant",variants:["regular"],subsets:["latin"]},{family:"Federo",variants:["regular"],subsets:["latin"]},{family:"Felipa",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fenix",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Finger Paint",variants:["regular"],subsets:["latin"]},{family:"Fira Code",variants:["300","regular","500","600","700"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Fira Mono",variants:["regular","500","700"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Fira Sans",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Fira Sans Condensed",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Fira Sans Extra Condensed",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Fjalla One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fjord One",variants:["regular"],subsets:["latin"]},{family:"Flamenco",variants:["300","regular"],subsets:["latin"]},{family:"Flavors",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fondamento",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Fontdiner Swanky",variants:["regular"],subsets:["latin"]},{family:"Forum",variants:["regular"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Francois One",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Frank Ruhl Libre",variants:["300","regular","500","700","900"],subsets:["hebrew","latin","latin-ext"]},{family:"Freckle Face",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fredericka the Great",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fredoka One",variants:["regular"],subsets:["latin"]},{family:"Freehand",variants:["regular"],subsets:["khmer"]},{family:"Fresca",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Frijole",variants:["regular"],subsets:["latin"]},{family:"Fruktur",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Fugaz One",variants:["regular"],subsets:["latin"]},{family:"GFS Didot",variants:["regular"],subsets:["greek"]},{family:"GFS Neohellenic",variants:["regular","italic","700","700italic"],subsets:["greek"]},{family:"Gabriela",variants:["regular"],subsets:["cyrillic","cyrillic-ext","latin"]},{family:"Gaegu",variants:["300","regular","700"],subsets:["latin","korean"]},{family:"Gafata",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Galada",variants:["regular"],subsets:["latin","bengali"]},{family:"Galdeano",variants:["regular"],subsets:["latin"]},{family:"Galindo",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Gamja Flower",variants:["regular"],subsets:["latin","korean"]},{family:"Gayathri",variants:["100","regular","700"],subsets:["malayalam","latin"]},{family:"Gentium Basic",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Gentium Book Basic",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Geo",variants:["regular","italic"],subsets:["latin"]},{family:"Geostar",variants:["regular"],subsets:["latin"]},{family:"Geostar Fill",variants:["regular"],subsets:["latin"]},{family:"Germania One",variants:["regular"],subsets:["latin"]},{family:"Gidugu",variants:["regular"],subsets:["telugu","latin"]},{family:"Gilda Display",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Give You Glory",variants:["regular"],subsets:["latin"]},{family:"Glass Antiqua",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Glegoo",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Gloria Hallelujah",variants:["regular"],subsets:["latin"]},{family:"Goblin One",variants:["regular"],subsets:["latin"]},{family:"Gochi Hand",variants:["regular"],subsets:["latin"]},{family:"Gorditas",variants:["regular","700"],subsets:["latin"]},{family:"Gothic A1",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["latin","korean"]},{family:"Goudy Bookletter 1911",variants:["regular"],subsets:["latin"]},{family:"Graduate",variants:["regular"],subsets:["latin"]},{family:"Grand Hotel",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Gravitas One",variants:["regular"],subsets:["latin"]},{family:"Great Vibes",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Grenze",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Griffy",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Gruppo",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Gudea",variants:["regular","italic","700"],subsets:["latin","latin-ext"]},{family:"Gugi",variants:["regular"],subsets:["latin","korean"]},{family:"Gurajada",variants:["regular"],subsets:["telugu","latin"]},{family:"Habibi",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Halant",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Hammersmith One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Hanalei",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Hanalei Fill",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Handlee",variants:["regular"],subsets:["latin"]},{family:"Hanuman",variants:["regular","700"],subsets:["khmer"]},{family:"Happy Monkey",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Harmattan",variants:["regular"],subsets:["arabic","latin"]},{family:"Headland One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Heebo",variants:["100","300","regular","500","700","800","900"],subsets:["hebrew","latin"]},{family:"Henny Penny",variants:["regular"],subsets:["latin"]},{family:"Hepta Slab",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Herr Von Muellerhoff",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Hi Melody",variants:["regular"],subsets:["latin","korean"]},{family:"Hind",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Hind Guntur",variants:["300","regular","500","600","700"],subsets:["telugu","latin","latin-ext"]},{family:"Hind Madurai",variants:["300","regular","500","600","700"],subsets:["tamil","latin","latin-ext"]},{family:"Hind Siliguri",variants:["300","regular","500","600","700"],subsets:["latin","latin-ext","bengali"]},{family:"Hind Vadodara",variants:["300","regular","500","600","700"],subsets:["gujarati","latin","latin-ext"]},{family:"Holtwood One SC",variants:["regular"],subsets:["latin"]},{family:"Homemade Apple",variants:["regular"],subsets:["latin"]},{family:"Homenaje",variants:["regular"],subsets:["latin"]},{family:"IBM Plex Mono",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"IBM Plex Sans",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek","latin","latin-ext"]},{family:"IBM Plex Sans Condensed",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"IBM Plex Serif",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"IM Fell DW Pica",variants:["regular","italic"],subsets:["latin"]},{family:"IM Fell DW Pica SC",variants:["regular"],subsets:["latin"]},{family:"IM Fell Double Pica",variants:["regular","italic"],subsets:["latin"]},{family:"IM Fell Double Pica SC",variants:["regular"],subsets:["latin"]},{family:"IM Fell English",variants:["regular","italic"],subsets:["latin"]},{family:"IM Fell English SC",variants:["regular"],subsets:["latin"]},{family:"IM Fell French Canon",variants:["regular","italic"],subsets:["latin"]},{family:"IM Fell French Canon SC",variants:["regular"],subsets:["latin"]},{family:"IM Fell Great Primer",variants:["regular","italic"],subsets:["latin"]},{family:"IM Fell Great Primer SC",variants:["regular"],subsets:["latin"]},{family:"Iceberg",variants:["regular"],subsets:["latin"]},{family:"Iceland",variants:["regular"],subsets:["latin"]},{family:"Imprima",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Inconsolata",variants:["regular","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Inder",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Indie Flower",variants:["regular"],subsets:["latin"]},{family:"Inika",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Inknut Antiqua",variants:["300","regular","500","600","700","800","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Irish Grover",variants:["regular"],subsets:["latin"]},{family:"Istok Web",variants:["regular","italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Italiana",variants:["regular"],subsets:["latin"]},{family:"Italianno",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Itim",variants:["regular"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Jacques Francois",variants:["regular"],subsets:["latin"]},{family:"Jacques Francois Shadow",variants:["regular"],subsets:["latin"]},{family:"Jaldi",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Jim Nightshade",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Jockey One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Jolly Lodger",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Jomhuria",variants:["regular"],subsets:["arabic","latin","latin-ext"]},{family:"Josefin Sans",variants:["100","100italic","300","300italic","regular","italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Josefin Slab",variants:["100","100italic","300","300italic","regular","italic","600","600italic","700","700italic"],subsets:["latin"]},{family:"Joti One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Jua",variants:["regular"],subsets:["latin","korean"]},{family:"Judson",variants:["regular","italic","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Julee",variants:["regular"],subsets:["latin"]},{family:"Julius Sans One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Junge",variants:["regular"],subsets:["latin"]},{family:"Jura",variants:["300","regular","500","600","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Just Another Hand",variants:["regular"],subsets:["latin"]},{family:"Just Me Again Down Here",variants:["regular"],subsets:["latin","latin-ext"]},{family:"K2D",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Kadwa",variants:["regular","700"],subsets:["devanagari","latin"]},{family:"Kalam",variants:["300","regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Kameron",variants:["regular","700"],subsets:["latin"]},{family:"Kanit",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Kantumruy",variants:["300","regular","700"],subsets:["khmer"]},{family:"Karla",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Karma",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Katibeh",variants:["regular"],subsets:["arabic","latin","latin-ext"]},{family:"Kaushan Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Kavivanar",variants:["regular"],subsets:["tamil","latin","latin-ext"]},{family:"Kavoon",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Kdam Thmor",variants:["regular"],subsets:["khmer"]},{family:"Keania One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Kelly Slab",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Kenia",variants:["regular"],subsets:["latin"]},{family:"Khand",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Khmer",variants:["regular"],subsets:["khmer"]},{family:"Khula",variants:["300","regular","600","700","800"],subsets:["devanagari","latin","latin-ext"]},{family:"Kirang Haerang",variants:["regular"],subsets:["latin","korean"]},{family:"Kite One",variants:["regular"],subsets:["latin"]},{family:"Knewave",variants:["regular"],subsets:["latin","latin-ext"]},{family:"KoHo",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Kodchasan",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Kosugi",variants:["regular"],subsets:["cyrillic","japanese","latin"]},{family:"Kosugi Maru",variants:["regular"],subsets:["cyrillic","japanese","latin"]},{family:"Kotta One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Koulen",variants:["regular"],subsets:["khmer"]},{family:"Kranky",variants:["regular"],subsets:["latin"]},{family:"Kreon",variants:["300","regular","500","600","700"],subsets:["latin","latin-ext"]},{family:"Kristi",variants:["regular"],subsets:["latin"]},{family:"Krona One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Krub",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Kumar One",variants:["regular"],subsets:["gujarati","latin","latin-ext"]},{family:"Kumar One Outline",variants:["regular"],subsets:["gujarati","latin","latin-ext"]},{family:"Kurale",variants:["regular"],subsets:["cyrillic","devanagari","cyrillic-ext","latin","latin-ext"]},{family:"La Belle Aurore",variants:["regular"],subsets:["latin"]},{family:"Lacquer",variants:["regular"],subsets:["latin"]},{family:"Laila",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Lakki Reddy",variants:["regular"],subsets:["telugu","latin"]},{family:"Lalezar",variants:["regular"],subsets:["arabic","vietnamese","latin","latin-ext"]},{family:"Lancelot",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Lateef",variants:["regular"],subsets:["arabic","latin"]},{family:"Lato",variants:["100","100italic","300","300italic","regular","italic","700","700italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"League Script",variants:["regular"],subsets:["latin"]},{family:"Leckerli One",variants:["regular"],subsets:["latin"]},{family:"Ledger",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Lekton",variants:["regular","italic","700"],subsets:["latin","latin-ext"]},{family:"Lemon",variants:["regular"],subsets:["latin"]},{family:"Lemonada",variants:["300","regular","600","700"],subsets:["arabic","vietnamese","latin","latin-ext"]},{family:"Lexend Deca",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Exa",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Giga",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Mega",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Peta",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Tera",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lexend Zetta",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Libre Barcode 128",variants:["regular"],subsets:["latin"]},{family:"Libre Barcode 128 Text",variants:["regular"],subsets:["latin"]},{family:"Libre Barcode 39",variants:["regular"],subsets:["latin"]},{family:"Libre Barcode 39 Extended",variants:["regular"],subsets:["latin"]},{family:"Libre Barcode 39 Extended Text",variants:["regular"],subsets:["latin"]},{family:"Libre Barcode 39 Text",variants:["regular"],subsets:["latin"]},{family:"Libre Baskerville",variants:["regular","italic","700"],subsets:["latin","latin-ext"]},{family:"Libre Caslon Display",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Libre Caslon Text",variants:["regular","italic","700"],subsets:["latin","latin-ext"]},{family:"Libre Franklin",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Life Savers",variants:["regular","700","800"],subsets:["latin","latin-ext"]},{family:"Lilita One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Lily Script One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Limelight",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Linden Hill",variants:["regular","italic"],subsets:["latin"]},{family:"Literata",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["cyrillic","vietnamese","greek-ext","greek","latin","latin-ext"]},{family:"Liu Jian Mao Cao",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"Livvic",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Lobster",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Lobster Two",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Londrina Outline",variants:["regular"],subsets:["latin"]},{family:"Londrina Shadow",variants:["regular"],subsets:["latin"]},{family:"Londrina Sketch",variants:["regular"],subsets:["latin"]},{family:"Londrina Solid",variants:["100","300","regular","900"],subsets:["latin"]},{family:"Long Cang",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"Lora",variants:["regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Love Ya Like A Sister",variants:["regular"],subsets:["latin"]},{family:"Loved by the King",variants:["regular"],subsets:["latin"]},{family:"Lovers Quarrel",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Luckiest Guy",variants:["regular"],subsets:["latin"]},{family:"Lusitana",variants:["regular","700"],subsets:["latin"]},{family:"Lustria",variants:["regular"],subsets:["latin"]},{family:"M PLUS 1p",variants:["100","300","regular","500","700","800","900"],subsets:["hebrew","cyrillic","japanese","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"M PLUS Rounded 1c",variants:["100","300","regular","500","700","800","900"],subsets:["hebrew","cyrillic","japanese","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Ma Shan Zheng",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"Macondo",variants:["regular"],subsets:["latin"]},{family:"Macondo Swash Caps",variants:["regular"],subsets:["latin"]},{family:"Mada",variants:["200","300","regular","500","600","700","900"],subsets:["arabic","latin"]},{family:"Magra",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Maiden Orange",variants:["regular"],subsets:["latin"]},{family:"Maitree",variants:["200","300","regular","500","600","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Major Mono Display",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Mako",variants:["regular"],subsets:["latin"]},{family:"Mali",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Mallanna",variants:["regular"],subsets:["telugu","latin"]},{family:"Mandali",variants:["regular"],subsets:["telugu","latin"]},{family:"Manjari",variants:["100","regular","700"],subsets:["malayalam","latin"]},{family:"Manuale",variants:["regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Marcellus",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Marcellus SC",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Marck Script",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Margarine",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Markazi Text",variants:["regular","500","600","700"],subsets:["arabic","vietnamese","latin","latin-ext"]},{family:"Marko One",variants:["regular"],subsets:["latin"]},{family:"Marmelad",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Martel",variants:["200","300","regular","600","700","800","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Martel Sans",variants:["200","300","regular","600","700","800","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Marvel",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Mate",variants:["regular","italic"],subsets:["latin"]},{family:"Mate SC",variants:["regular"],subsets:["latin"]},{family:"Maven Pro",variants:["regular","500","700","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"McLaren",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Meddon",variants:["regular"],subsets:["latin"]},{family:"MedievalSharp",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Medula One",variants:["regular"],subsets:["latin"]},{family:"Meera Inimai",variants:["regular"],subsets:["tamil","latin"]},{family:"Megrim",variants:["regular"],subsets:["latin"]},{family:"Meie Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Merienda",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Merienda One",variants:["regular"],subsets:["latin"]},{family:"Merriweather",variants:["300","300italic","regular","italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Merriweather Sans",variants:["300","300italic","regular","italic","700","700italic","800","800italic"],subsets:["latin","latin-ext"]},{family:"Metal",variants:["regular"],subsets:["khmer"]},{family:"Metal Mania",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Metamorphous",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Metrophobic",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Michroma",variants:["regular"],subsets:["latin"]},{family:"Milonga",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Miltonian",variants:["regular"],subsets:["latin"]},{family:"Miltonian Tattoo",variants:["regular"],subsets:["latin"]},{family:"Mina",variants:["regular","700"],subsets:["latin","latin-ext","bengali"]},{family:"Miniver",variants:["regular"],subsets:["latin"]},{family:"Miriam Libre",variants:["regular","700"],subsets:["hebrew","latin","latin-ext"]},{family:"Mirza",variants:["regular","500","600","700"],subsets:["arabic","latin","latin-ext"]},{family:"Miss Fajardose",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mitr",variants:["200","300","regular","500","600","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Modak",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Modern Antiqua",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mogra",variants:["regular"],subsets:["gujarati","latin","latin-ext"]},{family:"Molengo",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Molle",variants:["italic"],subsets:["latin","latin-ext"]},{family:"Monda",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Monofett",variants:["regular"],subsets:["latin"]},{family:"Monoton",variants:["regular"],subsets:["latin"]},{family:"Monsieur La Doulaise",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Montaga",variants:["regular"],subsets:["latin"]},{family:"Montez",variants:["regular"],subsets:["latin"]},{family:"Montserrat",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Montserrat Alternates",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Montserrat Subrayada",variants:["regular","700"],subsets:["latin"]},{family:"Moul",variants:["regular"],subsets:["khmer"]},{family:"Moulpali",variants:["regular"],subsets:["khmer"]},{family:"Mountains of Christmas",variants:["regular","700"],subsets:["latin"]},{family:"Mouse Memoirs",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mr Bedfort",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mr Dafoe",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mr De Haviland",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mrs Saint Delafield",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mrs Sheppards",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Mukta",variants:["200","300","regular","500","600","700","800"],subsets:["devanagari","latin","latin-ext"]},{family:"Mukta Mahee",variants:["200","300","regular","500","600","700","800"],subsets:["latin","gurmukhi","latin-ext"]},{family:"Mukta Malar",variants:["200","300","regular","500","600","700","800"],subsets:["tamil","latin","latin-ext"]},{family:"Mukta Vaani",variants:["200","300","regular","500","600","700","800"],subsets:["gujarati","latin","latin-ext"]},{family:"Muli",variants:["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Mystery Quest",variants:["regular"],subsets:["latin","latin-ext"]},{family:"NTR",variants:["regular"],subsets:["telugu","latin"]},{family:"Nanum Brush Script",variants:["regular"],subsets:["latin","korean"]},{family:"Nanum Gothic",variants:["regular","700","800"],subsets:["latin","korean"]},{family:"Nanum Gothic Coding",variants:["regular","700"],subsets:["latin","korean"]},{family:"Nanum Myeongjo",variants:["regular","700","800"],subsets:["latin","korean"]},{family:"Nanum Pen Script",variants:["regular"],subsets:["latin","korean"]},{family:"Neucha",variants:["regular"],subsets:["cyrillic","latin"]},{family:"Neuton",variants:["200","300","regular","italic","700","800"],subsets:["latin","latin-ext"]},{family:"New Rocker",variants:["regular"],subsets:["latin","latin-ext"]},{family:"News Cycle",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Niconne",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Niramit",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Nixie One",variants:["regular"],subsets:["latin"]},{family:"Nobile",variants:["regular","italic","500","500italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Nokora",variants:["regular","700"],subsets:["khmer"]},{family:"Norican",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Nosifer",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Notable",variants:["regular"],subsets:["latin"]},{family:"Nothing You Could Do",variants:["regular"],subsets:["latin"]},{family:"Noticia Text",variants:["regular","italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Noto Sans",variants:["regular","italic","700","700italic"],subsets:["cyrillic","devanagari","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Noto Sans HK",variants:["100","300","regular","500","700","900"],subsets:["chinese-hongkong","latin"]},{family:"Noto Sans JP",variants:["100","300","regular","500","700","900"],subsets:["japanese","latin"]},{family:"Noto Sans KR",variants:["100","300","regular","500","700","900"],subsets:["latin","korean"]},{family:"Noto Sans SC",variants:["100","300","regular","500","700","900"],subsets:["cyrillic","vietnamese","chinese-simplified","latin"]},{family:"Noto Sans TC",variants:["100","300","regular","500","700","900"],subsets:["chinese-traditional","latin"]},{family:"Noto Serif",variants:["regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Noto Serif JP",variants:["200","300","regular","500","600","700","900"],subsets:["japanese","latin"]},{family:"Noto Serif KR",variants:["200","300","regular","500","600","700","900"],subsets:["latin","korean"]},{family:"Noto Serif SC",variants:["200","300","regular","500","600","700","900"],subsets:["cyrillic","vietnamese","chinese-simplified","latin"]},{family:"Noto Serif TC",variants:["200","300","regular","500","600","700","900"],subsets:["cyrillic","chinese-traditional","vietnamese","latin"]},{family:"Nova Cut",variants:["regular"],subsets:["latin"]},{family:"Nova Flat",variants:["regular"],subsets:["latin"]},{family:"Nova Mono",variants:["regular"],subsets:["greek","latin"]},{family:"Nova Oval",variants:["regular"],subsets:["latin"]},{family:"Nova Round",variants:["regular"],subsets:["latin"]},{family:"Nova Script",variants:["regular"],subsets:["latin"]},{family:"Nova Slim",variants:["regular"],subsets:["latin"]},{family:"Nova Square",variants:["regular"],subsets:["latin"]},{family:"Numans",variants:["regular"],subsets:["latin"]},{family:"Nunito",variants:["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Nunito Sans",variants:["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Odor Mean Chey",variants:["regular"],subsets:["khmer"]},{family:"Offside",variants:["regular"],subsets:["latin"]},{family:"Old Standard TT",variants:["regular","italic","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Oldenburg",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Oleo Script",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Oleo Script Swash Caps",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Open Sans",variants:["300","300italic","regular","italic","600","600italic","700","700italic","800","800italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Open Sans Condensed",variants:["300","300italic","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Oranienbaum",variants:["regular"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Orbitron",variants:["regular","500","700","900"],subsets:["latin"]},{family:"Oregano",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Orienta",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Original Surfer",variants:["regular"],subsets:["latin"]},{family:"Oswald",variants:["200","300","regular","500","600","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Over the Rainbow",variants:["regular"],subsets:["latin"]},{family:"Overlock",variants:["regular","italic","700","700italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Overlock SC",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Overpass",variants:["100","100italic","200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Overpass Mono",variants:["300","regular","600","700"],subsets:["latin","latin-ext"]},{family:"Ovo",variants:["regular"],subsets:["latin"]},{family:"Oxygen",variants:["300","regular","700"],subsets:["latin","latin-ext"]},{family:"Oxygen Mono",variants:["regular"],subsets:["latin","latin-ext"]},{family:"PT Mono",variants:["regular"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"PT Sans",variants:["regular","italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"PT Sans Caption",variants:["regular","700"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"PT Sans Narrow",variants:["regular","700"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"PT Serif",variants:["regular","italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"PT Serif Caption",variants:["regular","italic"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Pacifico",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Padauk",variants:["regular","700"],subsets:["myanmar","latin"]},{family:"Palanquin",variants:["100","200","300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Palanquin Dark",variants:["regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Pangolin",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Paprika",variants:["regular"],subsets:["latin"]},{family:"Parisienne",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Passero One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Passion One",variants:["regular","700","900"],subsets:["latin","latin-ext"]},{family:"Pathway Gothic One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Patrick Hand",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Patrick Hand SC",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Pattaya",variants:["regular"],subsets:["cyrillic","vietnamese","latin","thai","latin-ext"]},{family:"Patua One",variants:["regular"],subsets:["latin"]},{family:"Pavanam",variants:["regular"],subsets:["tamil","latin","latin-ext"]},{family:"Paytone One",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Peddana",variants:["regular"],subsets:["telugu","latin"]},{family:"Peralta",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Permanent Marker",variants:["regular"],subsets:["latin"]},{family:"Petit Formal Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Petrona",variants:["regular"],subsets:["latin"]},{family:"Philosopher",variants:["regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin"]},{family:"Piedra",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Pinyon Script",variants:["regular"],subsets:["latin"]},{family:"Pirata One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Plaster",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Play",variants:["regular","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek","latin","latin-ext"]},{family:"Playball",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Playfair Display",variants:["regular","italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","latin","latin-ext"]},{family:"Playfair Display SC",variants:["regular","italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","latin","latin-ext"]},{family:"Podkova",variants:["regular","500","600","700","800"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Poiret One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Poller One",variants:["regular"],subsets:["latin"]},{family:"Poly",variants:["regular","italic"],subsets:["latin"]},{family:"Pompiere",variants:["regular"],subsets:["latin"]},{family:"Pontano Sans",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Poor Story",variants:["regular"],subsets:["latin","korean"]},{family:"Poppins",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["devanagari","latin","latin-ext"]},{family:"Port Lligat Sans",variants:["regular"],subsets:["latin"]},{family:"Port Lligat Slab",variants:["regular"],subsets:["latin"]},{family:"Pragati Narrow",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Prata",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin"]},{family:"Preahvihear",variants:["regular"],subsets:["khmer"]},{family:"Press Start 2P",variants:["regular"],subsets:["cyrillic","cyrillic-ext","greek","latin","latin-ext"]},{family:"Pridi",variants:["200","300","regular","500","600","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Princess Sofia",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Prociono",variants:["regular"],subsets:["latin"]},{family:"Prompt",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Prosto One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Proza Libre",variants:["regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["latin","latin-ext"]},{family:"Puritan",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Purple Purse",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Quando",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Quantico",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Quattrocento",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Quattrocento Sans",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Questrial",variants:["regular"],subsets:["latin"]},{family:"Quicksand",variants:["300","regular","500","600","700"],subsets:["vietnamese","latin","latin-ext"]},{family:"Quintessential",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Qwigley",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Racing Sans One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Radley",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Rajdhani",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Rakkas",variants:["regular"],subsets:["arabic","latin","latin-ext"]},{family:"Raleway",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Raleway Dots",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ramabhadra",variants:["regular"],subsets:["telugu","latin"]},{family:"Ramaraja",variants:["regular"],subsets:["telugu","latin"]},{family:"Rambla",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Rammetto One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ranchers",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Rancho",variants:["regular"],subsets:["latin"]},{family:"Ranga",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Rasa",variants:["300","regular","500","600","700"],subsets:["gujarati","latin","latin-ext"]},{family:"Rationale",variants:["regular"],subsets:["latin"]},{family:"Ravi Prakash",variants:["regular"],subsets:["telugu","latin"]},{family:"Red Hat Display",variants:["regular","italic","500","500italic","700","700italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Red Hat Text",variants:["regular","italic","500","500italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Redressed",variants:["regular"],subsets:["latin"]},{family:"Reem Kufi",variants:["regular"],subsets:["arabic","latin"]},{family:"Reenie Beanie",variants:["regular"],subsets:["latin"]},{family:"Revalia",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Rhodium Libre",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Ribeye",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ribeye Marrow",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Righteous",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Risque",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Roboto",variants:["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Roboto Condensed",variants:["300","300italic","regular","italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Roboto Mono",variants:["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Roboto Slab",variants:["100","300","regular","700"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Rochester",variants:["regular"],subsets:["latin"]},{family:"Rock Salt",variants:["regular"],subsets:["latin"]},{family:"Rokkitt",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Romanesco",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ropa Sans",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Rosario",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Rosarivo",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Rouge Script",variants:["regular"],subsets:["latin"]},{family:"Rozha One",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Rubik",variants:["300","300italic","regular","italic","500","500italic","700","700italic","900","900italic"],subsets:["hebrew","cyrillic","latin","latin-ext"]},{family:"Rubik Mono One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Ruda",variants:["regular","700","900"],subsets:["latin","latin-ext"]},{family:"Rufina",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Ruge Boogie",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ruluko",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Rum Raisin",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Ruslan Display",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Russo One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Ruthie",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Rye",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sacramento",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sahitya",variants:["regular","700"],subsets:["devanagari","latin"]},{family:"Sail",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Saira",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Saira Condensed",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Saira Extra Condensed",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Saira Semi Condensed",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["vietnamese","latin","latin-ext"]},{family:"Saira Stencil One",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Salsa",variants:["regular"],subsets:["latin"]},{family:"Sanchez",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Sancreek",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sansita",variants:["regular","italic","700","700italic","800","800italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Sarabun",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Sarala",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Sarina",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sarpanch",variants:["regular","500","600","700","800","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Satisfy",variants:["regular"],subsets:["latin"]},{family:"Sawarabi Gothic",variants:["regular"],subsets:["cyrillic","japanese","vietnamese","latin","latin-ext"]},{family:"Sawarabi Mincho",variants:["regular"],subsets:["japanese","latin","latin-ext"]},{family:"Scada",variants:["regular","italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","latin","latin-ext"]},{family:"Scheherazade",variants:["regular","700"],subsets:["arabic","latin"]},{family:"Schoolbell",variants:["regular"],subsets:["latin"]},{family:"Scope One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Seaweed Script",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Secular One",variants:["regular"],subsets:["hebrew","latin","latin-ext"]},{family:"Sedgwick Ave",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Sedgwick Ave Display",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Sevillana",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Seymour One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Shadows Into Light",variants:["regular"],subsets:["latin"]},{family:"Shadows Into Light Two",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Shanti",variants:["regular"],subsets:["latin"]},{family:"Share",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Share Tech",variants:["regular"],subsets:["latin"]},{family:"Share Tech Mono",variants:["regular"],subsets:["latin"]},{family:"Shojumaru",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Short Stack",variants:["regular"],subsets:["latin"]},{family:"Shrikhand",variants:["regular"],subsets:["gujarati","latin","latin-ext"]},{family:"Siemreap",variants:["regular"],subsets:["khmer"]},{family:"Sigmar One",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Signika",variants:["300","regular","600","700"],subsets:["latin","latin-ext"]},{family:"Signika Negative",variants:["300","regular","600","700"],subsets:["latin","latin-ext"]},{family:"Simonetta",variants:["regular","italic","900","900italic"],subsets:["latin","latin-ext"]},{family:"Single Day",variants:["regular"],subsets:["korean"]},{family:"Sintony",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Sirin Stencil",variants:["regular"],subsets:["latin"]},{family:"Six Caps",variants:["regular"],subsets:["latin"]},{family:"Skranji",variants:["regular","700"],subsets:["latin","latin-ext"]},{family:"Slabo 13px",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Slabo 27px",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Slackey",variants:["regular"],subsets:["latin"]},{family:"Smokum",variants:["regular"],subsets:["latin"]},{family:"Smythe",variants:["regular"],subsets:["latin"]},{family:"Sniglet",variants:["regular","800"],subsets:["latin","latin-ext"]},{family:"Snippet",variants:["regular"],subsets:["latin"]},{family:"Snowburst One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sofadi One",variants:["regular"],subsets:["latin"]},{family:"Sofia",variants:["regular"],subsets:["latin"]},{family:"Song Myung",variants:["regular"],subsets:["latin","korean"]},{family:"Sonsie One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Sorts Mill Goudy",variants:["regular","italic"],subsets:["latin","latin-ext"]},{family:"Source Code Pro",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek","latin","latin-ext"]},{family:"Source Sans Pro",variants:["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Source Serif Pro",variants:["regular","600","700"],subsets:["latin","latin-ext"]},{family:"Space Mono",variants:["regular","italic","700","700italic"],subsets:["vietnamese","latin","latin-ext"]},{family:"Special Elite",variants:["regular"],subsets:["latin"]},{family:"Spectral",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["cyrillic","vietnamese","latin","latin-ext"]},{family:"Spectral SC",variants:["200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"],subsets:["cyrillic","vietnamese","latin","latin-ext"]},{family:"Spicy Rice",variants:["regular"],subsets:["latin"]},{family:"Spinnaker",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Spirax",variants:["regular"],subsets:["latin"]},{family:"Squada One",variants:["regular"],subsets:["latin"]},{family:"Sree Krushnadevaraya",variants:["regular"],subsets:["telugu","latin"]},{family:"Sriracha",variants:["regular"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Srisakdi",variants:["regular","700"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Staatliches",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Stalemate",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Stalinist One",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Stardos Stencil",variants:["regular","700"],subsets:["latin"]},{family:"Stint Ultra Condensed",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Stint Ultra Expanded",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Stoke",variants:["300","regular"],subsets:["latin","latin-ext"]},{family:"Strait",variants:["regular"],subsets:["latin"]},{family:"Stylish",variants:["regular"],subsets:["latin","korean"]},{family:"Sue Ellen Francisco",variants:["regular"],subsets:["latin"]},{family:"Suez One",variants:["regular"],subsets:["hebrew","latin","latin-ext"]},{family:"Sumana",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Sunflower",variants:["300","500","700"],subsets:["latin","korean"]},{family:"Sunshiney",variants:["regular"],subsets:["latin"]},{family:"Supermercado One",variants:["regular"],subsets:["latin"]},{family:"Sura",variants:["regular","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Suranna",variants:["regular"],subsets:["telugu","latin"]},{family:"Suravaram",variants:["regular"],subsets:["telugu","latin"]},{family:"Suwannaphum",variants:["regular"],subsets:["khmer"]},{family:"Swanky and Moo Moo",variants:["regular"],subsets:["latin"]},{family:"Syncopate",variants:["regular","700"],subsets:["latin"]},{family:"Tajawal",variants:["200","300","regular","500","700","800","900"],subsets:["arabic","latin"]},{family:"Tangerine",variants:["regular","700"],subsets:["latin"]},{family:"Taprom",variants:["regular"],subsets:["khmer"]},{family:"Tauri",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Taviraj",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Teko",variants:["300","regular","500","600","700"],subsets:["devanagari","latin","latin-ext"]},{family:"Telex",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Tenali Ramakrishna",variants:["regular"],subsets:["telugu","latin"]},{family:"Tenor Sans",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Text Me One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Thasadith",variants:["regular","italic","700","700italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"The Girl Next Door",variants:["regular"],subsets:["latin"]},{family:"Tienne",variants:["regular","700","900"],subsets:["latin"]},{family:"Tillana",variants:["regular","500","600","700","800"],subsets:["devanagari","latin","latin-ext"]},{family:"Timmana",variants:["regular"],subsets:["telugu","latin"]},{family:"Tinos",variants:["regular","italic","700","700italic"],subsets:["hebrew","cyrillic","vietnamese","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Titan One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Titillium Web",variants:["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","900"],subsets:["latin","latin-ext"]},{family:"Trade Winds",variants:["regular"],subsets:["latin"]},{family:"Trirong",variants:["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"],subsets:["vietnamese","latin","thai","latin-ext"]},{family:"Trocchi",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Trochut",variants:["regular","italic","700"],subsets:["latin"]},{family:"Trykker",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Tulpen One",variants:["regular"],subsets:["latin"]},{family:"Ubuntu",variants:["300","300italic","regular","italic","500","500italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Ubuntu Condensed",variants:["regular"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Ubuntu Mono",variants:["regular","italic","700","700italic"],subsets:["cyrillic","cyrillic-ext","greek-ext","greek","latin","latin-ext"]},{family:"Ultra",variants:["regular"],subsets:["latin"]},{family:"Uncial Antiqua",variants:["regular"],subsets:["latin"]},{family:"Underdog",variants:["regular"],subsets:["cyrillic","latin","latin-ext"]},{family:"Unica One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"UnifrakturCook",variants:["700"],subsets:["latin"]},{family:"UnifrakturMaguntia",variants:["regular"],subsets:["latin"]},{family:"Unkempt",variants:["regular","700"],subsets:["latin"]},{family:"Unlock",variants:["regular"],subsets:["latin"]},{family:"Unna",variants:["regular","italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"VT323",variants:["regular"],subsets:["vietnamese","latin","latin-ext"]},{family:"Vampiro One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Varela",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Varela Round",variants:["regular"],subsets:["hebrew","vietnamese","latin","latin-ext"]},{family:"Vast Shadow",variants:["regular"],subsets:["latin"]},{family:"Vesper Libre",variants:["regular","500","700","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Vibur",variants:["regular"],subsets:["latin"]},{family:"Vidaloka",variants:["regular"],subsets:["latin"]},{family:"Viga",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Voces",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Volkhov",variants:["regular","italic","700","700italic"],subsets:["latin"]},{family:"Vollkorn",variants:["regular","italic","600","600italic","700","700italic","900","900italic"],subsets:["cyrillic","vietnamese","cyrillic-ext","greek","latin","latin-ext"]},{family:"Vollkorn SC",variants:["regular","600","700","900"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Voltaire",variants:["regular"],subsets:["latin"]},{family:"Waiting for the Sunrise",variants:["regular"],subsets:["latin"]},{family:"Wallpoet",variants:["regular"],subsets:["latin"]},{family:"Walter Turncoat",variants:["regular"],subsets:["latin"]},{family:"Warnes",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Wellfleet",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Wendy One",variants:["regular"],subsets:["latin","latin-ext"]},{family:"Wire One",variants:["regular"],subsets:["latin"]},{family:"Work Sans",variants:["100","200","300","regular","500","600","700","800","900"],subsets:["latin","latin-ext"]},{family:"Yanone Kaffeesatz",variants:["200","300","regular","700"],subsets:["cyrillic","vietnamese","latin","latin-ext"]},{family:"Yantramanav",variants:["100","300","regular","500","700","900"],subsets:["devanagari","latin","latin-ext"]},{family:"Yatra One",variants:["regular"],subsets:["devanagari","latin","latin-ext"]},{family:"Yellowtail",variants:["regular"],subsets:["latin"]},{family:"Yeon Sung",variants:["regular"],subsets:["latin","korean"]},{family:"Yeseva One",variants:["regular"],subsets:["cyrillic","vietnamese","cyrillic-ext","latin","latin-ext"]},{family:"Yesteryear",variants:["regular"],subsets:["latin"]},{family:"Yrsa",variants:["300","regular","500","600","700"],subsets:["latin","latin-ext"]},{family:"ZCOOL KuaiLe",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"ZCOOL QingKe HuangYou",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"ZCOOL XiaoWei",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"Zeyada",variants:["regular"],subsets:["latin"]},{family:"Zhi Mang Xing",variants:["regular"],subsets:["chinese-simplified","latin"]},{family:"Zilla Slab",variants:["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"],subsets:["latin","latin-ext"]},{family:"Zilla Slab Highlight",variants:["regular","700"],subsets:["latin","latin-ext"]}]}},function(a,i,t){"use strict";var l=wp.blocks.createBlock,e={from:[{type:"block",blocks:["core/paragraph"],transform:function(a){var i=a.content;return l("olympus-google-fonts/google-fonts",{content:i})}},{type:"block",blocks:["core/heading"],transform:function(a){var i=a.content,t=a.level;return l("olympus-google-fonts/google-fonts",{content:i,blockType:"h"+t})}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(a){var i=a.content;return l("core/paragraph",{content:i})}}]};i.a=e}]);
trunk/blocks/dist/blocks.editor.build.css ADDED
File without changes
trunk/blocks/dist/blocks.style.build.css ADDED
File without changes
trunk/blocks/init.php ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Blocks Package
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ // Exit if accessed directly.
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * Enqueue Gutenberg block assets for backend editor.
17
+ */
18
+ function olympus_google_fonts_block_js() {
19
+ wp_enqueue_script(
20
+ 'olympus-google-fonts-block-js',
21
+ plugins_url( '/dist/blocks.build.js', __FILE__ ),
22
+ array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-editor' ),
23
+ OGF_VERSION,
24
+ false
25
+ );
26
+ }
27
+
28
+ add_action( 'enqueue_block_editor_assets', 'olympus_google_fonts_block_js' );
29
+
30
+ /**
31
+ * Registers the 'olympus-google-fonts/google-fonts' block on server.
32
+ */
33
+ function olympus_google_fonts_register_block() {
34
+ // Check if the register function exists.
35
+ if ( ! function_exists( 'register_block_type' ) ) {
36
+ return;
37
+ }
38
+ register_block_type(
39
+ 'olympus-google-fonts/google-fonts',
40
+ array(
41
+ 'attributes' => array(
42
+ 'blockType' => array(
43
+ 'type' => 'string',
44
+ 'default' => 'p',
45
+ ),
46
+ 'fontID' => array(
47
+ 'type' => 'string',
48
+ 'default' => '',
49
+ ),
50
+ 'variant' => array(
51
+ 'type' => 'string',
52
+ 'default' => 'regular',
53
+ ),
54
+ 'fontSize' => array(
55
+ 'type' => 'number',
56
+ ),
57
+ 'lineHeight' => array(
58
+ 'type' => 'number',
59
+ ),
60
+ 'align' => array(
61
+ 'type' => 'string',
62
+ ),
63
+ 'content' => array(
64
+ 'type' => 'string',
65
+ ),
66
+ 'color' => array(
67
+ 'type' => 'string',
68
+ ),
69
+ ),
70
+ 'render_callback' => 'olympus_google_fonts_block_render',
71
+ )
72
+ );
73
+ }
74
+ add_action( 'init', 'olympus_google_fonts_register_block' );
75
+
76
+ /**
77
+ * Front end render function for 'olympus-google-fonts/google-fonts'.
78
+ *
79
+ * @param array $attributes The block attributes.
80
+ */
81
+ function olympus_google_fonts_block_render( $attributes ) {
82
+
83
+ $block_type = isset( $attributes['blockType'] ) ? esc_attr( $attributes['blockType'] ) : 'p';
84
+ $font_id = isset( $attributes['fontID'] ) ? sanitize_text_field( $attributes['fontID'] ) : '';
85
+ $variant = isset( $attributes['variant'] ) ? sanitize_text_field( $attributes['variant'] ) : '';
86
+ $font_size = isset( $attributes['fontSize'] ) ? intval( $attributes['fontSize'] ) : '';
87
+ $line_height = isset( $attributes['lineHeight'] ) ? floatval( $attributes['lineHeight'] ) : '';
88
+ $align = isset( $attributes['align'] ) ? sanitize_text_field( $attributes['align'] ) : '';
89
+ $content = isset( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : '';
90
+ $color = isset( $attributes['color'] ) ? sanitize_text_field( $attributes['color'] ) : '';
91
+ $output = '';
92
+ $style = '';
93
+
94
+ if ( $font_id ) {
95
+
96
+ $font_family = esc_attr( str_replace( '+', ' ', $font_id ) );
97
+ $font_id = str_replace( '+', '-', strtolower( $font_id ) );
98
+ $fonts = ogf_fonts_array();
99
+ $variants = $fonts[ $font_id ]['variants'];
100
+ unset( $variants[0] );
101
+
102
+ $variants_for_url = join( array_keys( $variants ), ',' );
103
+
104
+ wp_enqueue_style( 'google-font-' . $font_id, 'https://fonts.googleapis.com/css?family=' . $font_family . ':' . $variants_for_url . '&display=swap', array(), OGF_VERSION );
105
+
106
+ $style = "font-family: {$font_family};";
107
+ }
108
+
109
+ if ( $variant && 'regular' !== $variant ) {
110
+ $style .= "font-weight: {$variant};";
111
+ }
112
+
113
+ if ( $font_size ) {
114
+ $style .= "font-size: {$font_size}px;";
115
+ }
116
+
117
+ if ( $line_height ) {
118
+ $style .= "line-height: {$line_height};";
119
+ }
120
+
121
+ if ( $align ) {
122
+ $style .= "text-align: {$align};";
123
+ }
124
+
125
+ if ( $color ) {
126
+ $style .= "color: {$color};";
127
+ }
128
+
129
+ $output .= '<' . $block_type . ' class="google-fonts-blocks" style="' . $style . '">';
130
+ $output .= $content;
131
+ $output .= '</' . $block_type . '>';
132
+
133
+ return $output;
134
+ }
trunk/blocks/package-lock.json ADDED
@@ -0,0 +1,6974 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-block-cgb-guten-block",
3
+ "version": "1.13.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "@babel/code-frame": {
8
+ "version": "7.0.0-beta.44",
9
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz",
10
+ "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==",
11
+ "requires": {
12
+ "@babel/highlight": "7.0.0-beta.44"
13
+ }
14
+ },
15
+ "@babel/generator": {
16
+ "version": "7.0.0-beta.44",
17
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz",
18
+ "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==",
19
+ "requires": {
20
+ "@babel/types": "7.0.0-beta.44",
21
+ "jsesc": "^2.5.1",
22
+ "lodash": "^4.2.0",
23
+ "source-map": "^0.5.0",
24
+ "trim-right": "^1.0.1"
25
+ },
26
+ "dependencies": {
27
+ "jsesc": {
28
+ "version": "2.5.2",
29
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
30
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
31
+ },
32
+ "source-map": {
33
+ "version": "0.5.7",
34
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
35
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
36
+ }
37
+ }
38
+ },
39
+ "@babel/helper-function-name": {
40
+ "version": "7.0.0-beta.44",
41
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz",
42
+ "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==",
43
+ "requires": {
44
+ "@babel/helper-get-function-arity": "7.0.0-beta.44",
45
+ "@babel/template": "7.0.0-beta.44",
46
+ "@babel/types": "7.0.0-beta.44"
47
+ }
48
+ },
49
+ "@babel/helper-get-function-arity": {
50
+ "version": "7.0.0-beta.44",
51
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz",
52
+ "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==",
53
+ "requires": {
54
+ "@babel/types": "7.0.0-beta.44"
55
+ }
56
+ },
57
+ "@babel/helper-split-export-declaration": {
58
+ "version": "7.0.0-beta.44",
59
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz",
60
+ "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==",
61
+ "requires": {
62
+ "@babel/types": "7.0.0-beta.44"
63
+ }
64
+ },
65
+ "@babel/highlight": {
66
+ "version": "7.0.0-beta.44",
67
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz",
68
+ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==",
69
+ "requires": {
70
+ "chalk": "^2.0.0",
71
+ "esutils": "^2.0.2",
72
+ "js-tokens": "^3.0.0"
73
+ }
74
+ },
75
+ "@babel/runtime": {
76
+ "version": "7.5.5",
77
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
78
+ "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
79
+ "requires": {
80
+ "regenerator-runtime": "^0.13.2"
81
+ },
82
+ "dependencies": {
83
+ "regenerator-runtime": {
84
+ "version": "0.13.3",
85
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
86
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
87
+ }
88
+ }
89
+ },
90
+ "@babel/template": {
91
+ "version": "7.0.0-beta.44",
92
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz",
93
+ "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==",
94
+ "requires": {
95
+ "@babel/code-frame": "7.0.0-beta.44",
96
+ "@babel/types": "7.0.0-beta.44",
97
+ "babylon": "7.0.0-beta.44",
98
+ "lodash": "^4.2.0"
99
+ },
100
+ "dependencies": {
101
+ "babylon": {
102
+ "version": "7.0.0-beta.44",
103
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
104
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
105
+ }
106
+ }
107
+ },
108
+ "@babel/traverse": {
109
+ "version": "7.0.0-beta.44",
110
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz",
111
+ "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==",
112
+ "requires": {
113
+ "@babel/code-frame": "7.0.0-beta.44",
114
+ "@babel/generator": "7.0.0-beta.44",
115
+ "@babel/helper-function-name": "7.0.0-beta.44",
116
+ "@babel/helper-split-export-declaration": "7.0.0-beta.44",
117
+ "@babel/types": "7.0.0-beta.44",
118
+ "babylon": "7.0.0-beta.44",
119
+ "debug": "^3.1.0",
120
+ "globals": "^11.1.0",
121
+ "invariant": "^2.2.0",
122
+ "lodash": "^4.2.0"
123
+ },
124
+ "dependencies": {
125
+ "babylon": {
126
+ "version": "7.0.0-beta.44",
127
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
128
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
129
+ },
130
+ "debug": {
131
+ "version": "3.2.6",
132
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
133
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
134
+ "requires": {
135
+ "ms": "^2.1.1"
136
+ }
137
+ },
138
+ "globals": {
139
+ "version": "11.12.0",
140
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
141
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
142
+ },
143
+ "ms": {
144
+ "version": "2.1.2",
145
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
146
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
147
+ }
148
+ }
149
+ },
150
+ "@babel/types": {
151
+ "version": "7.0.0-beta.44",
152
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz",
153
+ "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==",
154
+ "requires": {
155
+ "esutils": "^2.0.2",
156
+ "lodash": "^4.2.0",
157
+ "to-fast-properties": "^2.0.0"
158
+ },
159
+ "dependencies": {
160
+ "to-fast-properties": {
161
+ "version": "2.0.0",
162
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
163
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
164
+ }
165
+ }
166
+ },
167
+ "abbrev": {
168
+ "version": "1.1.1",
169
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
170
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
171
+ },
172
+ "acorn": {
173
+ "version": "5.7.3",
174
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
175
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
176
+ },
177
+ "acorn-dynamic-import": {
178
+ "version": "2.0.2",
179
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
180
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
181
+ "requires": {
182
+ "acorn": "^4.0.3"
183
+ },
184
+ "dependencies": {
185
+ "acorn": {
186
+ "version": "4.0.13",
187
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
188
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
189
+ }
190
+ }
191
+ },
192
+ "acorn-jsx": {
193
+ "version": "3.0.1",
194
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
195
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
196
+ "requires": {
197
+ "acorn": "^3.0.4"
198
+ },
199
+ "dependencies": {
200
+ "acorn": {
201
+ "version": "3.3.0",
202
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
203
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
204
+ }
205
+ }
206
+ },
207
+ "ajv": {
208
+ "version": "5.5.2",
209
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
210
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
211
+ "requires": {
212
+ "co": "^4.6.0",
213
+ "fast-deep-equal": "^1.0.0",
214
+ "fast-json-stable-stringify": "^2.0.0",
215
+ "json-schema-traverse": "^0.3.0"
216
+ }
217
+ },
218
+ "ajv-errors": {
219
+ "version": "1.0.1",
220
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
221
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
222
+ },
223
+ "ajv-keywords": {
224
+ "version": "2.1.1",
225
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
226
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I="
227
+ },
228
+ "align-text": {
229
+ "version": "0.1.4",
230
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
231
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
232
+ "requires": {
233
+ "kind-of": "^3.0.2",
234
+ "longest": "^1.0.1",
235
+ "repeat-string": "^1.5.2"
236
+ },
237
+ "dependencies": {
238
+ "kind-of": {
239
+ "version": "3.2.2",
240
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
241
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
242
+ "requires": {
243
+ "is-buffer": "^1.1.5"
244
+ }
245
+ }
246
+ }
247
+ },
248
+ "amdefine": {
249
+ "version": "1.0.1",
250
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
251
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
252
+ },
253
+ "ansi-align": {
254
+ "version": "2.0.0",
255
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
256
+ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
257
+ "requires": {
258
+ "string-width": "^2.0.0"
259
+ }
260
+ },
261
+ "ansi-escapes": {
262
+ "version": "3.2.0",
263
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
264
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
265
+ },
266
+ "ansi-regex": {
267
+ "version": "2.1.1",
268
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
269
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
270
+ },
271
+ "ansi-styles": {
272
+ "version": "3.2.1",
273
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
274
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
275
+ "requires": {
276
+ "color-convert": "^1.9.0"
277
+ }
278
+ },
279
+ "anymatch": {
280
+ "version": "2.0.0",
281
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
282
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
283
+ "requires": {
284
+ "micromatch": "^3.1.4",
285
+ "normalize-path": "^2.1.1"
286
+ },
287
+ "dependencies": {
288
+ "normalize-path": {
289
+ "version": "2.1.1",
290
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
291
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
292
+ "requires": {
293
+ "remove-trailing-separator": "^1.0.1"
294
+ }
295
+ }
296
+ }
297
+ },
298
+ "aproba": {
299
+ "version": "1.2.0",
300
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
301
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
302
+ },
303
+ "are-we-there-yet": {
304
+ "version": "1.1.5",
305
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
306
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
307
+ "requires": {
308
+ "delegates": "^1.0.0",
309
+ "readable-stream": "^2.0.6"
310
+ }
311
+ },
312
+ "argparse": {
313
+ "version": "1.0.10",
314
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
315
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
316
+ "requires": {
317
+ "sprintf-js": "~1.0.2"
318
+ }
319
+ },
320
+ "aria-query": {
321
+ "version": "3.0.0",
322
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
323
+ "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
324
+ "requires": {
325
+ "ast-types-flow": "0.0.7",
326
+ "commander": "^2.11.0"
327
+ }
328
+ },
329
+ "arr-diff": {
330
+ "version": "4.0.0",
331
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
332
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
333
+ },
334
+ "arr-flatten": {
335
+ "version": "1.1.0",
336
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
337
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
338
+ },
339
+ "arr-union": {
340
+ "version": "3.1.0",
341
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
342
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
343
+ },
344
+ "array-find-index": {
345
+ "version": "1.0.2",
346
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
347
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
348
+ },
349
+ "array-includes": {
350
+ "version": "3.0.3",
351
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
352
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
353
+ "requires": {
354
+ "define-properties": "^1.1.2",
355
+ "es-abstract": "^1.7.0"
356
+ }
357
+ },
358
+ "array-unique": {
359
+ "version": "0.3.2",
360
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
361
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
362
+ },
363
+ "asn1": {
364
+ "version": "0.2.4",
365
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
366
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
367
+ "requires": {
368
+ "safer-buffer": "~2.1.0"
369
+ }
370
+ },
371
+ "asn1.js": {
372
+ "version": "4.10.1",
373
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
374
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
375
+ "requires": {
376
+ "bn.js": "^4.0.0",
377
+ "inherits": "^2.0.1",
378
+ "minimalistic-assert": "^1.0.0"
379
+ }
380
+ },
381
+ "assert": {
382
+ "version": "1.5.0",
383
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
384
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
385
+ "requires": {
386
+ "object-assign": "^4.1.1",
387
+ "util": "0.10.3"
388
+ },
389
+ "dependencies": {
390
+ "inherits": {
391
+ "version": "2.0.1",
392
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
393
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
394
+ },
395
+ "util": {
396
+ "version": "0.10.3",
397
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
398
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
399
+ "requires": {
400
+ "inherits": "2.0.1"
401
+ }
402
+ }
403
+ }
404
+ },
405
+ "assert-plus": {
406
+ "version": "1.0.0",
407
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
408
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
409
+ },
410
+ "assign-symbols": {
411
+ "version": "1.0.0",
412
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
413
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
414
+ },
415
+ "ast-types-flow": {
416
+ "version": "0.0.7",
417
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
418
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
419
+ },
420
+ "async": {
421
+ "version": "2.6.3",
422
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
423
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
424
+ "requires": {
425
+ "lodash": "^4.17.14"
426
+ }
427
+ },
428
+ "async-each": {
429
+ "version": "1.0.3",
430
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
431
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
432
+ },
433
+ "async-foreach": {
434
+ "version": "0.1.3",
435
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
436
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
437
+ },
438
+ "asynckit": {
439
+ "version": "0.4.0",
440
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
441
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
442
+ },
443
+ "atob": {
444
+ "version": "2.1.2",
445
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
446
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
447
+ },
448
+ "autoprefixer": {
449
+ "version": "7.2.6",
450
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz",
451
+ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==",
452
+ "requires": {
453
+ "browserslist": "^2.11.3",
454
+ "caniuse-lite": "^1.0.30000805",
455
+ "normalize-range": "^0.1.2",
456
+ "num2fraction": "^1.2.2",
457
+ "postcss": "^6.0.17",
458
+ "postcss-value-parser": "^3.2.3"
459
+ }
460
+ },
461
+ "aws-sign2": {
462
+ "version": "0.7.0",
463
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
464
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
465
+ },
466
+ "aws4": {
467
+ "version": "1.8.0",
468
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
469
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
470
+ },
471
+ "axobject-query": {
472
+ "version": "2.0.2",
473
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
474
+ "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
475
+ "requires": {
476
+ "ast-types-flow": "0.0.7"
477
+ }
478
+ },
479
+ "babel-code-frame": {
480
+ "version": "6.26.0",
481
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
482
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
483
+ "requires": {
484
+ "chalk": "^1.1.3",
485
+ "esutils": "^2.0.2",
486
+ "js-tokens": "^3.0.2"
487
+ },
488
+ "dependencies": {
489
+ "ansi-styles": {
490
+ "version": "2.2.1",
491
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
492
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
493
+ },
494
+ "chalk": {
495
+ "version": "1.1.3",
496
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
497
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
498
+ "requires": {
499
+ "ansi-styles": "^2.2.1",
500
+ "escape-string-regexp": "^1.0.2",
501
+ "has-ansi": "^2.0.0",
502
+ "strip-ansi": "^3.0.0",
503
+ "supports-color": "^2.0.0"
504
+ }
505
+ },
506
+ "supports-color": {
507
+ "version": "2.0.0",
508
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
509
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
510
+ }
511
+ }
512
+ },
513
+ "babel-core": {
514
+ "version": "6.26.3",
515
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
516
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
517
+ "requires": {
518
+ "babel-code-frame": "^6.26.0",
519
+ "babel-generator": "^6.26.0",
520
+ "babel-helpers": "^6.24.1",
521
+ "babel-messages": "^6.23.0",
522
+ "babel-register": "^6.26.0",
523
+ "babel-runtime": "^6.26.0",
524
+ "babel-template": "^6.26.0",
525
+ "babel-traverse": "^6.26.0",
526
+ "babel-types": "^6.26.0",
527
+ "babylon": "^6.18.0",
528
+ "convert-source-map": "^1.5.1",
529
+ "debug": "^2.6.9",
530
+ "json5": "^0.5.1",
531
+ "lodash": "^4.17.4",
532
+ "minimatch": "^3.0.4",
533
+ "path-is-absolute": "^1.0.1",
534
+ "private": "^0.1.8",
535
+ "slash": "^1.0.0",
536
+ "source-map": "^0.5.7"
537
+ },
538
+ "dependencies": {
539
+ "source-map": {
540
+ "version": "0.5.7",
541
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
542
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
543
+ }
544
+ }
545
+ },
546
+ "babel-eslint": {
547
+ "version": "8.2.6",
548
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz",
549
+ "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==",
550
+ "requires": {
551
+ "@babel/code-frame": "7.0.0-beta.44",
552
+ "@babel/traverse": "7.0.0-beta.44",
553
+ "@babel/types": "7.0.0-beta.44",
554
+ "babylon": "7.0.0-beta.44",
555
+ "eslint-scope": "3.7.1",
556
+ "eslint-visitor-keys": "^1.0.0"
557
+ },
558
+ "dependencies": {
559
+ "babylon": {
560
+ "version": "7.0.0-beta.44",
561
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
562
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g=="
563
+ }
564
+ }
565
+ },
566
+ "babel-generator": {
567
+ "version": "6.26.1",
568
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
569
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
570
+ "requires": {
571
+ "babel-messages": "^6.23.0",
572
+ "babel-runtime": "^6.26.0",
573
+ "babel-types": "^6.26.0",
574
+ "detect-indent": "^4.0.0",
575
+ "jsesc": "^1.3.0",
576
+ "lodash": "^4.17.4",
577
+ "source-map": "^0.5.7",
578
+ "trim-right": "^1.0.1"
579
+ },
580
+ "dependencies": {
581
+ "source-map": {
582
+ "version": "0.5.7",
583
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
584
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
585
+ }
586
+ }
587
+ },
588
+ "babel-helper-builder-binary-assignment-operator-visitor": {
589
+ "version": "6.24.1",
590
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
591
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
592
+ "requires": {
593
+ "babel-helper-explode-assignable-expression": "^6.24.1",
594
+ "babel-runtime": "^6.22.0",
595
+ "babel-types": "^6.24.1"
596
+ }
597
+ },
598
+ "babel-helper-builder-react-jsx": {
599
+ "version": "6.26.0",
600
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
601
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
602
+ "requires": {
603
+ "babel-runtime": "^6.26.0",
604
+ "babel-types": "^6.26.0",
605
+ "esutils": "^2.0.2"
606
+ }
607
+ },
608
+ "babel-helper-call-delegate": {
609
+ "version": "6.24.1",
610
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
611
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
612
+ "requires": {
613
+ "babel-helper-hoist-variables": "^6.24.1",
614
+ "babel-runtime": "^6.22.0",
615
+ "babel-traverse": "^6.24.1",
616
+ "babel-types": "^6.24.1"
617
+ }
618
+ },
619
+ "babel-helper-define-map": {
620
+ "version": "6.26.0",
621
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
622
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
623
+ "requires": {
624
+ "babel-helper-function-name": "^6.24.1",
625
+ "babel-runtime": "^6.26.0",
626
+ "babel-types": "^6.26.0",
627
+ "lodash": "^4.17.4"
628
+ }
629
+ },
630
+ "babel-helper-explode-assignable-expression": {
631
+ "version": "6.24.1",
632
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
633
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
634
+ "requires": {
635
+ "babel-runtime": "^6.22.0",
636
+ "babel-traverse": "^6.24.1",
637
+ "babel-types": "^6.24.1"
638
+ }
639
+ },
640
+ "babel-helper-function-name": {
641
+ "version": "6.24.1",
642
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
643
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
644
+ "requires": {
645
+ "babel-helper-get-function-arity": "^6.24.1",
646
+ "babel-runtime": "^6.22.0",
647
+ "babel-template": "^6.24.1",
648
+ "babel-traverse": "^6.24.1",
649
+ "babel-types": "^6.24.1"
650
+ }
651
+ },
652
+ "babel-helper-get-function-arity": {
653
+ "version": "6.24.1",
654
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
655
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
656
+ "requires": {
657
+ "babel-runtime": "^6.22.0",
658
+ "babel-types": "^6.24.1"
659
+ }
660
+ },
661
+ "babel-helper-hoist-variables": {
662
+ "version": "6.24.1",
663
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
664
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
665
+ "requires": {
666
+ "babel-runtime": "^6.22.0",
667
+ "babel-types": "^6.24.1"
668
+ }
669
+ },
670
+ "babel-helper-optimise-call-expression": {
671
+ "version": "6.24.1",
672
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
673
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
674
+ "requires": {
675
+ "babel-runtime": "^6.22.0",
676
+ "babel-types": "^6.24.1"
677
+ }
678
+ },
679
+ "babel-helper-regex": {
680
+ "version": "6.26.0",
681
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
682
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
683
+ "requires": {
684
+ "babel-runtime": "^6.26.0",
685
+ "babel-types": "^6.26.0",
686
+ "lodash": "^4.17.4"
687
+ }
688
+ },
689
+ "babel-helper-remap-async-to-generator": {
690
+ "version": "6.24.1",
691
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
692
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
693
+ "requires": {
694
+ "babel-helper-function-name": "^6.24.1",
695
+ "babel-runtime": "^6.22.0",
696
+ "babel-template": "^6.24.1",
697
+ "babel-traverse": "^6.24.1",
698
+ "babel-types": "^6.24.1"
699
+ }
700
+ },
701
+ "babel-helper-replace-supers": {
702
+ "version": "6.24.1",
703
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
704
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
705
+ "requires": {
706
+ "babel-helper-optimise-call-expression": "^6.24.1",
707
+ "babel-messages": "^6.23.0",
708
+ "babel-runtime": "^6.22.0",
709
+ "babel-template": "^6.24.1",
710
+ "babel-traverse": "^6.24.1",
711
+ "babel-types": "^6.24.1"
712
+ }
713
+ },
714
+ "babel-helpers": {
715
+ "version": "6.24.1",
716
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
717
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
718
+ "requires": {
719
+ "babel-runtime": "^6.22.0",
720
+ "babel-template": "^6.24.1"
721
+ }
722
+ },
723
+ "babel-loader": {
724
+ "version": "7.1.5",
725
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
726
+ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
727
+ "requires": {
728
+ "find-cache-dir": "^1.0.0",
729
+ "loader-utils": "^1.0.2",
730
+ "mkdirp": "^0.5.1"
731
+ }
732
+ },
733
+ "babel-messages": {
734
+ "version": "6.23.0",
735
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
736
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
737
+ "requires": {
738
+ "babel-runtime": "^6.22.0"
739
+ }
740
+ },
741
+ "babel-plugin-check-es2015-constants": {
742
+ "version": "6.22.0",
743
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
744
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
745
+ "requires": {
746
+ "babel-runtime": "^6.22.0"
747
+ }
748
+ },
749
+ "babel-plugin-syntax-async-functions": {
750
+ "version": "6.13.0",
751
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
752
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="
753
+ },
754
+ "babel-plugin-syntax-class-properties": {
755
+ "version": "6.13.0",
756
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
757
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94="
758
+ },
759
+ "babel-plugin-syntax-exponentiation-operator": {
760
+ "version": "6.13.0",
761
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
762
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4="
763
+ },
764
+ "babel-plugin-syntax-jsx": {
765
+ "version": "6.18.0",
766
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
767
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
768
+ },
769
+ "babel-plugin-syntax-object-rest-spread": {
770
+ "version": "6.13.0",
771
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
772
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U="
773
+ },
774
+ "babel-plugin-syntax-trailing-function-commas": {
775
+ "version": "6.22.0",
776
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
777
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM="
778
+ },
779
+ "babel-plugin-transform-async-to-generator": {
780
+ "version": "6.24.1",
781
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
782
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
783
+ "requires": {
784
+ "babel-helper-remap-async-to-generator": "^6.24.1",
785
+ "babel-plugin-syntax-async-functions": "^6.8.0",
786
+ "babel-runtime": "^6.22.0"
787
+ }
788
+ },
789
+ "babel-plugin-transform-class-properties": {
790
+ "version": "6.24.1",
791
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
792
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
793
+ "requires": {
794
+ "babel-helper-function-name": "^6.24.1",
795
+ "babel-plugin-syntax-class-properties": "^6.8.0",
796
+ "babel-runtime": "^6.22.0",
797
+ "babel-template": "^6.24.1"
798
+ }
799
+ },
800
+ "babel-plugin-transform-es2015-arrow-functions": {
801
+ "version": "6.22.0",
802
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
803
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
804
+ "requires": {
805
+ "babel-runtime": "^6.22.0"
806
+ }
807
+ },
808
+ "babel-plugin-transform-es2015-block-scoped-functions": {
809
+ "version": "6.22.0",
810
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
811
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
812
+ "requires": {
813
+ "babel-runtime": "^6.22.0"
814
+ }
815
+ },
816
+ "babel-plugin-transform-es2015-block-scoping": {
817
+ "version": "6.26.0",
818
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
819
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
820
+ "requires": {
821
+ "babel-runtime": "^6.26.0",
822
+ "babel-template": "^6.26.0",
823
+ "babel-traverse": "^6.26.0",
824
+ "babel-types": "^6.26.0",
825
+ "lodash": "^4.17.4"
826
+ }
827
+ },
828
+ "babel-plugin-transform-es2015-classes": {
829
+ "version": "6.24.1",
830
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
831
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
832
+ "requires": {
833
+ "babel-helper-define-map": "^6.24.1",
834
+ "babel-helper-function-name": "^6.24.1",
835
+ "babel-helper-optimise-call-expression": "^6.24.1",
836
+ "babel-helper-replace-supers": "^6.24.1",
837
+ "babel-messages": "^6.23.0",
838
+ "babel-runtime": "^6.22.0",
839
+ "babel-template": "^6.24.1",
840
+ "babel-traverse": "^6.24.1",
841
+ "babel-types": "^6.24.1"
842
+ }
843
+ },
844
+ "babel-plugin-transform-es2015-computed-properties": {
845
+ "version": "6.24.1",
846
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
847
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
848
+ "requires": {
849
+ "babel-runtime": "^6.22.0",
850
+ "babel-template": "^6.24.1"
851
+ }
852
+ },
853
+ "babel-plugin-transform-es2015-destructuring": {
854
+ "version": "6.23.0",
855
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
856
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
857
+ "requires": {
858
+ "babel-runtime": "^6.22.0"
859
+ }
860
+ },
861
+ "babel-plugin-transform-es2015-duplicate-keys": {
862
+ "version": "6.24.1",
863
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
864
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
865
+ "requires": {
866
+ "babel-runtime": "^6.22.0",
867
+ "babel-types": "^6.24.1"
868
+ }
869
+ },
870
+ "babel-plugin-transform-es2015-for-of": {
871
+ "version": "6.23.0",
872
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
873
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
874
+ "requires": {
875
+ "babel-runtime": "^6.22.0"
876
+ }
877
+ },
878
+ "babel-plugin-transform-es2015-function-name": {
879
+ "version": "6.24.1",
880
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
881
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
882
+ "requires": {
883
+ "babel-helper-function-name": "^6.24.1",
884
+ "babel-runtime": "^6.22.0",
885
+ "babel-types": "^6.24.1"
886
+ }
887
+ },
888
+ "babel-plugin-transform-es2015-literals": {
889
+ "version": "6.22.0",
890
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
891
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
892
+ "requires": {
893
+ "babel-runtime": "^6.22.0"
894
+ }
895
+ },
896
+ "babel-plugin-transform-es2015-modules-amd": {
897
+ "version": "6.24.1",
898
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
899
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
900
+ "requires": {
901
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
902
+ "babel-runtime": "^6.22.0",
903
+ "babel-template": "^6.24.1"
904
+ }
905
+ },
906
+ "babel-plugin-transform-es2015-modules-commonjs": {
907
+ "version": "6.26.2",
908
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
909
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
910
+ "requires": {
911
+ "babel-plugin-transform-strict-mode": "^6.24.1",
912
+ "babel-runtime": "^6.26.0",
913
+ "babel-template": "^6.26.0",
914
+ "babel-types": "^6.26.0"
915
+ }
916
+ },
917
+ "babel-plugin-transform-es2015-modules-systemjs": {
918
+ "version": "6.24.1",
919
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
920
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
921
+ "requires": {
922
+ "babel-helper-hoist-variables": "^6.24.1",
923
+ "babel-runtime": "^6.22.0",
924
+ "babel-template": "^6.24.1"
925
+ }
926
+ },
927
+ "babel-plugin-transform-es2015-modules-umd": {
928
+ "version": "6.24.1",
929
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
930
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
931
+ "requires": {
932
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
933
+ "babel-runtime": "^6.22.0",
934
+ "babel-template": "^6.24.1"
935
+ }
936
+ },
937
+ "babel-plugin-transform-es2015-object-super": {
938
+ "version": "6.24.1",
939
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
940
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
941
+ "requires": {
942
+ "babel-helper-replace-supers": "^6.24.1",
943
+ "babel-runtime": "^6.22.0"
944
+ }
945
+ },
946
+ "babel-plugin-transform-es2015-parameters": {
947
+ "version": "6.24.1",
948
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
949
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
950
+ "requires": {
951
+ "babel-helper-call-delegate": "^6.24.1",
952
+ "babel-helper-get-function-arity": "^6.24.1",
953
+ "babel-runtime": "^6.22.0",
954
+ "babel-template": "^6.24.1",
955
+ "babel-traverse": "^6.24.1",
956
+ "babel-types": "^6.24.1"
957
+ }
958
+ },
959
+ "babel-plugin-transform-es2015-shorthand-properties": {
960
+ "version": "6.24.1",
961
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
962
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
963
+ "requires": {
964
+ "babel-runtime": "^6.22.0",
965
+ "babel-types": "^6.24.1"
966
+ }
967
+ },
968
+ "babel-plugin-transform-es2015-spread": {
969
+ "version": "6.22.0",
970
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
971
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
972
+ "requires": {
973
+ "babel-runtime": "^6.22.0"
974
+ }
975
+ },
976
+ "babel-plugin-transform-es2015-sticky-regex": {
977
+ "version": "6.24.1",
978
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
979
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
980
+ "requires": {
981
+ "babel-helper-regex": "^6.24.1",
982
+ "babel-runtime": "^6.22.0",
983
+ "babel-types": "^6.24.1"
984
+ }
985
+ },
986
+ "babel-plugin-transform-es2015-template-literals": {
987
+ "version": "6.22.0",
988
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
989
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
990
+ "requires": {
991
+ "babel-runtime": "^6.22.0"
992
+ }
993
+ },
994
+ "babel-plugin-transform-es2015-typeof-symbol": {
995
+ "version": "6.23.0",
996
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
997
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
998
+ "requires": {
999
+ "babel-runtime": "^6.22.0"
1000
+ }
1001
+ },
1002
+ "babel-plugin-transform-es2015-unicode-regex": {
1003
+ "version": "6.24.1",
1004
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
1005
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
1006
+ "requires": {
1007
+ "babel-helper-regex": "^6.24.1",
1008
+ "babel-runtime": "^6.22.0",
1009
+ "regexpu-core": "^2.0.0"
1010
+ }
1011
+ },
1012
+ "babel-plugin-transform-exponentiation-operator": {
1013
+ "version": "6.24.1",
1014
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
1015
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
1016
+ "requires": {
1017
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
1018
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
1019
+ "babel-runtime": "^6.22.0"
1020
+ }
1021
+ },
1022
+ "babel-plugin-transform-object-rest-spread": {
1023
+ "version": "6.26.0",
1024
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
1025
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
1026
+ "requires": {
1027
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
1028
+ "babel-runtime": "^6.26.0"
1029
+ }
1030
+ },
1031
+ "babel-plugin-transform-react-jsx": {
1032
+ "version": "6.24.1",
1033
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
1034
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
1035
+ "requires": {
1036
+ "babel-helper-builder-react-jsx": "^6.24.1",
1037
+ "babel-plugin-syntax-jsx": "^6.8.0",
1038
+ "babel-runtime": "^6.22.0"
1039
+ }
1040
+ },
1041
+ "babel-plugin-transform-regenerator": {
1042
+ "version": "6.26.0",
1043
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
1044
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
1045
+ "requires": {
1046
+ "regenerator-transform": "^0.10.0"
1047
+ }
1048
+ },
1049
+ "babel-plugin-transform-runtime": {
1050
+ "version": "6.23.0",
1051
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
1052
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
1053
+ "requires": {
1054
+ "babel-runtime": "^6.22.0"
1055
+ }
1056
+ },
1057
+ "babel-plugin-transform-strict-mode": {
1058
+ "version": "6.24.1",
1059
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
1060
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
1061
+ "requires": {
1062
+ "babel-runtime": "^6.22.0",
1063
+ "babel-types": "^6.24.1"
1064
+ }
1065
+ },
1066
+ "babel-preset-cgb": {
1067
+ "version": "1.7.0",
1068
+ "resolved": "https://registry.npmjs.org/babel-preset-cgb/-/babel-preset-cgb-1.7.0.tgz",
1069
+ "integrity": "sha512-1V+eDD2uinBYvun7PmzIEQFBFQLHmp+BGH7QTHS+njG/bevjMhqj4ztYyQ2oqXsyo6bpzxGpxKOSAS+UsDBt4A==",
1070
+ "requires": {
1071
+ "babel-plugin-syntax-async-functions": "^6.13.0",
1072
+ "babel-plugin-transform-class-properties": "6.24.1",
1073
+ "babel-plugin-transform-object-rest-spread": "^6.26.0",
1074
+ "babel-plugin-transform-react-jsx": "^6.24.1",
1075
+ "babel-plugin-transform-runtime": "^6.23.0",
1076
+ "babel-preset-env": "^1.6.0",
1077
+ "update-notifier": "^2.3.0"
1078
+ }
1079
+ },
1080
+ "babel-preset-env": {
1081
+ "version": "1.7.0",
1082
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
1083
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
1084
+ "requires": {
1085
+ "babel-plugin-check-es2015-constants": "^6.22.0",
1086
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
1087
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
1088
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
1089
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
1090
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
1091
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
1092
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
1093
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
1094
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
1095
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
1096
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
1097
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
1098
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
1099
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
1100
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
1101
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
1102
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
1103
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
1104
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
1105
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
1106
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
1107
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
1108
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
1109
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
1110
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
1111
+ "babel-plugin-transform-regenerator": "^6.22.0",
1112
+ "browserslist": "^3.2.6",
1113
+ "invariant": "^2.2.2",
1114
+ "semver": "^5.3.0"
1115
+ },
1116
+ "dependencies": {
1117
+ "browserslist": {
1118
+ "version": "3.2.8",
1119
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
1120
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
1121
+ "requires": {
1122
+ "caniuse-lite": "^1.0.30000844",
1123
+ "electron-to-chromium": "^1.3.47"
1124
+ }
1125
+ }
1126
+ }
1127
+ },
1128
+ "babel-register": {
1129
+ "version": "6.26.0",
1130
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
1131
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
1132
+ "requires": {
1133
+ "babel-core": "^6.26.0",
1134
+ "babel-runtime": "^6.26.0",
1135
+ "core-js": "^2.5.0",
1136
+ "home-or-tmp": "^2.0.0",
1137
+ "lodash": "^4.17.4",
1138
+ "mkdirp": "^0.5.1",
1139
+ "source-map-support": "^0.4.15"
1140
+ }
1141
+ },
1142
+ "babel-runtime": {
1143
+ "version": "6.26.0",
1144
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
1145
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
1146
+ "requires": {
1147
+ "core-js": "^2.4.0",
1148
+ "regenerator-runtime": "^0.11.0"
1149
+ }
1150
+ },
1151
+ "babel-template": {
1152
+ "version": "6.26.0",
1153
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
1154
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
1155
+ "requires": {
1156
+ "babel-runtime": "^6.26.0",
1157
+ "babel-traverse": "^6.26.0",
1158
+ "babel-types": "^6.26.0",
1159
+ "babylon": "^6.18.0",
1160
+ "lodash": "^4.17.4"
1161
+ }
1162
+ },
1163
+ "babel-traverse": {
1164
+ "version": "6.26.0",
1165
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
1166
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
1167
+ "requires": {
1168
+ "babel-code-frame": "^6.26.0",
1169
+ "babel-messages": "^6.23.0",
1170
+ "babel-runtime": "^6.26.0",
1171
+ "babel-types": "^6.26.0",
1172
+ "babylon": "^6.18.0",
1173
+ "debug": "^2.6.8",
1174
+ "globals": "^9.18.0",
1175
+ "invariant": "^2.2.2",
1176
+ "lodash": "^4.17.4"
1177
+ }
1178
+ },
1179
+ "babel-types": {
1180
+ "version": "6.26.0",
1181
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
1182
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
1183
+ "requires": {
1184
+ "babel-runtime": "^6.26.0",
1185
+ "esutils": "^2.0.2",
1186
+ "lodash": "^4.17.4",
1187
+ "to-fast-properties": "^1.0.3"
1188
+ }
1189
+ },
1190
+ "babylon": {
1191
+ "version": "6.18.0",
1192
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
1193
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
1194
+ },
1195
+ "balanced-match": {
1196
+ "version": "1.0.0",
1197
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1198
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
1199
+ },
1200
+ "base": {
1201
+ "version": "0.11.2",
1202
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1203
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1204
+ "requires": {
1205
+ "cache-base": "^1.0.1",
1206
+ "class-utils": "^0.3.5",
1207
+ "component-emitter": "^1.2.1",
1208
+ "define-property": "^1.0.0",
1209
+ "isobject": "^3.0.1",
1210
+ "mixin-deep": "^1.2.0",
1211
+ "pascalcase": "^0.1.1"
1212
+ },
1213
+ "dependencies": {
1214
+ "define-property": {
1215
+ "version": "1.0.0",
1216
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1217
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1218
+ "requires": {
1219
+ "is-descriptor": "^1.0.0"
1220
+ }
1221
+ },
1222
+ "is-accessor-descriptor": {
1223
+ "version": "1.0.0",
1224
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1225
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1226
+ "requires": {
1227
+ "kind-of": "^6.0.0"
1228
+ }
1229
+ },
1230
+ "is-data-descriptor": {
1231
+ "version": "1.0.0",
1232
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1233
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1234
+ "requires": {
1235
+ "kind-of": "^6.0.0"
1236
+ }
1237
+ },
1238
+ "is-descriptor": {
1239
+ "version": "1.0.2",
1240
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1241
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1242
+ "requires": {
1243
+ "is-accessor-descriptor": "^1.0.0",
1244
+ "is-data-descriptor": "^1.0.0",
1245
+ "kind-of": "^6.0.2"
1246
+ }
1247
+ }
1248
+ }
1249
+ },
1250
+ "base64-js": {
1251
+ "version": "1.3.0",
1252
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
1253
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
1254
+ },
1255
+ "bcrypt-pbkdf": {
1256
+ "version": "1.0.2",
1257
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1258
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1259
+ "requires": {
1260
+ "tweetnacl": "^0.14.3"
1261
+ }
1262
+ },
1263
+ "big.js": {
1264
+ "version": "5.2.2",
1265
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
1266
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
1267
+ },
1268
+ "binary-extensions": {
1269
+ "version": "1.13.1",
1270
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
1271
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
1272
+ },
1273
+ "block-stream": {
1274
+ "version": "0.0.9",
1275
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
1276
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
1277
+ "requires": {
1278
+ "inherits": "~2.0.0"
1279
+ }
1280
+ },
1281
+ "bn.js": {
1282
+ "version": "4.11.8",
1283
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
1284
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
1285
+ },
1286
+ "boxen": {
1287
+ "version": "1.3.0",
1288
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
1289
+ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
1290
+ "requires": {
1291
+ "ansi-align": "^2.0.0",
1292
+ "camelcase": "^4.0.0",
1293
+ "chalk": "^2.0.1",
1294
+ "cli-boxes": "^1.0.0",
1295
+ "string-width": "^2.0.0",
1296
+ "term-size": "^1.2.0",
1297
+ "widest-line": "^2.0.0"
1298
+ }
1299
+ },
1300
+ "brace-expansion": {
1301
+ "version": "1.1.11",
1302
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1303
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1304
+ "requires": {
1305
+ "balanced-match": "^1.0.0",
1306
+ "concat-map": "0.0.1"
1307
+ }
1308
+ },
1309
+ "braces": {
1310
+ "version": "2.3.2",
1311
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
1312
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
1313
+ "requires": {
1314
+ "arr-flatten": "^1.1.0",
1315
+ "array-unique": "^0.3.2",
1316
+ "extend-shallow": "^2.0.1",
1317
+ "fill-range": "^4.0.0",
1318
+ "isobject": "^3.0.1",
1319
+ "repeat-element": "^1.1.2",
1320
+ "snapdragon": "^0.8.1",
1321
+ "snapdragon-node": "^2.0.1",
1322
+ "split-string": "^3.0.2",
1323
+ "to-regex": "^3.0.1"
1324
+ },
1325
+ "dependencies": {
1326
+ "extend-shallow": {
1327
+ "version": "2.0.1",
1328
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1329
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1330
+ "requires": {
1331
+ "is-extendable": "^0.1.0"
1332
+ }
1333
+ }
1334
+ }
1335
+ },
1336
+ "brorand": {
1337
+ "version": "1.1.0",
1338
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
1339
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
1340
+ },
1341
+ "browserify-aes": {
1342
+ "version": "1.2.0",
1343
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
1344
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
1345
+ "requires": {
1346
+ "buffer-xor": "^1.0.3",
1347
+ "cipher-base": "^1.0.0",
1348
+ "create-hash": "^1.1.0",
1349
+ "evp_bytestokey": "^1.0.3",
1350
+ "inherits": "^2.0.1",
1351
+ "safe-buffer": "^5.0.1"
1352
+ }
1353
+ },
1354
+ "browserify-cipher": {
1355
+ "version": "1.0.1",
1356
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
1357
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
1358
+ "requires": {
1359
+ "browserify-aes": "^1.0.4",
1360
+ "browserify-des": "^1.0.0",
1361
+ "evp_bytestokey": "^1.0.0"
1362
+ }
1363
+ },
1364
+ "browserify-des": {
1365
+ "version": "1.0.2",
1366
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
1367
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
1368
+ "requires": {
1369
+ "cipher-base": "^1.0.1",
1370
+ "des.js": "^1.0.0",
1371
+ "inherits": "^2.0.1",
1372
+ "safe-buffer": "^5.1.2"
1373
+ }
1374
+ },
1375
+ "browserify-rsa": {
1376
+ "version": "4.0.1",
1377
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
1378
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
1379
+ "requires": {
1380
+ "bn.js": "^4.1.0",
1381
+ "randombytes": "^2.0.1"
1382
+ }
1383
+ },
1384
+ "browserify-sign": {
1385
+ "version": "4.0.4",
1386
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
1387
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
1388
+ "requires": {
1389
+ "bn.js": "^4.1.1",
1390
+ "browserify-rsa": "^4.0.0",
1391
+ "create-hash": "^1.1.0",
1392
+ "create-hmac": "^1.1.2",
1393
+ "elliptic": "^6.0.0",
1394
+ "inherits": "^2.0.1",
1395
+ "parse-asn1": "^5.0.0"
1396
+ }
1397
+ },
1398
+ "browserify-zlib": {
1399
+ "version": "0.2.0",
1400
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
1401
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
1402
+ "requires": {
1403
+ "pako": "~1.0.5"
1404
+ }
1405
+ },
1406
+ "browserslist": {
1407
+ "version": "2.11.3",
1408
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
1409
+ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
1410
+ "requires": {
1411
+ "caniuse-lite": "^1.0.30000792",
1412
+ "electron-to-chromium": "^1.3.30"
1413
+ }
1414
+ },
1415
+ "buffer": {
1416
+ "version": "4.9.1",
1417
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
1418
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
1419
+ "requires": {
1420
+ "base64-js": "^1.0.2",
1421
+ "ieee754": "^1.1.4",
1422
+ "isarray": "^1.0.0"
1423
+ }
1424
+ },
1425
+ "buffer-from": {
1426
+ "version": "1.1.1",
1427
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
1428
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
1429
+ },
1430
+ "buffer-xor": {
1431
+ "version": "1.0.3",
1432
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
1433
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
1434
+ },
1435
+ "builtin-status-codes": {
1436
+ "version": "3.0.0",
1437
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
1438
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
1439
+ },
1440
+ "cache-base": {
1441
+ "version": "1.0.1",
1442
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
1443
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
1444
+ "requires": {
1445
+ "collection-visit": "^1.0.0",
1446
+ "component-emitter": "^1.2.1",
1447
+ "get-value": "^2.0.6",
1448
+ "has-value": "^1.0.0",
1449
+ "isobject": "^3.0.1",
1450
+ "set-value": "^2.0.0",
1451
+ "to-object-path": "^0.3.0",
1452
+ "union-value": "^1.0.0",
1453
+ "unset-value": "^1.0.0"
1454
+ }
1455
+ },
1456
+ "caller-callsite": {
1457
+ "version": "2.0.0",
1458
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
1459
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
1460
+ "requires": {
1461
+ "callsites": "^2.0.0"
1462
+ },
1463
+ "dependencies": {
1464
+ "callsites": {
1465
+ "version": "2.0.0",
1466
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
1467
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
1468
+ }
1469
+ }
1470
+ },
1471
+ "caller-path": {
1472
+ "version": "0.1.0",
1473
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
1474
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
1475
+ "requires": {
1476
+ "callsites": "^0.2.0"
1477
+ }
1478
+ },
1479
+ "callsites": {
1480
+ "version": "0.2.0",
1481
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
1482
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="
1483
+ },
1484
+ "camelcase": {
1485
+ "version": "4.1.0",
1486
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
1487
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
1488
+ },
1489
+ "camelcase-keys": {
1490
+ "version": "2.1.0",
1491
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
1492
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
1493
+ "requires": {
1494
+ "camelcase": "^2.0.0",
1495
+ "map-obj": "^1.0.0"
1496
+ },
1497
+ "dependencies": {
1498
+ "camelcase": {
1499
+ "version": "2.1.1",
1500
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
1501
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
1502
+ }
1503
+ }
1504
+ },
1505
+ "caniuse-lite": {
1506
+ "version": "1.0.30000985",
1507
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz",
1508
+ "integrity": "sha512-1ngiwkgqAYPG0JSSUp3PUDGPKKY59EK7NrGGX+VOxaKCNzRbNc7uXMny+c3VJfZxtoK3wSImTvG9T9sXiTw2+w=="
1509
+ },
1510
+ "capture-stack-trace": {
1511
+ "version": "1.0.1",
1512
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
1513
+ "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
1514
+ },
1515
+ "caseless": {
1516
+ "version": "0.12.0",
1517
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1518
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
1519
+ },
1520
+ "center-align": {
1521
+ "version": "0.1.3",
1522
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
1523
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
1524
+ "requires": {
1525
+ "align-text": "^0.1.3",
1526
+ "lazy-cache": "^1.0.3"
1527
+ }
1528
+ },
1529
+ "cgb-dev-utils": {
1530
+ "version": "1.6.0",
1531
+ "resolved": "https://registry.npmjs.org/cgb-dev-utils/-/cgb-dev-utils-1.6.0.tgz",
1532
+ "integrity": "sha512-BtMGMzOMsdIa6ZryoTUGrPXr6YabZ+VMdR71cMspoQzlpNCxbQIheq6hXEUJkRLfg+E7+L8bIfyRV1+c3msr4g==",
1533
+ "requires": {
1534
+ "chalk": "2.3.0",
1535
+ "cross-spawn": "5.1.0",
1536
+ "update-notifier": "^2.3.0"
1537
+ },
1538
+ "dependencies": {
1539
+ "chalk": {
1540
+ "version": "2.3.0",
1541
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
1542
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
1543
+ "requires": {
1544
+ "ansi-styles": "^3.1.0",
1545
+ "escape-string-regexp": "^1.0.5",
1546
+ "supports-color": "^4.0.0"
1547
+ }
1548
+ },
1549
+ "has-flag": {
1550
+ "version": "2.0.0",
1551
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
1552
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
1553
+ },
1554
+ "supports-color": {
1555
+ "version": "4.5.0",
1556
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
1557
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
1558
+ "requires": {
1559
+ "has-flag": "^2.0.0"
1560
+ }
1561
+ }
1562
+ }
1563
+ },
1564
+ "cgb-scripts": {
1565
+ "version": "1.18.1",
1566
+ "resolved": "https://registry.npmjs.org/cgb-scripts/-/cgb-scripts-1.18.1.tgz",
1567
+ "integrity": "sha512-tCZZqE7prNy/pNtoioUxHMBUH9Obcwott8F/nuPAlaxZ2o0y3lBYx/kwFNmiiX9LRSqAw0bazVi8QpLPmNcTTg==",
1568
+ "requires": {
1569
+ "autoprefixer": "^7.2.4",
1570
+ "babel-core": "^6.25.0",
1571
+ "babel-eslint": "^8.2.1",
1572
+ "babel-loader": "^7.1.1",
1573
+ "babel-preset-cgb": "^1.7.0",
1574
+ "cgb-dev-utils": "^1.6.0",
1575
+ "chalk": "^2.3.0",
1576
+ "cross-env": "^5.0.1",
1577
+ "cross-spawn": "^5.1.0",
1578
+ "eslint": "^4.15.0",
1579
+ "eslint-config-wordpress": "^2.0.0",
1580
+ "eslint-plugin-jest": "^21.6.1",
1581
+ "eslint-plugin-jsx-a11y": "^6.0.3",
1582
+ "eslint-plugin-react": "^7.5.1",
1583
+ "eslint-plugin-wordpress": "^0.1.0",
1584
+ "extract-text-webpack-plugin": "^3.0.2",
1585
+ "filesize": "^3.5.11",
1586
+ "fs-extra": "^5.0.0",
1587
+ "gzip-size": "^4.1.0",
1588
+ "inquirer": "^5.0.0",
1589
+ "node-sass": "^4.7.2",
1590
+ "ora": "^1.3.0",
1591
+ "postcss-loader": "^2.0.10",
1592
+ "raw-loader": "^0.5.1",
1593
+ "resolve-pkg": "^1.0.0",
1594
+ "sass-loader": "^6.0.6",
1595
+ "shelljs": "^0.8.0",
1596
+ "style-loader": "^0.23.1",
1597
+ "update-notifier": "^2.3.0",
1598
+ "webpack": "^3.1.0"
1599
+ }
1600
+ },
1601
+ "chalk": {
1602
+ "version": "2.4.2",
1603
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1604
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1605
+ "requires": {
1606
+ "ansi-styles": "^3.2.1",
1607
+ "escape-string-regexp": "^1.0.5",
1608
+ "supports-color": "^5.3.0"
1609
+ }
1610
+ },
1611
+ "chardet": {
1612
+ "version": "0.4.2",
1613
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
1614
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
1615
+ },
1616
+ "chokidar": {
1617
+ "version": "2.1.6",
1618
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
1619
+ "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
1620
+ "requires": {
1621
+ "anymatch": "^2.0.0",
1622
+ "async-each": "^1.0.1",
1623
+ "braces": "^2.3.2",
1624
+ "fsevents": "^1.2.7",
1625
+ "glob-parent": "^3.1.0",
1626
+ "inherits": "^2.0.3",
1627
+ "is-binary-path": "^1.0.0",
1628
+ "is-glob": "^4.0.0",
1629
+ "normalize-path": "^3.0.0",
1630
+ "path-is-absolute": "^1.0.0",
1631
+ "readdirp": "^2.2.1",
1632
+ "upath": "^1.1.1"
1633
+ }
1634
+ },
1635
+ "ci-info": {
1636
+ "version": "1.6.0",
1637
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
1638
+ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A=="
1639
+ },
1640
+ "cipher-base": {
1641
+ "version": "1.0.4",
1642
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
1643
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
1644
+ "requires": {
1645
+ "inherits": "^2.0.1",
1646
+ "safe-buffer": "^5.0.1"
1647
+ }
1648
+ },
1649
+ "circular-json": {
1650
+ "version": "0.3.3",
1651
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
1652
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A=="
1653
+ },
1654
+ "class-utils": {
1655
+ "version": "0.3.6",
1656
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
1657
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
1658
+ "requires": {
1659
+ "arr-union": "^3.1.0",
1660
+ "define-property": "^0.2.5",
1661
+ "isobject": "^3.0.0",
1662
+ "static-extend": "^0.1.1"
1663
+ },
1664
+ "dependencies": {
1665
+ "define-property": {
1666
+ "version": "0.2.5",
1667
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1668
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1669
+ "requires": {
1670
+ "is-descriptor": "^0.1.0"
1671
+ }
1672
+ }
1673
+ }
1674
+ },
1675
+ "classnames": {
1676
+ "version": "2.2.6",
1677
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
1678
+ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
1679
+ },
1680
+ "cli-boxes": {
1681
+ "version": "1.0.0",
1682
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
1683
+ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM="
1684
+ },
1685
+ "cli-cursor": {
1686
+ "version": "2.1.0",
1687
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
1688
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
1689
+ "requires": {
1690
+ "restore-cursor": "^2.0.0"
1691
+ }
1692
+ },
1693
+ "cli-spinners": {
1694
+ "version": "1.3.1",
1695
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
1696
+ "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg=="
1697
+ },
1698
+ "cli-width": {
1699
+ "version": "2.2.0",
1700
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
1701
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
1702
+ },
1703
+ "cliui": {
1704
+ "version": "3.2.0",
1705
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
1706
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
1707
+ "requires": {
1708
+ "string-width": "^1.0.1",
1709
+ "strip-ansi": "^3.0.1",
1710
+ "wrap-ansi": "^2.0.0"
1711
+ },
1712
+ "dependencies": {
1713
+ "is-fullwidth-code-point": {
1714
+ "version": "1.0.0",
1715
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1716
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
1717
+ "requires": {
1718
+ "number-is-nan": "^1.0.0"
1719
+ }
1720
+ },
1721
+ "string-width": {
1722
+ "version": "1.0.2",
1723
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1724
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1725
+ "requires": {
1726
+ "code-point-at": "^1.0.0",
1727
+ "is-fullwidth-code-point": "^1.0.0",
1728
+ "strip-ansi": "^3.0.0"
1729
+ }
1730
+ }
1731
+ }
1732
+ },
1733
+ "clone-deep": {
1734
+ "version": "2.0.2",
1735
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
1736
+ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
1737
+ "requires": {
1738
+ "for-own": "^1.0.0",
1739
+ "is-plain-object": "^2.0.4",
1740
+ "kind-of": "^6.0.0",
1741
+ "shallow-clone": "^1.0.0"
1742
+ }
1743
+ },
1744
+ "co": {
1745
+ "version": "4.6.0",
1746
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
1747
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
1748
+ },
1749
+ "code-point-at": {
1750
+ "version": "1.1.0",
1751
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
1752
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
1753
+ },
1754
+ "collection-visit": {
1755
+ "version": "1.0.0",
1756
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
1757
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
1758
+ "requires": {
1759
+ "map-visit": "^1.0.0",
1760
+ "object-visit": "^1.0.0"
1761
+ }
1762
+ },
1763
+ "color-convert": {
1764
+ "version": "1.9.3",
1765
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1766
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1767
+ "requires": {
1768
+ "color-name": "1.1.3"
1769
+ }
1770
+ },
1771
+ "color-name": {
1772
+ "version": "1.1.3",
1773
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1774
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
1775
+ },
1776
+ "combined-stream": {
1777
+ "version": "1.0.8",
1778
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1779
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1780
+ "requires": {
1781
+ "delayed-stream": "~1.0.0"
1782
+ }
1783
+ },
1784
+ "commander": {
1785
+ "version": "2.20.0",
1786
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
1787
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
1788
+ },
1789
+ "commondir": {
1790
+ "version": "1.0.1",
1791
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1792
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
1793
+ },
1794
+ "component-emitter": {
1795
+ "version": "1.3.0",
1796
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
1797
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
1798
+ },
1799
+ "concat-map": {
1800
+ "version": "0.0.1",
1801
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1802
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
1803
+ },
1804
+ "concat-stream": {
1805
+ "version": "1.6.2",
1806
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
1807
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
1808
+ "requires": {
1809
+ "buffer-from": "^1.0.0",
1810
+ "inherits": "^2.0.3",
1811
+ "readable-stream": "^2.2.2",
1812
+ "typedarray": "^0.0.6"
1813
+ }
1814
+ },
1815
+ "configstore": {
1816
+ "version": "3.1.2",
1817
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
1818
+ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
1819
+ "requires": {
1820
+ "dot-prop": "^4.1.0",
1821
+ "graceful-fs": "^4.1.2",
1822
+ "make-dir": "^1.0.0",
1823
+ "unique-string": "^1.0.0",
1824
+ "write-file-atomic": "^2.0.0",
1825
+ "xdg-basedir": "^3.0.0"
1826
+ }
1827
+ },
1828
+ "console-browserify": {
1829
+ "version": "1.1.0",
1830
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
1831
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
1832
+ "requires": {
1833
+ "date-now": "^0.1.4"
1834
+ }
1835
+ },
1836
+ "console-control-strings": {
1837
+ "version": "1.1.0",
1838
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
1839
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
1840
+ },
1841
+ "constants-browserify": {
1842
+ "version": "1.0.0",
1843
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
1844
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
1845
+ },
1846
+ "convert-source-map": {
1847
+ "version": "1.6.0",
1848
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
1849
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
1850
+ "requires": {
1851
+ "safe-buffer": "~5.1.1"
1852
+ }
1853
+ },
1854
+ "copy-descriptor": {
1855
+ "version": "0.1.1",
1856
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
1857
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
1858
+ },
1859
+ "core-js": {
1860
+ "version": "2.6.9",
1861
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
1862
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
1863
+ },
1864
+ "core-util-is": {
1865
+ "version": "1.0.2",
1866
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1867
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
1868
+ },
1869
+ "cosmiconfig": {
1870
+ "version": "5.2.1",
1871
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
1872
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
1873
+ "requires": {
1874
+ "import-fresh": "^2.0.0",
1875
+ "is-directory": "^0.3.1",
1876
+ "js-yaml": "^3.13.1",
1877
+ "parse-json": "^4.0.0"
1878
+ },
1879
+ "dependencies": {
1880
+ "parse-json": {
1881
+ "version": "4.0.0",
1882
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1883
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1884
+ "requires": {
1885
+ "error-ex": "^1.3.1",
1886
+ "json-parse-better-errors": "^1.0.1"
1887
+ }
1888
+ }
1889
+ }
1890
+ },
1891
+ "create-ecdh": {
1892
+ "version": "4.0.3",
1893
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
1894
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
1895
+ "requires": {
1896
+ "bn.js": "^4.1.0",
1897
+ "elliptic": "^6.0.0"
1898
+ }
1899
+ },
1900
+ "create-error-class": {
1901
+ "version": "3.0.2",
1902
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
1903
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
1904
+ "requires": {
1905
+ "capture-stack-trace": "^1.0.0"
1906
+ }
1907
+ },
1908
+ "create-hash": {
1909
+ "version": "1.2.0",
1910
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
1911
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
1912
+ "requires": {
1913
+ "cipher-base": "^1.0.1",
1914
+ "inherits": "^2.0.1",
1915
+ "md5.js": "^1.3.4",
1916
+ "ripemd160": "^2.0.1",
1917
+ "sha.js": "^2.4.0"
1918
+ }
1919
+ },
1920
+ "create-hmac": {
1921
+ "version": "1.1.7",
1922
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
1923
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
1924
+ "requires": {
1925
+ "cipher-base": "^1.0.3",
1926
+ "create-hash": "^1.1.0",
1927
+ "inherits": "^2.0.1",
1928
+ "ripemd160": "^2.0.0",
1929
+ "safe-buffer": "^5.0.1",
1930
+ "sha.js": "^2.4.8"
1931
+ }
1932
+ },
1933
+ "cross-env": {
1934
+ "version": "5.2.0",
1935
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
1936
+ "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
1937
+ "requires": {
1938
+ "cross-spawn": "^6.0.5",
1939
+ "is-windows": "^1.0.0"
1940
+ },
1941
+ "dependencies": {
1942
+ "cross-spawn": {
1943
+ "version": "6.0.5",
1944
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1945
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1946
+ "requires": {
1947
+ "nice-try": "^1.0.4",
1948
+ "path-key": "^2.0.1",
1949
+ "semver": "^5.5.0",
1950
+ "shebang-command": "^1.2.0",
1951
+ "which": "^1.2.9"
1952
+ }
1953
+ }
1954
+ }
1955
+ },
1956
+ "cross-spawn": {
1957
+ "version": "5.1.0",
1958
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
1959
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
1960
+ "requires": {
1961
+ "lru-cache": "^4.0.1",
1962
+ "shebang-command": "^1.2.0",
1963
+ "which": "^1.2.9"
1964
+ }
1965
+ },
1966
+ "crypto-browserify": {
1967
+ "version": "3.12.0",
1968
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
1969
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
1970
+ "requires": {
1971
+ "browserify-cipher": "^1.0.0",
1972
+ "browserify-sign": "^4.0.0",
1973
+ "create-ecdh": "^4.0.0",
1974
+ "create-hash": "^1.1.0",
1975
+ "create-hmac": "^1.1.0",
1976
+ "diffie-hellman": "^5.0.0",
1977
+ "inherits": "^2.0.1",
1978
+ "pbkdf2": "^3.0.3",
1979
+ "public-encrypt": "^4.0.0",
1980
+ "randombytes": "^2.0.0",
1981
+ "randomfill": "^1.0.3"
1982
+ }
1983
+ },
1984
+ "crypto-random-string": {
1985
+ "version": "1.0.0",
1986
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
1987
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
1988
+ },
1989
+ "currently-unhandled": {
1990
+ "version": "0.4.1",
1991
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
1992
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
1993
+ "requires": {
1994
+ "array-find-index": "^1.0.1"
1995
+ }
1996
+ },
1997
+ "d": {
1998
+ "version": "1.0.1",
1999
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
2000
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
2001
+ "requires": {
2002
+ "es5-ext": "^0.10.50",
2003
+ "type": "^1.0.1"
2004
+ }
2005
+ },
2006
+ "damerau-levenshtein": {
2007
+ "version": "1.0.5",
2008
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz",
2009
+ "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA=="
2010
+ },
2011
+ "dashdash": {
2012
+ "version": "1.14.1",
2013
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
2014
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
2015
+ "requires": {
2016
+ "assert-plus": "^1.0.0"
2017
+ }
2018
+ },
2019
+ "date-now": {
2020
+ "version": "0.1.4",
2021
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
2022
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
2023
+ },
2024
+ "debug": {
2025
+ "version": "2.6.9",
2026
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2027
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2028
+ "requires": {
2029
+ "ms": "2.0.0"
2030
+ }
2031
+ },
2032
+ "decamelize": {
2033
+ "version": "1.2.0",
2034
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
2035
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
2036
+ },
2037
+ "decode-uri-component": {
2038
+ "version": "0.2.0",
2039
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
2040
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
2041
+ },
2042
+ "deep-extend": {
2043
+ "version": "0.6.0",
2044
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
2045
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
2046
+ },
2047
+ "deep-is": {
2048
+ "version": "0.1.3",
2049
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
2050
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
2051
+ },
2052
+ "define-properties": {
2053
+ "version": "1.1.3",
2054
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
2055
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
2056
+ "requires": {
2057
+ "object-keys": "^1.0.12"
2058
+ }
2059
+ },
2060
+ "define-property": {
2061
+ "version": "2.0.2",
2062
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
2063
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
2064
+ "requires": {
2065
+ "is-descriptor": "^1.0.2",
2066
+ "isobject": "^3.0.1"
2067
+ },
2068
+ "dependencies": {
2069
+ "is-accessor-descriptor": {
2070
+ "version": "1.0.0",
2071
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2072
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2073
+ "requires": {
2074
+ "kind-of": "^6.0.0"
2075
+ }
2076
+ },
2077
+ "is-data-descriptor": {
2078
+ "version": "1.0.0",
2079
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2080
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2081
+ "requires": {
2082
+ "kind-of": "^6.0.0"
2083
+ }
2084
+ },
2085
+ "is-descriptor": {
2086
+ "version": "1.0.2",
2087
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2088
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2089
+ "requires": {
2090
+ "is-accessor-descriptor": "^1.0.0",
2091
+ "is-data-descriptor": "^1.0.0",
2092
+ "kind-of": "^6.0.2"
2093
+ }
2094
+ }
2095
+ }
2096
+ },
2097
+ "delayed-stream": {
2098
+ "version": "1.0.0",
2099
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2100
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
2101
+ },
2102
+ "delegates": {
2103
+ "version": "1.0.0",
2104
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
2105
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
2106
+ },
2107
+ "des.js": {
2108
+ "version": "1.0.0",
2109
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
2110
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
2111
+ "requires": {
2112
+ "inherits": "^2.0.1",
2113
+ "minimalistic-assert": "^1.0.0"
2114
+ }
2115
+ },
2116
+ "detect-indent": {
2117
+ "version": "4.0.0",
2118
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
2119
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
2120
+ "requires": {
2121
+ "repeating": "^2.0.0"
2122
+ }
2123
+ },
2124
+ "diffie-hellman": {
2125
+ "version": "5.0.3",
2126
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
2127
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
2128
+ "requires": {
2129
+ "bn.js": "^4.1.0",
2130
+ "miller-rabin": "^4.0.0",
2131
+ "randombytes": "^2.0.0"
2132
+ }
2133
+ },
2134
+ "doctrine": {
2135
+ "version": "2.1.0",
2136
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
2137
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
2138
+ "requires": {
2139
+ "esutils": "^2.0.2"
2140
+ }
2141
+ },
2142
+ "domain-browser": {
2143
+ "version": "1.2.0",
2144
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
2145
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
2146
+ },
2147
+ "dot-prop": {
2148
+ "version": "4.2.0",
2149
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
2150
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
2151
+ "requires": {
2152
+ "is-obj": "^1.0.0"
2153
+ }
2154
+ },
2155
+ "duplexer": {
2156
+ "version": "0.1.1",
2157
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
2158
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
2159
+ },
2160
+ "duplexer3": {
2161
+ "version": "0.1.4",
2162
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
2163
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
2164
+ },
2165
+ "ecc-jsbn": {
2166
+ "version": "0.1.2",
2167
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
2168
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
2169
+ "requires": {
2170
+ "jsbn": "~0.1.0",
2171
+ "safer-buffer": "^2.1.0"
2172
+ }
2173
+ },
2174
+ "electron-to-chromium": {
2175
+ "version": "1.3.200",
2176
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.200.tgz",
2177
+ "integrity": "sha512-PUurrpyDA74MuAjJRD+79ss5BqJlU3mdArRbuu4wO/dt6jc3Ic/6BDmFJxkdwbfq39cHf/XKm2vW98XSvut9Dg=="
2178
+ },
2179
+ "elliptic": {
2180
+ "version": "6.5.0",
2181
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
2182
+ "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
2183
+ "requires": {
2184
+ "bn.js": "^4.4.0",
2185
+ "brorand": "^1.0.1",
2186
+ "hash.js": "^1.0.0",
2187
+ "hmac-drbg": "^1.0.0",
2188
+ "inherits": "^2.0.1",
2189
+ "minimalistic-assert": "^1.0.0",
2190
+ "minimalistic-crypto-utils": "^1.0.0"
2191
+ }
2192
+ },
2193
+ "emoji-regex": {
2194
+ "version": "7.0.3",
2195
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
2196
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
2197
+ },
2198
+ "emojis-list": {
2199
+ "version": "2.1.0",
2200
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
2201
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
2202
+ },
2203
+ "enhanced-resolve": {
2204
+ "version": "3.4.1",
2205
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
2206
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
2207
+ "requires": {
2208
+ "graceful-fs": "^4.1.2",
2209
+ "memory-fs": "^0.4.0",
2210
+ "object-assign": "^4.0.1",
2211
+ "tapable": "^0.2.7"
2212
+ }
2213
+ },
2214
+ "errno": {
2215
+ "version": "0.1.7",
2216
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
2217
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
2218
+ "requires": {
2219
+ "prr": "~1.0.1"
2220
+ }
2221
+ },
2222
+ "error-ex": {
2223
+ "version": "1.3.2",
2224
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
2225
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
2226
+ "requires": {
2227
+ "is-arrayish": "^0.2.1"
2228
+ }
2229
+ },
2230
+ "es-abstract": {
2231
+ "version": "1.13.0",
2232
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
2233
+ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
2234
+ "requires": {
2235
+ "es-to-primitive": "^1.2.0",
2236
+ "function-bind": "^1.1.1",
2237
+ "has": "^1.0.3",
2238
+ "is-callable": "^1.1.4",
2239
+ "is-regex": "^1.0.4",
2240
+ "object-keys": "^1.0.12"
2241
+ }
2242
+ },
2243
+ "es-to-primitive": {
2244
+ "version": "1.2.0",
2245
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
2246
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
2247
+ "requires": {
2248
+ "is-callable": "^1.1.4",
2249
+ "is-date-object": "^1.0.1",
2250
+ "is-symbol": "^1.0.2"
2251
+ }
2252
+ },
2253
+ "es5-ext": {
2254
+ "version": "0.10.50",
2255
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
2256
+ "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
2257
+ "requires": {
2258
+ "es6-iterator": "~2.0.3",
2259
+ "es6-symbol": "~3.1.1",
2260
+ "next-tick": "^1.0.0"
2261
+ }
2262
+ },
2263
+ "es6-iterator": {
2264
+ "version": "2.0.3",
2265
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
2266
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
2267
+ "requires": {
2268
+ "d": "1",
2269
+ "es5-ext": "^0.10.35",
2270
+ "es6-symbol": "^3.1.1"
2271
+ }
2272
+ },
2273
+ "es6-map": {
2274
+ "version": "0.1.5",
2275
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
2276
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
2277
+ "requires": {
2278
+ "d": "1",
2279
+ "es5-ext": "~0.10.14",
2280
+ "es6-iterator": "~2.0.1",
2281
+ "es6-set": "~0.1.5",
2282
+ "es6-symbol": "~3.1.1",
2283
+ "event-emitter": "~0.3.5"
2284
+ }
2285
+ },
2286
+ "es6-set": {
2287
+ "version": "0.1.5",
2288
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
2289
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
2290
+ "requires": {
2291
+ "d": "1",
2292
+ "es5-ext": "~0.10.14",
2293
+ "es6-iterator": "~2.0.1",
2294
+ "es6-symbol": "3.1.1",
2295
+ "event-emitter": "~0.3.5"
2296
+ }
2297
+ },
2298
+ "es6-symbol": {
2299
+ "version": "3.1.1",
2300
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
2301
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
2302
+ "requires": {
2303
+ "d": "1",
2304
+ "es5-ext": "~0.10.14"
2305
+ }
2306
+ },
2307
+ "es6-weak-map": {
2308
+ "version": "2.0.3",
2309
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
2310
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
2311
+ "requires": {
2312
+ "d": "1",
2313
+ "es5-ext": "^0.10.46",
2314
+ "es6-iterator": "^2.0.3",
2315
+ "es6-symbol": "^3.1.1"
2316
+ }
2317
+ },
2318
+ "escape-string-regexp": {
2319
+ "version": "1.0.5",
2320
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2321
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
2322
+ },
2323
+ "escope": {
2324
+ "version": "3.6.0",
2325
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
2326
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
2327
+ "requires": {
2328
+ "es6-map": "^0.1.3",
2329
+ "es6-weak-map": "^2.0.1",
2330
+ "esrecurse": "^4.1.0",
2331
+ "estraverse": "^4.1.1"
2332
+ }
2333
+ },
2334
+ "eslint": {
2335
+ "version": "4.19.1",
2336
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
2337
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
2338
+ "requires": {
2339
+ "ajv": "^5.3.0",
2340
+ "babel-code-frame": "^6.22.0",
2341
+ "chalk": "^2.1.0",
2342
+ "concat-stream": "^1.6.0",
2343
+ "cross-spawn": "^5.1.0",
2344
+ "debug": "^3.1.0",
2345
+ "doctrine": "^2.1.0",
2346
+ "eslint-scope": "^3.7.1",
2347
+ "eslint-visitor-keys": "^1.0.0",
2348
+ "espree": "^3.5.4",
2349
+ "esquery": "^1.0.0",
2350
+ "esutils": "^2.0.2",
2351
+ "file-entry-cache": "^2.0.0",
2352
+ "functional-red-black-tree": "^1.0.1",
2353
+ "glob": "^7.1.2",
2354
+ "globals": "^11.0.1",
2355
+ "ignore": "^3.3.3",
2356
+ "imurmurhash": "^0.1.4",
2357
+ "inquirer": "^3.0.6",
2358
+ "is-resolvable": "^1.0.0",
2359
+ "js-yaml": "^3.9.1",
2360
+ "json-stable-stringify-without-jsonify": "^1.0.1",
2361
+ "levn": "^0.3.0",
2362
+ "lodash": "^4.17.4",
2363
+ "minimatch": "^3.0.2",
2364
+ "mkdirp": "^0.5.1",
2365
+ "natural-compare": "^1.4.0",
2366
+ "optionator": "^0.8.2",
2367
+ "path-is-inside": "^1.0.2",
2368
+ "pluralize": "^7.0.0",
2369
+ "progress": "^2.0.0",
2370
+ "regexpp": "^1.0.1",
2371
+ "require-uncached": "^1.0.3",
2372
+ "semver": "^5.3.0",
2373
+ "strip-ansi": "^4.0.0",
2374
+ "strip-json-comments": "~2.0.1",
2375
+ "table": "4.0.2",
2376
+ "text-table": "~0.2.0"
2377
+ },
2378
+ "dependencies": {
2379
+ "ansi-regex": {
2380
+ "version": "3.0.0",
2381
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2382
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
2383
+ },
2384
+ "debug": {
2385
+ "version": "3.2.6",
2386
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
2387
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
2388
+ "requires": {
2389
+ "ms": "^2.1.1"
2390
+ }
2391
+ },
2392
+ "globals": {
2393
+ "version": "11.12.0",
2394
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2395
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
2396
+ },
2397
+ "inquirer": {
2398
+ "version": "3.3.0",
2399
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
2400
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
2401
+ "requires": {
2402
+ "ansi-escapes": "^3.0.0",
2403
+ "chalk": "^2.0.0",
2404
+ "cli-cursor": "^2.1.0",
2405
+ "cli-width": "^2.0.0",
2406
+ "external-editor": "^2.0.4",
2407
+ "figures": "^2.0.0",
2408
+ "lodash": "^4.3.0",
2409
+ "mute-stream": "0.0.7",
2410
+ "run-async": "^2.2.0",
2411
+ "rx-lite": "^4.0.8",
2412
+ "rx-lite-aggregates": "^4.0.8",
2413
+ "string-width": "^2.1.0",
2414
+ "strip-ansi": "^4.0.0",
2415
+ "through": "^2.3.6"
2416
+ }
2417
+ },
2418
+ "ms": {
2419
+ "version": "2.1.2",
2420
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2421
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2422
+ },
2423
+ "strip-ansi": {
2424
+ "version": "4.0.0",
2425
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2426
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2427
+ "requires": {
2428
+ "ansi-regex": "^3.0.0"
2429
+ }
2430
+ }
2431
+ }
2432
+ },
2433
+ "eslint-config-wordpress": {
2434
+ "version": "2.0.0",
2435
+ "resolved": "https://registry.npmjs.org/eslint-config-wordpress/-/eslint-config-wordpress-2.0.0.tgz",
2436
+ "integrity": "sha1-UgEgbGlk1kgxUjLt9t+9LpJeTNY="
2437
+ },
2438
+ "eslint-plugin-jest": {
2439
+ "version": "21.27.2",
2440
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.27.2.tgz",
2441
+ "integrity": "sha512-0E4OIgBJVlAmf1KfYFtZ3gYxgUzC5Eb3Jzmrc9ikI1OY+/cM8Kh72Ti7KfpeHNeD3HJNf9SmEfmvQLIz44Hrhw=="
2442
+ },
2443
+ "eslint-plugin-jsx-a11y": {
2444
+ "version": "6.2.3",
2445
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
2446
+ "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
2447
+ "requires": {
2448
+ "@babel/runtime": "^7.4.5",
2449
+ "aria-query": "^3.0.0",
2450
+ "array-includes": "^3.0.3",
2451
+ "ast-types-flow": "^0.0.7",
2452
+ "axobject-query": "^2.0.2",
2453
+ "damerau-levenshtein": "^1.0.4",
2454
+ "emoji-regex": "^7.0.2",
2455
+ "has": "^1.0.3",
2456
+ "jsx-ast-utils": "^2.2.1"
2457
+ }
2458
+ },
2459
+ "eslint-plugin-react": {
2460
+ "version": "7.14.3",
2461
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
2462
+ "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
2463
+ "requires": {
2464
+ "array-includes": "^3.0.3",
2465
+ "doctrine": "^2.1.0",
2466
+ "has": "^1.0.3",
2467
+ "jsx-ast-utils": "^2.1.0",
2468
+ "object.entries": "^1.1.0",
2469
+ "object.fromentries": "^2.0.0",
2470
+ "object.values": "^1.1.0",
2471
+ "prop-types": "^15.7.2",
2472
+ "resolve": "^1.10.1"
2473
+ }
2474
+ },
2475
+ "eslint-plugin-wordpress": {
2476
+ "version": "0.1.0",
2477
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wordpress/-/eslint-plugin-wordpress-0.1.0.tgz",
2478
+ "integrity": "sha1-PmlvCTJtmRXiZogasUj+0oFhF2I=",
2479
+ "requires": {
2480
+ "requireindex": "~1.1.0"
2481
+ }
2482
+ },
2483
+ "eslint-scope": {
2484
+ "version": "3.7.1",
2485
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
2486
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
2487
+ "requires": {
2488
+ "esrecurse": "^4.1.0",
2489
+ "estraverse": "^4.1.1"
2490
+ }
2491
+ },
2492
+ "eslint-visitor-keys": {
2493
+ "version": "1.0.0",
2494
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
2495
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ=="
2496
+ },
2497
+ "espree": {
2498
+ "version": "3.5.4",
2499
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
2500
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
2501
+ "requires": {
2502
+ "acorn": "^5.5.0",
2503
+ "acorn-jsx": "^3.0.0"
2504
+ }
2505
+ },
2506
+ "esprima": {
2507
+ "version": "4.0.1",
2508
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2509
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
2510
+ },
2511
+ "esquery": {
2512
+ "version": "1.0.1",
2513
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
2514
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
2515
+ "requires": {
2516
+ "estraverse": "^4.0.0"
2517
+ }
2518
+ },
2519
+ "esrecurse": {
2520
+ "version": "4.2.1",
2521
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
2522
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
2523
+ "requires": {
2524
+ "estraverse": "^4.1.0"
2525
+ }
2526
+ },
2527
+ "estraverse": {
2528
+ "version": "4.2.0",
2529
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
2530
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
2531
+ },
2532
+ "esutils": {
2533
+ "version": "2.0.2",
2534
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
2535
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
2536
+ },
2537
+ "event-emitter": {
2538
+ "version": "0.3.5",
2539
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
2540
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
2541
+ "requires": {
2542
+ "d": "1",
2543
+ "es5-ext": "~0.10.14"
2544
+ }
2545
+ },
2546
+ "events": {
2547
+ "version": "3.0.0",
2548
+ "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
2549
+ "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="
2550
+ },
2551
+ "evp_bytestokey": {
2552
+ "version": "1.0.3",
2553
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
2554
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
2555
+ "requires": {
2556
+ "md5.js": "^1.3.4",
2557
+ "safe-buffer": "^5.1.1"
2558
+ }
2559
+ },
2560
+ "execa": {
2561
+ "version": "0.7.0",
2562
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
2563
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
2564
+ "requires": {
2565
+ "cross-spawn": "^5.0.1",
2566
+ "get-stream": "^3.0.0",
2567
+ "is-stream": "^1.1.0",
2568
+ "npm-run-path": "^2.0.0",
2569
+ "p-finally": "^1.0.0",
2570
+ "signal-exit": "^3.0.0",
2571
+ "strip-eof": "^1.0.0"
2572
+ }
2573
+ },
2574
+ "expand-brackets": {
2575
+ "version": "2.1.4",
2576
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
2577
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
2578
+ "requires": {
2579
+ "debug": "^2.3.3",
2580
+ "define-property": "^0.2.5",
2581
+ "extend-shallow": "^2.0.1",
2582
+ "posix-character-classes": "^0.1.0",
2583
+ "regex-not": "^1.0.0",
2584
+ "snapdragon": "^0.8.1",
2585
+ "to-regex": "^3.0.1"
2586
+ },
2587
+ "dependencies": {
2588
+ "define-property": {
2589
+ "version": "0.2.5",
2590
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2591
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2592
+ "requires": {
2593
+ "is-descriptor": "^0.1.0"
2594
+ }
2595
+ },
2596
+ "extend-shallow": {
2597
+ "version": "2.0.1",
2598
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2599
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2600
+ "requires": {
2601
+ "is-extendable": "^0.1.0"
2602
+ }
2603
+ }
2604
+ }
2605
+ },
2606
+ "extend": {
2607
+ "version": "3.0.2",
2608
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
2609
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
2610
+ },
2611
+ "extend-shallow": {
2612
+ "version": "3.0.2",
2613
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
2614
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
2615
+ "requires": {
2616
+ "assign-symbols": "^1.0.0",
2617
+ "is-extendable": "^1.0.1"
2618
+ },
2619
+ "dependencies": {
2620
+ "is-extendable": {
2621
+ "version": "1.0.1",
2622
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2623
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2624
+ "requires": {
2625
+ "is-plain-object": "^2.0.4"
2626
+ }
2627
+ }
2628
+ }
2629
+ },
2630
+ "external-editor": {
2631
+ "version": "2.2.0",
2632
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
2633
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
2634
+ "requires": {
2635
+ "chardet": "^0.4.0",
2636
+ "iconv-lite": "^0.4.17",
2637
+ "tmp": "^0.0.33"
2638
+ }
2639
+ },
2640
+ "extglob": {
2641
+ "version": "2.0.4",
2642
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
2643
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
2644
+ "requires": {
2645
+ "array-unique": "^0.3.2",
2646
+ "define-property": "^1.0.0",
2647
+ "expand-brackets": "^2.1.4",
2648
+ "extend-shallow": "^2.0.1",
2649
+ "fragment-cache": "^0.2.1",
2650
+ "regex-not": "^1.0.0",
2651
+ "snapdragon": "^0.8.1",
2652
+ "to-regex": "^3.0.1"
2653
+ },
2654
+ "dependencies": {
2655
+ "define-property": {
2656
+ "version": "1.0.0",
2657
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
2658
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
2659
+ "requires": {
2660
+ "is-descriptor": "^1.0.0"
2661
+ }
2662
+ },
2663
+ "extend-shallow": {
2664
+ "version": "2.0.1",
2665
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2666
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2667
+ "requires": {
2668
+ "is-extendable": "^0.1.0"
2669
+ }
2670
+ },
2671
+ "is-accessor-descriptor": {
2672
+ "version": "1.0.0",
2673
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2674
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2675
+ "requires": {
2676
+ "kind-of": "^6.0.0"
2677
+ }
2678
+ },
2679
+ "is-data-descriptor": {
2680
+ "version": "1.0.0",
2681
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2682
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2683
+ "requires": {
2684
+ "kind-of": "^6.0.0"
2685
+ }
2686
+ },
2687
+ "is-descriptor": {
2688
+ "version": "1.0.2",
2689
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2690
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2691
+ "requires": {
2692
+ "is-accessor-descriptor": "^1.0.0",
2693
+ "is-data-descriptor": "^1.0.0",
2694
+ "kind-of": "^6.0.2"
2695
+ }
2696
+ }
2697
+ }
2698
+ },
2699
+ "extract-text-webpack-plugin": {
2700
+ "version": "3.0.2",
2701
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
2702
+ "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
2703
+ "requires": {
2704
+ "async": "^2.4.1",
2705
+ "loader-utils": "^1.1.0",
2706
+ "schema-utils": "^0.3.0",
2707
+ "webpack-sources": "^1.0.1"
2708
+ }
2709
+ },
2710
+ "extsprintf": {
2711
+ "version": "1.3.0",
2712
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
2713
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
2714
+ },
2715
+ "fast-deep-equal": {
2716
+ "version": "1.1.0",
2717
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
2718
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
2719
+ },
2720
+ "fast-json-stable-stringify": {
2721
+ "version": "2.0.0",
2722
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
2723
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
2724
+ },
2725
+ "fast-levenshtein": {
2726
+ "version": "2.0.6",
2727
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2728
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
2729
+ },
2730
+ "figures": {
2731
+ "version": "2.0.0",
2732
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
2733
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
2734
+ "requires": {
2735
+ "escape-string-regexp": "^1.0.5"
2736
+ }
2737
+ },
2738
+ "file-entry-cache": {
2739
+ "version": "2.0.0",
2740
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
2741
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
2742
+ "requires": {
2743
+ "flat-cache": "^1.2.1",
2744
+ "object-assign": "^4.0.1"
2745
+ }
2746
+ },
2747
+ "filesize": {
2748
+ "version": "3.6.1",
2749
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
2750
+ "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg=="
2751
+ },
2752
+ "fill-range": {
2753
+ "version": "4.0.0",
2754
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
2755
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
2756
+ "requires": {
2757
+ "extend-shallow": "^2.0.1",
2758
+ "is-number": "^3.0.0",
2759
+ "repeat-string": "^1.6.1",
2760
+ "to-regex-range": "^2.1.0"
2761
+ },
2762
+ "dependencies": {
2763
+ "extend-shallow": {
2764
+ "version": "2.0.1",
2765
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2766
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2767
+ "requires": {
2768
+ "is-extendable": "^0.1.0"
2769
+ }
2770
+ }
2771
+ }
2772
+ },
2773
+ "find-cache-dir": {
2774
+ "version": "1.0.0",
2775
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
2776
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
2777
+ "requires": {
2778
+ "commondir": "^1.0.1",
2779
+ "make-dir": "^1.0.0",
2780
+ "pkg-dir": "^2.0.0"
2781
+ }
2782
+ },
2783
+ "find-up": {
2784
+ "version": "2.1.0",
2785
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2786
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2787
+ "requires": {
2788
+ "locate-path": "^2.0.0"
2789
+ }
2790
+ },
2791
+ "flat-cache": {
2792
+ "version": "1.3.4",
2793
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
2794
+ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
2795
+ "requires": {
2796
+ "circular-json": "^0.3.1",
2797
+ "graceful-fs": "^4.1.2",
2798
+ "rimraf": "~2.6.2",
2799
+ "write": "^0.2.1"
2800
+ }
2801
+ },
2802
+ "for-in": {
2803
+ "version": "1.0.2",
2804
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
2805
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
2806
+ },
2807
+ "for-own": {
2808
+ "version": "1.0.0",
2809
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
2810
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
2811
+ "requires": {
2812
+ "for-in": "^1.0.1"
2813
+ }
2814
+ },
2815
+ "forever-agent": {
2816
+ "version": "0.6.1",
2817
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
2818
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
2819
+ },
2820
+ "form-data": {
2821
+ "version": "2.3.3",
2822
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
2823
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
2824
+ "requires": {
2825
+ "asynckit": "^0.4.0",
2826
+ "combined-stream": "^1.0.6",
2827
+ "mime-types": "^2.1.12"
2828
+ }
2829
+ },
2830
+ "fragment-cache": {
2831
+ "version": "0.2.1",
2832
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
2833
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
2834
+ "requires": {
2835
+ "map-cache": "^0.2.2"
2836
+ }
2837
+ },
2838
+ "fs-extra": {
2839
+ "version": "5.0.0",
2840
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
2841
+ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
2842
+ "requires": {
2843
+ "graceful-fs": "^4.1.2",
2844
+ "jsonfile": "^4.0.0",
2845
+ "universalify": "^0.1.0"
2846
+ }
2847
+ },
2848
+ "fs.realpath": {
2849
+ "version": "1.0.0",
2850
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2851
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
2852
+ },
2853
+ "fsevents": {
2854
+ "version": "1.2.9",
2855
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
2856
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
2857
+ "optional": true,
2858
+ "requires": {
2859
+ "nan": "^2.12.1",
2860
+ "node-pre-gyp": "^0.12.0"
2861
+ },
2862
+ "dependencies": {
2863
+ "abbrev": {
2864
+ "version": "1.1.1",
2865
+ "bundled": true,
2866
+ "optional": true
2867
+ },
2868
+ "ansi-regex": {
2869
+ "version": "2.1.1",
2870
+ "bundled": true,
2871
+ "optional": true
2872
+ },
2873
+ "aproba": {
2874
+ "version": "1.2.0",
2875
+ "bundled": true,
2876
+ "optional": true
2877
+ },
2878
+ "are-we-there-yet": {
2879
+ "version": "1.1.5",
2880
+ "bundled": true,
2881
+ "optional": true,
2882
+ "requires": {
2883
+ "delegates": "^1.0.0",
2884
+ "readable-stream": "^2.0.6"
2885
+ }
2886
+ },
2887
+ "balanced-match": {
2888
+ "version": "1.0.0",
2889
+ "bundled": true,
2890
+ "optional": true
2891
+ },
2892
+ "brace-expansion": {
2893
+ "version": "1.1.11",
2894
+ "bundled": true,
2895
+ "optional": true,
2896
+ "requires": {
2897
+ "balanced-match": "^1.0.0",
2898
+ "concat-map": "0.0.1"
2899
+ }
2900
+ },
2901
+ "chownr": {
2902
+ "version": "1.1.1",
2903
+ "bundled": true,
2904
+ "optional": true
2905
+ },
2906
+ "code-point-at": {
2907
+ "version": "1.1.0",
2908
+ "bundled": true,
2909
+ "optional": true
2910
+ },
2911
+ "concat-map": {
2912
+ "version": "0.0.1",
2913
+ "bundled": true,
2914
+ "optional": true
2915
+ },
2916
+ "console-control-strings": {
2917
+ "version": "1.1.0",
2918
+ "bundled": true,
2919
+ "optional": true
2920
+ },
2921
+ "core-util-is": {
2922
+ "version": "1.0.2",
2923
+ "bundled": true,
2924
+ "optional": true
2925
+ },
2926
+ "debug": {
2927
+ "version": "4.1.1",
2928
+ "bundled": true,
2929
+ "optional": true,
2930
+ "requires": {
2931
+ "ms": "^2.1.1"
2932
+ }
2933
+ },
2934
+ "deep-extend": {
2935
+ "version": "0.6.0",
2936
+ "bundled": true,
2937
+ "optional": true
2938
+ },
2939
+ "delegates": {
2940
+ "version": "1.0.0",
2941
+ "bundled": true,
2942
+ "optional": true
2943
+ },
2944
+ "detect-libc": {
2945
+ "version": "1.0.3",
2946
+ "bundled": true,
2947
+ "optional": true
2948
+ },
2949
+ "fs-minipass": {
2950
+ "version": "1.2.5",
2951
+ "bundled": true,
2952
+ "optional": true,
2953
+ "requires": {
2954
+ "minipass": "^2.2.1"
2955
+ }
2956
+ },
2957
+ "fs.realpath": {
2958
+ "version": "1.0.0",
2959
+ "bundled": true,
2960
+ "optional": true
2961
+ },
2962
+ "gauge": {
2963
+ "version": "2.7.4",
2964
+ "bundled": true,
2965
+ "optional": true,
2966
+ "requires": {
2967
+ "aproba": "^1.0.3",
2968
+ "console-control-strings": "^1.0.0",
2969
+ "has-unicode": "^2.0.0",
2970
+ "object-assign": "^4.1.0",
2971
+ "signal-exit": "^3.0.0",
2972
+ "string-width": "^1.0.1",
2973
+ "strip-ansi": "^3.0.1",
2974
+ "wide-align": "^1.1.0"
2975
+ }
2976
+ },
2977
+ "glob": {
2978
+ "version": "7.1.3",
2979
+ "bundled": true,
2980
+ "optional": true,
2981
+ "requires": {
2982
+ "fs.realpath": "^1.0.0",
2983
+ "inflight": "^1.0.4",
2984
+ "inherits": "2",
2985
+ "minimatch": "^3.0.4",
2986
+ "once": "^1.3.0",
2987
+ "path-is-absolute": "^1.0.0"
2988
+ }
2989
+ },
2990
+ "has-unicode": {
2991
+ "version": "2.0.1",
2992
+ "bundled": true,
2993
+ "optional": true
2994
+ },
2995
+ "iconv-lite": {
2996
+ "version": "0.4.24",
2997
+ "bundled": true,
2998
+ "optional": true,
2999
+ "requires": {
3000
+ "safer-buffer": ">= 2.1.2 < 3"
3001
+ }
3002
+ },
3003
+ "ignore-walk": {
3004
+ "version": "3.0.1",
3005
+ "bundled": true,
3006
+ "optional": true,
3007
+ "requires": {
3008
+ "minimatch": "^3.0.4"
3009
+ }
3010
+ },
3011
+ "inflight": {
3012
+ "version": "1.0.6",
3013
+ "bundled": true,
3014
+ "optional": true,
3015
+ "requires": {
3016
+ "once": "^1.3.0",
3017
+ "wrappy": "1"
3018
+ }
3019
+ },
3020
+ "inherits": {
3021
+ "version": "2.0.3",
3022
+ "bundled": true,
3023
+ "optional": true
3024
+ },
3025
+ "ini": {
3026
+ "version": "1.3.5",
3027
+ "bundled": true,
3028
+ "optional": true
3029
+ },
3030
+ "is-fullwidth-code-point": {
3031
+ "version": "1.0.0",
3032
+ "bundled": true,
3033
+ "optional": true,
3034
+ "requires": {
3035
+ "number-is-nan": "^1.0.0"
3036
+ }
3037
+ },
3038
+ "isarray": {
3039
+ "version": "1.0.0",
3040
+ "bundled": true,
3041
+ "optional": true
3042
+ },
3043
+ "minimatch": {
3044
+ "version": "3.0.4",
3045
+ "bundled": true,
3046
+ "optional": true,
3047
+ "requires": {
3048
+ "brace-expansion": "^1.1.7"
3049
+ }
3050
+ },
3051
+ "minimist": {
3052
+ "version": "0.0.8",
3053
+ "bundled": true,
3054
+ "optional": true
3055
+ },
3056
+ "minipass": {
3057
+ "version": "2.3.5",
3058
+ "bundled": true,
3059
+ "optional": true,
3060
+ "requires": {
3061
+ "safe-buffer": "^5.1.2",
3062
+ "yallist": "^3.0.0"
3063
+ }
3064
+ },
3065
+ "minizlib": {
3066
+ "version": "1.2.1",
3067
+ "bundled": true,
3068
+ "optional": true,
3069
+ "requires": {
3070
+ "minipass": "^2.2.1"
3071
+ }
3072
+ },
3073
+ "mkdirp": {
3074
+ "version": "0.5.1",
3075
+ "bundled": true,
3076
+ "optional": true,
3077
+ "requires": {
3078
+ "minimist": "0.0.8"
3079
+ }
3080
+ },
3081
+ "ms": {
3082
+ "version": "2.1.1",
3083
+ "bundled": true,
3084
+ "optional": true
3085
+ },
3086
+ "needle": {
3087
+ "version": "2.3.0",
3088
+ "bundled": true,
3089
+ "optional": true,
3090
+ "requires": {
3091
+ "debug": "^4.1.0",
3092
+ "iconv-lite": "^0.4.4",
3093
+ "sax": "^1.2.4"
3094
+ }
3095
+ },
3096
+ "node-pre-gyp": {
3097
+ "version": "0.12.0",
3098
+ "bundled": true,
3099
+ "optional": true,
3100
+ "requires": {
3101
+ "detect-libc": "^1.0.2",
3102
+ "mkdirp": "^0.5.1",
3103
+ "needle": "^2.2.1",
3104
+ "nopt": "^4.0.1",
3105
+ "npm-packlist": "^1.1.6",
3106
+ "npmlog": "^4.0.2",
3107
+ "rc": "^1.2.7",
3108
+ "rimraf": "^2.6.1",
3109
+ "semver": "^5.3.0",
3110
+ "tar": "^4"
3111
+ }
3112
+ },
3113
+ "nopt": {
3114
+ "version": "4.0.1",
3115
+ "bundled": true,
3116
+ "optional": true,
3117
+ "requires": {
3118
+ "abbrev": "1",
3119
+ "osenv": "^0.1.4"
3120
+ }
3121
+ },
3122
+ "npm-bundled": {
3123
+ "version": "1.0.6",
3124
+ "bundled": true,
3125
+ "optional": true
3126
+ },
3127
+ "npm-packlist": {
3128
+ "version": "1.4.1",
3129
+ "bundled": true,
3130
+ "optional": true,
3131
+ "requires": {
3132
+ "ignore-walk": "^3.0.1",
3133
+ "npm-bundled": "^1.0.1"
3134
+ }
3135
+ },
3136
+ "npmlog": {
3137
+ "version": "4.1.2",
3138
+ "bundled": true,
3139
+ "optional": true,
3140
+ "requires": {
3141
+ "are-we-there-yet": "~1.1.2",
3142
+ "console-control-strings": "~1.1.0",
3143
+ "gauge": "~2.7.3",
3144
+ "set-blocking": "~2.0.0"
3145
+ }
3146
+ },
3147
+ "number-is-nan": {
3148
+ "version": "1.0.1",
3149
+ "bundled": true,
3150
+ "optional": true
3151
+ },
3152
+ "object-assign": {
3153
+ "version": "4.1.1",
3154
+ "bundled": true,
3155
+ "optional": true
3156
+ },
3157
+ "once": {
3158
+ "version": "1.4.0",
3159
+ "bundled": true,
3160
+ "optional": true,
3161
+ "requires": {
3162
+ "wrappy": "1"
3163
+ }
3164
+ },
3165
+ "os-homedir": {
3166
+ "version": "1.0.2",
3167
+ "bundled": true,
3168
+ "optional": true
3169
+ },
3170
+ "os-tmpdir": {
3171
+ "version": "1.0.2",
3172
+ "bundled": true,
3173
+ "optional": true
3174
+ },
3175
+ "osenv": {
3176
+ "version": "0.1.5",
3177
+ "bundled": true,
3178
+ "optional": true,
3179
+ "requires": {
3180
+ "os-homedir": "^1.0.0",
3181
+ "os-tmpdir": "^1.0.0"
3182
+ }
3183
+ },
3184
+ "path-is-absolute": {
3185
+ "version": "1.0.1",
3186
+ "bundled": true,
3187
+ "optional": true
3188
+ },
3189
+ "process-nextick-args": {
3190
+ "version": "2.0.0",
3191
+ "bundled": true,
3192
+ "optional": true
3193
+ },
3194
+ "rc": {
3195
+ "version": "1.2.8",
3196
+ "bundled": true,
3197
+ "optional": true,
3198
+ "requires": {
3199
+ "deep-extend": "^0.6.0",
3200
+ "ini": "~1.3.0",
3201
+ "minimist": "^1.2.0",
3202
+ "strip-json-comments": "~2.0.1"
3203
+ },
3204
+ "dependencies": {
3205
+ "minimist": {
3206
+ "version": "1.2.0",
3207
+ "bundled": true,
3208
+ "optional": true
3209
+ }
3210
+ }
3211
+ },
3212
+ "readable-stream": {
3213
+ "version": "2.3.6",
3214
+ "bundled": true,
3215
+ "optional": true,
3216
+ "requires": {
3217
+ "core-util-is": "~1.0.0",
3218
+ "inherits": "~2.0.3",
3219
+ "isarray": "~1.0.0",
3220
+ "process-nextick-args": "~2.0.0",
3221
+ "safe-buffer": "~5.1.1",
3222
+ "string_decoder": "~1.1.1",
3223
+ "util-deprecate": "~1.0.1"
3224
+ }
3225
+ },
3226
+ "rimraf": {
3227
+ "version": "2.6.3",
3228
+ "bundled": true,
3229
+ "optional": true,
3230
+ "requires": {
3231
+ "glob": "^7.1.3"
3232
+ }
3233
+ },
3234
+ "safe-buffer": {
3235
+ "version": "5.1.2",
3236
+ "bundled": true,
3237
+ "optional": true
3238
+ },
3239
+ "safer-buffer": {
3240
+ "version": "2.1.2",
3241
+ "bundled": true,
3242
+ "optional": true
3243
+ },
3244
+ "sax": {
3245
+ "version": "1.2.4",
3246
+ "bundled": true,
3247
+ "optional": true
3248
+ },
3249
+ "semver": {
3250
+ "version": "5.7.0",
3251
+ "bundled": true,
3252
+ "optional": true
3253
+ },
3254
+ "set-blocking": {
3255
+ "version": "2.0.0",
3256
+ "bundled": true,
3257
+ "optional": true
3258
+ },
3259
+ "signal-exit": {
3260
+ "version": "3.0.2",
3261
+ "bundled": true,
3262
+ "optional": true
3263
+ },
3264
+ "string-width": {
3265
+ "version": "1.0.2",
3266
+ "bundled": true,
3267
+ "optional": true,
3268
+ "requires": {
3269
+ "code-point-at": "^1.0.0",
3270
+ "is-fullwidth-code-point": "^1.0.0",
3271
+ "strip-ansi": "^3.0.0"
3272
+ }
3273
+ },
3274
+ "string_decoder": {
3275
+ "version": "1.1.1",
3276
+ "bundled": true,
3277
+ "optional": true,
3278
+ "requires": {
3279
+ "safe-buffer": "~5.1.0"
3280
+ }
3281
+ },
3282
+ "strip-ansi": {
3283
+ "version": "3.0.1",
3284
+ "bundled": true,
3285
+ "optional": true,
3286
+ "requires": {
3287
+ "ansi-regex": "^2.0.0"
3288
+ }
3289
+ },
3290
+ "strip-json-comments": {
3291
+ "version": "2.0.1",
3292
+ "bundled": true,
3293
+ "optional": true
3294
+ },
3295
+ "tar": {
3296
+ "version": "4.4.8",
3297
+ "bundled": true,
3298
+ "optional": true,
3299
+ "requires": {
3300
+ "chownr": "^1.1.1",
3301
+ "fs-minipass": "^1.2.5",
3302
+ "minipass": "^2.3.4",
3303
+ "minizlib": "^1.1.1",
3304
+ "mkdirp": "^0.5.0",
3305
+ "safe-buffer": "^5.1.2",
3306
+ "yallist": "^3.0.2"
3307
+ }
3308
+ },
3309
+ "util-deprecate": {
3310
+ "version": "1.0.2",
3311
+ "bundled": true,
3312
+ "optional": true
3313
+ },
3314
+ "wide-align": {
3315
+ "version": "1.1.3",
3316
+ "bundled": true,
3317
+ "optional": true,
3318
+ "requires": {
3319
+ "string-width": "^1.0.2 || 2"
3320
+ }
3321
+ },
3322
+ "wrappy": {
3323
+ "version": "1.0.2",
3324
+ "bundled": true,
3325
+ "optional": true
3326
+ },
3327
+ "yallist": {
3328
+ "version": "3.0.3",
3329
+ "bundled": true,
3330
+ "optional": true
3331
+ }
3332
+ }
3333
+ },
3334
+ "fstream": {
3335
+ "version": "1.0.12",
3336
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
3337
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
3338
+ "requires": {
3339
+ "graceful-fs": "^4.1.2",
3340
+ "inherits": "~2.0.0",
3341
+ "mkdirp": ">=0.5 0",
3342
+ "rimraf": "2"
3343
+ }
3344
+ },
3345
+ "function-bind": {
3346
+ "version": "1.1.1",
3347
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
3348
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
3349
+ },
3350
+ "functional-red-black-tree": {
3351
+ "version": "1.0.1",
3352
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
3353
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
3354
+ },
3355
+ "gauge": {
3356
+ "version": "2.7.4",
3357
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
3358
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
3359
+ "requires": {
3360
+ "aproba": "^1.0.3",
3361
+ "console-control-strings": "^1.0.0",
3362
+ "has-unicode": "^2.0.0",
3363
+ "object-assign": "^4.1.0",
3364
+ "signal-exit": "^3.0.0",
3365
+ "string-width": "^1.0.1",
3366
+ "strip-ansi": "^3.0.1",
3367
+ "wide-align": "^1.1.0"
3368
+ },
3369
+ "dependencies": {
3370
+ "is-fullwidth-code-point": {
3371
+ "version": "1.0.0",
3372
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
3373
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
3374
+ "requires": {
3375
+ "number-is-nan": "^1.0.0"
3376
+ }
3377
+ },
3378
+ "string-width": {
3379
+ "version": "1.0.2",
3380
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
3381
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
3382
+ "requires": {
3383
+ "code-point-at": "^1.0.0",
3384
+ "is-fullwidth-code-point": "^1.0.0",
3385
+ "strip-ansi": "^3.0.0"
3386
+ }
3387
+ }
3388
+ }
3389
+ },
3390
+ "gaze": {
3391
+ "version": "1.1.3",
3392
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
3393
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
3394
+ "requires": {
3395
+ "globule": "^1.0.0"
3396
+ }
3397
+ },
3398
+ "get-caller-file": {
3399
+ "version": "1.0.3",
3400
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
3401
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
3402
+ },
3403
+ "get-stdin": {
3404
+ "version": "4.0.1",
3405
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
3406
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
3407
+ },
3408
+ "get-stream": {
3409
+ "version": "3.0.0",
3410
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
3411
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
3412
+ },
3413
+ "get-value": {
3414
+ "version": "2.0.6",
3415
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3416
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
3417
+ },
3418
+ "getpass": {
3419
+ "version": "0.1.7",
3420
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
3421
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
3422
+ "requires": {
3423
+ "assert-plus": "^1.0.0"
3424
+ }
3425
+ },
3426
+ "glob": {
3427
+ "version": "7.1.4",
3428
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
3429
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
3430
+ "requires": {
3431
+ "fs.realpath": "^1.0.0",
3432
+ "inflight": "^1.0.4",
3433
+ "inherits": "2",
3434
+ "minimatch": "^3.0.4",
3435
+ "once": "^1.3.0",
3436
+ "path-is-absolute": "^1.0.0"
3437
+ }
3438
+ },
3439
+ "glob-parent": {
3440
+ "version": "3.1.0",
3441
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
3442
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
3443
+ "requires": {
3444
+ "is-glob": "^3.1.0",
3445
+ "path-dirname": "^1.0.0"
3446
+ },
3447
+ "dependencies": {
3448
+ "is-glob": {
3449
+ "version": "3.1.0",
3450
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
3451
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
3452
+ "requires": {
3453
+ "is-extglob": "^2.1.0"
3454
+ }
3455
+ }
3456
+ }
3457
+ },
3458
+ "global-dirs": {
3459
+ "version": "0.1.1",
3460
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
3461
+ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
3462
+ "requires": {
3463
+ "ini": "^1.3.4"
3464
+ }
3465
+ },
3466
+ "globals": {
3467
+ "version": "9.18.0",
3468
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
3469
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
3470
+ },
3471
+ "globule": {
3472
+ "version": "1.2.1",
3473
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
3474
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
3475
+ "requires": {
3476
+ "glob": "~7.1.1",
3477
+ "lodash": "~4.17.10",
3478
+ "minimatch": "~3.0.2"
3479
+ }
3480
+ },
3481
+ "got": {
3482
+ "version": "6.7.1",
3483
+ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
3484
+ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
3485
+ "requires": {
3486
+ "create-error-class": "^3.0.0",
3487
+ "duplexer3": "^0.1.4",
3488
+ "get-stream": "^3.0.0",
3489
+ "is-redirect": "^1.0.0",
3490
+ "is-retry-allowed": "^1.0.0",
3491
+ "is-stream": "^1.0.0",
3492
+ "lowercase-keys": "^1.0.0",
3493
+ "safe-buffer": "^5.0.1",
3494
+ "timed-out": "^4.0.0",
3495
+ "unzip-response": "^2.0.1",
3496
+ "url-parse-lax": "^1.0.0"
3497
+ }
3498
+ },
3499
+ "graceful-fs": {
3500
+ "version": "4.2.0",
3501
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
3502
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
3503
+ },
3504
+ "gzip-size": {
3505
+ "version": "4.1.0",
3506
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz",
3507
+ "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=",
3508
+ "requires": {
3509
+ "duplexer": "^0.1.1",
3510
+ "pify": "^3.0.0"
3511
+ }
3512
+ },
3513
+ "har-schema": {
3514
+ "version": "2.0.0",
3515
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
3516
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
3517
+ },
3518
+ "har-validator": {
3519
+ "version": "5.1.3",
3520
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
3521
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
3522
+ "requires": {
3523
+ "ajv": "^6.5.5",
3524
+ "har-schema": "^2.0.0"
3525
+ },
3526
+ "dependencies": {
3527
+ "ajv": {
3528
+ "version": "6.10.2",
3529
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
3530
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
3531
+ "requires": {
3532
+ "fast-deep-equal": "^2.0.1",
3533
+ "fast-json-stable-stringify": "^2.0.0",
3534
+ "json-schema-traverse": "^0.4.1",
3535
+ "uri-js": "^4.2.2"
3536
+ }
3537
+ },
3538
+ "fast-deep-equal": {
3539
+ "version": "2.0.1",
3540
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
3541
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
3542
+ },
3543
+ "json-schema-traverse": {
3544
+ "version": "0.4.1",
3545
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
3546
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
3547
+ }
3548
+ }
3549
+ },
3550
+ "has": {
3551
+ "version": "1.0.3",
3552
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
3553
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
3554
+ "requires": {
3555
+ "function-bind": "^1.1.1"
3556
+ }
3557
+ },
3558
+ "has-ansi": {
3559
+ "version": "2.0.0",
3560
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
3561
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
3562
+ "requires": {
3563
+ "ansi-regex": "^2.0.0"
3564
+ }
3565
+ },
3566
+ "has-flag": {
3567
+ "version": "3.0.0",
3568
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
3569
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
3570
+ },
3571
+ "has-symbols": {
3572
+ "version": "1.0.0",
3573
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
3574
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
3575
+ },
3576
+ "has-unicode": {
3577
+ "version": "2.0.1",
3578
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
3579
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
3580
+ },
3581
+ "has-value": {
3582
+ "version": "1.0.0",
3583
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
3584
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
3585
+ "requires": {
3586
+ "get-value": "^2.0.6",
3587
+ "has-values": "^1.0.0",
3588
+ "isobject": "^3.0.0"
3589
+ }
3590
+ },
3591
+ "has-values": {
3592
+ "version": "1.0.0",
3593
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
3594
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
3595
+ "requires": {
3596
+ "is-number": "^3.0.0",
3597
+ "kind-of": "^4.0.0"
3598
+ },
3599
+ "dependencies": {
3600
+ "kind-of": {
3601
+ "version": "4.0.0",
3602
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
3603
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
3604
+ "requires": {
3605
+ "is-buffer": "^1.1.5"
3606
+ }
3607
+ }
3608
+ }
3609
+ },
3610
+ "hash-base": {
3611
+ "version": "3.0.4",
3612
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
3613
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
3614
+ "requires": {
3615
+ "inherits": "^2.0.1",
3616
+ "safe-buffer": "^5.0.1"
3617
+ }
3618
+ },
3619
+ "hash.js": {
3620
+ "version": "1.1.7",
3621
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
3622
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
3623
+ "requires": {
3624
+ "inherits": "^2.0.3",
3625
+ "minimalistic-assert": "^1.0.1"
3626
+ }
3627
+ },
3628
+ "hmac-drbg": {
3629
+ "version": "1.0.1",
3630
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
3631
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
3632
+ "requires": {
3633
+ "hash.js": "^1.0.3",
3634
+ "minimalistic-assert": "^1.0.0",
3635
+ "minimalistic-crypto-utils": "^1.0.1"
3636
+ }
3637
+ },
3638
+ "home-or-tmp": {
3639
+ "version": "2.0.0",
3640
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
3641
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
3642
+ "requires": {
3643
+ "os-homedir": "^1.0.0",
3644
+ "os-tmpdir": "^1.0.1"
3645
+ }
3646
+ },
3647
+ "hosted-git-info": {
3648
+ "version": "2.7.1",
3649
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
3650
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
3651
+ },
3652
+ "http-signature": {
3653
+ "version": "1.2.0",
3654
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
3655
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
3656
+ "requires": {
3657
+ "assert-plus": "^1.0.0",
3658
+ "jsprim": "^1.2.2",
3659
+ "sshpk": "^1.7.0"
3660
+ }
3661
+ },
3662
+ "https-browserify": {
3663
+ "version": "1.0.0",
3664
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
3665
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
3666
+ },
3667
+ "iconv-lite": {
3668
+ "version": "0.4.24",
3669
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
3670
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
3671
+ "requires": {
3672
+ "safer-buffer": ">= 2.1.2 < 3"
3673
+ }
3674
+ },
3675
+ "ieee754": {
3676
+ "version": "1.1.13",
3677
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
3678
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
3679
+ },
3680
+ "ignore": {
3681
+ "version": "3.3.10",
3682
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
3683
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="
3684
+ },
3685
+ "import-cwd": {
3686
+ "version": "2.1.0",
3687
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
3688
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
3689
+ "requires": {
3690
+ "import-from": "^2.1.0"
3691
+ }
3692
+ },
3693
+ "import-fresh": {
3694
+ "version": "2.0.0",
3695
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
3696
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
3697
+ "requires": {
3698
+ "caller-path": "^2.0.0",
3699
+ "resolve-from": "^3.0.0"
3700
+ },
3701
+ "dependencies": {
3702
+ "caller-path": {
3703
+ "version": "2.0.0",
3704
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
3705
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
3706
+ "requires": {
3707
+ "caller-callsite": "^2.0.0"
3708
+ }
3709
+ },
3710
+ "resolve-from": {
3711
+ "version": "3.0.0",
3712
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
3713
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
3714
+ }
3715
+ }
3716
+ },
3717
+ "import-from": {
3718
+ "version": "2.1.0",
3719
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
3720
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
3721
+ "requires": {
3722
+ "resolve-from": "^3.0.0"
3723
+ },
3724
+ "dependencies": {
3725
+ "resolve-from": {
3726
+ "version": "3.0.0",
3727
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
3728
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
3729
+ }
3730
+ }
3731
+ },
3732
+ "import-lazy": {
3733
+ "version": "2.1.0",
3734
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
3735
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
3736
+ },
3737
+ "imurmurhash": {
3738
+ "version": "0.1.4",
3739
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
3740
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
3741
+ },
3742
+ "in-publish": {
3743
+ "version": "2.0.0",
3744
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
3745
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E="
3746
+ },
3747
+ "indent-string": {
3748
+ "version": "2.1.0",
3749
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
3750
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
3751
+ "requires": {
3752
+ "repeating": "^2.0.0"
3753
+ }
3754
+ },
3755
+ "inflight": {
3756
+ "version": "1.0.6",
3757
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
3758
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
3759
+ "requires": {
3760
+ "once": "^1.3.0",
3761
+ "wrappy": "1"
3762
+ }
3763
+ },
3764
+ "inherits": {
3765
+ "version": "2.0.4",
3766
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
3767
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
3768
+ },
3769
+ "ini": {
3770
+ "version": "1.3.5",
3771
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
3772
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
3773
+ },
3774
+ "inquirer": {
3775
+ "version": "5.2.0",
3776
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz",
3777
+ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==",
3778
+ "requires": {
3779
+ "ansi-escapes": "^3.0.0",
3780
+ "chalk": "^2.0.0",
3781
+ "cli-cursor": "^2.1.0",
3782
+ "cli-width": "^2.0.0",
3783
+ "external-editor": "^2.1.0",
3784
+ "figures": "^2.0.0",
3785
+ "lodash": "^4.3.0",
3786
+ "mute-stream": "0.0.7",
3787
+ "run-async": "^2.2.0",
3788
+ "rxjs": "^5.5.2",
3789
+ "string-width": "^2.1.0",
3790
+ "strip-ansi": "^4.0.0",
3791
+ "through": "^2.3.6"
3792
+ },
3793
+ "dependencies": {
3794
+ "ansi-regex": {
3795
+ "version": "3.0.0",
3796
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3797
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
3798
+ },
3799
+ "strip-ansi": {
3800
+ "version": "4.0.0",
3801
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3802
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3803
+ "requires": {
3804
+ "ansi-regex": "^3.0.0"
3805
+ }
3806
+ }
3807
+ }
3808
+ },
3809
+ "interpret": {
3810
+ "version": "1.2.0",
3811
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
3812
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="
3813
+ },
3814
+ "invariant": {
3815
+ "version": "2.2.4",
3816
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
3817
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
3818
+ "requires": {
3819
+ "loose-envify": "^1.0.0"
3820
+ }
3821
+ },
3822
+ "invert-kv": {
3823
+ "version": "1.0.0",
3824
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
3825
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
3826
+ },
3827
+ "is-accessor-descriptor": {
3828
+ "version": "0.1.6",
3829
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
3830
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
3831
+ "requires": {
3832
+ "kind-of": "^3.0.2"
3833
+ },
3834
+ "dependencies": {
3835
+ "kind-of": {
3836
+ "version": "3.2.2",
3837
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3838
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3839
+ "requires": {
3840
+ "is-buffer": "^1.1.5"
3841
+ }
3842
+ }
3843
+ }
3844
+ },
3845
+ "is-arrayish": {
3846
+ "version": "0.2.1",
3847
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
3848
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
3849
+ },
3850
+ "is-binary-path": {
3851
+ "version": "1.0.1",
3852
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
3853
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
3854
+ "requires": {
3855
+ "binary-extensions": "^1.0.0"
3856
+ }
3857
+ },
3858
+ "is-buffer": {
3859
+ "version": "1.1.6",
3860
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
3861
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
3862
+ },
3863
+ "is-callable": {
3864
+ "version": "1.1.4",
3865
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
3866
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
3867
+ },
3868
+ "is-ci": {
3869
+ "version": "1.2.1",
3870
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
3871
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
3872
+ "requires": {
3873
+ "ci-info": "^1.5.0"
3874
+ }
3875
+ },
3876
+ "is-data-descriptor": {
3877
+ "version": "0.1.4",
3878
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
3879
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
3880
+ "requires": {
3881
+ "kind-of": "^3.0.2"
3882
+ },
3883
+ "dependencies": {
3884
+ "kind-of": {
3885
+ "version": "3.2.2",
3886
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3887
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3888
+ "requires": {
3889
+ "is-buffer": "^1.1.5"
3890
+ }
3891
+ }
3892
+ }
3893
+ },
3894
+ "is-date-object": {
3895
+ "version": "1.0.1",
3896
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
3897
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
3898
+ },
3899
+ "is-descriptor": {
3900
+ "version": "0.1.6",
3901
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
3902
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
3903
+ "requires": {
3904
+ "is-accessor-descriptor": "^0.1.6",
3905
+ "is-data-descriptor": "^0.1.4",
3906
+ "kind-of": "^5.0.0"
3907
+ },
3908
+ "dependencies": {
3909
+ "kind-of": {
3910
+ "version": "5.1.0",
3911
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
3912
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
3913
+ }
3914
+ }
3915
+ },
3916
+ "is-directory": {
3917
+ "version": "0.3.1",
3918
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
3919
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
3920
+ },
3921
+ "is-extendable": {
3922
+ "version": "0.1.1",
3923
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
3924
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
3925
+ },
3926
+ "is-extglob": {
3927
+ "version": "2.1.1",
3928
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
3929
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
3930
+ },
3931
+ "is-finite": {
3932
+ "version": "1.0.2",
3933
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
3934
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
3935
+ "requires": {
3936
+ "number-is-nan": "^1.0.0"
3937
+ }
3938
+ },
3939
+ "is-fullwidth-code-point": {
3940
+ "version": "2.0.0",
3941
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
3942
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
3943
+ },
3944
+ "is-glob": {
3945
+ "version": "4.0.1",
3946
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
3947
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
3948
+ "requires": {
3949
+ "is-extglob": "^2.1.1"
3950
+ }
3951
+ },
3952
+ "is-installed-globally": {
3953
+ "version": "0.1.0",
3954
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
3955
+ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
3956
+ "requires": {
3957
+ "global-dirs": "^0.1.0",
3958
+ "is-path-inside": "^1.0.0"
3959
+ }
3960
+ },
3961
+ "is-npm": {
3962
+ "version": "1.0.0",
3963
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
3964
+ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ="
3965
+ },
3966
+ "is-number": {
3967
+ "version": "3.0.0",
3968
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
3969
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
3970
+ "requires": {
3971
+ "kind-of": "^3.0.2"
3972
+ },
3973
+ "dependencies": {
3974
+ "kind-of": {
3975
+ "version": "3.2.2",
3976
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3977
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3978
+ "requires": {
3979
+ "is-buffer": "^1.1.5"
3980
+ }
3981
+ }
3982
+ }
3983
+ },
3984
+ "is-obj": {
3985
+ "version": "1.0.1",
3986
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
3987
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
3988
+ },
3989
+ "is-path-inside": {
3990
+ "version": "1.0.1",
3991
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
3992
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
3993
+ "requires": {
3994
+ "path-is-inside": "^1.0.1"
3995
+ }
3996
+ },
3997
+ "is-plain-object": {
3998
+ "version": "2.0.4",
3999
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
4000
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
4001
+ "requires": {
4002
+ "isobject": "^3.0.1"
4003
+ }
4004
+ },
4005
+ "is-promise": {
4006
+ "version": "2.1.0",
4007
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
4008
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
4009
+ },
4010
+ "is-redirect": {
4011
+ "version": "1.0.0",
4012
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
4013
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
4014
+ },
4015
+ "is-regex": {
4016
+ "version": "1.0.4",
4017
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
4018
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
4019
+ "requires": {
4020
+ "has": "^1.0.1"
4021
+ }
4022
+ },
4023
+ "is-resolvable": {
4024
+ "version": "1.1.0",
4025
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
4026
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
4027
+ },
4028
+ "is-retry-allowed": {
4029
+ "version": "1.1.0",
4030
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
4031
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
4032
+ },
4033
+ "is-stream": {
4034
+ "version": "1.1.0",
4035
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
4036
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
4037
+ },
4038
+ "is-symbol": {
4039
+ "version": "1.0.2",
4040
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
4041
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
4042
+ "requires": {
4043
+ "has-symbols": "^1.0.0"
4044
+ }
4045
+ },
4046
+ "is-typedarray": {
4047
+ "version": "1.0.0",
4048
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
4049
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
4050
+ },
4051
+ "is-utf8": {
4052
+ "version": "0.2.1",
4053
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
4054
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
4055
+ },
4056
+ "is-windows": {
4057
+ "version": "1.0.2",
4058
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
4059
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
4060
+ },
4061
+ "isarray": {
4062
+ "version": "1.0.0",
4063
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4064
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
4065
+ },
4066
+ "isexe": {
4067
+ "version": "2.0.0",
4068
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4069
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
4070
+ },
4071
+ "isobject": {
4072
+ "version": "3.0.1",
4073
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4074
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
4075
+ },
4076
+ "isstream": {
4077
+ "version": "0.1.2",
4078
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
4079
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
4080
+ },
4081
+ "js-base64": {
4082
+ "version": "2.5.1",
4083
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
4084
+ "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw=="
4085
+ },
4086
+ "js-tokens": {
4087
+ "version": "3.0.2",
4088
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
4089
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
4090
+ },
4091
+ "js-yaml": {
4092
+ "version": "3.13.1",
4093
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
4094
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
4095
+ "requires": {
4096
+ "argparse": "^1.0.7",
4097
+ "esprima": "^4.0.0"
4098
+ }
4099
+ },
4100
+ "jsbn": {
4101
+ "version": "0.1.1",
4102
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
4103
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
4104
+ },
4105
+ "jsesc": {
4106
+ "version": "1.3.0",
4107
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
4108
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
4109
+ },
4110
+ "json-loader": {
4111
+ "version": "0.5.7",
4112
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
4113
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
4114
+ },
4115
+ "json-parse-better-errors": {
4116
+ "version": "1.0.2",
4117
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
4118
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
4119
+ },
4120
+ "json-schema": {
4121
+ "version": "0.2.3",
4122
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
4123
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
4124
+ },
4125
+ "json-schema-traverse": {
4126
+ "version": "0.3.1",
4127
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
4128
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
4129
+ },
4130
+ "json-stable-stringify-without-jsonify": {
4131
+ "version": "1.0.1",
4132
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
4133
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
4134
+ },
4135
+ "json-stringify-safe": {
4136
+ "version": "5.0.1",
4137
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
4138
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
4139
+ },
4140
+ "json5": {
4141
+ "version": "0.5.1",
4142
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
4143
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
4144
+ },
4145
+ "jsonfile": {
4146
+ "version": "4.0.0",
4147
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
4148
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
4149
+ "requires": {
4150
+ "graceful-fs": "^4.1.6"
4151
+ }
4152
+ },
4153
+ "jsprim": {
4154
+ "version": "1.4.1",
4155
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
4156
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
4157
+ "requires": {
4158
+ "assert-plus": "1.0.0",
4159
+ "extsprintf": "1.3.0",
4160
+ "json-schema": "0.2.3",
4161
+ "verror": "1.10.0"
4162
+ }
4163
+ },
4164
+ "jsx-ast-utils": {
4165
+ "version": "2.2.1",
4166
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
4167
+ "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
4168
+ "requires": {
4169
+ "array-includes": "^3.0.3",
4170
+ "object.assign": "^4.1.0"
4171
+ }
4172
+ },
4173
+ "kind-of": {
4174
+ "version": "6.0.2",
4175
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
4176
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
4177
+ },
4178
+ "latest-version": {
4179
+ "version": "3.1.0",
4180
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
4181
+ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
4182
+ "requires": {
4183
+ "package-json": "^4.0.0"
4184
+ }
4185
+ },
4186
+ "lazy-cache": {
4187
+ "version": "1.0.4",
4188
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
4189
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
4190
+ },
4191
+ "lcid": {
4192
+ "version": "1.0.0",
4193
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
4194
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
4195
+ "requires": {
4196
+ "invert-kv": "^1.0.0"
4197
+ }
4198
+ },
4199
+ "levn": {
4200
+ "version": "0.3.0",
4201
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
4202
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
4203
+ "requires": {
4204
+ "prelude-ls": "~1.1.2",
4205
+ "type-check": "~0.3.2"
4206
+ }
4207
+ },
4208
+ "load-json-file": {
4209
+ "version": "1.1.0",
4210
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
4211
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
4212
+ "requires": {
4213
+ "graceful-fs": "^4.1.2",
4214
+ "parse-json": "^2.2.0",
4215
+ "pify": "^2.0.0",
4216
+ "pinkie-promise": "^2.0.0",
4217
+ "strip-bom": "^2.0.0"
4218
+ },
4219
+ "dependencies": {
4220
+ "pify": {
4221
+ "version": "2.3.0",
4222
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
4223
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
4224
+ }
4225
+ }
4226
+ },
4227
+ "loader-runner": {
4228
+ "version": "2.4.0",
4229
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
4230
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
4231
+ },
4232
+ "loader-utils": {
4233
+ "version": "1.2.3",
4234
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
4235
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
4236
+ "requires": {
4237
+ "big.js": "^5.2.2",
4238
+ "emojis-list": "^2.0.0",
4239
+ "json5": "^1.0.1"
4240
+ },
4241
+ "dependencies": {
4242
+ "json5": {
4243
+ "version": "1.0.1",
4244
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
4245
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
4246
+ "requires": {
4247
+ "minimist": "^1.2.0"
4248
+ }
4249
+ },
4250
+ "minimist": {
4251
+ "version": "1.2.0",
4252
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
4253
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
4254
+ }
4255
+ }
4256
+ },
4257
+ "locate-path": {
4258
+ "version": "2.0.0",
4259
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
4260
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
4261
+ "requires": {
4262
+ "p-locate": "^2.0.0",
4263
+ "path-exists": "^3.0.0"
4264
+ }
4265
+ },
4266
+ "lodash": {
4267
+ "version": "4.17.15",
4268
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
4269
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
4270
+ },
4271
+ "lodash.tail": {
4272
+ "version": "4.1.1",
4273
+ "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
4274
+ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ="
4275
+ },
4276
+ "log-symbols": {
4277
+ "version": "2.2.0",
4278
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
4279
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
4280
+ "requires": {
4281
+ "chalk": "^2.0.1"
4282
+ }
4283
+ },
4284
+ "longest": {
4285
+ "version": "1.0.1",
4286
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
4287
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
4288
+ },
4289
+ "loose-envify": {
4290
+ "version": "1.4.0",
4291
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
4292
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
4293
+ "requires": {
4294
+ "js-tokens": "^3.0.0 || ^4.0.0"
4295
+ }
4296
+ },
4297
+ "loud-rejection": {
4298
+ "version": "1.6.0",
4299
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
4300
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
4301
+ "requires": {
4302
+ "currently-unhandled": "^0.4.1",
4303
+ "signal-exit": "^3.0.0"
4304
+ }
4305
+ },
4306
+ "lowercase-keys": {
4307
+ "version": "1.0.1",
4308
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
4309
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
4310
+ },
4311
+ "lru-cache": {
4312
+ "version": "4.1.5",
4313
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
4314
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
4315
+ "requires": {
4316
+ "pseudomap": "^1.0.2",
4317
+ "yallist": "^2.1.2"
4318
+ }
4319
+ },
4320
+ "make-dir": {
4321
+ "version": "1.3.0",
4322
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
4323
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
4324
+ "requires": {
4325
+ "pify": "^3.0.0"
4326
+ }
4327
+ },
4328
+ "map-cache": {
4329
+ "version": "0.2.2",
4330
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
4331
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
4332
+ },
4333
+ "map-obj": {
4334
+ "version": "1.0.1",
4335
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
4336
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
4337
+ },
4338
+ "map-visit": {
4339
+ "version": "1.0.0",
4340
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
4341
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
4342
+ "requires": {
4343
+ "object-visit": "^1.0.0"
4344
+ }
4345
+ },
4346
+ "md5.js": {
4347
+ "version": "1.3.5",
4348
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
4349
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
4350
+ "requires": {
4351
+ "hash-base": "^3.0.0",
4352
+ "inherits": "^2.0.1",
4353
+ "safe-buffer": "^5.1.2"
4354
+ }
4355
+ },
4356
+ "mem": {
4357
+ "version": "1.1.0",
4358
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
4359
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
4360
+ "requires": {
4361
+ "mimic-fn": "^1.0.0"
4362
+ }
4363
+ },
4364
+ "memory-fs": {
4365
+ "version": "0.4.1",
4366
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
4367
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
4368
+ "requires": {
4369
+ "errno": "^0.1.3",
4370
+ "readable-stream": "^2.0.1"
4371
+ }
4372
+ },
4373
+ "meow": {
4374
+ "version": "3.7.0",
4375
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
4376
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
4377
+ "requires": {
4378
+ "camelcase-keys": "^2.0.0",
4379
+ "decamelize": "^1.1.2",
4380
+ "loud-rejection": "^1.0.0",
4381
+ "map-obj": "^1.0.1",
4382
+ "minimist": "^1.1.3",
4383
+ "normalize-package-data": "^2.3.4",
4384
+ "object-assign": "^4.0.1",
4385
+ "read-pkg-up": "^1.0.1",
4386
+ "redent": "^1.0.0",
4387
+ "trim-newlines": "^1.0.0"
4388
+ },
4389
+ "dependencies": {
4390
+ "minimist": {
4391
+ "version": "1.2.0",
4392
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
4393
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
4394
+ }
4395
+ }
4396
+ },
4397
+ "micromatch": {
4398
+ "version": "3.1.10",
4399
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
4400
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
4401
+ "requires": {
4402
+ "arr-diff": "^4.0.0",
4403
+ "array-unique": "^0.3.2",
4404
+ "braces": "^2.3.1",
4405
+ "define-property": "^2.0.2",
4406
+ "extend-shallow": "^3.0.2",
4407
+ "extglob": "^2.0.4",
4408
+ "fragment-cache": "^0.2.1",
4409
+ "kind-of": "^6.0.2",
4410
+ "nanomatch": "^1.2.9",
4411
+ "object.pick": "^1.3.0",
4412
+ "regex-not": "^1.0.0",
4413
+ "snapdragon": "^0.8.1",
4414
+ "to-regex": "^3.0.2"
4415
+ }
4416
+ },
4417
+ "miller-rabin": {
4418
+ "version": "4.0.1",
4419
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
4420
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
4421
+ "requires": {
4422
+ "bn.js": "^4.0.0",
4423
+ "brorand": "^1.0.1"
4424
+ }
4425
+ },
4426
+ "mime-db": {
4427
+ "version": "1.40.0",
4428
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
4429
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
4430
+ },
4431
+ "mime-types": {
4432
+ "version": "2.1.24",
4433
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
4434
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
4435
+ "requires": {
4436
+ "mime-db": "1.40.0"
4437
+ }
4438
+ },
4439
+ "mimic-fn": {
4440
+ "version": "1.2.0",
4441
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
4442
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
4443
+ },
4444
+ "minimalistic-assert": {
4445
+ "version": "1.0.1",
4446
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
4447
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
4448
+ },
4449
+ "minimalistic-crypto-utils": {
4450
+ "version": "1.0.1",
4451
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
4452
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
4453
+ },
4454
+ "minimatch": {
4455
+ "version": "3.0.4",
4456
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
4457
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
4458
+ "requires": {
4459
+ "brace-expansion": "^1.1.7"
4460
+ }
4461
+ },
4462
+ "minimist": {
4463
+ "version": "0.0.8",
4464
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
4465
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
4466
+ },
4467
+ "mixin-deep": {
4468
+ "version": "1.3.2",
4469
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
4470
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
4471
+ "requires": {
4472
+ "for-in": "^1.0.2",
4473
+ "is-extendable": "^1.0.1"
4474
+ },
4475
+ "dependencies": {
4476
+ "is-extendable": {
4477
+ "version": "1.0.1",
4478
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
4479
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
4480
+ "requires": {
4481
+ "is-plain-object": "^2.0.4"
4482
+ }
4483
+ }
4484
+ }
4485
+ },
4486
+ "mixin-object": {
4487
+ "version": "2.0.1",
4488
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
4489
+ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
4490
+ "requires": {
4491
+ "for-in": "^0.1.3",
4492
+ "is-extendable": "^0.1.1"
4493
+ },
4494
+ "dependencies": {
4495
+ "for-in": {
4496
+ "version": "0.1.8",
4497
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
4498
+ "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE="
4499
+ }
4500
+ }
4501
+ },
4502
+ "mkdirp": {
4503
+ "version": "0.5.1",
4504
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
4505
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
4506
+ "requires": {
4507
+ "minimist": "0.0.8"
4508
+ }
4509
+ },
4510
+ "ms": {
4511
+ "version": "2.0.0",
4512
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
4513
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
4514
+ },
4515
+ "mute-stream": {
4516
+ "version": "0.0.7",
4517
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
4518
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
4519
+ },
4520
+ "nan": {
4521
+ "version": "2.14.0",
4522
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
4523
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
4524
+ },
4525
+ "nanomatch": {
4526
+ "version": "1.2.13",
4527
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
4528
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
4529
+ "requires": {
4530
+ "arr-diff": "^4.0.0",
4531
+ "array-unique": "^0.3.2",
4532
+ "define-property": "^2.0.2",
4533
+ "extend-shallow": "^3.0.2",
4534
+ "fragment-cache": "^0.2.1",
4535
+ "is-windows": "^1.0.2",
4536
+ "kind-of": "^6.0.2",
4537
+ "object.pick": "^1.3.0",
4538
+ "regex-not": "^1.0.0",
4539
+ "snapdragon": "^0.8.1",
4540
+ "to-regex": "^3.0.1"
4541
+ }
4542
+ },
4543
+ "natural-compare": {
4544
+ "version": "1.4.0",
4545
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
4546
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
4547
+ },
4548
+ "neo-async": {
4549
+ "version": "2.6.1",
4550
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
4551
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
4552
+ },
4553
+ "next-tick": {
4554
+ "version": "1.0.0",
4555
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
4556
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
4557
+ },
4558
+ "nice-try": {
4559
+ "version": "1.0.5",
4560
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
4561
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
4562
+ },
4563
+ "node-gyp": {
4564
+ "version": "3.8.0",
4565
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
4566
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
4567
+ "requires": {
4568
+ "fstream": "^1.0.0",
4569
+ "glob": "^7.0.3",
4570
+ "graceful-fs": "^4.1.2",
4571
+ "mkdirp": "^0.5.0",
4572
+ "nopt": "2 || 3",
4573
+ "npmlog": "0 || 1 || 2 || 3 || 4",
4574
+ "osenv": "0",
4575
+ "request": "^2.87.0",
4576
+ "rimraf": "2",
4577
+ "semver": "~5.3.0",
4578
+ "tar": "^2.0.0",
4579
+ "which": "1"
4580
+ },
4581
+ "dependencies": {
4582
+ "semver": {
4583
+ "version": "5.3.0",
4584
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
4585
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
4586
+ }
4587
+ }
4588
+ },
4589
+ "node-libs-browser": {
4590
+ "version": "2.2.1",
4591
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
4592
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
4593
+ "requires": {
4594
+ "assert": "^1.1.1",
4595
+ "browserify-zlib": "^0.2.0",
4596
+ "buffer": "^4.3.0",
4597
+ "console-browserify": "^1.1.0",
4598
+ "constants-browserify": "^1.0.0",
4599
+ "crypto-browserify": "^3.11.0",
4600
+ "domain-browser": "^1.1.1",
4601
+ "events": "^3.0.0",
4602
+ "https-browserify": "^1.0.0",
4603
+ "os-browserify": "^0.3.0",
4604
+ "path-browserify": "0.0.1",
4605
+ "process": "^0.11.10",
4606
+ "punycode": "^1.2.4",
4607
+ "querystring-es3": "^0.2.0",
4608
+ "readable-stream": "^2.3.3",
4609
+ "stream-browserify": "^2.0.1",
4610
+ "stream-http": "^2.7.2",
4611
+ "string_decoder": "^1.0.0",
4612
+ "timers-browserify": "^2.0.4",
4613
+ "tty-browserify": "0.0.0",
4614
+ "url": "^0.11.0",
4615
+ "util": "^0.11.0",
4616
+ "vm-browserify": "^1.0.1"
4617
+ },
4618
+ "dependencies": {
4619
+ "punycode": {
4620
+ "version": "1.4.1",
4621
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
4622
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
4623
+ }
4624
+ }
4625
+ },
4626
+ "node-sass": {
4627
+ "version": "4.12.0",
4628
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
4629
+ "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
4630
+ "requires": {
4631
+ "async-foreach": "^0.1.3",
4632
+ "chalk": "^1.1.1",
4633
+ "cross-spawn": "^3.0.0",
4634
+ "gaze": "^1.0.0",
4635
+ "get-stdin": "^4.0.1",
4636
+ "glob": "^7.0.3",
4637
+ "in-publish": "^2.0.0",
4638
+ "lodash": "^4.17.11",
4639
+ "meow": "^3.7.0",
4640
+ "mkdirp": "^0.5.1",
4641
+ "nan": "^2.13.2",
4642
+ "node-gyp": "^3.8.0",
4643
+ "npmlog": "^4.0.0",
4644
+ "request": "^2.88.0",
4645
+ "sass-graph": "^2.2.4",
4646
+ "stdout-stream": "^1.4.0",
4647
+ "true-case-path": "^1.0.2"
4648
+ },
4649
+ "dependencies": {
4650
+ "ansi-styles": {
4651
+ "version": "2.2.1",
4652
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
4653
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
4654
+ },
4655
+ "chalk": {
4656
+ "version": "1.1.3",
4657
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
4658
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
4659
+ "requires": {
4660
+ "ansi-styles": "^2.2.1",
4661
+ "escape-string-regexp": "^1.0.2",
4662
+ "has-ansi": "^2.0.0",
4663
+ "strip-ansi": "^3.0.0",
4664
+ "supports-color": "^2.0.0"
4665
+ }
4666
+ },
4667
+ "cross-spawn": {
4668
+ "version": "3.0.1",
4669
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
4670
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
4671
+ "requires": {
4672
+ "lru-cache": "^4.0.1",
4673
+ "which": "^1.2.9"
4674
+ }
4675
+ },
4676
+ "supports-color": {
4677
+ "version": "2.0.0",
4678
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4679
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
4680
+ }
4681
+ }
4682
+ },
4683
+ "nopt": {
4684
+ "version": "3.0.6",
4685
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
4686
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
4687
+ "requires": {
4688
+ "abbrev": "1"
4689
+ }
4690
+ },
4691
+ "normalize-package-data": {
4692
+ "version": "2.5.0",
4693
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
4694
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
4695
+ "requires": {
4696
+ "hosted-git-info": "^2.1.4",
4697
+ "resolve": "^1.10.0",
4698
+ "semver": "2 || 3 || 4 || 5",
4699
+ "validate-npm-package-license": "^3.0.1"
4700
+ }
4701
+ },
4702
+ "normalize-path": {
4703
+ "version": "3.0.0",
4704
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
4705
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
4706
+ },
4707
+ "normalize-range": {
4708
+ "version": "0.1.2",
4709
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
4710
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
4711
+ },
4712
+ "npm-run-path": {
4713
+ "version": "2.0.2",
4714
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
4715
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
4716
+ "requires": {
4717
+ "path-key": "^2.0.0"
4718
+ }
4719
+ },
4720
+ "npmlog": {
4721
+ "version": "4.1.2",
4722
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
4723
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
4724
+ "requires": {
4725
+ "are-we-there-yet": "~1.1.2",
4726
+ "console-control-strings": "~1.1.0",
4727
+ "gauge": "~2.7.3",
4728
+ "set-blocking": "~2.0.0"
4729
+ }
4730
+ },
4731
+ "num2fraction": {
4732
+ "version": "1.2.2",
4733
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
4734
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
4735
+ },
4736
+ "number-is-nan": {
4737
+ "version": "1.0.1",
4738
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
4739
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
4740
+ },
4741
+ "oauth-sign": {
4742
+ "version": "0.9.0",
4743
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
4744
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
4745
+ },
4746
+ "object-assign": {
4747
+ "version": "4.1.1",
4748
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4749
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
4750
+ },
4751
+ "object-copy": {
4752
+ "version": "0.1.0",
4753
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
4754
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
4755
+ "requires": {
4756
+ "copy-descriptor": "^0.1.0",
4757
+ "define-property": "^0.2.5",
4758
+ "kind-of": "^3.0.3"
4759
+ },
4760
+ "dependencies": {
4761
+ "define-property": {
4762
+ "version": "0.2.5",
4763
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4764
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4765
+ "requires": {
4766
+ "is-descriptor": "^0.1.0"
4767
+ }
4768
+ },
4769
+ "kind-of": {
4770
+ "version": "3.2.2",
4771
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4772
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4773
+ "requires": {
4774
+ "is-buffer": "^1.1.5"
4775
+ }
4776
+ }
4777
+ }
4778
+ },
4779
+ "object-keys": {
4780
+ "version": "1.1.1",
4781
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
4782
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
4783
+ },
4784
+ "object-visit": {
4785
+ "version": "1.0.1",
4786
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
4787
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
4788
+ "requires": {
4789
+ "isobject": "^3.0.0"
4790
+ }
4791
+ },
4792
+ "object.assign": {
4793
+ "version": "4.1.0",
4794
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
4795
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
4796
+ "requires": {
4797
+ "define-properties": "^1.1.2",
4798
+ "function-bind": "^1.1.1",
4799
+ "has-symbols": "^1.0.0",
4800
+ "object-keys": "^1.0.11"
4801
+ }
4802
+ },
4803
+ "object.entries": {
4804
+ "version": "1.1.0",
4805
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
4806
+ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
4807
+ "requires": {
4808
+ "define-properties": "^1.1.3",
4809
+ "es-abstract": "^1.12.0",
4810
+ "function-bind": "^1.1.1",
4811
+ "has": "^1.0.3"
4812
+ }
4813
+ },
4814
+ "object.fromentries": {
4815
+ "version": "2.0.0",
4816
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
4817
+ "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
4818
+ "requires": {
4819
+ "define-properties": "^1.1.2",
4820
+ "es-abstract": "^1.11.0",
4821
+ "function-bind": "^1.1.1",
4822
+ "has": "^1.0.1"
4823
+ }
4824
+ },
4825
+ "object.pick": {
4826
+ "version": "1.3.0",
4827
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
4828
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
4829
+ "requires": {
4830
+ "isobject": "^3.0.1"
4831
+ }
4832
+ },
4833
+ "object.values": {
4834
+ "version": "1.1.0",
4835
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
4836
+ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
4837
+ "requires": {
4838
+ "define-properties": "^1.1.3",
4839
+ "es-abstract": "^1.12.0",
4840
+ "function-bind": "^1.1.1",
4841
+ "has": "^1.0.3"
4842
+ }
4843
+ },
4844
+ "once": {
4845
+ "version": "1.4.0",
4846
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
4847
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
4848
+ "requires": {
4849
+ "wrappy": "1"
4850
+ }
4851
+ },
4852
+ "onetime": {
4853
+ "version": "2.0.1",
4854
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
4855
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
4856
+ "requires": {
4857
+ "mimic-fn": "^1.0.0"
4858
+ }
4859
+ },
4860
+ "optionator": {
4861
+ "version": "0.8.2",
4862
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
4863
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
4864
+ "requires": {
4865
+ "deep-is": "~0.1.3",
4866
+ "fast-levenshtein": "~2.0.4",
4867
+ "levn": "~0.3.0",
4868
+ "prelude-ls": "~1.1.2",
4869
+ "type-check": "~0.3.2",
4870
+ "wordwrap": "~1.0.0"
4871
+ }
4872
+ },
4873
+ "ora": {
4874
+ "version": "1.4.0",
4875
+ "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
4876
+ "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
4877
+ "requires": {
4878
+ "chalk": "^2.1.0",
4879
+ "cli-cursor": "^2.1.0",
4880
+ "cli-spinners": "^1.0.1",
4881
+ "log-symbols": "^2.1.0"
4882
+ }
4883
+ },
4884
+ "os-browserify": {
4885
+ "version": "0.3.0",
4886
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
4887
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
4888
+ },
4889
+ "os-homedir": {
4890
+ "version": "1.0.2",
4891
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
4892
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
4893
+ },
4894
+ "os-locale": {
4895
+ "version": "1.4.0",
4896
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
4897
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
4898
+ "requires": {
4899
+ "lcid": "^1.0.0"
4900
+ }
4901
+ },
4902
+ "os-tmpdir": {
4903
+ "version": "1.0.2",
4904
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
4905
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
4906
+ },
4907
+ "osenv": {
4908
+ "version": "0.1.5",
4909
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
4910
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
4911
+ "requires": {
4912
+ "os-homedir": "^1.0.0",
4913
+ "os-tmpdir": "^1.0.0"
4914
+ }
4915
+ },
4916
+ "p-finally": {
4917
+ "version": "1.0.0",
4918
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
4919
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
4920
+ },
4921
+ "p-limit": {
4922
+ "version": "1.3.0",
4923
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
4924
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
4925
+ "requires": {
4926
+ "p-try": "^1.0.0"
4927
+ }
4928
+ },
4929
+ "p-locate": {
4930
+ "version": "2.0.0",
4931
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
4932
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
4933
+ "requires": {
4934
+ "p-limit": "^1.1.0"
4935
+ }
4936
+ },
4937
+ "p-try": {
4938
+ "version": "1.0.0",
4939
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
4940
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
4941
+ },
4942
+ "package-json": {
4943
+ "version": "4.0.1",
4944
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
4945
+ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
4946
+ "requires": {
4947
+ "got": "^6.7.1",
4948
+ "registry-auth-token": "^3.0.1",
4949
+ "registry-url": "^3.0.3",
4950
+ "semver": "^5.1.0"
4951
+ }
4952
+ },
4953
+ "pako": {
4954
+ "version": "1.0.10",
4955
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
4956
+ "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="
4957
+ },
4958
+ "parse-asn1": {
4959
+ "version": "5.1.4",
4960
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
4961
+ "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
4962
+ "requires": {
4963
+ "asn1.js": "^4.0.0",
4964
+ "browserify-aes": "^1.0.0",
4965
+ "create-hash": "^1.1.0",
4966
+ "evp_bytestokey": "^1.0.0",
4967
+ "pbkdf2": "^3.0.3",
4968
+ "safe-buffer": "^5.1.1"
4969
+ }
4970
+ },
4971
+ "parse-json": {
4972
+ "version": "2.2.0",
4973
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
4974
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
4975
+ "requires": {
4976
+ "error-ex": "^1.2.0"
4977
+ }
4978
+ },
4979
+ "pascalcase": {
4980
+ "version": "0.1.1",
4981
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
4982
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
4983
+ },
4984
+ "path-browserify": {
4985
+ "version": "0.0.1",
4986
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
4987
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
4988
+ },
4989
+ "path-dirname": {
4990
+ "version": "1.0.2",
4991
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
4992
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
4993
+ },
4994
+ "path-exists": {
4995
+ "version": "3.0.0",
4996
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
4997
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
4998
+ },
4999
+ "path-is-absolute": {
5000
+ "version": "1.0.1",
5001
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
5002
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
5003
+ },
5004
+ "path-is-inside": {
5005
+ "version": "1.0.2",
5006
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
5007
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
5008
+ },
5009
+ "path-key": {
5010
+ "version": "2.0.1",
5011
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
5012
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
5013
+ },
5014
+ "path-parse": {
5015
+ "version": "1.0.6",
5016
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
5017
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
5018
+ },
5019
+ "path-type": {
5020
+ "version": "1.1.0",
5021
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
5022
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
5023
+ "requires": {
5024
+ "graceful-fs": "^4.1.2",
5025
+ "pify": "^2.0.0",
5026
+ "pinkie-promise": "^2.0.0"
5027
+ },
5028
+ "dependencies": {
5029
+ "pify": {
5030
+ "version": "2.3.0",
5031
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5032
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
5033
+ }
5034
+ }
5035
+ },
5036
+ "pbkdf2": {
5037
+ "version": "3.0.17",
5038
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
5039
+ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
5040
+ "requires": {
5041
+ "create-hash": "^1.1.2",
5042
+ "create-hmac": "^1.1.4",
5043
+ "ripemd160": "^2.0.1",
5044
+ "safe-buffer": "^5.0.1",
5045
+ "sha.js": "^2.4.8"
5046
+ }
5047
+ },
5048
+ "performance-now": {
5049
+ "version": "2.1.0",
5050
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
5051
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
5052
+ },
5053
+ "pify": {
5054
+ "version": "3.0.0",
5055
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
5056
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
5057
+ },
5058
+ "pinkie": {
5059
+ "version": "2.0.4",
5060
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
5061
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
5062
+ },
5063
+ "pinkie-promise": {
5064
+ "version": "2.0.1",
5065
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
5066
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
5067
+ "requires": {
5068
+ "pinkie": "^2.0.0"
5069
+ }
5070
+ },
5071
+ "pkg-dir": {
5072
+ "version": "2.0.0",
5073
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
5074
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
5075
+ "requires": {
5076
+ "find-up": "^2.1.0"
5077
+ }
5078
+ },
5079
+ "pluralize": {
5080
+ "version": "7.0.0",
5081
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
5082
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow=="
5083
+ },
5084
+ "posix-character-classes": {
5085
+ "version": "0.1.1",
5086
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
5087
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
5088
+ },
5089
+ "postcss": {
5090
+ "version": "6.0.23",
5091
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
5092
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
5093
+ "requires": {
5094
+ "chalk": "^2.4.1",
5095
+ "source-map": "^0.6.1",
5096
+ "supports-color": "^5.4.0"
5097
+ }
5098
+ },
5099
+ "postcss-load-config": {
5100
+ "version": "2.1.0",
5101
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
5102
+ "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
5103
+ "requires": {
5104
+ "cosmiconfig": "^5.0.0",
5105
+ "import-cwd": "^2.0.0"
5106
+ }
5107
+ },
5108
+ "postcss-loader": {
5109
+ "version": "2.1.6",
5110
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz",
5111
+ "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==",
5112
+ "requires": {
5113
+ "loader-utils": "^1.1.0",
5114
+ "postcss": "^6.0.0",
5115
+ "postcss-load-config": "^2.0.0",
5116
+ "schema-utils": "^0.4.0"
5117
+ },
5118
+ "dependencies": {
5119
+ "ajv": {
5120
+ "version": "6.10.2",
5121
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
5122
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
5123
+ "requires": {
5124
+ "fast-deep-equal": "^2.0.1",
5125
+ "fast-json-stable-stringify": "^2.0.0",
5126
+ "json-schema-traverse": "^0.4.1",
5127
+ "uri-js": "^4.2.2"
5128
+ }
5129
+ },
5130
+ "ajv-keywords": {
5131
+ "version": "3.4.1",
5132
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
5133
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
5134
+ },
5135
+ "fast-deep-equal": {
5136
+ "version": "2.0.1",
5137
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
5138
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
5139
+ },
5140
+ "json-schema-traverse": {
5141
+ "version": "0.4.1",
5142
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
5143
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
5144
+ },
5145
+ "schema-utils": {
5146
+ "version": "0.4.7",
5147
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
5148
+ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
5149
+ "requires": {
5150
+ "ajv": "^6.1.0",
5151
+ "ajv-keywords": "^3.1.0"
5152
+ }
5153
+ }
5154
+ }
5155
+ },
5156
+ "postcss-value-parser": {
5157
+ "version": "3.3.1",
5158
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
5159
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
5160
+ },
5161
+ "prelude-ls": {
5162
+ "version": "1.1.2",
5163
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
5164
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
5165
+ },
5166
+ "prepend-http": {
5167
+ "version": "1.0.4",
5168
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
5169
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
5170
+ },
5171
+ "private": {
5172
+ "version": "0.1.8",
5173
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
5174
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
5175
+ },
5176
+ "process": {
5177
+ "version": "0.11.10",
5178
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
5179
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
5180
+ },
5181
+ "process-nextick-args": {
5182
+ "version": "2.0.1",
5183
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
5184
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
5185
+ },
5186
+ "progress": {
5187
+ "version": "2.0.3",
5188
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
5189
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
5190
+ },
5191
+ "prop-types": {
5192
+ "version": "15.7.2",
5193
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
5194
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
5195
+ "requires": {
5196
+ "loose-envify": "^1.4.0",
5197
+ "object-assign": "^4.1.1",
5198
+ "react-is": "^16.8.1"
5199
+ }
5200
+ },
5201
+ "prr": {
5202
+ "version": "1.0.1",
5203
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
5204
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
5205
+ },
5206
+ "pseudomap": {
5207
+ "version": "1.0.2",
5208
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
5209
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
5210
+ },
5211
+ "psl": {
5212
+ "version": "1.2.0",
5213
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
5214
+ "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
5215
+ },
5216
+ "public-encrypt": {
5217
+ "version": "4.0.3",
5218
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
5219
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
5220
+ "requires": {
5221
+ "bn.js": "^4.1.0",
5222
+ "browserify-rsa": "^4.0.0",
5223
+ "create-hash": "^1.1.0",
5224
+ "parse-asn1": "^5.0.0",
5225
+ "randombytes": "^2.0.1",
5226
+ "safe-buffer": "^5.1.2"
5227
+ }
5228
+ },
5229
+ "punycode": {
5230
+ "version": "2.1.1",
5231
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
5232
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
5233
+ },
5234
+ "qs": {
5235
+ "version": "6.5.2",
5236
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
5237
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
5238
+ },
5239
+ "querystring": {
5240
+ "version": "0.2.0",
5241
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
5242
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
5243
+ },
5244
+ "querystring-es3": {
5245
+ "version": "0.2.1",
5246
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
5247
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
5248
+ },
5249
+ "randombytes": {
5250
+ "version": "2.1.0",
5251
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
5252
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
5253
+ "requires": {
5254
+ "safe-buffer": "^5.1.0"
5255
+ }
5256
+ },
5257
+ "randomfill": {
5258
+ "version": "1.0.4",
5259
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
5260
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
5261
+ "requires": {
5262
+ "randombytes": "^2.0.5",
5263
+ "safe-buffer": "^5.1.0"
5264
+ }
5265
+ },
5266
+ "raw-loader": {
5267
+ "version": "0.5.1",
5268
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
5269
+ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
5270
+ },
5271
+ "rc": {
5272
+ "version": "1.2.8",
5273
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
5274
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
5275
+ "requires": {
5276
+ "deep-extend": "^0.6.0",
5277
+ "ini": "~1.3.0",
5278
+ "minimist": "^1.2.0",
5279
+ "strip-json-comments": "~2.0.1"
5280
+ },
5281
+ "dependencies": {
5282
+ "minimist": {
5283
+ "version": "1.2.0",
5284
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
5285
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
5286
+ }
5287
+ }
5288
+ },
5289
+ "react-is": {
5290
+ "version": "16.8.6",
5291
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
5292
+ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
5293
+ },
5294
+ "read-pkg": {
5295
+ "version": "1.1.0",
5296
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
5297
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
5298
+ "requires": {
5299
+ "load-json-file": "^1.0.0",
5300
+ "normalize-package-data": "^2.3.2",
5301
+ "path-type": "^1.0.0"
5302
+ }
5303
+ },
5304
+ "read-pkg-up": {
5305
+ "version": "1.0.1",
5306
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
5307
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
5308
+ "requires": {
5309
+ "find-up": "^1.0.0",
5310
+ "read-pkg": "^1.0.0"
5311
+ },
5312
+ "dependencies": {
5313
+ "find-up": {
5314
+ "version": "1.1.2",
5315
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
5316
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
5317
+ "requires": {
5318
+ "path-exists": "^2.0.0",
5319
+ "pinkie-promise": "^2.0.0"
5320
+ }
5321
+ },
5322
+ "path-exists": {
5323
+ "version": "2.1.0",
5324
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
5325
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
5326
+ "requires": {
5327
+ "pinkie-promise": "^2.0.0"
5328
+ }
5329
+ }
5330
+ }
5331
+ },
5332
+ "readable-stream": {
5333
+ "version": "2.3.6",
5334
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
5335
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
5336
+ "requires": {
5337
+ "core-util-is": "~1.0.0",
5338
+ "inherits": "~2.0.3",
5339
+ "isarray": "~1.0.0",
5340
+ "process-nextick-args": "~2.0.0",
5341
+ "safe-buffer": "~5.1.1",
5342
+ "string_decoder": "~1.1.1",
5343
+ "util-deprecate": "~1.0.1"
5344
+ }
5345
+ },
5346
+ "readdirp": {
5347
+ "version": "2.2.1",
5348
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
5349
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
5350
+ "requires": {
5351
+ "graceful-fs": "^4.1.11",
5352
+ "micromatch": "^3.1.10",
5353
+ "readable-stream": "^2.0.2"
5354
+ }
5355
+ },
5356
+ "rechoir": {
5357
+ "version": "0.6.2",
5358
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
5359
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
5360
+ "requires": {
5361
+ "resolve": "^1.1.6"
5362
+ }
5363
+ },
5364
+ "redent": {
5365
+ "version": "1.0.0",
5366
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
5367
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
5368
+ "requires": {
5369
+ "indent-string": "^2.1.0",
5370
+ "strip-indent": "^1.0.1"
5371
+ }
5372
+ },
5373
+ "regenerate": {
5374
+ "version": "1.4.0",
5375
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
5376
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg=="
5377
+ },
5378
+ "regenerator-runtime": {
5379
+ "version": "0.11.1",
5380
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
5381
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
5382
+ },
5383
+ "regenerator-transform": {
5384
+ "version": "0.10.1",
5385
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
5386
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
5387
+ "requires": {
5388
+ "babel-runtime": "^6.18.0",
5389
+ "babel-types": "^6.19.0",
5390
+ "private": "^0.1.6"
5391
+ }
5392
+ },
5393
+ "regex-not": {
5394
+ "version": "1.0.2",
5395
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
5396
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
5397
+ "requires": {
5398
+ "extend-shallow": "^3.0.2",
5399
+ "safe-regex": "^1.1.0"
5400
+ }
5401
+ },
5402
+ "regexpp": {
5403
+ "version": "1.1.0",
5404
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
5405
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw=="
5406
+ },
5407
+ "regexpu-core": {
5408
+ "version": "2.0.0",
5409
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
5410
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
5411
+ "requires": {
5412
+ "regenerate": "^1.2.1",
5413
+ "regjsgen": "^0.2.0",
5414
+ "regjsparser": "^0.1.4"
5415
+ }
5416
+ },
5417
+ "registry-auth-token": {
5418
+ "version": "3.4.0",
5419
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
5420
+ "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
5421
+ "requires": {
5422
+ "rc": "^1.1.6",
5423
+ "safe-buffer": "^5.0.1"
5424
+ }
5425
+ },
5426
+ "registry-url": {
5427
+ "version": "3.1.0",
5428
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
5429
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
5430
+ "requires": {
5431
+ "rc": "^1.0.1"
5432
+ }
5433
+ },
5434
+ "regjsgen": {
5435
+ "version": "0.2.0",
5436
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
5437
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
5438
+ },
5439
+ "regjsparser": {
5440
+ "version": "0.1.5",
5441
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
5442
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
5443
+ "requires": {
5444
+ "jsesc": "~0.5.0"
5445
+ },
5446
+ "dependencies": {
5447
+ "jsesc": {
5448
+ "version": "0.5.0",
5449
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
5450
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
5451
+ }
5452
+ }
5453
+ },
5454
+ "remove-trailing-separator": {
5455
+ "version": "1.1.0",
5456
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
5457
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
5458
+ },
5459
+ "repeat-element": {
5460
+ "version": "1.1.3",
5461
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
5462
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
5463
+ },
5464
+ "repeat-string": {
5465
+ "version": "1.6.1",
5466
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
5467
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
5468
+ },
5469
+ "repeating": {
5470
+ "version": "2.0.1",
5471
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
5472
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
5473
+ "requires": {
5474
+ "is-finite": "^1.0.0"
5475
+ }
5476
+ },
5477
+ "request": {
5478
+ "version": "2.88.0",
5479
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
5480
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
5481
+ "requires": {
5482
+ "aws-sign2": "~0.7.0",
5483
+ "aws4": "^1.8.0",
5484
+ "caseless": "~0.12.0",
5485
+ "combined-stream": "~1.0.6",
5486
+ "extend": "~3.0.2",
5487
+ "forever-agent": "~0.6.1",
5488
+ "form-data": "~2.3.2",
5489
+ "har-validator": "~5.1.0",
5490
+ "http-signature": "~1.2.0",
5491
+ "is-typedarray": "~1.0.0",
5492
+ "isstream": "~0.1.2",
5493
+ "json-stringify-safe": "~5.0.1",
5494
+ "mime-types": "~2.1.19",
5495
+ "oauth-sign": "~0.9.0",
5496
+ "performance-now": "^2.1.0",
5497
+ "qs": "~6.5.2",
5498
+ "safe-buffer": "^5.1.2",
5499
+ "tough-cookie": "~2.4.3",
5500
+ "tunnel-agent": "^0.6.0",
5501
+ "uuid": "^3.3.2"
5502
+ }
5503
+ },
5504
+ "require-directory": {
5505
+ "version": "2.1.1",
5506
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
5507
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
5508
+ },
5509
+ "require-main-filename": {
5510
+ "version": "1.0.1",
5511
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
5512
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
5513
+ },
5514
+ "require-uncached": {
5515
+ "version": "1.0.3",
5516
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
5517
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
5518
+ "requires": {
5519
+ "caller-path": "^0.1.0",
5520
+ "resolve-from": "^1.0.0"
5521
+ }
5522
+ },
5523
+ "requireindex": {
5524
+ "version": "1.1.0",
5525
+ "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
5526
+ "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI="
5527
+ },
5528
+ "resolve": {
5529
+ "version": "1.11.1",
5530
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
5531
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
5532
+ "requires": {
5533
+ "path-parse": "^1.0.6"
5534
+ }
5535
+ },
5536
+ "resolve-from": {
5537
+ "version": "1.0.1",
5538
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
5539
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="
5540
+ },
5541
+ "resolve-pkg": {
5542
+ "version": "1.0.0",
5543
+ "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz",
5544
+ "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=",
5545
+ "requires": {
5546
+ "resolve-from": "^2.0.0"
5547
+ },
5548
+ "dependencies": {
5549
+ "resolve-from": {
5550
+ "version": "2.0.0",
5551
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
5552
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
5553
+ }
5554
+ }
5555
+ },
5556
+ "resolve-url": {
5557
+ "version": "0.2.1",
5558
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
5559
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
5560
+ },
5561
+ "restore-cursor": {
5562
+ "version": "2.0.0",
5563
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
5564
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
5565
+ "requires": {
5566
+ "onetime": "^2.0.0",
5567
+ "signal-exit": "^3.0.2"
5568
+ }
5569
+ },
5570
+ "ret": {
5571
+ "version": "0.1.15",
5572
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
5573
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
5574
+ },
5575
+ "right-align": {
5576
+ "version": "0.1.3",
5577
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
5578
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
5579
+ "requires": {
5580
+ "align-text": "^0.1.1"
5581
+ }
5582
+ },
5583
+ "rimraf": {
5584
+ "version": "2.6.3",
5585
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
5586
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
5587
+ "requires": {
5588
+ "glob": "^7.1.3"
5589
+ }
5590
+ },
5591
+ "ripemd160": {
5592
+ "version": "2.0.2",
5593
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
5594
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
5595
+ "requires": {
5596
+ "hash-base": "^3.0.0",
5597
+ "inherits": "^2.0.1"
5598
+ }
5599
+ },
5600
+ "run-async": {
5601
+ "version": "2.3.0",
5602
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
5603
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
5604
+ "requires": {
5605
+ "is-promise": "^2.1.0"
5606
+ }
5607
+ },
5608
+ "rx-lite": {
5609
+ "version": "4.0.8",
5610
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
5611
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
5612
+ },
5613
+ "rx-lite-aggregates": {
5614
+ "version": "4.0.8",
5615
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
5616
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
5617
+ "requires": {
5618
+ "rx-lite": "*"
5619
+ }
5620
+ },
5621
+ "rxjs": {
5622
+ "version": "5.5.12",
5623
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
5624
+ "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
5625
+ "requires": {
5626
+ "symbol-observable": "1.0.1"
5627
+ }
5628
+ },
5629
+ "safe-buffer": {
5630
+ "version": "5.1.2",
5631
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
5632
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
5633
+ },
5634
+ "safe-regex": {
5635
+ "version": "1.1.0",
5636
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
5637
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
5638
+ "requires": {
5639
+ "ret": "~0.1.10"
5640
+ }
5641
+ },
5642
+ "safer-buffer": {
5643
+ "version": "2.1.2",
5644
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
5645
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
5646
+ },
5647
+ "sass-graph": {
5648
+ "version": "2.2.4",
5649
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
5650
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
5651
+ "requires": {
5652
+ "glob": "^7.0.0",
5653
+ "lodash": "^4.0.0",
5654
+ "scss-tokenizer": "^0.2.3",
5655
+ "yargs": "^7.0.0"
5656
+ }
5657
+ },
5658
+ "sass-loader": {
5659
+ "version": "6.0.7",
5660
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz",
5661
+ "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==",
5662
+ "requires": {
5663
+ "clone-deep": "^2.0.1",
5664
+ "loader-utils": "^1.0.1",
5665
+ "lodash.tail": "^4.1.1",
5666
+ "neo-async": "^2.5.0",
5667
+ "pify": "^3.0.0"
5668
+ }
5669
+ },
5670
+ "schema-utils": {
5671
+ "version": "0.3.0",
5672
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
5673
+ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
5674
+ "requires": {
5675
+ "ajv": "^5.0.0"
5676
+ }
5677
+ },
5678
+ "scss-tokenizer": {
5679
+ "version": "0.2.3",
5680
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
5681
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
5682
+ "requires": {
5683
+ "js-base64": "^2.1.8",
5684
+ "source-map": "^0.4.2"
5685
+ },
5686
+ "dependencies": {
5687
+ "source-map": {
5688
+ "version": "0.4.4",
5689
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
5690
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
5691
+ "requires": {
5692
+ "amdefine": ">=0.0.4"
5693
+ }
5694
+ }
5695
+ }
5696
+ },
5697
+ "semver": {
5698
+ "version": "5.7.0",
5699
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
5700
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
5701
+ },
5702
+ "semver-diff": {
5703
+ "version": "2.1.0",
5704
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
5705
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
5706
+ "requires": {
5707
+ "semver": "^5.0.3"
5708
+ }
5709
+ },
5710
+ "set-blocking": {
5711
+ "version": "2.0.0",
5712
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
5713
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
5714
+ },
5715
+ "set-value": {
5716
+ "version": "2.0.1",
5717
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
5718
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
5719
+ "requires": {
5720
+ "extend-shallow": "^2.0.1",
5721
+ "is-extendable": "^0.1.1",
5722
+ "is-plain-object": "^2.0.3",
5723
+ "split-string": "^3.0.1"
5724
+ },
5725
+ "dependencies": {
5726
+ "extend-shallow": {
5727
+ "version": "2.0.1",
5728
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
5729
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
5730
+ "requires": {
5731
+ "is-extendable": "^0.1.0"
5732
+ }
5733
+ }
5734
+ }
5735
+ },
5736
+ "setimmediate": {
5737
+ "version": "1.0.5",
5738
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
5739
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
5740
+ },
5741
+ "sha.js": {
5742
+ "version": "2.4.11",
5743
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
5744
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
5745
+ "requires": {
5746
+ "inherits": "^2.0.1",
5747
+ "safe-buffer": "^5.0.1"
5748
+ }
5749
+ },
5750
+ "shallow-clone": {
5751
+ "version": "1.0.0",
5752
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
5753
+ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
5754
+ "requires": {
5755
+ "is-extendable": "^0.1.1",
5756
+ "kind-of": "^5.0.0",
5757
+ "mixin-object": "^2.0.1"
5758
+ },
5759
+ "dependencies": {
5760
+ "kind-of": {
5761
+ "version": "5.1.0",
5762
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
5763
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
5764
+ }
5765
+ }
5766
+ },
5767
+ "shebang-command": {
5768
+ "version": "1.2.0",
5769
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
5770
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
5771
+ "requires": {
5772
+ "shebang-regex": "^1.0.0"
5773
+ }
5774
+ },
5775
+ "shebang-regex": {
5776
+ "version": "1.0.0",
5777
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
5778
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
5779
+ },
5780
+ "shelljs": {
5781
+ "version": "0.8.3",
5782
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
5783
+ "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
5784
+ "requires": {
5785
+ "glob": "^7.0.0",
5786
+ "interpret": "^1.0.0",
5787
+ "rechoir": "^0.6.2"
5788
+ }
5789
+ },
5790
+ "signal-exit": {
5791
+ "version": "3.0.2",
5792
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
5793
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
5794
+ },
5795
+ "slash": {
5796
+ "version": "1.0.0",
5797
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
5798
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
5799
+ },
5800
+ "slice-ansi": {
5801
+ "version": "1.0.0",
5802
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
5803
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
5804
+ "requires": {
5805
+ "is-fullwidth-code-point": "^2.0.0"
5806
+ }
5807
+ },
5808
+ "snapdragon": {
5809
+ "version": "0.8.2",
5810
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
5811
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
5812
+ "requires": {
5813
+ "base": "^0.11.1",
5814
+ "debug": "^2.2.0",
5815
+ "define-property": "^0.2.5",
5816
+ "extend-shallow": "^2.0.1",
5817
+ "map-cache": "^0.2.2",
5818
+ "source-map": "^0.5.6",
5819
+ "source-map-resolve": "^0.5.0",
5820
+ "use": "^3.1.0"
5821
+ },
5822
+ "dependencies": {
5823
+ "define-property": {
5824
+ "version": "0.2.5",
5825
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
5826
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
5827
+ "requires": {
5828
+ "is-descriptor": "^0.1.0"
5829
+ }
5830
+ },
5831
+ "extend-shallow": {
5832
+ "version": "2.0.1",
5833
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
5834
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
5835
+ "requires": {
5836
+ "is-extendable": "^0.1.0"
5837
+ }
5838
+ },
5839
+ "source-map": {
5840
+ "version": "0.5.7",
5841
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
5842
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
5843
+ }
5844
+ }
5845
+ },
5846
+ "snapdragon-node": {
5847
+ "version": "2.1.1",
5848
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
5849
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
5850
+ "requires": {
5851
+ "define-property": "^1.0.0",
5852
+ "isobject": "^3.0.0",
5853
+ "snapdragon-util": "^3.0.1"
5854
+ },
5855
+ "dependencies": {
5856
+ "define-property": {
5857
+ "version": "1.0.0",
5858
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
5859
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
5860
+ "requires": {
5861
+ "is-descriptor": "^1.0.0"
5862
+ }
5863
+ },
5864
+ "is-accessor-descriptor": {
5865
+ "version": "1.0.0",
5866
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
5867
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
5868
+ "requires": {
5869
+ "kind-of": "^6.0.0"
5870
+ }
5871
+ },
5872
+ "is-data-descriptor": {
5873
+ "version": "1.0.0",
5874
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
5875
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
5876
+ "requires": {
5877
+ "kind-of": "^6.0.0"
5878
+ }
5879
+ },
5880
+ "is-descriptor": {
5881
+ "version": "1.0.2",
5882
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
5883
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
5884
+ "requires": {
5885
+ "is-accessor-descriptor": "^1.0.0",
5886
+ "is-data-descriptor": "^1.0.0",
5887
+ "kind-of": "^6.0.2"
5888
+ }
5889
+ }
5890
+ }
5891
+ },
5892
+ "snapdragon-util": {
5893
+ "version": "3.0.1",
5894
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
5895
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
5896
+ "requires": {
5897
+ "kind-of": "^3.2.0"
5898
+ },
5899
+ "dependencies": {
5900
+ "kind-of": {
5901
+ "version": "3.2.2",
5902
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
5903
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
5904
+ "requires": {
5905
+ "is-buffer": "^1.1.5"
5906
+ }
5907
+ }
5908
+ }
5909
+ },
5910
+ "source-list-map": {
5911
+ "version": "2.0.1",
5912
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
5913
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
5914
+ },
5915
+ "source-map": {
5916
+ "version": "0.6.1",
5917
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
5918
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
5919
+ },
5920
+ "source-map-resolve": {
5921
+ "version": "0.5.2",
5922
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
5923
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
5924
+ "requires": {
5925
+ "atob": "^2.1.1",
5926
+ "decode-uri-component": "^0.2.0",
5927
+ "resolve-url": "^0.2.1",
5928
+ "source-map-url": "^0.4.0",
5929
+ "urix": "^0.1.0"
5930
+ }
5931
+ },
5932
+ "source-map-support": {
5933
+ "version": "0.4.18",
5934
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
5935
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
5936
+ "requires": {
5937
+ "source-map": "^0.5.6"
5938
+ },
5939
+ "dependencies": {
5940
+ "source-map": {
5941
+ "version": "0.5.7",
5942
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
5943
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
5944
+ }
5945
+ }
5946
+ },
5947
+ "source-map-url": {
5948
+ "version": "0.4.0",
5949
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
5950
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
5951
+ },
5952
+ "spdx-correct": {
5953
+ "version": "3.1.0",
5954
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
5955
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
5956
+ "requires": {
5957
+ "spdx-expression-parse": "^3.0.0",
5958
+ "spdx-license-ids": "^3.0.0"
5959
+ }
5960
+ },
5961
+ "spdx-exceptions": {
5962
+ "version": "2.2.0",
5963
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
5964
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
5965
+ },
5966
+ "spdx-expression-parse": {
5967
+ "version": "3.0.0",
5968
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
5969
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
5970
+ "requires": {
5971
+ "spdx-exceptions": "^2.1.0",
5972
+ "spdx-license-ids": "^3.0.0"
5973
+ }
5974
+ },
5975
+ "spdx-license-ids": {
5976
+ "version": "3.0.5",
5977
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
5978
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
5979
+ },
5980
+ "split-string": {
5981
+ "version": "3.1.0",
5982
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
5983
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
5984
+ "requires": {
5985
+ "extend-shallow": "^3.0.0"
5986
+ }
5987
+ },
5988
+ "sprintf-js": {
5989
+ "version": "1.0.3",
5990
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
5991
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
5992
+ },
5993
+ "sshpk": {
5994
+ "version": "1.16.1",
5995
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
5996
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
5997
+ "requires": {
5998
+ "asn1": "~0.2.3",
5999
+ "assert-plus": "^1.0.0",
6000
+ "bcrypt-pbkdf": "^1.0.0",
6001
+ "dashdash": "^1.12.0",
6002
+ "ecc-jsbn": "~0.1.1",
6003
+ "getpass": "^0.1.1",
6004
+ "jsbn": "~0.1.0",
6005
+ "safer-buffer": "^2.0.2",
6006
+ "tweetnacl": "~0.14.0"
6007
+ }
6008
+ },
6009
+ "static-extend": {
6010
+ "version": "0.1.2",
6011
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
6012
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
6013
+ "requires": {
6014
+ "define-property": "^0.2.5",
6015
+ "object-copy": "^0.1.0"
6016
+ },
6017
+ "dependencies": {
6018
+ "define-property": {
6019
+ "version": "0.2.5",
6020
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
6021
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
6022
+ "requires": {
6023
+ "is-descriptor": "^0.1.0"
6024
+ }
6025
+ }
6026
+ }
6027
+ },
6028
+ "stdout-stream": {
6029
+ "version": "1.4.1",
6030
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
6031
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
6032
+ "requires": {
6033
+ "readable-stream": "^2.0.1"
6034
+ }
6035
+ },
6036
+ "stream-browserify": {
6037
+ "version": "2.0.2",
6038
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
6039
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
6040
+ "requires": {
6041
+ "inherits": "~2.0.1",
6042
+ "readable-stream": "^2.0.2"
6043
+ }
6044
+ },
6045
+ "stream-http": {
6046
+ "version": "2.8.3",
6047
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
6048
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
6049
+ "requires": {
6050
+ "builtin-status-codes": "^3.0.0",
6051
+ "inherits": "^2.0.1",
6052
+ "readable-stream": "^2.3.6",
6053
+ "to-arraybuffer": "^1.0.0",
6054
+ "xtend": "^4.0.0"
6055
+ }
6056
+ },
6057
+ "string-width": {
6058
+ "version": "2.1.1",
6059
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
6060
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
6061
+ "requires": {
6062
+ "is-fullwidth-code-point": "^2.0.0",
6063
+ "strip-ansi": "^4.0.0"
6064
+ },
6065
+ "dependencies": {
6066
+ "ansi-regex": {
6067
+ "version": "3.0.0",
6068
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
6069
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
6070
+ },
6071
+ "strip-ansi": {
6072
+ "version": "4.0.0",
6073
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
6074
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
6075
+ "requires": {
6076
+ "ansi-regex": "^3.0.0"
6077
+ }
6078
+ }
6079
+ }
6080
+ },
6081
+ "string_decoder": {
6082
+ "version": "1.1.1",
6083
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
6084
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
6085
+ "requires": {
6086
+ "safe-buffer": "~5.1.0"
6087
+ }
6088
+ },
6089
+ "strip-ansi": {
6090
+ "version": "3.0.1",
6091
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
6092
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
6093
+ "requires": {
6094
+ "ansi-regex": "^2.0.0"
6095
+ }
6096
+ },
6097
+ "strip-bom": {
6098
+ "version": "2.0.0",
6099
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
6100
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
6101
+ "requires": {
6102
+ "is-utf8": "^0.2.0"
6103
+ }
6104
+ },
6105
+ "strip-eof": {
6106
+ "version": "1.0.0",
6107
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
6108
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
6109
+ },
6110
+ "strip-indent": {
6111
+ "version": "1.0.1",
6112
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
6113
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
6114
+ "requires": {
6115
+ "get-stdin": "^4.0.1"
6116
+ }
6117
+ },
6118
+ "strip-json-comments": {
6119
+ "version": "2.0.1",
6120
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
6121
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
6122
+ },
6123
+ "style-loader": {
6124
+ "version": "0.23.1",
6125
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
6126
+ "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
6127
+ "requires": {
6128
+ "loader-utils": "^1.1.0",
6129
+ "schema-utils": "^1.0.0"
6130
+ },
6131
+ "dependencies": {
6132
+ "ajv": {
6133
+ "version": "6.10.2",
6134
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
6135
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
6136
+ "requires": {
6137
+ "fast-deep-equal": "^2.0.1",
6138
+ "fast-json-stable-stringify": "^2.0.0",
6139
+ "json-schema-traverse": "^0.4.1",
6140
+ "uri-js": "^4.2.2"
6141
+ }
6142
+ },
6143
+ "ajv-keywords": {
6144
+ "version": "3.4.1",
6145
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
6146
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
6147
+ },
6148
+ "fast-deep-equal": {
6149
+ "version": "2.0.1",
6150
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
6151
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
6152
+ },
6153
+ "json-schema-traverse": {
6154
+ "version": "0.4.1",
6155
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
6156
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
6157
+ },
6158
+ "schema-utils": {
6159
+ "version": "1.0.0",
6160
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
6161
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
6162
+ "requires": {
6163
+ "ajv": "^6.1.0",
6164
+ "ajv-errors": "^1.0.0",
6165
+ "ajv-keywords": "^3.1.0"
6166
+ }
6167
+ }
6168
+ }
6169
+ },
6170
+ "supports-color": {
6171
+ "version": "5.5.0",
6172
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
6173
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
6174
+ "requires": {
6175
+ "has-flag": "^3.0.0"
6176
+ }
6177
+ },
6178
+ "symbol-observable": {
6179
+ "version": "1.0.1",
6180
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
6181
+ "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
6182
+ },
6183
+ "table": {
6184
+ "version": "4.0.2",
6185
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
6186
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
6187
+ "requires": {
6188
+ "ajv": "^5.2.3",
6189
+ "ajv-keywords": "^2.1.0",
6190
+ "chalk": "^2.1.0",
6191
+ "lodash": "^4.17.4",
6192
+ "slice-ansi": "1.0.0",
6193
+ "string-width": "^2.1.1"
6194
+ }
6195
+ },
6196
+ "tapable": {
6197
+ "version": "0.2.9",
6198
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
6199
+ "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A=="
6200
+ },
6201
+ "tar": {
6202
+ "version": "2.2.2",
6203
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
6204
+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
6205
+ "requires": {
6206
+ "block-stream": "*",
6207
+ "fstream": "^1.0.12",
6208
+ "inherits": "2"
6209
+ }
6210
+ },
6211
+ "term-size": {
6212
+ "version": "1.2.0",
6213
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
6214
+ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
6215
+ "requires": {
6216
+ "execa": "^0.7.0"
6217
+ }
6218
+ },
6219
+ "text-table": {
6220
+ "version": "0.2.0",
6221
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
6222
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
6223
+ },
6224
+ "through": {
6225
+ "version": "2.3.8",
6226
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
6227
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
6228
+ },
6229
+ "timed-out": {
6230
+ "version": "4.0.1",
6231
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
6232
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
6233
+ },
6234
+ "timers-browserify": {
6235
+ "version": "2.0.10",
6236
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
6237
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
6238
+ "requires": {
6239
+ "setimmediate": "^1.0.4"
6240
+ }
6241
+ },
6242
+ "tmp": {
6243
+ "version": "0.0.33",
6244
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
6245
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
6246
+ "requires": {
6247
+ "os-tmpdir": "~1.0.2"
6248
+ }
6249
+ },
6250
+ "to-arraybuffer": {
6251
+ "version": "1.0.1",
6252
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
6253
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
6254
+ },
6255
+ "to-fast-properties": {
6256
+ "version": "1.0.3",
6257
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
6258
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
6259
+ },
6260
+ "to-object-path": {
6261
+ "version": "0.3.0",
6262
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
6263
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
6264
+ "requires": {
6265
+ "kind-of": "^3.0.2"
6266
+ },
6267
+ "dependencies": {
6268
+ "kind-of": {
6269
+ "version": "3.2.2",
6270
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
6271
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
6272
+ "requires": {
6273
+ "is-buffer": "^1.1.5"
6274
+ }
6275
+ }
6276
+ }
6277
+ },
6278
+ "to-regex": {
6279
+ "version": "3.0.2",
6280
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
6281
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
6282
+ "requires": {
6283
+ "define-property": "^2.0.2",
6284
+ "extend-shallow": "^3.0.2",
6285
+ "regex-not": "^1.0.2",
6286
+ "safe-regex": "^1.1.0"
6287
+ }
6288
+ },
6289
+ "to-regex-range": {
6290
+ "version": "2.1.1",
6291
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
6292
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
6293
+ "requires": {
6294
+ "is-number": "^3.0.0",
6295
+ "repeat-string": "^1.6.1"
6296
+ }
6297
+ },
6298
+ "tough-cookie": {
6299
+ "version": "2.4.3",
6300
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
6301
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
6302
+ "requires": {
6303
+ "psl": "^1.1.24",
6304
+ "punycode": "^1.4.1"
6305
+ },
6306
+ "dependencies": {
6307
+ "punycode": {
6308
+ "version": "1.4.1",
6309
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
6310
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
6311
+ }
6312
+ }
6313
+ },
6314
+ "trim-newlines": {
6315
+ "version": "1.0.0",
6316
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
6317
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
6318
+ },
6319
+ "trim-right": {
6320
+ "version": "1.0.1",
6321
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
6322
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
6323
+ },
6324
+ "true-case-path": {
6325
+ "version": "1.0.3",
6326
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
6327
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
6328
+ "requires": {
6329
+ "glob": "^7.1.2"
6330
+ }
6331
+ },
6332
+ "tty-browserify": {
6333
+ "version": "0.0.0",
6334
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
6335
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
6336
+ },
6337
+ "tunnel-agent": {
6338
+ "version": "0.6.0",
6339
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
6340
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
6341
+ "requires": {
6342
+ "safe-buffer": "^5.0.1"
6343
+ }
6344
+ },
6345
+ "tweetnacl": {
6346
+ "version": "0.14.5",
6347
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
6348
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
6349
+ },
6350
+ "type": {
6351
+ "version": "1.0.1",
6352
+ "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
6353
+ "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
6354
+ },
6355
+ "type-check": {
6356
+ "version": "0.3.2",
6357
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
6358
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
6359
+ "requires": {
6360
+ "prelude-ls": "~1.1.2"
6361
+ }
6362
+ },
6363
+ "typedarray": {
6364
+ "version": "0.0.6",
6365
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
6366
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
6367
+ },
6368
+ "uglify-js": {
6369
+ "version": "2.8.29",
6370
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
6371
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
6372
+ "requires": {
6373
+ "source-map": "~0.5.1",
6374
+ "uglify-to-browserify": "~1.0.0",
6375
+ "yargs": "~3.10.0"
6376
+ },
6377
+ "dependencies": {
6378
+ "camelcase": {
6379
+ "version": "1.2.1",
6380
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
6381
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
6382
+ },
6383
+ "cliui": {
6384
+ "version": "2.1.0",
6385
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
6386
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
6387
+ "requires": {
6388
+ "center-align": "^0.1.1",
6389
+ "right-align": "^0.1.1",
6390
+ "wordwrap": "0.0.2"
6391
+ }
6392
+ },
6393
+ "source-map": {
6394
+ "version": "0.5.7",
6395
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6396
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
6397
+ },
6398
+ "wordwrap": {
6399
+ "version": "0.0.2",
6400
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
6401
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
6402
+ },
6403
+ "yargs": {
6404
+ "version": "3.10.0",
6405
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
6406
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
6407
+ "requires": {
6408
+ "camelcase": "^1.0.2",
6409
+ "cliui": "^2.1.0",
6410
+ "decamelize": "^1.0.0",
6411
+ "window-size": "0.1.0"
6412
+ }
6413
+ }
6414
+ }
6415
+ },
6416
+ "uglify-to-browserify": {
6417
+ "version": "1.0.2",
6418
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
6419
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
6420
+ "optional": true
6421
+ },
6422
+ "uglifyjs-webpack-plugin": {
6423
+ "version": "0.4.6",
6424
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
6425
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
6426
+ "requires": {
6427
+ "source-map": "^0.5.6",
6428
+ "uglify-js": "^2.8.29",
6429
+ "webpack-sources": "^1.0.1"
6430
+ },
6431
+ "dependencies": {
6432
+ "source-map": {
6433
+ "version": "0.5.7",
6434
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6435
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
6436
+ }
6437
+ }
6438
+ },
6439
+ "union-value": {
6440
+ "version": "1.0.1",
6441
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
6442
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
6443
+ "requires": {
6444
+ "arr-union": "^3.1.0",
6445
+ "get-value": "^2.0.6",
6446
+ "is-extendable": "^0.1.1",
6447
+ "set-value": "^2.0.1"
6448
+ }
6449
+ },
6450
+ "unique-string": {
6451
+ "version": "1.0.0",
6452
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
6453
+ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
6454
+ "requires": {
6455
+ "crypto-random-string": "^1.0.0"
6456
+ }
6457
+ },
6458
+ "universalify": {
6459
+ "version": "0.1.2",
6460
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
6461
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
6462
+ },
6463
+ "unset-value": {
6464
+ "version": "1.0.0",
6465
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
6466
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
6467
+ "requires": {
6468
+ "has-value": "^0.3.1",
6469
+ "isobject": "^3.0.0"
6470
+ },
6471
+ "dependencies": {
6472
+ "has-value": {
6473
+ "version": "0.3.1",
6474
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
6475
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
6476
+ "requires": {
6477
+ "get-value": "^2.0.3",
6478
+ "has-values": "^0.1.4",
6479
+ "isobject": "^2.0.0"
6480
+ },
6481
+ "dependencies": {
6482
+ "isobject": {
6483
+ "version": "2.1.0",
6484
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
6485
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
6486
+ "requires": {
6487
+ "isarray": "1.0.0"
6488
+ }
6489
+ }
6490
+ }
6491
+ },
6492
+ "has-values": {
6493
+ "version": "0.1.4",
6494
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
6495
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
6496
+ }
6497
+ }
6498
+ },
6499
+ "unzip-response": {
6500
+ "version": "2.0.1",
6501
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
6502
+ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
6503
+ },
6504
+ "upath": {
6505
+ "version": "1.1.2",
6506
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
6507
+ "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q=="
6508
+ },
6509
+ "update-notifier": {
6510
+ "version": "2.5.0",
6511
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
6512
+ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
6513
+ "requires": {
6514
+ "boxen": "^1.2.1",
6515
+ "chalk": "^2.0.1",
6516
+ "configstore": "^3.0.0",
6517
+ "import-lazy": "^2.1.0",
6518
+ "is-ci": "^1.0.10",
6519
+ "is-installed-globally": "^0.1.0",
6520
+ "is-npm": "^1.0.0",
6521
+ "latest-version": "^3.0.0",
6522
+ "semver-diff": "^2.0.0",
6523
+ "xdg-basedir": "^3.0.0"
6524
+ }
6525
+ },
6526
+ "uri-js": {
6527
+ "version": "4.2.2",
6528
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
6529
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
6530
+ "requires": {
6531
+ "punycode": "^2.1.0"
6532
+ }
6533
+ },
6534
+ "urix": {
6535
+ "version": "0.1.0",
6536
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
6537
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
6538
+ },
6539
+ "url": {
6540
+ "version": "0.11.0",
6541
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
6542
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
6543
+ "requires": {
6544
+ "punycode": "1.3.2",
6545
+ "querystring": "0.2.0"
6546
+ },
6547
+ "dependencies": {
6548
+ "punycode": {
6549
+ "version": "1.3.2",
6550
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
6551
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
6552
+ }
6553
+ }
6554
+ },
6555
+ "url-parse-lax": {
6556
+ "version": "1.0.0",
6557
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
6558
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
6559
+ "requires": {
6560
+ "prepend-http": "^1.0.1"
6561
+ }
6562
+ },
6563
+ "use": {
6564
+ "version": "3.1.1",
6565
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
6566
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
6567
+ },
6568
+ "util": {
6569
+ "version": "0.11.1",
6570
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
6571
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
6572
+ "requires": {
6573
+ "inherits": "2.0.3"
6574
+ },
6575
+ "dependencies": {
6576
+ "inherits": {
6577
+ "version": "2.0.3",
6578
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
6579
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
6580
+ }
6581
+ }
6582
+ },
6583
+ "util-deprecate": {
6584
+ "version": "1.0.2",
6585
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
6586
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
6587
+ },
6588
+ "uuid": {
6589
+ "version": "3.3.2",
6590
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
6591
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
6592
+ },
6593
+ "validate-npm-package-license": {
6594
+ "version": "3.0.4",
6595
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
6596
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
6597
+ "requires": {
6598
+ "spdx-correct": "^3.0.0",
6599
+ "spdx-expression-parse": "^3.0.0"
6600
+ }
6601
+ },
6602
+ "verror": {
6603
+ "version": "1.10.0",
6604
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
6605
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
6606
+ "requires": {
6607
+ "assert-plus": "^1.0.0",
6608
+ "core-util-is": "1.0.2",
6609
+ "extsprintf": "^1.2.0"
6610
+ }
6611
+ },
6612
+ "vm-browserify": {
6613
+ "version": "1.1.0",
6614
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
6615
+ "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw=="
6616
+ },
6617
+ "watchpack": {
6618
+ "version": "1.6.0",
6619
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
6620
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
6621
+ "requires": {
6622
+ "chokidar": "^2.0.2",
6623
+ "graceful-fs": "^4.1.2",
6624
+ "neo-async": "^2.5.0"
6625
+ }
6626
+ },
6627
+ "webpack": {
6628
+ "version": "3.12.0",
6629
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
6630
+ "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
6631
+ "requires": {
6632
+ "acorn": "^5.0.0",
6633
+ "acorn-dynamic-import": "^2.0.0",
6634
+ "ajv": "^6.1.0",
6635
+ "ajv-keywords": "^3.1.0",
6636
+ "async": "^2.1.2",
6637
+ "enhanced-resolve": "^3.4.0",
6638
+ "escope": "^3.6.0",
6639
+ "interpret": "^1.0.0",
6640
+ "json-loader": "^0.5.4",
6641
+ "json5": "^0.5.1",
6642
+ "loader-runner": "^2.3.0",
6643
+ "loader-utils": "^1.1.0",
6644
+ "memory-fs": "~0.4.1",
6645
+ "mkdirp": "~0.5.0",
6646
+ "node-libs-browser": "^2.0.0",
6647
+ "source-map": "^0.5.3",
6648
+ "supports-color": "^4.2.1",
6649
+ "tapable": "^0.2.7",
6650
+ "uglifyjs-webpack-plugin": "^0.4.6",
6651
+ "watchpack": "^1.4.0",
6652
+ "webpack-sources": "^1.0.1",
6653
+ "yargs": "^8.0.2"
6654
+ },
6655
+ "dependencies": {
6656
+ "ajv": {
6657
+ "version": "6.10.2",
6658
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
6659
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
6660
+ "requires": {
6661
+ "fast-deep-equal": "^2.0.1",
6662
+ "fast-json-stable-stringify": "^2.0.0",
6663
+ "json-schema-traverse": "^0.4.1",
6664
+ "uri-js": "^4.2.2"
6665
+ }
6666
+ },
6667
+ "ajv-keywords": {
6668
+ "version": "3.4.1",
6669
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
6670
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
6671
+ },
6672
+ "fast-deep-equal": {
6673
+ "version": "2.0.1",
6674
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
6675
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
6676
+ },
6677
+ "has-flag": {
6678
+ "version": "2.0.0",
6679
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
6680
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
6681
+ },
6682
+ "json-schema-traverse": {
6683
+ "version": "0.4.1",
6684
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
6685
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
6686
+ },
6687
+ "load-json-file": {
6688
+ "version": "2.0.0",
6689
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
6690
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
6691
+ "requires": {
6692
+ "graceful-fs": "^4.1.2",
6693
+ "parse-json": "^2.2.0",
6694
+ "pify": "^2.0.0",
6695
+ "strip-bom": "^3.0.0"
6696
+ }
6697
+ },
6698
+ "os-locale": {
6699
+ "version": "2.1.0",
6700
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
6701
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
6702
+ "requires": {
6703
+ "execa": "^0.7.0",
6704
+ "lcid": "^1.0.0",
6705
+ "mem": "^1.1.0"
6706
+ }
6707
+ },
6708
+ "path-type": {
6709
+ "version": "2.0.0",
6710
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
6711
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
6712
+ "requires": {
6713
+ "pify": "^2.0.0"
6714
+ }
6715
+ },
6716
+ "pify": {
6717
+ "version": "2.3.0",
6718
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
6719
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
6720
+ },
6721
+ "read-pkg": {
6722
+ "version": "2.0.0",
6723
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
6724
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
6725
+ "requires": {
6726
+ "load-json-file": "^2.0.0",
6727
+ "normalize-package-data": "^2.3.2",
6728
+ "path-type": "^2.0.0"
6729
+ }
6730
+ },
6731
+ "read-pkg-up": {
6732
+ "version": "2.0.0",
6733
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
6734
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
6735
+ "requires": {
6736
+ "find-up": "^2.0.0",
6737
+ "read-pkg": "^2.0.0"
6738
+ }
6739
+ },
6740
+ "source-map": {
6741
+ "version": "0.5.7",
6742
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6743
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
6744
+ },
6745
+ "strip-bom": {
6746
+ "version": "3.0.0",
6747
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
6748
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
6749
+ },
6750
+ "supports-color": {
6751
+ "version": "4.5.0",
6752
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
6753
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
6754
+ "requires": {
6755
+ "has-flag": "^2.0.0"
6756
+ }
6757
+ },
6758
+ "which-module": {
6759
+ "version": "2.0.0",
6760
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
6761
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
6762
+ },
6763
+ "yargs": {
6764
+ "version": "8.0.2",
6765
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
6766
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
6767
+ "requires": {
6768
+ "camelcase": "^4.1.0",
6769
+ "cliui": "^3.2.0",
6770
+ "decamelize": "^1.1.1",
6771
+ "get-caller-file": "^1.0.1",
6772
+ "os-locale": "^2.0.0",
6773
+ "read-pkg-up": "^2.0.0",
6774
+ "require-directory": "^2.1.1",
6775
+ "require-main-filename": "^1.0.1",
6776
+ "set-blocking": "^2.0.0",
6777
+ "string-width": "^2.0.0",
6778
+ "which-module": "^2.0.0",
6779
+ "y18n": "^3.2.1",
6780
+ "yargs-parser": "^7.0.0"
6781
+ }
6782
+ },
6783
+ "yargs-parser": {
6784
+ "version": "7.0.0",
6785
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
6786
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
6787
+ "requires": {
6788
+ "camelcase": "^4.1.0"
6789
+ }
6790
+ }
6791
+ }
6792
+ },
6793
+ "webpack-sources": {
6794
+ "version": "1.3.0",
6795
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
6796
+ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
6797
+ "requires": {
6798
+ "source-list-map": "^2.0.0",
6799
+ "source-map": "~0.6.1"
6800
+ }
6801
+ },
6802
+ "which": {
6803
+ "version": "1.3.1",
6804
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
6805
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
6806
+ "requires": {
6807
+ "isexe": "^2.0.0"
6808
+ }
6809
+ },
6810
+ "which-module": {
6811
+ "version": "1.0.0",
6812
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
6813
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
6814
+ },
6815
+ "wide-align": {
6816
+ "version": "1.1.3",
6817
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
6818
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
6819
+ "requires": {
6820
+ "string-width": "^1.0.2 || 2"
6821
+ }
6822
+ },
6823
+ "widest-line": {
6824
+ "version": "2.0.1",
6825
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
6826
+ "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
6827
+ "requires": {
6828
+ "string-width": "^2.1.1"
6829
+ }
6830
+ },
6831
+ "window-size": {
6832
+ "version": "0.1.0",
6833
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
6834
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
6835
+ },
6836
+ "wordwrap": {
6837
+ "version": "1.0.0",
6838
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
6839
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
6840
+ },
6841
+ "wrap-ansi": {
6842
+ "version": "2.1.0",
6843
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
6844
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
6845
+ "requires": {
6846
+ "string-width": "^1.0.1",
6847
+ "strip-ansi": "^3.0.1"
6848
+ },
6849
+ "dependencies": {
6850
+ "is-fullwidth-code-point": {
6851
+ "version": "1.0.0",
6852
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
6853
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
6854
+ "requires": {
6855
+ "number-is-nan": "^1.0.0"
6856
+ }
6857
+ },
6858
+ "string-width": {
6859
+ "version": "1.0.2",
6860
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
6861
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
6862
+ "requires": {
6863
+ "code-point-at": "^1.0.0",
6864
+ "is-fullwidth-code-point": "^1.0.0",
6865
+ "strip-ansi": "^3.0.0"
6866
+ }
6867
+ }
6868
+ }
6869
+ },
6870
+ "wrappy": {
6871
+ "version": "1.0.2",
6872
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
6873
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
6874
+ },
6875
+ "write": {
6876
+ "version": "0.2.1",
6877
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
6878
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
6879
+ "requires": {
6880
+ "mkdirp": "^0.5.1"
6881
+ }
6882
+ },
6883
+ "write-file-atomic": {
6884
+ "version": "2.4.3",
6885
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
6886
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
6887
+ "requires": {
6888
+ "graceful-fs": "^4.1.11",
6889
+ "imurmurhash": "^0.1.4",
6890
+ "signal-exit": "^3.0.2"
6891
+ }
6892
+ },
6893
+ "xdg-basedir": {
6894
+ "version": "3.0.0",
6895
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
6896
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
6897
+ },
6898
+ "xtend": {
6899
+ "version": "4.0.2",
6900
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
6901
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
6902
+ },
6903
+ "y18n": {
6904
+ "version": "3.2.1",
6905
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
6906
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
6907
+ },
6908
+ "yallist": {
6909
+ "version": "2.1.2",
6910
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
6911
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
6912
+ },
6913
+ "yargs": {
6914
+ "version": "7.1.0",
6915
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
6916
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
6917
+ "requires": {
6918
+ "camelcase": "^3.0.0",
6919
+ "cliui": "^3.2.0",
6920
+ "decamelize": "^1.1.1",
6921
+ "get-caller-file": "^1.0.1",
6922
+ "os-locale": "^1.4.0",
6923
+ "read-pkg-up": "^1.0.1",
6924
+ "require-directory": "^2.1.1",
6925
+ "require-main-filename": "^1.0.1",
6926
+ "set-blocking": "^2.0.0",
6927
+ "string-width": "^1.0.2",
6928
+ "which-module": "^1.0.0",
6929
+ "y18n": "^3.2.1",
6930
+ "yargs-parser": "^5.0.0"
6931
+ },
6932
+ "dependencies": {
6933
+ "camelcase": {
6934
+ "version": "3.0.0",
6935
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
6936
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
6937
+ },
6938
+ "is-fullwidth-code-point": {
6939
+ "version": "1.0.0",
6940
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
6941
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
6942
+ "requires": {
6943
+ "number-is-nan": "^1.0.0"
6944
+ }
6945
+ },
6946
+ "string-width": {
6947
+ "version": "1.0.2",
6948
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
6949
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
6950
+ "requires": {
6951
+ "code-point-at": "^1.0.0",
6952
+ "is-fullwidth-code-point": "^1.0.0",
6953
+ "strip-ansi": "^3.0.0"
6954
+ }
6955
+ }
6956
+ }
6957
+ },
6958
+ "yargs-parser": {
6959
+ "version": "5.0.0",
6960
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
6961
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
6962
+ "requires": {
6963
+ "camelcase": "^3.0.0"
6964
+ },
6965
+ "dependencies": {
6966
+ "camelcase": {
6967
+ "version": "3.0.0",
6968
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
6969
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
6970
+ }
6971
+ }
6972
+ }
6973
+ }
6974
+ }
trunk/blocks/package.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-block-cgb-guten-block",
3
+ "version": "1.13.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "start": "cgb-scripts start",
7
+ "build": "cgb-scripts build",
8
+ "eject": "cgb-scripts eject"
9
+ },
10
+ "dependencies": {
11
+ "cgb-scripts": "^1.18.1",
12
+ "classnames": "^2.2.6"
13
+ }
14
+ }
trunk/blocks/src/blocks.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Gutenberg Blocks
3
+ *
4
+ * All blocks should be included here since this is the file that
5
+ * Webpack is compiling as the input file.
6
+ */
7
+
8
+ import './google-fonts/index.js';
trunk/blocks/src/common.scss ADDED
File without changes
trunk/blocks/src/google-fonts/edit.js ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import fontsJson from './fonts.json';
5
+ const { __ } = wp.i18n;
6
+ const { Component, Fragment } = wp.element;
7
+ const { SelectControl, RangeControl, PanelBody } = wp.components;
8
+ const { RichText, InspectorControls, BlockControls, AlignmentToolbar, PanelColorSettings } = wp.editor;
9
+
10
+ class GoogleFontsBlock extends Component {
11
+
12
+ componentDidUpdate( prevProps ) {
13
+ if ( this.props.attributes.fontID !== prevProps.attributes.fontID ) {
14
+ this.props.attributes.variant = 'regular';
15
+ }
16
+ }
17
+
18
+ /**
19
+ * Get font families for use in <select>.
20
+ *
21
+ * @returns {Object} value/label pair.
22
+ */
23
+ getFontsForSelect() {
24
+ return fontsJson.items.map( ( font ) => {
25
+ const label = font.family;
26
+ const value = label.replace( /\s+/g, '+' );
27
+
28
+ return {
29
+ value: value,
30
+ label: label,
31
+ };
32
+ } );
33
+ }
34
+
35
+ /**
36
+ * Check if a font weight is italic.
37
+ *
38
+ * @param {string} value A font weight.
39
+ * @returns {boolean} false is value is italic.
40
+ */
41
+ isItalic( value ) {
42
+ if ( value.includes( '0i' ) || value === 'italic' ) {
43
+ return false;
44
+ }
45
+ return true;
46
+ }
47
+
48
+ /**
49
+ * Get font variants for use in <select>.
50
+ *
51
+ * @param {Object} fontObject The font object.
52
+ * @returns {Object} value/label pair.
53
+ */
54
+ getVariantsForSelect( fontObject ) {
55
+ if ( ! fontObject ) {
56
+ return;
57
+ }
58
+
59
+ return fontObject.variants.filter( this.isItalic ).map( ( v ) => {
60
+ return {
61
+ value: v,
62
+ label: v,
63
+ };
64
+ } );
65
+ }
66
+
67
+ /**
68
+ * All the font weights as options to be used in a <select> element
69
+ *
70
+ * @param {string} fontFamily font-family name.
71
+ * @returns {Object} The font object.
72
+ */
73
+ getFontObject( fontFamily ) {
74
+ if ( ! fontFamily ) {
75
+ return;
76
+ }
77
+
78
+ // iterate over each element in the array
79
+ for ( let i = 0; i < fontsJson.items.length; i++ ) {
80
+ // look for the entry with a matching `code` value
81
+ if ( fontsJson.items[ i ].family === fontFamily ) {
82
+ return fontsJson.items[ i ];
83
+ }
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Add Google Font link to head in block editor.
89
+ *
90
+ * @param {string} fontFamily font-family name.
91
+ * @param {Object} fontObject The font object.
92
+ */
93
+ addGoogleFontToHead( fontFamily, fontObject ) {
94
+ if ( ! fontFamily || ! fontObject ) {
95
+ return;
96
+ }
97
+
98
+ const head = document.head;
99
+ const link = document.createElement( 'link' );
100
+
101
+ link.type = 'text/css';
102
+ link.rel = 'stylesheet';
103
+ link.href = 'https://fonts.googleapis.com/css?family=' + fontFamily.replace( /\s+/g, '+' ) + ':' + fontObject.variants.join( ',' );
104
+
105
+ head.appendChild( link );
106
+ }
107
+
108
+ render() {
109
+ const { attributes, setAttributes } = this.props;
110
+ const { fontID, content, align, variant, fontSize, lineHeight, color, blockType } = attributes;
111
+
112
+ const fontOptions = this.getFontsForSelect();
113
+ fontOptions.unshift( { label: '- Select Font -', value: '' } );
114
+
115
+ const fontObject = this.getFontObject( fontID.replace( /\+/g, ' ' ) );
116
+ const variantOptions = this.getVariantsForSelect( fontObject );
117
+ this.addGoogleFontToHead( fontID, fontObject );
118
+ const controls = (
119
+ <InspectorControls>
120
+ <PanelBody title={ __( 'Font Settings', 'olympus-google-fonts' ) }>
121
+ <SelectControl
122
+ label={ __( 'Block Type', 'olympus-google-fonts' ) }
123
+ type="string"
124
+ value={ blockType }
125
+ options={ [
126
+ { label: 'Paragraph', value: 'p' },
127
+ { label: 'H1', value: 'h1' },
128
+ { label: 'H2', value: 'h2' },
129
+ { label: 'H3', value: 'h3' },
130
+ { label: 'H4', value: 'h4' },
131
+ { label: 'H5', value: 'h5' },
132
+ { label: 'H6', value: 'h6' },
133
+ { label: 'Span', value: 'span' },
134
+ ] }
135
+ onChange={ ( value ) => setAttributes( { blockType: value } ) }
136
+ />
137
+ <SelectControl
138
+ label={ __( 'Font', 'olympus-google-fonts' ) }
139
+ type="string"
140
+ value={ fontID }
141
+ options={ fontOptions }
142
+ onChange={ ( value ) => setAttributes( { fontID: value } ) }
143
+ />
144
+ <SelectControl
145
+ label={ __( 'Font Variant', 'olympus-google-fonts' ) }
146
+ type="string"
147
+ value={ variant }
148
+ options={ variantOptions }
149
+ onChange={ ( value ) => setAttributes( { variant: value } ) }
150
+ />
151
+ <RangeControl
152
+ label={ __( 'Font Size', 'olympus-google-fonts' ) }
153
+ value={ fontSize }
154
+ onChange={ ( value ) => setAttributes( { fontSize: value } ) }
155
+ allowReset={ true }
156
+ min="10"
157
+ max="50"
158
+ />
159
+ <RangeControl
160
+ label={ __( 'Line Height', 'olympus-google-fonts' ) }
161
+ value={ lineHeight }
162
+ onChange={ ( value ) => setAttributes( { lineHeight: value } ) }
163
+ allowReset={ true }
164
+ min="1"
165
+ max="3"
166
+ step="0.1"
167
+ />
168
+ <PanelColorSettings
169
+ title={ __( 'Color Settings', 'olympus-google-fonts' ) }
170
+ colorSettings={ [
171
+ {
172
+ value: attributes.color,
173
+ onChange: ( value ) => setAttributes( { color: value } ),
174
+ label: __( 'Text Color', 'olympus-google-fonts' ),
175
+ },
176
+ ] }
177
+ >
178
+ </PanelColorSettings>
179
+ </PanelBody>
180
+ </InspectorControls>
181
+ );
182
+
183
+ return (
184
+ <Fragment>
185
+ { controls }
186
+ <BlockControls>
187
+ <AlignmentToolbar
188
+ value={ align }
189
+ onChange={ ( value ) => setAttributes( { align: value } ) }
190
+ />
191
+ </BlockControls>
192
+ <RichText
193
+ tagName={ blockType || 'p' }
194
+ value={ content }
195
+ onChange={ ( value ) => setAttributes( { content: value } ) }
196
+ style={ {
197
+ fontSize: fontSize ? fontSize + 'px' : undefined,
198
+ textAlign: align,
199
+ fontFamily: fontID.replace( /\+/g, ' ' ),
200
+ fontWeight: variant,
201
+ lineHeight: lineHeight,
202
+ color: color
203
+ } }
204
+ placeholder={ __( 'Add some content...', 'olympus-google-fonts' ) }
205
+ formattingControls={ [ 'italic', 'link' ] }
206
+ />
207
+ </Fragment>
208
+ );
209
+ }
210
+
211
+ }
212
+
213
+ export default GoogleFontsBlock;
trunk/blocks/src/google-fonts/fonts.json ADDED
@@ -0,0 +1,11524 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "webfonts#webfontList",
3
+ "items": [
4
+ {
5
+ "family": "ABeeZee",
6
+ "variants": [
7
+ "regular",
8
+ "italic"
9
+ ],
10
+ "subsets": [
11
+ "latin"
12
+ ]
13
+ },
14
+ {
15
+ "family": "Abel",
16
+ "variants": [
17
+ "regular"
18
+ ],
19
+ "subsets": [
20
+ "latin"
21
+ ]
22
+ },
23
+ {
24
+ "family": "Abhaya Libre",
25
+ "variants": [
26
+ "regular",
27
+ "500",
28
+ "600",
29
+ "700",
30
+ "800"
31
+ ],
32
+ "subsets": [
33
+ "sinhala",
34
+ "latin",
35
+ "latin-ext"
36
+ ]
37
+ },
38
+ {
39
+ "family": "Abril Fatface",
40
+ "variants": [
41
+ "regular"
42
+ ],
43
+ "subsets": [
44
+ "latin",
45
+ "latin-ext"
46
+ ]
47
+ },
48
+ {
49
+ "family": "Aclonica",
50
+ "variants": [
51
+ "regular"
52
+ ],
53
+ "subsets": [
54
+ "latin"
55
+ ]
56
+ },
57
+ {
58
+ "family": "Acme",
59
+ "variants": [
60
+ "regular"
61
+ ],
62
+ "subsets": [
63
+ "latin"
64
+ ]
65
+ },
66
+ {
67
+ "family": "Actor",
68
+ "variants": [
69
+ "regular"
70
+ ],
71
+ "subsets": [
72
+ "latin"
73
+ ]
74
+ },
75
+ {
76
+ "family": "Adamina",
77
+ "variants": [
78
+ "regular"
79
+ ],
80
+ "subsets": [
81
+ "latin"
82
+ ]
83
+ },
84
+ {
85
+ "family": "Advent Pro",
86
+ "variants": [
87
+ "100",
88
+ "200",
89
+ "300",
90
+ "regular",
91
+ "500",
92
+ "600",
93
+ "700"
94
+ ],
95
+ "subsets": [
96
+ "greek",
97
+ "latin",
98
+ "latin-ext"
99
+ ]
100
+ },
101
+ {
102
+ "family": "Aguafina Script",
103
+ "variants": [
104
+ "regular"
105
+ ],
106
+ "subsets": [
107
+ "latin",
108
+ "latin-ext"
109
+ ]
110
+ },
111
+ {
112
+ "family": "Akronim",
113
+ "variants": [
114
+ "regular"
115
+ ],
116
+ "subsets": [
117
+ "latin",
118
+ "latin-ext"
119
+ ]
120
+ },
121
+ {
122
+ "family": "Aladin",
123
+ "variants": [
124
+ "regular"
125
+ ],
126
+ "subsets": [
127
+ "latin",
128
+ "latin-ext"
129
+ ]
130
+ },
131
+ {
132
+ "family": "Aldrich",
133
+ "variants": [
134
+ "regular"
135
+ ],
136
+ "subsets": [
137
+ "latin"
138
+ ]
139
+ },
140
+ {
141
+ "family": "Alef",
142
+ "variants": [
143
+ "regular",
144
+ "700"
145
+ ],
146
+ "subsets": [
147
+ "hebrew",
148
+ "latin"
149
+ ]
150
+ },
151
+ {
152
+ "family": "Alegreya",
153
+ "variants": [
154
+ "regular",
155
+ "italic",
156
+ "500",
157
+ "500italic",
158
+ "700",
159
+ "700italic",
160
+ "800",
161
+ "800italic",
162
+ "900",
163
+ "900italic"
164
+ ],
165
+ "subsets": [
166
+ "cyrillic",
167
+ "vietnamese",
168
+ "cyrillic-ext",
169
+ "greek-ext",
170
+ "greek",
171
+ "latin",
172
+ "latin-ext"
173
+ ]
174
+ },
175
+ {
176
+ "family": "Alegreya SC",
177
+ "variants": [
178
+ "regular",
179
+ "italic",
180
+ "500",
181
+ "500italic",
182
+ "700",
183
+ "700italic",
184
+ "800",
185
+ "800italic",
186
+ "900",
187
+ "900italic"
188
+ ],
189
+ "subsets": [
190
+ "cyrillic",
191
+ "vietnamese",
192
+ "cyrillic-ext",
193
+ "greek-ext",
194
+ "greek",
195
+ "latin",
196
+ "latin-ext"
197
+ ]
198
+ },
199
+ {
200
+ "family": "Alegreya Sans",
201
+ "variants": [
202
+ "100",
203
+ "100italic",
204
+ "300",
205
+ "300italic",
206
+ "regular",
207
+ "italic",
208
+ "500",
209
+ "500italic",
210
+ "700",
211
+ "700italic",
212
+ "800",
213
+ "800italic",
214
+ "900",
215
+ "900italic"
216
+ ],
217
+ "subsets": [
218
+ "cyrillic",
219
+ "vietnamese",
220
+ "cyrillic-ext",
221
+ "greek-ext",
222
+ "greek",
223
+ "latin",
224
+ "latin-ext"
225
+ ]
226
+ },
227
+ {
228
+ "family": "Alegreya Sans SC",
229
+ "variants": [
230
+ "100",
231
+ "100italic",
232
+ "300",
233
+ "300italic",
234
+ "regular",
235
+ "italic",
236
+ "500",
237
+ "500italic",
238
+ "700",
239
+ "700italic",
240
+ "800",
241
+ "800italic",
242
+ "900",
243
+ "900italic"
244
+ ],
245
+ "subsets": [
246
+ "cyrillic",
247
+ "vietnamese",
248
+ "cyrillic-ext",
249
+ "greek-ext",
250
+ "greek",
251
+ "latin",
252
+ "latin-ext"
253
+ ]
254
+ },
255
+ {
256
+ "family": "Aleo",
257
+ "variants": [
258
+ "300",
259
+ "300italic",
260
+ "regular",
261
+ "italic",
262
+ "700",
263
+ "700italic"
264
+ ],
265
+ "subsets": [
266
+ "latin",
267
+ "latin-ext"
268
+ ]
269
+ },
270
+ {
271
+ "family": "Alex Brush",
272
+ "variants": [
273
+ "regular"
274
+ ],
275
+ "subsets": [
276
+ "latin",
277
+ "latin-ext"
278
+ ]
279
+ },
280
+ {
281
+ "family": "Alfa Slab One",
282
+ "variants": [
283
+ "regular"
284
+ ],
285
+ "subsets": [
286
+ "vietnamese",
287
+ "latin",
288
+ "latin-ext"
289
+ ]
290
+ },
291
+ {
292
+ "family": "Alice",
293
+ "variants": [
294
+ "regular"
295
+ ],
296
+ "subsets": [
297
+ "cyrillic",
298
+ "cyrillic-ext",
299
+ "latin"
300
+ ]
301
+ },
302
+ {
303
+ "family": "Alike",
304
+ "variants": [
305
+ "regular"
306
+ ],
307
+ "subsets": [
308
+ "latin"
309
+ ]
310
+ },
311
+ {
312
+ "family": "Alike Angular",
313
+ "variants": [
314
+ "regular"
315
+ ],
316
+ "subsets": [
317
+ "latin"
318
+ ]
319
+ },
320
+ {
321
+ "family": "Allan",
322
+ "variants": [
323
+ "regular",
324
+ "700"
325
+ ],
326
+ "subsets": [
327
+ "latin",
328
+ "latin-ext"
329
+ ]
330
+ },
331
+ {
332
+ "family": "Allerta",
333
+ "variants": [
334
+ "regular"
335
+ ],
336
+ "subsets": [
337
+ "latin"
338
+ ]
339
+ },
340
+ {
341
+ "family": "Allerta Stencil",
342
+ "variants": [
343
+ "regular"
344
+ ],
345
+ "subsets": [
346
+ "latin"
347
+ ]
348
+ },
349
+ {
350
+ "family": "Allura",
351
+ "variants": [
352
+ "regular"
353
+ ],
354
+ "subsets": [
355
+ "latin",
356
+ "latin-ext"
357
+ ]
358
+ },
359
+ {
360
+ "family": "Almendra",
361
+ "variants": [
362
+ "regular",
363
+ "italic",
364
+ "700",
365
+ "700italic"
366
+ ],
367
+ "subsets": [
368
+ "latin",
369
+ "latin-ext"
370
+ ]
371
+ },
372
+ {
373
+ "family": "Almendra Display",
374
+ "variants": [
375
+ "regular"
376
+ ],
377
+ "subsets": [
378
+ "latin",
379
+ "latin-ext"
380
+ ]
381
+ },
382
+ {
383
+ "family": "Almendra SC",
384
+ "variants": [
385
+ "regular"
386
+ ],
387
+ "subsets": [
388
+ "latin"
389
+ ]
390
+ },
391
+ {
392
+ "family": "Amarante",
393
+ "variants": [
394
+ "regular"
395
+ ],
396
+ "subsets": [
397
+ "latin",
398
+ "latin-ext"
399
+ ]
400
+ },
401
+ {
402
+ "family": "Amaranth",
403
+ "variants": [
404
+ "regular",
405
+ "italic",
406
+ "700",
407
+ "700italic"
408
+ ],
409
+ "subsets": [
410
+ "latin"
411
+ ]
412
+ },
413
+ {
414
+ "family": "Amatic SC",
415
+ "variants": [
416
+ "regular",
417
+ "700"
418
+ ],
419
+ "subsets": [
420
+ "hebrew",
421
+ "cyrillic",
422
+ "vietnamese",
423
+ "latin",
424
+ "latin-ext"
425
+ ]
426
+ },
427
+ {
428
+ "family": "Amethysta",
429
+ "variants": [
430
+ "regular"
431
+ ],
432
+ "subsets": [
433
+ "latin"
434
+ ]
435
+ },
436
+ {
437
+ "family": "Amiko",
438
+ "variants": [
439
+ "regular",
440
+ "600",
441
+ "700"
442
+ ],
443
+ "subsets": [
444
+ "devanagari",
445
+ "latin",
446
+ "latin-ext"
447
+ ]
448
+ },
449
+ {
450
+ "family": "Amiri",
451
+ "variants": [
452
+ "regular",
453
+ "italic",
454
+ "700",
455
+ "700italic"
456
+ ],
457
+ "subsets": [
458
+ "arabic",
459
+ "latin",
460
+ "latin-ext"
461
+ ]
462
+ },
463
+ {
464
+ "family": "Amita",
465
+ "variants": [
466
+ "regular",
467
+ "700"
468
+ ],
469
+ "subsets": [
470
+ "devanagari",
471
+ "latin",
472
+ "latin-ext"
473
+ ]
474
+ },
475
+ {
476
+ "family": "Anaheim",
477
+ "variants": [
478
+ "regular"
479
+ ],
480
+ "subsets": [
481
+ "latin",
482
+ "latin-ext"
483
+ ]
484
+ },
485
+ {
486
+ "family": "Andada",
487
+ "variants": [
488
+ "regular"
489
+ ],
490
+ "subsets": [
491
+ "latin",
492
+ "latin-ext"
493
+ ]
494
+ },
495
+ {
496
+ "family": "Andika",
497
+ "variants": [
498
+ "regular"
499
+ ],
500
+ "subsets": [
501
+ "cyrillic",
502
+ "vietnamese",
503
+ "cyrillic-ext",
504
+ "latin",
505
+ "latin-ext"
506
+ ]
507
+ },
508
+ {
509
+ "family": "Angkor",
510
+ "variants": [
511
+ "regular"
512
+ ],
513
+ "subsets": [
514
+ "khmer"
515
+ ]
516
+ },
517
+ {
518
+ "family": "Annie Use Your Telescope",
519
+ "variants": [
520
+ "regular"
521
+ ],
522
+ "subsets": [
523
+ "latin"
524
+ ]
525
+ },
526
+ {
527
+ "family": "Anonymous Pro",
528
+ "variants": [
529
+ "regular",
530
+ "italic",
531
+ "700",
532
+ "700italic"
533
+ ],
534
+ "subsets": [
535
+ "cyrillic",
536
+ "greek",
537
+ "latin",
538
+ "latin-ext"
539
+ ]
540
+ },
541
+ {
542
+ "family": "Antic",
543
+ "variants": [
544
+ "regular"
545
+ ],
546
+ "subsets": [
547
+ "latin"
548
+ ]
549
+ },
550
+ {
551
+ "family": "Antic Didone",
552
+ "variants": [
553
+ "regular"
554
+ ],
555
+ "subsets": [
556
+ "latin"
557
+ ]
558
+ },
559
+ {
560
+ "family": "Antic Slab",
561
+ "variants": [
562
+ "regular"
563
+ ],
564
+ "subsets": [
565
+ "latin"
566
+ ]
567
+ },
568
+ {
569
+ "family": "Anton",
570
+ "variants": [
571
+ "regular"
572
+ ],
573
+ "subsets": [
574
+ "vietnamese",
575
+ "latin",
576
+ "latin-ext"
577
+ ]
578
+ },
579
+ {
580
+ "family": "Arapey",
581
+ "variants": [
582
+ "regular",
583
+ "italic"
584
+ ],
585
+ "subsets": [
586
+ "latin"
587
+ ]
588
+ },
589
+ {
590
+ "family": "Arbutus",
591
+ "variants": [
592
+ "regular"
593
+ ],
594
+ "subsets": [
595
+ "latin",
596
+ "latin-ext"
597
+ ]
598
+ },
599
+ {
600
+ "family": "Arbutus Slab",
601
+ "variants": [
602
+ "regular"
603
+ ],
604
+ "subsets": [
605
+ "latin",
606
+ "latin-ext"
607
+ ]
608
+ },
609
+ {
610
+ "family": "Architects Daughter",
611
+ "variants": [
612
+ "regular"
613
+ ],
614
+ "subsets": [
615
+ "latin"
616
+ ]
617
+ },
618
+ {
619
+ "family": "Archivo",
620
+ "variants": [
621
+ "regular",
622
+ "italic",
623
+ "500",
624
+ "500italic",
625
+ "600",
626
+ "600italic",
627
+ "700",
628
+ "700italic"
629
+ ],
630
+ "subsets": [
631
+ "vietnamese",
632
+ "latin",
633
+ "latin-ext"
634
+ ]
635
+ },
636
+ {
637
+ "family": "Archivo Black",
638
+ "variants": [
639
+ "regular"
640
+ ],
641
+ "subsets": [
642
+ "latin",
643
+ "latin-ext"
644
+ ]
645
+ },
646
+ {
647
+ "family": "Archivo Narrow",
648
+ "variants": [
649
+ "regular",
650
+ "italic",
651
+ "500",
652
+ "500italic",
653
+ "600",
654
+ "600italic",
655
+ "700",
656
+ "700italic"
657
+ ],
658
+ "subsets": [
659
+ "vietnamese",
660
+ "latin",
661
+ "latin-ext"
662
+ ]
663
+ },
664
+ {
665
+ "family": "Aref Ruqaa",
666
+ "variants": [
667
+ "regular",
668
+ "700"
669
+ ],
670
+ "subsets": [
671
+ "arabic",
672
+ "latin"
673
+ ]
674
+ },
675
+ {
676
+ "family": "Arima Madurai",
677
+ "variants": [
678
+ "100",
679
+ "200",
680
+ "300",
681
+ "regular",
682
+ "500",
683
+ "700",
684
+ "800",
685
+ "900"
686
+ ],
687
+ "subsets": [
688
+ "tamil",
689
+ "vietnamese",
690
+ "latin",
691
+ "latin-ext"
692
+ ]
693
+ },
694
+ {
695
+ "family": "Arimo",
696
+ "variants": [
697
+ "regular",
698
+ "italic",
699
+ "700",
700
+ "700italic"
701
+ ],
702
+ "subsets": [
703
+ "hebrew",
704
+ "cyrillic",
705
+ "vietnamese",
706
+ "cyrillic-ext",
707
+ "greek-ext",
708
+ "greek",
709
+ "latin",
710
+ "latin-ext"
711
+ ]
712
+ },
713
+ {
714
+ "family": "Arizonia",
715
+ "variants": [
716
+ "regular"
717
+ ],
718
+ "subsets": [
719
+ "latin",
720
+ "latin-ext"
721
+ ]
722
+ },
723
+ {
724
+ "family": "Armata",
725
+ "variants": [
726
+ "regular"
727
+ ],
728
+ "subsets": [
729
+ "latin",
730
+ "latin-ext"
731
+ ]
732
+ },
733
+ {
734
+ "family": "Arsenal",
735
+ "variants": [
736
+ "regular",
737
+ "italic",
738
+ "700",
739
+ "700italic"
740
+ ],
741
+ "subsets": [
742
+ "cyrillic",
743
+ "vietnamese",
744
+ "cyrillic-ext",
745
+ "latin",
746
+ "latin-ext"
747
+ ]
748
+ },
749
+ {
750
+ "family": "Artifika",
751
+ "variants": [
752
+ "regular"
753
+ ],
754
+ "subsets": [
755
+ "latin"
756
+ ]
757
+ },
758
+ {
759
+ "family": "Arvo",
760
+ "variants": [
761
+ "regular",
762
+ "italic",
763
+ "700",
764
+ "700italic"
765
+ ],
766
+ "subsets": [
767
+ "latin"
768
+ ]
769
+ },
770
+ {
771
+ "family": "Arya",
772
+ "variants": [
773
+ "regular",
774
+ "700"
775
+ ],
776
+ "subsets": [
777
+ "devanagari",
778
+ "latin",
779
+ "latin-ext"
780
+ ]
781
+ },
782
+ {
783
+ "family": "Asap",
784
+ "variants": [
785
+ "regular",
786
+ "italic",
787
+ "500",
788
+ "500italic",
789
+ "600",
790
+ "600italic",
791
+ "700",
792
+ "700italic"
793
+ ],
794
+ "subsets": [
795
+ "vietnamese",
796
+ "latin",
797
+ "latin-ext"
798
+ ]
799
+ },
800
+ {
801
+ "family": "Asap Condensed",
802
+ "variants": [
803
+ "regular",
804
+ "italic",
805
+ "500",
806
+ "500italic",
807
+ "600",
808
+ "600italic",
809
+ "700",
810
+ "700italic"
811
+ ],
812
+ "subsets": [
813
+ "vietnamese",
814
+ "latin",
815
+ "latin-ext"
816
+ ]
817
+ },
818
+ {
819
+ "family": "Asar",
820
+ "variants": [
821
+ "regular"
822
+ ],
823
+ "subsets": [
824
+ "devanagari",
825
+ "latin",
826
+ "latin-ext"
827
+ ]
828
+ },
829
+ {
830
+ "family": "Asset",
831
+ "variants": [
832
+ "regular"
833
+ ],
834
+ "subsets": [
835
+ "latin"
836
+ ]
837
+ },
838
+ {
839
+ "family": "Assistant",
840
+ "variants": [
841
+ "200",
842
+ "300",
843
+ "regular",
844
+ "600",
845
+ "700",
846
+ "800"
847
+ ],
848
+ "subsets": [
849
+ "hebrew",
850
+ "latin"
851
+ ]
852
+ },
853
+ {
854
+ "family": "Astloch",
855
+ "variants": [
856
+ "regular",
857
+ "700"
858
+ ],
859
+ "subsets": [
860
+ "latin"
861
+ ]
862
+ },
863
+ {
864
+ "family": "Asul",
865
+ "variants": [
866
+ "regular",
867
+ "700"
868
+ ],
869
+ "subsets": [
870
+ "latin"
871
+ ]
872
+ },
873
+ {
874
+ "family": "Athiti",
875
+ "variants": [
876
+ "200",
877
+ "300",
878
+ "regular",
879
+ "500",
880
+ "600",
881
+ "700"
882
+ ],
883
+ "subsets": [
884
+ "vietnamese",
885
+ "latin",
886
+ "thai",
887
+ "latin-ext"
888
+ ]
889
+ },
890
+ {
891
+ "family": "Atma",
892
+ "variants": [
893
+ "300",
894
+ "regular",
895
+ "500",
896
+ "600",
897
+ "700"
898
+ ],
899
+ "subsets": [
900
+ "latin",
901
+ "latin-ext",
902
+ "bengali"
903
+ ]
904
+ },
905
+ {
906
+ "family": "Atomic Age",
907
+ "variants": [
908
+ "regular"
909
+ ],
910
+ "subsets": [
911
+ "latin"
912
+ ]
913
+ },
914
+ {
915
+ "family": "Aubrey",
916
+ "variants": [
917
+ "regular"
918
+ ],
919
+ "subsets": [
920
+ "latin"
921
+ ]
922
+ },
923
+ {
924
+ "family": "Audiowide",
925
+ "variants": [
926
+ "regular"
927
+ ],
928
+ "subsets": [
929
+ "latin",
930
+ "latin-ext"
931
+ ]
932
+ },
933
+ {
934
+ "family": "Autour One",
935
+ "variants": [
936
+ "regular"
937
+ ],
938
+ "subsets": [
939
+ "latin",
940
+ "latin-ext"
941
+ ]
942
+ },
943
+ {
944
+ "family": "Average",
945
+ "variants": [
946
+ "regular"
947
+ ],
948
+ "subsets": [
949
+ "latin",
950
+ "latin-ext"
951
+ ]
952
+ },
953
+ {
954
+ "family": "Average Sans",
955
+ "variants": [
956
+ "regular"
957
+ ],
958
+ "subsets": [
959
+ "latin",
960
+ "latin-ext"
961
+ ]
962
+ },
963
+ {
964
+ "family": "Averia Gruesa Libre",
965
+ "variants": [
966
+ "regular"
967
+ ],
968
+ "subsets": [
969
+ "latin",
970
+ "latin-ext"
971
+ ]
972
+ },
973
+ {
974
+ "family": "Averia Libre",
975
+ "variants": [
976
+ "300",
977
+ "300italic",
978
+ "regular",
979
+ "italic",
980
+ "700",
981
+ "700italic"
982
+ ],
983
+ "subsets": [
984
+ "latin"
985
+ ]
986
+ },
987
+ {
988
+ "family": "Averia Sans Libre",
989
+ "variants": [
990
+ "300",
991
+ "300italic",
992
+ "regular",
993
+ "italic",
994
+ "700",
995
+ "700italic"
996
+ ],
997
+ "subsets": [
998
+ "latin"
999
+ ]
1000
+ },
1001
+ {
1002
+ "family": "Averia Serif Libre",
1003
+ "variants": [
1004
+ "300",
1005
+ "300italic",
1006
+ "regular",
1007
+ "italic",
1008
+ "700",
1009
+ "700italic"
1010
+ ],
1011
+ "subsets": [
1012
+ "latin"
1013
+ ]
1014
+ },
1015
+ {
1016
+ "family": "B612",
1017
+ "variants": [
1018
+ "regular",
1019
+ "italic",
1020
+ "700",
1021
+ "700italic"
1022
+ ],
1023
+ "subsets": [
1024
+ "latin"
1025
+ ]
1026
+ },
1027
+ {
1028
+ "family": "B612 Mono",
1029
+ "variants": [
1030
+ "regular",
1031
+ "italic",
1032
+ "700",
1033
+ "700italic"
1034
+ ],
1035
+ "subsets": [
1036
+ "latin"
1037
+ ]
1038
+ },
1039
+ {
1040
+ "family": "Bad Script",
1041
+ "variants": [
1042
+ "regular"
1043
+ ],
1044
+ "subsets": [
1045
+ "cyrillic",
1046
+ "latin"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "family": "Bahiana",
1051
+ "variants": [
1052
+ "regular"
1053
+ ],
1054
+ "subsets": [
1055
+ "latin",
1056
+ "latin-ext"
1057
+ ]
1058
+ },
1059
+ {
1060
+ "family": "Bahianita",
1061
+ "variants": [
1062
+ "regular"
1063
+ ],
1064
+ "subsets": [
1065
+ "vietnamese",
1066
+ "latin",
1067
+ "latin-ext"
1068
+ ]
1069
+ },
1070
+ {
1071
+ "family": "Bai Jamjuree",
1072
+ "variants": [
1073
+ "200",
1074
+ "200italic",
1075
+ "300",
1076
+ "300italic",
1077
+ "regular",
1078
+ "italic",
1079
+ "500",
1080
+ "500italic",
1081
+ "600",
1082
+ "600italic",
1083
+ "700",
1084
+ "700italic"
1085
+ ],
1086
+ "subsets": [
1087
+ "vietnamese",
1088
+ "latin",
1089
+ "thai",
1090
+ "latin-ext"
1091
+ ]
1092
+ },
1093
+ {
1094
+ "family": "Baloo",
1095
+ "variants": [
1096
+ "regular"
1097
+ ],
1098
+ "subsets": [
1099
+ "devanagari",
1100
+ "vietnamese",
1101
+ "latin",
1102
+ "latin-ext"
1103
+ ]
1104
+ },
1105
+ {
1106
+ "family": "Baloo Bhai",
1107
+ "variants": [
1108
+ "regular"
1109
+ ],
1110
+ "subsets": [
1111
+ "gujarati",
1112
+ "vietnamese",
1113
+ "latin",
1114
+ "latin-ext"
1115
+ ]
1116
+ },
1117
+ {
1118
+ "family": "Baloo Bhaijaan",
1119
+ "variants": [
1120
+ "regular"
1121
+ ],
1122
+ "subsets": [
1123
+ "arabic",
1124
+ "vietnamese",
1125
+ "latin",
1126
+ "latin-ext"
1127
+ ]
1128
+ },
1129
+ {
1130
+ "family": "Baloo Bhaina",
1131
+ "variants": [
1132
+ "regular"
1133
+ ],
1134
+ "subsets": [
1135
+ "vietnamese",
1136
+ "oriya",
1137
+ "latin",
1138
+ "latin-ext"
1139
+ ]
1140
+ },
1141
+ {
1142
+ "family": "Baloo Chettan",
1143
+ "variants": [
1144
+ "regular"
1145
+ ],
1146
+ "subsets": [
1147
+ "malayalam",
1148
+ "vietnamese",
1149
+ "latin",
1150
+ "latin-ext"
1151
+ ]
1152
+ },
1153
+ {
1154
+ "family": "Baloo Da",
1155
+ "variants": [
1156
+ "regular"
1157
+ ],
1158
+ "subsets": [
1159
+ "vietnamese",
1160
+ "latin",
1161
+ "latin-ext",
1162
+ "bengali"
1163
+ ]
1164
+ },
1165
+ {
1166
+ "family": "Baloo Paaji",
1167
+ "variants": [
1168
+ "regular"
1169
+ ],
1170
+ "subsets": [
1171
+ "vietnamese",
1172
+ "latin",
1173
+ "gurmukhi",
1174
+ "latin-ext"
1175
+ ]
1176
+ },
1177
+ {
1178
+ "family": "Baloo Tamma",
1179
+ "variants": [
1180
+ "regular"
1181
+ ],
1182
+ "subsets": [
1183
+ "vietnamese",
1184
+ "kannada",
1185
+ "latin",
1186
+ "latin-ext"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "family": "Baloo Tammudu",
1191
+ "variants": [
1192
+ "regular"
1193
+ ],
1194
+ "subsets": [
1195
+ "telugu",
1196
+ "vietnamese",
1197
+ "latin",
1198
+ "latin-ext"
1199
+ ]
1200
+ },
1201
+ {
1202
+ "family": "Baloo Thambi",
1203
+ "variants": [
1204
+ "regular"
1205
+ ],
1206
+ "subsets": [
1207
+ "tamil",
1208
+ "vietnamese",
1209
+ "latin",
1210
+ "latin-ext"
1211
+ ]
1212
+ },
1213
+ {
1214
+ "family": "Balthazar",
1215
+ "variants": [
1216
+ "regular"
1217
+ ],
1218
+ "subsets": [
1219
+ "latin"
1220
+ ]
1221
+ },
1222
+ {
1223
+ "family": "Bangers",
1224
+ "variants": [
1225
+ "regular"
1226
+ ],
1227
+ "subsets": [
1228
+ "vietnamese",
1229
+ "latin",
1230
+ "latin-ext"
1231
+ ]
1232
+ },
1233
+ {
1234
+ "family": "Barlow",
1235
+ "variants": [
1236
+ "100",
1237
+ "100italic",
1238
+ "200",
1239
+ "200italic",
1240
+ "300",
1241
+ "300italic",
1242
+ "regular",
1243
+ "italic",
1244
+ "500",
1245
+ "500italic",
1246
+ "600",
1247
+ "600italic",
1248
+ "700",
1249
+ "700italic",
1250
+ "800",
1251
+ "800italic",
1252
+ "900",
1253
+ "900italic"
1254
+ ],
1255
+ "subsets": [
1256
+ "vietnamese",
1257
+ "latin",
1258
+ "latin-ext"
1259
+ ]
1260
+ },
1261
+ {
1262
+ "family": "Barlow Condensed",
1263
+ "variants": [
1264
+ "100",
1265
+ "100italic",
1266
+ "200",
1267
+ "200italic",
1268
+ "300",
1269
+ "300italic",
1270
+ "regular",
1271
+ "italic",
1272
+ "500",
1273
+ "500italic",
1274
+ "600",
1275
+ "600italic",
1276
+ "700",
1277
+ "700italic",
1278
+ "800",
1279
+ "800italic",
1280
+ "900",
1281
+ "900italic"
1282
+ ],
1283
+ "subsets": [
1284
+ "vietnamese",
1285
+ "latin",
1286
+ "latin-ext"
1287
+ ]
1288
+ },
1289
+ {
1290
+ "family": "Barlow Semi Condensed",
1291
+ "variants": [
1292
+ "100",
1293
+ "100italic",
1294
+ "200",
1295
+ "200italic",
1296
+ "300",
1297
+ "300italic",
1298
+ "regular",
1299
+ "italic",
1300
+ "500",
1301
+ "500italic",
1302
+ "600",
1303
+ "600italic",
1304
+ "700",
1305
+ "700italic",
1306
+ "800",
1307
+ "800italic",
1308
+ "900",
1309
+ "900italic"
1310
+ ],
1311
+ "subsets": [
1312
+ "vietnamese",
1313
+ "latin",
1314
+ "latin-ext"
1315
+ ]
1316
+ },
1317
+ {
1318
+ "family": "Barriecito",
1319
+ "variants": [
1320
+ "regular"
1321
+ ],
1322
+ "subsets": [
1323
+ "vietnamese",
1324
+ "latin",
1325
+ "latin-ext"
1326
+ ]
1327
+ },
1328
+ {
1329
+ "family": "Barrio",
1330
+ "variants": [
1331
+ "regular"
1332
+ ],
1333
+ "subsets": [
1334
+ "latin",
1335
+ "latin-ext"
1336
+ ]
1337
+ },
1338
+ {
1339
+ "family": "Basic",
1340
+ "variants": [
1341
+ "regular"
1342
+ ],
1343
+ "subsets": [
1344
+ "latin",
1345
+ "latin-ext"
1346
+ ]
1347
+ },
1348
+ {
1349
+ "family": "Battambang",
1350
+ "variants": [
1351
+ "regular",
1352
+ "700"
1353
+ ],
1354
+ "subsets": [
1355
+ "khmer"
1356
+ ]
1357
+ },
1358
+ {
1359
+ "family": "Baumans",
1360
+ "variants": [
1361
+ "regular"
1362
+ ],
1363
+ "subsets": [
1364
+ "latin"
1365
+ ]
1366
+ },
1367
+ {
1368
+ "family": "Bayon",
1369
+ "variants": [
1370
+ "regular"
1371
+ ],
1372
+ "subsets": [
1373
+ "khmer"
1374
+ ]
1375
+ },
1376
+ {
1377
+ "family": "Belgrano",
1378
+ "variants": [
1379
+ "regular"
1380
+ ],
1381
+ "subsets": [
1382
+ "latin"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "family": "Bellefair",
1387
+ "variants": [
1388
+ "regular"
1389
+ ],
1390
+ "subsets": [
1391
+ "hebrew",
1392
+ "latin",
1393
+ "latin-ext"
1394
+ ]
1395
+ },
1396
+ {
1397
+ "family": "Belleza",
1398
+ "variants": [
1399
+ "regular"
1400
+ ],
1401
+ "subsets": [
1402
+ "latin",
1403
+ "latin-ext"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "family": "BenchNine",
1408
+ "variants": [
1409
+ "300",
1410
+ "regular",
1411
+ "700"
1412
+ ],
1413
+ "subsets": [
1414
+ "latin",
1415
+ "latin-ext"
1416
+ ]
1417
+ },
1418
+ {
1419
+ "family": "Bentham",
1420
+ "variants": [
1421
+ "regular"
1422
+ ],
1423
+ "subsets": [
1424
+ "latin"
1425
+ ]
1426
+ },
1427
+ {
1428
+ "family": "Berkshire Swash",
1429
+ "variants": [
1430
+ "regular"
1431
+ ],
1432
+ "subsets": [
1433
+ "latin",
1434
+ "latin-ext"
1435
+ ]
1436
+ },
1437
+ {
1438
+ "family": "Beth Ellen",
1439
+ "variants": [
1440
+ "regular"
1441
+ ],
1442
+ "subsets": [
1443
+ "latin"
1444
+ ]
1445
+ },
1446
+ {
1447
+ "family": "Bevan",
1448
+ "variants": [
1449
+ "regular"
1450
+ ],
1451
+ "subsets": [
1452
+ "vietnamese",
1453
+ "latin",
1454
+ "latin-ext"
1455
+ ]
1456
+ },
1457
+ {
1458
+ "family": "Bigelow Rules",
1459
+ "variants": [
1460
+ "regular"
1461
+ ],
1462
+ "subsets": [
1463
+ "latin",
1464
+ "latin-ext"
1465
+ ]
1466
+ },
1467
+ {
1468
+ "family": "Bigshot One",
1469
+ "variants": [
1470
+ "regular"
1471
+ ],
1472
+ "subsets": [
1473
+ "latin"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "family": "Bilbo",
1478
+ "variants": [
1479
+ "regular"
1480
+ ],
1481
+ "subsets": [
1482
+ "latin",
1483
+ "latin-ext"
1484
+ ]
1485
+ },
1486
+ {
1487
+ "family": "Bilbo Swash Caps",
1488
+ "variants": [
1489
+ "regular"
1490
+ ],
1491
+ "subsets": [
1492
+ "latin",
1493
+ "latin-ext"
1494
+ ]
1495
+ },
1496
+ {
1497
+ "family": "BioRhyme",
1498
+ "variants": [
1499
+ "200",
1500
+ "300",
1501
+ "regular",
1502
+ "700",
1503
+ "800"
1504
+ ],
1505
+ "subsets": [
1506
+ "latin",
1507
+ "latin-ext"
1508
+ ]
1509
+ },
1510
+ {
1511
+ "family": "BioRhyme Expanded",
1512
+ "variants": [
1513
+ "200",
1514
+ "300",
1515
+ "regular",
1516
+ "700",
1517
+ "800"
1518
+ ],
1519
+ "subsets": [
1520
+ "latin",
1521
+ "latin-ext"
1522
+ ]
1523
+ },
1524
+ {
1525
+ "family": "Biryani",
1526
+ "variants": [
1527
+ "200",
1528
+ "300",
1529
+ "regular",
1530
+ "600",
1531
+ "700",
1532
+ "800",
1533
+ "900"
1534
+ ],
1535
+ "subsets": [
1536
+ "devanagari",
1537
+ "latin",
1538
+ "latin-ext"
1539
+ ]
1540
+ },
1541
+ {
1542
+ "family": "Bitter",
1543
+ "variants": [
1544
+ "regular",
1545
+ "italic",
1546
+ "700"
1547
+ ],
1548
+ "subsets": [
1549
+ "latin",
1550
+ "latin-ext"
1551
+ ]
1552
+ },
1553
+ {
1554
+ "family": "Black And White Picture",
1555
+ "variants": [
1556
+ "regular"
1557
+ ],
1558
+ "subsets": [
1559
+ "latin",
1560
+ "korean"
1561
+ ]
1562
+ },
1563
+ {
1564
+ "family": "Black Han Sans",
1565
+ "variants": [
1566
+ "regular"
1567
+ ],
1568
+ "subsets": [
1569
+ "latin",
1570
+ "korean"
1571
+ ]
1572
+ },
1573
+ {
1574
+ "family": "Black Ops One",
1575
+ "variants": [
1576
+ "regular"
1577
+ ],
1578
+ "subsets": [
1579
+ "latin",
1580
+ "latin-ext"
1581
+ ]
1582
+ },
1583
+ {
1584
+ "family": "Blinker",
1585
+ "variants": [
1586
+ "100",
1587
+ "200",
1588
+ "300",
1589
+ "regular",
1590
+ "600",
1591
+ "700",
1592
+ "800",
1593
+ "900"
1594
+ ],
1595
+ "subsets": [
1596
+ "latin",
1597
+ "latin-ext"
1598
+ ]
1599
+ },
1600
+ {
1601
+ "family": "Bokor",
1602
+ "variants": [
1603
+ "regular"
1604
+ ],
1605
+ "subsets": [
1606
+ "khmer"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "family": "Bonbon",
1611
+ "variants": [
1612
+ "regular"
1613
+ ],
1614
+ "subsets": [
1615
+ "latin"
1616
+ ]
1617
+ },
1618
+ {
1619
+ "family": "Boogaloo",
1620
+ "variants": [
1621
+ "regular"
1622
+ ],
1623
+ "subsets": [
1624
+ "latin"
1625
+ ]
1626
+ },
1627
+ {
1628
+ "family": "Bowlby One",
1629
+ "variants": [
1630
+ "regular"
1631
+ ],
1632
+ "subsets": [
1633
+ "latin"
1634
+ ]
1635
+ },
1636
+ {
1637
+ "family": "Bowlby One SC",
1638
+ "variants": [
1639
+ "regular"
1640
+ ],
1641
+ "subsets": [
1642
+ "latin",
1643
+ "latin-ext"
1644
+ ]
1645
+ },
1646
+ {
1647
+ "family": "Brawler",
1648
+ "variants": [
1649
+ "regular"
1650
+ ],
1651
+ "subsets": [
1652
+ "latin"
1653
+ ]
1654
+ },
1655
+ {
1656
+ "family": "Bree Serif",
1657
+ "variants": [
1658
+ "regular"
1659
+ ],
1660
+ "subsets": [
1661
+ "latin",
1662
+ "latin-ext"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "family": "Bubblegum Sans",
1667
+ "variants": [
1668
+ "regular"
1669
+ ],
1670
+ "subsets": [
1671
+ "latin",
1672
+ "latin-ext"
1673
+ ]
1674
+ },
1675
+ {
1676
+ "family": "Bubbler One",
1677
+ "variants": [
1678
+ "regular"
1679
+ ],
1680
+ "subsets": [
1681
+ "latin",
1682
+ "latin-ext"
1683
+ ]
1684
+ },
1685
+ {
1686
+ "family": "Buda",
1687
+ "variants": [
1688
+ "300"
1689
+ ],
1690
+ "subsets": [
1691
+ "latin"
1692
+ ]
1693
+ },
1694
+ {
1695
+ "family": "Buenard",
1696
+ "variants": [
1697
+ "regular",
1698
+ "700"
1699
+ ],
1700
+ "subsets": [
1701
+ "latin",
1702
+ "latin-ext"
1703
+ ]
1704
+ },
1705
+ {
1706
+ "family": "Bungee",
1707
+ "variants": [
1708
+ "regular"
1709
+ ],
1710
+ "subsets": [
1711
+ "vietnamese",
1712
+ "latin",
1713
+ "latin-ext"
1714
+ ]
1715
+ },
1716
+ {
1717
+ "family": "Bungee Hairline",
1718
+ "variants": [
1719
+ "regular"
1720
+ ],
1721
+ "subsets": [
1722
+ "vietnamese",
1723
+ "latin",
1724
+ "latin-ext"
1725
+ ]
1726
+ },
1727
+ {
1728
+ "family": "Bungee Inline",
1729
+ "variants": [
1730
+ "regular"
1731
+ ],
1732
+ "subsets": [
1733
+ "vietnamese",
1734
+ "latin",
1735
+ "latin-ext"
1736
+ ]
1737
+ },
1738
+ {
1739
+ "family": "Bungee Outline",
1740
+ "variants": [
1741
+ "regular"
1742
+ ],
1743
+ "subsets": [
1744
+ "vietnamese",
1745
+ "latin",
1746
+ "latin-ext"
1747
+ ]
1748
+ },
1749
+ {
1750
+ "family": "Bungee Shade",
1751
+ "variants": [
1752
+ "regular"
1753
+ ],
1754
+ "subsets": [
1755
+ "vietnamese",
1756
+ "latin",
1757
+ "latin-ext"
1758
+ ]
1759
+ },
1760
+ {
1761
+ "family": "Butcherman",
1762
+ "variants": [
1763
+ "regular"
1764
+ ],
1765
+ "subsets": [
1766
+ "latin",
1767
+ "latin-ext"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "family": "Butterfly Kids",
1772
+ "variants": [
1773
+ "regular"
1774
+ ],
1775
+ "subsets": [
1776
+ "latin",
1777
+ "latin-ext"
1778
+ ]
1779
+ },
1780
+ {
1781
+ "family": "Cabin",
1782
+ "variants": [
1783
+ "regular",
1784
+ "italic",
1785
+ "500",
1786
+ "500italic",
1787
+ "600",
1788
+ "600italic",
1789
+ "700",
1790
+ "700italic"
1791
+ ],
1792
+ "subsets": [
1793
+ "vietnamese",
1794
+ "latin",
1795
+ "latin-ext"
1796
+ ]
1797
+ },
1798
+ {
1799
+ "family": "Cabin Condensed",
1800
+ "variants": [
1801
+ "regular",
1802
+ "500",
1803
+ "600",
1804
+ "700"
1805
+ ],
1806
+ "subsets": [
1807
+ "vietnamese",
1808
+ "latin",
1809
+ "latin-ext"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "family": "Cabin Sketch",
1814
+ "variants": [
1815
+ "regular",
1816
+ "700"
1817
+ ],
1818
+ "subsets": [
1819
+ "latin"
1820
+ ]
1821
+ },
1822
+ {
1823
+ "family": "Caesar Dressing",
1824
+ "variants": [
1825
+ "regular"
1826
+ ],
1827
+ "subsets": [
1828
+ "latin"
1829
+ ]
1830
+ },
1831
+ {
1832
+ "family": "Cagliostro",
1833
+ "variants": [
1834
+ "regular"
1835
+ ],
1836
+ "subsets": [
1837
+ "latin"
1838
+ ]
1839
+ },
1840
+ {
1841
+ "family": "Cairo",
1842
+ "variants": [
1843
+ "200",
1844
+ "300",
1845
+ "regular",
1846
+ "600",
1847
+ "700",
1848
+ "900"
1849
+ ],
1850
+ "subsets": [
1851
+ "arabic",
1852
+ "latin",
1853
+ "latin-ext"
1854
+ ]
1855
+ },
1856
+ {
1857
+ "family": "Calligraffitti",
1858
+ "variants": [
1859
+ "regular"
1860
+ ],
1861
+ "subsets": [
1862
+ "latin"
1863
+ ]
1864
+ },
1865
+ {
1866
+ "family": "Cambay",
1867
+ "variants": [
1868
+ "regular",
1869
+ "italic",
1870
+ "700",
1871
+ "700italic"
1872
+ ],
1873
+ "subsets": [
1874
+ "devanagari",
1875
+ "latin",
1876
+ "latin-ext"
1877
+ ]
1878
+ },
1879
+ {
1880
+ "family": "Cambo",
1881
+ "variants": [
1882
+ "regular"
1883
+ ],
1884
+ "subsets": [
1885
+ "latin"
1886
+ ]
1887
+ },
1888
+ {
1889
+ "family": "Candal",
1890
+ "variants": [
1891
+ "regular"
1892
+ ],
1893
+ "subsets": [
1894
+ "latin"
1895
+ ]
1896
+ },
1897
+ {
1898
+ "family": "Cantarell",
1899
+ "variants": [
1900
+ "regular",
1901
+ "italic",
1902
+ "700",
1903
+ "700italic"
1904
+ ],
1905
+ "subsets": [
1906
+ "latin"
1907
+ ]
1908
+ },
1909
+ {
1910
+ "family": "Cantata One",
1911
+ "variants": [
1912
+ "regular"
1913
+ ],
1914
+ "subsets": [
1915
+ "latin",
1916
+ "latin-ext"
1917
+ ]
1918
+ },
1919
+ {
1920
+ "family": "Cantora One",
1921
+ "variants": [
1922
+ "regular"
1923
+ ],
1924
+ "subsets": [
1925
+ "latin",
1926
+ "latin-ext"
1927
+ ]
1928
+ },
1929
+ {
1930
+ "family": "Capriola",
1931
+ "variants": [
1932
+ "regular"
1933
+ ],
1934
+ "subsets": [
1935
+ "latin",
1936
+ "latin-ext"
1937
+ ]
1938
+ },
1939
+ {
1940
+ "family": "Cardo",
1941
+ "variants": [
1942
+ "regular",
1943
+ "italic",
1944
+ "700"
1945
+ ],
1946
+ "subsets": [
1947
+ "greek-ext",
1948
+ "greek",
1949
+ "latin",
1950
+ "latin-ext"
1951
+ ]
1952
+ },
1953
+ {
1954
+ "family": "Carme",
1955
+ "variants": [
1956
+ "regular"
1957
+ ],
1958
+ "subsets": [
1959
+ "latin"
1960
+ ]
1961
+ },
1962
+ {
1963
+ "family": "Carrois Gothic",
1964
+ "variants": [
1965
+ "regular"
1966
+ ],
1967
+ "subsets": [
1968
+ "latin"
1969
+ ]
1970
+ },
1971
+ {
1972
+ "family": "Carrois Gothic SC",
1973
+ "variants": [
1974
+ "regular"
1975
+ ],
1976
+ "subsets": [
1977
+ "latin"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "family": "Carter One",
1982
+ "variants": [
1983
+ "regular"
1984
+ ],
1985
+ "subsets": [
1986
+ "latin"
1987
+ ]
1988
+ },
1989
+ {
1990
+ "family": "Catamaran",
1991
+ "variants": [
1992
+ "100",
1993
+ "200",
1994
+ "300",
1995
+ "regular",
1996
+ "500",
1997
+ "600",
1998
+ "700",
1999
+ "800",
2000
+ "900"
2001
+ ],
2002
+ "subsets": [
2003
+ "tamil",
2004
+ "latin",
2005
+ "latin-ext"
2006
+ ]
2007
+ },
2008
+ {
2009
+ "family": "Caudex",
2010
+ "variants": [
2011
+ "regular",
2012
+ "italic",
2013
+ "700",
2014
+ "700italic"
2015
+ ],
2016
+ "subsets": [
2017
+ "greek-ext",
2018
+ "greek",
2019
+ "latin",
2020
+ "latin-ext"
2021
+ ]
2022
+ },
2023
+ {
2024
+ "family": "Caveat",
2025
+ "variants": [
2026
+ "regular",
2027
+ "700"
2028
+ ],
2029
+ "subsets": [
2030
+ "cyrillic",
2031
+ "cyrillic-ext",
2032
+ "latin",
2033
+ "latin-ext"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "family": "Caveat Brush",
2038
+ "variants": [
2039
+ "regular"
2040
+ ],
2041
+ "subsets": [
2042
+ "latin",
2043
+ "latin-ext"
2044
+ ]
2045
+ },
2046
+ {
2047
+ "family": "Cedarville Cursive",
2048
+ "variants": [
2049
+ "regular"
2050
+ ],
2051
+ "subsets": [
2052
+ "latin"
2053
+ ]
2054
+ },
2055
+ {
2056
+ "family": "Ceviche One",
2057
+ "variants": [
2058
+ "regular"
2059
+ ],
2060
+ "subsets": [
2061
+ "latin",
2062
+ "latin-ext"
2063
+ ]
2064
+ },
2065
+ {
2066
+ "family": "Chakra Petch",
2067
+ "variants": [
2068
+ "300",
2069
+ "300italic",
2070
+ "regular",
2071
+ "italic",
2072
+ "500",
2073
+ "500italic",
2074
+ "600",
2075
+ "600italic",
2076
+ "700",
2077
+ "700italic"
2078
+ ],
2079
+ "subsets": [
2080
+ "vietnamese",
2081
+ "latin",
2082
+ "thai",
2083
+ "latin-ext"
2084
+ ]
2085
+ },
2086
+ {
2087
+ "family": "Changa",
2088
+ "variants": [
2089
+ "200",
2090
+ "300",
2091
+ "regular",
2092
+ "500",
2093
+ "600",
2094
+ "700",
2095
+ "800"
2096
+ ],
2097
+ "subsets": [
2098
+ "arabic",
2099
+ "latin",
2100
+ "latin-ext"
2101
+ ]
2102
+ },
2103
+ {
2104
+ "family": "Changa One",
2105
+ "variants": [
2106
+ "regular",
2107
+ "italic"
2108
+ ],
2109
+ "subsets": [
2110
+ "latin"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "family": "Chango",
2115
+ "variants": [
2116
+ "regular"
2117
+ ],
2118
+ "subsets": [
2119
+ "latin",
2120
+ "latin-ext"
2121
+ ]
2122
+ },
2123
+ {
2124
+ "family": "Charm",
2125
+ "variants": [
2126
+ "regular",
2127
+ "700"
2128
+ ],
2129
+ "subsets": [
2130
+ "vietnamese",
2131
+ "latin",
2132
+ "thai",
2133
+ "latin-ext"
2134
+ ]
2135
+ },
2136
+ {
2137
+ "family": "Charmonman",
2138
+ "variants": [
2139
+ "regular",
2140
+ "700"
2141
+ ],
2142
+ "subsets": [
2143
+ "vietnamese",
2144
+ "latin",
2145
+ "thai",
2146
+ "latin-ext"
2147
+ ]
2148
+ },
2149
+ {
2150
+ "family": "Chathura",
2151
+ "variants": [
2152
+ "100",
2153
+ "300",
2154
+ "regular",
2155
+ "700",
2156
+ "800"
2157
+ ],
2158
+ "subsets": [
2159
+ "telugu",
2160
+ "latin"
2161
+ ]
2162
+ },
2163
+ {
2164
+ "family": "Chau Philomene One",
2165
+ "variants": [
2166
+ "regular",
2167
+ "italic"
2168
+ ],
2169
+ "subsets": [
2170
+ "latin",
2171
+ "latin-ext"
2172
+ ]
2173
+ },
2174
+ {
2175
+ "family": "Chela One",
2176
+ "variants": [
2177
+ "regular"
2178
+ ],
2179
+ "subsets": [
2180
+ "latin",
2181
+ "latin-ext"
2182
+ ]
2183
+ },
2184
+ {
2185
+ "family": "Chelsea Market",
2186
+ "variants": [
2187
+ "regular"
2188
+ ],
2189
+ "subsets": [
2190
+ "latin",
2191
+ "latin-ext"
2192
+ ]
2193
+ },
2194
+ {
2195
+ "family": "Chenla",
2196
+ "variants": [
2197
+ "regular"
2198
+ ],
2199
+ "subsets": [
2200
+ "khmer"
2201
+ ]
2202
+ },
2203
+ {
2204
+ "family": "Cherry Cream Soda",
2205
+ "variants": [
2206
+ "regular"
2207
+ ],
2208
+ "subsets": [
2209
+ "latin"
2210
+ ]
2211
+ },
2212
+ {
2213
+ "family": "Cherry Swash",
2214
+ "variants": [
2215
+ "regular",
2216
+ "700"
2217
+ ],
2218
+ "subsets": [
2219
+ "latin",
2220
+ "latin-ext"
2221
+ ]
2222
+ },
2223
+ {
2224
+ "family": "Chewy",
2225
+ "variants": [
2226
+ "regular"
2227
+ ],
2228
+ "subsets": [
2229
+ "latin"
2230
+ ]
2231
+ },
2232
+ {
2233
+ "family": "Chicle",
2234
+ "variants": [
2235
+ "regular"
2236
+ ],
2237
+ "subsets": [
2238
+ "latin",
2239
+ "latin-ext"
2240
+ ]
2241
+ },
2242
+ {
2243
+ "family": "Chilanka",
2244
+ "variants": [
2245
+ "regular"
2246
+ ],
2247
+ "subsets": [
2248
+ "malayalam",
2249
+ "latin"
2250
+ ]
2251
+ },
2252
+ {
2253
+ "family": "Chivo",
2254
+ "variants": [
2255
+ "300",
2256
+ "300italic",
2257
+ "regular",
2258
+ "italic",
2259
+ "700",
2260
+ "700italic",
2261
+ "900",
2262
+ "900italic"
2263
+ ],
2264
+ "subsets": [
2265
+ "latin",
2266
+ "latin-ext"
2267
+ ]
2268
+ },
2269
+ {
2270
+ "family": "Chonburi",
2271
+ "variants": [
2272
+ "regular"
2273
+ ],
2274
+ "subsets": [
2275
+ "vietnamese",
2276
+ "latin",
2277
+ "thai",
2278
+ "latin-ext"
2279
+ ]
2280
+ },
2281
+ {
2282
+ "family": "Cinzel",
2283
+ "variants": [
2284
+ "regular",
2285
+ "700",
2286
+ "900"
2287
+ ],
2288
+ "subsets": [
2289
+ "latin",
2290
+ "latin-ext"
2291
+ ]
2292
+ },
2293
+ {
2294
+ "family": "Cinzel Decorative",
2295
+ "variants": [
2296
+ "regular",
2297
+ "700",
2298
+ "900"
2299
+ ],
2300
+ "subsets": [
2301
+ "latin"
2302
+ ]
2303
+ },
2304
+ {
2305
+ "family": "Clicker Script",
2306
+ "variants": [
2307
+ "regular"
2308
+ ],
2309
+ "subsets": [
2310
+ "latin",
2311
+ "latin-ext"
2312
+ ]
2313
+ },
2314
+ {
2315
+ "family": "Coda",
2316
+ "variants": [
2317
+ "regular",
2318
+ "800"
2319
+ ],
2320
+ "subsets": [
2321
+ "latin",
2322
+ "latin-ext"
2323
+ ]
2324
+ },
2325
+ {
2326
+ "family": "Coda Caption",
2327
+ "variants": [
2328
+ "800"
2329
+ ],
2330
+ "subsets": [
2331
+ "latin",
2332
+ "latin-ext"
2333
+ ]
2334
+ },
2335
+ {
2336
+ "family": "Codystar",
2337
+ "variants": [
2338
+ "300",
2339
+ "regular"
2340
+ ],
2341
+ "subsets": [
2342
+ "latin",
2343
+ "latin-ext"
2344
+ ]
2345
+ },
2346
+ {
2347
+ "family": "Coiny",
2348
+ "variants": [
2349
+ "regular"
2350
+ ],
2351
+ "subsets": [
2352
+ "tamil",
2353
+ "vietnamese",
2354
+ "latin",
2355
+ "latin-ext"
2356
+ ]
2357
+ },
2358
+ {
2359
+ "family": "Combo",
2360
+ "variants": [
2361
+ "regular"
2362
+ ],
2363
+ "subsets": [
2364
+ "latin",
2365
+ "latin-ext"
2366
+ ]
2367
+ },
2368
+ {
2369
+ "family": "Comfortaa",
2370
+ "variants": [
2371
+ "300",
2372
+ "regular",
2373
+ "500",
2374
+ "600",
2375
+ "700"
2376
+ ],
2377
+ "subsets": [
2378
+ "cyrillic",
2379
+ "vietnamese",
2380
+ "cyrillic-ext",
2381
+ "greek",
2382
+ "latin",
2383
+ "latin-ext"
2384
+ ]
2385
+ },
2386
+ {
2387
+ "family": "Coming Soon",
2388
+ "variants": [
2389
+ "regular"
2390
+ ],
2391
+ "subsets": [
2392
+ "latin"
2393
+ ]
2394
+ },
2395
+ {
2396
+ "family": "Concert One",
2397
+ "variants": [
2398
+ "regular"
2399
+ ],
2400
+ "subsets": [
2401
+ "latin",
2402
+ "latin-ext"
2403
+ ]
2404
+ },
2405
+ {
2406
+ "family": "Condiment",
2407
+ "variants": [
2408
+ "regular"
2409
+ ],
2410
+ "subsets": [
2411
+ "latin",
2412
+ "latin-ext"
2413
+ ]
2414
+ },
2415
+ {
2416
+ "family": "Content",
2417
+ "variants": [
2418
+ "regular",
2419
+ "700"
2420
+ ],
2421
+ "subsets": [
2422
+ "khmer"
2423
+ ]
2424
+ },
2425
+ {
2426
+ "family": "Contrail One",
2427
+ "variants": [
2428
+ "regular"
2429
+ ],
2430
+ "subsets": [
2431
+ "latin"
2432
+ ]
2433
+ },
2434
+ {
2435
+ "family": "Convergence",
2436
+ "variants": [
2437
+ "regular"
2438
+ ],
2439
+ "subsets": [
2440
+ "latin"
2441
+ ]
2442
+ },
2443
+ {
2444
+ "family": "Cookie",
2445
+ "variants": [
2446
+ "regular"
2447
+ ],
2448
+ "subsets": [
2449
+ "latin"
2450
+ ]
2451
+ },
2452
+ {
2453
+ "family": "Copse",
2454
+ "variants": [
2455
+ "regular"
2456
+ ],
2457
+ "subsets": [
2458
+ "latin"
2459
+ ]
2460
+ },
2461
+ {
2462
+ "family": "Corben",
2463
+ "variants": [
2464
+ "regular",
2465
+ "700"
2466
+ ],
2467
+ "subsets": [
2468
+ "latin",
2469
+ "latin-ext"
2470
+ ]
2471
+ },
2472
+ {
2473
+ "family": "Cormorant",
2474
+ "variants": [
2475
+ "300",
2476
+ "300italic",
2477
+ "regular",
2478
+ "italic",
2479
+ "500",
2480
+ "500italic",
2481
+ "600",
2482
+ "600italic",
2483
+ "700",
2484
+ "700italic"
2485
+ ],
2486
+ "subsets": [
2487
+ "cyrillic",
2488
+ "vietnamese",
2489
+ "cyrillic-ext",
2490
+ "latin",
2491
+ "latin-ext"
2492
+ ]
2493
+ },
2494
+ {
2495
+ "family": "Cormorant Garamond",
2496
+ "variants": [
2497
+ "300",
2498
+ "300italic",
2499
+ "regular",
2500
+ "italic",
2501
+ "500",
2502
+ "500italic",
2503
+ "600",
2504
+ "600italic",
2505
+ "700",
2506
+ "700italic"
2507
+ ],
2508
+ "subsets": [
2509
+ "cyrillic",
2510
+ "vietnamese",
2511
+ "cyrillic-ext",
2512
+ "latin",
2513
+ "latin-ext"
2514
+ ]
2515
+ },
2516
+ {
2517
+ "family": "Cormorant Infant",
2518
+ "variants": [
2519
+ "300",
2520
+ "300italic",
2521
+ "regular",
2522
+ "italic",
2523
+ "500",
2524
+ "500italic",
2525
+ "600",
2526
+ "600italic",
2527
+ "700",
2528
+ "700italic"
2529
+ ],
2530
+ "subsets": [
2531
+ "cyrillic",
2532
+ "vietnamese",
2533
+ "cyrillic-ext",
2534
+ "latin",
2535
+ "latin-ext"
2536
+ ]
2537
+ },
2538
+ {
2539
+ "family": "Cormorant SC",
2540
+ "variants": [
2541
+ "300",
2542
+ "regular",
2543
+ "500",
2544
+ "600",
2545
+ "700"
2546
+ ],
2547
+ "subsets": [
2548
+ "cyrillic",
2549
+ "vietnamese",
2550
+ "cyrillic-ext",
2551
+ "latin",
2552
+ "latin-ext"
2553
+ ]
2554
+ },
2555
+ {
2556
+ "family": "Cormorant Unicase",
2557
+ "variants": [
2558
+ "300",
2559
+ "regular",
2560
+ "500",
2561
+ "600",
2562
+ "700"
2563
+ ],
2564
+ "subsets": [
2565
+ "cyrillic",
2566
+ "vietnamese",
2567
+ "cyrillic-ext",
2568
+ "latin",
2569
+ "latin-ext"
2570
+ ]
2571
+ },
2572
+ {
2573
+ "family": "Cormorant Upright",
2574
+ "variants": [
2575
+ "300",
2576
+ "regular",
2577
+ "500",
2578
+ "600",
2579
+ "700"
2580
+ ],
2581
+ "subsets": [
2582
+ "vietnamese",
2583
+ "latin",
2584
+ "latin-ext"
2585
+ ]
2586
+ },
2587
+ {
2588
+ "family": "Courgette",
2589
+ "variants": [
2590
+ "regular"
2591
+ ],
2592
+ "subsets": [
2593
+ "latin",
2594
+ "latin-ext"
2595
+ ]
2596
+ },
2597
+ {
2598
+ "family": "Cousine",
2599
+ "variants": [
2600
+ "regular",
2601
+ "italic",
2602
+ "700",
2603
+ "700italic"
2604
+ ],
2605
+ "subsets": [
2606
+ "hebrew",
2607
+ "cyrillic",
2608
+ "vietnamese",
2609
+ "cyrillic-ext",
2610
+ "greek-ext",
2611
+ "greek",
2612
+ "latin",
2613
+ "latin-ext"
2614
+ ]
2615
+ },
2616
+ {
2617
+ "family": "Coustard",
2618
+ "variants": [
2619
+ "regular",
2620
+ "900"
2621
+ ],
2622
+ "subsets": [
2623
+ "latin"
2624
+ ]
2625
+ },
2626
+ {
2627
+ "family": "Covered By Your Grace",
2628
+ "variants": [
2629
+ "regular"
2630
+ ],
2631
+ "subsets": [
2632
+ "latin"
2633
+ ]
2634
+ },
2635
+ {
2636
+ "family": "Crafty Girls",
2637
+ "variants": [
2638
+ "regular"
2639
+ ],
2640
+ "subsets": [
2641
+ "latin"
2642
+ ]
2643
+ },
2644
+ {
2645
+ "family": "Creepster",
2646
+ "variants": [
2647
+ "regular"
2648
+ ],
2649
+ "subsets": [
2650
+ "latin"
2651
+ ]
2652
+ },
2653
+ {
2654
+ "family": "Crete Round",
2655
+ "variants": [
2656
+ "regular",
2657
+ "italic"
2658
+ ],
2659
+ "subsets": [
2660
+ "latin",
2661
+ "latin-ext"
2662
+ ]
2663
+ },
2664
+ {
2665
+ "family": "Crimson Pro",
2666
+ "variants": [
2667
+ "200",
2668
+ "200italic",
2669
+ "300",
2670
+ "300italic",
2671
+ "regular",
2672
+ "italic",
2673
+ "500",
2674
+ "500italic",
2675
+ "600",
2676
+ "600italic",
2677
+ "700",
2678
+ "700italic",
2679
+ "800",
2680
+ "800italic",
2681
+ "900",
2682
+ "900italic"
2683
+ ],
2684
+ "subsets": [
2685
+ "vietnamese",
2686
+ "latin",
2687
+ "latin-ext"
2688
+ ]
2689
+ },
2690
+ {
2691
+ "family": "Crimson Text",
2692
+ "variants": [
2693
+ "regular",
2694
+ "italic",
2695
+ "600",
2696
+ "600italic",
2697
+ "700",
2698
+ "700italic"
2699
+ ],
2700
+ "subsets": [
2701
+ "latin"
2702
+ ]
2703
+ },
2704
+ {
2705
+ "family": "Croissant One",
2706
+ "variants": [
2707
+ "regular"
2708
+ ],
2709
+ "subsets": [
2710
+ "latin",
2711
+ "latin-ext"
2712
+ ]
2713
+ },
2714
+ {
2715
+ "family": "Crushed",
2716
+ "variants": [
2717
+ "regular"
2718
+ ],
2719
+ "subsets": [
2720
+ "latin"
2721
+ ]
2722
+ },
2723
+ {
2724
+ "family": "Cuprum",
2725
+ "variants": [
2726
+ "regular",
2727
+ "italic",
2728
+ "700",
2729
+ "700italic"
2730
+ ],
2731
+ "subsets": [
2732
+ "cyrillic",
2733
+ "vietnamese",
2734
+ "cyrillic-ext",
2735
+ "latin",
2736
+ "latin-ext"
2737
+ ]
2738
+ },
2739
+ {
2740
+ "family": "Cute Font",
2741
+ "variants": [
2742
+ "regular"
2743
+ ],
2744
+ "subsets": [
2745
+ "latin",
2746
+ "korean"
2747
+ ]
2748
+ },
2749
+ {
2750
+ "family": "Cutive",
2751
+ "variants": [
2752
+ "regular"
2753
+ ],
2754
+ "subsets": [
2755
+ "latin",
2756
+ "latin-ext"
2757
+ ]
2758
+ },
2759
+ {
2760
+ "family": "Cutive Mono",
2761
+ "variants": [
2762
+ "regular"
2763
+ ],
2764
+ "subsets": [
2765
+ "latin",
2766
+ "latin-ext"
2767
+ ]
2768
+ },
2769
+ {
2770
+ "family": "DM Sans",
2771
+ "variants": [
2772
+ "regular",
2773
+ "italic",
2774
+ "500",
2775
+ "500italic",
2776
+ "700",
2777
+ "700italic"
2778
+ ],
2779
+ "subsets": [
2780
+ "latin",
2781
+ "latin-ext"
2782
+ ]
2783
+ },
2784
+ {
2785
+ "family": "DM Serif Display",
2786
+ "variants": [
2787
+ "regular",
2788
+ "italic"
2789
+ ],
2790
+ "subsets": [
2791
+ "latin",
2792
+ "latin-ext"
2793
+ ]
2794
+ },
2795
+ {
2796
+ "family": "DM Serif Text",
2797
+ "variants": [
2798
+ "regular",
2799
+ "italic"
2800
+ ],
2801
+ "subsets": [
2802
+ "latin",
2803
+ "latin-ext"
2804
+ ]
2805
+ },
2806
+ {
2807
+ "family": "Damion",
2808
+ "variants": [
2809
+ "regular"
2810
+ ],
2811
+ "subsets": [
2812
+ "latin"
2813
+ ]
2814
+ },
2815
+ {
2816
+ "family": "Dancing Script",
2817
+ "variants": [
2818
+ "regular",
2819
+ "700"
2820
+ ],
2821
+ "subsets": [
2822
+ "vietnamese",
2823
+ "latin",
2824
+ "latin-ext"
2825
+ ]
2826
+ },
2827
+ {
2828
+ "family": "Dangrek",
2829
+ "variants": [
2830
+ "regular"
2831
+ ],
2832
+ "subsets": [
2833
+ "khmer"
2834
+ ]
2835
+ },
2836
+ {
2837
+ "family": "Darker Grotesque",
2838
+ "variants": [
2839
+ "300",
2840
+ "regular",
2841
+ "500",
2842
+ "600",
2843
+ "700",
2844
+ "800",
2845
+ "900"
2846
+ ],
2847
+ "subsets": [
2848
+ "vietnamese",
2849
+ "latin",
2850
+ "latin-ext"
2851
+ ]
2852
+ },
2853
+ {
2854
+ "family": "David Libre",
2855
+ "variants": [
2856
+ "regular",
2857
+ "500",
2858
+ "700"
2859
+ ],
2860
+ "subsets": [
2861
+ "hebrew",
2862
+ "vietnamese",
2863
+ "latin",
2864
+ "latin-ext"
2865
+ ]
2866
+ },
2867
+ {
2868
+ "family": "Dawning of a New Day",
2869
+ "variants": [
2870
+ "regular"
2871
+ ],
2872
+ "subsets": [
2873
+ "latin"
2874
+ ]
2875
+ },
2876
+ {
2877
+ "family": "Days One",
2878
+ "variants": [
2879
+ "regular"
2880
+ ],
2881
+ "subsets": [
2882
+ "latin"
2883
+ ]
2884
+ },
2885
+ {
2886
+ "family": "Dekko",
2887
+ "variants": [
2888
+ "regular"
2889
+ ],
2890
+ "subsets": [
2891
+ "devanagari",
2892
+ "latin",
2893
+ "latin-ext"
2894
+ ]
2895
+ },
2896
+ {
2897
+ "family": "Delius",
2898
+ "variants": [
2899
+ "regular"
2900
+ ],
2901
+ "subsets": [
2902
+ "latin"
2903
+ ]
2904
+ },
2905
+ {
2906
+ "family": "Delius Swash Caps",
2907
+ "variants": [
2908
+ "regular"
2909
+ ],
2910
+ "subsets": [
2911
+ "latin"
2912
+ ]
2913
+ },
2914
+ {
2915
+ "family": "Delius Unicase",
2916
+ "variants": [
2917
+ "regular",
2918
+ "700"
2919
+ ],
2920
+ "subsets": [
2921
+ "latin"
2922
+ ]
2923
+ },
2924
+ {
2925
+ "family": "Della Respira",
2926
+ "variants": [
2927
+ "regular"
2928
+ ],
2929
+ "subsets": [
2930
+ "latin"
2931
+ ]
2932
+ },
2933
+ {
2934
+ "family": "Denk One",
2935
+ "variants": [
2936
+ "regular"
2937
+ ],
2938
+ "subsets": [
2939
+ "latin",
2940
+ "latin-ext"
2941
+ ]
2942
+ },
2943
+ {
2944
+ "family": "Devonshire",
2945
+ "variants": [
2946
+ "regular"
2947
+ ],
2948
+ "subsets": [
2949
+ "latin",
2950
+ "latin-ext"
2951
+ ]
2952
+ },
2953
+ {
2954
+ "family": "Dhurjati",
2955
+ "variants": [
2956
+ "regular"
2957
+ ],
2958
+ "subsets": [
2959
+ "telugu",
2960
+ "latin"
2961
+ ]
2962
+ },
2963
+ {
2964
+ "family": "Didact Gothic",
2965
+ "variants": [
2966
+ "regular"
2967
+ ],
2968
+ "subsets": [
2969
+ "cyrillic",
2970
+ "cyrillic-ext",
2971
+ "greek-ext",
2972
+ "greek",
2973
+ "latin",
2974
+ "latin-ext"
2975
+ ]
2976
+ },
2977
+ {
2978
+ "family": "Diplomata",
2979
+ "variants": [
2980
+ "regular"
2981
+ ],
2982
+ "subsets": [
2983
+ "latin",
2984
+ "latin-ext"
2985
+ ]
2986
+ },
2987
+ {
2988
+ "family": "Diplomata SC",
2989
+ "variants": [
2990
+ "regular"
2991
+ ],
2992
+ "subsets": [
2993
+ "latin",
2994
+ "latin-ext"
2995
+ ]
2996
+ },
2997
+ {
2998
+ "family": "Do Hyeon",
2999
+ "variants": [
3000
+ "regular"
3001
+ ],
3002
+ "subsets": [
3003
+ "latin",
3004
+ "korean"
3005
+ ]
3006
+ },
3007
+ {
3008
+ "family": "Dokdo",
3009
+ "variants": [
3010
+ "regular"
3011
+ ],
3012
+ "subsets": [
3013
+ "latin",
3014
+ "korean"
3015
+ ]
3016
+ },
3017
+ {
3018
+ "family": "Domine",
3019
+ "variants": [
3020
+ "regular",
3021
+ "700"
3022
+ ],
3023
+ "subsets": [
3024
+ "latin",
3025
+ "latin-ext"
3026
+ ]
3027
+ },
3028
+ {
3029
+ "family": "Donegal One",
3030
+ "variants": [
3031
+ "regular"
3032
+ ],
3033
+ "subsets": [
3034
+ "latin",
3035
+ "latin-ext"
3036
+ ]
3037
+ },
3038
+ {
3039
+ "family": "Doppio One",
3040
+ "variants": [
3041
+ "regular"
3042
+ ],
3043
+ "subsets": [
3044
+ "latin",
3045
+ "latin-ext"
3046
+ ]
3047
+ },
3048
+ {
3049
+ "family": "Dorsa",
3050
+ "variants": [
3051
+ "regular"
3052
+ ],
3053
+ "subsets": [
3054
+ "latin"
3055
+ ]
3056
+ },
3057
+ {
3058
+ "family": "Dosis",
3059
+ "variants": [
3060
+ "200",
3061
+ "300",
3062
+ "regular",
3063
+ "500",
3064
+ "600",
3065
+ "700",
3066
+ "800"
3067
+ ],
3068
+ "subsets": [
3069
+ "vietnamese",
3070
+ "latin",
3071
+ "latin-ext"
3072
+ ]
3073
+ },
3074
+ {
3075
+ "family": "Dr Sugiyama",
3076
+ "variants": [
3077
+ "regular"
3078
+ ],
3079
+ "subsets": [
3080
+ "latin",
3081
+ "latin-ext"
3082
+ ]
3083
+ },
3084
+ {
3085
+ "family": "Duru Sans",
3086
+ "variants": [
3087
+ "regular"
3088
+ ],
3089
+ "subsets": [
3090
+ "latin",
3091
+ "latin-ext"
3092
+ ]
3093
+ },
3094
+ {
3095
+ "family": "Dynalight",
3096
+ "variants": [
3097
+ "regular"
3098
+ ],
3099
+ "subsets": [
3100
+ "latin",
3101
+ "latin-ext"
3102
+ ]
3103
+ },
3104
+ {
3105
+ "family": "EB Garamond",
3106
+ "variants": [
3107
+ "regular",
3108
+ "italic",
3109
+ "500",
3110
+ "500italic",
3111
+ "600",
3112
+ "600italic",
3113
+ "700",
3114
+ "700italic",
3115
+ "800",
3116
+ "800italic"
3117
+ ],
3118
+ "subsets": [
3119
+ "cyrillic",
3120
+ "vietnamese",
3121
+ "cyrillic-ext",
3122
+ "greek-ext",
3123
+ "greek",
3124
+ "latin",
3125
+ "latin-ext"
3126
+ ]
3127
+ },
3128
+ {
3129
+ "family": "Eagle Lake",
3130
+ "variants": [
3131
+ "regular"
3132
+ ],
3133
+ "subsets": [
3134
+ "latin",
3135
+ "latin-ext"
3136
+ ]
3137
+ },
3138
+ {
3139
+ "family": "East Sea Dokdo",
3140
+ "variants": [
3141
+ "regular"
3142
+ ],
3143
+ "subsets": [
3144
+ "latin",
3145
+ "korean"
3146
+ ]
3147
+ },
3148
+ {
3149
+ "family": "Eater",
3150
+ "variants": [
3151
+ "regular"
3152
+ ],
3153
+ "subsets": [
3154
+ "latin",
3155
+ "latin-ext"
3156
+ ]
3157
+ },
3158
+ {
3159
+ "family": "Economica",
3160
+ "variants": [
3161
+ "regular",
3162
+ "italic",
3163
+ "700",
3164
+ "700italic"
3165
+ ],
3166
+ "subsets": [
3167
+ "latin",
3168
+ "latin-ext"
3169
+ ]
3170
+ },
3171
+ {
3172
+ "family": "Eczar",
3173
+ "variants": [
3174
+ "regular",
3175
+ "500",
3176
+ "600",
3177
+ "700",
3178
+ "800"
3179
+ ],
3180
+ "subsets": [
3181
+ "devanagari",
3182
+ "latin",
3183
+ "latin-ext"
3184
+ ]
3185
+ },
3186
+ {
3187
+ "family": "El Messiri",
3188
+ "variants": [
3189
+ "regular",
3190
+ "500",
3191
+ "600",
3192
+ "700"
3193
+ ],
3194
+ "subsets": [
3195
+ "arabic",
3196
+ "cyrillic",
3197
+ "latin"
3198
+ ]
3199
+ },
3200
+ {
3201
+ "family": "Electrolize",
3202
+ "variants": [
3203
+ "regular"
3204
+ ],
3205
+ "subsets": [
3206
+ "latin"
3207
+ ]
3208
+ },
3209
+ {
3210
+ "family": "Elsie",
3211
+ "variants": [
3212
+ "regular",
3213
+ "900"
3214
+ ],
3215
+ "subsets": [
3216
+ "latin",
3217
+ "latin-ext"
3218
+ ]
3219
+ },
3220
+ {
3221
+ "family": "Elsie Swash Caps",
3222
+ "variants": [
3223
+ "regular",
3224
+ "900"
3225
+ ],
3226
+ "subsets": [
3227
+ "latin",
3228
+ "latin-ext"
3229
+ ]
3230
+ },
3231
+ {
3232
+ "family": "Emblema One",
3233
+ "variants": [
3234
+ "regular"
3235
+ ],
3236
+ "subsets": [
3237
+ "latin",
3238
+ "latin-ext"
3239
+ ]
3240
+ },
3241
+ {
3242
+ "family": "Emilys Candy",
3243
+ "variants": [
3244
+ "regular"
3245
+ ],
3246
+ "subsets": [
3247
+ "latin",
3248
+ "latin-ext"
3249
+ ]
3250
+ },
3251
+ {
3252
+ "family": "Encode Sans",
3253
+ "variants": [
3254
+ "100",
3255
+ "200",
3256
+ "300",
3257
+ "regular",
3258
+ "500",
3259
+ "600",
3260
+ "700",
3261
+ "800",
3262
+ "900"
3263
+ ],
3264
+ "subsets": [
3265
+ "vietnamese",
3266
+ "latin",
3267
+ "latin-ext"
3268
+ ]
3269
+ },
3270
+ {
3271
+ "family": "Encode Sans Condensed",
3272
+ "variants": [
3273
+ "100",
3274
+ "200",
3275
+ "300",
3276
+ "regular",
3277
+ "500",
3278
+ "600",
3279
+ "700",
3280
+ "800",
3281
+ "900"
3282
+ ],
3283
+ "subsets": [
3284
+ "vietnamese",
3285
+ "latin",
3286
+ "latin-ext"
3287
+ ]
3288
+ },
3289
+ {
3290
+ "family": "Encode Sans Expanded",
3291
+ "variants": [
3292
+ "100",
3293
+ "200",
3294
+ "300",
3295
+ "regular",
3296
+ "500",
3297
+ "600",
3298
+ "700",
3299
+ "800",
3300
+ "900"
3301
+ ],
3302
+ "subsets": [
3303
+ "vietnamese",
3304
+ "latin",
3305
+ "latin-ext"
3306
+ ]
3307
+ },
3308
+ {
3309
+ "family": "Encode Sans Semi Condensed",
3310
+ "variants": [
3311
+ "100",
3312
+ "200",
3313
+ "300",
3314
+ "regular",
3315
+ "500",
3316
+ "600",
3317
+ "700",
3318
+ "800",
3319
+ "900"
3320
+ ],
3321
+ "subsets": [
3322
+ "vietnamese",
3323
+ "latin",
3324
+ "latin-ext"
3325
+ ]
3326
+ },
3327
+ {
3328
+ "family": "Encode Sans Semi Expanded",
3329
+ "variants": [
3330
+ "100",
3331
+ "200",
3332
+ "300",
3333
+ "regular",
3334
+ "500",
3335
+ "600",
3336
+ "700",
3337
+ "800",
3338
+ "900"
3339
+ ],
3340
+ "subsets": [
3341
+ "vietnamese",
3342
+ "latin",
3343
+ "latin-ext"
3344
+ ]
3345
+ },
3346
+ {
3347
+ "family": "Engagement",
3348
+ "variants": [
3349
+ "regular"
3350
+ ],
3351
+ "subsets": [
3352
+ "latin"
3353
+ ]
3354
+ },
3355
+ {
3356
+ "family": "Englebert",
3357
+ "variants": [
3358
+ "regular"
3359
+ ],
3360
+ "subsets": [
3361
+ "latin",
3362
+ "latin-ext"
3363
+ ]
3364
+ },
3365
+ {
3366
+ "family": "Enriqueta",
3367
+ "variants": [
3368
+ "regular",
3369
+ "500",
3370
+ "600",
3371
+ "700"
3372
+ ],
3373
+ "subsets": [
3374
+ "latin",
3375
+ "latin-ext"
3376
+ ]
3377
+ },
3378
+ {
3379
+ "family": "Erica One",
3380
+ "variants": [
3381
+ "regular"
3382
+ ],
3383
+ "subsets": [
3384
+ "latin",
3385
+ "latin-ext"
3386
+ ]
3387
+ },
3388
+ {
3389
+ "family": "Esteban",
3390
+ "variants": [
3391
+ "regular"
3392
+ ],
3393
+ "subsets": [
3394
+ "latin",
3395
+ "latin-ext"
3396
+ ]
3397
+ },
3398
+ {
3399
+ "family": "Euphoria Script",
3400
+ "variants": [
3401
+ "regular"
3402
+ ],
3403
+ "subsets": [
3404
+ "latin",
3405
+ "latin-ext"
3406
+ ]
3407
+ },
3408
+ {
3409
+ "family": "Ewert",
3410
+ "variants": [
3411
+ "regular"
3412
+ ],
3413
+ "subsets": [
3414
+ "latin",
3415
+ "latin-ext"
3416
+ ]
3417
+ },
3418
+ {
3419
+ "family": "Exo",
3420
+ "variants": [
3421
+ "100",
3422
+ "100italic",
3423
+ "200",
3424
+ "200italic",
3425
+ "300",
3426
+ "300italic",
3427
+ "regular",
3428
+ "italic",
3429
+ "500",
3430
+ "500italic",
3431
+ "600",
3432
+ "600italic",
3433
+ "700",
3434
+ "700italic",
3435
+ "800",
3436
+ "800italic",
3437
+ "900",
3438
+ "900italic"
3439
+ ],
3440
+ "subsets": [
3441
+ "vietnamese",
3442
+ "latin",
3443
+ "latin-ext"
3444
+ ]
3445
+ },
3446
+ {
3447
+ "family": "Exo 2",
3448
+ "variants": [
3449
+ "100",
3450
+ "100italic",
3451
+ "200",
3452
+ "200italic",
3453
+ "300",
3454
+ "300italic",
3455
+ "regular",
3456
+ "italic",
3457
+ "500",
3458
+ "500italic",
3459
+ "600",
3460
+ "600italic",
3461
+ "700",
3462
+ "700italic",
3463
+ "800",
3464
+ "800italic",
3465
+ "900",
3466
+ "900italic"
3467
+ ],
3468
+ "subsets": [
3469
+ "cyrillic",
3470
+ "latin",
3471
+ "latin-ext"
3472
+ ]
3473
+ },
3474
+ {
3475
+ "family": "Expletus Sans",
3476
+ "variants": [
3477
+ "regular",
3478
+ "italic",
3479
+ "500",
3480
+ "500italic",
3481
+ "600",
3482
+ "600italic",
3483
+ "700",
3484
+ "700italic"
3485
+ ],
3486
+ "subsets": [
3487
+ "latin"
3488
+ ]
3489
+ },
3490
+ {
3491
+ "family": "Fahkwang",
3492
+ "variants": [
3493
+ "200",
3494
+ "200italic",
3495
+ "300",
3496
+ "300italic",
3497
+ "regular",
3498
+ "italic",
3499
+ "500",
3500
+ "500italic",
3501
+ "600",
3502
+ "600italic",
3503
+ "700",
3504
+ "700italic"
3505
+ ],
3506
+ "subsets": [
3507
+ "vietnamese",
3508
+ "latin",
3509
+ "thai",
3510
+ "latin-ext"
3511
+ ]
3512
+ },
3513
+ {
3514
+ "family": "Fanwood Text",
3515
+ "variants": [
3516
+ "regular",
3517
+ "italic"
3518
+ ],
3519
+ "subsets": [
3520
+ "latin"
3521
+ ]
3522
+ },
3523
+ {
3524
+ "family": "Farro",
3525
+ "variants": [
3526
+ "300",
3527
+ "regular",
3528
+ "500",
3529
+ "700"
3530
+ ],
3531
+ "subsets": [
3532
+ "latin",
3533
+ "latin-ext"
3534
+ ]
3535
+ },
3536
+ {
3537
+ "family": "Farsan",
3538
+ "variants": [
3539
+ "regular"
3540
+ ],
3541
+ "subsets": [
3542
+ "gujarati",
3543
+ "vietnamese",
3544
+ "latin",
3545
+ "latin-ext"
3546
+ ]
3547
+ },
3548
+ {
3549
+ "family": "Fascinate",
3550
+ "variants": [
3551
+ "regular"
3552
+ ],
3553
+ "subsets": [
3554
+ "latin"
3555
+ ]
3556
+ },
3557
+ {
3558
+ "family": "Fascinate Inline",
3559
+ "variants": [
3560
+ "regular"
3561
+ ],
3562
+ "subsets": [
3563
+ "latin"
3564
+ ]
3565
+ },
3566
+ {
3567
+ "family": "Faster One",
3568
+ "variants": [
3569
+ "regular"
3570
+ ],
3571
+ "subsets": [
3572
+ "latin"
3573
+ ]
3574
+ },
3575
+ {
3576
+ "family": "Fasthand",
3577
+ "variants": [
3578
+ "regular"
3579
+ ],
3580
+ "subsets": [
3581
+ "khmer"
3582
+ ]
3583
+ },
3584
+ {
3585
+ "family": "Fauna One",
3586
+ "variants": [
3587
+ "regular"
3588
+ ],
3589
+ "subsets": [
3590
+ "latin",
3591
+ "latin-ext"
3592
+ ]
3593
+ },
3594
+ {
3595
+ "family": "Faustina",
3596
+ "variants": [
3597
+ "regular",
3598
+ "italic",
3599
+ "500",
3600
+ "500italic",
3601
+ "600",
3602
+ "600italic",
3603
+ "700",
3604
+ "700italic"
3605
+ ],
3606
+ "subsets": [
3607
+ "vietnamese",
3608
+ "latin",
3609
+ "latin-ext"
3610
+ ]
3611
+ },
3612
+ {
3613
+ "family": "Federant",
3614
+ "variants": [
3615
+ "regular"
3616
+ ],
3617
+ "subsets": [
3618
+ "latin"
3619
+ ]
3620
+ },
3621
+ {
3622
+ "family": "Federo",
3623
+ "variants": [
3624
+ "regular"
3625
+ ],
3626
+ "subsets": [
3627
+ "latin"
3628
+ ]
3629
+ },
3630
+ {
3631
+ "family": "Felipa",
3632
+ "variants": [
3633
+ "regular"
3634
+ ],
3635
+ "subsets": [
3636
+ "latin",
3637
+ "latin-ext"
3638
+ ]
3639
+ },
3640
+ {
3641
+ "family": "Fenix",
3642
+ "variants": [
3643
+ "regular"
3644
+ ],
3645
+ "subsets": [
3646
+ "latin",
3647
+ "latin-ext"
3648
+ ]
3649
+ },
3650
+ {
3651
+ "family": "Finger Paint",
3652
+ "variants": [
3653
+ "regular"
3654
+ ],
3655
+ "subsets": [
3656
+ "latin"
3657
+ ]
3658
+ },
3659
+ {
3660
+ "family": "Fira Code",
3661
+ "variants": [
3662
+ "300",
3663
+ "regular",
3664
+ "500",
3665
+ "600",
3666
+ "700"
3667
+ ],
3668
+ "subsets": [
3669
+ "cyrillic",
3670
+ "cyrillic-ext",
3671
+ "greek-ext",
3672
+ "greek",
3673
+ "latin",
3674
+ "latin-ext"
3675
+ ]
3676
+ },
3677
+ {
3678
+ "family": "Fira Mono",
3679
+ "variants": [
3680
+ "regular",
3681
+ "500",
3682
+ "700"
3683
+ ],
3684
+ "subsets": [
3685
+ "cyrillic",
3686
+ "cyrillic-ext",
3687
+ "greek-ext",
3688
+ "greek",
3689
+ "latin",
3690
+ "latin-ext"
3691
+ ]
3692
+ },
3693
+ {
3694
+ "family": "Fira Sans",
3695
+ "variants": [
3696
+ "100",
3697
+ "100italic",
3698
+ "200",
3699
+ "200italic",
3700
+ "300",
3701
+ "300italic",
3702
+ "regular",
3703
+ "italic",
3704
+ "500",
3705
+ "500italic",
3706
+ "600",
3707
+ "600italic",
3708
+ "700",
3709
+ "700italic",
3710
+ "800",
3711
+ "800italic",
3712
+ "900",
3713
+ "900italic"
3714
+ ],
3715
+ "subsets": [
3716
+ "cyrillic",
3717
+ "vietnamese",
3718
+ "cyrillic-ext",
3719
+ "greek-ext",
3720
+ "greek",
3721
+ "latin",
3722
+ "latin-ext"
3723
+ ]
3724
+ },
3725
+ {
3726
+ "family": "Fira Sans Condensed",
3727
+ "variants": [
3728
+ "100",
3729
+ "100italic",
3730
+ "200",
3731
+ "200italic",
3732
+ "300",
3733
+ "300italic",
3734
+ "regular",
3735
+ "italic",
3736
+ "500",
3737
+ "500italic",
3738
+ "600",
3739
+ "600italic",
3740
+ "700",
3741
+ "700italic",
3742
+ "800",
3743
+ "800italic",
3744
+ "900",
3745
+ "900italic"
3746
+ ],
3747
+ "subsets": [
3748
+ "cyrillic",
3749
+ "vietnamese",
3750
+ "cyrillic-ext",
3751
+ "greek-ext",
3752
+ "greek",
3753
+ "latin",
3754
+ "latin-ext"
3755
+ ]
3756
+ },
3757
+ {
3758
+ "family": "Fira Sans Extra Condensed",
3759
+ "variants": [
3760
+ "100",
3761
+ "100italic",
3762
+ "200",
3763
+ "200italic",
3764
+ "300",
3765
+ "300italic",
3766
+ "regular",
3767
+ "italic",
3768
+ "500",
3769
+ "500italic",
3770
+ "600",
3771
+ "600italic",
3772
+ "700",
3773
+ "700italic",
3774
+ "800",
3775
+ "800italic",
3776
+ "900",
3777
+ "900italic"
3778
+ ],
3779
+ "subsets": [
3780
+ "cyrillic",
3781
+ "vietnamese",
3782
+ "cyrillic-ext",
3783
+ "greek-ext",
3784
+ "greek",
3785
+ "latin",
3786
+ "latin-ext"
3787
+ ]
3788
+ },
3789
+ {
3790
+ "family": "Fjalla One",
3791
+ "variants": [
3792
+ "regular"
3793
+ ],
3794
+ "subsets": [
3795
+ "latin",
3796
+ "latin-ext"
3797
+ ]
3798
+ },
3799
+ {
3800
+ "family": "Fjord One",
3801
+ "variants": [
3802
+ "regular"
3803
+ ],
3804
+ "subsets": [
3805
+ "latin"
3806
+ ]
3807
+ },
3808
+ {
3809
+ "family": "Flamenco",
3810
+ "variants": [
3811
+ "300",
3812
+ "regular"
3813
+ ],
3814
+ "subsets": [
3815
+ "latin"
3816
+ ]
3817
+ },
3818
+ {
3819
+ "family": "Flavors",
3820
+ "variants": [
3821
+ "regular"
3822
+ ],
3823
+ "subsets": [
3824
+ "latin",
3825
+ "latin-ext"
3826
+ ]
3827
+ },
3828
+ {
3829
+ "family": "Fondamento",
3830
+ "variants": [
3831
+ "regular",
3832
+ "italic"
3833
+ ],
3834
+ "subsets": [
3835
+ "latin",
3836
+ "latin-ext"
3837
+ ]
3838
+ },
3839
+ {
3840
+ "family": "Fontdiner Swanky",
3841
+ "variants": [
3842
+ "regular"
3843
+ ],
3844
+ "subsets": [
3845
+ "latin"
3846
+ ]
3847
+ },
3848
+ {
3849
+ "family": "Forum",
3850
+ "variants": [
3851
+ "regular"
3852
+ ],
3853
+ "subsets": [
3854
+ "cyrillic",
3855
+ "cyrillic-ext",
3856
+ "latin",
3857
+ "latin-ext"
3858
+ ]
3859
+ },
3860
+ {
3861
+ "family": "Francois One",
3862
+ "variants": [
3863
+ "regular"
3864
+ ],
3865
+ "subsets": [
3866
+ "vietnamese",
3867
+ "latin",
3868
+ "latin-ext"
3869
+ ]
3870
+ },
3871
+ {
3872
+ "family": "Frank Ruhl Libre",
3873
+ "variants": [
3874
+ "300",
3875
+ "regular",
3876
+ "500",
3877
+ "700",
3878
+ "900"
3879
+ ],
3880
+ "subsets": [
3881
+ "hebrew",
3882
+ "latin",
3883
+ "latin-ext"
3884
+ ]
3885
+ },
3886
+ {
3887
+ "family": "Freckle Face",
3888
+ "variants": [
3889
+ "regular"
3890
+ ],
3891
+ "subsets": [
3892
+ "latin",
3893
+ "latin-ext"
3894
+ ]
3895
+ },
3896
+ {
3897
+ "family": "Fredericka the Great",
3898
+ "variants": [
3899
+ "regular"
3900
+ ],
3901
+ "subsets": [
3902
+ "latin",
3903
+ "latin-ext"
3904
+ ]
3905
+ },
3906
+ {
3907
+ "family": "Fredoka One",
3908
+ "variants": [
3909
+ "regular"
3910
+ ],
3911
+ "subsets": [
3912
+ "latin"
3913
+ ]
3914
+ },
3915
+ {
3916
+ "family": "Freehand",
3917
+ "variants": [
3918
+ "regular"
3919
+ ],
3920
+ "subsets": [
3921
+ "khmer"
3922
+ ]
3923
+ },
3924
+ {
3925
+ "family": "Fresca",
3926
+ "variants": [
3927
+ "regular"
3928
+ ],
3929
+ "subsets": [
3930
+ "latin",
3931
+ "latin-ext"
3932
+ ]
3933
+ },
3934
+ {
3935
+ "family": "Frijole",
3936
+ "variants": [
3937
+ "regular"
3938
+ ],
3939
+ "subsets": [
3940
+ "latin"
3941
+ ]
3942
+ },
3943
+ {
3944
+ "family": "Fruktur",
3945
+ "variants": [
3946
+ "regular"
3947
+ ],
3948
+ "subsets": [
3949
+ "latin",
3950
+ "latin-ext"
3951
+ ]
3952
+ },
3953
+ {
3954
+ "family": "Fugaz One",
3955
+ "variants": [
3956
+ "regular"
3957
+ ],
3958
+ "subsets": [
3959
+ "latin"
3960
+ ]
3961
+ },
3962
+ {
3963
+ "family": "GFS Didot",
3964
+ "variants": [
3965
+ "regular"
3966
+ ],
3967
+ "subsets": [
3968
+ "greek"
3969
+ ]
3970
+ },
3971
+ {
3972
+ "family": "GFS Neohellenic",
3973
+ "variants": [
3974
+ "regular",
3975
+ "italic",
3976
+ "700",
3977
+ "700italic"
3978
+ ],
3979
+ "subsets": [
3980
+ "greek"
3981
+ ]
3982
+ },
3983
+ {
3984
+ "family": "Gabriela",
3985
+ "variants": [
3986
+ "regular"
3987
+ ],
3988
+ "subsets": [
3989
+ "cyrillic",
3990
+ "cyrillic-ext",
3991
+ "latin"
3992
+ ]
3993
+ },
3994
+ {
3995
+ "family": "Gaegu",
3996
+ "variants": [
3997
+ "300",
3998
+ "regular",
3999
+ "700"
4000
+ ],
4001
+ "subsets": [
4002
+ "latin",
4003
+ "korean"
4004
+ ]
4005
+ },
4006
+ {
4007
+ "family": "Gafata",
4008
+ "variants": [
4009
+ "regular"
4010
+ ],
4011
+ "subsets": [
4012
+ "latin",
4013
+ "latin-ext"
4014
+ ]
4015
+ },
4016
+ {
4017
+ "family": "Galada",
4018
+ "variants": [
4019
+ "regular"
4020
+ ],
4021
+ "subsets": [
4022
+ "latin",
4023
+ "bengali"
4024
+ ]
4025
+ },
4026
+ {
4027
+ "family": "Galdeano",
4028
+ "variants": [
4029
+ "regular"
4030
+ ],
4031
+ "subsets": [
4032
+ "latin"
4033
+ ]
4034
+ },
4035
+ {
4036
+ "family": "Galindo",
4037
+ "variants": [
4038
+ "regular"
4039
+ ],
4040
+ "subsets": [
4041
+ "latin",
4042
+ "latin-ext"
4043
+ ]
4044
+ },
4045
+ {
4046
+ "family": "Gamja Flower",
4047
+ "variants": [
4048
+ "regular"
4049
+ ],
4050
+ "subsets": [
4051
+ "latin",
4052
+ "korean"
4053
+ ]
4054
+ },
4055
+ {
4056
+ "family": "Gayathri",
4057
+ "variants": [
4058
+ "100",
4059
+ "regular",
4060
+ "700"
4061
+ ],
4062
+ "subsets": [
4063
+ "malayalam",
4064
+ "latin"
4065
+ ]
4066
+ },
4067
+ {
4068
+ "family": "Gentium Basic",
4069
+ "variants": [
4070
+ "regular",
4071
+ "italic",
4072
+ "700",
4073
+ "700italic"
4074
+ ],
4075
+ "subsets": [
4076
+ "latin",
4077
+ "latin-ext"
4078
+ ]
4079
+ },
4080
+ {
4081
+ "family": "Gentium Book Basic",
4082
+ "variants": [
4083
+ "regular",
4084
+ "italic",
4085
+ "700",
4086
+ "700italic"
4087
+ ],
4088
+ "subsets": [
4089
+ "latin",
4090
+ "latin-ext"
4091
+ ]
4092
+ },
4093
+ {
4094
+ "family": "Geo",
4095
+ "variants": [
4096
+ "regular",
4097
+ "italic"
4098
+ ],
4099
+ "subsets": [
4100
+ "latin"
4101
+ ]
4102
+ },
4103
+ {
4104
+ "family": "Geostar",
4105
+ "variants": [
4106
+ "regular"
4107
+ ],
4108
+ "subsets": [
4109
+ "latin"
4110
+ ]
4111
+ },
4112
+ {
4113
+ "family": "Geostar Fill",
4114
+ "variants": [
4115
+ "regular"
4116
+ ],
4117
+ "subsets": [
4118
+ "latin"
4119
+ ]
4120
+ },
4121
+ {
4122
+ "family": "Germania One",
4123
+ "variants": [
4124
+ "regular"
4125
+ ],
4126
+ "subsets": [
4127
+ "latin"
4128
+ ]
4129
+ },
4130
+ {
4131
+ "family": "Gidugu",
4132
+ "variants": [
4133
+ "regular"
4134
+ ],
4135
+ "subsets": [
4136
+ "telugu",
4137
+ "latin"
4138
+ ]
4139
+ },
4140
+ {
4141
+ "family": "Gilda Display",
4142
+ "variants": [
4143
+ "regular"
4144
+ ],
4145
+ "subsets": [
4146
+ "latin",
4147
+ "latin-ext"
4148
+ ]
4149
+ },
4150
+ {
4151
+ "family": "Give You Glory",
4152
+ "variants": [
4153
+ "regular"
4154
+ ],
4155
+ "subsets": [
4156
+ "latin"
4157
+ ]
4158
+ },
4159
+ {
4160
+ "family": "Glass Antiqua",
4161
+ "variants": [
4162
+ "regular"
4163
+ ],
4164
+ "subsets": [
4165
+ "latin",
4166
+ "latin-ext"
4167
+ ]
4168
+ },
4169
+ {
4170
+ "family": "Glegoo",
4171
+ "variants": [
4172
+ "regular",
4173
+ "700"
4174
+ ],
4175
+ "subsets": [
4176
+ "devanagari",
4177
+ "latin",
4178
+ "latin-ext"
4179
+ ]
4180
+ },
4181
+ {
4182
+ "family": "Gloria Hallelujah",
4183
+ "variants": [
4184
+ "regular"
4185
+ ],
4186
+ "subsets": [
4187
+ "latin"
4188
+ ]
4189
+ },
4190
+ {
4191
+ "family": "Goblin One",
4192
+ "variants": [
4193
+ "regular"
4194
+ ],
4195
+ "subsets": [
4196
+ "latin"
4197
+ ]
4198
+ },
4199
+ {
4200
+ "family": "Gochi Hand",
4201
+ "variants": [
4202
+ "regular"
4203
+ ],
4204
+ "subsets": [
4205
+ "latin"
4206
+ ]
4207
+ },
4208
+ {
4209
+ "family": "Gorditas",
4210
+ "variants": [
4211
+ "regular",
4212
+ "700"
4213
+ ],
4214
+ "subsets": [
4215
+ "latin"
4216
+ ]
4217
+ },
4218
+ {
4219
+ "family": "Gothic A1",
4220
+ "variants": [
4221
+ "100",
4222
+ "200",
4223
+ "300",
4224
+ "regular",
4225
+ "500",
4226
+ "600",
4227
+ "700",
4228
+ "800",
4229
+ "900"
4230
+ ],
4231
+ "subsets": [
4232
+ "latin",
4233
+ "korean"
4234
+ ]
4235
+ },
4236
+ {
4237
+ "family": "Goudy Bookletter 1911",
4238
+ "variants": [
4239
+ "regular"
4240
+ ],
4241
+ "subsets": [
4242
+ "latin"
4243
+ ]
4244
+ },
4245
+ {
4246
+ "family": "Graduate",
4247
+ "variants": [
4248
+ "regular"
4249
+ ],
4250
+ "subsets": [
4251
+ "latin"
4252
+ ]
4253
+ },
4254
+ {
4255
+ "family": "Grand Hotel",
4256
+ "variants": [
4257
+ "regular"
4258
+ ],
4259
+ "subsets": [
4260
+ "latin",
4261
+ "latin-ext"
4262
+ ]
4263
+ },
4264
+ {
4265
+ "family": "Gravitas One",
4266
+ "variants": [
4267
+ "regular"
4268
+ ],
4269
+ "subsets": [
4270
+ "latin"
4271
+ ]
4272
+ },
4273
+ {
4274
+ "family": "Great Vibes",
4275
+ "variants": [
4276
+ "regular"
4277
+ ],
4278
+ "subsets": [
4279
+ "latin",
4280
+ "latin-ext"
4281
+ ]
4282
+ },
4283
+ {
4284
+ "family": "Grenze",
4285
+ "variants": [
4286
+ "100",
4287
+ "100italic",
4288
+ "200",
4289
+ "200italic",
4290
+ "300",
4291
+ "300italic",
4292
+ "regular",
4293
+ "italic",
4294
+ "500",
4295
+ "500italic",
4296
+ "600",
4297
+ "600italic",
4298
+ "700",
4299
+ "700italic",
4300
+ "800",
4301
+ "800italic",
4302
+ "900",
4303
+ "900italic"
4304
+ ],
4305
+ "subsets": [
4306
+ "vietnamese",
4307
+ "latin",
4308
+ "latin-ext"
4309
+ ]
4310
+ },
4311
+ {
4312
+ "family": "Griffy",
4313
+ "variants": [
4314
+ "regular"
4315
+ ],
4316
+ "subsets": [
4317
+ "latin",
4318
+ "latin-ext"
4319
+ ]
4320
+ },
4321
+ {
4322
+ "family": "Gruppo",
4323
+ "variants": [
4324
+ "regular"
4325
+ ],
4326
+ "subsets": [
4327
+ "latin",
4328
+ "latin-ext"
4329
+ ]
4330
+ },
4331
+ {
4332
+ "family": "Gudea",
4333
+ "variants": [
4334
+ "regular",
4335
+ "italic",
4336
+ "700"
4337
+ ],
4338
+ "subsets": [
4339
+ "latin",
4340
+ "latin-ext"
4341
+ ]
4342
+ },
4343
+ {
4344
+ "family": "Gugi",
4345
+ "variants": [
4346
+ "regular"
4347
+ ],
4348
+ "subsets": [
4349
+ "latin",
4350
+ "korean"
4351
+ ]
4352
+ },
4353
+ {
4354
+ "family": "Gurajada",
4355
+ "variants": [
4356
+ "regular"
4357
+ ],
4358
+ "subsets": [
4359
+ "telugu",
4360
+ "latin"
4361
+ ]
4362
+ },
4363
+ {
4364
+ "family": "Habibi",
4365
+ "variants": [
4366
+ "regular"
4367
+ ],
4368
+ "subsets": [
4369
+ "latin",
4370
+ "latin-ext"
4371
+ ]
4372
+ },
4373
+ {
4374
+ "family": "Halant",
4375
+ "variants": [
4376
+ "300",
4377
+ "regular",
4378
+ "500",
4379
+ "600",
4380
+ "700"
4381
+ ],
4382
+ "subsets": [
4383
+ "devanagari",
4384
+ "latin",
4385
+ "latin-ext"
4386
+ ]
4387
+ },
4388
+ {
4389
+ "family": "Hammersmith One",
4390
+ "variants": [
4391
+ "regular"
4392
+ ],
4393
+ "subsets": [
4394
+ "latin",
4395
+ "latin-ext"
4396
+ ]
4397
+ },
4398
+ {
4399
+ "family": "Hanalei",
4400
+ "variants": [
4401
+ "regular"
4402
+ ],
4403
+ "subsets": [
4404
+ "latin",
4405
+ "latin-ext"
4406
+ ]
4407
+ },
4408
+ {
4409
+ "family": "Hanalei Fill",
4410
+ "variants": [
4411
+ "regular"
4412
+ ],
4413
+ "subsets": [
4414
+ "latin",
4415
+ "latin-ext"
4416
+ ]
4417
+ },
4418
+ {
4419
+ "family": "Handlee",
4420
+ "variants": [
4421
+ "regular"
4422
+ ],
4423
+ "subsets": [
4424
+ "latin"
4425
+ ]
4426
+ },
4427
+ {
4428
+ "family": "Hanuman",
4429
+ "variants": [
4430
+ "regular",
4431
+ "700"
4432
+ ],
4433
+ "subsets": [
4434
+ "khmer"
4435
+ ]
4436
+ },
4437
+ {
4438
+ "family": "Happy Monkey",
4439
+ "variants": [
4440
+ "regular"
4441
+ ],
4442
+ "subsets": [
4443
+ "latin",
4444
+ "latin-ext"
4445
+ ]
4446
+ },
4447
+ {
4448
+ "family": "Harmattan",
4449
+ "variants": [
4450
+ "regular"
4451
+ ],
4452
+ "subsets": [
4453
+ "arabic",
4454
+ "latin"
4455
+ ]
4456
+ },
4457
+ {
4458
+ "family": "Headland One",
4459
+ "variants": [
4460
+ "regular"
4461
+ ],
4462
+ "subsets": [
4463
+ "latin",
4464
+ "latin-ext"
4465
+ ]
4466
+ },
4467
+ {
4468
+ "family": "Heebo",
4469
+ "variants": [
4470
+ "100",
4471
+ "300",
4472
+ "regular",
4473
+ "500",
4474
+ "700",
4475
+ "800",
4476
+ "900"
4477
+ ],
4478
+ "subsets": [
4479
+ "hebrew",
4480
+ "latin"
4481
+ ]
4482
+ },
4483
+ {
4484
+ "family": "Henny Penny",
4485
+ "variants": [
4486
+ "regular"
4487
+ ],
4488
+ "subsets": [
4489
+ "latin"
4490
+ ]
4491
+ },
4492
+ {
4493
+ "family": "Hepta Slab",
4494
+ "variants": [
4495
+ "100",
4496
+ "200",
4497
+ "300",
4498
+ "regular",
4499
+ "500",
4500
+ "600",
4501
+ "700",
4502
+ "800",
4503
+ "900"
4504
+ ],
4505
+ "subsets": [
4506
+ "vietnamese",
4507
+ "latin",
4508
+ "latin-ext"
4509
+ ]
4510
+ },
4511
+ {
4512
+ "family": "Herr Von Muellerhoff",
4513
+ "variants": [
4514
+ "regular"
4515
+ ],
4516
+ "subsets": [
4517
+ "latin",
4518
+ "latin-ext"
4519
+ ]
4520
+ },
4521
+ {
4522
+ "family": "Hi Melody",
4523
+ "variants": [
4524
+ "regular"
4525
+ ],
4526
+ "subsets": [
4527
+ "latin",
4528
+ "korean"
4529
+ ]
4530
+ },
4531
+ {
4532
+ "family": "Hind",
4533
+ "variants": [
4534
+ "300",
4535
+ "regular",
4536
+ "500",
4537
+ "600",
4538
+ "700"
4539
+ ],
4540
+ "subsets": [
4541
+ "devanagari",
4542
+ "latin",
4543
+ "latin-ext"
4544
+ ]
4545
+ },
4546
+ {
4547
+ "family": "Hind Guntur",
4548
+ "variants": [
4549
+ "300",
4550
+ "regular",
4551
+ "500",
4552
+ "600",
4553
+ "700"
4554
+ ],
4555
+ "subsets": [
4556
+ "telugu",
4557
+ "latin",
4558
+ "latin-ext"
4559
+ ]
4560
+ },
4561
+ {
4562
+ "family": "Hind Madurai",
4563
+ "variants": [
4564
+ "300",
4565
+ "regular",
4566
+ "500",
4567
+ "600",
4568
+ "700"
4569
+ ],
4570
+ "subsets": [
4571
+ "tamil",
4572
+ "latin",
4573
+ "latin-ext"
4574
+ ]
4575
+ },
4576
+ {
4577
+ "family": "Hind Siliguri",
4578
+ "variants": [
4579
+ "300",
4580
+ "regular",
4581
+ "500",
4582
+ "600",
4583
+ "700"
4584
+ ],
4585
+ "subsets": [
4586
+ "latin",
4587
+ "latin-ext",
4588
+ "bengali"
4589
+ ]
4590
+ },
4591
+ {
4592
+ "family": "Hind Vadodara",
4593
+ "variants": [
4594
+ "300",
4595
+ "regular",
4596
+ "500",
4597
+ "600",
4598
+ "700"
4599
+ ],
4600
+ "subsets": [
4601
+ "gujarati",
4602
+ "latin",
4603
+ "latin-ext"
4604
+ ]
4605
+ },
4606
+ {
4607
+ "family": "Holtwood One SC",
4608
+ "variants": [
4609
+ "regular"
4610
+ ],
4611
+ "subsets": [
4612
+ "latin"
4613
+ ]
4614
+ },
4615
+ {
4616
+ "family": "Homemade Apple",
4617
+ "variants": [
4618
+ "regular"
4619
+ ],
4620
+ "subsets": [
4621
+ "latin"
4622
+ ]
4623
+ },
4624
+ {
4625
+ "family": "Homenaje",
4626
+ "variants": [
4627
+ "regular"
4628
+ ],
4629
+ "subsets": [
4630
+ "latin"
4631
+ ]
4632
+ },
4633
+ {
4634
+ "family": "IBM Plex Mono",
4635
+ "variants": [
4636
+ "100",
4637
+ "100italic",
4638
+ "200",
4639
+ "200italic",
4640
+ "300",
4641
+ "300italic",
4642
+ "regular",
4643
+ "italic",
4644
+ "500",
4645
+ "500italic",
4646
+ "600",
4647
+ "600italic",
4648
+ "700",
4649
+ "700italic"
4650
+ ],
4651
+ "subsets": [
4652
+ "cyrillic",
4653
+ "vietnamese",
4654
+ "cyrillic-ext",
4655
+ "latin",
4656
+ "latin-ext"
4657
+ ]
4658
+ },
4659
+ {
4660
+ "family": "IBM Plex Sans",
4661
+ "variants": [
4662
+ "100",
4663
+ "100italic",
4664
+ "200",
4665
+ "200italic",
4666
+ "300",
4667
+ "300italic",
4668
+ "regular",
4669
+ "italic",
4670
+ "500",
4671
+ "500italic",
4672
+ "600",
4673
+ "600italic",
4674
+ "700",
4675
+ "700italic"
4676
+ ],
4677
+ "subsets": [
4678
+ "cyrillic",
4679
+ "vietnamese",
4680
+ "cyrillic-ext",
4681
+ "greek",
4682
+ "latin",
4683
+ "latin-ext"
4684
+ ]
4685
+ },
4686
+ {
4687
+ "family": "IBM Plex Sans Condensed",
4688
+ "variants": [
4689
+ "100",
4690
+ "100italic",
4691
+ "200",
4692
+ "200italic",
4693
+ "300",
4694
+ "300italic",
4695
+ "regular",
4696
+ "italic",
4697
+ "500",
4698
+ "500italic",
4699
+ "600",
4700
+ "600italic",
4701
+ "700",
4702
+ "700italic"
4703
+ ],
4704
+ "subsets": [
4705
+ "vietnamese",
4706
+ "latin",
4707
+ "latin-ext"
4708
+ ]
4709
+ },
4710
+ {
4711
+ "family": "IBM Plex Serif",
4712
+ "variants": [
4713
+ "100",
4714
+ "100italic",
4715
+ "200",
4716
+ "200italic",
4717
+ "300",
4718
+ "300italic",
4719
+ "regular",
4720
+ "italic",
4721
+ "500",
4722
+ "500italic",
4723
+ "600",
4724
+ "600italic",
4725
+ "700",
4726
+ "700italic"
4727
+ ],
4728
+ "subsets": [
4729
+ "cyrillic",
4730
+ "vietnamese",
4731
+ "cyrillic-ext",
4732
+ "latin",
4733
+ "latin-ext"
4734
+ ]
4735
+ },
4736
+ {
4737
+ "family": "IM Fell DW Pica",
4738
+ "variants": [
4739
+ "regular",
4740
+ "italic"
4741
+ ],
4742
+ "subsets": [
4743
+ "latin"
4744
+ ]
4745
+ },
4746
+ {
4747
+ "family": "IM Fell DW Pica SC",
4748
+ "variants": [
4749
+ "regular"
4750
+ ],
4751
+ "subsets": [
4752
+ "latin"
4753
+ ]
4754
+ },
4755
+ {
4756
+ "family": "IM Fell Double Pica",
4757
+ "variants": [
4758
+ "regular",
4759
+ "italic"
4760
+ ],
4761
+ "subsets": [
4762
+ "latin"
4763
+ ]
4764
+ },
4765
+ {
4766
+ "family": "IM Fell Double Pica SC",
4767
+ "variants": [
4768
+ "regular"
4769
+ ],
4770
+ "subsets": [
4771
+ "latin"
4772
+ ]
4773
+ },
4774
+ {
4775
+ "family": "IM Fell English",
4776
+ "variants": [
4777
+ "regular",
4778
+ "italic"
4779
+ ],
4780
+ "subsets": [
4781
+ "latin"
4782
+ ]
4783
+ },
4784
+ {
4785
+ "family": "IM Fell English SC",
4786
+ "variants": [
4787
+ "regular"
4788
+ ],
4789
+ "subsets": [
4790
+ "latin"
4791
+ ]
4792
+ },
4793
+ {
4794
+ "family": "IM Fell French Canon",
4795
+ "variants": [
4796
+ "regular",
4797
+ "italic"
4798
+ ],
4799
+ "subsets": [
4800
+ "latin"
4801
+ ]
4802
+ },
4803
+ {
4804
+ "family": "IM Fell French Canon SC",
4805
+ "variants": [
4806
+ "regular"
4807
+ ],
4808
+ "subsets": [
4809
+ "latin"
4810
+ ]
4811
+ },
4812
+ {
4813
+ "family": "IM Fell Great Primer",
4814
+ "variants": [
4815
+ "regular",
4816
+ "italic"
4817
+ ],
4818
+ "subsets": [
4819
+ "latin"
4820
+ ]
4821
+ },
4822
+ {
4823
+ "family": "IM Fell Great Primer SC",
4824
+ "variants": [
4825
+ "regular"
4826
+ ],
4827
+ "subsets": [
4828
+ "latin"
4829
+ ]
4830
+ },
4831
+ {
4832
+ "family": "Iceberg",
4833
+ "variants": [
4834
+ "regular"
4835
+ ],
4836
+ "subsets": [
4837
+ "latin"
4838
+ ]
4839
+ },
4840
+ {
4841
+ "family": "Iceland",
4842
+ "variants": [
4843
+ "regular"
4844
+ ],
4845
+ "subsets": [
4846
+ "latin"
4847
+ ]
4848
+ },
4849
+ {
4850
+ "family": "Imprima",
4851
+ "variants": [
4852
+ "regular"
4853
+ ],
4854
+ "subsets": [
4855
+ "latin",
4856
+ "latin-ext"
4857
+ ]
4858
+ },
4859
+ {
4860
+ "family": "Inconsolata",
4861
+ "variants": [
4862
+ "regular",
4863
+ "700"
4864
+ ],
4865
+ "subsets": [
4866
+ "vietnamese",
4867
+ "latin",
4868
+ "latin-ext"
4869
+ ]
4870
+ },
4871
+ {
4872
+ "family": "Inder",
4873
+ "variants": [
4874
+ "regular"
4875
+ ],
4876
+ "subsets": [
4877
+ "latin",
4878
+ "latin-ext"
4879
+ ]
4880
+ },
4881
+ {
4882
+ "family": "Indie Flower",
4883
+ "variants": [
4884
+ "regular"
4885
+ ],
4886
+ "subsets": [
4887
+ "latin"
4888
+ ]
4889
+ },
4890
+ {
4891
+ "family": "Inika",
4892
+ "variants": [
4893
+ "regular",
4894
+ "700"
4895
+ ],
4896
+ "subsets": [
4897
+ "latin",
4898
+ "latin-ext"
4899
+ ]
4900
+ },
4901
+ {
4902
+ "family": "Inknut Antiqua",
4903
+ "variants": [
4904
+ "300",
4905
+ "regular",
4906
+ "500",
4907
+ "600",
4908
+ "700",
4909
+ "800",
4910
+ "900"
4911
+ ],
4912
+ "subsets": [
4913
+ "devanagari",
4914
+ "latin",
4915
+ "latin-ext"
4916
+ ]
4917
+ },
4918
+ {
4919
+ "family": "Irish Grover",
4920
+ "variants": [
4921
+ "regular"
4922
+ ],
4923
+ "subsets": [
4924
+ "latin"
4925
+ ]
4926
+ },
4927
+ {
4928
+ "family": "Istok Web",
4929
+ "variants": [
4930
+ "regular",
4931
+ "italic",
4932
+ "700",
4933
+ "700italic"
4934
+ ],
4935
+ "subsets": [
4936
+ "cyrillic",
4937
+ "cyrillic-ext",
4938
+ "latin",
4939
+ "latin-ext"
4940
+ ]
4941
+ },
4942
+ {
4943
+ "family": "Italiana",
4944
+ "variants": [
4945
+ "regular"
4946
+ ],
4947
+ "subsets": [
4948
+ "latin"
4949
+ ]
4950
+ },
4951
+ {
4952
+ "family": "Italianno",
4953
+ "variants": [
4954
+ "regular"
4955
+ ],
4956
+ "subsets": [
4957
+ "latin",
4958
+ "latin-ext"
4959
+ ]
4960
+ },
4961
+ {
4962
+ "family": "Itim",
4963
+ "variants": [
4964
+ "regular"
4965
+ ],
4966
+ "subsets": [
4967
+ "vietnamese",
4968
+ "latin",
4969
+ "thai",
4970
+ "latin-ext"
4971
+ ]
4972
+ },
4973
+ {
4974
+ "family": "Jacques Francois",
4975
+ "variants": [
4976
+ "regular"
4977
+ ],
4978
+ "subsets": [
4979
+ "latin"
4980
+ ]
4981
+ },
4982
+ {
4983
+ "family": "Jacques Francois Shadow",
4984
+ "variants": [
4985
+ "regular"
4986
+ ],
4987
+ "subsets": [
4988
+ "latin"
4989
+ ]
4990
+ },
4991
+ {
4992
+ "family": "Jaldi",
4993
+ "variants": [
4994
+ "regular",
4995
+ "700"
4996
+ ],
4997
+ "subsets": [
4998
+ "devanagari",
4999
+ "latin",
5000
+ "latin-ext"
5001
+ ]
5002
+ },
5003
+ {
5004
+ "family": "Jim Nightshade",
5005
+ "variants": [
5006
+ "regular"
5007
+ ],
5008
+ "subsets": [
5009
+ "latin",
5010
+ "latin-ext"
5011
+ ]
5012
+ },
5013
+ {
5014
+ "family": "Jockey One",
5015
+ "variants": [
5016
+ "regular"
5017
+ ],
5018
+ "subsets": [
5019
+ "latin",
5020
+ "latin-ext"
5021
+ ]
5022
+ },
5023
+ {
5024
+ "family": "Jolly Lodger",
5025
+ "variants": [
5026
+ "regular"
5027
+ ],
5028
+ "subsets": [
5029
+ "latin",
5030
+ "latin-ext"
5031
+ ]
5032
+ },
5033
+ {
5034
+ "family": "Jomhuria",
5035
+ "variants": [
5036
+ "regular"
5037
+ ],
5038
+ "subsets": [
5039
+ "arabic",
5040
+ "latin",
5041
+ "latin-ext"
5042
+ ]
5043
+ },
5044
+ {
5045
+ "family": "Josefin Sans",
5046
+ "variants": [
5047
+ "100",
5048
+ "100italic",
5049
+ "300",
5050
+ "300italic",
5051
+ "regular",
5052
+ "italic",
5053
+ "600",
5054
+ "600italic",
5055
+ "700",
5056
+ "700italic"
5057
+ ],
5058
+ "subsets": [
5059
+ "vietnamese",
5060
+ "latin",
5061
+ "latin-ext"
5062
+ ]
5063
+ },
5064
+ {
5065
+ "family": "Josefin Slab",
5066
+ "variants": [
5067
+ "100",
5068
+ "100italic",
5069
+ "300",
5070
+ "300italic",
5071
+ "regular",
5072
+ "italic",
5073
+ "600",
5074
+ "600italic",
5075
+ "700",
5076
+ "700italic"
5077
+ ],
5078
+ "subsets": [
5079
+ "latin"
5080
+ ]
5081
+ },
5082
+ {
5083
+ "family": "Joti One",
5084
+ "variants": [
5085
+ "regular"
5086
+ ],
5087
+ "subsets": [
5088
+ "latin",
5089
+ "latin-ext"
5090
+ ]
5091
+ },
5092
+ {
5093
+ "family": "Jua",
5094
+ "variants": [
5095
+ "regular"
5096
+ ],
5097
+ "subsets": [
5098
+ "latin",
5099
+ "korean"
5100
+ ]
5101
+ },
5102
+ {
5103
+ "family": "Judson",
5104
+ "variants": [
5105
+ "regular",
5106
+ "italic",
5107
+ "700"
5108
+ ],
5109
+ "subsets": [
5110
+ "vietnamese",
5111
+ "latin",
5112
+ "latin-ext"
5113
+ ]
5114
+ },
5115
+ {
5116
+ "family": "Julee",
5117
+ "variants": [
5118
+ "regular"
5119
+ ],
5120
+ "subsets": [
5121
+ "latin"
5122
+ ]
5123
+ },
5124
+ {
5125
+ "family": "Julius Sans One",
5126
+ "variants": [
5127
+ "regular"
5128
+ ],
5129
+ "subsets": [
5130
+ "latin",
5131
+ "latin-ext"
5132
+ ]
5133
+ },
5134
+ {
5135
+ "family": "Junge",
5136
+ "variants": [
5137
+ "regular"
5138
+ ],
5139
+ "subsets": [
5140
+ "latin"
5141
+ ]
5142
+ },
5143
+ {
5144
+ "family": "Jura",
5145
+ "variants": [
5146
+ "300",
5147
+ "regular",
5148
+ "500",
5149
+ "600",
5150
+ "700"
5151
+ ],
5152
+ "subsets": [
5153
+ "cyrillic",
5154
+ "vietnamese",
5155
+ "cyrillic-ext",
5156
+ "greek-ext",
5157
+ "greek",
5158
+ "latin",
5159
+ "latin-ext"
5160
+ ]
5161
+ },
5162
+ {
5163
+ "family": "Just Another Hand",
5164
+ "variants": [
5165
+ "regular"
5166
+ ],
5167
+ "subsets": [
5168
+ "latin"
5169
+ ]
5170
+ },
5171
+ {
5172
+ "family": "Just Me Again Down Here",
5173
+ "variants": [
5174
+ "regular"
5175
+ ],
5176
+ "subsets": [
5177
+ "latin",
5178
+ "latin-ext"
5179
+ ]
5180
+ },
5181
+ {
5182
+ "family": "K2D",
5183
+ "variants": [
5184
+ "100",
5185
+ "100italic",
5186
+ "200",
5187
+ "200italic",
5188
+ "300",
5189
+ "300italic",
5190
+ "regular",
5191
+ "italic",
5192
+ "500",
5193
+ "500italic",
5194
+ "600",
5195
+ "600italic",
5196
+ "700",
5197
+ "700italic",
5198
+ "800",
5199
+ "800italic"
5200
+ ],
5201
+ "subsets": [
5202
+ "vietnamese",
5203
+ "latin",
5204
+ "thai",
5205
+ "latin-ext"
5206
+ ]
5207
+ },
5208
+ {
5209
+ "family": "Kadwa",
5210
+ "variants": [
5211
+ "regular",
5212
+ "700"
5213
+ ],
5214
+ "subsets": [
5215
+ "devanagari",
5216
+ "latin"
5217
+ ]
5218
+ },
5219
+ {
5220
+ "family": "Kalam",
5221
+ "variants": [
5222
+ "300",
5223
+ "regular",
5224
+ "700"
5225
+ ],
5226
+ "subsets": [
5227
+ "devanagari",
5228
+ "latin",
5229
+ "latin-ext"
5230
+ ]
5231
+ },
5232
+ {
5233
+ "family": "Kameron",
5234
+ "variants": [
5235
+ "regular",
5236
+ "700"
5237
+ ],
5238
+ "subsets": [
5239
+ "latin"
5240
+ ]
5241
+ },
5242
+ {
5243
+ "family": "Kanit",
5244
+ "variants": [
5245
+ "100",
5246
+ "100italic",
5247
+ "200",
5248
+ "200italic",
5249
+ "300",
5250
+ "300italic",
5251
+ "regular",
5252
+ "italic",
5253
+ "500",
5254
+ "500italic",
5255
+ "600",
5256
+ "600italic",
5257
+ "700",
5258
+ "700italic",
5259
+ "800",
5260
+ "800italic",
5261
+ "900",
5262
+ "900italic"
5263
+ ],
5264
+ "subsets": [
5265
+ "vietnamese",
5266
+ "latin",
5267
+ "thai",
5268
+ "latin-ext"
5269
+ ]
5270
+ },
5271
+ {
5272
+ "family": "Kantumruy",
5273
+ "variants": [
5274
+ "300",
5275
+ "regular",
5276
+ "700"
5277
+ ],
5278
+ "subsets": [
5279
+ "khmer"
5280
+ ]
5281
+ },
5282
+ {
5283
+ "family": "Karla",
5284
+ "variants": [
5285
+ "regular",
5286
+ "italic",
5287
+ "700",
5288
+ "700italic"
5289
+ ],
5290
+ "subsets": [
5291
+ "latin",
5292
+ "latin-ext"
5293
+ ]
5294
+ },
5295
+ {
5296
+ "family": "Karma",
5297
+ "variants": [
5298
+ "300",
5299
+ "regular",
5300
+ "500",
5301
+ "600",
5302
+ "700"
5303
+ ],
5304
+ "subsets": [
5305
+ "devanagari",
5306
+ "latin",
5307
+ "latin-ext"
5308
+ ]
5309
+ },
5310
+ {
5311
+ "family": "Katibeh",
5312
+ "variants": [
5313
+ "regular"
5314
+ ],
5315
+ "subsets": [
5316
+ "arabic",
5317
+ "latin",
5318
+ "latin-ext"
5319
+ ]
5320
+ },
5321
+ {
5322
+ "family": "Kaushan Script",
5323
+ "variants": [
5324
+ "regular"
5325
+ ],
5326
+ "subsets": [
5327
+ "latin",
5328
+ "latin-ext"
5329
+ ]
5330
+ },
5331
+ {
5332
+ "family": "Kavivanar",
5333
+ "variants": [
5334
+ "regular"
5335
+ ],
5336
+ "subsets": [
5337
+ "tamil",
5338
+ "latin",
5339
+ "latin-ext"
5340
+ ]
5341
+ },
5342
+ {
5343
+ "family": "Kavoon",
5344
+ "variants": [
5345
+ "regular"
5346
+ ],
5347
+ "subsets": [
5348
+ "latin",
5349
+ "latin-ext"
5350
+ ]
5351
+ },
5352
+ {
5353
+ "family": "Kdam Thmor",
5354
+ "variants": [
5355
+ "regular"
5356
+ ],
5357
+ "subsets": [
5358
+ "khmer"
5359
+ ]
5360
+ },
5361
+ {
5362
+ "family": "Keania One",
5363
+ "variants": [
5364
+ "regular"
5365
+ ],
5366
+ "subsets": [
5367
+ "latin",
5368
+ "latin-ext"
5369
+ ]
5370
+ },
5371
+ {
5372
+ "family": "Kelly Slab",
5373
+ "variants": [
5374
+ "regular"
5375
+ ],
5376
+ "subsets": [
5377
+ "cyrillic",
5378
+ "latin",
5379
+ "latin-ext"
5380
+ ]
5381
+ },
5382
+ {
5383
+ "family": "Kenia",
5384
+ "variants": [
5385
+ "regular"
5386
+ ],
5387
+ "subsets": [
5388
+ "latin"
5389
+ ]
5390
+ },
5391
+ {
5392
+ "family": "Khand",
5393
+ "variants": [
5394
+ "300",
5395
+ "regular",
5396
+ "500",
5397
+ "600",
5398
+ "700"
5399
+ ],
5400
+ "subsets": [
5401
+ "devanagari",
5402
+ "latin",
5403
+ "latin-ext"
5404
+ ]
5405
+ },
5406
+ {
5407
+ "family": "Khmer",
5408
+ "variants": [
5409
+ "regular"
5410
+ ],
5411
+ "subsets": [
5412
+ "khmer"
5413
+ ]
5414
+ },
5415
+ {
5416
+ "family": "Khula",
5417
+ "variants": [
5418
+ "300",
5419
+ "regular",
5420
+ "600",
5421
+ "700",
5422
+ "800"
5423
+ ],
5424
+ "subsets": [
5425
+ "devanagari",
5426
+ "latin",
5427
+ "latin-ext"
5428
+ ]
5429
+ },
5430
+ {
5431
+ "family": "Kirang Haerang",
5432
+ "variants": [
5433
+ "regular"
5434
+ ],
5435
+ "subsets": [
5436
+ "latin",
5437
+ "korean"
5438
+ ]
5439
+ },
5440
+ {
5441
+ "family": "Kite One",
5442
+ "variants": [
5443
+ "regular"
5444
+ ],
5445
+ "subsets": [
5446
+ "latin"
5447
+ ]
5448
+ },
5449
+ {
5450
+ "family": "Knewave",
5451
+ "variants": [
5452
+ "regular"
5453
+ ],
5454
+ "subsets": [
5455
+ "latin",
5456
+ "latin-ext"
5457
+ ]
5458
+ },
5459
+ {
5460
+ "family": "KoHo",
5461
+ "variants": [
5462
+ "200",
5463
+ "200italic",
5464
+ "300",
5465
+ "300italic",
5466
+ "regular",
5467
+ "italic",
5468
+ "500",
5469
+ "500italic",
5470
+ "600",
5471
+ "600italic",
5472
+ "700",
5473
+ "700italic"
5474
+ ],
5475
+ "subsets": [
5476
+ "vietnamese",
5477
+ "latin",
5478
+ "thai",
5479
+ "latin-ext"
5480
+ ]
5481
+ },
5482
+ {
5483
+ "family": "Kodchasan",
5484
+ "variants": [
5485
+ "200",
5486
+ "200italic",
5487
+ "300",
5488
+ "300italic",
5489
+ "regular",
5490
+ "italic",
5491
+ "500",
5492
+ "500italic",
5493
+ "600",
5494
+ "600italic",
5495
+ "700",
5496
+ "700italic"
5497
+ ],
5498
+ "subsets": [
5499
+ "vietnamese",
5500
+ "latin",
5501
+ "thai",
5502
+ "latin-ext"
5503
+ ]
5504
+ },
5505
+ {
5506
+ "family": "Kosugi",
5507
+ "variants": [
5508
+ "regular"
5509
+ ],
5510
+ "subsets": [
5511
+ "cyrillic",
5512
+ "japanese",
5513
+ "latin"
5514
+ ]
5515
+ },
5516
+ {
5517
+ "family": "Kosugi Maru",
5518
+ "variants": [
5519
+ "regular"
5520
+ ],
5521
+ "subsets": [
5522
+ "cyrillic",
5523
+ "japanese",
5524
+ "latin"
5525
+ ]
5526
+ },
5527
+ {
5528
+ "family": "Kotta One",
5529
+ "variants": [
5530
+ "regular"
5531
+ ],
5532
+ "subsets": [
5533
+ "latin",
5534
+ "latin-ext"
5535
+ ]
5536
+ },
5537
+ {
5538
+ "family": "Koulen",
5539
+ "variants": [
5540
+ "regular"
5541
+ ],
5542
+ "subsets": [
5543
+ "khmer"
5544
+ ]
5545
+ },
5546
+ {
5547
+ "family": "Kranky",
5548
+ "variants": [
5549
+ "regular"
5550
+ ],
5551
+ "subsets": [
5552
+ "latin"
5553
+ ]
5554
+ },
5555
+ {
5556
+ "family": "Kreon",
5557
+ "variants": [
5558
+ "300",
5559
+ "regular",
5560
+ "500",
5561
+ "600",
5562
+ "700"
5563
+ ],
5564
+ "subsets": [
5565
+ "latin",
5566
+ "latin-ext"
5567
+ ]
5568
+ },
5569
+ {
5570
+ "family": "Kristi",
5571
+ "variants": [
5572
+ "regular"
5573
+ ],
5574
+ "subsets": [
5575
+ "latin"
5576
+ ]
5577
+ },
5578
+ {
5579
+ "family": "Krona One",
5580
+ "variants": [
5581
+ "regular"
5582
+ ],
5583
+ "subsets": [
5584
+ "latin",
5585
+ "latin-ext"
5586
+ ]
5587
+ },
5588
+ {
5589
+ "family": "Krub",
5590
+ "variants": [
5591
+ "200",
5592
+ "200italic",
5593
+ "300",
5594
+ "300italic",
5595
+ "regular",
5596
+ "italic",
5597
+ "500",
5598
+ "500italic",
5599
+ "600",
5600
+ "600italic",
5601
+ "700",
5602
+ "700italic"
5603
+ ],
5604
+ "subsets": [
5605
+ "vietnamese",
5606
+ "latin",
5607
+ "thai",
5608
+ "latin-ext"
5609
+ ]
5610
+ },
5611
+ {
5612
+ "family": "Kumar One",
5613
+ "variants": [
5614
+ "regular"
5615
+ ],
5616
+ "subsets": [
5617
+ "gujarati",
5618
+ "latin",
5619
+ "latin-ext"
5620
+ ]
5621
+ },
5622
+ {
5623
+ "family": "Kumar One Outline",
5624
+ "variants": [
5625
+ "regular"
5626
+ ],
5627
+ "subsets": [
5628
+ "gujarati",
5629
+ "latin",
5630
+ "latin-ext"
5631
+ ]
5632
+ },
5633
+ {
5634
+ "family": "Kurale",
5635
+ "variants": [
5636
+ "regular"
5637
+ ],
5638
+ "subsets": [
5639
+ "cyrillic",
5640
+ "devanagari",
5641
+ "cyrillic-ext",
5642
+ "latin",
5643
+ "latin-ext"
5644
+ ]
5645
+ },
5646
+ {
5647
+ "family": "La Belle Aurore",
5648
+ "variants": [
5649
+ "regular"
5650
+ ],
5651
+ "subsets": [
5652
+ "latin"
5653
+ ]
5654
+ },
5655
+ {
5656
+ "family": "Lacquer",
5657
+ "variants": [
5658
+ "regular"
5659
+ ],
5660
+ "subsets": [
5661
+ "latin"
5662
+ ]
5663
+ },
5664
+ {
5665
+ "family": "Laila",
5666
+ "variants": [
5667
+ "300",
5668
+ "regular",
5669
+ "500",
5670
+ "600",
5671
+ "700"
5672
+ ],
5673
+ "subsets": [
5674
+ "devanagari",
5675
+ "latin",
5676
+ "latin-ext"
5677
+ ]
5678
+ },
5679
+ {
5680
+ "family": "Lakki Reddy",
5681
+ "variants": [
5682
+ "regular"
5683
+ ],
5684
+ "subsets": [
5685
+ "telugu",
5686
+ "latin"
5687
+ ]
5688
+ },
5689
+ {
5690
+ "family": "Lalezar",
5691
+ "variants": [
5692
+ "regular"
5693
+ ],
5694
+ "subsets": [
5695
+ "arabic",
5696
+ "vietnamese",
5697
+ "latin",
5698
+ "latin-ext"
5699
+ ]
5700
+ },
5701
+ {
5702
+ "family": "Lancelot",
5703
+ "variants": [
5704
+ "regular"
5705
+ ],
5706
+ "subsets": [
5707
+ "latin",
5708
+ "latin-ext"
5709
+ ]
5710
+ },
5711
+ {
5712
+ "family": "Lateef",
5713
+ "variants": [
5714
+ "regular"
5715
+ ],
5716
+ "subsets": [
5717
+ "arabic",
5718
+ "latin"
5719
+ ]
5720
+ },
5721
+ {
5722
+ "family": "Lato",
5723
+ "variants": [
5724
+ "100",
5725
+ "100italic",
5726
+ "300",
5727
+ "300italic",
5728
+ "regular",
5729
+ "italic",
5730
+ "700",
5731
+ "700italic",
5732
+ "900",
5733
+ "900italic"
5734
+ ],
5735
+ "subsets": [
5736
+ "latin",
5737
+ "latin-ext"
5738
+ ]
5739
+ },
5740
+ {
5741
+ "family": "League Script",
5742
+ "variants": [
5743
+ "regular"
5744
+ ],
5745
+ "subsets": [
5746
+ "latin"
5747
+ ]
5748
+ },
5749
+ {
5750
+ "family": "Leckerli One",
5751
+ "variants": [
5752
+ "regular"
5753
+ ],
5754
+ "subsets": [
5755
+ "latin"
5756
+ ]
5757
+ },
5758
+ {
5759
+ "family": "Ledger",
5760
+ "variants": [
5761
+ "regular"
5762
+ ],
5763
+ "subsets": [
5764
+ "cyrillic",
5765
+ "latin",
5766
+ "latin-ext"
5767
+ ]
5768
+ },
5769
+ {
5770
+ "family": "Lekton",
5771
+ "variants": [
5772
+ "regular",
5773
+ "italic",
5774
+ "700"
5775
+ ],
5776
+ "subsets": [
5777
+ "latin",
5778
+ "latin-ext"
5779
+ ]
5780
+ },
5781
+ {
5782
+ "family": "Lemon",
5783
+ "variants": [
5784
+ "regular"
5785
+ ],
5786
+ "subsets": [
5787
+ "latin"
5788
+ ]
5789
+ },
5790
+ {
5791
+ "family": "Lemonada",
5792
+ "variants": [
5793
+ "300",
5794
+ "regular",
5795
+ "600",
5796
+ "700"
5797
+ ],
5798
+ "subsets": [
5799
+ "arabic",
5800
+ "vietnamese",
5801
+ "latin",
5802
+ "latin-ext"
5803
+ ]
5804
+ },
5805
+ {
5806
+ "family": "Lexend Deca",
5807
+ "variants": [
5808
+ "regular"
5809
+ ],
5810
+ "subsets": [
5811
+ "vietnamese",
5812
+ "latin",
5813
+ "latin-ext"
5814
+ ]
5815
+ },
5816
+ {
5817
+ "family": "Lexend Exa",
5818
+ "variants": [
5819
+ "regular"
5820
+ ],
5821
+ "subsets": [
5822
+ "vietnamese",
5823
+ "latin",
5824
+ "latin-ext"
5825
+ ]
5826
+ },
5827
+ {
5828
+ "family": "Lexend Giga",
5829
+ "variants": [
5830
+ "regular"
5831
+ ],
5832
+ "subsets": [
5833
+ "vietnamese",
5834
+ "latin",
5835
+ "latin-ext"
5836
+ ]
5837
+ },
5838
+ {
5839
+ "family": "Lexend Mega",
5840
+ "variants": [
5841
+ "regular"
5842
+ ],
5843
+ "subsets": [
5844
+ "vietnamese",
5845
+ "latin",
5846
+ "latin-ext"
5847
+ ]
5848
+ },
5849
+ {
5850
+ "family": "Lexend Peta",
5851
+ "variants": [
5852
+ "regular"
5853
+ ],
5854
+ "subsets": [
5855
+ "vietnamese",
5856
+ "latin",
5857
+ "latin-ext"
5858
+ ]
5859
+ },
5860
+ {
5861
+ "family": "Lexend Tera",
5862
+ "variants": [
5863
+ "regular"
5864
+ ],
5865
+ "subsets": [
5866
+ "vietnamese",
5867
+ "latin",
5868
+ "latin-ext"
5869
+ ]
5870
+ },
5871
+ {
5872
+ "family": "Lexend Zetta",
5873
+ "variants": [
5874
+ "regular"
5875
+ ],
5876
+ "subsets": [
5877
+ "vietnamese",
5878
+ "latin",
5879
+ "latin-ext"
5880
+ ]
5881
+ },
5882
+ {
5883
+ "family": "Libre Barcode 128",
5884
+ "variants": [
5885
+ "regular"
5886
+ ],
5887
+ "subsets": [
5888
+ "latin"
5889
+ ]
5890
+ },
5891
+ {
5892
+ "family": "Libre Barcode 128 Text",
5893
+ "variants": [
5894
+ "regular"
5895
+ ],
5896
+ "subsets": [
5897
+ "latin"
5898
+ ]
5899
+ },
5900
+ {
5901
+ "family": "Libre Barcode 39",
5902
+ "variants": [
5903
+ "regular"
5904
+ ],
5905
+ "subsets": [
5906
+ "latin"
5907
+ ]
5908
+ },
5909
+ {
5910
+ "family": "Libre Barcode 39 Extended",
5911
+ "variants": [
5912
+ "regular"
5913
+ ],
5914
+ "subsets": [
5915
+ "latin"
5916
+ ]
5917
+ },
5918
+ {
5919
+ "family": "Libre Barcode 39 Extended Text",
5920
+ "variants": [
5921
+ "regular"
5922
+ ],
5923
+ "subsets": [
5924
+ "latin"
5925
+ ]
5926
+ },
5927
+ {
5928
+ "family": "Libre Barcode 39 Text",
5929
+ "variants": [
5930
+ "regular"
5931
+ ],
5932
+ "subsets": [
5933
+ "latin"
5934
+ ]
5935
+ },
5936
+ {
5937
+ "family": "Libre Baskerville",
5938
+ "variants": [
5939
+ "regular",
5940
+ "italic",
5941
+ "700"
5942
+ ],
5943
+ "subsets": [
5944
+ "latin",
5945
+ "latin-ext"
5946
+ ]
5947
+ },
5948
+ {
5949
+ "family": "Libre Caslon Display",
5950
+ "variants": [
5951
+ "regular"
5952
+ ],
5953
+ "subsets": [
5954
+ "latin",
5955
+ "latin-ext"
5956
+ ]
5957
+ },
5958
+ {
5959
+ "family": "Libre Caslon Text",
5960
+ "variants": [
5961
+ "regular",
5962
+ "italic",
5963
+ "700"
5964
+ ],
5965
+ "subsets": [
5966
+ "latin",
5967
+ "latin-ext"
5968
+ ]
5969
+ },
5970
+ {
5971
+ "family": "Libre Franklin",
5972
+ "variants": [
5973
+ "100",
5974
+ "100italic",
5975
+ "200",
5976
+ "200italic",
5977
+ "300",
5978
+ "300italic",
5979
+ "regular",
5980
+ "italic",
5981
+ "500",
5982
+ "500italic",
5983
+ "600",
5984
+ "600italic",
5985
+ "700",
5986
+ "700italic",
5987
+ "800",
5988
+ "800italic",
5989
+ "900",
5990
+ "900italic"
5991
+ ],
5992
+ "subsets": [
5993
+ "latin",
5994
+ "latin-ext"
5995
+ ]
5996
+ },
5997
+ {
5998
+ "family": "Life Savers",
5999
+ "variants": [
6000
+ "regular",
6001
+ "700",
6002
+ "800"
6003
+ ],
6004
+ "subsets": [
6005
+ "latin",
6006
+ "latin-ext"
6007
+ ]
6008
+ },
6009
+ {
6010
+ "family": "Lilita One",
6011
+ "variants": [
6012
+ "regular"
6013
+ ],
6014
+ "subsets": [
6015
+ "latin",
6016
+ "latin-ext"
6017
+ ]
6018
+ },
6019
+ {
6020
+ "family": "Lily Script One",
6021
+ "variants": [
6022
+ "regular"
6023
+ ],
6024
+ "subsets": [
6025
+ "latin",
6026
+ "latin-ext"
6027
+ ]
6028
+ },
6029
+ {
6030
+ "family": "Limelight",
6031
+ "variants": [
6032
+ "regular"
6033
+ ],
6034
+ "subsets": [
6035
+ "latin",
6036
+ "latin-ext"
6037
+ ]
6038
+ },
6039
+ {
6040
+ "family": "Linden Hill",
6041
+ "variants": [
6042
+ "regular",
6043
+ "italic"
6044
+ ],
6045
+ "subsets": [
6046
+ "latin"
6047
+ ]
6048
+ },
6049
+ {
6050
+ "family": "Literata",
6051
+ "variants": [
6052
+ "regular",
6053
+ "italic",
6054
+ "500",
6055
+ "500italic",
6056
+ "600",
6057
+ "600italic",
6058
+ "700",
6059
+ "700italic"
6060
+ ],
6061
+ "subsets": [
6062
+ "cyrillic",
6063
+ "vietnamese",
6064
+ "greek-ext",
6065
+ "greek",
6066
+ "latin",
6067
+ "latin-ext"
6068
+ ]
6069
+ },
6070
+ {
6071
+ "family": "Liu Jian Mao Cao",
6072
+ "variants": [
6073
+ "regular"
6074
+ ],
6075
+ "subsets": [
6076
+ "chinese-simplified",
6077
+ "latin"
6078
+ ]
6079
+ },
6080
+ {
6081
+ "family": "Livvic",
6082
+ "variants": [
6083
+ "100",
6084
+ "100italic",
6085
+ "200",
6086
+ "200italic",
6087
+ "300",
6088
+ "300italic",
6089
+ "regular",
6090
+ "italic",
6091
+ "500",
6092
+ "500italic",
6093
+ "600",
6094
+ "600italic",
6095
+ "700",
6096
+ "700italic",
6097
+ "900",
6098
+ "900italic"
6099
+ ],
6100
+ "subsets": [
6101
+ "vietnamese",
6102
+ "latin",
6103
+ "latin-ext"
6104
+ ]
6105
+ },
6106
+ {
6107
+ "family": "Lobster",
6108
+ "variants": [
6109
+ "regular"
6110
+ ],
6111
+ "subsets": [
6112
+ "cyrillic",
6113
+ "vietnamese",
6114
+ "cyrillic-ext",
6115
+ "latin",
6116
+ "latin-ext"
6117
+ ]
6118
+ },
6119
+ {
6120
+ "family": "Lobster Two",
6121
+ "variants": [
6122
+ "regular",
6123
+ "italic",
6124
+ "700",
6125
+ "700italic"
6126
+ ],
6127
+ "subsets": [
6128
+ "latin"
6129
+ ]
6130
+ },
6131
+ {
6132
+ "family": "Londrina Outline",
6133
+ "variants": [
6134
+ "regular"
6135
+ ],
6136
+ "subsets": [
6137
+ "latin"
6138
+ ]
6139
+ },
6140
+ {
6141
+ "family": "Londrina Shadow",
6142
+ "variants": [
6143
+ "regular"
6144
+ ],
6145
+ "subsets": [
6146
+ "latin"
6147
+ ]
6148
+ },
6149
+ {
6150
+ "family": "Londrina Sketch",
6151
+ "variants": [
6152
+ "regular"
6153
+ ],
6154
+ "subsets": [
6155
+ "latin"
6156
+ ]
6157
+ },
6158
+ {
6159
+ "family": "Londrina Solid",
6160
+ "variants": [
6161
+ "100",
6162
+ "300",
6163
+ "regular",
6164
+ "900"
6165
+ ],
6166
+ "subsets": [
6167
+ "latin"
6168
+ ]
6169
+ },
6170
+ {
6171
+ "family": "Long Cang",
6172
+ "variants": [
6173
+ "regular"
6174
+ ],
6175
+ "subsets": [
6176
+ "chinese-simplified",
6177
+ "latin"
6178
+ ]
6179
+ },
6180
+ {
6181
+ "family": "Lora",
6182
+ "variants": [
6183
+ "regular",
6184
+ "italic",
6185
+ "700",
6186
+ "700italic"
6187
+ ],
6188
+ "subsets": [
6189
+ "cyrillic",
6190
+ "vietnamese",
6191
+ "cyrillic-ext",
6192
+ "latin",
6193
+ "latin-ext"
6194
+ ]
6195
+ },
6196
+ {
6197
+ "family": "Love Ya Like A Sister",
6198
+ "variants": [
6199
+ "regular"
6200
+ ],
6201
+ "subsets": [
6202
+ "latin"
6203
+ ]
6204
+ },
6205
+ {
6206
+ "family": "Loved by the King",
6207
+ "variants": [
6208
+ "regular"
6209
+ ],
6210
+ "subsets": [
6211
+ "latin"
6212
+ ]
6213
+ },
6214
+ {
6215
+ "family": "Lovers Quarrel",
6216
+ "variants": [
6217
+ "regular"
6218
+ ],
6219
+ "subsets": [
6220
+ "latin",
6221
+ "latin-ext"
6222
+ ]
6223
+ },
6224
+ {
6225
+ "family": "Luckiest Guy",
6226
+ "variants": [
6227
+ "regular"
6228
+ ],
6229
+ "subsets": [
6230
+ "latin"
6231
+ ]
6232
+ },
6233
+ {
6234
+ "family": "Lusitana",
6235
+ "variants": [
6236
+ "regular",
6237
+ "700"
6238
+ ],
6239
+ "subsets": [
6240
+ "latin"
6241
+ ]
6242
+ },
6243
+ {
6244
+ "family": "Lustria",
6245
+ "variants": [
6246
+ "regular"
6247
+ ],
6248
+ "subsets": [
6249
+ "latin"
6250
+ ]
6251
+ },
6252
+ {
6253
+ "family": "M PLUS 1p",
6254
+ "variants": [
6255
+ "100",
6256
+ "300",
6257
+ "regular",
6258
+ "500",
6259
+ "700",
6260
+ "800",
6261
+ "900"
6262
+ ],
6263
+ "subsets": [
6264
+ "hebrew",
6265
+ "cyrillic",
6266
+ "japanese",
6267
+ "vietnamese",
6268
+ "cyrillic-ext",
6269
+ "greek-ext",
6270
+ "greek",
6271
+ "latin",
6272
+ "latin-ext"
6273
+ ]
6274
+ },
6275
+ {
6276
+ "family": "M PLUS Rounded 1c",
6277
+ "variants": [
6278
+ "100",
6279
+ "300",
6280
+ "regular",
6281
+ "500",
6282
+ "700",
6283
+ "800",
6284
+ "900"
6285
+ ],
6286
+ "subsets": [
6287
+ "hebrew",
6288
+ "cyrillic",
6289
+ "japanese",
6290
+ "vietnamese",
6291
+ "cyrillic-ext",
6292
+ "greek-ext",
6293
+ "greek",
6294
+ "latin",
6295
+ "latin-ext"
6296
+ ]
6297
+ },
6298
+ {
6299
+ "family": "Ma Shan Zheng",
6300
+ "variants": [
6301
+ "regular"
6302
+ ],
6303
+ "subsets": [
6304
+ "chinese-simplified",
6305
+ "latin"
6306
+ ]
6307
+ },
6308
+ {
6309
+ "family": "Macondo",
6310
+ "variants": [
6311
+ "regular"
6312
+ ],
6313
+ "subsets": [
6314
+ "latin"
6315
+ ]
6316
+ },
6317
+ {
6318
+ "family": "Macondo Swash Caps",
6319
+ "variants": [
6320
+ "regular"
6321
+ ],
6322
+ "subsets": [
6323
+ "latin"
6324
+ ]
6325
+ },
6326
+ {
6327
+ "family": "Mada",
6328
+ "variants": [
6329
+ "200",
6330
+ "300",
6331
+ "regular",
6332
+ "500",
6333
+ "600",
6334
+ "700",
6335
+ "900"
6336
+ ],
6337
+ "subsets": [
6338
+ "arabic",
6339
+ "latin"
6340
+ ]
6341
+ },
6342
+ {
6343
+ "family": "Magra",
6344
+ "variants": [
6345
+ "regular",
6346
+ "700"
6347
+ ],
6348
+ "subsets": [
6349
+ "latin",
6350
+ "latin-ext"
6351
+ ]
6352
+ },
6353
+ {
6354
+ "family": "Maiden Orange",
6355
+ "variants": [
6356
+ "regular"
6357
+ ],
6358
+ "subsets": [
6359
+ "latin"
6360
+ ]
6361
+ },
6362
+ {
6363
+ "family": "Maitree",
6364
+ "variants": [
6365
+ "200",
6366
+ "300",
6367
+ "regular",
6368
+ "500",
6369
+ "600",
6370
+ "700"
6371
+ ],
6372
+ "subsets": [
6373
+ "vietnamese",
6374
+ "latin",
6375
+ "thai",
6376
+ "latin-ext"
6377
+ ]
6378
+ },
6379
+ {
6380
+ "family": "Major Mono Display",
6381
+ "variants": [
6382
+ "regular"
6383
+ ],
6384
+ "subsets": [
6385
+ "vietnamese",
6386
+ "latin",
6387
+ "latin-ext"
6388
+ ]
6389
+ },
6390
+ {
6391
+ "family": "Mako",
6392
+ "variants": [
6393
+ "regular"
6394
+ ],
6395
+ "subsets": [
6396
+ "latin"
6397
+ ]
6398
+ },
6399
+ {
6400
+ "family": "Mali",
6401
+ "variants": [
6402
+ "200",
6403
+ "200italic",
6404
+ "300",
6405
+ "300italic",
6406
+ "regular",
6407
+ "italic",
6408
+ "500",
6409
+ "500italic",
6410
+ "600",
6411
+ "600italic",
6412
+ "700",
6413
+ "700italic"
6414
+ ],
6415
+ "subsets": [
6416
+ "vietnamese",
6417
+ "latin",
6418
+ "thai",
6419
+ "latin-ext"
6420
+ ]
6421
+ },
6422
+ {
6423
+ "family": "Mallanna",
6424
+ "variants": [
6425
+ "regular"
6426
+ ],
6427
+ "subsets": [
6428
+ "telugu",
6429
+ "latin"
6430
+ ]
6431
+ },
6432
+ {
6433
+ "family": "Mandali",
6434
+ "variants": [
6435
+ "regular"
6436
+ ],
6437
+ "subsets": [
6438
+ "telugu",
6439
+ "latin"
6440
+ ]
6441
+ },
6442
+ {
6443
+ "family": "Manjari",
6444
+ "variants": [
6445
+ "100",
6446
+ "regular",
6447
+ "700"
6448
+ ],
6449
+ "subsets": [
6450
+ "malayalam",
6451
+ "latin"
6452
+ ]
6453
+ },
6454
+ {
6455
+ "family": "Manuale",
6456
+ "variants": [
6457
+ "regular",
6458
+ "italic",
6459
+ "500",
6460
+ "500italic",
6461
+ "600",
6462
+ "600italic",
6463
+ "700",
6464
+ "700italic"
6465
+ ],
6466
+ "subsets": [
6467
+ "vietnamese",
6468
+ "latin",
6469
+ "latin-ext"
6470
+ ]
6471
+ },
6472
+ {
6473
+ "family": "Marcellus",
6474
+ "variants": [
6475
+ "regular"
6476
+ ],
6477
+ "subsets": [
6478
+ "latin",
6479
+ "latin-ext"
6480
+ ]
6481
+ },
6482
+ {
6483
+ "family": "Marcellus SC",
6484
+ "variants": [
6485
+ "regular"
6486
+ ],
6487
+ "subsets": [
6488
+ "latin",
6489
+ "latin-ext"
6490
+ ]
6491
+ },
6492
+ {
6493
+ "family": "Marck Script",
6494
+ "variants": [
6495
+ "regular"
6496
+ ],
6497
+ "subsets": [
6498
+ "cyrillic",
6499
+ "latin",
6500
+ "latin-ext"
6501
+ ]
6502
+ },
6503
+ {
6504
+ "family": "Margarine",
6505
+ "variants": [
6506
+ "regular"
6507
+ ],
6508
+ "subsets": [
6509
+ "latin",
6510
+ "latin-ext"
6511
+ ]
6512
+ },
6513
+ {
6514
+ "family": "Markazi Text",
6515
+ "variants": [
6516
+ "regular",
6517
+ "500",
6518
+ "600",
6519
+ "700"
6520
+ ],
6521
+ "subsets": [
6522
+ "arabic",
6523
+ "vietnamese",
6524
+ "latin",
6525
+ "latin-ext"
6526
+ ]
6527
+ },
6528
+ {
6529
+ "family": "Marko One",
6530
+ "variants": [
6531
+ "regular"
6532
+ ],
6533
+ "subsets": [
6534
+ "latin"
6535
+ ]
6536
+ },
6537
+ {
6538
+ "family": "Marmelad",
6539
+ "variants": [
6540
+ "regular"
6541
+ ],
6542
+ "subsets": [
6543
+ "cyrillic",
6544
+ "latin",
6545
+ "latin-ext"
6546
+ ]
6547
+ },
6548
+ {
6549
+ "family": "Martel",
6550
+ "variants": [
6551
+ "200",
6552
+ "300",
6553
+ "regular",
6554
+ "600",
6555
+ "700",
6556
+ "800",
6557
+ "900"
6558
+ ],
6559
+ "subsets": [
6560
+ "devanagari",
6561
+ "latin",
6562
+ "latin-ext"
6563
+ ]
6564
+ },
6565
+ {
6566
+ "family": "Martel Sans",
6567
+ "variants": [
6568
+ "200",
6569
+ "300",
6570
+ "regular",
6571
+ "600",
6572
+ "700",
6573
+ "800",
6574
+ "900"
6575
+ ],
6576
+ "subsets": [
6577
+ "devanagari",
6578
+ "latin",
6579
+ "latin-ext"
6580
+ ]
6581
+ },
6582
+ {
6583
+ "family": "Marvel",
6584
+ "variants": [
6585
+ "regular",
6586
+ "italic",
6587
+ "700",
6588
+ "700italic"
6589
+ ],
6590
+ "subsets": [
6591
+ "latin"
6592
+ ]
6593
+ },
6594
+ {
6595
+ "family": "Mate",
6596
+ "variants": [
6597
+ "regular",
6598
+ "italic"
6599
+ ],
6600
+ "subsets": [
6601
+ "latin"
6602
+ ]
6603
+ },
6604
+ {
6605
+ "family": "Mate SC",
6606
+ "variants": [
6607
+ "regular"
6608
+ ],
6609
+ "subsets": [
6610
+ "latin"
6611
+ ]
6612
+ },
6613
+ {
6614
+ "family": "Maven Pro",
6615
+ "variants": [
6616
+ "regular",
6617
+ "500",
6618
+ "700",
6619
+ "900"
6620
+ ],
6621
+ "subsets": [
6622
+ "vietnamese",
6623
+ "latin",
6624
+ "latin-ext"
6625
+ ]
6626
+ },
6627
+ {
6628
+ "family": "McLaren",
6629
+ "variants": [
6630
+ "regular"
6631
+ ],
6632
+ "subsets": [
6633
+ "latin",
6634
+ "latin-ext"
6635
+ ]
6636
+ },
6637
+ {
6638
+ "family": "Meddon",
6639
+ "variants": [
6640
+ "regular"
6641
+ ],
6642
+ "subsets": [
6643
+ "latin"
6644
+ ]
6645
+ },
6646
+ {
6647
+ "family": "MedievalSharp",
6648
+ "variants": [
6649
+ "regular"
6650
+ ],
6651
+ "subsets": [
6652
+ "latin",
6653
+ "latin-ext"
6654
+ ]
6655
+ },
6656
+ {
6657
+ "family": "Medula One",
6658
+ "variants": [
6659
+ "regular"
6660
+ ],
6661
+ "subsets": [
6662
+ "latin"
6663
+ ]
6664
+ },
6665
+ {
6666
+ "family": "Meera Inimai",
6667
+ "variants": [
6668
+ "regular"
6669
+ ],
6670
+ "subsets": [
6671
+ "tamil",
6672
+ "latin"
6673
+ ]
6674
+ },
6675
+ {
6676
+ "family": "Megrim",
6677
+ "variants": [
6678
+ "regular"
6679
+ ],
6680
+ "subsets": [
6681
+ "latin"
6682
+ ]
6683
+ },
6684
+ {
6685
+ "family": "Meie Script",
6686
+ "variants": [
6687
+ "regular"
6688
+ ],
6689
+ "subsets": [
6690
+ "latin",
6691
+ "latin-ext"
6692
+ ]
6693
+ },
6694
+ {
6695
+ "family": "Merienda",
6696
+ "variants": [
6697
+ "regular",
6698
+ "700"
6699
+ ],
6700
+ "subsets": [
6701
+ "latin",
6702
+ "latin-ext"
6703
+ ]
6704
+ },
6705
+ {
6706
+ "family": "Merienda One",
6707
+ "variants": [
6708
+ "regular"
6709
+ ],
6710
+ "subsets": [
6711
+ "latin"
6712
+ ]
6713
+ },
6714
+ {
6715
+ "family": "Merriweather",
6716
+ "variants": [
6717
+ "300",
6718
+ "300italic",
6719
+ "regular",
6720
+ "italic",
6721
+ "700",
6722
+ "700italic",
6723
+ "900",
6724
+ "900italic"
6725
+ ],
6726
+ "subsets": [
6727
+ "cyrillic",
6728
+ "vietnamese",
6729
+ "cyrillic-ext",
6730
+ "latin",
6731
+ "latin-ext"
6732
+ ]
6733
+ },
6734
+ {
6735
+ "family": "Merriweather Sans",
6736
+ "variants": [
6737
+ "300",
6738
+ "300italic",
6739
+ "regular",
6740
+ "italic",
6741
+ "700",
6742
+ "700italic",
6743
+ "800",
6744
+ "800italic"
6745
+ ],
6746
+ "subsets": [
6747
+ "latin",
6748
+ "latin-ext"
6749
+ ]
6750
+ },
6751
+ {
6752
+ "family": "Metal",
6753
+ "variants": [
6754
+ "regular"
6755
+ ],
6756
+ "subsets": [
6757
+ "khmer"
6758
+ ]
6759
+ },
6760
+ {
6761
+ "family": "Metal Mania",
6762
+ "variants": [
6763
+ "regular"
6764
+ ],
6765
+ "subsets": [
6766
+ "latin",
6767
+ "latin-ext"
6768
+ ]
6769
+ },
6770
+ {
6771
+ "family": "Metamorphous",
6772
+ "variants": [
6773
+ "regular"
6774
+ ],
6775
+ "subsets": [
6776
+ "latin",
6777
+ "latin-ext"
6778
+ ]
6779
+ },
6780
+ {
6781
+ "family": "Metrophobic",
6782
+ "variants": [
6783
+ "regular"
6784
+ ],
6785
+ "subsets": [
6786
+ "vietnamese",
6787
+ "latin",
6788
+ "latin-ext"
6789
+ ]
6790
+ },
6791
+ {
6792
+ "family": "Michroma",
6793
+ "variants": [
6794
+ "regular"
6795
+ ],
6796
+ "subsets": [
6797
+ "latin"
6798
+ ]
6799
+ },
6800
+ {
6801
+ "family": "Milonga",
6802
+ "variants": [
6803
+ "regular"
6804
+ ],
6805
+ "subsets": [
6806
+ "latin",
6807
+ "latin-ext"
6808
+ ]
6809
+ },
6810
+ {
6811
+ "family": "Miltonian",
6812
+ "variants": [
6813
+ "regular"
6814
+ ],
6815
+ "subsets": [
6816
+ "latin"
6817
+ ]
6818
+ },
6819
+ {
6820
+ "family": "Miltonian Tattoo",
6821
+ "variants": [
6822
+ "regular"
6823
+ ],
6824
+ "subsets": [
6825
+ "latin"
6826
+ ]
6827
+ },
6828
+ {
6829
+ "family": "Mina",
6830
+ "variants": [
6831
+ "regular",
6832
+ "700"
6833
+ ],
6834
+ "subsets": [
6835
+ "latin",
6836
+ "latin-ext",
6837
+ "bengali"
6838
+ ]
6839
+ },
6840
+ {
6841
+ "family": "Miniver",
6842
+ "variants": [
6843
+ "regular"
6844
+ ],
6845
+ "subsets": [
6846
+ "latin"
6847
+ ]
6848
+ },
6849
+ {
6850
+ "family": "Miriam Libre",
6851
+ "variants": [
6852
+ "regular",
6853
+ "700"
6854
+ ],
6855
+ "subsets": [
6856
+ "hebrew",
6857
+ "latin",
6858
+ "latin-ext"
6859
+ ]
6860
+ },
6861
+ {
6862
+ "family": "Mirza",
6863
+ "variants": [
6864
+ "regular",
6865
+ "500",
6866
+ "600",
6867
+ "700"
6868
+ ],
6869
+ "subsets": [
6870
+ "arabic",
6871
+ "latin",
6872
+ "latin-ext"
6873
+ ]
6874
+ },
6875
+ {
6876
+ "family": "Miss Fajardose",
6877
+ "variants": [
6878
+ "regular"
6879
+ ],
6880
+ "subsets": [
6881
+ "latin",
6882
+ "latin-ext"
6883
+ ]
6884
+ },
6885
+ {
6886
+ "family": "Mitr",
6887
+ "variants": [
6888
+ "200",
6889
+ "300",
6890
+ "regular",
6891
+ "500",
6892
+ "600",
6893
+ "700"
6894
+ ],
6895
+ "subsets": [
6896
+ "vietnamese",
6897
+ "latin",
6898
+ "thai",
6899
+ "latin-ext"
6900
+ ]
6901
+ },
6902
+ {
6903
+ "family": "Modak",
6904
+ "variants": [
6905
+ "regular"
6906
+ ],
6907
+ "subsets": [
6908
+ "devanagari",
6909
+ "latin",
6910
+ "latin-ext"
6911
+ ]
6912
+ },
6913
+ {
6914
+ "family": "Modern Antiqua",
6915
+ "variants": [
6916
+ "regular"
6917
+ ],
6918
+ "subsets": [
6919
+ "latin",
6920
+ "latin-ext"
6921
+ ]
6922
+ },
6923
+ {
6924
+ "family": "Mogra",
6925
+ "variants": [
6926
+ "regular"
6927
+ ],
6928
+ "subsets": [
6929
+ "gujarati",
6930
+ "latin",
6931
+ "latin-ext"
6932
+ ]
6933
+ },
6934
+ {
6935
+ "family": "Molengo",
6936
+ "variants": [
6937
+ "regular"
6938
+ ],
6939
+ "subsets": [
6940
+ "latin",
6941
+ "latin-ext"
6942
+ ]
6943
+ },
6944
+ {
6945
+ "family": "Molle",
6946
+ "variants": [
6947
+ "italic"
6948
+ ],
6949
+ "subsets": [
6950
+ "latin",
6951
+ "latin-ext"
6952
+ ]
6953
+ },
6954
+ {
6955
+ "family": "Monda",
6956
+ "variants": [
6957
+ "regular",
6958
+ "700"
6959
+ ],
6960
+ "subsets": [
6961
+ "latin",
6962
+ "latin-ext"
6963
+ ]
6964
+ },
6965
+ {
6966
+ "family": "Monofett",
6967
+ "variants": [
6968
+ "regular"
6969
+ ],
6970
+ "subsets": [
6971
+ "latin"
6972
+ ]
6973
+ },
6974
+ {
6975
+ "family": "Monoton",
6976
+ "variants": [
6977
+ "regular"
6978
+ ],
6979
+ "subsets": [
6980
+ "latin"
6981
+ ]
6982
+ },
6983
+ {
6984
+ "family": "Monsieur La Doulaise",
6985
+ "variants": [
6986
+ "regular"
6987
+ ],
6988
+ "subsets": [
6989
+ "latin",
6990
+ "latin-ext"
6991
+ ]
6992
+ },
6993
+ {
6994
+ "family": "Montaga",
6995
+ "variants": [
6996
+ "regular"
6997
+ ],
6998
+ "subsets": [
6999
+ "latin"
7000
+ ]
7001
+ },
7002
+ {
7003
+ "family": "Montez",
7004
+ "variants": [
7005
+ "regular"
7006
+ ],
7007
+ "subsets": [
7008
+ "latin"
7009
+ ]
7010
+ },
7011
+ {
7012
+ "family": "Montserrat",
7013
+ "variants": [
7014
+ "100",
7015
+ "100italic",
7016
+ "200",
7017
+ "200italic",
7018
+ "300",
7019
+ "300italic",
7020
+ "regular",
7021
+ "italic",
7022
+ "500",
7023
+ "500italic",
7024
+ "600",
7025
+ "600italic",
7026
+ "700",
7027
+ "700italic",
7028
+ "800",
7029
+ "800italic",
7030
+ "900",
7031
+ "900italic"
7032
+ ],
7033
+ "subsets": [
7034
+ "cyrillic",
7035
+ "vietnamese",
7036
+ "cyrillic-ext",
7037
+ "latin",
7038
+ "latin-ext"
7039
+ ]
7040
+ },
7041
+ {
7042
+ "family": "Montserrat Alternates",
7043
+ "variants": [
7044
+ "100",
7045
+ "100italic",
7046
+ "200",
7047
+ "200italic",
7048
+ "300",
7049
+ "300italic",
7050
+ "regular",
7051
+ "italic",
7052
+ "500",
7053
+ "500italic",
7054
+ "600",
7055
+ "600italic",
7056
+ "700",
7057
+ "700italic",
7058
+ "800",
7059
+ "800italic",
7060
+ "900",
7061
+ "900italic"
7062
+ ],
7063
+ "subsets": [
7064
+ "cyrillic",
7065
+ "vietnamese",
7066
+ "cyrillic-ext",
7067
+ "latin",
7068
+ "latin-ext"
7069
+ ]
7070
+ },
7071
+ {
7072
+ "family": "Montserrat Subrayada",
7073
+ "variants": [
7074
+ "regular",
7075
+ "700"
7076
+ ],
7077
+ "subsets": [
7078
+ "latin"
7079
+ ]
7080
+ },
7081
+ {
7082
+ "family": "Moul",
7083
+ "variants": [
7084
+ "regular"
7085
+ ],
7086
+ "subsets": [
7087
+ "khmer"
7088
+ ]
7089
+ },
7090
+ {
7091
+ "family": "Moulpali",
7092
+ "variants": [
7093
+ "regular"
7094
+ ],
7095
+ "subsets": [
7096
+ "khmer"
7097
+ ]
7098
+ },
7099
+ {
7100
+ "family": "Mountains of Christmas",
7101
+ "variants": [
7102
+ "regular",
7103
+ "700"
7104
+ ],
7105
+ "subsets": [
7106
+ "latin"
7107
+ ]
7108
+ },
7109
+ {
7110
+ "family": "Mouse Memoirs",
7111
+ "variants": [
7112
+ "regular"
7113
+ ],
7114
+ "subsets": [
7115
+ "latin",
7116
+ "latin-ext"
7117
+ ]
7118
+ },
7119
+ {
7120
+ "family": "Mr Bedfort",
7121
+ "variants": [
7122
+ "regular"
7123
+ ],
7124
+ "subsets": [
7125
+ "latin",
7126
+ "latin-ext"
7127
+ ]
7128
+ },
7129
+ {
7130
+ "family": "Mr Dafoe",
7131
+ "variants": [
7132
+ "regular"
7133
+ ],
7134
+ "subsets": [
7135
+ "latin",
7136
+ "latin-ext"
7137
+ ]
7138
+ },
7139
+ {
7140
+ "family": "Mr De Haviland",
7141
+ "variants": [
7142
+ "regular"
7143
+ ],
7144
+ "subsets": [
7145
+ "latin",
7146
+ "latin-ext"
7147
+ ]
7148
+ },
7149
+ {
7150
+ "family": "Mrs Saint Delafield",
7151
+ "variants": [
7152
+ "regular"
7153
+ ],
7154
+ "subsets": [
7155
+ "latin",
7156
+ "latin-ext"
7157
+ ]
7158
+ },
7159
+ {
7160
+ "family": "Mrs Sheppards",
7161
+ "variants": [
7162
+ "regular"
7163
+ ],
7164
+ "subsets": [
7165
+ "latin",
7166
+ "latin-ext"
7167
+ ]
7168
+ },
7169
+ {
7170
+ "family": "Mukta",
7171
+ "variants": [
7172
+ "200",
7173
+ "300",
7174
+ "regular",
7175
+ "500",
7176
+ "600",
7177
+ "700",
7178
+ "800"
7179
+ ],
7180
+ "subsets": [
7181
+ "devanagari",
7182
+ "latin",
7183
+ "latin-ext"
7184
+ ]
7185
+ },
7186
+ {
7187
+ "family": "Mukta Mahee",
7188
+ "variants": [
7189
+ "200",
7190
+ "300",
7191
+ "regular",
7192
+ "500",
7193
+ "600",
7194
+ "700",
7195
+ "800"
7196
+ ],
7197
+ "subsets": [
7198
+ "latin",
7199
+ "gurmukhi",
7200
+ "latin-ext"
7201
+ ]
7202
+ },
7203
+ {
7204
+ "family": "Mukta Malar",
7205
+ "variants": [
7206
+ "200",
7207
+ "300",
7208
+ "regular",
7209
+ "500",
7210
+ "600",
7211
+ "700",
7212
+ "800"
7213
+ ],
7214
+ "subsets": [
7215
+ "tamil",
7216
+ "latin",
7217
+ "latin-ext"
7218
+ ]
7219
+ },
7220
+ {
7221
+ "family": "Mukta Vaani",
7222
+ "variants": [
7223
+ "200",
7224
+ "300",
7225
+ "regular",
7226
+ "500",
7227
+ "600",
7228
+ "700",
7229
+ "800"
7230
+ ],
7231
+ "subsets": [
7232
+ "gujarati",
7233
+ "latin",
7234
+ "latin-ext"
7235
+ ]
7236
+ },
7237
+ {
7238
+ "family": "Muli",
7239
+ "variants": [
7240
+ "200",
7241
+ "200italic",
7242
+ "300",
7243
+ "300italic",
7244
+ "regular",
7245
+ "italic",
7246
+ "600",
7247
+ "600italic",
7248
+ "700",
7249
+ "700italic",
7250
+ "800",
7251
+ "800italic",
7252
+ "900",
7253
+ "900italic"
7254
+ ],
7255
+ "subsets": [
7256
+ "vietnamese",
7257
+ "latin",
7258
+ "latin-ext"
7259
+ ]
7260
+ },
7261
+ {
7262
+ "family": "Mystery Quest",
7263
+ "variants": [
7264
+ "regular"
7265
+ ],
7266
+ "subsets": [
7267
+ "latin",
7268
+ "latin-ext"
7269
+ ]
7270
+ },
7271
+ {
7272
+ "family": "NTR",
7273
+ "variants": [
7274
+ "regular"
7275
+ ],
7276
+ "subsets": [
7277
+ "telugu",
7278
+ "latin"
7279
+ ]
7280
+ },
7281
+ {
7282
+ "family": "Nanum Brush Script",
7283
+ "variants": [
7284
+ "regular"
7285
+ ],
7286
+ "subsets": [
7287
+ "latin",
7288
+ "korean"
7289
+ ]
7290
+ },
7291
+ {
7292
+ "family": "Nanum Gothic",
7293
+ "variants": [
7294
+ "regular",
7295
+ "700",
7296
+ "800"
7297
+ ],
7298
+ "subsets": [
7299
+ "latin",
7300
+ "korean"
7301
+ ]
7302
+ },
7303
+ {
7304
+ "family": "Nanum Gothic Coding",
7305
+ "variants": [
7306
+ "regular",
7307
+ "700"
7308
+ ],
7309
+ "subsets": [
7310
+ "latin",
7311
+ "korean"
7312
+ ]
7313
+ },
7314
+ {
7315
+ "family": "Nanum Myeongjo",
7316
+ "variants": [
7317
+ "regular",
7318
+ "700",
7319
+ "800"
7320
+ ],
7321
+ "subsets": [
7322
+ "latin",
7323
+ "korean"
7324
+ ]
7325
+ },
7326
+ {
7327
+ "family": "Nanum Pen Script",
7328
+ "variants": [
7329
+ "regular"
7330
+ ],
7331
+ "subsets": [
7332
+ "latin",
7333
+ "korean"
7334
+ ]
7335
+ },
7336
+ {
7337
+ "family": "Neucha",
7338
+ "variants": [
7339
+ "regular"
7340
+ ],
7341
+ "subsets": [
7342
+ "cyrillic",
7343
+ "latin"
7344
+ ]
7345
+ },
7346
+ {
7347
+ "family": "Neuton",
7348
+ "variants": [
7349
+ "200",
7350
+ "300",
7351
+ "regular",
7352
+ "italic",
7353
+ "700",
7354
+ "800"
7355
+ ],
7356
+ "subsets": [
7357
+ "latin",
7358
+ "latin-ext"
7359
+ ]
7360
+ },
7361
+ {
7362
+ "family": "New Rocker",
7363
+ "variants": [
7364
+ "regular"
7365
+ ],
7366
+ "subsets": [
7367
+ "latin",
7368
+ "latin-ext"
7369
+ ]
7370
+ },
7371
+ {
7372
+ "family": "News Cycle",
7373
+ "variants": [
7374
+ "regular",
7375
+ "700"
7376
+ ],
7377
+ "subsets": [
7378
+ "latin",
7379
+ "latin-ext"
7380
+ ]
7381
+ },
7382
+ {
7383
+ "family": "Niconne",
7384
+ "variants": [
7385
+ "regular"
7386
+ ],
7387
+ "subsets": [
7388
+ "latin",
7389
+ "latin-ext"
7390
+ ]
7391
+ },
7392
+ {
7393
+ "family": "Niramit",
7394
+ "variants": [
7395
+ "200",
7396
+ "200italic",
7397
+ "300",
7398
+ "300italic",
7399
+ "regular",
7400
+ "italic",
7401
+ "500",
7402
+ "500italic",
7403
+ "600",
7404
+ "600italic",
7405
+ "700",
7406
+ "700italic"
7407
+ ],
7408
+ "subsets": [
7409
+ "vietnamese",
7410
+ "latin",
7411
+ "thai",
7412
+ "latin-ext"
7413
+ ]
7414
+ },
7415
+ {
7416
+ "family": "Nixie One",
7417
+ "variants": [
7418
+ "regular"
7419
+ ],
7420
+ "subsets": [
7421
+ "latin"
7422
+ ]
7423
+ },
7424
+ {
7425
+ "family": "Nobile",
7426
+ "variants": [
7427
+ "regular",
7428
+ "italic",
7429
+ "500",
7430
+ "500italic",
7431
+ "700",
7432
+ "700italic"
7433
+ ],
7434
+ "subsets": [
7435
+ "latin",
7436
+ "latin-ext"
7437
+ ]
7438
+ },
7439
+ {
7440
+ "family": "Nokora",
7441
+ "variants": [
7442
+ "regular",
7443
+ "700"
7444
+ ],
7445
+ "subsets": [
7446
+ "khmer"
7447
+ ]
7448
+ },
7449
+ {
7450
+ "family": "Norican",
7451
+ "variants": [
7452
+ "regular"
7453
+ ],
7454
+ "subsets": [
7455
+ "latin",
7456
+ "latin-ext"
7457
+ ]
7458
+ },
7459
+ {
7460
+ "family": "Nosifer",
7461
+ "variants": [
7462
+ "regular"
7463
+ ],
7464
+ "subsets": [
7465
+ "latin",
7466
+ "latin-ext"
7467
+ ]
7468
+ },
7469
+ {
7470
+ "family": "Notable",
7471
+ "variants": [
7472
+ "regular"
7473
+ ],
7474
+ "subsets": [
7475
+ "latin"
7476
+ ]
7477
+ },
7478
+ {
7479
+ "family": "Nothing You Could Do",
7480
+ "variants": [
7481
+ "regular"
7482
+ ],
7483
+ "subsets": [
7484
+ "latin"
7485
+ ]
7486
+ },
7487
+ {
7488
+ "family": "Noticia Text",
7489
+ "variants": [
7490
+ "regular",
7491
+ "italic",
7492
+ "700",
7493
+ "700italic"
7494
+ ],
7495
+ "subsets": [
7496
+ "vietnamese",
7497
+ "latin",
7498
+ "latin-ext"
7499
+ ]
7500
+ },
7501
+ {
7502
+ "family": "Noto Sans",
7503
+ "variants": [
7504
+ "regular",
7505
+ "italic",
7506
+ "700",
7507
+ "700italic"
7508
+ ],
7509
+ "subsets": [
7510
+ "cyrillic",
7511
+ "devanagari",
7512
+ "vietnamese",
7513
+ "cyrillic-ext",
7514
+ "greek-ext",
7515
+ "greek",
7516
+ "latin",
7517
+ "latin-ext"
7518
+ ]
7519
+ },
7520
+ {
7521
+ "family": "Noto Sans HK",
7522
+ "variants": [
7523
+ "100",
7524
+ "300",
7525
+ "regular",
7526
+ "500",
7527
+ "700",
7528
+ "900"
7529
+ ],
7530
+ "subsets": [
7531
+ "chinese-hongkong",
7532
+ "latin"
7533
+ ]
7534
+ },
7535
+ {
7536
+ "family": "Noto Sans JP",
7537
+ "variants": [
7538
+ "100",
7539
+ "300",
7540
+ "regular",
7541
+ "500",
7542
+ "700",
7543
+ "900"
7544
+ ],
7545
+ "subsets": [
7546
+ "japanese",
7547
+ "latin"
7548
+ ]
7549
+ },
7550
+ {
7551
+ "family": "Noto Sans KR",
7552
+ "variants": [
7553
+ "100",
7554
+ "300",
7555
+ "regular",
7556
+ "500",
7557
+ "700",
7558
+ "900"
7559
+ ],
7560
+ "subsets": [
7561
+ "latin",
7562
+ "korean"
7563
+ ]
7564
+ },
7565
+ {
7566
+ "family": "Noto Sans SC",
7567
+ "variants": [
7568
+ "100",
7569
+ "300",
7570
+ "regular",
7571
+ "500",
7572
+ "700",
7573
+ "900"
7574
+ ],
7575
+ "subsets": [
7576
+ "cyrillic",
7577
+ "vietnamese",
7578
+ "chinese-simplified",
7579
+ "latin"
7580
+ ]
7581
+ },
7582
+ {
7583
+ "family": "Noto Sans TC",
7584
+ "variants": [
7585
+ "100",
7586
+ "300",
7587
+ "regular",
7588
+ "500",
7589
+ "700",
7590
+ "900"
7591
+ ],
7592
+ "subsets": [
7593
+ "chinese-traditional",
7594
+ "latin"
7595
+ ]
7596
+ },
7597
+ {
7598
+ "family": "Noto Serif",
7599
+ "variants": [
7600
+ "regular",
7601
+ "italic",
7602
+ "700",
7603
+ "700italic"
7604
+ ],
7605
+ "subsets": [
7606
+ "cyrillic",
7607
+ "vietnamese",
7608
+ "cyrillic-ext",
7609
+ "greek-ext",
7610
+ "greek",
7611
+ "latin",
7612
+ "latin-ext"
7613
+ ]
7614
+ },
7615
+ {
7616
+ "family": "Noto Serif JP",
7617
+ "variants": [
7618
+ "200",
7619
+ "300",
7620
+ "regular",
7621
+ "500",
7622
+ "600",
7623
+ "700",
7624
+ "900"
7625
+ ],
7626
+ "subsets": [
7627
+ "japanese",
7628
+ "latin"
7629
+ ]
7630
+ },
7631
+ {
7632
+ "family": "Noto Serif KR",
7633
+ "variants": [
7634
+ "200",
7635
+ "300",
7636
+ "regular",
7637
+ "500",
7638
+ "600",
7639
+ "700",
7640
+ "900"
7641
+ ],
7642
+ "subsets": [
7643
+ "latin",
7644
+ "korean"
7645
+ ]
7646
+ },
7647
+ {
7648
+ "family": "Noto Serif SC",
7649
+ "variants": [
7650
+ "200",
7651
+ "300",
7652
+ "regular",
7653
+ "500",
7654
+ "600",
7655
+ "700",
7656
+ "900"
7657
+ ],
7658
+ "subsets": [
7659
+ "cyrillic",
7660
+ "vietnamese",
7661
+ "chinese-simplified",
7662
+ "latin"
7663
+ ]
7664
+ },
7665
+ {
7666
+ "family": "Noto Serif TC",
7667
+ "variants": [
7668
+ "200",
7669
+ "300",
7670
+ "regular",
7671
+ "500",
7672
+ "600",
7673
+ "700",
7674
+ "900"
7675
+ ],
7676
+ "subsets": [
7677
+ "cyrillic",
7678
+ "chinese-traditional",
7679
+ "vietnamese",
7680
+ "latin"
7681
+ ]
7682
+ },
7683
+ {
7684
+ "family": "Nova Cut",
7685
+ "variants": [
7686
+ "regular"
7687
+ ],
7688
+ "subsets": [
7689
+ "latin"
7690
+ ]
7691
+ },
7692
+ {
7693
+ "family": "Nova Flat",
7694
+ "variants": [
7695
+ "regular"
7696
+ ],
7697
+ "subsets": [
7698
+ "latin"
7699
+ ]
7700
+ },
7701
+ {
7702
+ "family": "Nova Mono",
7703
+ "variants": [
7704
+ "regular"
7705
+ ],
7706
+ "subsets": [
7707
+ "greek",
7708
+ "latin"
7709
+ ]
7710
+ },
7711
+ {
7712
+ "family": "Nova Oval",
7713
+ "variants": [
7714
+ "regular"
7715
+ ],
7716
+ "subsets": [
7717
+ "latin"
7718
+ ]
7719
+ },
7720
+ {
7721
+ "family": "Nova Round",
7722
+ "variants": [
7723
+ "regular"
7724
+ ],
7725
+ "subsets": [
7726
+ "latin"
7727
+ ]
7728
+ },
7729
+ {
7730
+ "family": "Nova Script",
7731
+ "variants": [
7732
+ "regular"
7733
+ ],
7734
+ "subsets": [
7735
+ "latin"
7736
+ ]
7737
+ },
7738
+ {
7739
+ "family": "Nova Slim",
7740
+ "variants": [
7741
+ "regular"
7742
+ ],
7743
+ "subsets": [
7744
+ "latin"
7745
+ ]
7746
+ },
7747
+ {
7748
+ "family": "Nova Square",
7749
+ "variants": [
7750
+ "regular"
7751
+ ],
7752
+ "subsets": [
7753
+ "latin"
7754
+ ]
7755
+ },
7756
+ {
7757
+ "family": "Numans",
7758
+ "variants": [
7759
+ "regular"
7760
+ ],
7761
+ "subsets": [
7762
+ "latin"
7763
+ ]
7764
+ },
7765
+ {
7766
+ "family": "Nunito",
7767
+ "variants": [
7768
+ "200",
7769
+ "200italic",
7770
+ "300",
7771
+ "300italic",
7772
+ "regular",
7773
+ "italic",
7774
+ "600",
7775
+ "600italic",
7776
+ "700",
7777
+ "700italic",
7778
+ "800",
7779
+ "800italic",
7780
+ "900",
7781
+ "900italic"
7782
+ ],
7783
+ "subsets": [
7784
+ "vietnamese",
7785
+ "latin",
7786
+ "latin-ext"
7787
+ ]
7788
+ },
7789
+ {
7790
+ "family": "Nunito Sans",
7791
+ "variants": [
7792
+ "200",
7793
+ "200italic",
7794
+ "300",
7795
+ "300italic",
7796
+ "regular",
7797
+ "italic",
7798
+ "600",
7799
+ "600italic",
7800
+ "700",
7801
+ "700italic",
7802
+ "800",
7803
+ "800italic",
7804
+ "900",
7805
+ "900italic"
7806
+ ],
7807
+ "subsets": [
7808
+ "vietnamese",
7809
+ "latin",
7810
+ "latin-ext"
7811
+ ]
7812
+ },
7813
+ {
7814
+ "family": "Odor Mean Chey",
7815
+ "variants": [
7816
+ "regular"
7817
+ ],
7818
+ "subsets": [
7819
+ "khmer"
7820
+ ]
7821
+ },
7822
+ {
7823
+ "family": "Offside",
7824
+ "variants": [
7825
+ "regular"
7826
+ ],
7827
+ "subsets": [
7828
+ "latin"
7829
+ ]
7830
+ },
7831
+ {
7832
+ "family": "Old Standard TT",
7833
+ "variants": [
7834
+ "regular",
7835
+ "italic",
7836
+ "700"
7837
+ ],
7838
+ "subsets": [
7839
+ "cyrillic",
7840
+ "vietnamese",
7841
+ "cyrillic-ext",
7842
+ "latin",
7843
+ "latin-ext"
7844
+ ]
7845
+ },
7846
+ {
7847
+ "family": "Oldenburg",
7848
+ "variants": [
7849
+ "regular"
7850
+ ],
7851
+ "subsets": [
7852
+ "latin",
7853
+ "latin-ext"
7854
+ ]
7855
+ },
7856
+ {
7857
+ "family": "Oleo Script",
7858
+ "variants": [
7859
+ "regular",
7860
+ "700"
7861
+ ],
7862
+ "subsets": [
7863
+ "latin",
7864
+ "latin-ext"
7865
+ ]
7866
+ },
7867
+ {
7868
+ "family": "Oleo Script Swash Caps",
7869
+ "variants": [
7870
+ "regular",
7871
+ "700"
7872
+ ],
7873
+ "subsets": [
7874
+ "latin",
7875
+ "latin-ext"
7876
+ ]
7877
+ },
7878
+ {
7879
+ "family": "Open Sans",
7880
+ "variants": [
7881
+ "300",
7882
+ "300italic",
7883
+ "regular",
7884
+ "italic",
7885
+ "600",
7886
+ "600italic",
7887
+ "700",
7888
+ "700italic",
7889
+ "800",
7890
+ "800italic"
7891
+ ],
7892
+ "subsets": [
7893
+ "cyrillic",
7894
+ "vietnamese",
7895
+ "cyrillic-ext",
7896
+ "greek-ext",
7897
+ "greek",
7898
+ "latin",
7899
+ "latin-ext"
7900
+ ]
7901
+ },
7902
+ {
7903
+ "family": "Open Sans Condensed",
7904
+ "variants": [
7905
+ "300",
7906
+ "300italic",
7907
+ "700"
7908
+ ],
7909
+ "subsets": [
7910
+ "cyrillic",
7911
+ "vietnamese",
7912
+ "cyrillic-ext",
7913
+ "greek-ext",
7914
+ "greek",
7915
+ "latin",
7916
+ "latin-ext"
7917
+ ]
7918
+ },
7919
+ {
7920
+ "family": "Oranienbaum",
7921
+ "variants": [
7922
+ "regular"
7923
+ ],
7924
+ "subsets": [
7925
+ "cyrillic",
7926
+ "cyrillic-ext",
7927
+ "latin",
7928
+ "latin-ext"
7929
+ ]
7930
+ },
7931
+ {
7932
+ "family": "Orbitron",
7933
+ "variants": [
7934
+ "regular",
7935
+ "500",
7936
+ "700",
7937
+ "900"
7938
+ ],
7939
+ "subsets": [
7940
+ "latin"
7941
+ ]
7942
+ },
7943
+ {
7944
+ "family": "Oregano",
7945
+ "variants": [
7946
+ "regular",
7947
+ "italic"
7948
+ ],
7949
+ "subsets": [
7950
+ "latin",
7951
+ "latin-ext"
7952
+ ]
7953
+ },
7954
+ {
7955
+ "family": "Orienta",
7956
+ "variants": [
7957
+ "regular"
7958
+ ],
7959
+ "subsets": [
7960
+ "latin",
7961
+ "latin-ext"
7962
+ ]
7963
+ },
7964
+ {
7965
+ "family": "Original Surfer",
7966
+ "variants": [
7967
+ "regular"
7968
+ ],
7969
+ "subsets": [
7970
+ "latin"
7971
+ ]
7972
+ },
7973
+ {
7974
+ "family": "Oswald",
7975
+ "variants": [
7976
+ "200",
7977
+ "300",
7978
+ "regular",
7979
+ "500",
7980
+ "600",
7981
+ "700"
7982
+ ],
7983
+ "subsets": [
7984
+ "cyrillic",
7985
+ "vietnamese",
7986
+ "cyrillic-ext",
7987
+ "latin",
7988
+ "latin-ext"
7989
+ ]
7990
+ },
7991
+ {
7992
+ "family": "Over the Rainbow",
7993
+ "variants": [
7994
+ "regular"
7995
+ ],
7996
+ "subsets": [
7997
+ "latin"
7998
+ ]
7999
+ },
8000
+ {
8001
+ "family": "Overlock",
8002
+ "variants": [
8003
+ "regular",
8004
+ "italic",
8005
+ "700",
8006
+ "700italic",
8007
+ "900",
8008
+ "900italic"
8009
+ ],
8010
+ "subsets": [
8011
+ "latin",
8012
+ "latin-ext"
8013
+ ]
8014
+ },
8015
+ {
8016
+ "family": "Overlock SC",
8017
+ "variants": [
8018
+ "regular"
8019
+ ],
8020
+ "subsets": [
8021
+ "latin",
8022
+ "latin-ext"
8023
+ ]
8024
+ },
8025
+ {
8026
+ "family": "Overpass",
8027
+ "variants": [
8028
+ "100",
8029
+ "100italic",
8030
+ "200",
8031
+ "200italic",
8032
+ "300",
8033
+ "300italic",
8034
+ "regular",
8035
+ "italic",
8036
+ "600",
8037
+ "600italic",
8038
+ "700",
8039
+ "700italic",
8040
+ "800",
8041
+ "800italic",
8042
+ "900",
8043
+ "900italic"
8044
+ ],
8045
+ "subsets": [
8046
+ "latin",
8047
+ "latin-ext"
8048
+ ]
8049
+ },
8050
+ {
8051
+ "family": "Overpass Mono",
8052
+ "variants": [
8053
+ "300",
8054
+ "regular",
8055
+ "600",
8056
+ "700"
8057
+ ],
8058
+ "subsets": [
8059
+ "latin",
8060
+ "latin-ext"
8061
+ ]
8062
+ },
8063
+ {
8064
+ "family": "Ovo",
8065
+ "variants": [
8066
+ "regular"
8067
+ ],
8068
+ "subsets": [
8069
+ "latin"
8070
+ ]
8071
+ },
8072
+ {
8073
+ "family": "Oxygen",
8074
+ "variants": [
8075
+ "300",
8076
+ "regular",
8077
+ "700"
8078
+ ],
8079
+ "subsets": [
8080
+ "latin",
8081
+ "latin-ext"
8082
+ ]
8083
+ },
8084
+ {
8085
+ "family": "Oxygen Mono",
8086
+ "variants": [
8087
+ "regular"
8088
+ ],
8089
+ "subsets": [
8090
+ "latin",
8091
+ "latin-ext"
8092
+ ]
8093
+ },
8094
+ {
8095
+ "family": "PT Mono",
8096
+ "variants": [
8097
+ "regular"
8098
+ ],
8099
+ "subsets": [
8100
+ "cyrillic",
8101
+ "cyrillic-ext",
8102
+ "latin",
8103
+ "latin-ext"
8104
+ ]
8105
+ },
8106
+ {
8107
+ "family": "PT Sans",
8108
+ "variants": [
8109
+ "regular",
8110
+ "italic",
8111
+ "700",
8112
+ "700italic"
8113
+ ],
8114
+ "subsets": [
8115
+ "cyrillic",
8116
+ "cyrillic-ext",
8117
+ "latin",
8118
+ "latin-ext"
8119
+ ]
8120
+ },
8121
+ {
8122
+ "family": "PT Sans Caption",
8123
+ "variants": [
8124
+ "regular",
8125
+ "700"
8126
+ ],
8127
+ "subsets": [
8128
+ "cyrillic",
8129
+ "cyrillic-ext",
8130
+ "latin",
8131
+ "latin-ext"
8132
+ ]
8133
+ },
8134
+ {
8135
+ "family": "PT Sans Narrow",
8136
+ "variants": [
8137
+ "regular",
8138
+ "700"
8139
+ ],
8140
+ "subsets": [
8141
+ "cyrillic",
8142
+ "cyrillic-ext",
8143
+ "latin",
8144
+ "latin-ext"
8145
+ ]
8146
+ },
8147
+ {
8148
+ "family": "PT Serif",
8149
+ "variants": [
8150
+ "regular",
8151
+ "italic",
8152
+ "700",
8153
+ "700italic"
8154
+ ],
8155
+ "subsets": [
8156
+ "cyrillic",
8157
+ "cyrillic-ext",
8158
+ "latin",
8159
+ "latin-ext"
8160
+ ]
8161
+ },
8162
+ {
8163
+ "family": "PT Serif Caption",
8164
+ "variants": [
8165
+ "regular",
8166
+ "italic"
8167
+ ],
8168
+ "subsets": [
8169
+ "cyrillic",
8170
+ "cyrillic-ext",
8171
+ "latin",
8172
+ "latin-ext"
8173
+ ]
8174
+ },
8175
+ {
8176
+ "family": "Pacifico",
8177
+ "variants": [
8178
+ "regular"
8179
+ ],
8180
+ "subsets": [
8181
+ "cyrillic",
8182
+ "vietnamese",
8183
+ "cyrillic-ext",
8184
+ "latin",
8185
+ "latin-ext"
8186
+ ]
8187
+ },
8188
+ {
8189
+ "family": "Padauk",
8190
+ "variants": [
8191
+ "regular",
8192
+ "700"
8193
+ ],
8194
+ "subsets": [
8195
+ "myanmar",
8196
+ "latin"
8197
+ ]
8198
+ },
8199
+ {
8200
+ "family": "Palanquin",
8201
+ "variants": [
8202
+ "100",
8203
+ "200",
8204
+ "300",
8205
+ "regular",
8206
+ "500",
8207
+ "600",
8208
+ "700"
8209
+ ],
8210
+ "subsets": [
8211
+ "devanagari",
8212
+ "latin",
8213
+ "latin-ext"
8214
+ ]
8215
+ },
8216
+ {
8217
+ "family": "Palanquin Dark",
8218
+ "variants": [
8219
+ "regular",
8220
+ "500",
8221
+ "600",
8222
+ "700"
8223
+ ],
8224
+ "subsets": [
8225
+ "devanagari",
8226
+ "latin",
8227
+ "latin-ext"
8228
+ ]
8229
+ },
8230
+ {
8231
+ "family": "Pangolin",
8232
+ "variants": [
8233
+ "regular"
8234
+ ],
8235
+ "subsets": [
8236
+ "cyrillic",
8237
+ "vietnamese",
8238
+ "cyrillic-ext",
8239
+ "latin",
8240
+ "latin-ext"
8241
+ ]
8242
+ },
8243
+ {
8244
+ "family": "Paprika",
8245
+ "variants": [
8246
+ "regular"
8247
+ ],
8248
+ "subsets": [
8249
+ "latin"
8250
+ ]
8251
+ },
8252
+ {
8253
+ "family": "Parisienne",
8254
+ "variants": [
8255
+ "regular"
8256
+ ],
8257
+ "subsets": [
8258
+ "latin",
8259
+ "latin-ext"
8260
+ ]
8261
+ },
8262
+ {
8263
+ "family": "Passero One",
8264
+ "variants": [
8265
+ "regular"
8266
+ ],
8267
+ "subsets": [
8268
+ "latin",
8269
+ "latin-ext"
8270
+ ]
8271
+ },
8272
+ {
8273
+ "family": "Passion One",
8274
+ "variants": [
8275
+ "regular",
8276
+ "700",
8277
+ "900"
8278
+ ],
8279
+ "subsets": [
8280
+ "latin",
8281
+ "latin-ext"
8282
+ ]
8283
+ },
8284
+ {
8285
+ "family": "Pathway Gothic One",
8286
+ "variants": [
8287
+ "regular"
8288
+ ],
8289
+ "subsets": [
8290
+ "latin",
8291
+ "latin-ext"
8292
+ ]
8293
+ },
8294
+ {
8295
+ "family": "Patrick Hand",
8296
+ "variants": [
8297
+ "regular"
8298
+ ],
8299
+ "subsets": [
8300
+ "vietnamese",
8301
+ "latin",
8302
+ "latin-ext"
8303
+ ]
8304
+ },
8305
+ {
8306
+ "family": "Patrick Hand SC",
8307
+ "variants": [
8308
+ "regular"
8309
+ ],
8310
+ "subsets": [
8311
+ "vietnamese",
8312
+ "latin",
8313
+ "latin-ext"
8314
+ ]
8315
+ },
8316
+ {
8317
+ "family": "Pattaya",
8318
+ "variants": [
8319
+ "regular"
8320
+ ],
8321
+ "subsets": [
8322
+ "cyrillic",
8323
+ "vietnamese",
8324
+ "latin",
8325
+ "thai",
8326
+ "latin-ext"
8327
+ ]
8328
+ },
8329
+ {
8330
+ "family": "Patua One",
8331
+ "variants": [
8332
+ "regular"
8333
+ ],
8334
+ "subsets": [
8335
+ "latin"
8336
+ ]
8337
+ },
8338
+ {
8339
+ "family": "Pavanam",
8340
+ "variants": [
8341
+ "regular"
8342
+ ],
8343
+ "subsets": [
8344
+ "tamil",
8345
+ "latin",
8346
+ "latin-ext"
8347
+ ]
8348
+ },
8349
+ {
8350
+ "family": "Paytone One",
8351
+ "variants": [
8352
+ "regular"
8353
+ ],
8354
+ "subsets": [
8355
+ "vietnamese",
8356
+ "latin",
8357
+ "latin-ext"
8358
+ ]
8359
+ },
8360
+ {
8361
+ "family": "Peddana",
8362
+ "variants": [
8363
+ "regular"
8364
+ ],
8365
+ "subsets": [
8366
+ "telugu",
8367
+ "latin"
8368
+ ]
8369
+ },
8370
+ {
8371
+ "family": "Peralta",
8372
+ "variants": [
8373
+ "regular"
8374
+ ],
8375
+ "subsets": [
8376
+ "latin",
8377
+ "latin-ext"
8378
+ ]
8379
+ },
8380
+ {
8381
+ "family": "Permanent Marker",
8382
+ "variants": [
8383
+ "regular"
8384
+ ],
8385
+ "subsets": [
8386
+ "latin"
8387
+ ]
8388
+ },
8389
+ {
8390
+ "family": "Petit Formal Script",
8391
+ "variants": [
8392
+ "regular"
8393
+ ],
8394
+ "subsets": [
8395
+ "latin",
8396
+ "latin-ext"
8397
+ ]
8398
+ },
8399
+ {
8400
+ "family": "Petrona",
8401
+ "variants": [
8402
+ "regular"
8403
+ ],
8404
+ "subsets": [
8405
+ "latin"
8406
+ ]
8407
+ },
8408
+ {
8409
+ "family": "Philosopher",
8410
+ "variants": [
8411
+ "regular",
8412
+ "italic",
8413
+ "700",
8414
+ "700italic"
8415
+ ],
8416
+ "subsets": [
8417
+ "cyrillic",
8418
+ "vietnamese",
8419
+ "cyrillic-ext",
8420
+ "latin"
8421
+ ]
8422
+ },
8423
+ {
8424
+ "family": "Piedra",
8425
+ "variants": [
8426
+ "regular"
8427
+ ],
8428
+ "subsets": [
8429
+ "latin",
8430
+ "latin-ext"
8431
+ ]
8432
+ },
8433
+ {
8434
+ "family": "Pinyon Script",
8435
+ "variants": [
8436
+ "regular"
8437
+ ],
8438
+ "subsets": [
8439
+ "latin"
8440
+ ]
8441
+ },
8442
+ {
8443
+ "family": "Pirata One",
8444
+ "variants": [
8445
+ "regular"
8446
+ ],
8447
+ "subsets": [
8448
+ "latin",
8449
+ "latin-ext"
8450
+ ]
8451
+ },
8452
+ {
8453
+ "family": "Plaster",
8454
+ "variants": [
8455
+ "regular"
8456
+ ],
8457
+ "subsets": [
8458
+ "latin",
8459
+ "latin-ext"
8460
+ ]
8461
+ },
8462
+ {
8463
+ "family": "Play",
8464
+ "variants": [
8465
+ "regular",
8466
+ "700"
8467
+ ],
8468
+ "subsets": [
8469
+ "cyrillic",
8470
+ "vietnamese",
8471
+ "cyrillic-ext",
8472
+ "greek",
8473
+ "latin",
8474
+ "latin-ext"
8475
+ ]
8476
+ },
8477
+ {
8478
+ "family": "Playball",
8479
+ "variants": [
8480
+ "regular"
8481
+ ],
8482
+ "subsets": [
8483
+ "latin",
8484
+ "latin-ext"
8485
+ ]
8486
+ },
8487
+ {
8488
+ "family": "Playfair Display",
8489
+ "variants": [
8490
+ "regular",
8491
+ "italic",
8492
+ "700",
8493
+ "700italic",
8494
+ "900",
8495
+ "900italic"
8496
+ ],
8497
+ "subsets": [
8498
+ "cyrillic",
8499
+ "vietnamese",
8500
+ "latin",
8501
+ "latin-ext"
8502
+ ]
8503
+ },
8504
+ {
8505
+ "family": "Playfair Display SC",
8506
+ "variants": [
8507
+ "regular",
8508
+ "italic",
8509
+ "700",
8510
+ "700italic",
8511
+ "900",
8512
+ "900italic"
8513
+ ],
8514
+ "subsets": [
8515
+ "cyrillic",
8516
+ "vietnamese",
8517
+ "latin",
8518
+ "latin-ext"
8519
+ ]
8520
+ },
8521
+ {
8522
+ "family": "Podkova",
8523
+ "variants": [
8524
+ "regular",
8525
+ "500",
8526
+ "600",
8527
+ "700",
8528
+ "800"
8529
+ ],
8530
+ "subsets": [
8531
+ "cyrillic",
8532
+ "vietnamese",
8533
+ "cyrillic-ext",
8534
+ "latin",
8535
+ "latin-ext"
8536
+ ]
8537
+ },
8538
+ {
8539
+ "family": "Poiret One",
8540
+ "variants": [
8541
+ "regular"
8542
+ ],
8543
+ "subsets": [
8544
+ "cyrillic",
8545
+ "latin",
8546
+ "latin-ext"
8547
+ ]
8548
+ },
8549
+ {
8550
+ "family": "Poller One",
8551
+ "variants": [
8552
+ "regular"
8553
+ ],
8554
+ "subsets": [
8555
+ "latin"
8556
+ ]
8557
+ },
8558
+ {
8559
+ "family": "Poly",
8560
+ "variants": [
8561
+ "regular",
8562
+ "italic"
8563
+ ],
8564
+ "subsets": [
8565
+ "latin"
8566
+ ]
8567
+ },
8568
+ {
8569
+ "family": "Pompiere",
8570
+ "variants": [
8571
+ "regular"
8572
+ ],
8573
+ "subsets": [
8574
+ "latin"
8575
+ ]
8576
+ },
8577
+ {
8578
+ "family": "Pontano Sans",
8579
+ "variants": [
8580
+ "regular"
8581
+ ],
8582
+ "subsets": [
8583
+ "latin",
8584
+ "latin-ext"
8585
+ ]
8586
+ },
8587
+ {
8588
+ "family": "Poor Story",
8589
+ "variants": [
8590
+ "regular"
8591
+ ],
8592
+ "subsets": [
8593
+ "latin",
8594
+ "korean"
8595
+ ]
8596
+ },
8597
+ {
8598
+ "family": "Poppins",
8599
+ "variants": [
8600
+ "100",
8601
+ "100italic",
8602
+ "200",
8603
+ "200italic",
8604
+ "300",
8605
+ "300italic",
8606
+ "regular",
8607
+ "italic",
8608
+ "500",
8609
+ "500italic",
8610
+ "600",
8611
+ "600italic",
8612
+ "700",
8613
+ "700italic",
8614
+ "800",
8615
+ "800italic",
8616
+ "900",
8617
+ "900italic"
8618
+ ],
8619
+ "subsets": [
8620
+ "devanagari",
8621
+ "latin",
8622
+ "latin-ext"
8623
+ ]
8624
+ },
8625
+ {
8626
+ "family": "Port Lligat Sans",
8627
+ "variants": [
8628
+ "regular"
8629
+ ],
8630
+ "subsets": [
8631
+ "latin"
8632
+ ]
8633
+ },
8634
+ {
8635
+ "family": "Port Lligat Slab",
8636
+ "variants": [
8637
+ "regular"
8638
+ ],
8639
+ "subsets": [
8640
+ "latin"
8641
+ ]
8642
+ },
8643
+ {
8644
+ "family": "Pragati Narrow",
8645
+ "variants": [
8646
+ "regular",
8647
+ "700"
8648
+ ],
8649
+ "subsets": [
8650
+ "devanagari",
8651
+ "latin",
8652
+ "latin-ext"
8653
+ ]
8654
+ },
8655
+ {
8656
+ "family": "Prata",
8657
+ "variants": [
8658
+ "regular"
8659
+ ],
8660
+ "subsets": [
8661
+ "cyrillic",
8662
+ "vietnamese",
8663
+ "cyrillic-ext",
8664
+ "latin"
8665
+ ]
8666
+ },
8667
+ {
8668
+ "family": "Preahvihear",
8669
+ "variants": [
8670
+ "regular"
8671
+ ],
8672
+ "subsets": [
8673
+ "khmer"
8674
+ ]
8675
+ },
8676
+ {
8677
+ "family": "Press Start 2P",
8678
+ "variants": [
8679
+ "regular"
8680
+ ],
8681
+ "subsets": [
8682
+ "cyrillic",
8683
+ "cyrillic-ext",
8684
+ "greek",
8685
+ "latin",
8686
+ "latin-ext"
8687
+ ]
8688
+ },
8689
+ {
8690
+ "family": "Pridi",
8691
+ "variants": [
8692
+ "200",
8693
+ "300",
8694
+ "regular",
8695
+ "500",
8696
+ "600",
8697
+ "700"
8698
+ ],
8699
+ "subsets": [
8700
+ "vietnamese",
8701
+ "latin",
8702
+ "thai",
8703
+ "latin-ext"
8704
+ ]
8705
+ },
8706
+ {
8707
+ "family": "Princess Sofia",
8708
+ "variants": [
8709
+ "regular"
8710
+ ],
8711
+ "subsets": [
8712
+ "latin",
8713
+ "latin-ext"
8714
+ ]
8715
+ },
8716
+ {
8717
+ "family": "Prociono",
8718
+ "variants": [
8719
+ "regular"
8720
+ ],
8721
+ "subsets": [
8722
+ "latin"
8723
+ ]
8724
+ },
8725
+ {
8726
+ "family": "Prompt",
8727
+ "variants": [
8728
+ "100",
8729
+ "100italic",
8730
+ "200",
8731
+ "200italic",
8732
+ "300",
8733
+ "300italic",
8734
+ "regular",
8735
+ "italic",
8736
+ "500",
8737
+ "500italic",
8738
+ "600",
8739
+ "600italic",
8740
+ "700",
8741
+ "700italic",
8742
+ "800",
8743
+ "800italic",
8744
+ "900",
8745
+ "900italic"
8746
+ ],
8747
+ "subsets": [
8748
+ "vietnamese",
8749
+ "latin",
8750
+ "thai",
8751
+ "latin-ext"
8752
+ ]
8753
+ },
8754
+ {
8755
+ "family": "Prosto One",
8756
+ "variants": [
8757
+ "regular"
8758
+ ],
8759
+ "subsets": [
8760
+ "cyrillic",
8761
+ "latin",
8762
+ "latin-ext"
8763
+ ]
8764
+ },
8765
+ {
8766
+ "family": "Proza Libre",
8767
+ "variants": [
8768
+ "regular",
8769
+ "italic",
8770
+ "500",
8771
+ "500italic",
8772
+ "600",
8773
+ "600italic",
8774
+ "700",
8775
+ "700italic",
8776
+ "800",
8777
+ "800italic"
8778
+ ],
8779
+ "subsets": [
8780
+ "latin",
8781
+ "latin-ext"
8782
+ ]
8783
+ },
8784
+ {
8785
+ "family": "Puritan",
8786
+ "variants": [
8787
+ "regular",
8788
+ "italic",
8789
+ "700",
8790
+ "700italic"
8791
+ ],
8792
+ "subsets": [
8793
+ "latin"
8794
+ ]
8795
+ },
8796
+ {
8797
+ "family": "Purple Purse",
8798
+ "variants": [
8799
+ "regular"
8800
+ ],
8801
+ "subsets": [
8802
+ "latin",
8803
+ "latin-ext"
8804
+ ]
8805
+ },
8806
+ {
8807
+ "family": "Quando",
8808
+ "variants": [
8809
+ "regular"
8810
+ ],
8811
+ "subsets": [
8812
+ "latin",
8813
+ "latin-ext"
8814
+ ]
8815
+ },
8816
+ {
8817
+ "family": "Quantico",
8818
+ "variants": [
8819
+ "regular",
8820
+ "italic",
8821
+ "700",
8822
+ "700italic"
8823
+ ],
8824
+ "subsets": [
8825
+ "latin"
8826
+ ]
8827
+ },
8828
+ {
8829
+ "family": "Quattrocento",
8830
+ "variants": [
8831
+ "regular",
8832
+ "700"
8833
+ ],
8834
+ "subsets": [
8835
+ "latin",
8836
+ "latin-ext"
8837
+ ]
8838
+ },
8839
+ {
8840
+ "family": "Quattrocento Sans",
8841
+ "variants": [
8842
+ "regular",
8843
+ "italic",
8844
+ "700",
8845
+ "700italic"
8846
+ ],
8847
+ "subsets": [
8848
+ "latin",
8849
+ "latin-ext"
8850
+ ]
8851
+ },
8852
+ {
8853
+ "family": "Questrial",
8854
+ "variants": [
8855
+ "regular"
8856
+ ],
8857
+ "subsets": [
8858
+ "latin"
8859
+ ]
8860
+ },
8861
+ {
8862
+ "family": "Quicksand",
8863
+ "variants": [
8864
+ "300",
8865
+ "regular",
8866
+ "500",
8867
+ "600",
8868
+ "700"
8869
+ ],
8870
+ "subsets": [
8871
+ "vietnamese",
8872
+ "latin",
8873
+ "latin-ext"
8874
+ ]
8875
+ },
8876
+ {
8877
+ "family": "Quintessential",
8878
+ "variants": [
8879
+ "regular"
8880
+ ],
8881
+ "subsets": [
8882
+ "latin",
8883
+ "latin-ext"
8884
+ ]
8885
+ },
8886
+ {
8887
+ "family": "Qwigley",
8888
+ "variants": [
8889
+ "regular"
8890
+ ],
8891
+ "subsets": [
8892
+ "latin",
8893
+ "latin-ext"
8894
+ ]
8895
+ },
8896
+ {
8897
+ "family": "Racing Sans One",
8898
+ "variants": [
8899
+ "regular"
8900
+ ],
8901
+ "subsets": [
8902
+ "latin",
8903
+ "latin-ext"
8904
+ ]
8905
+ },
8906
+ {
8907
+ "family": "Radley",
8908
+ "variants": [
8909
+ "regular",
8910
+ "italic"
8911
+ ],
8912
+ "subsets": [
8913
+ "latin",
8914
+ "latin-ext"
8915
+ ]
8916
+ },
8917
+ {
8918
+ "family": "Rajdhani",
8919
+ "variants": [
8920
+ "300",
8921
+ "regular",
8922
+ "500",
8923
+ "600",
8924
+ "700"
8925
+ ],
8926
+ "subsets": [
8927
+ "devanagari",
8928
+ "latin",
8929
+ "latin-ext"
8930
+ ]
8931
+ },
8932
+ {
8933
+ "family": "Rakkas",
8934
+ "variants": [
8935
+ "regular"
8936
+ ],
8937
+ "subsets": [
8938
+ "arabic",
8939
+ "latin",
8940
+ "latin-ext"
8941
+ ]
8942
+ },
8943
+ {
8944
+ "family": "Raleway",
8945
+ "variants": [
8946
+ "100",
8947
+ "100italic",
8948
+ "200",
8949
+ "200italic",
8950
+ "300",
8951
+ "300italic",
8952
+ "regular",
8953
+ "italic",
8954
+ "500",
8955
+ "500italic",
8956
+ "600",
8957
+ "600italic",
8958
+ "700",
8959
+ "700italic",
8960
+ "800",
8961
+ "800italic",
8962
+ "900",
8963
+ "900italic"
8964
+ ],
8965
+ "subsets": [
8966
+ "latin",
8967
+ "latin-ext"
8968
+ ]
8969
+ },
8970
+ {
8971
+ "family": "Raleway Dots",
8972
+ "variants": [
8973
+ "regular"
8974
+ ],
8975
+ "subsets": [
8976
+ "latin",
8977
+ "latin-ext"
8978
+ ]
8979
+ },
8980
+ {
8981
+ "family": "Ramabhadra",
8982
+ "variants": [
8983
+ "regular"
8984
+ ],
8985
+ "subsets": [
8986
+ "telugu",
8987
+ "latin"
8988
+ ]
8989
+ },
8990
+ {
8991
+ "family": "Ramaraja",
8992
+ "variants": [
8993
+ "regular"
8994
+ ],
8995
+ "subsets": [
8996
+ "telugu",
8997
+ "latin"
8998
+ ]
8999
+ },
9000
+ {
9001
+ "family": "Rambla",
9002
+ "variants": [
9003
+ "regular",
9004
+ "italic",
9005
+ "700",
9006
+ "700italic"
9007
+ ],
9008
+ "subsets": [
9009
+ "latin",
9010
+ "latin-ext"
9011
+ ]
9012
+ },
9013
+ {
9014
+ "family": "Rammetto One",
9015
+ "variants": [
9016
+ "regular"
9017
+ ],
9018
+ "subsets": [
9019
+ "latin",
9020
+ "latin-ext"
9021
+ ]
9022
+ },
9023
+ {
9024
+ "family": "Ranchers",
9025
+ "variants": [
9026
+ "regular"
9027
+ ],
9028
+ "subsets": [
9029
+ "latin",
9030
+ "latin-ext"
9031
+ ]
9032
+ },
9033
+ {
9034
+ "family": "Rancho",
9035
+ "variants": [
9036
+ "regular"
9037
+ ],
9038
+ "subsets": [
9039
+ "latin"
9040
+ ]
9041
+ },
9042
+ {
9043
+ "family": "Ranga",
9044
+ "variants": [
9045
+ "regular",
9046
+ "700"
9047
+ ],
9048
+ "subsets": [
9049
+ "devanagari",
9050
+ "latin",
9051
+ "latin-ext"
9052
+ ]
9053
+ },
9054
+ {
9055
+ "family": "Rasa",
9056
+ "variants": [
9057
+ "300",
9058
+ "regular",
9059
+ "500",
9060
+ "600",
9061
+ "700"
9062
+ ],
9063
+ "subsets": [
9064
+ "gujarati",
9065
+ "latin",
9066
+ "latin-ext"
9067
+ ]
9068
+ },
9069
+ {
9070
+ "family": "Rationale",
9071
+ "variants": [
9072
+ "regular"
9073
+ ],
9074
+ "subsets": [
9075
+ "latin"
9076
+ ]
9077
+ },
9078
+ {
9079
+ "family": "Ravi Prakash",
9080
+ "variants": [
9081
+ "regular"
9082
+ ],
9083
+ "subsets": [
9084
+ "telugu",
9085
+ "latin"
9086
+ ]
9087
+ },
9088
+ {
9089
+ "family": "Red Hat Display",
9090
+ "variants": [
9091
+ "regular",
9092
+ "italic",
9093
+ "500",
9094
+ "500italic",
9095
+ "700",
9096
+ "700italic",
9097
+ "900",
9098
+ "900italic"
9099
+ ],
9100
+ "subsets": [
9101
+ "latin",
9102
+ "latin-ext"
9103
+ ]
9104
+ },
9105
+ {
9106
+ "family": "Red Hat Text",
9107
+ "variants": [
9108
+ "regular",
9109
+ "italic",
9110
+ "500",
9111
+ "500italic",
9112
+ "700",
9113
+ "700italic"
9114
+ ],
9115
+ "subsets": [
9116
+ "latin",
9117
+ "latin-ext"
9118
+ ]
9119
+ },
9120
+ {
9121
+ "family": "Redressed",
9122
+ "variants": [
9123
+ "regular"
9124
+ ],
9125
+ "subsets": [
9126
+ "latin"
9127
+ ]
9128
+ },
9129
+ {
9130
+ "family": "Reem Kufi",
9131
+ "variants": [
9132
+ "regular"
9133
+ ],
9134
+ "subsets": [
9135
+ "arabic",
9136
+ "latin"
9137
+ ]
9138
+ },
9139
+ {
9140
+ "family": "Reenie Beanie",
9141
+ "variants": [
9142
+ "regular"
9143
+ ],
9144
+ "subsets": [
9145
+ "latin"
9146
+ ]
9147
+ },
9148
+ {
9149
+ "family": "Revalia",
9150
+ "variants": [
9151
+ "regular"
9152
+ ],
9153
+ "subsets": [
9154
+ "latin",
9155
+ "latin-ext"
9156
+ ]
9157
+ },
9158
+ {
9159
+ "family": "Rhodium Libre",
9160
+ "variants": [
9161
+ "regular"
9162
+ ],
9163
+ "subsets": [
9164
+ "devanagari",
9165
+ "latin",
9166
+ "latin-ext"
9167
+ ]
9168
+ },
9169
+ {
9170
+ "family": "Ribeye",
9171
+ "variants": [
9172
+ "regular"
9173
+ ],
9174
+ "subsets": [
9175
+ "latin",
9176
+ "latin-ext"
9177
+ ]
9178
+ },
9179
+ {
9180
+ "family": "Ribeye Marrow",
9181
+ "variants": [
9182
+ "regular"
9183
+ ],
9184
+ "subsets": [
9185
+ "latin",
9186
+ "latin-ext"
9187
+ ]
9188
+ },
9189
+ {
9190
+ "family": "Righteous",
9191
+ "variants": [
9192
+ "regular"
9193
+ ],
9194
+ "subsets": [
9195
+ "latin",
9196
+ "latin-ext"
9197
+ ]
9198
+ },
9199
+ {
9200
+ "family": "Risque",
9201
+ "variants": [
9202
+ "regular"
9203
+ ],
9204
+ "subsets": [
9205
+ "latin",
9206
+ "latin-ext"
9207
+ ]
9208
+ },
9209
+ {
9210
+ "family": "Roboto",
9211
+ "variants": [
9212
+ "100",
9213
+ "100italic",
9214
+ "300",
9215
+ "300italic",
9216
+ "regular",
9217
+ "italic",
9218
+ "500",
9219
+ "500italic",
9220
+ "700",
9221
+ "700italic",
9222
+ "900",
9223
+ "900italic"
9224
+ ],
9225
+ "subsets": [
9226
+ "cyrillic",
9227
+ "vietnamese",
9228
+ "cyrillic-ext",
9229
+ "greek-ext",
9230
+ "greek",
9231
+ "latin",
9232
+ "latin-ext"
9233
+ ]
9234
+ },
9235
+ {
9236
+ "family": "Roboto Condensed",
9237
+ "variants": [
9238
+ "300",
9239
+ "300italic",
9240
+ "regular",
9241
+ "italic",
9242
+ "700",
9243
+ "700italic"
9244
+ ],
9245
+ "subsets": [
9246
+ "cyrillic",
9247
+ "vietnamese",
9248
+ "cyrillic-ext",
9249
+ "greek-ext",
9250
+ "greek",
9251
+ "latin",
9252
+ "latin-ext"
9253
+ ]
9254
+ },
9255
+ {
9256
+ "family": "Roboto Mono",
9257
+ "variants": [
9258
+ "100",
9259
+ "100italic",
9260
+ "300",
9261
+ "300italic",
9262
+ "regular",
9263
+ "italic",
9264
+ "500",
9265
+ "500italic",
9266
+ "700",
9267
+ "700italic"
9268
+ ],
9269
+ "subsets": [
9270
+ "cyrillic",
9271
+ "vietnamese",
9272
+ "cyrillic-ext",
9273
+ "greek-ext",
9274
+ "greek",
9275
+ "latin",
9276
+ "latin-ext"
9277
+ ]
9278
+ },
9279
+ {
9280
+ "family": "Roboto Slab",
9281
+ "variants": [
9282
+ "100",
9283
+ "300",
9284
+ "regular",
9285
+ "700"
9286
+ ],
9287
+ "subsets": [
9288
+ "cyrillic",
9289
+ "vietnamese",
9290
+ "cyrillic-ext",
9291
+ "greek-ext",
9292
+ "greek",
9293
+ "latin",
9294
+ "latin-ext"
9295
+ ]
9296
+ },
9297
+ {
9298
+ "family": "Rochester",
9299
+ "variants": [
9300
+ "regular"
9301
+ ],
9302
+ "subsets": [
9303
+ "latin"
9304
+ ]
9305
+ },
9306
+ {
9307
+ "family": "Rock Salt",
9308
+ "variants": [
9309
+ "regular"
9310
+ ],
9311
+ "subsets": [
9312
+ "latin"
9313
+ ]
9314
+ },
9315
+ {
9316
+ "family": "Rokkitt",
9317
+ "variants": [
9318
+ "100",
9319
+ "200",
9320
+ "300",
9321
+ "regular",
9322
+ "500",
9323
+ "600",
9324
+ "700",
9325
+ "800",
9326
+ "900"
9327
+ ],
9328
+ "subsets": [
9329
+ "vietnamese",
9330
+ "latin",
9331
+ "latin-ext"
9332
+ ]
9333
+ },
9334
+ {
9335
+ "family": "Romanesco",
9336
+ "variants": [
9337
+ "regular"
9338
+ ],
9339
+ "subsets": [
9340
+ "latin",
9341
+ "latin-ext"
9342
+ ]
9343
+ },
9344
+ {
9345
+ "family": "Ropa Sans",
9346
+ "variants": [
9347
+ "regular",
9348
+ "italic"
9349
+ ],
9350
+ "subsets": [
9351
+ "latin",
9352
+ "latin-ext"
9353
+ ]
9354
+ },
9355
+ {
9356
+ "family": "Rosario",
9357
+ "variants": [
9358
+ "regular",
9359
+ "italic",
9360
+ "700",
9361
+ "700italic"
9362
+ ],
9363
+ "subsets": [
9364
+ "latin"
9365
+ ]
9366
+ },
9367
+ {
9368
+ "family": "Rosarivo",
9369
+ "variants": [
9370
+ "regular",
9371
+ "italic"
9372
+ ],
9373
+ "subsets": [
9374
+ "latin",
9375
+ "latin-ext"
9376
+ ]
9377
+ },
9378
+ {
9379
+ "family": "Rouge Script",
9380
+ "variants": [
9381
+ "regular"
9382
+ ],
9383
+ "subsets": [
9384
+ "latin"
9385
+ ]
9386
+ },
9387
+ {
9388
+ "family": "Rozha One",
9389
+ "variants": [
9390
+ "regular"
9391
+ ],
9392
+ "subsets": [
9393
+ "devanagari",
9394
+ "latin",
9395
+ "latin-ext"
9396
+ ]
9397
+ },
9398
+ {
9399
+ "family": "Rubik",
9400
+ "variants": [
9401
+ "300",
9402
+ "300italic",
9403
+ "regular",
9404
+ "italic",
9405
+ "500",
9406
+ "500italic",
9407
+ "700",
9408
+ "700italic",
9409
+ "900",
9410
+ "900italic"
9411
+ ],
9412
+ "subsets": [
9413
+ "hebrew",
9414
+ "cyrillic",
9415
+ "latin",
9416
+ "latin-ext"
9417
+ ]
9418
+ },
9419
+ {
9420
+ "family": "Rubik Mono One",
9421
+ "variants": [
9422
+ "regular"
9423
+ ],
9424
+ "subsets": [
9425
+ "cyrillic",
9426
+ "latin",
9427
+ "latin-ext"
9428
+ ]
9429
+ },
9430
+ {
9431
+ "family": "Ruda",
9432
+ "variants": [
9433
+ "regular",
9434
+ "700",
9435
+ "900"
9436
+ ],
9437
+ "subsets": [
9438
+ "latin",
9439
+ "latin-ext"
9440
+ ]
9441
+ },
9442
+ {
9443
+ "family": "Rufina",
9444
+ "variants": [
9445
+ "regular",
9446
+ "700"
9447
+ ],
9448
+ "subsets": [
9449
+ "latin",
9450
+ "latin-ext"
9451
+ ]
9452
+ },
9453
+ {
9454
+ "family": "Ruge Boogie",
9455
+ "variants": [
9456
+ "regular"
9457
+ ],
9458
+ "subsets": [
9459
+ "latin",
9460
+ "latin-ext"
9461
+ ]
9462
+ },
9463
+ {
9464
+ "family": "Ruluko",
9465
+ "variants": [
9466
+ "regular"
9467
+ ],
9468
+ "subsets": [
9469
+ "latin",
9470
+ "latin-ext"
9471
+ ]
9472
+ },
9473
+ {
9474
+ "family": "Rum Raisin",
9475
+ "variants": [
9476
+ "regular"
9477
+ ],
9478
+ "subsets": [
9479
+ "latin",
9480
+ "latin-ext"
9481
+ ]
9482
+ },
9483
+ {
9484
+ "family": "Ruslan Display",
9485
+ "variants": [
9486
+ "regular"
9487
+ ],
9488
+ "subsets": [
9489
+ "cyrillic",
9490
+ "latin",
9491
+ "latin-ext"
9492
+ ]
9493
+ },
9494
+ {
9495
+ "family": "Russo One",
9496
+ "variants": [
9497
+ "regular"
9498
+ ],
9499
+ "subsets": [
9500
+ "cyrillic",
9501
+ "latin",
9502
+ "latin-ext"
9503
+ ]
9504
+ },
9505
+ {
9506
+ "family": "Ruthie",
9507
+ "variants": [
9508
+ "regular"
9509
+ ],
9510
+ "subsets": [
9511
+ "latin",
9512
+ "latin-ext"
9513
+ ]
9514
+ },
9515
+ {
9516
+ "family": "Rye",
9517
+ "variants": [
9518
+ "regular"
9519
+ ],
9520
+ "subsets": [
9521
+ "latin",
9522
+ "latin-ext"
9523
+ ]
9524
+ },
9525
+ {
9526
+ "family": "Sacramento",
9527
+ "variants": [
9528
+ "regular"
9529
+ ],
9530
+ "subsets": [
9531
+ "latin",
9532
+ "latin-ext"
9533
+ ]
9534
+ },
9535
+ {
9536
+ "family": "Sahitya",
9537
+ "variants": [
9538
+ "regular",
9539
+ "700"
9540
+ ],
9541
+ "subsets": [
9542
+ "devanagari",
9543
+ "latin"
9544
+ ]
9545
+ },
9546
+ {
9547
+ "family": "Sail",
9548
+ "variants": [
9549
+ "regular"
9550
+ ],
9551
+ "subsets": [
9552
+ "latin",
9553
+ "latin-ext"
9554
+ ]
9555
+ },
9556
+ {
9557
+ "family": "Saira",
9558
+ "variants": [
9559
+ "100",
9560
+ "200",
9561
+ "300",
9562
+ "regular",
9563
+ "500",
9564
+ "600",
9565
+ "700",
9566
+ "800",
9567
+ "900"
9568
+ ],
9569
+ "subsets": [
9570
+ "vietnamese",
9571
+ "latin",
9572
+ "latin-ext"
9573
+ ]
9574
+ },
9575
+ {
9576
+ "family": "Saira Condensed",
9577
+ "variants": [
9578
+ "100",
9579
+ "200",
9580
+ "300",
9581
+ "regular",
9582
+ "500",
9583
+ "600",
9584
+ "700",
9585
+ "800",
9586
+ "900"
9587
+ ],
9588
+ "subsets": [
9589
+ "vietnamese",
9590
+ "latin",
9591
+ "latin-ext"
9592
+ ]
9593
+ },
9594
+ {
9595
+ "family": "Saira Extra Condensed",
9596
+ "variants": [
9597
+ "100",
9598
+ "200",
9599
+ "300",
9600
+ "regular",
9601
+ "500",
9602
+ "600",
9603
+ "700",
9604
+ "800",
9605
+ "900"
9606
+ ],
9607
+ "subsets": [
9608
+ "vietnamese",
9609
+ "latin",
9610
+ "latin-ext"
9611
+ ]
9612
+ },
9613
+ {
9614
+ "family": "Saira Semi Condensed",
9615
+ "variants": [
9616
+ "100",
9617
+ "200",
9618
+ "300",
9619
+ "regular",
9620
+ "500",
9621
+ "600",
9622
+ "700",
9623
+ "800",
9624
+ "900"
9625
+ ],
9626
+ "subsets": [
9627
+ "vietnamese",
9628
+ "latin",
9629
+ "latin-ext"
9630
+ ]
9631
+ },
9632
+ {
9633
+ "family": "Saira Stencil One",
9634
+ "variants": [
9635
+ "regular"
9636
+ ],
9637
+ "subsets": [
9638
+ "vietnamese",
9639
+ "latin",
9640
+ "latin-ext"
9641
+ ]
9642
+ },
9643
+ {
9644
+ "family": "Salsa",
9645
+ "variants": [
9646
+ "regular"
9647
+ ],
9648
+ "subsets": [
9649
+ "latin"
9650
+ ]
9651
+ },
9652
+ {
9653
+ "family": "Sanchez",
9654
+ "variants": [
9655
+ "regular",
9656
+ "italic"
9657
+ ],
9658
+ "subsets": [
9659
+ "latin",
9660
+ "latin-ext"
9661
+ ]
9662
+ },
9663
+ {
9664
+ "family": "Sancreek",
9665
+ "variants": [
9666
+ "regular"
9667
+ ],
9668
+ "subsets": [
9669
+ "latin",
9670
+ "latin-ext"
9671
+ ]
9672
+ },
9673
+ {
9674
+ "family": "Sansita",
9675
+ "variants": [
9676
+ "regular",
9677
+ "italic",
9678
+ "700",
9679
+ "700italic",
9680
+ "800",
9681
+ "800italic",
9682
+ "900",
9683
+ "900italic"
9684
+ ],
9685
+ "subsets": [
9686
+ "latin",
9687
+ "latin-ext"
9688
+ ]
9689
+ },
9690
+ {
9691
+ "family": "Sarabun",
9692
+ "variants": [
9693
+ "100",
9694
+ "100italic",
9695
+ "200",
9696
+ "200italic",
9697
+ "300",
9698
+ "300italic",
9699
+ "regular",
9700
+ "italic",
9701
+ "500",
9702
+ "500italic",
9703
+ "600",
9704
+ "600italic",
9705
+ "700",
9706
+ "700italic",
9707
+ "800",
9708
+ "800italic"
9709
+ ],
9710
+ "subsets": [
9711
+ "vietnamese",
9712
+ "latin",
9713
+ "thai",
9714
+ "latin-ext"
9715
+ ]
9716
+ },
9717
+ {
9718
+ "family": "Sarala",
9719
+ "variants": [
9720
+ "regular",
9721
+ "700"
9722
+ ],
9723
+ "subsets": [
9724
+ "devanagari",
9725
+ "latin",
9726
+ "latin-ext"
9727
+ ]
9728
+ },
9729
+ {
9730
+ "family": "Sarina",
9731
+ "variants": [
9732
+ "regular"
9733
+ ],
9734
+ "subsets": [
9735
+ "latin",
9736
+ "latin-ext"
9737
+ ]
9738
+ },
9739
+ {
9740
+ "family": "Sarpanch",
9741
+ "variants": [
9742
+ "regular",
9743
+ "500",
9744
+ "600",
9745
+ "700",
9746
+ "800",
9747
+ "900"
9748
+ ],
9749
+ "subsets": [
9750
+ "devanagari",
9751
+ "latin",
9752
+ "latin-ext"
9753
+ ]
9754
+ },
9755
+ {
9756
+ "family": "Satisfy",
9757
+ "variants": [
9758
+ "regular"
9759
+ ],
9760
+ "subsets": [
9761
+ "latin"
9762
+ ]
9763
+ },
9764
+ {
9765
+ "family": "Sawarabi Gothic",
9766
+ "variants": [
9767
+ "regular"
9768
+ ],
9769
+ "subsets": [
9770
+ "cyrillic",
9771
+ "japanese",
9772
+ "vietnamese",
9773
+ "latin",
9774
+ "latin-ext"
9775
+ ]
9776
+ },
9777
+ {
9778
+ "family": "Sawarabi Mincho",
9779
+ "variants": [
9780
+ "regular"
9781
+ ],
9782
+ "subsets": [
9783
+ "japanese",
9784
+ "latin",
9785
+ "latin-ext"
9786
+ ]
9787
+ },
9788
+ {
9789
+ "family": "Scada",
9790
+ "variants": [
9791
+ "regular",
9792
+ "italic",
9793
+ "700",
9794
+ "700italic"
9795
+ ],
9796
+ "subsets": [
9797
+ "cyrillic",
9798
+ "cyrillic-ext",
9799
+ "latin",
9800
+ "latin-ext"
9801
+ ]
9802
+ },
9803
+ {
9804
+ "family": "Scheherazade",
9805
+ "variants": [
9806
+ "regular",
9807
+ "700"
9808
+ ],
9809
+ "subsets": [
9810
+ "arabic",
9811
+ "latin"
9812
+ ]
9813
+ },
9814
+ {
9815
+ "family": "Schoolbell",
9816
+ "variants": [
9817
+ "regular"
9818
+ ],
9819
+ "subsets": [
9820
+ "latin"
9821
+ ]
9822
+ },
9823
+ {
9824
+ "family": "Scope One",
9825
+ "variants": [
9826
+ "regular"
9827
+ ],
9828
+ "subsets": [
9829
+ "latin",
9830
+ "latin-ext"
9831
+ ]
9832
+ },
9833
+ {
9834
+ "family": "Seaweed Script",
9835
+ "variants": [
9836
+ "regular"
9837
+ ],
9838
+ "subsets": [
9839
+ "latin",
9840
+ "latin-ext"
9841
+ ]
9842
+ },
9843
+ {
9844
+ "family": "Secular One",
9845
+ "variants": [
9846
+ "regular"
9847
+ ],
9848
+ "subsets": [
9849
+ "hebrew",
9850
+ "latin",
9851
+ "latin-ext"
9852
+ ]
9853
+ },
9854
+ {
9855
+ "family": "Sedgwick Ave",
9856
+ "variants": [
9857
+ "regular"
9858
+ ],
9859
+ "subsets": [
9860
+ "vietnamese",
9861
+ "latin",
9862
+ "latin-ext"
9863
+ ]
9864
+ },
9865
+ {
9866
+ "family": "Sedgwick Ave Display",
9867
+ "variants": [
9868
+ "regular"
9869
+ ],
9870
+ "subsets": [
9871
+ "vietnamese",
9872
+ "latin",
9873
+ "latin-ext"
9874
+ ]
9875
+ },
9876
+ {
9877
+ "family": "Sevillana",
9878
+ "variants": [
9879
+ "regular"
9880
+ ],
9881
+ "subsets": [
9882
+ "latin",
9883
+ "latin-ext"
9884
+ ]
9885
+ },
9886
+ {
9887
+ "family": "Seymour One",
9888
+ "variants": [
9889
+ "regular"
9890
+ ],
9891
+ "subsets": [
9892
+ "cyrillic",
9893
+ "latin",
9894
+ "latin-ext"
9895
+ ]
9896
+ },
9897
+ {
9898
+ "family": "Shadows Into Light",
9899
+ "variants": [
9900
+ "regular"
9901
+ ],
9902
+ "subsets": [
9903
+ "latin"
9904
+ ]
9905
+ },
9906
+ {
9907
+ "family": "Shadows Into Light Two",
9908
+ "variants": [
9909
+ "regular"
9910
+ ],
9911
+ "subsets": [
9912
+ "latin",
9913
+ "latin-ext"
9914
+ ]
9915
+ },
9916
+ {
9917
+ "family": "Shanti",
9918
+ "variants": [
9919
+ "regular"
9920
+ ],
9921
+ "subsets": [
9922
+ "latin"
9923
+ ]
9924
+ },
9925
+ {
9926
+ "family": "Share",
9927
+ "variants": [
9928
+ "regular",
9929
+ "italic",
9930
+ "700",
9931
+ "700italic"
9932
+ ],
9933
+ "subsets": [
9934
+ "latin",
9935
+ "latin-ext"
9936
+ ]
9937
+ },
9938
+ {
9939
+ "family": "Share Tech",
9940
+ "variants": [
9941
+ "regular"
9942
+ ],
9943
+ "subsets": [
9944
+ "latin"
9945
+ ]
9946
+ },
9947
+ {
9948
+ "family": "Share Tech Mono",
9949
+ "variants": [
9950
+ "regular"
9951
+ ],
9952
+ "subsets": [
9953
+ "latin"
9954
+ ]
9955
+ },
9956
+ {
9957
+ "family": "Shojumaru",
9958
+ "variants": [
9959
+ "regular"
9960
+ ],
9961
+ "subsets": [
9962
+ "latin",
9963
+ "latin-ext"
9964
+ ]
9965
+ },
9966
+ {
9967
+ "family": "Short Stack",
9968
+ "variants": [
9969
+ "regular"
9970
+ ],
9971
+ "subsets": [
9972
+ "latin"
9973
+ ]
9974
+ },
9975
+ {
9976
+ "family": "Shrikhand",
9977
+ "variants": [
9978
+ "regular"
9979
+ ],
9980
+ "subsets": [
9981
+ "gujarati",
9982
+ "latin",
9983
+ "latin-ext"
9984
+ ]
9985
+ },
9986
+ {
9987
+ "family": "Siemreap",
9988
+ "variants": [
9989
+ "regular"
9990
+ ],
9991
+ "subsets": [
9992
+ "khmer"
9993
+ ]
9994
+ },
9995
+ {
9996
+ "family": "Sigmar One",
9997
+ "variants": [
9998
+ "regular"
9999
+ ],
10000
+ "subsets": [
10001
+ "vietnamese",
10002
+ "latin",
10003
+ "latin-ext"
10004
+ ]
10005
+ },
10006
+ {
10007
+ "family": "Signika",
10008
+ "variants": [
10009
+ "300",
10010
+ "regular",
10011
+ "600",
10012
+ "700"
10013
+ ],
10014
+ "subsets": [
10015
+ "latin",
10016
+ "latin-ext"
10017
+ ]
10018
+ },
10019
+ {
10020
+ "family": "Signika Negative",
10021
+ "variants": [
10022
+ "300",
10023
+ "regular",
10024
+ "600",
10025
+ "700"
10026
+ ],
10027
+ "subsets": [
10028
+ "latin",
10029
+ "latin-ext"
10030
+ ]
10031
+ },
10032
+ {
10033
+ "family": "Simonetta",
10034
+ "variants": [
10035
+ "regular",
10036
+ "italic",
10037
+ "900",
10038
+ "900italic"
10039
+ ],
10040
+ "subsets": [
10041
+ "latin",
10042
+ "latin-ext"
10043
+ ]
10044
+ },
10045
+ {
10046
+ "family": "Single Day",
10047
+ "variants": [
10048
+ "regular"
10049
+ ],
10050
+ "subsets": [
10051
+ "korean"
10052
+ ]
10053
+ },
10054
+ {
10055
+ "family": "Sintony",
10056
+ "variants": [
10057
+ "regular",
10058
+ "700"
10059
+ ],
10060
+ "subsets": [
10061
+ "latin",
10062
+ "latin-ext"
10063
+ ]
10064
+ },
10065
+ {
10066
+ "family": "Sirin Stencil",
10067
+ "variants": [
10068
+ "regular"
10069
+ ],
10070
+ "subsets": [
10071
+ "latin"
10072
+ ]
10073
+ },
10074
+ {
10075
+ "family": "Six Caps",
10076
+ "variants": [
10077
+ "regular"
10078
+ ],
10079
+ "subsets": [
10080
+ "latin"
10081
+ ]
10082
+ },
10083
+ {
10084
+ "family": "Skranji",
10085
+ "variants": [
10086
+ "regular",
10087
+ "700"
10088
+ ],
10089
+ "subsets": [
10090
+ "latin",
10091
+ "latin-ext"
10092
+ ]
10093
+ },
10094
+ {
10095
+ "family": "Slabo 13px",
10096
+ "variants": [
10097
+ "regular"
10098
+ ],
10099
+ "subsets": [
10100
+ "latin",
10101
+ "latin-ext"
10102
+ ]
10103
+ },
10104
+ {
10105
+ "family": "Slabo 27px",
10106
+ "variants": [
10107
+ "regular"
10108
+ ],
10109
+ "subsets": [
10110
+ "latin",
10111
+ "latin-ext"
10112
+ ]
10113
+ },
10114
+ {
10115
+ "family": "Slackey",
10116
+ "variants": [
10117
+ "regular"
10118
+ ],
10119
+ "subsets": [
10120
+ "latin"
10121
+ ]
10122
+ },
10123
+ {
10124
+ "family": "Smokum",
10125
+ "variants": [
10126
+ "regular"
10127
+ ],
10128
+ "subsets": [
10129
+ "latin"
10130
+ ]
10131
+ },
10132
+ {
10133
+ "family": "Smythe",
10134
+ "variants": [
10135
+ "regular"
10136
+ ],
10137
+ "subsets": [
10138
+ "latin"
10139
+ ]
10140
+ },
10141
+ {
10142
+ "family": "Sniglet",
10143
+ "variants": [
10144
+ "regular",
10145
+ "800"
10146
+ ],
10147
+ "subsets": [
10148
+ "latin",
10149
+ "latin-ext"
10150
+ ]
10151
+ },
10152
+ {
10153
+ "family": "Snippet",
10154
+ "variants": [
10155
+ "regular"
10156
+ ],
10157
+ "subsets": [
10158
+ "latin"
10159
+ ]
10160
+ },
10161
+ {
10162
+ "family": "Snowburst One",
10163
+ "variants": [
10164
+ "regular"
10165
+ ],
10166
+ "subsets": [
10167
+ "latin",
10168
+ "latin-ext"
10169
+ ]
10170
+ },
10171
+ {
10172
+ "family": "Sofadi One",
10173
+ "variants": [
10174
+ "regular"
10175
+ ],
10176
+ "subsets": [
10177
+ "latin"
10178
+ ]
10179
+ },
10180
+ {
10181
+ "family": "Sofia",
10182
+ "variants": [
10183
+ "regular"
10184
+ ],
10185
+ "subsets": [
10186
+ "latin"
10187
+ ]
10188
+ },
10189
+ {
10190
+ "family": "Song Myung",
10191
+ "variants": [
10192
+ "regular"
10193
+ ],
10194
+ "subsets": [
10195
+ "latin",
10196
+ "korean"
10197
+ ]
10198
+ },
10199
+ {
10200
+ "family": "Sonsie One",
10201
+ "variants": [
10202
+ "regular"
10203
+ ],
10204
+ "subsets": [
10205
+ "latin",
10206
+ "latin-ext"
10207
+ ]
10208
+ },
10209
+ {
10210
+ "family": "Sorts Mill Goudy",
10211
+ "variants": [
10212
+ "regular",
10213
+ "italic"
10214
+ ],
10215
+ "subsets": [
10216
+ "latin",
10217
+ "latin-ext"
10218
+ ]
10219
+ },
10220
+ {
10221
+ "family": "Source Code Pro",
10222
+ "variants": [
10223
+ "200",
10224
+ "200italic",
10225
+ "300",
10226
+ "300italic",
10227
+ "regular",
10228
+ "italic",
10229
+ "500",
10230
+ "500italic",
10231
+ "600",
10232
+ "600italic",
10233
+ "700",
10234
+ "700italic",
10235
+ "900",
10236
+ "900italic"
10237
+ ],
10238
+ "subsets": [
10239
+ "cyrillic",
10240
+ "vietnamese",
10241
+ "cyrillic-ext",
10242
+ "greek",
10243
+ "latin",
10244
+ "latin-ext"
10245
+ ]
10246
+ },
10247
+ {
10248
+ "family": "Source Sans Pro",
10249
+ "variants": [
10250
+ "200",
10251
+ "200italic",
10252
+ "300",
10253
+ "300italic",
10254
+ "regular",
10255
+ "italic",
10256
+ "600",
10257
+ "600italic",
10258
+ "700",
10259
+ "700italic",
10260
+ "900",
10261
+ "900italic"
10262
+ ],
10263
+ "subsets": [
10264
+ "cyrillic",
10265
+ "vietnamese",
10266
+ "cyrillic-ext",
10267
+ "greek-ext",
10268
+ "greek",
10269
+ "latin",
10270
+ "latin-ext"
10271
+ ]
10272
+ },
10273
+ {
10274
+ "family": "Source Serif Pro",
10275
+ "variants": [
10276
+ "regular",
10277
+ "600",
10278
+ "700"
10279
+ ],
10280
+ "subsets": [
10281
+ "latin",
10282
+ "latin-ext"
10283
+ ]
10284
+ },
10285
+ {
10286
+ "family": "Space Mono",
10287
+ "variants": [
10288
+ "regular",
10289
+ "italic",
10290
+ "700",
10291
+ "700italic"
10292
+ ],
10293
+ "subsets": [
10294
+ "vietnamese",
10295
+ "latin",
10296
+ "latin-ext"
10297
+ ]
10298
+ },
10299
+ {
10300
+ "family": "Special Elite",
10301
+ "variants": [
10302
+ "regular"
10303
+ ],
10304
+ "subsets": [
10305
+ "latin"
10306
+ ]
10307
+ },
10308
+ {
10309
+ "family": "Spectral",
10310
+ "variants": [
10311
+ "200",
10312
+ "200italic",
10313
+ "300",
10314
+ "300italic",
10315
+ "regular",
10316
+ "italic",
10317
+ "500",
10318
+ "500italic",
10319
+ "600",
10320
+ "600italic",
10321
+ "700",
10322
+ "700italic",
10323
+ "800",
10324
+ "800italic"
10325
+ ],
10326
+ "subsets": [
10327
+ "cyrillic",
10328
+ "vietnamese",
10329
+ "latin",
10330
+ "latin-ext"
10331
+ ]
10332
+ },
10333
+ {
10334
+ "family": "Spectral SC",
10335
+ "variants": [
10336
+ "200",
10337
+ "200italic",
10338
+ "300",
10339
+ "300italic",
10340
+ "regular",
10341
+ "italic",
10342
+ "500",
10343
+ "500italic",
10344
+ "600",
10345
+ "600italic",
10346
+ "700",
10347
+ "700italic",
10348
+ "800",
10349
+ "800italic"
10350
+ ],
10351
+ "subsets": [
10352
+ "cyrillic",
10353
+ "vietnamese",
10354
+ "latin",
10355
+ "latin-ext"
10356
+ ]
10357
+ },
10358
+ {
10359
+ "family": "Spicy Rice",
10360
+ "variants": [
10361
+ "regular"
10362
+ ],
10363
+ "subsets": [
10364
+ "latin"
10365
+ ]
10366
+ },
10367
+ {
10368
+ "family": "Spinnaker",
10369
+ "variants": [
10370
+ "regular"
10371
+ ],
10372
+ "subsets": [
10373
+ "latin",
10374
+ "latin-ext"
10375
+ ]
10376
+ },
10377
+ {
10378
+ "family": "Spirax",
10379
+ "variants": [
10380
+ "regular"
10381
+ ],
10382
+ "subsets": [
10383
+ "latin"
10384
+ ]
10385
+ },
10386
+ {
10387
+ "family": "Squada One",
10388
+ "variants": [
10389
+ "regular"
10390
+ ],
10391
+ "subsets": [
10392
+ "latin"
10393
+ ]
10394
+ },
10395
+ {
10396
+ "family": "Sree Krushnadevaraya",
10397
+ "variants": [
10398
+ "regular"
10399
+ ],
10400
+ "subsets": [
10401
+ "telugu",
10402
+ "latin"
10403
+ ]
10404
+ },
10405
+ {
10406
+ "family": "Sriracha",
10407
+ "variants": [
10408
+ "regular"
10409
+ ],
10410
+ "subsets": [
10411
+ "vietnamese",
10412
+ "latin",
10413
+ "thai",
10414
+ "latin-ext"
10415
+ ]
10416
+ },
10417
+ {
10418
+ "family": "Srisakdi",
10419
+ "variants": [
10420
+ "regular",
10421
+ "700"
10422
+ ],
10423
+ "subsets": [
10424
+ "vietnamese",
10425
+ "latin",
10426
+ "thai",
10427
+ "latin-ext"
10428
+ ]
10429
+ },
10430
+ {
10431
+ "family": "Staatliches",
10432
+ "variants": [
10433
+ "regular"
10434
+ ],
10435
+ "subsets": [
10436
+ "latin",
10437
+ "latin-ext"
10438
+ ]
10439
+ },
10440
+ {
10441
+ "family": "Stalemate",
10442
+ "variants": [
10443
+ "regular"
10444
+ ],
10445
+ "subsets": [
10446
+ "latin",
10447
+ "latin-ext"
10448
+ ]
10449
+ },
10450
+ {
10451
+ "family": "Stalinist One",
10452
+ "variants": [
10453
+ "regular"
10454
+ ],
10455
+ "subsets": [
10456
+ "cyrillic",
10457
+ "latin",
10458
+ "latin-ext"
10459
+ ]
10460
+ },
10461
+ {
10462
+ "family": "Stardos Stencil",
10463
+ "variants": [
10464
+ "regular",
10465
+ "700"
10466
+ ],
10467
+ "subsets": [
10468
+ "latin"
10469
+ ]
10470
+ },
10471
+ {
10472
+ "family": "Stint Ultra Condensed",
10473
+ "variants": [
10474
+ "regular"
10475
+ ],
10476
+ "subsets": [
10477
+ "latin",
10478
+ "latin-ext"
10479
+ ]
10480
+ },
10481
+ {
10482
+ "family": "Stint Ultra Expanded",
10483
+ "variants": [
10484
+ "regular"
10485
+ ],
10486
+ "subsets": [
10487
+ "latin",
10488
+ "latin-ext"
10489
+ ]
10490
+ },
10491
+ {
10492
+ "family": "Stoke",
10493
+ "variants": [
10494
+ "300",
10495
+ "regular"
10496
+ ],
10497
+ "subsets": [
10498
+ "latin",
10499
+ "latin-ext"
10500
+ ]
10501
+ },
10502
+ {
10503
+ "family": "Strait",
10504
+ "variants": [
10505
+ "regular"
10506
+ ],
10507
+ "subsets": [
10508
+ "latin"
10509
+ ]
10510
+ },
10511
+ {
10512
+ "family": "Stylish",
10513
+ "variants": [
10514
+ "regular"
10515
+ ],
10516
+ "subsets": [
10517
+ "latin",
10518
+ "korean"
10519
+ ]
10520
+ },
10521
+ {
10522
+ "family": "Sue Ellen Francisco",
10523
+ "variants": [
10524
+ "regular"
10525
+ ],
10526
+ "subsets": [
10527
+ "latin"
10528
+ ]
10529
+ },
10530
+ {
10531
+ "family": "Suez One",
10532
+ "variants": [
10533
+ "regular"
10534
+ ],
10535
+ "subsets": [
10536
+ "hebrew",
10537
+ "latin",
10538
+ "latin-ext"
10539
+ ]
10540
+ },
10541
+ {
10542
+ "family": "Sumana",
10543
+ "variants": [
10544
+ "regular",
10545
+ "700"
10546
+ ],
10547
+ "subsets": [
10548
+ "devanagari",
10549
+ "latin",
10550
+ "latin-ext"
10551
+ ]
10552
+ },
10553
+ {
10554
+ "family": "Sunflower",
10555
+ "variants": [
10556
+ "300",
10557
+ "500",
10558
+ "700"
10559
+ ],
10560
+ "subsets": [
10561
+ "latin",
10562
+ "korean"
10563
+ ]
10564
+ },
10565
+ {
10566
+ "family": "Sunshiney",
10567
+ "variants": [
10568
+ "regular"
10569
+ ],
10570
+ "subsets": [
10571
+ "latin"
10572
+ ]
10573
+ },
10574
+ {
10575
+ "family": "Supermercado One",
10576
+ "variants": [
10577
+ "regular"
10578
+ ],
10579
+ "subsets": [
10580
+ "latin"
10581
+ ]
10582
+ },
10583
+ {
10584
+ "family": "Sura",
10585
+ "variants": [
10586
+ "regular",
10587
+ "700"
10588
+ ],
10589
+ "subsets": [
10590
+ "devanagari",
10591
+ "latin",
10592
+ "latin-ext"
10593
+ ]
10594
+ },
10595
+ {
10596
+ "family": "Suranna",
10597
+ "variants": [
10598
+ "regular"
10599
+ ],
10600
+ "subsets": [
10601
+ "telugu",
10602
+ "latin"
10603
+ ]
10604
+ },
10605
+ {
10606
+ "family": "Suravaram",
10607
+ "variants": [
10608
+ "regular"
10609
+ ],
10610
+ "subsets": [
10611
+ "telugu",
10612
+ "latin"
10613
+ ]
10614
+ },
10615
+ {
10616
+ "family": "Suwannaphum",
10617
+ "variants": [
10618
+ "regular"
10619
+ ],
10620
+ "subsets": [
10621
+ "khmer"
10622
+ ]
10623
+ },
10624
+ {
10625
+ "family": "Swanky and Moo Moo",
10626
+ "variants": [
10627
+ "regular"
10628
+ ],
10629
+ "subsets": [
10630
+ "latin"
10631
+ ]
10632
+ },
10633
+ {
10634
+ "family": "Syncopate",
10635
+ "variants": [
10636
+ "regular",
10637
+ "700"
10638
+ ],
10639
+ "subsets": [
10640
+ "latin"
10641
+ ]
10642
+ },
10643
+ {
10644
+ "family": "Tajawal",
10645
+ "variants": [
10646
+ "200",
10647
+ "300",
10648
+ "regular",
10649
+ "500",
10650
+ "700",
10651
+ "800",
10652
+ "900"
10653
+ ],
10654
+ "subsets": [
10655
+ "arabic",
10656
+ "latin"
10657
+ ]
10658
+ },
10659
+ {
10660
+ "family": "Tangerine",
10661
+ "variants": [
10662
+ "regular",
10663
+ "700"
10664
+ ],
10665
+ "subsets": [
10666
+ "latin"
10667
+ ]
10668
+ },
10669
+ {
10670
+ "family": "Taprom",
10671
+ "variants": [
10672
+ "regular"
10673
+ ],
10674
+ "subsets": [
10675
+ "khmer"
10676
+ ]
10677
+ },
10678
+ {
10679
+ "family": "Tauri",
10680
+ "variants": [
10681
+ "regular"
10682
+ ],
10683
+ "subsets": [
10684
+ "latin",
10685
+ "latin-ext"
10686
+ ]
10687
+ },
10688
+ {
10689
+ "family": "Taviraj",
10690
+ "variants": [
10691
+ "100",
10692
+ "100italic",
10693
+ "200",
10694
+ "200italic",
10695
+ "300",
10696
+ "300italic",
10697
+ "regular",
10698
+ "italic",
10699
+ "500",
10700
+ "500italic",
10701
+ "600",
10702
+ "600italic",
10703
+ "700",
10704
+ "700italic",
10705
+ "800",
10706
+ "800italic",
10707
+ "900",
10708
+ "900italic"
10709
+ ],
10710
+ "subsets": [
10711
+ "vietnamese",
10712
+ "latin",
10713
+ "thai",
10714
+ "latin-ext"
10715
+ ]
10716
+ },
10717
+ {
10718
+ "family": "Teko",
10719
+ "variants": [
10720
+ "300",
10721
+ "regular",
10722
+ "500",
10723
+ "600",
10724
+ "700"
10725
+ ],
10726
+ "subsets": [
10727
+ "devanagari",
10728
+ "latin",
10729
+ "latin-ext"
10730
+ ]
10731
+ },
10732
+ {
10733
+ "family": "Telex",
10734
+ "variants": [
10735
+ "regular"
10736
+ ],
10737
+ "subsets": [
10738
+ "latin",
10739
+ "latin-ext"
10740
+ ]
10741
+ },
10742
+ {
10743
+ "family": "Tenali Ramakrishna",
10744
+ "variants": [
10745
+ "regular"
10746
+ ],
10747
+ "subsets": [
10748
+ "telugu",
10749
+ "latin"
10750
+ ]
10751
+ },
10752
+ {
10753
+ "family": "Tenor Sans",
10754
+ "variants": [
10755
+ "regular"
10756
+ ],
10757
+ "subsets": [
10758
+ "cyrillic",
10759
+ "latin",
10760
+ "latin-ext"
10761
+ ]
10762
+ },
10763
+ {
10764
+ "family": "Text Me One",
10765
+ "variants": [
10766
+ "regular"
10767
+ ],
10768
+ "subsets": [
10769
+ "latin",
10770
+ "latin-ext"
10771
+ ]
10772
+ },
10773
+ {
10774
+ "family": "Thasadith",
10775
+ "variants": [
10776
+ "regular",
10777
+ "italic",
10778
+ "700",
10779
+ "700italic"
10780
+ ],
10781
+ "subsets": [
10782
+ "vietnamese",
10783
+ "latin",
10784
+ "thai",
10785
+ "latin-ext"
10786
+ ]
10787
+ },
10788
+ {
10789
+ "family": "The Girl Next Door",
10790
+ "variants": [
10791
+ "regular"
10792
+ ],
10793
+ "subsets": [
10794
+ "latin"
10795
+ ]
10796
+ },
10797
+ {
10798
+ "family": "Tienne",
10799
+ "variants": [
10800
+ "regular",
10801
+ "700",
10802
+ "900"
10803
+ ],
10804
+ "subsets": [
10805
+ "latin"
10806
+ ]
10807
+ },
10808
+ {
10809
+ "family": "Tillana",
10810
+ "variants": [
10811
+ "regular",
10812
+ "500",
10813
+ "600",
10814
+ "700",
10815
+ "800"
10816
+ ],
10817
+ "subsets": [
10818
+ "devanagari",
10819
+ "latin",
10820
+ "latin-ext"
10821
+ ]
10822
+ },
10823
+ {
10824
+ "family": "Timmana",
10825
+ "variants": [
10826
+ "regular"
10827
+ ],
10828
+ "subsets": [
10829
+ "telugu",
10830
+ "latin"
10831
+ ]
10832
+ },
10833
+ {
10834
+ "family": "Tinos",
10835
+ "variants": [
10836
+ "regular",
10837
+ "italic",
10838
+ "700",
10839
+ "700italic"
10840
+ ],
10841
+ "subsets": [
10842
+ "hebrew",
10843
+ "cyrillic",
10844
+ "vietnamese",
10845
+ "cyrillic-ext",
10846
+ "greek-ext",
10847
+ "greek",
10848
+ "latin",
10849
+ "latin-ext"
10850
+ ]
10851
+ },
10852
+ {
10853
+ "family": "Titan One",
10854
+ "variants": [
10855
+ "regular"
10856
+ ],
10857
+ "subsets": [
10858
+ "latin",
10859
+ "latin-ext"
10860
+ ]
10861
+ },
10862
+ {
10863
+ "family": "Titillium Web",
10864
+ "variants": [
10865
+ "200",
10866
+ "200italic",
10867
+ "300",
10868
+ "300italic",
10869
+ "regular",
10870
+ "italic",
10871
+ "600",
10872
+ "600italic",
10873
+ "700",
10874
+ "700italic",
10875
+ "900"
10876
+ ],
10877
+ "subsets": [
10878
+ "latin",
10879
+ "latin-ext"
10880
+ ]
10881
+ },
10882
+ {
10883
+ "family": "Trade Winds",
10884
+ "variants": [
10885
+ "regular"
10886
+ ],
10887
+ "subsets": [
10888
+ "latin"
10889
+ ]
10890
+ },
10891
+ {
10892
+ "family": "Trirong",
10893
+ "variants": [
10894
+ "100",
10895
+ "100italic",
10896
+ "200",
10897
+ "200italic",
10898
+ "300",
10899
+ "300italic",
10900
+ "regular",
10901
+ "italic",
10902
+ "500",
10903
+ "500italic",
10904
+ "600",
10905
+ "600italic",
10906
+ "700",
10907
+ "700italic",
10908
+ "800",
10909
+ "800italic",
10910
+ "900",
10911
+ "900italic"
10912
+ ],
10913
+ "subsets": [
10914
+ "vietnamese",
10915
+ "latin",
10916
+ "thai",
10917
+ "latin-ext"
10918
+ ]
10919
+ },
10920
+ {
10921
+ "family": "Trocchi",
10922
+ "variants": [
10923
+ "regular"
10924
+ ],
10925
+ "subsets": [
10926
+ "latin",
10927
+ "latin-ext"
10928
+ ]
10929
+ },
10930
+ {
10931
+ "family": "Trochut",
10932
+ "variants": [
10933
+ "regular",
10934
+ "italic",
10935
+ "700"
10936
+ ],
10937
+ "subsets": [
10938
+ "latin"
10939
+ ]
10940
+ },
10941
+ {
10942
+ "family": "Trykker",
10943
+ "variants": [
10944
+ "regular"
10945
+ ],
10946
+ "subsets": [
10947
+ "latin",
10948
+ "latin-ext"
10949
+ ]
10950
+ },
10951
+ {
10952
+ "family": "Tulpen One",
10953
+ "variants": [
10954
+ "regular"
10955
+ ],
10956
+ "subsets": [
10957
+ "latin"
10958
+ ]
10959
+ },
10960
+ {
10961
+ "family": "Ubuntu",
10962
+ "variants": [
10963
+ "300",
10964
+ "300italic",
10965
+ "regular",
10966
+ "italic",
10967
+ "500",
10968
+ "500italic",
10969
+ "700",
10970
+ "700italic"
10971
+ ],
10972
+ "subsets": [
10973
+ "cyrillic",
10974
+ "cyrillic-ext",
10975
+ "greek-ext",
10976
+ "greek",
10977
+ "latin",
10978
+ "latin-ext"
10979
+ ]
10980
+ },
10981
+ {
10982
+ "family": "Ubuntu Condensed",
10983
+ "variants": [
10984
+ "regular"
10985
+ ],
10986
+ "subsets": [
10987
+ "cyrillic",
10988
+ "cyrillic-ext",
10989
+ "greek-ext",
10990
+ "greek",
10991
+ "latin",
10992
+ "latin-ext"
10993
+ ]
10994
+ },
10995
+ {
10996
+ "family": "Ubuntu Mono",
10997
+ "variants": [
10998
+ "regular",
10999
+ "italic",
11000
+ "700",
11001
+ "700italic"
11002
+ ],
11003
+ "subsets": [
11004
+ "cyrillic",
11005
+ "cyrillic-ext",
11006
+ "greek-ext",
11007
+ "greek",
11008
+ "latin",
11009
+ "latin-ext"
11010
+ ]
11011
+ },
11012
+ {
11013
+ "family": "Ultra",
11014
+ "variants": [
11015
+ "regular"
11016
+ ],
11017
+ "subsets": [
11018
+ "latin"
11019
+ ]
11020
+ },
11021
+ {
11022
+ "family": "Uncial Antiqua",
11023
+ "variants": [
11024
+ "regular"
11025
+ ],
11026
+ "subsets": [
11027
+ "latin"
11028
+ ]
11029
+ },
11030
+ {
11031
+ "family": "Underdog",
11032
+ "variants": [
11033
+ "regular"
11034
+ ],
11035
+ "subsets": [
11036
+ "cyrillic",
11037
+ "latin",
11038
+ "latin-ext"
11039
+ ]
11040
+ },
11041
+ {
11042
+ "family": "Unica One",
11043
+ "variants": [
11044
+ "regular"
11045
+ ],
11046
+ "subsets": [
11047
+ "latin",
11048
+ "latin-ext"
11049
+ ]
11050
+ },
11051
+ {
11052
+ "family": "UnifrakturCook",
11053
+ "variants": [
11054
+ "700"
11055
+ ],
11056
+ "subsets": [
11057
+ "latin"
11058
+ ]
11059
+ },
11060
+ {
11061
+ "family": "UnifrakturMaguntia",
11062
+ "variants": [
11063
+ "regular"
11064
+ ],
11065
+ "subsets": [
11066
+ "latin"
11067
+ ]
11068
+ },
11069
+ {
11070
+ "family": "Unkempt",
11071
+ "variants": [
11072
+ "regular",
11073
+ "700"
11074
+ ],
11075
+ "subsets": [
11076
+ "latin"
11077
+ ]
11078
+ },
11079
+ {
11080
+ "family": "Unlock",
11081
+ "variants": [
11082
+ "regular"
11083
+ ],
11084
+ "subsets": [
11085
+ "latin"
11086
+ ]
11087
+ },
11088
+ {
11089
+ "family": "Unna",
11090
+ "variants": [
11091
+ "regular",
11092
+ "italic",
11093
+ "700",
11094
+ "700italic"
11095
+ ],
11096
+ "subsets": [
11097
+ "latin",
11098
+ "latin-ext"
11099
+ ]
11100
+ },
11101
+ {
11102
+ "family": "VT323",
11103
+ "variants": [
11104
+ "regular"
11105
+ ],
11106
+ "subsets": [
11107
+ "vietnamese",
11108
+ "latin",
11109
+ "latin-ext"
11110
+ ]
11111
+ },
11112
+ {
11113
+ "family": "Vampiro One",
11114
+ "variants": [
11115
+ "regular"
11116
+ ],
11117
+ "subsets": [
11118
+ "latin",
11119
+ "latin-ext"
11120
+ ]
11121
+ },
11122
+ {
11123
+ "family": "Varela",
11124
+ "variants": [
11125
+ "regular"
11126
+ ],
11127
+ "subsets": [
11128
+ "latin",
11129
+ "latin-ext"
11130
+ ]
11131
+ },
11132
+ {
11133
+ "family": "Varela Round",
11134
+ "variants": [
11135
+ "regular"
11136
+ ],
11137
+ "subsets": [
11138
+ "hebrew",
11139
+ "vietnamese",
11140
+ "latin",
11141
+ "latin-ext"
11142
+ ]
11143
+ },
11144
+ {
11145
+ "family": "Vast Shadow",
11146
+ "variants": [
11147
+ "regular"
11148
+ ],
11149
+ "subsets": [
11150
+ "latin"
11151
+ ]
11152
+ },
11153
+ {
11154
+ "family": "Vesper Libre",
11155
+ "variants": [
11156
+ "regular",
11157
+ "500",
11158
+ "700",
11159
+ "900"
11160
+ ],
11161
+ "subsets": [
11162
+ "devanagari",
11163
+ "latin",
11164
+ "latin-ext"
11165
+ ]
11166
+ },
11167
+ {
11168
+ "family": "Vibur",
11169
+ "variants": [
11170
+ "regular"
11171
+ ],
11172
+ "subsets": [
11173
+ "latin"
11174
+ ]
11175
+ },
11176
+ {
11177
+ "family": "Vidaloka",
11178
+ "variants": [
11179
+ "regular"
11180
+ ],
11181
+ "subsets": [
11182
+ "latin"
11183
+ ]
11184
+ },
11185
+ {
11186
+ "family": "Viga",
11187
+ "variants": [
11188
+ "regular"
11189
+ ],
11190
+ "subsets": [
11191
+ "latin",
11192
+ "latin-ext"
11193
+ ]
11194
+ },
11195
+ {
11196
+ "family": "Voces",
11197
+ "variants": [
11198
+ "regular"
11199
+ ],
11200
+ "subsets": [
11201
+ "latin",
11202
+ "latin-ext"
11203
+ ]
11204
+ },
11205
+ {
11206
+ "family": "Volkhov",
11207
+ "variants": [
11208
+ "regular",
11209
+ "italic",
11210
+ "700",
11211
+ "700italic"
11212
+ ],
11213
+ "subsets": [
11214
+ "latin"
11215
+ ]
11216
+ },
11217
+ {
11218
+ "family": "Vollkorn",
11219
+ "variants": [
11220
+ "regular",
11221
+ "italic",
11222
+ "600",
11223
+ "600italic",
11224
+ "700",
11225
+ "700italic",
11226
+ "900",
11227
+ "900italic"
11228
+ ],
11229
+ "subsets": [
11230
+ "cyrillic",
11231
+ "vietnamese",
11232
+ "cyrillic-ext",
11233
+ "greek",
11234
+ "latin",
11235
+ "latin-ext"
11236
+ ]
11237
+ },
11238
+ {
11239
+ "family": "Vollkorn SC",
11240
+ "variants": [
11241
+ "regular",
11242
+ "600",
11243
+ "700",
11244
+ "900"
11245
+ ],
11246
+ "subsets": [
11247
+ "cyrillic",
11248
+ "vietnamese",
11249
+ "cyrillic-ext",
11250
+ "latin",
11251
+ "latin-ext"
11252
+ ]
11253
+ },
11254
+ {
11255
+ "family": "Voltaire",
11256
+ "variants": [
11257
+ "regular"
11258
+ ],
11259
+ "subsets": [
11260
+ "latin"
11261
+ ]
11262
+ },
11263
+ {
11264
+ "family": "Waiting for the Sunrise",
11265
+ "variants": [
11266
+ "regular"
11267
+ ],
11268
+ "subsets": [
11269
+ "latin"
11270
+ ]
11271
+ },
11272
+ {
11273
+ "family": "Wallpoet",
11274
+ "variants": [
11275
+ "regular"
11276
+ ],
11277
+ "subsets": [
11278
+ "latin"
11279
+ ]
11280
+ },
11281
+ {
11282
+ "family": "Walter Turncoat",
11283
+ "variants": [
11284
+ "regular"
11285
+ ],
11286
+ "subsets": [
11287
+ "latin"
11288
+ ]
11289
+ },
11290
+ {
11291
+ "family": "Warnes",
11292
+ "variants": [
11293
+ "regular"
11294
+ ],
11295
+ "subsets": [
11296
+ "latin",
11297
+ "latin-ext"
11298
+ ]
11299
+ },
11300
+ {
11301
+ "family": "Wellfleet",
11302
+ "variants": [
11303
+ "regular"
11304
+ ],
11305
+ "subsets": [
11306
+ "latin",
11307
+ "latin-ext"
11308
+ ]
11309
+ },
11310
+ {
11311
+ "family": "Wendy One",
11312
+ "variants": [
11313
+ "regular"
11314
+ ],
11315
+ "subsets": [
11316
+ "latin",
11317
+ "latin-ext"
11318
+ ]
11319
+ },
11320
+ {
11321
+ "family": "Wire One",
11322
+ "variants": [
11323
+ "regular"
11324
+ ],
11325
+ "subsets": [
11326
+ "latin"
11327
+ ]
11328
+ },
11329
+ {
11330
+ "family": "Work Sans",
11331
+ "variants": [
11332
+ "100",
11333
+ "200",
11334
+ "300",
11335
+ "regular",
11336
+ "500",
11337
+ "600",
11338
+ "700",
11339
+ "800",
11340
+ "900"
11341
+ ],
11342
+ "subsets": [
11343
+ "latin",
11344
+ "latin-ext"
11345
+ ]
11346
+ },
11347
+ {
11348
+ "family": "Yanone Kaffeesatz",
11349
+ "variants": [
11350
+ "200",
11351
+ "300",
11352
+ "regular",
11353
+ "700"
11354
+ ],
11355
+ "subsets": [
11356
+ "cyrillic",
11357
+ "vietnamese",
11358
+ "latin",
11359
+ "latin-ext"
11360
+ ]
11361
+ },
11362
+ {
11363
+ "family": "Yantramanav",
11364
+ "variants": [
11365
+ "100",
11366
+ "300",
11367
+ "regular",
11368
+ "500",
11369
+ "700",
11370
+ "900"
11371
+ ],
11372
+ "subsets": [
11373
+ "devanagari",
11374
+ "latin",
11375
+ "latin-ext"
11376
+ ]
11377
+ },
11378
+ {
11379
+ "family": "Yatra One",
11380
+ "variants": [
11381
+ "regular"
11382
+ ],
11383
+ "subsets": [
11384
+ "devanagari",
11385
+ "latin",
11386
+ "latin-ext"
11387
+ ]
11388
+ },
11389
+ {
11390
+ "family": "Yellowtail",
11391
+ "variants": [
11392
+ "regular"
11393
+ ],
11394
+ "subsets": [
11395
+ "latin"
11396
+ ]
11397
+ },
11398
+ {
11399
+ "family": "Yeon Sung",
11400
+ "variants": [
11401
+ "regular"
11402
+ ],
11403
+ "subsets": [
11404
+ "latin",
11405
+ "korean"
11406
+ ]
11407
+ },
11408
+ {
11409
+ "family": "Yeseva One",
11410
+ "variants": [
11411
+ "regular"
11412
+ ],
11413
+ "subsets": [
11414
+ "cyrillic",
11415
+ "vietnamese",
11416
+ "cyrillic-ext",
11417
+ "latin",
11418
+ "latin-ext"
11419
+ ]
11420
+ },
11421
+ {
11422
+ "family": "Yesteryear",
11423
+ "variants": [
11424
+ "regular"
11425
+ ],
11426
+ "subsets": [
11427
+ "latin"
11428
+ ]
11429
+ },
11430
+ {
11431
+ "family": "Yrsa",
11432
+ "variants": [
11433
+ "300",
11434
+ "regular",
11435
+ "500",
11436
+ "600",
11437
+ "700"
11438
+ ],
11439
+ "subsets": [
11440
+ "latin",
11441
+ "latin-ext"
11442
+ ]
11443
+ },
11444
+ {
11445
+ "family": "ZCOOL KuaiLe",
11446
+ "variants": [
11447
+ "regular"
11448
+ ],
11449
+ "subsets": [
11450
+ "chinese-simplified",
11451
+ "latin"
11452
+ ]
11453
+ },
11454
+ {
11455
+ "family": "ZCOOL QingKe HuangYou",
11456
+ "variants": [
11457
+ "regular"
11458
+ ],
11459
+ "subsets": [
11460
+ "chinese-simplified",
11461
+ "latin"
11462
+ ]
11463
+ },
11464
+ {
11465
+ "family": "ZCOOL XiaoWei",
11466
+ "variants": [
11467
+ "regular"
11468
+ ],
11469
+ "subsets": [
11470
+ "chinese-simplified",
11471
+ "latin"
11472
+ ]
11473
+ },
11474
+ {
11475
+ "family": "Zeyada",
11476
+ "variants": [
11477
+ "regular"
11478
+ ],
11479
+ "subsets": [
11480
+ "latin"
11481
+ ]
11482
+ },
11483
+ {
11484
+ "family": "Zhi Mang Xing",
11485
+ "variants": [
11486
+ "regular"
11487
+ ],
11488
+ "subsets": [
11489
+ "chinese-simplified",
11490
+ "latin"
11491
+ ]
11492
+ },
11493
+ {
11494
+ "family": "Zilla Slab",
11495
+ "variants": [
11496
+ "300",
11497
+ "300italic",
11498
+ "regular",
11499
+ "italic",
11500
+ "500",
11501
+ "500italic",
11502
+ "600",
11503
+ "600italic",
11504
+ "700",
11505
+ "700italic"
11506
+ ],
11507
+ "subsets": [
11508
+ "latin",
11509
+ "latin-ext"
11510
+ ]
11511
+ },
11512
+ {
11513
+ "family": "Zilla Slab Highlight",
11514
+ "variants": [
11515
+ "regular",
11516
+ "700"
11517
+ ],
11518
+ "subsets": [
11519
+ "latin",
11520
+ "latin-ext"
11521
+ ]
11522
+ }
11523
+ ]
11524
+ }
trunk/blocks/src/google-fonts/index.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * BLOCK: Google Fonts
3
+ */
4
+
5
+ import edit from './edit';
6
+ import transforms from './transforms';
7
+
8
+ const { __ } = wp.i18n;
9
+ const { registerBlockType } = wp.blocks;
10
+
11
+ registerBlockType( 'olympus-google-fonts/google-fonts', {
12
+ title: __( 'Google Fonts', 'olympus-google-fonts' ),
13
+ category: 'common',
14
+ icon: <svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"/></svg>,
15
+ keywords: [
16
+ __( 'Fonts', 'olympus-google-fonts' ),
17
+ __( 'Heading', 'olympus-google-fonts' ),
18
+ ],
19
+ transforms,
20
+ edit,
21
+
22
+ save: function() {
23
+ return null;
24
+ },
25
+
26
+ } );
trunk/blocks/src/google-fonts/transforms.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ const { createBlock } = wp.blocks;
5
+
6
+ const transforms = {
7
+ from: [
8
+ {
9
+ type: 'block',
10
+ blocks: [ 'core/paragraph' ],
11
+ transform: ( { content } ) => {
12
+ return createBlock( 'olympus-google-fonts/google-fonts', {
13
+ content,
14
+ } );
15
+ },
16
+ },
17
+ {
18
+ type: 'block',
19
+ blocks: [ 'core/heading' ],
20
+ transform: ( { content, level } ) => {
21
+ return createBlock( 'olympus-google-fonts/google-fonts', {
22
+ content,
23
+ blockType: 'h' + level,
24
+ } );
25
+ },
26
+ },
27
+ ],
28
+ to: [
29
+ {
30
+ type: 'block',
31
+ blocks: [ 'core/paragraph' ],
32
+ transform: ( { content } ) => {
33
+ return createBlock( 'core/paragraph', {
34
+ content,
35
+ } );
36
+ },
37
+ },
38
+ ],
39
+ };
40
+
41
+ export default transforms;
trunk/changelog.txt ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ = 1.9.8 =
2
+
3
+ * Add new selector for 'Advanced Settings' → 'Content Typography'
4
+
5
+ = 1.9.7 =
6
+
7
+ * Update Google Fonts list.
8
+ * Add dashboard news widget.
9
+
10
+ = 1.9.6 =
11
+
12
+ * Add new fonts to Gutenberg.
13
+
14
+ = 1.9.5 =
15
+
16
+ * Fix problem where font styles were overwriting the Gutenberg interface.
17
+
18
+ = 1.9.4 =
19
+
20
+ * Improve i18n strings.
21
+
22
+ = 1.9.3 =
23
+
24
+ * Add custom CSS later in wp_head.
25
+
26
+ = 1.9.2 =
27
+
28
+ * Add system fonts to Classic Editor interface.
29
+
30
+ = 1.9.1 =
31
+
32
+ * Fix conflict with TinyMCE Advanced plugin.
33
+
34
+ = 1.9.0 =
35
+
36
+ * Update available fonts list.
37
+ * Add 'Classic Editor' support.
38
+ * Add Futura font.
39
+
40
+ = 1.8.4 =
41
+
42
+ * Add compatibility pack for ThemeIsle themes.
43
+
44
+ = 1.8.3 =
45
+
46
+ * Move 'CSS' setting to 'Advanced' panel.
47
+ * Add 'Reset' option to 'Debugging' section.
48
+
49
+ = 1.8.2 =
50
+
51
+ * Further improve theme compatibility for basic settings.
52
+
53
+ = 1.8.1 =
54
+
55
+ * Fix for "Invalid argument supplied for foreach()" error.
56
+
57
+ = 1.8.0 =
58
+
59
+ * Add 'Load Fonts for CSS' option.
60
+ * Add first implementation of compatibility filter (ThemeGrill).
61
+
62
+ = 1.7.6 =
63
+
64
+ * Add global font choices to block editor.
65
+ * Fix error in Gutenberg block.
66
+
67
+ = 1.7.5 =
68
+
69
+ * Fix font-display: swap in Gutenberg Block.
70
+ * Improve compatibility with MailOptin.
71
+
72
+ = 1.7.4 =
73
+
74
+ * Transform core paragraph and heading blocks into "Google Fonts Blocks".
75
+ * Add color option to "Google Fonts Block".
76
+ * Add Block Type option to "Google Fonts Block".
77
+ * Allow text customization in blocks even when a font is not selected.
78
+
79
+ = 1.7.3 =
80
+
81
+ * Compatibility fix for 'Local Hosting' addon.
82
+
83
+ = 1.7.2 =
84
+
85
+ * Add system fonts to the available choices.
86
+ * Remove font_choices_for_select() to reduce the amount of code output in the customizer.
87
+ * Fix issue where line-height is always 1.
88
+
89
+ = 1.7.1 =
90
+
91
+ * Fix changelog.txt link and include file in package.
92
+
93
+ = 1.7.0 =
94
+
95
+ * Reduce the load time impact on the customizer by ~1/3rd. Credits @aristath
96
+
97
+ = 1.6.3 =
98
+
99
+ * Fix $time Undefined variable.
100
+ * Update .pot file
101
+ * Update premium messaging
102
+
103
+ = 1.6.2 =
104
+
105
+ * Remove plugin recommendation for pro users as they already have the functionality
106
+
107
+ = 1.6.1 =
108
+
109
+ * Improve notifications class
110
+
111
+ = 1.6.0 =
112
+
113
+ * Add hook to CSS output
114
+ * Optimize CSS output
115
+
116
+ = 1.5.3 =
117
+
118
+ * Update icon.
119
+ * Move changelog to changelog.txt
120
+
121
+ = 1.5.2 =
122
+
123
+ * Improve Font Style setting.
124
+
125
+ = 1.5.1 =
126
+
127
+ * Speed up load times using preconnect resource hint.
128
+
129
+ = 1.5.0 =
130
+
131
+ * Fix problem with italics not being loaded.
132
+
133
+ = 1.4.8 =
134
+
135
+ * Improve theme compatibility
136
+
137
+ * Fix previewer not showing fonts
138
+ * Add new fonts
139
+
140
+ = 1.4.0 =
141
+
142
+ * Substantial performance improvements
143
+ * Improved organization of settings
144
+
145
+ = 1.3.2 =
146
+
147
+ * Add welcome notice.
148
+
149
+ = 1.3.1 =
150
+
151
+ * Update font list.
152
+ * Add version strings to resources.
153
+ * Add deactivation survey.
154
+
155
+ = 1.3.0 =
156
+
157
+ * Add 'Force Styles' setting to the bottom of 'Advanced Settings'.
158
+
159
+ = 1.2.5 =
160
+
161
+ * Improve theme compatibility.
162
+
163
+ = 1.2.4 =
164
+
165
+ * Improve customizer CSS.
166
+ * Improve Javascript code.
167
+
168
+ = 1.2.3 =
169
+
170
+ * Improve CSS for post/page headings and content.
171
+
172
+ = 1.2.2 =
173
+
174
+ * Minor updates
175
+
176
+ = 1.2.1 =
177
+
178
+ * Remove unused code
179
+
180
+ = 1.2.0 =
181
+
182
+ * Add new fonts
183
+ * Add font-weight option
184
+ * Add font-style option
185
+ * Improve live preview
186
+ * Add settings link to plugins page
187
+ * Add searchable text field to font-family setting
188
+ * Remove 'force styles' setting
189
+
190
+ = 1.1.2 =
191
+
192
+ * Add feedback request
193
+
194
+ = 1.1.1 =
195
+
196
+ * Add new fonts
197
+
198
+ = 1.1.0 =
199
+
200
+ * Improve outputting of Google stylesheet
201
+
202
+ = 1.0.9 =
203
+
204
+ * Fix navigation font setting
205
+
206
+ = 1.0.8 =
207
+
208
+ * Fix compatibility issue with PHP 5.2
209
+
210
+ = 1.0.7 =
211
+
212
+ * Add advanced settings
213
+
214
+ = 1.0.6 =
215
+
216
+ * Minor code improvements
217
+
218
+ = 1.0.5 =
219
+
220
+ * Add force styles option
221
+
222
+ = 1.0.3 =
223
+
224
+ * Rewrite readme
225
+
226
+ = 1.0.3 =
227
+
228
+ * Rename to adhere to guidelines
229
+
230
+ = 1.0.2 =
231
+
232
+ * Refactor get_choices in class-google-url.php
233
+
234
+ = 1.0.1 =
235
+
236
+ * Fix bug in class-google-url.php
237
+ * Add missing translation
238
+ * Add .pot file for translators
239
+
240
+ = 1.0.0 =
241
+
242
+ * Initial release of Google Fonts for WordPress
trunk/class-olympus-google-fonts.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Main Olympus_Google_Fonts Class
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Main Olympus_Google_Fonts Class
12
+ */
13
+ class Olympus_Google_Fonts {
14
+
15
+ /**
16
+ * Initialize plugin.
17
+ */
18
+ public function __construct() {
19
+
20
+ $this->includes();
21
+
22
+ add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
23
+
24
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ), 1000 ); // ensure our Google Font styles load last.
25
+ add_filter( 'wp_resource_hints', array( $this, 'resource_hints' ), 10, 2 );
26
+ add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue' ), 100 );
27
+ add_action( 'customize_preview_init', array( $this, 'customize_preview_enqueue' ) );
28
+
29
+ add_filter( 'plugin_action_links_' . plugin_basename( OGF_DIR_PATH . 'olympus-google-fonts.php' ), array( $this, 'links' ) );
30
+
31
+ if ( ! defined( 'OGF_PRO' ) ) {
32
+ add_action( 'customize_register', array( $this, 'remove_pro_sections' ) );
33
+ }
34
+
35
+ }
36
+
37
+ /**
38
+ * Load plugin files.
39
+ */
40
+ public function includes() {
41
+
42
+ // Required files for building the Google Fonts URL.
43
+ include OGF_DIR_PATH . 'includes/functions.php';
44
+ include OGF_DIR_PATH . 'includes/class-ogf-fonts.php';
45
+
46
+ // Required files for the customizer settings.
47
+ require OGF_DIR_PATH . 'includes/customizer/panels.php';
48
+ include OGF_DIR_PATH . 'includes/customizer/settings.php';
49
+ include OGF_DIR_PATH . 'includes/customizer/output-css.php';
50
+
51
+ // Required files for the Gutenberg editor.
52
+ include OGF_DIR_PATH . 'includes/gutenberg/output-css.php';
53
+
54
+ // Notifications class.
55
+ include OGF_DIR_PATH . 'includes/class-ogf-notifications.php';
56
+
57
+ // Welcome notice class.
58
+ include OGF_DIR_PATH . 'includes/class-ogf-welcome.php';
59
+
60
+ // Deactivation class.
61
+ require OGF_DIR_PATH . 'includes/class-ogf-deactivation.php';
62
+
63
+ // Reset class.
64
+ require OGF_DIR_PATH . 'includes/class-ogf-reset.php';
65
+
66
+ // Classic Editor class.
67
+ require OGF_DIR_PATH . 'includes/class-ogf-classic-editor.php';
68
+
69
+ // News widget.
70
+ require OGF_DIR_PATH . 'includes/class-ogf-dashboard-widget.php';
71
+
72
+ }
73
+
74
+ /**
75
+ * Load plugin textdomain.
76
+ */
77
+ public function load_textdomain() {
78
+
79
+ load_plugin_textdomain( 'olympus-google-fonts', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
80
+
81
+ }
82
+
83
+ /**
84
+ * Enqeue the Google Fonts URL.
85
+ */
86
+ public function enqueue() {
87
+
88
+ $fonts = new OGF_Fonts();
89
+
90
+ if ( $fonts->has_custom_fonts() ) {
91
+ $url = $fonts->build_url();
92
+ wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
93
+ }
94
+
95
+ }
96
+
97
+ /**
98
+ * Add preconnect for Google Fonts.
99
+ *
100
+ * @param array $urls URLs to print for resource hints.
101
+ * @param string $relation_type The relation type the URLs are printed.
102
+ * @return array $urls URLs to print for resource hints.
103
+ */
104
+ public function resource_hints( $urls, $relation_type ) {
105
+
106
+ if ( wp_style_is( 'olympus-google-fonts', 'queue' ) && 'preconnect' === $relation_type ) {
107
+ $urls[] = array(
108
+ 'href' => 'https://fonts.gstatic.com',
109
+ 'crossorigin',
110
+ );
111
+ }
112
+ return $urls;
113
+
114
+ }
115
+
116
+ /**
117
+ * Register control scripts/styles.
118
+ */
119
+ public function customize_controls_enqueue() {
120
+ wp_enqueue_script( 'ogf-customize-controls', esc_url( OGF_DIR_URL . 'assets/js/customize-controls.js' ), array( 'customize-controls' ), OGF_VERSION, true );
121
+ wp_enqueue_style( 'ogf-customize-controls', esc_url( OGF_DIR_URL . 'assets/css/customize-controls.css' ), array(), OGF_VERSION );
122
+
123
+ wp_localize_script( 'ogf-customize-controls', 'ogf_font_array', ogf_fonts_array() );
124
+ wp_localize_script( 'ogf-customize-controls', 'ogf_system_fonts', ogf_system_fonts() );
125
+ }
126
+
127
+ /**
128
+ * Load preview scripts/styles.
129
+ */
130
+ public function customize_preview_enqueue() {
131
+
132
+ wp_enqueue_script( 'ogf-customize-preview', esc_url( OGF_DIR_URL . 'assets/js/customize-preview.js' ), array( 'jquery' ), OGF_VERSION, true );
133
+
134
+ $elements = array_merge( ogf_get_elements(), ogf_get_custom_elements() );
135
+
136
+ wp_localize_script( 'ogf-customize-preview', 'ogf_elements', $elements );
137
+ wp_localize_script( 'ogf-customize-preview', 'ogf_system_fonts', ogf_system_fonts() );
138
+
139
+ }
140
+
141
+ /**
142
+ * Add custom links to plugin settings page.
143
+ *
144
+ * @param array $links Current links array.
145
+ */
146
+ public function links( $links ) {
147
+
148
+ // Customizer Settings Link.
149
+ $customizer_url = admin_url( 'customize.php?autofocus[panel]=ogf_google_fonts' );
150
+
151
+ $settings_link = '<a href="' . esc_url( $customizer_url ) . '">' . esc_html__( 'Settings', 'olympus-google-fonts' ) . '</a>';
152
+
153
+ array_push( $links, $settings_link );
154
+
155
+ // Upgrade Link.
156
+ $pro_link = '<a href="https://fontsplugin.com/pro-upgrade?utm_source=wpadmin-settings">' . esc_html__( 'Upgrade to Pro', 'olympus-google-fonts' ) . '</a>';
157
+
158
+ array_push( $links, $pro_link );
159
+
160
+ return $links;
161
+
162
+ }
163
+
164
+ /**
165
+ * Remove pro sections from basic version.
166
+ *
167
+ * @param object $wp_customize Access to the $wp_customize object.
168
+ */
169
+ public function remove_pro_sections( $wp_customize ) {
170
+ $wp_customize->remove_section( 'ogf_custom' );
171
+ $wp_customize->remove_section( 'ogf_advanced__custom' );
172
+ }
173
+
174
+ }
trunk/compatability/themegrill.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Compatability file for ThemeGrill themes.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Modify the default element selectors to improve compatability with ThemeGrill themes.
12
+ *
13
+ * @param array $elements The default elements.
14
+ */
15
+ function ogf_themegrill_elements( $elements ) {
16
+
17
+ $elements['ogf_body']['selectors'] = 'body, p';
18
+ return $elements;
19
+
20
+ }
21
+
22
+ add_filter( 'ogf_elements', 'ogf_themegrill_elements' );
trunk/compatability/themeisle.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Compatability file for ThemeIsle themes.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Modify the default element selectors to improve compatability with ThemeIsle themes.
12
+ *
13
+ * @param array $elements The default elements.
14
+ */
15
+ function ogf_themeisle_elements( $elements ) {
16
+
17
+ $elements['ogf_post_page_h1']['selectors'] = '.entry-content h1, .post-content h1, .page-content h1, #content h1, .single-post-wrap h1, .page-content-wrap h1';
18
+ $elements['ogf_post_page_h2']['selectors'] = '.entry-content h2, .post-content h2, .page-content h2, #content h2, .single-post-wrap h2, .page-content-wrap h2';
19
+ $elements['ogf_post_page_h3']['selectors'] = '.entry-content h3, .post-content h3, .page-content h3, #content h3, .single-post-wrap h3, .page-content-wrap h3';
20
+ $elements['ogf_post_page_h4']['selectors'] = '.entry-content h4, .post-content h4, .page-content h4, #content h4, .single-post-wrap h4, .page-content-wrap h4';
21
+ $elements['ogf_post_page_h5']['selectors'] = '.entry-content h5, .post-content h5, .page-content h5, #content h5, .single-post-wrap h5, .page-content-wrap h5';
22
+ $elements['ogf_post_page_h6']['selectors'] = '.entry-content h6, .post-content h6, .page-content h6, #content h6, .single-post-wrap h6, .page-content-wrap h6';
23
+ return $elements;
24
+
25
+ }
26
+
27
+ add_filter( 'ogf_elements', 'ogf_themeisle_elements' );
trunk/includes/class-ogf-classic-editor.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Add Google Fonts dropdown to the classic editor.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ if ( ! class_exists( 'OGF_Classic_Editor' ) ) :
11
+ /**
12
+ * The 'Classic Editor' class.
13
+ */
14
+ class OGF_Classic_Editor {
15
+
16
+ /**
17
+ * WP_Customize object.
18
+ *
19
+ * @var WP_Customize_Manager
20
+ */
21
+ private $wp_customize;
22
+
23
+
24
+ /**
25
+ * OGF_Fonts object.
26
+ *
27
+ * @var object
28
+ */
29
+ private $ogf_fonts;
30
+
31
+ /**
32
+ * Class constructor.
33
+ */
34
+ public function __construct() {
35
+ $this->ogf_fonts = new OGF_Fonts();
36
+ if ( ! $this->ogf_fonts->has_custom_fonts() ) {
37
+ return;
38
+ }
39
+ add_filter( 'mce_buttons', array( $this, 'tinymce_add_buttons' ), 1 );
40
+ add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_custom_options' ) );
41
+ add_filter( 'ogf_classic_font_formats', array( $this, 'tinymce_add_fonts' ) );
42
+ add_action( 'admin_init', array( $this, 'google_fonts_enqueue' ) );
43
+ }
44
+
45
+ /**
46
+ * Add buttons to the editor.
47
+ *
48
+ * @param array $buttons Tiny MCE buttons.
49
+ */
50
+ public function tinymce_add_buttons( $buttons ) {
51
+ return array_merge(
52
+ array( 'fontselect', 'fontsizeselect' ),
53
+ $buttons
54
+ );
55
+ }
56
+
57
+ /**
58
+ * Customize the Tiny MCE settings.
59
+ *
60
+ * @param array $opt Tiny MCE options.
61
+ */
62
+ public function tinymce_custom_options( $opt ) {
63
+
64
+ $opt['font_formats'] = apply_filters( 'ogf_classic_font_formats', 'Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;' );
65
+
66
+ // $opt['fontsize_formats'] = apply_filters( 'ogf_classic_font_sizes', '8px 10px 12px 14px 16px 18px 24px 30px 36px 48px 60px 72px' );
67
+
68
+ return $opt;
69
+ }
70
+
71
+ /**
72
+ * Add fonts to the classic editor list.
73
+ *
74
+ * @param array $old_default The default fonts.
75
+ */
76
+ public function tinymce_add_fonts( $old_default ) {
77
+ $new_default = '';
78
+ $choices = $this->ogf_fonts->choices;
79
+ foreach ( $choices as $font ) {
80
+ if ( ! ogf_is_system_font( $font ) ) {
81
+ $new_default .= $this->ogf_fonts->get_font_name( $font ) . '=' . $this->ogf_fonts->get_font_name( $font ) . ';';
82
+ }
83
+ }
84
+ $new_default .= $old_default;
85
+ return $new_default;
86
+ }
87
+
88
+ /**
89
+ * Enqueue the Google Fonts in TinyMCE.
90
+ */
91
+ public function google_fonts_enqueue() {
92
+ global $editor_styles;
93
+ if ( $this->ogf_fonts->has_custom_fonts() ) {
94
+ $editor_styles[] = $this->ogf_fonts->build_url();
95
+ }
96
+ }
97
+
98
+ }
99
+ endif;
100
+
101
+ /*
102
+ * Instantiate the OGF_Classic_Editor class.
103
+ */
104
+ new OGF_Classic_Editor();
trunk/includes/class-ogf-dashboard-widget.php ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Dashboard Widget
4
+ *
5
+ * @package olympus-google-fonts
6
+ */
7
+
8
+ /**
9
+ * Class ogf_dashboard_widget
10
+ */
11
+ class OGF_Dashboard_Widget {
12
+
13
+ /**
14
+ * Constructor
15
+ *
16
+ * Add the action to the constructor.
17
+ */
18
+ public function __construct() {
19
+ add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widget' ) );
20
+ }
21
+
22
+ /**
23
+ * Add Dashboard Widget
24
+ *
25
+ * @since 2.3.10
26
+ */
27
+ public function add_dashboard_widget() {
28
+ wp_add_dashboard_widget(
29
+ 'ogf-rss-feed',
30
+ esc_html__( 'Typography News', 'olympus-google-fonts' ),
31
+ array(
32
+ $this,
33
+ 'display_rss_dashboard_widget',
34
+ )
35
+ );
36
+ }
37
+
38
+ /**
39
+ * Show Widget
40
+ */
41
+ public function show_widget() {
42
+
43
+ $show = true;
44
+
45
+ if ( apply_filters( 'ogf_show_news', true ) === false ) {
46
+ // API filter hook to disable showing dashboard widget.
47
+ return false;
48
+ }
49
+
50
+ return $show;
51
+ }
52
+
53
+ /**
54
+ * Display RSS Dashboard Widget
55
+ */
56
+ public function display_rss_dashboard_widget() {
57
+ // check if the user has chosen not to display this widget through screen options.
58
+ $current_screen = get_current_screen();
59
+ $hidden_widgets = get_user_meta( get_current_user_id(), 'metaboxhidden_' . $current_screen->id );
60
+ if ( $hidden_widgets && count( $hidden_widgets ) > 0 && is_array( $hidden_widgets[0] ) && in_array( 'ogf-rss-feed', $hidden_widgets[0], true ) ) {
61
+ return;
62
+ }
63
+
64
+ include_once ABSPATH . WPINC . '/feed.php';
65
+
66
+ $rss_items = get_transient( 'ogf_feed' );
67
+ if ( false === $rss_items ) {
68
+
69
+ $rss = fetch_feed( 'https://fontsplugin.com/feed/' );
70
+ if ( is_wp_error( $rss ) ) {
71
+ echo esc_html__( 'Temporarily unable to load feed.', 'olympus-google-fonts' );
72
+
73
+ return;
74
+ }
75
+ $rss_items = $rss->get_items( 0, 4 ); // Show four items.
76
+
77
+ $cached = array();
78
+ foreach ( $rss_items as $item ) {
79
+ $cached[] = array(
80
+ 'url' => $item->get_permalink(),
81
+ 'title' => $item->get_title(),
82
+ 'date' => $item->get_date( 'M jS Y' ),
83
+ 'content' => substr( wp_strip_all_tags( $item->get_content() ), 0, 128 ) . '...',
84
+ );
85
+ }
86
+ $rss_items = $cached;
87
+
88
+ set_transient( 'ogf_feed', $cached, WEEK_IN_SECONDS );
89
+
90
+ }
91
+
92
+ ?>
93
+
94
+ <ul>
95
+ <?php
96
+ if ( false === $rss_items ) {
97
+ echo esc_html__( 'Temporarily unable to load feed.', 'olympus-google-fonts' );
98
+
99
+ return;
100
+ }
101
+
102
+ foreach ( $rss_items as $item ) {
103
+ ?>
104
+ <li>
105
+ <a class="rsswidget" target="_blank" href="<?php echo esc_url( $item['url'] ); ?>">
106
+ <?php echo esc_html( $item['title'] ); ?>
107
+ </a>
108
+ <div class="rssSummary ogf_news">
109
+ <?php echo wp_kses_post( $item['content'] ); ?>
110
+ </div>
111
+ </li>
112
+ <?php
113
+ }
114
+
115
+ ?>
116
+ </ul>
117
+
118
+ <?php
119
+
120
+ }
121
+ }
122
+
123
+ new OGF_Dashboard_Widget();
trunk/includes/class-ogf-deactivation.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Deactivation Feedback Class.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * The feedback.
12
+ */
13
+ class OGF_Deactivation {
14
+
15
+ /**
16
+ * Class constructor.
17
+ */
18
+ public function __construct() {
19
+ // Add actions.
20
+ add_action( 'wp_ajax_ogf_submit_feedback', array( $this, 'ogf_submit_feedback' ) );
21
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
22
+ }
23
+
24
+ /**
25
+ * Enqeue the styles and scripts.
26
+ *
27
+ * @param string $hook The hook tells us which page of wp-admin we are on.
28
+ */
29
+ public function enqueue( $hook ) {
30
+
31
+ if ( 'plugins.php' !== $hook ) {
32
+ return;
33
+ }
34
+
35
+ wp_enqueue_script( 'featherlight', esc_url( OGF_DIR_URL . 'assets/js/featherlight.min.js' ), 'jquery', OGF_VERSION, true );
36
+ wp_enqueue_script( 'ogf-admin-modal', esc_url( OGF_DIR_URL . 'assets/js/deactivation.js' ), 'jquery', OGF_VERSION, false );
37
+
38
+ wp_enqueue_style( 'ogf-deactivation', esc_url( OGF_DIR_URL . 'assets/css/deactivation.css' ), '', OGF_VERSION );
39
+
40
+ }
41
+
42
+ /**
43
+ * Remove WordPress email so annonymity is kept.
44
+ *
45
+ * @param $string $email WordPress email address.
46
+ */
47
+ public function ogf_mail_from_email( $email ) {
48
+ return 'team@fontsplugin.com';
49
+ }
50
+
51
+ /**
52
+ * Remove WordPress name so annonymity is kept.
53
+ *
54
+ * @param $string $name WordPress install name.
55
+ */
56
+ public function ogf_mail_from_name( $name ) {
57
+ return 'Deactivation Survey [OGF]';
58
+ }
59
+
60
+ /**
61
+ * Send user feedback regarding plugin deactivation.
62
+ */
63
+ public function ogf_submit_feedback() {
64
+
65
+ $current_user = wp_get_current_user();
66
+ $url = site_url();
67
+ $user = $current_user->user_email;
68
+ $theme = wp_get_theme();
69
+ $reason = ( isset( $_POST['reason'] ) ? wp_unslash( $_POST['reason'] ) : '' );
70
+ $explanation = ( isset( $_POST['explanation'] ) ? wp_unslash( $_POST['explanation'] ) : '' );
71
+ $anon = ( isset( $_POST['anon'] ) ? wp_unslash( $_POST['anon'] ) : '' );
72
+
73
+ if ( ! $explanation ) {
74
+ return;
75
+ }
76
+
77
+ add_filter( 'wp_mail_from_name', array( $this, 'ogf_mail_from_name' ) );
78
+ add_filter( 'wp_mail_from', array( $this, 'ogf_mail_from_email' ) );
79
+
80
+ if ( 'true' === $anon ) {
81
+ $url = 'https://google.com';
82
+ $user = 'anon@anonymous.com';
83
+ }
84
+
85
+ $to = 'hello@fontsplugin.com';
86
+ $subject = 'Deactivation Survey';
87
+ $headers = array( 'Content-Type: text/html; charset=UTF-8' );
88
+
89
+ $body = '<html><body>' .
90
+ '<p>Version: ' . OGF_VERSION . '</p>' .
91
+ '<p>URL: ' . esc_url( $url ) . '</p>' .
92
+ '<p>User: ' . sanitize_email( $user ) . '</p>' .
93
+ '<p>Theme: ' . esc_attr( $theme->get( 'Name' ) ) . '</p>' .
94
+ '<p>Reason: ' . esc_html( $reason ) . '</p>' .
95
+ '<p>Explanation: ' . esc_html( $explanation ) . '</p>' .
96
+ '</html></body>';
97
+
98
+ wp_mail( $to, $subject, $body, $headers );
99
+
100
+ remove_filter( 'wp_mail_from_name', array( $this, 'ogf_mail_from_name' ) );
101
+ remove_filter( 'wp_mail_from', array( $this, 'ogf_mail_from_email' ) );
102
+
103
+ wp_die();
104
+ }
105
+ }
106
+
107
+ /*
108
+ * Instantiate the OGF_Deactivation class.
109
+ */
110
+ new OGF_Deactivation();
trunk/includes/class-ogf-fonts.php ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Build the URL to load the chosen Google Fonts.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * This class builds the Google Fonts URL.
12
+ */
13
+ class OGF_Fonts {
14
+
15
+ /**
16
+ * All Google Fonts.
17
+ *
18
+ * @var array
19
+ */
20
+ public $google_fonts = array();
21
+
22
+ /**
23
+ * The users font choices.
24
+ *
25
+ * @var array
26
+ */
27
+ public $choices = array();
28
+
29
+ /**
30
+ * Let's get started.
31
+ */
32
+ public function __construct() {
33
+
34
+ $this->google_fonts = ogf_fonts_array();
35
+ $this->get_choices();
36
+
37
+ }
38
+
39
+ /**
40
+ * Get the users font choices.
41
+ */
42
+ public function get_choices() {
43
+
44
+ $elements = array_keys( ogf_get_elements() );
45
+
46
+ foreach ( $elements as $element ) {
47
+ if ( get_theme_mod( $element . '_font' ) && get_theme_mod( $element . '_font' ) !== 'default' ) {
48
+ $this->choices[] = get_theme_mod( $element . '_font' );
49
+ }
50
+ }
51
+
52
+ $elements = array_keys( ogf_get_custom_elements() );
53
+
54
+ foreach ( $elements as $element ) {
55
+ if ( get_theme_mod( $element . '_font' ) && get_theme_mod( $element . '_font' ) !== 'default' ) {
56
+ $this->choices[] = get_theme_mod( $element . '_font' );
57
+ }
58
+ }
59
+
60
+ $load_fonts_css = get_theme_mod( 'ogf_load_fonts', array() );
61
+
62
+ if ( is_array( $load_fonts_css ) ) {
63
+ foreach ( $load_fonts_css as $key => $value ) {
64
+ $this->choices[] = $value;
65
+ }
66
+ }
67
+
68
+ }
69
+
70
+ /**
71
+ * Make the font name safe for use in URLs
72
+ *
73
+ * @param string $font The font we are getting the id of.
74
+ */
75
+ public function get_font_id( $font ) {
76
+
77
+ return str_replace( ' ', '+', $font );
78
+
79
+ }
80
+
81
+ /**
82
+ * Get the font weights from ID.
83
+ *
84
+ * @param string $font_id The font ID.
85
+ */
86
+ public function get_font_weights( $font_id ) {
87
+
88
+ $weights = $this->google_fonts[ $font_id ]['variants'];
89
+
90
+ unset( $weights['0'] );
91
+
92
+ foreach ( $weights as $key => $value ) {
93
+ $weights[ $key . 'i' ] = $value . ' Italic';
94
+ }
95
+
96
+ return $weights;
97
+
98
+ }
99
+
100
+ /**
101
+ * Get the font name from ID.
102
+ *
103
+ * @param string $font_id The font ID.
104
+ */
105
+ public function get_font_name( $font_id ) {
106
+
107
+ return $this->google_fonts[ $font_id ]['family'];
108
+
109
+ }
110
+
111
+ /**
112
+ * Helper to check if the user is using any Google fonts.
113
+ */
114
+ public function has_custom_fonts() {
115
+
116
+ if ( empty( $this->choices ) ) {
117
+ return false;
118
+ }
119
+
120
+ foreach ( $this->choices as $choice ) {
121
+ if ( ! ogf_is_system_font( $choice ) ) {
122
+ return true;
123
+ }
124
+ }
125
+
126
+ return false;
127
+
128
+ }
129
+
130
+ /**
131
+ * Remove the fonts the user has chosen not to load.
132
+ *
133
+ * @param string $font_id The font ID.
134
+ * @param string $weights The font weights.
135
+ */
136
+ public function filter_selected_weights( $font_id, $weights ) {
137
+
138
+ unset( $weights['0'] );
139
+
140
+ foreach ( $weights as $key => $value ) {
141
+ $weights[ $key . 'i' ] = $value . ' Italic';
142
+ }
143
+
144
+ $selected_weights = get_theme_mod( $font_id . '_weights', false );
145
+
146
+ if ( ! $selected_weights ) {
147
+ return $weights;
148
+ }
149
+ return array_intersect_key( $weights, array_flip( $selected_weights ) );
150
+
151
+ }
152
+
153
+ /**
154
+ * Return the Google Fonts url.
155
+ */
156
+ public function build_url() {
157
+
158
+ $families = array();
159
+ $subsets = array();
160
+
161
+ if ( empty( $this->choices ) ) {
162
+ return;
163
+ }
164
+
165
+ $fonts = array_unique( $this->choices );
166
+
167
+ foreach ( $fonts as $font_id ) {
168
+
169
+ // Check the users choice is a real font.
170
+ if ( array_key_exists( $font_id, $this->google_fonts ) ) {
171
+
172
+ $font_id_for_url = $this->get_font_id( $this->google_fonts[ $font_id ]['family'] );
173
+
174
+ $weights = $this->filter_selected_weights( $font_id, $this->google_fonts[ $font_id ]['variants'] );
175
+
176
+ $families[] = $font_id_for_url . ':' . implode( ',', array_keys( $weights ) );
177
+
178
+ $subsets_array = $this->google_fonts[ $font_id ]['subsets'];
179
+
180
+ // Build an array of the subsets that need to be loaded.
181
+ foreach ( $subsets_array as $subset ) {
182
+
183
+ if ( ! in_array( $subset, $subsets, true ) ) {
184
+ $subsets[] = $subset;
185
+ }
186
+ }
187
+ }
188
+ }
189
+
190
+ $query_args = array(
191
+ 'family' => implode( '|', $families ),
192
+ 'subset' => implode( ',', $subsets ),
193
+ 'display' => 'swap',
194
+ );
195
+
196
+ return add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
197
+
198
+ }
199
+
200
+ }
trunk/includes/class-ogf-notifications.php ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Notification class.
4
+ * Prompts users to give a review of the plugin on WordPress.org after a period of usage.
5
+ *
6
+ * @package olympus-google-fonts
7
+ * @copyright Copyright (c) 2019, Fonts Plugin
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ */
10
+
11
+ if ( ! class_exists( 'OGF_Notifications' ) ) :
12
+ /**
13
+ * The feedback.
14
+ */
15
+ class OGF_Notifications {
16
+
17
+ /**
18
+ * Slug.
19
+ *
20
+ * @var string $slug
21
+ */
22
+ private $slug;
23
+
24
+ /**
25
+ * Name.
26
+ *
27
+ * @var string $name
28
+ */
29
+ private $name;
30
+
31
+ /**
32
+ * Time limit.
33
+ *
34
+ * @var string $time_limit
35
+ */
36
+ private $time_limit;
37
+
38
+ /**
39
+ * No Bug Option.
40
+ *
41
+ * @var string $nobug_option
42
+ */
43
+ public $nobug_option;
44
+
45
+ /**
46
+ * Activation Date Option.
47
+ *
48
+ * @var string $date_option
49
+ */
50
+ public $date_option;
51
+
52
+ /**
53
+ * Class constructor.
54
+ *
55
+ * @param string $args Arguments.
56
+ */
57
+ public function __construct( $args ) {
58
+ $this->slug = $args['slug'];
59
+ $this->name = $args['name'];
60
+ $this->date_option = 'ogf_activation_date';
61
+ $this->nobug_option = $this->slug . '_no_bug';
62
+ if ( isset( $args['time_limit'] ) ) {
63
+ $this->time_limit = $args['time_limit'];
64
+ } else {
65
+ $this->time_limit = WEEK_IN_SECONDS;
66
+ }
67
+ // Add actions.
68
+ add_action( 'admin_init', array( $this, 'check_installation_date' ) );
69
+ add_action( 'admin_init', array( $this, 'set_no_bug' ), 5 );
70
+ }
71
+
72
+ /**
73
+ * Seconds to words.
74
+ *
75
+ * @param string $seconds Seconds in time.
76
+ */
77
+ public function seconds_to_words( $seconds ) {
78
+ // Get the years.
79
+ $years = ( intval( $seconds ) / YEAR_IN_SECONDS ) % 100;
80
+ if ( $years > 0 ) {
81
+ /* translators: Number of years */
82
+ return sprintf( _n( 'a year', '%d years', $years, 'olympus-google-fonts' ), $years );
83
+ }
84
+ // Get the weeks.
85
+ $weeks = ( intval( $seconds ) / WEEK_IN_SECONDS ) % 52;
86
+ if ( $weeks > 0 ) {
87
+ /* translators: Number of weeks */
88
+ return sprintf( _n( 'a week', '%d weeks', $weeks, 'olympus-google-fonts' ), $weeks );
89
+ }
90
+ // Get the days.
91
+ $days = ( intval( $seconds ) / DAY_IN_SECONDS ) % 7;
92
+ if ( $days > 0 ) {
93
+ /* translators: Number of days */
94
+ return sprintf( _n( 'a day', '%d days', $days, 'olympus-google-fonts' ), $days );
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Check date on admin initiation and add to admin notice if it was more than the time limit.
100
+ */
101
+ public function check_installation_date() {
102
+ if ( ! get_site_option( $this->nobug_option ) || false === get_site_option( $this->nobug_option ) ) {
103
+ add_site_option( $this->date_option, time() );
104
+ // Retrieve the activation date.
105
+ $install_date = get_site_option( $this->date_option );
106
+ // If difference between install date and now is greater than time limit, then display notice.
107
+ if ( ( time() - $install_date ) > $this->time_limit ) {
108
+ add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
109
+ }
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Display the admin notice.
115
+ */
116
+ public function display_admin_notice() {
117
+ if ( is_plugin_active( 'google-fonts-pro/google-fonts-pro.php' ) ) {
118
+ return;
119
+ }
120
+ ?>
121
+
122
+ <style>
123
+ .notice.ogf-notice {
124
+ border-left-color: #008ec2 !important;
125
+ padding: 20px;
126
+ }
127
+ .rtl .notice.ogf-notice {
128
+ border-right-color: #008ec2 !important;
129
+ }
130
+ .notice.notice.ogf-notice .ogf-notice-inner {
131
+ display: table;
132
+ width: 100%;
133
+ }
134
+ .notice.ogf-notice .ogf-notice-inner .ogf-notice-icon,
135
+ .notice.ogf-notice .ogf-notice-inner .ogf-notice-content,
136
+ .notice.ogf-notice .ogf-notice-inner .ogf-install-now {
137
+ display: table-cell;
138
+ vertical-align: middle;
139
+ }
140
+ .notice.ogf-notice .ogf-notice-icon {
141
+ color: #509ed2;
142
+ font-size: 50px;
143
+ width: 60px;
144
+ }
145
+ .notice.ogf-notice .ogf-notice-icon img {
146
+ width: 64px;
147
+ }
148
+ .notice.ogf-notice .ogf-notice-content {
149
+ padding: 0 40px 0 20px;
150
+ }
151
+ .notice.ogf-notice p {
152
+ padding: 0;
153
+ margin: 0;
154
+ max-width: 640px;
155
+ }
156
+ .notice.ogf-notice h3 {
157
+ margin: 0 0 5px;
158
+ }
159
+ .notice.ogf-notice .ogf-install-now {
160
+ text-align: center;
161
+ }
162
+ .notice.ogf-notice .ogf-install-now .ogf-install-button {
163
+ padding: 6px 50px;
164
+ height: auto;
165
+ line-height: 20px;
166
+ }
167
+ .notice.ogf-notice a.no-thanks {
168
+ display: block;
169
+ margin-top: 10px;
170
+ color: #72777c;
171
+ text-decoration: none;
172
+ }
173
+ .notice.ogf-notice a.no-thanks:hover {
174
+ color: #444;
175
+ }
176
+ @media (max-width: 767px) {
177
+ .notice.notice.ogf-notice .ogf-notice-inner {
178
+ display: block;
179
+ }
180
+ .notice.ogf-notice {
181
+ padding: 20px !important;
182
+ }
183
+ .notice.ogf-noticee .ogf-notice-inner {
184
+ display: block;
185
+ }
186
+ .notice.ogf-notice .ogf-notice-inner .ogf-notice-content {
187
+ display: block;
188
+ padding: 0;
189
+ }
190
+ .notice.ogf-notice .ogf-notice-inner .ogf-notice-icon {
191
+ display: none;
192
+ }
193
+ .notice.ogf-notice .ogf-notice-inner .ogf-install-now {
194
+ margin-top: 20px;
195
+ display: block;
196
+ text-align: left;
197
+ }
198
+ .notice.ogf-notice .ogf-notice-inner .no-thanks {
199
+ display: inline-block;
200
+ margin-left: 15px;
201
+ }
202
+ }
203
+ </style>
204
+ <?php
205
+ $this->review();
206
+ }
207
+
208
+ /**
209
+ * Output review content.
210
+ */
211
+ public function review() {
212
+ $no_bug_url = wp_nonce_url( admin_url( '?' . $this->nobug_option . '=true' ), 'ogf-notification-nounce' );
213
+ $time = $this->seconds_to_words( time() - get_site_option( $this->date_option ) );
214
+ ?>
215
+ <div class="notice updated ogf-notice">
216
+ <div class="ogf-notice-inner">
217
+ <div class="ogf-notice-icon">
218
+ <img src="https://ps.w.org/olympus-google-fonts/assets/icon-256x256.jpg" alt="<?php echo esc_attr__( 'Google Fonts WordPress Plugin', 'olympus-google-fonts' ); ?>" />
219
+ </div>
220
+ <div class="ogf-notice-content">
221
+ <h3><?php echo esc_html__( 'Are you enjoying using Google Fonts?', 'olympus-google-fonts' ); ?></h3>
222
+ <p>
223
+ <?php
224
+ /* translators: 1. Name, 2. Time */
225
+ printf( __( 'You have been using <strong>%1$s</strong> for %2$s now! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'olympus-google-fonts' ), esc_html( $this->name ), esc_html( $time ) );
226
+ ?>
227
+ </p>
228
+ </div>
229
+ <div class="ogf-install-now">
230
+ <?php printf( '<a href="%1$s" class="button button-primary ogf-install-button" target="_blank">%2$s</a>', esc_url( 'https://wordpress.org/support/view/plugin-reviews/olympus-google-fonts#new-post' ), esc_html__( 'Leave a Review', 'olympus-google-fonts' ) ); ?>
231
+ <a href="<?php echo esc_url( $no_bug_url ); ?>" class="no-thanks"><?php echo esc_html__( 'No thanks / I already have', 'olympus-google-fonts' ); ?></a>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ <?php
236
+ }
237
+
238
+ /**
239
+ * Set the plugin to no longer bug users if user asks not to be.
240
+ */
241
+ public function set_no_bug() {
242
+ // Bail out if not on correct page.
243
+ if ( ! isset( $_GET['_wpnonce'] ) || ( ! wp_verify_nonce( $_GET['_wpnonce'], 'ogf-notification-nounce' ) || ! is_admin() || ! isset( $_GET[ $this->nobug_option ] ) || ! current_user_can( 'manage_options' ) ) ) {
244
+ return;
245
+ }
246
+ add_site_option( $this->nobug_option, true );
247
+ }
248
+ }
249
+ endif;
250
+
251
+
252
+ /*
253
+ * Instantiate the OGF_Notifications class.
254
+ */
255
+ new OGF_Notifications(
256
+ array(
257
+ 'slug' => 'ogf',
258
+ 'name' => __( 'Google Fonts for WordPress', 'olympus-google-fonts' ),
259
+ 'time_limit' => WEEK_IN_SECONDS,
260
+ )
261
+ );
trunk/includes/class-ogf-reset.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Reset fonts class.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ if ( ! class_exists( 'OGF_Reset' ) ) :
11
+ /**
12
+ * The 'Reset Fonts' class.
13
+ */
14
+ class OGF_Reset {
15
+
16
+ /**
17
+ * WP_Customize object.
18
+ *
19
+ * @var WP_Customize_Manager
20
+ */
21
+ private $wp_customize;
22
+
23
+ /**
24
+ * Class constructor.
25
+ */
26
+ public function __construct() {
27
+ add_action( 'customize_register', array( $this, 'customize_register' ) );
28
+ add_action( 'wp_ajax_customizer_reset', array( $this, 'ajax_customizer_reset' ) );
29
+ add_action( 'customize_register', array( $this, 'customize_register' ) );
30
+ add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_scripts' ), 101 );
31
+ }
32
+
33
+ /**
34
+ * Add localize script to assets/js/customize-controls.js.
35
+ */
36
+ public function customize_scripts() {
37
+ wp_localize_script(
38
+ 'ogf-customize-controls',
39
+ 'fontsReset',
40
+ array(
41
+ 'confirm' => esc_html__( 'This will reset all fonts set by this plugin to their defaults. This action can not be reversed.', 'olympus-google-fonts' ),
42
+ 'nonce' => wp_create_nonce( 'ogf_reset' ),
43
+ )
44
+ );
45
+ }
46
+
47
+ /**
48
+ * Store a reference to `WP_Customize_Manager` instance
49
+ *
50
+ * @param Object $wp_customize Global $wp_customize object.
51
+ */
52
+ public function customize_register( $wp_customize ) {
53
+ $this->wp_customize = $wp_customize;
54
+
55
+ $wp_customize->add_control(
56
+ 'ogf_reset_fonts',
57
+ array(
58
+ 'type' => 'button',
59
+ 'settings' => array(),
60
+ 'priority' => 100,
61
+ 'section' => 'ogf_debugging',
62
+ 'input_attrs' => array(
63
+ 'value' => __( 'Reset All Fonts', 'olympus-google-fonts' ),
64
+ 'class' => 'button button-link-delete',
65
+ ),
66
+ )
67
+ );
68
+
69
+ }
70
+
71
+ /**
72
+ * The reset AJAX request handler.
73
+ */
74
+ public function ajax_customizer_reset() {
75
+ if ( ! $this->wp_customize->is_preview() ) {
76
+ wp_send_json_error( 'not_preview' );
77
+ }
78
+
79
+ if ( ! check_ajax_referer( 'ogf_reset', 'security' ) ) {
80
+ wp_send_json_error( 'invalid_nonce' );
81
+ }
82
+
83
+ $this->reset_customizer();
84
+
85
+ wp_send_json_success();
86
+ }
87
+
88
+ /**
89
+ * Perform the reset.
90
+ */
91
+ public function reset_customizer() {
92
+ $settings = ogf_get_elements();
93
+ foreach ( $settings as $key => $value ) {
94
+ set_theme_mod( $key . '_font', null );
95
+ set_theme_mod( $key . '_font_weight', null );
96
+ set_theme_mod( $key . '_font_style', null );
97
+ set_theme_mod( $key . '_font_size', null );
98
+ set_theme_mod( $key . '_font_color', null );
99
+ set_theme_mod( $key . '_line_height', null );
100
+ }
101
+ }
102
+ }
103
+ endif;
104
+
105
+ /*
106
+ * Instantiate the OGF_Reset class.
107
+ */
108
+ new OGF_Reset();
trunk/includes/class-ogf-welcome.php ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Welcome Notice Class.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ if ( ! class_exists( 'OGF_Welcome' ) ) :
11
+ /**
12
+ * The welcome.
13
+ */
14
+ class OGF_Welcome {
15
+
16
+ /**
17
+ * Slug.
18
+ *
19
+ * @var string $slug
20
+ */
21
+ private $slug;
22
+
23
+ /**
24
+ * Message.
25
+ *
26
+ * @var string $message
27
+ */
28
+ private $message;
29
+
30
+ /**
31
+ * Type.
32
+ *
33
+ * @var string $type
34
+ */
35
+ private $type;
36
+
37
+ /**
38
+ * Class constructor.
39
+ *
40
+ * @param string $slug Slug.
41
+ * @param string $message Message.
42
+ * @param string $type Type.
43
+ */
44
+ public function __construct( $slug, $message, $type = 'success' ) {
45
+ $this->slug = $slug;
46
+ $this->message = $message;
47
+ $this->type = $type;
48
+
49
+ // Add actions.
50
+ add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
51
+ add_action( 'wp_ajax_ogf_dismiss_notice', array( $this, 'dismiss_notice' ) );
52
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
53
+
54
+ }
55
+
56
+ /**
57
+ * Enqeue the styles and scripts.
58
+ */
59
+ public function enqueue() {
60
+
61
+ wp_enqueue_script( 'ogf-dismiss-welcome', esc_url( OGF_DIR_URL . 'assets/js/dismiss.js' ), 'jquery', OGF_VERSION, false );
62
+
63
+ }
64
+
65
+ /**
66
+ * AJAX handler to store the state of dismissible notices.
67
+ */
68
+ public function dismiss_notice() {
69
+
70
+ if ( isset( $_POST['type'] ) ) {
71
+ // Pick up the notice "type" - passed via jQuery (the "data-notice" attribute on the notice).
72
+ $type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
73
+ // Store it in the options table.
74
+ update_option( 'dismissed-' . $type, true );
75
+ }
76
+
77
+ }
78
+
79
+ /**
80
+ * Display the admin notice.
81
+ */
82
+ public function display_admin_notice() {
83
+
84
+ if ( get_option( 'dismissed-' . $this->slug, false ) ) {
85
+ return;
86
+ }
87
+ ?>
88
+
89
+ <div class="notice notice-<?php echo esc_attr( $this->type ); ?> is-dismissible notice-dismiss-dc" data-notice="<?php echo esc_attr( $this->slug ); ?>">
90
+ <p>
91
+ <?php
92
+ echo $this->message; // WPCS: XSS ok.
93
+ ?>
94
+ </p>
95
+ </div>
96
+ <?php
97
+ }
98
+
99
+ }
100
+ endif;
101
+
102
+ $message = sprintf(
103
+ // translators: %s Link to Google Fonts customizer panel.
104
+ __( 'Thank you for installing <strong>Google Fonts for WordPress</strong>! Configure your fonts here: <a href="%s">WordPress Customizer</a>', 'olympus-google-fonts' ),
105
+ esc_url( admin_url( '/customize.php?autofocus[panel]=ogf_google_fonts' ) )
106
+ );
107
+
108
+ /*
109
+ * Instantiate the OGF_Welcome class.
110
+ */
111
+ new OGF_Welcome( 'ogf-welcome', $message, 'success' );
trunk/includes/customizer/controls/class-ogf-customize-multiple-checkbox-control.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Multiple Checkbox Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ // Exit if accessed directly.
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+ /**
15
+ * Multi check control
16
+ */
17
+ class OGF_Customize_Multiple_Checkbox_Control extends WP_Customize_Control {
18
+ /**
19
+ * The control type.
20
+ *
21
+ * @var string
22
+ */
23
+ public $type = 'multiple-checkbox';
24
+ /**
25
+ * Enqueue control related scripts/styles.
26
+ *
27
+ * @access public
28
+ */
29
+ public function enqueue() {
30
+ wp_enqueue_script( 'ogf-multicheck', OGF_DIR_URL . 'assets/js/multiple-checkbox.js', array( 'jquery' ), OGF_VERSION, true );
31
+ }
32
+ /**
33
+ * Refresh the parameters passed to the JavaScript via JSON.
34
+ *
35
+ * @see WP_Customize_Control::to_json()
36
+ */
37
+ public function to_json() {
38
+ parent::to_json();
39
+ if ( isset( $this->default ) ) {
40
+ $this->json['default'] = $this->default;
41
+ } else {
42
+ $this->json['default'] = $this->setting->default;
43
+ }
44
+ $this->json['value'] = $this->value();
45
+ $this->json['choices'] = $this->choices;
46
+ $this->json['link'] = $this->get_link();
47
+ $this->json['id'] = $this->id;
48
+ $this->json['inputAttrs'] = '';
49
+ foreach ( $this->input_attrs as $attr => $value ) {
50
+ $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
51
+ }
52
+ }
53
+ /**
54
+ * An Underscore (JS) template for this control's content (but not its container).
55
+ *
56
+ * Class variables for this control class are available in the `data` JS object;
57
+ * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
58
+ *
59
+ * @see WP_Customize_Control::print_template()
60
+ */
61
+ protected function content_template() {
62
+ ?>
63
+ <# if ( ! data.choices ) { return; } #>
64
+
65
+ <# if ( data.label ) { #>
66
+ <span class="customize-control-title">{{ data.label }}</span>
67
+ <# } #>
68
+
69
+ <# if ( data.description ) { #>
70
+ <span class="description customize-control-description">{{{ data.description }}}</span>
71
+ <# } #>
72
+
73
+ <ul>
74
+ <# for ( key in data.choices ) { #>
75
+ <li>
76
+ <label>
77
+ <input {{{ data.inputAttrs }}} type="checkbox" value="{{ key }}"
78
+ <# if ( _.contains( data.value, key ) ) { #> checked<# } #>
79
+ />
80
+ {{ data.choices[ key ] }}
81
+ </label>
82
+ </li>
83
+ <# } #>
84
+ </ul>
85
+ <?php
86
+ }
87
+ }
trunk/includes/customizer/controls/class-ogf-customize-multiple-fonts-control.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fonts Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Fonts control class.
12
+ */
13
+ class OGF_Customize_Multiple_Fonts_Control extends WP_Customize_Control {
14
+
15
+ /**
16
+ * The type of customize control being rendered.
17
+ *
18
+ * @var string
19
+ */
20
+ public $type = 'typography-multiselect';
21
+
22
+ /**
23
+ * Enqueue scripts/styles for the color picker.
24
+ */
25
+ public function enqueue() {
26
+ wp_enqueue_script( 'chosen', esc_url( OGF_DIR_URL . 'assets/js/chosen.min.js' ), array( 'jquery' ), OGF_VERSION, true );
27
+ }
28
+
29
+ /**
30
+ * Add custom parameters to pass to the JS via JSON.
31
+ */
32
+ public function to_json() {
33
+ parent::to_json();
34
+ // The setting value.
35
+ $this->json['id'] = $this->id;
36
+ $this->json['value'] = $this->value();
37
+ $this->json['link'] = $this->get_link();
38
+ }
39
+
40
+ /**
41
+ * Underscore JS template to handle the control's output.
42
+ */
43
+ public function content_template() {
44
+ ?>
45
+ <# if ( data.label ) { #>
46
+ <span class="customize-control-title">{{ data.label }}</span>
47
+ <# } #>
48
+
49
+ <# if ( data.description ) { #>
50
+ <span class="description customize-control-description">{{{ data.description }}}</span>
51
+ <# } #>
52
+
53
+ <# if ( typeof ogf_font_array != 'undefined' ) { #>
54
+ <select data-placeholder="Choose some fonts..." multiple class="ogf-select" {{{ data.link }}}>
55
+ <# _.each( ogf_font_array, function( font_data, font_id ) { #>
56
+ <option value="{{ font_id }}">{{ font_data.family }}</option>
57
+ <# } ) #>
58
+ </select>
59
+ <# } #>
60
+
61
+ <?php
62
+ }
63
+
64
+ }
trunk/includes/customizer/controls/class-ogf-customize-panel.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Customize Repeater Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ // Exit if accessed directly.
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * Extend the core panel Class.
17
+ */
18
+ class OGF_Customize_Panel extends WP_Customize_Panel {
19
+
20
+ /**
21
+ * The parent panel ID.
22
+ *
23
+ * @var string
24
+ */
25
+ public $panel;
26
+
27
+ /**
28
+ * Type of this panel.
29
+ *
30
+ * @var string
31
+ */
32
+ public $type = 'ogf_panel';
33
+
34
+ /**
35
+ * Gather the parameters passed to client JavaScript via JSON.
36
+ */
37
+ public function json() {
38
+ $array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'type', 'panel' ) );
39
+ $array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) );
40
+ $array['content'] = $this->get_content();
41
+ $array['active'] = $this->active();
42
+ $array['instanceNumber'] = $this->instance_number;
43
+ return $array;
44
+ }
45
+ }
trunk/includes/customizer/controls/class-ogf-customize-repeater-control.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Customize Repeater Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ // Exit if accessed directly.
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * Repeater control
17
+ */
18
+ class OGF_Customize_Repeater_Control extends WP_Customize_Control {
19
+
20
+ /**
21
+ * The type of customize control being rendered.
22
+ *
23
+ * @var string
24
+ */
25
+ public $type = 'ogf-repeater';
26
+
27
+ /**
28
+ * Enqueue scripts/styles for the control.
29
+ */
30
+ public function enqueue() {
31
+ wp_enqueue_script( 'customizer-repeater-script', OGF_DIR_URL . 'assets/js/customizer-repeater.js', array( 'jquery', 'jquery-ui-draggable', 'wp-color-picker' ), OGF_VERSION, true );
32
+ $custom_selectors_url = esc_url( admin_url( '/customize.php?autofocus[section]=ogf_custom' ) );
33
+ wp_localize_script( 'customizer-repeater-script', 'ogf_custom_selectors_url', $custom_selectors_url );
34
+
35
+ }
36
+
37
+ /**
38
+ * Render the control.
39
+ */
40
+ public function render_content() {
41
+
42
+ /*Get default options*/
43
+ $default = json_decode( $this->setting->default );
44
+ /*Get values (json format)*/
45
+ $values = $this->value();
46
+ /*Decode values*/
47
+ $json = json_decode( $values );
48
+ if ( ! is_array( $json ) ) {
49
+ $json = array( $values );
50
+ } ?>
51
+
52
+ <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
53
+ <div class="customizer-repeater-general-control-repeater">
54
+ <?php
55
+ if ( ( 1 === count( $json ) && '' === $json[0] ) || empty( $json ) ) {
56
+ if ( ! empty( $default ) ) {
57
+ $this->iterate_array( $default );
58
+ ?>
59
+ <input type="hidden"
60
+ id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-colector" <?php esc_attr( $this->link() ); ?>
61
+ class="customizer-repeater-colector"
62
+ value="<?php echo esc_textarea( wp_json_encode( $default ) ); ?>"/>
63
+ <?php
64
+ } else {
65
+ $this->iterate_array();
66
+ ?>
67
+ <input type="hidden"
68
+ id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-colector" <?php esc_attr( $this->link() ); ?>
69
+ class="customizer-repeater-colector"/>
70
+ <?php
71
+ }
72
+ } else {
73
+ $this->iterate_array( $json );
74
+ ?>
75
+ <input type="hidden" id="customizer-repeater-<?php echo esc_attr( $this->id ); ?>-colector" <?php esc_attr( $this->link() ); ?>
76
+ class="customizer-repeater-colector" value="<?php echo esc_textarea( $this->value() ); ?>"/>
77
+ <?php
78
+ }
79
+ ?>
80
+ </div>
81
+ <div class="ogf_custom_selectors_actions clear">
82
+ <button type="button" class="button add_field customizer-repeater-new-field">
83
+ <?php echo esc_html__( 'Add New', 'olympus-google-fonts' ); ?>
84
+ </button>
85
+ <button type="button" class="button button-primary ogf_save_elements_button">
86
+ <?php echo esc_html__( 'Save Elements', 'olympus-google-fonts' ); ?>
87
+ </button>
88
+ </div>
89
+ <?php
90
+ }
91
+
92
+ /**
93
+ * Iterate through the array of values.
94
+ *
95
+ * @param array $array The array.
96
+ */
97
+ private function iterate_array( $array = array() ) {
98
+ /*Counter that helps checking if the box is first and should have the delete button disabled*/
99
+ $count = 0;
100
+ if ( ! empty( $array ) ) {
101
+ foreach ( $array as $icon ) {
102
+ ?>
103
+ <div class="customizer-repeater-general-control-repeater-container">
104
+ <?php $this->input_control( $icon, $count ); ?>
105
+ </div>
106
+
107
+ <?php
108
+ $count++;
109
+ }
110
+ } else {
111
+ ?>
112
+ <div class="customizer-repeater-general-control-repeater-container">
113
+ <?php $this->input_control(); ?>
114
+ </div>
115
+ <?php
116
+ }
117
+ }
118
+ /**
119
+ * Input Control
120
+ *
121
+ * @param object $values Values for the controls.
122
+ * @param string $count Count how many controls have been displayed so far.
123
+ */
124
+ private function input_control( $values = '', $count = 0 ) {
125
+
126
+ $label = ( isset( $values->label ) ? $values->label : '' );
127
+ $description = ( isset( $values->description ) ? $values->description : '' );
128
+ $selectors = ( isset( $values->selectors ) ? $values->selectors : '' );
129
+ $display = ( 0 === $count ? 'none' : 'block' );
130
+ ?>
131
+ <ul class="repeater-item clear">
132
+ <li class="customize-control customize-control-text">
133
+ <label for="customizer-repeater-label-control" class="customize-control-title">
134
+ <?php esc_html_e( 'Label', 'olympus-google-fonts' ); ?>
135
+ </label>
136
+ <input
137
+ type="text"
138
+ value="<?php echo esc_attr( $label ); ?>"
139
+ class="customizer-repeater-control customizer-repeater-label-control"
140
+ placeholder="<?php esc_html_e( 'Label', 'olympus-google-fonts' ); ?>"
141
+ />
142
+ </li>
143
+ <li class="customize-control customize-control-text">
144
+ <label for="customizer-repeater-description-control" class="customize-control-title">
145
+ <?php esc_html_e( 'Description', 'olympus-google-fonts' ); ?>
146
+ </label>
147
+ <input
148
+ type="text"
149
+ value="<?php echo esc_attr( $description ); ?>"
150
+ class="customizer-repeater-control customizer-repeater-description-control"
151
+ placeholder="<?php esc_html_e( 'Description', 'olympus-google-fonts' ); ?>"
152
+ />
153
+ </li>
154
+ <li class="customize-control customize-control-text">
155
+ <label for="customizer-repeater-selector-control" class="customize-control-title">
156
+ <?php esc_html_e( 'Selectors', 'olympus-google-fonts' ); ?>
157
+ </label>
158
+ <input
159
+ type="text"
160
+ value="<?php echo esc_attr( $selectors ); ?>"
161
+ class="customizer-repeater-control customizer-repeater-selectors-control"
162
+ placeholder="<?php esc_html_e( 'Add your selectors...', 'olympus-google-fonts' ); ?>"
163
+ />
164
+ </li>
165
+ <button type="button" id="ogf-repeater-control-remove-field" class="button" style="display: <?php echo esc_attr( $display ); ?>">
166
+ <?php esc_html_e( 'Delete field', 'olympus-google-fonts' ); ?>
167
+ </button>
168
+ </ul>
169
+ <?php
170
+ }
171
+
172
+ }
trunk/includes/customizer/controls/class-ogf-customize-typography-control.php ADDED
@@ -0,0 +1,278 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Typography Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Typography control class.
12
+ */
13
+ class OGF_Customize_Typography_Control extends WP_Customize_Control {
14
+
15
+ /**
16
+ * The type of customize control being rendered.
17
+ *
18
+ * @var string
19
+ */
20
+ public $type = 'typography';
21
+
22
+ /**
23
+ * Array
24
+ *
25
+ * @var string
26
+ */
27
+ public $l10n = array();
28
+
29
+ /**
30
+ * Set up our control.
31
+ *
32
+ * @param object $manager Customizer manager.
33
+ * @param string $id Control ID.
34
+ * @param array $args Arguments to override class property defaults.
35
+ */
36
+ public function __construct( $manager, $id, $args = array() ) {
37
+ // Let the parent class do its thing.
38
+ parent::__construct( $manager, $id, $args );
39
+ // Make sure we have labels.
40
+ $this->l10n = wp_parse_args(
41
+ $this->l10n,
42
+ array(
43
+ 'family' => esc_html__( 'Font Family', 'olympus-google-fonts' ),
44
+ 'weight' => esc_html__( 'Font Weight', 'olympus-google-fonts' ),
45
+ 'style' => esc_html__( 'Font Style', 'olympus-google-fonts' ),
46
+ 'size' => esc_html__( 'Font Size (px)', 'olympus-google-fonts' ),
47
+ 'line_height' => esc_html__( 'Line Height', 'olympus-google-fonts' ),
48
+ 'color' => esc_html__( 'Color', 'olympus-google-fonts' ),
49
+ )
50
+ );
51
+
52
+ }
53
+
54
+ /**
55
+ * Enqueue scripts/styles for the color picker.
56
+ */
57
+ public function enqueue() {
58
+ wp_enqueue_script( 'wp-color-picker' );
59
+ wp_enqueue_style( 'wp-color-picker' );
60
+ wp_enqueue_script( 'chosen', esc_url( OGF_DIR_URL . 'assets/js/chosen.min.js' ), array( 'jquery' ), OGF_VERSION, true );
61
+ }
62
+
63
+ /**
64
+ * Add custom parameters to pass to the JS via JSON.
65
+ */
66
+ public function to_json() {
67
+ parent::to_json();
68
+ // Loop through each of the settings and set up the data for it.
69
+ foreach ( $this->settings as $setting_key => $setting_id ) {
70
+ $this->json[ $setting_key ] = array(
71
+ 'link' => $this->get_link( $setting_key ),
72
+ 'value' => $this->value( $setting_key ),
73
+ 'label' => isset( $this->l10n[ $setting_key ] ) ? $this->l10n[ $setting_key ] : '',
74
+ );
75
+
76
+ if ( 'weight' === $setting_key ) {
77
+ $this->json[ $setting_key ]['choices'] = $this->get_font_weight_choices( $this->value( 'family' ) );
78
+ } elseif ( 'style' === $setting_key ) {
79
+ $this->json[ $setting_key ]['choices'] = $this->get_font_style_choices();
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * Underscore JS template to handle the control's output.
85
+ */
86
+ public function content_template() {
87
+ ?>
88
+
89
+ <# if ( data.label ) { #>
90
+ <span class="customize-control-title">{{ data.label }}</span>
91
+ <# } #>
92
+
93
+ <# if ( data.description ) { #>
94
+ <span class="description customize-control-description">{{{ data.description }}}</span>
95
+ <# } #>
96
+
97
+ <ul>
98
+
99
+ <# if ( data.family && typeof ogf_font_array != 'undefined' ) { #>
100
+
101
+ <li class="typography-font-family">
102
+
103
+ <# if ( data.family.label ) { #>
104
+ <span class="customize-control-title">{{ data.family.label }}</span>
105
+ <# } #>
106
+
107
+ <select class="ogf-select" {{{ data.family.link }}}>
108
+
109
+ <option value="default"><?php esc_html_e( 'Default Font', 'olympus-google-fonts' ); ?></option>
110
+ <option disabled><?php esc_html_e( '- System Fonts -', 'olympus-google-fonts' ); ?></option>
111
+ <# _.each( ogf_system_fonts, function( font_data, font_id ) { #>
112
+ <option value="sf-{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.label }}</option>
113
+ <# } ) #>
114
+
115
+ <option disabled><?php esc_html_e( '- Google Fonts -', 'olympus-google-fonts' ); ?></option>
116
+
117
+ <# _.each( ogf_font_array, function( font_data, font_id ) { #>
118
+ <option value="{{ font_id }}" <# if ( font_id === data.family.value ) { #> selected="selected" <# } #>>{{ font_data.family }}</option>
119
+ <# } ) #>
120
+
121
+ </select>
122
+
123
+ <button type="button" class="advanced-button">
124
+ <span class="screen-reader-text"><?php esc_html_e( 'Advanced', 'olympus-google-fonts' ); ?></span>
125
+ </button>
126
+ </li>
127
+ <# } #>
128
+
129
+
130
+ <div class="advanced-settings-wrapper">
131
+
132
+ <# if ( data.weight && data.weight.choices ) { #>
133
+
134
+ <li class="typography-font-weight">
135
+
136
+ <# if ( data.weight.label ) { #>
137
+ <span class="customize-control-title">{{ data.weight.label }}</span>
138
+ <# } #>
139
+
140
+ <select {{{ data.weight.link }}}>
141
+
142
+ <# _.each( data.weight.choices, function( label, choice ) { #>
143
+
144
+ <option value="{{ choice }}" <# if ( choice === data.weight.value ) { #> selected="selected" <# } #>>{{ label }}</option>
145
+
146
+ <# } ) #>
147
+
148
+ </select>
149
+ </li>
150
+ <# } #>
151
+
152
+ <# if ( data.style && data.style.choices ) { #>
153
+
154
+ <li class="typography-font-style">
155
+
156
+ <# if ( data.style.label ) { #>
157
+ <span class="customize-control-title">{{ data.style.label }}</span>
158
+ <# } #>
159
+
160
+ <select {{{ data.style.link }}}>
161
+
162
+ <# _.each( data.style.choices, function( label, choice ) { #>
163
+
164
+ <option value="{{ choice }}" <# if ( choice === data.style.value ) { #> selected="selected" <# } #>>{{ label }}</option>
165
+
166
+ <# } ) #>
167
+
168
+ </select>
169
+ </li>
170
+ <# } #>
171
+
172
+ <# if ( data.size ) { #>
173
+
174
+ <li class="typography-font-size">
175
+
176
+ <div class="slider-custom-control">
177
+
178
+ <# if ( data.size.label ) { #>
179
+ <span class="customize-control-title">{{ data.size.label }}</span>
180
+ <# } #>
181
+ <span class="slider-reset dashicons dashicons-image-rotate" slider-reset-value="{{ data.size.value }}"></span>
182
+
183
+ <div class="slider" slider-max-value="72" slider-step-value="1"></div>
184
+ <input class="customize-control-slider-value" {{{ data.size.link }}} type="number" value="{{ data.size.value }}">
185
+
186
+ </div>
187
+
188
+ </li>
189
+ <# } #>
190
+
191
+ <# if ( data.line_height ) { #>
192
+
193
+ <li class="typography-line-height">
194
+
195
+ <div class="slider-custom-control">
196
+
197
+ <# if ( data.line_height.label ) { #>
198
+ <span class="customize-control-title">{{ data.line_height.label }}</span>
199
+ <# } #>
200
+ <span class="slider-reset dashicons dashicons-image-rotate" slider-reset-value="{{ data.line_height.value }}"></span>
201
+
202
+ <div class="slider" slider-max-value="3" slider-step-value=".1"></div>
203
+ <input class="customize-control-slider-value" {{{ data.line_height.link }}} type="number" value="{{ data.line_height.value }}">
204
+
205
+ </div>
206
+
207
+ </li>
208
+ <# } #>
209
+
210
+ <# if ( data.color ) { #>
211
+
212
+ <li class="typography-font-color">
213
+
214
+ <# if ( data.color.label ) { #>
215
+ <span class="customize-control-title">{{ data.color.label }}</span>
216
+ <# } #>
217
+
218
+ <input class="color-picker-hex" type="text" maxlength="7" {{{ data.color.link }}} value="{{ data.color.value }}" />
219
+
220
+ </li>
221
+ <# } #>
222
+
223
+ </div>
224
+
225
+ </ul>
226
+ <?php
227
+ }
228
+
229
+ /**
230
+ * Returns the available font weights.
231
+ *
232
+ * @param string $font User's font choice.
233
+ */
234
+ public function get_font_weight_choices( $font ) {
235
+
236
+ if ( 'default' === $font ) {
237
+ return array(
238
+ '0' => esc_html__( '- Default -', 'olympus-google-fonts' ),
239
+ '100' => esc_html__( 'Thin', 'olympus-google-fonts' ),
240
+ '200' => esc_html__( 'Extra Light', 'olympus-google-fonts' ),
241
+ '300' => esc_html__( 'Light', 'olympus-google-fonts' ),
242
+ '400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
243
+ '500' => esc_html__( 'Medium', 'olympus-google-fonts' ),
244
+ '600' => esc_html__( 'Semi Bold', 'olympus-google-fonts' ),
245
+ '700' => esc_html__( 'Bold', 'olympus-google-fonts' ),
246
+ '800' => esc_html__( 'Extra Bold', 'olympus-google-fonts' ),
247
+ '900' => esc_html__( 'Ultra Bold', 'olympus-google-fonts' ),
248
+ );
249
+ }
250
+
251
+ if ( ogf_is_system_font( $font ) ) {
252
+ return array(
253
+ '0' => esc_html__( '- Default -', 'olympus-google-fonts' ),
254
+ '400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
255
+ '700' => esc_html__( 'Bold', 'olympus-google-fonts' ),
256
+ );
257
+ }
258
+
259
+ $fonts = ogf_fonts_array();
260
+
261
+ $variants = $fonts[ $font ]['variants'];
262
+
263
+ return $variants;
264
+ }
265
+
266
+ /**
267
+ * Returns the available font styles.
268
+ */
269
+ public function get_font_style_choices() {
270
+ return array(
271
+ 'default' => esc_html__( '- Default -', 'olympus-google-fonts' ),
272
+ 'normal' => esc_html__( 'Normal', 'olympus-google-fonts' ),
273
+ 'italic' => esc_html__( 'Italic', 'olympus-google-fonts' ),
274
+ 'oblique' => esc_html__( 'Oblique', 'olympus-google-fonts' ),
275
+ );
276
+ }
277
+
278
+ }
trunk/includes/customizer/controls/class-ogf-customize-upsell-control.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Upsell Custom Control
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ // Exit if accessed directly.
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * Upsell control
17
+ */
18
+ class OGF_Customize_Upsell_Control extends WP_Customize_Control {
19
+
20
+ /**
21
+ * The control type.
22
+ *
23
+ * @access public
24
+ * @var string
25
+ */
26
+ public $type = 'upsell';
27
+
28
+ /**
29
+ * Render the control's content.
30
+ *
31
+ * Allows the content to be overriden without having to rewrite the wrapper.
32
+ */
33
+ public function render_content() { ?>
34
+ <div class="ogf-upsell">
35
+ <h2 class="upsell__title">Upgrade to Google Fonts Pro</h2>
36
+ <ul>
37
+ <li>✅ Unlock Font Size & Color</li>
38
+ <li>📦 Host Fonts Locally</li>
39
+ <li>⚡️ Optimized Font Loading</li>
40
+ <li>🧙‍ Custom Elements</li>
41
+ </ul>
42
+ <a class="upsell__button button button-primary" href="https://fontsplugin.com/pro-upgrade/?utm_source=customizer&utm_campaign=<?php echo esc_attr( $this->section ); ?>" target="_blank">Learn More</a>
43
+ </div>
44
+ <?php
45
+ }
46
+
47
+ }
trunk/includes/customizer/output-css.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Output the Google Fonts CSS.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Output the font CSS to wp_head.
12
+ */
13
+ function ogf_output_css() {
14
+ ?>
15
+ <!-- Fonts Plugin CSS - https://fontsplugin.com/ -->
16
+ <style>
17
+ <?php
18
+
19
+ do_action( 'ogf_inline_styles' );
20
+
21
+ foreach ( ogf_get_elements() as $id => $values ) {
22
+ ogf_generate_css( $values['selectors'], $id );
23
+ }
24
+ foreach ( ogf_get_custom_elements() as $id => $values ) {
25
+ ogf_generate_css( $values['selectors'], $id );
26
+ }
27
+ ?>
28
+ </style>
29
+ <!-- Fonts Plugin CSS -->
30
+ <?php
31
+ }
32
+
33
+ // Output custom CSS to live site.
34
+ add_action( 'wp_head', 'ogf_output_css', 1000 );
35
+
36
+ /**
37
+ * Helper function to build the CSS styles.
38
+ *
39
+ * @param string $selector The CSS selector to apply the styles to.
40
+ * @param string $option_name The option name to pull from the database.
41
+ */
42
+ function ogf_generate_css( $selector, $option_name ) {
43
+
44
+ $family = get_theme_mod( $option_name . '_font', false );
45
+ $font_size = get_theme_mod( $option_name . '_font_size', false );
46
+ $line_height = get_theme_mod( $option_name . '_line_height', false );
47
+ $weight = get_theme_mod( $option_name . '_font_weight', false );
48
+ $style = get_theme_mod( $option_name . '_font_style', false );
49
+ $color = get_theme_mod( $option_name . '_font_color', false );
50
+
51
+ $return = '';
52
+
53
+ if ( ( $family !== 'default' && $family ) ||
54
+ ( $line_height !== '0' && $line_height ) ||
55
+ ( $weight !== '0' && $weight ) ||
56
+ ( $style !== 'default' && $style ) ||
57
+ $font_size ||
58
+ $color ) {
59
+
60
+ $return .= $selector . ' {' . PHP_EOL;
61
+
62
+ // Return font-family CSS.
63
+ if ( false !== $family && 'default' !== $family ) {
64
+
65
+ $stack = ogf_build_font_stack( $family );
66
+
67
+ if ( ! empty( $stack ) ) {
68
+ $return .= sprintf(
69
+ 'font-family: %s;' . PHP_EOL,
70
+ $stack . ogf_is_forced()
71
+ );
72
+ }
73
+ }
74
+
75
+ // Return font-size CSS.
76
+ if ( $font_size ) {
77
+ $return .= sprintf(
78
+ 'font-size: %s;' . PHP_EOL,
79
+ floatval( $font_size ) . 'px' . ogf_is_forced()
80
+ );
81
+ }
82
+
83
+ // Return font line-height CSS.
84
+ if ( $line_height && '0' !== $line_height ) {
85
+ $return .= sprintf(
86
+ 'line-height: %s;' . PHP_EOL,
87
+ floatval( $line_height ) . ogf_is_forced()
88
+ );
89
+ }
90
+
91
+ // Return font-style CSS.
92
+ if ( $style && 'default' !== $style ) {
93
+ $return .= sprintf(
94
+ 'font-style: %s;' . PHP_EOL,
95
+ esc_attr( $style ) . ogf_is_forced()
96
+ );
97
+ }
98
+
99
+ // Return font-weight CSS.
100
+ if ( $weight && '0' !== $weight ) {
101
+ $return .= sprintf(
102
+ 'font-weight: %s;' . PHP_EOL,
103
+ absint( $weight ) . ogf_is_forced()
104
+ );
105
+ }
106
+
107
+ // Return font-color CSS.
108
+ if ( $color ) {
109
+ $return .= sprintf(
110
+ 'color: %s;' . PHP_EOL,
111
+ esc_attr( $color ) . ogf_is_forced()
112
+ );
113
+ }
114
+
115
+ $return .= ' }' . PHP_EOL;
116
+
117
+ echo wp_kses_post( $return );
118
+
119
+ }
120
+
121
+ }
122
+
123
+ /**
124
+ * Build a font stack using the users font choice.
125
+ *
126
+ * @param string $font_id The users font choice.
127
+ * @return string The built font stack.
128
+ */
129
+ function ogf_build_font_stack( $font_id ) {
130
+
131
+ $google_fonts = ogf_fonts_array();
132
+
133
+ if ( array_key_exists( $font_id, $google_fonts ) ) {
134
+
135
+ $stack = '"' . $google_fonts[ $font_id ]['family'] . '"';
136
+
137
+ return $stack;
138
+
139
+ }
140
+
141
+ $system_fonts = ogf_system_fonts();
142
+
143
+ $font_id = str_replace( 'sf-', '', $font_id );
144
+
145
+ if ( array_key_exists( $font_id, $system_fonts ) ) {
146
+
147
+ return $system_fonts[ $font_id ]['stack'];
148
+
149
+ }
150
+
151
+ }
152
+
153
+ /**
154
+ * Check if the styles should be forced.
155
+ */
156
+ function ogf_is_forced() {
157
+
158
+ if ( 1 === (int) get_theme_mod( 'ogf_force_styles' ) ) {
159
+ return ' !important';
160
+ }
161
+
162
+ }
trunk/includes/customizer/panels.php ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Add multi-level panel functionality.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Enqueue customizer JS.
12
+ */
13
+ function ogf_panels_customize_controls_scripts() {
14
+ wp_enqueue_script( 'ogf-panels', OGF_DIR_URL . 'assets/js/panels.js', array(), '1.0', true );
15
+ }
16
+ add_action( 'customize_controls_enqueue_scripts', 'ogf_panels_customize_controls_scripts' );
17
+
18
+ /**
19
+ * Register the multi-level panels.
20
+ *
21
+ * @param object $wp_customize Access to the $wp_customize object.
22
+ */
23
+ function ogf_panels_customize_register( $wp_customize ) {
24
+
25
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-panel.php';
26
+ $wp_customize->register_panel_type( 'OGF_Customize_Panel' );
27
+
28
+ $ogf_panel = new OGF_Customize_Panel(
29
+ $wp_customize,
30
+ 'ogf_google_fonts',
31
+ array(
32
+ 'title' => esc_html__( 'Google Fonts', 'olympus-google-fonts' ),
33
+ 'priority' => 1,
34
+ )
35
+ );
36
+ $wp_customize->add_panel( $ogf_panel );
37
+
38
+ $wp_customize->add_section(
39
+ 'ogf_theme',
40
+ array(
41
+ 'title' => esc_html__( 'Theme Settings', 'olympus-google-fonts' ),
42
+ 'priority' => '1',
43
+ 'panel' => 'ogf_google_fonts',
44
+ )
45
+ );
46
+
47
+ $wp_customize->add_section(
48
+ 'ogf_basic',
49
+ array(
50
+ 'title' => __( 'Basic Settings', 'olympus-google-fonts' ),
51
+ 'priority' => '2',
52
+ 'panel' => 'ogf_google_fonts',
53
+ )
54
+ );
55
+
56
+ $ogf_advanced_panel = new OGF_Customize_Panel(
57
+ $wp_customize,
58
+ 'ogf_advanced',
59
+ array(
60
+ 'title' => __( 'Advanced Settings', 'olympus-google-fonts' ),
61
+ 'priority' => '3',
62
+ 'panel' => 'ogf_google_fonts',
63
+ )
64
+ );
65
+
66
+ $wp_customize->add_panel( $ogf_advanced_panel );
67
+
68
+ $wp_customize->add_section(
69
+ 'ogf_custom',
70
+ array(
71
+ 'title' => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
72
+ 'priority' => '5',
73
+ /* Translators: %s Custom Elements Customizer Panel URL */
74
+ 'description' => sprintf( __( 'Define your Custom Elements here and then customize them under <a href="%s">Advanced Settings &rarr; Custom Elements</a>.', 'olympus-google-fonts' ), esc_url( admin_url( '/customize.php?autofocus[section]=ogf_advanced__custom' ) ) ),
75
+ 'panel' => 'ogf_google_fonts',
76
+ )
77
+ );
78
+
79
+ $wp_customize->add_section(
80
+ 'ogf_font_loading',
81
+ array(
82
+ 'title' => esc_html__( 'Font Loading', 'olympus-google-fonts' ),
83
+ 'priority' => '6',
84
+ 'description' => 'Optimize your site\'s performance by unchecking any font weights you don\'t need.',
85
+ 'panel' => 'ogf_google_fonts',
86
+ )
87
+ );
88
+
89
+ $wp_customize->add_section(
90
+ 'ogf_debugging',
91
+ array(
92
+ 'title' => esc_html__( 'Debugging', 'olympus-google-fonts' ),
93
+ 'priority' => '8',
94
+ 'panel' => 'ogf_google_fonts',
95
+ )
96
+ );
97
+
98
+ $wp_customize->add_section(
99
+ 'ogf_advanced__custom',
100
+ array(
101
+ 'title' => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
102
+ /* Translators: %s Custom Elements Customizer Panel URL */
103
+ 'description' => sprintf( __( 'Custom Elements allow you to apply Google Fonts to any part of your website, they can be setup under <a href="%s">Google Fonts &rarr; Custom Elements</a>.', 'olympus-google-fonts' ), esc_url( admin_url( '/customize.php?autofocus[section]=ogf_custom' ) ) ),
104
+ 'panel' => 'ogf_advanced',
105
+ )
106
+ );
107
+
108
+ $wp_customize->add_section(
109
+ 'ogf_advanced__theme',
110
+ array(
111
+ 'title' => esc_html__( 'Theme Elements', 'olympus-google-fonts' ),
112
+ 'panel' => 'ogf_advanced',
113
+ )
114
+ );
115
+
116
+ $wp_customize->add_section(
117
+ 'ogf_advanced__branding',
118
+ array(
119
+ 'title' => esc_html__( 'Branding', 'olympus-google-fonts' ),
120
+ 'panel' => 'ogf_advanced',
121
+ )
122
+ );
123
+
124
+ $wp_customize->add_section(
125
+ 'ogf_advanced__navigation',
126
+ array(
127
+ 'title' => esc_html__( 'Navigation', 'olympus-google-fonts' ),
128
+ 'panel' => 'ogf_advanced',
129
+ )
130
+ );
131
+
132
+ $wp_customize->add_section(
133
+ 'ogf_advanced__content',
134
+ array(
135
+ 'title' => esc_html__( 'Content', 'olympus-google-fonts' ),
136
+ 'panel' => 'ogf_advanced',
137
+ )
138
+ );
139
+
140
+ $wp_customize->add_section(
141
+ 'ogf_advanced__sidebar',
142
+ array(
143
+ 'title' => esc_html__( 'Sidebar', 'olympus-google-fonts' ),
144
+ 'panel' => 'ogf_advanced',
145
+ )
146
+ );
147
+
148
+ $wp_customize->add_section(
149
+ 'ogf_advanced__footer',
150
+ array(
151
+ 'title' => esc_html__( 'Footer', 'olympus-google-fonts' ),
152
+ 'panel' => 'ogf_advanced',
153
+ )
154
+ );
155
+
156
+ $wp_customize->add_section(
157
+ 'ogf_advanced__css',
158
+ array(
159
+ 'title' => esc_html__( 'Load Fonts Only', 'olympus-google-fonts' ),
160
+ 'panel' => 'ogf_advanced',
161
+ )
162
+ );
163
+
164
+ }
165
+ add_action( 'customize_register', 'ogf_panels_customize_register' );
trunk/includes/customizer/settings.php ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Register the customizer settings.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * An array containing the customizer sections, settings and controls.
12
+ *
13
+ * @param object $wp_customize Access to the $wp_customize object.
14
+ */
15
+ function ogf_customize_register( $wp_customize ) {
16
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-multiple-fonts-control.php';
17
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-typography-control.php';
18
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-repeater-control.php';
19
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-upsell-control.php';
20
+ require OGF_DIR_PATH . 'includes/customizer/controls/class-ogf-customize-multiple-checkbox-control.php';
21
+
22
+ $wp_customize->register_control_type( 'OGF_Customize_Multiple_Fonts_Control' );
23
+ $wp_customize->register_control_type( 'OGF_Customize_Multiple_Checkbox_Control' );
24
+ $wp_customize->register_control_type( 'OGF_Customize_Typography_Control' );
25
+
26
+ $wp_customize->add_setting(
27
+ 'ogf_custom_selectors',
28
+ array(
29
+ 'transport' => 'postMessage',
30
+ )
31
+ );
32
+
33
+ $wp_customize->add_control(
34
+ new OGF_Customize_Repeater_Control(
35
+ $wp_customize,
36
+ 'ogf_custom_selectors',
37
+ array(
38
+ 'label' => esc_html__( 'Custom Elements', 'olympus-google-fonts' ),
39
+ 'section' => 'ogf_custom',
40
+ )
41
+ )
42
+ );
43
+
44
+ $wp_customize->add_setting(
45
+ 'ogf_load_fonts',
46
+ array(
47
+ 'transport' => 'postMessage',
48
+ )
49
+ );
50
+
51
+ $wp_customize->add_control(
52
+ new OGF_Customize_Multiple_Fonts_Control(
53
+ $wp_customize,
54
+ 'ogf_load_fonts',
55
+ array(
56
+ 'label' => esc_html__( 'Load Fonts Only', 'olympus-google-fonts' ),
57
+ 'description' => esc_html__( 'Load fonts but don\'t automatically assign them to an element.', 'olympus-google-fonts' ),
58
+ 'section' => 'ogf_advanced__css',
59
+ )
60
+ )
61
+ );
62
+
63
+ /**
64
+ * Build customizer controls.
65
+ *
66
+ * @param array $elements array of elements to build controls based on.
67
+ */
68
+ function ogf_build_customizer_controls( $elements ) {
69
+
70
+ global $wp_customize;
71
+
72
+ foreach ( $elements as $id => $values ) {
73
+
74
+ $wp_customize->add_setting(
75
+ $id . '_font',
76
+ array(
77
+ 'default' => 'default',
78
+ 'transport' => 'postMessage',
79
+ )
80
+ );
81
+
82
+ $wp_customize->add_setting(
83
+ $id . '_font_weight',
84
+ array(
85
+ 'default' => '0',
86
+ 'transport' => 'postMessage',
87
+ )
88
+ );
89
+
90
+ $wp_customize->add_setting(
91
+ $id . '_font_style',
92
+ array(
93
+ 'default' => 'default',
94
+ 'transport' => 'postMessage',
95
+ )
96
+ );
97
+
98
+ $wp_customize->add_setting(
99
+ $id . '_font_size',
100
+ array(
101
+ 'transport' => 'postMessage',
102
+ )
103
+ );
104
+
105
+ $wp_customize->add_setting(
106
+ $id . '_line_height',
107
+ array(
108
+ 'transport' => 'postMessage',
109
+ )
110
+ );
111
+
112
+ $wp_customize->add_setting(
113
+ $id . '_font_color',
114
+ array(
115
+ 'transport' => 'postMessage',
116
+ )
117
+ );
118
+
119
+ $wp_customize->add_control(
120
+ new OGF_Customize_Typography_Control(
121
+ $wp_customize,
122
+ $id . '_typography',
123
+ array(
124
+ 'label' => esc_attr( $values['label'] ),
125
+ 'description' => esc_attr( $values['description'] ),
126
+ 'section' => esc_attr( $values['section'] ),
127
+ 'settings' => array(
128
+ 'family' => $id . '_font',
129
+ 'weight' => $id . '_font_weight',
130
+ 'style' => $id . '_font_style',
131
+ 'size' => $id . '_font_size',
132
+ 'line_height' => $id . '_line_height',
133
+ 'color' => $id . '_font_color',
134
+ ),
135
+ )
136
+ )
137
+ );
138
+ }
139
+ }
140
+
141
+ ogf_build_customizer_controls( ogf_get_elements() );
142
+ ogf_build_customizer_controls( ogf_get_custom_elements() );
143
+
144
+ $wp_customize->add_setting(
145
+ 'ogf_force_styles',
146
+ array(
147
+ 'default' => '',
148
+ 'transport' => 'refresh',
149
+ 'sanitize_callback' => 'wp_validate_boolean',
150
+ )
151
+ );
152
+
153
+ $wp_customize->add_control(
154
+ 'force_styles',
155
+ array(
156
+ 'label' => esc_html__( 'Force Styles?', 'olympus-google-fonts' ),
157
+ 'section' => 'ogf_debugging',
158
+ 'settings' => 'ogf_force_styles',
159
+ 'type' => 'checkbox',
160
+ 'description' => esc_html__( 'If your choices are not displaying correctly, check this box.', 'olympus-google-fonts' ),
161
+ )
162
+ );
163
+
164
+ $fonts = new OGF_Fonts();
165
+
166
+ $choices = $fonts->choices;
167
+
168
+ // Build the selective font loading controls.
169
+ foreach ( $choices as $font_id ) {
170
+
171
+ if ( ogf_is_system_font( $font_id ) ) {
172
+ return;
173
+ }
174
+
175
+ $weights = $fonts->get_font_weights( $font_id );
176
+ $name = $fonts->get_font_name( $font_id );
177
+ unset( $weights[0] );
178
+ $wp_customize->add_setting(
179
+ $font_id . '_weights',
180
+ array(
181
+ 'default' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', '100i', '200i', '300i', '400i', '500i', '600i', '700i', '800i', '900i' ),
182
+ 'transport' => 'refresh',
183
+ )
184
+ );
185
+
186
+ $input_attrs = array();
187
+
188
+ if ( ! defined( 'OGF_PRO' ) ) {
189
+ $input_attrs = array(
190
+ 'disabled' => false,
191
+ );
192
+ }
193
+
194
+ $wp_customize->add_control(
195
+ new OGF_Customize_Multiple_Checkbox_Control(
196
+ $wp_customize,
197
+ $font_id . '_weights',
198
+ array(
199
+ 'label' => $name,
200
+ 'section' => 'ogf_font_loading',
201
+ 'choices' => $weights,
202
+ 'input_attrs' => $input_attrs,
203
+ )
204
+ )
205
+ );
206
+
207
+ }
208
+
209
+ $upsell_locations = array(
210
+ 'ogf_basic',
211
+ 'ogf_advanced',
212
+ 'ogf_advanced__branding',
213
+ 'ogf_advanced__navigation',
214
+ 'ogf_advanced__content',
215
+ 'ogf_advanced__sidebar',
216
+ 'ogf_advanced__footer',
217
+ 'ogf_font_loading',
218
+ 'ogf_debugging',
219
+ );
220
+
221
+ foreach ( $upsell_locations as $loc ) {
222
+
223
+ if ( defined( 'OGF_PRO' ) ) {
224
+ return;
225
+ }
226
+
227
+ $wp_customize->add_setting( 'ogf_upsell_' . $loc );
228
+
229
+ $wp_customize->add_control(
230
+ new OGF_Customize_Upsell_Control(
231
+ $wp_customize,
232
+ 'ogf_upsell_' . $loc,
233
+ array(
234
+ 'section' => $loc,
235
+ 'priority' => 120,
236
+ )
237
+ )
238
+ );
239
+
240
+ }
241
+
242
+ }
243
+ add_action( 'customize_register', 'ogf_customize_register' );
trunk/includes/functions.php ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper functions.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * An array of user-defined elements that can be customized using the plugin.
12
+ */
13
+ function ogf_get_custom_elements() {
14
+
15
+ $theme_mod = get_theme_mod( 'ogf_custom_selectors', false );
16
+
17
+ if ( ! $theme_mod ) {
18
+ return array();
19
+ }
20
+
21
+ $custom_selectors = json_decode( $theme_mod, true );
22
+
23
+ foreach ( $custom_selectors as &$selector ) {
24
+ $selector['section'] = 'ogf_advanced__custom';
25
+ }
26
+
27
+ return $custom_selectors;
28
+
29
+ }
30
+
31
+ /**
32
+ * An array of elements that can be customized using the plugin.
33
+ */
34
+ function ogf_get_elements() {
35
+
36
+ $elements = array(
37
+ 'ogf_body' => array(
38
+ 'label' => esc_html__( 'Base Typography', 'olympus-google-fonts' ),
39
+ 'description' => esc_html__( 'Select and configure the font for your content.', 'olympus-google-fonts' ),
40
+ 'section' => 'ogf_basic',
41
+ 'selectors' => 'body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer',
42
+ ),
43
+ 'ogf_headings' => array(
44
+ 'label' => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
45
+ 'description' => esc_html__( 'Select and configure the font for your headings.', 'olympus-google-fonts' ),
46
+ 'section' => 'ogf_basic',
47
+ 'selectors' => '#site-title, .site-title, #site-title a, .site-title a, .entry-title, .entry-title a, h1, h2, h3, h4, h5, h6, .widget-title',
48
+ ),
49
+ 'ogf_inputs' => array(
50
+ 'label' => esc_html__( 'Buttons and Inputs Typography', 'olympus-google-fonts' ),
51
+ 'description' => esc_html__( 'Select and configure the font for your input fields and buttons.', 'olympus-google-fonts' ),
52
+ 'section' => 'ogf_basic',
53
+ 'selectors' => 'button, input, select, textarea',
54
+ ),
55
+ 'ogf_site_title' => array(
56
+ 'label' => esc_html__( 'Site Title Typography', 'olympus-google-fonts' ),
57
+ 'description' => esc_html__( 'Select and configure the font for your site title.', 'olympus-google-fonts' ),
58
+ 'section' => 'ogf_advanced__branding',
59
+ 'selectors' => '#site-title, .site-title, #site-title a, .site-title a, #logo, #logo a, .logo, .logo a',
60
+ ),
61
+ 'ogf_site_description' => array(
62
+ 'label' => esc_html__( 'Site Description Typography', 'olympus-google-fonts' ),
63
+ 'description' => esc_html__( 'Select and configure the font for your site description.', 'olympus-google-fonts' ),
64
+ 'section' => 'ogf_advanced__branding',
65
+ 'selectors' => '#site-description, .site-description',
66
+ ),
67
+ 'ogf_site_navigation' => array(
68
+ 'label' => esc_html__( 'Navigation Typography', 'olympus-google-fonts' ),
69
+ 'description' => esc_html__( 'Select and configure the font for your site navigation.', 'olympus-google-fonts' ),
70
+ 'section' => 'ogf_advanced__navigation',
71
+ 'selectors' => '.menu, .page_item a, .menu-item a',
72
+ ),
73
+ 'ogf_post_page_content' => array(
74
+ 'label' => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
75
+ 'description' => esc_html__( 'Select and configure the font for your post and page content.', 'olympus-google-fonts' ),
76
+ 'section' => 'ogf_advanced__content',
77
+ 'selectors' => '.entry-content, .entry-content p, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .excerpt, .excerpt p',
78
+ ),
79
+ 'ogf_post_page_h1' => array(
80
+ 'label' => esc_html__( 'Title and H1 Typography', 'olympus-google-fonts' ),
81
+ 'description' => esc_html__( 'Select and configure the font for your title and H1 headings.', 'olympus-google-fonts' ),
82
+ 'section' => 'ogf_advanced__content',
83
+ 'selectors' => '.entry-title, .entry-title a, .post-title, .post-title a, .page-title, .entry-content h1, #content h1',
84
+ ),
85
+ 'ogf_post_page_h2' => array(
86
+ 'label' => esc_html__( 'H2 Typography', 'olympus-google-fonts' ),
87
+ 'description' => esc_html__( 'Select and configure the font for your H2 headings.', 'olympus-google-fonts' ),
88
+ 'section' => 'ogf_advanced__content',
89
+ 'selectors' => '.entry-content h2, .post-content h2, .page-content h2, #content h2',
90
+ ),
91
+ 'ogf_post_page_h3' => array(
92
+ 'label' => esc_html__( 'H3 Typography', 'olympus-google-fonts' ),
93
+ 'description' => esc_html__( 'Select and configure the font for your H3 headings.', 'olympus-google-fonts' ),
94
+ 'section' => 'ogf_advanced__content',
95
+ 'selectors' => '.entry-content h3, .post-content h3, .page-content h3, #content h3',
96
+ ),
97
+ 'ogf_post_page_h4' => array(
98
+ 'label' => esc_html__( 'H4 Typography', 'olympus-google-fonts' ),
99
+ 'description' => esc_html__( 'Select and configure the font for your H4 headings.', 'olympus-google-fonts' ),
100
+ 'section' => 'ogf_advanced__content',
101
+ 'selectors' => '.entry-content h4, .post-content h4, .page-content h4, #content h4',
102
+ ),
103
+ 'ogf_post_page_h5' => array(
104
+ 'label' => esc_html__( 'H5 Typography', 'olympus-google-fonts' ),
105
+ 'description' => esc_html__( 'Select and configure the font for your H5 headings.', 'olympus-google-fonts' ),
106
+ 'section' => 'ogf_advanced__content',
107
+ 'selectors' => '.entry-content h5, .post-content h5, .page-content h5, #content h5',
108
+ ),
109
+ 'ogf_post_page_h6' => array(
110
+ 'label' => esc_html__( 'H6 Typography', 'olympus-google-fonts' ),
111
+ 'description' => esc_html__( 'Select and configure the font for your H6 headings.', 'olympus-google-fonts' ),
112
+ 'section' => 'ogf_advanced__content',
113
+ 'selectors' => '.entry-content h6, .post-content h6, .page-content h6, #content h6',
114
+ ),
115
+ 'ogf_sidebar_headings' => array(
116
+ 'label' => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
117
+ 'description' => esc_html__( 'Select and configure the font for your sidebar headings.', 'olympus-google-fonts' ),
118
+ 'section' => 'ogf_advanced__sidebar',
119
+ 'selectors' => '.widget-title, .widget-area h1, .widget-area h2, .widget-area h3, .widget-area h4, .widgets-area h5, .widget-area h6',
120
+ ),
121
+ 'ogf_sidebar_content' => array(
122
+ 'label' => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
123
+ 'description' => esc_html__( 'Select and configure the font for your sidebar content.', 'olympus-google-fonts' ),
124
+ 'section' => 'ogf_advanced__sidebar',
125
+ 'selectors' => '.widget-area, .widget, .sidebar, #sidebar',
126
+ ),
127
+ 'ogf_footer_headings' => array(
128
+ 'label' => esc_html__( 'Headings Typography', 'olympus-google-fonts' ),
129
+ 'description' => esc_html__( 'Select and configure the font for your footer headings.', 'olympus-google-fonts' ),
130
+ 'section' => 'ogf_advanced__footer',
131
+ 'selectors' => 'footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
132
+ .footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6
133
+ #footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6',
134
+ ),
135
+ 'ogf_footer_content' => array(
136
+ 'label' => esc_html__( 'Content Typography', 'olympus-google-fonts' ),
137
+ 'description' => esc_html__( 'Select and configure the font for your footer content.', 'olympus-google-fonts' ),
138
+ 'section' => 'ogf_advanced__footer',
139
+ 'selectors' => 'footer, #footer, .footer, .site-footer',
140
+ ),
141
+ );
142
+
143
+ return apply_filters( 'ogf_elements', $elements );
144
+
145
+ }
146
+
147
+ /**
148
+ * Return an array of all available Google Fonts.
149
+ *
150
+ * @return array All Google Fonts.
151
+ */
152
+ function ogf_fonts_array() {
153
+
154
+ $fonts_json = file_get_contents( OGF_DIR_PATH . '/blocks/src/google-fonts/fonts.json' );
155
+
156
+ // Change the object to a multidimensional array.
157
+ $fonts_array = json_decode( $fonts_json, true );
158
+
159
+ // Change the array key to the font's ID.
160
+ foreach ( $fonts_array['items'] as $key => $font ) {
161
+
162
+ $variants_remove = array(
163
+ 'italic',
164
+ '100italic',
165
+ '200italic',
166
+ '300italic',
167
+ '400italic',
168
+ '500italic',
169
+ '600italic',
170
+ '700italic',
171
+ '800italic',
172
+ '900italic',
173
+ );
174
+
175
+ $font['variants'] = array_diff( $font['variants'], $variants_remove );
176
+
177
+ $font['variants'] = str_replace( 'regular', '400', $font['variants'] );
178
+
179
+ $font['variants'] = array_flip( $font['variants'] );
180
+
181
+ $weights = array(
182
+ '100' => esc_html__( 'Thin', 'olympus-google-fonts' ),
183
+ '200' => esc_html__( 'Extra Light', 'olympus-google-fonts' ),
184
+ '300' => esc_html__( 'Light', 'olympus-google-fonts' ),
185
+ '400' => esc_html__( 'Normal', 'olympus-google-fonts' ),
186
+ '500' => esc_html__( 'Medium', 'olympus-google-fonts' ),
187
+ '600' => esc_html__( 'Semi Bold', 'olympus-google-fonts' ),
188
+ '700' => esc_html__( 'Bold', 'olympus-google-fonts' ),
189
+ '800' => esc_html__( 'Extra Bold', 'olympus-google-fonts' ),
190
+ '900' => esc_html__( 'Ultra Bold', 'olympus-google-fonts' ),
191
+ );
192
+
193
+ foreach ( $font['variants'] as $k => $v ) {
194
+ $font['variants'][ $k ] = $weights[ $k ];
195
+ }
196
+
197
+ $font['variants']['0'] = esc_html__( '- Default -', 'olympus-google-fonts' );
198
+
199
+ $fonts_array['items'][ $key ] = $font;
200
+
201
+ }
202
+
203
+ // Change the array key to the font's ID.
204
+ foreach ( $fonts_array['items'] as $font ) {
205
+ $id = trim( strtolower( str_replace( ' ', '-', $font['family'] ) ) );
206
+ $fonts[ $id ] = $font;
207
+ }
208
+
209
+ return $fonts;
210
+ }
211
+
212
+ /**
213
+ * Return a array of system fonts.
214
+ */
215
+ function ogf_system_fonts() {
216
+ $system_fonts = array(
217
+ 'arial' => array(
218
+ 'id' => 'arial',
219
+ 'label' => esc_html__( 'Arial', 'olympus-google-fonts' ),
220
+ 'stack' => 'Arial, Helvetica Neue, Helvetica, sans-serif',
221
+ ),
222
+ 'calibri' => array(
223
+ 'id' => 'calibri',
224
+ 'label' => esc_html__( 'Calibri', 'olympus-google-fonts' ),
225
+ 'stack' => 'Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;',
226
+ ),
227
+ 'consolas' => array(
228
+ 'id' => 'consolas',
229
+ 'label' => esc_html__( 'Consolas', 'olympus-google-fonts' ),
230
+ 'stack' => 'Consolas, monaco, monospace',
231
+ ),
232
+ 'courier-new' => array(
233
+ 'id' => 'courier-new',
234
+ 'label' => esc_html__( 'Courier New', 'olympus-google-fonts' ),
235
+ 'stack' => 'Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace',
236
+ ),
237
+ 'helvetica' => array(
238
+ 'id' => 'helvetica',
239
+ 'label' => esc_html__( 'Helvetica', 'olympus-google-fonts' ),
240
+ 'stack' => 'Helvetica Neue, Helvetica, Arial, sans-serif',
241
+ ),
242
+ 'georgia' => array(
243
+ 'id' => 'georgia',
244
+ 'label' => esc_html__( 'Georgia', 'olympus-google-fonts' ),
245
+ 'stack' => 'Georgia, Times, Times New Roman, serif',
246
+ ),
247
+ 'futura' => array(
248
+ 'id' => 'futura',
249
+ 'label' => esc_html__( 'Futura', 'olympus-google-fonts' ),
250
+ 'stack' => 'Futura, Trebuchet MS, Arial, sans-serif',
251
+ ),
252
+ 'lucida-grande' => array(
253
+ 'id' => 'lucida-grande',
254
+ 'label' => esc_html__( 'Lucida Grande', 'olympus-google-fonts' ),
255
+ 'stack' => 'Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif',
256
+ ),
257
+ 'tahoma' => array(
258
+ 'id' => 'tahoma',
259
+ 'label' => esc_html__( 'Tahoma', 'olympus-google-fonts' ),
260
+ 'stack' => 'Tahoma, Verdana, Segoe, sans-serif',
261
+ ),
262
+ 'times-new-roman' => array(
263
+ 'id' => 'times-new-roman',
264
+ 'label' => esc_html__( 'Times New Roman', 'olympus-google-fonts' ),
265
+ 'stack' => 'TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif',
266
+ ),
267
+ 'trebuchet' => array(
268
+ 'id' => 'trebuchet',
269
+ 'label' => esc_html__( 'Trebuchet MS', 'olympus-google-fonts' ),
270
+ 'stack' => 'Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif',
271
+ ),
272
+ 'palatino' => array(
273
+ 'id' => 'palatino',
274
+ 'label' => esc_html__( 'Palatino', 'olympus-google-fonts' ),
275
+ 'stack' => 'Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif',
276
+ ),
277
+ 'verdana' => array(
278
+ 'id' => 'verdana',
279
+ 'label' => esc_html__( 'Verdana', 'olympus-google-fonts' ),
280
+ 'stack' => 'Verdana, Geneva, sans-serif;',
281
+ ),
282
+ );
283
+
284
+ $filtered_system_fonts = apply_filters( 'ogf_system_fonts', $system_fonts );
285
+
286
+ return $filtered_system_fonts;
287
+
288
+ }
289
+
290
+ /**
291
+ * Check if a font is a system font (not Google Font).
292
+ *
293
+ * @param string $font_id The ID of the font to check.
294
+ */
295
+ function ogf_is_system_font( $font_id ) {
296
+ if ( strpos( $font_id, 'sf-' ) === 0 ) {
297
+ return true;
298
+ }
299
+ return false;
300
+ }
trunk/includes/gutenberg/output-css.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Output the Google Fonts CSS in Gutenberg.
4
+ *
5
+ * @package olympus-google-fonts
6
+ * @copyright Copyright (c) 2019, Fonts Plugin
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ */
9
+
10
+ /**
11
+ * Enqeue the Google Fonts URL.
12
+ */
13
+ function ogf_gutenberg_enqueue_fonts() {
14
+
15
+ $fonts = new OGF_Fonts();
16
+
17
+ if ( $fonts->has_custom_fonts() ) {
18
+ $url = $fonts->build_url();
19
+ wp_enqueue_style( 'olympus-google-fonts', $url, array(), OGF_VERSION );
20
+ }
21
+
22
+ }
23
+ add_action( 'enqueue_block_editor_assets', 'ogf_gutenberg_enqueue_fonts' );
24
+
25
+ /**
26
+ * Output the font CSS to wp_head.
27
+ */
28
+ function ogf_gutenberg_output_css() {
29
+
30
+ // Only load on Gutenberg-enabled pages.
31
+ global $current_screen;
32
+ $current_screen = get_current_screen();
33
+ if ( ! method_exists( $current_screen, 'is_block_editor' ) || ! $current_screen->is_block_editor() ) {
34
+ return;
35
+ }
36
+
37
+ ?>
38
+ <!-- Fonts Plugin Gutenberg CSS - https://fontsplugin.com/ -->
39
+ <style>
40
+ <?php
41
+
42
+ do_action( 'ogf_gutenberg_inline_styles' );
43
+
44
+ $elements = array(
45
+ 'ogf_body' => array(
46
+ 'selectors' => '.editor-styles-wrapper p, .editor-styles-wrapper h3, #editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input',
47
+ ),
48
+ 'ogf_headings' => array(
49
+ 'selectors' => '#editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input, .editor-styles-wrapper h1, .editor-styles-wrapper h2, .editor-styles-wrapper h3, .editor-styles-wrapper h4, .editor-styles-wrapper h5, .editor-styles-wrapper h6',
50
+ ),
51
+ 'ogf_post_page_content' => array(
52
+ 'selectors' => '.editor-styles-wrapper p',
53
+ ),
54
+ 'ogf_post_page_h1' => array(
55
+ 'selectors' => '#editor .editor-styles-wrapper .editor-post-title__block .editor-post-title__input, .editor-styles-wrapper h1',
56
+ ),
57
+ 'ogf_post_page_h2' => array(
58
+ 'selectors' => '.editor-styles-wrapper h2',
59
+ ),
60
+ 'ogf_post_page_h3' => array(
61
+ 'selectors' => '.editor-styles-wrapper h3',
62
+ ),
63
+ 'ogf_post_page_h4' => array(
64
+ 'selectors' => '.editor-styles-wrapper h4',
65
+ ),
66
+ 'ogf_post_page_h5' => array(
67
+ 'selectors' => '.editor-styles-wrapper h5',
68
+ ),
69
+ 'ogf_post_page_h6' => array(
70
+ 'selectors' => '.editor-styles-wrapper h6',
71
+ ),
72
+ );
73
+
74
+ $elements = apply_filters( 'ogf_gutenberg_elements', $elements );
75
+
76
+ foreach ( $elements as $id => $values ) {
77
+ ogf_generate_css_gutenberg( $values['selectors'], $id );
78
+ }
79
+ ?>
80
+ </style>
81
+ <!-- Fonts Plugin Gutenberg CSS -->
82
+ <?php
83
+ }
84
+
85
+ // Output custom CSS to live site.
86
+ add_action( 'admin_head', 'ogf_gutenberg_output_css' );
87
+
88
+ /**
89
+ * Helper function to build the CSS styles.
90
+ *
91
+ * @param string $selector The CSS selector to apply the styles to.
92
+ * @param string $option_name The option name to pull from the database.
93
+ */
94
+ function ogf_generate_css_gutenberg( $selector, $option_name ) {
95
+
96
+ $family = get_theme_mod( $option_name . '_font', false );
97
+ $font_size = get_theme_mod( $option_name . '_font_size', false );
98
+ $line_height = get_theme_mod( $option_name . '_line_height', false );
99
+ $weight = get_theme_mod( $option_name . '_font_weight', false );
100
+ $style = get_theme_mod( $option_name . '_font_style', false );
101
+ $color = get_theme_mod( $option_name . '_font_color', false );
102
+
103
+ $return = '';
104
+
105
+ if ( ( $family !== 'default' && $family ) ||
106
+ ( $line_height !== '0' && $line_height ) ||
107
+ ( $weight !== '0' && $weight ) ||
108
+ ( $style !== 'default' && $style ) ||
109
+ $font_size ||
110
+ $color ) {
111
+
112
+ $return .= $selector . ' {' . PHP_EOL;
113
+
114
+ // Return font-family CSS.
115
+ if ( false !== $family && 'default' !== $family ) {
116
+
117
+ $stack = ogf_build_font_stack( $family );
118
+
119
+ if ( ! empty( $stack ) ) {
120
+ $return .= sprintf(
121
+ 'font-family: %s;' . PHP_EOL,
122
+ $stack
123
+ );
124
+ }
125
+ }
126
+
127
+ // Return font-size CSS.
128
+ if ( $font_size ) {
129
+ $return .= sprintf(
130
+ 'font-size: %s;' . PHP_EOL,
131
+ floatval( $font_size ) . 'px'
132
+ );
133
+ }
134
+
135
+ // Return font line-height CSS.
136
+ if ( $line_height && '0' !== $line_height ) {
137
+ $return .= sprintf(
138
+ 'line-height: %s;' . PHP_EOL,
139
+ floatval( $line_height )
140
+ );
141
+ }
142
+
143
+ // Return font-style CSS.
144
+ if ( $style && 'default' !== $style ) {
145
+ $return .= sprintf(
146
+ 'font-style: %s;' . PHP_EOL,
147
+ esc_attr( $style )
148
+ );
149
+ }
150
+
151
+ // Return font-weight CSS.
152
+ if ( $weight && '0' !== $weight ) {
153
+ $return .= sprintf(
154
+ 'font-weight: %s;' . PHP_EOL,
155
+ absint( $weight )
156
+ );
157
+ }
158
+
159
+ // Return font-color CSS.
160
+ if ( $color ) {
161
+ $return .= sprintf(
162
+ 'color: %s;' . PHP_EOL,
163
+ esc_attr( $color )
164
+ );
165
+ }
166
+
167
+ $return .= ' }' . PHP_EOL;
168
+
169
+ echo wp_kses_post( $return );
170
+
171
+ }
172
+
173
+ }
trunk/languages/olympus-google-fonts.pot ADDED
@@ -0,0 +1,531 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 Fonts Plugin
2
+ # This file is distributed under the same license as the Google Fonts Typography plugin.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Google Fonts Typography 1.9.3\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/olympus-google-fonts\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2019-07-29T13:00:38+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.1.0\n"
15
+ "X-Domain: olympus-google-fonts\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "Google Fonts Typography"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ msgid "https://wordpress.org/plugins/olympus-google-fonts/"
23
+ msgstr ""
24
+
25
+ #. Description of the plugin
26
+ msgid "The easiest to use Google Fonts typography plugin. No coding required. 870+ font choices."
27
+ msgstr ""
28
+
29
+ #. Author of the plugin
30
+ msgid "Fonts Plugin"
31
+ msgstr ""
32
+
33
+ #. Author URI of the plugin
34
+ msgid "https://fontsplugin.com/?utm_source=wporg&utm_campaign=heading"
35
+ msgstr ""
36
+
37
+ #: class-olympus-google-fonts.php:148
38
+ msgid "Settings"
39
+ msgstr ""
40
+
41
+ #: class-olympus-google-fonts.php:153
42
+ msgid "Upgrade to Pro"
43
+ msgstr ""
44
+
45
+ #: includes/functions.php:38
46
+ msgid "Base Typography"
47
+ msgstr ""
48
+
49
+ #: includes/functions.php:39
50
+ msgid "Select and configure the font for your content."
51
+ msgstr ""
52
+
53
+ #: includes/functions.php:44
54
+ #: includes/functions.php:116
55
+ #: includes/functions.php:128
56
+ msgid "Headings Typography"
57
+ msgstr ""
58
+
59
+ #: includes/functions.php:45
60
+ msgid "Select and configure the font for your headings."
61
+ msgstr ""
62
+
63
+ #: includes/functions.php:50
64
+ msgid "Buttons and Inputs Typography"
65
+ msgstr ""
66
+
67
+ #: includes/functions.php:51
68
+ msgid "Select and configure the font for your input fields and buttons."
69
+ msgstr ""
70
+
71
+ #: includes/functions.php:56
72
+ msgid "Site Title Typography"
73
+ msgstr ""
74
+
75
+ #: includes/functions.php:57
76
+ msgid "Select and configure the font for your site title."
77
+ msgstr ""
78
+
79
+ #: includes/functions.php:62
80
+ msgid "Site Description Typography"
81
+ msgstr ""
82
+
83
+ #: includes/functions.php:63
84
+ msgid "Select and configure the font for your site description."
85
+ msgstr ""
86
+
87
+ #: includes/functions.php:68
88
+ msgid "Navigation Typography"
89
+ msgstr ""
90
+
91
+ #: includes/functions.php:69
92
+ msgid "Select and configure the font for your site navigation."
93
+ msgstr ""
94
+
95
+ #: includes/functions.php:74
96
+ #: includes/functions.php:122
97
+ #: includes/functions.php:136
98
+ msgid "Content Typography"
99
+ msgstr ""
100
+
101
+ #: includes/functions.php:75
102
+ msgid "Select and configure the font for your post and page content."
103
+ msgstr ""
104
+
105
+ #: includes/functions.php:80
106
+ msgid "Title and H1 Typography"
107
+ msgstr ""
108
+
109
+ #: includes/functions.php:81
110
+ msgid "Select and configure the font for your title and H1 headings."
111
+ msgstr ""
112
+
113
+ #: includes/functions.php:86
114
+ msgid "H2 Typography"
115
+ msgstr ""
116
+
117
+ #: includes/functions.php:87
118
+ msgid "Select and configure the font for your H2 headings."
119
+ msgstr ""
120
+
121
+ #: includes/functions.php:92
122
+ msgid "H3 Typography"
123
+ msgstr ""
124
+
125
+ #: includes/functions.php:93
126
+ msgid "Select and configure the font for your H3 headings."
127
+ msgstr ""
128
+
129
+ #: includes/functions.php:98
130
+ msgid "H4 Typography"
131
+ msgstr ""
132
+
133
+ #: includes/functions.php:99
134
+ msgid "Select and configure the font for your H4 headings."
135
+ msgstr ""
136
+
137
+ #: includes/functions.php:104
138
+ msgid "H5 Typography"
139
+ msgstr ""
140
+
141
+ #: includes/functions.php:105
142
+ msgid "Select and configure the font for your H5 headings."
143
+ msgstr ""
144
+
145
+ #: includes/functions.php:110
146
+ msgid "H6 Typography"
147
+ msgstr ""
148
+
149
+ #: includes/functions.php:111
150
+ msgid "Select and configure the font for your H6 headings."
151
+ msgstr ""
152
+
153
+ #: includes/functions.php:117
154
+ msgid "Select and configure the font for your sidebar headings."
155
+ msgstr ""
156
+
157
+ #: includes/functions.php:123
158
+ msgid "Select and configure the font for your sidebar content."
159
+ msgstr ""
160
+
161
+ #: includes/functions.php:129
162
+ msgid "Select and configure the font for your footer headings."
163
+ msgstr ""
164
+
165
+ #: includes/functions.php:137
166
+ msgid "Select and configure the font for your footer content."
167
+ msgstr ""
168
+
169
+ #: includes/functions.php:182
170
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:239
171
+ msgid "Thin"
172
+ msgstr ""
173
+
174
+ #: includes/functions.php:183
175
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:240
176
+ msgid "Extra Light"
177
+ msgstr ""
178
+
179
+ #: includes/functions.php:184
180
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:241
181
+ msgid "Light"
182
+ msgstr ""
183
+
184
+ #: includes/functions.php:185
185
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:242
186
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:254
187
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:272
188
+ msgid "Normal"
189
+ msgstr ""
190
+
191
+ #: includes/functions.php:186
192
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:243
193
+ msgid "Medium"
194
+ msgstr ""
195
+
196
+ #: includes/functions.php:187
197
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:244
198
+ msgid "Semi Bold"
199
+ msgstr ""
200
+
201
+ #: includes/functions.php:188
202
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:245
203
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:255
204
+ msgid "Bold"
205
+ msgstr ""
206
+
207
+ #: includes/functions.php:189
208
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:246
209
+ msgid "Extra Bold"
210
+ msgstr ""
211
+
212
+ #: includes/functions.php:190
213
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:247
214
+ msgid "Ultra Bold"
215
+ msgstr ""
216
+
217
+ #: includes/functions.php:197
218
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:238
219
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:253
220
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:271
221
+ msgid "- Default -"
222
+ msgstr ""
223
+
224
+ #: includes/functions.php:219
225
+ msgid "Arial"
226
+ msgstr ""
227
+
228
+ #: includes/functions.php:224
229
+ msgid "Calibri"
230
+ msgstr ""
231
+
232
+ #: includes/functions.php:229
233
+ msgid "Consolas"
234
+ msgstr ""
235
+
236
+ #: includes/functions.php:234
237
+ msgid "Courier New"
238
+ msgstr ""
239
+
240
+ #: includes/functions.php:239
241
+ msgid "Helvetica"
242
+ msgstr ""
243
+
244
+ #: includes/functions.php:244
245
+ msgid "Georgia"
246
+ msgstr ""
247
+
248
+ #: includes/functions.php:249
249
+ msgid "Futura"
250
+ msgstr ""
251
+
252
+ #: includes/functions.php:254
253
+ msgid "Lucida Grande"
254
+ msgstr ""
255
+
256
+ #: includes/functions.php:259
257
+ msgid "Tahoma"
258
+ msgstr ""
259
+
260
+ #: includes/functions.php:264
261
+ msgid "Times New Roman"
262
+ msgstr ""
263
+
264
+ #: includes/functions.php:269
265
+ msgid "Trebuchet MS"
266
+ msgstr ""
267
+
268
+ #: includes/functions.php:274
269
+ msgid "Palatino"
270
+ msgstr ""
271
+
272
+ #: includes/functions.php:279
273
+ msgid "Verdana"
274
+ msgstr ""
275
+
276
+ #: includes/class-ogf-reset.php:41
277
+ msgid "This will reset all fonts set by this plugin to their defaults. This action can not be reversed."
278
+ msgstr ""
279
+
280
+ #: includes/class-ogf-reset.php:63
281
+ msgid "Reset All Fonts"
282
+ msgstr ""
283
+
284
+ #. translators: %s Link to Google Fonts customizer panel.
285
+ #: includes/class-ogf-welcome.php:104
286
+ msgid "Thank you for installing <strong>Google Fonts for WordPress</strong>! Configure your fonts here: <a href=\"%s\">WordPress Customizer</a>"
287
+ msgstr ""
288
+
289
+ #. translators: Number of years
290
+ #: includes/class-ogf-notifications.php:83
291
+ msgid "a year"
292
+ msgid_plural "%d years"
293
+ msgstr[0] ""
294
+
295
+ #. translators: Number of weeks
296
+ #: includes/class-ogf-notifications.php:89
297
+ msgid "a week"
298
+ msgid_plural "%d weeks"
299
+ msgstr[0] ""
300
+
301
+ #. translators: Number of days
302
+ #: includes/class-ogf-notifications.php:95
303
+ msgid "a day"
304
+ msgid_plural "%d days"
305
+ msgstr[0] ""
306
+
307
+ #: includes/class-ogf-notifications.php:219
308
+ msgid "Google Fonts WordPress Plugin"
309
+ msgstr ""
310
+
311
+ #: includes/class-ogf-notifications.php:222
312
+ msgid "Are you enjoying using Google Fonts?"
313
+ msgstr ""
314
+
315
+ #. translators: 1. Name, 2. Time
316
+ #: includes/class-ogf-notifications.php:226
317
+ msgid "You have been using <strong>%1$s</strong> for %2$s now! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
318
+ msgstr ""
319
+
320
+ #: includes/class-ogf-notifications.php:231
321
+ msgid "Leave a Review"
322
+ msgstr ""
323
+
324
+ #: includes/class-ogf-notifications.php:232
325
+ msgid "No thanks / I already have"
326
+ msgstr ""
327
+
328
+ #: includes/class-ogf-notifications.php:259
329
+ msgid "Google Fonts for WordPress"
330
+ msgstr ""
331
+
332
+ #: includes/customizer/settings.php:38
333
+ #: includes/customizer/panels.php:71
334
+ #: includes/customizer/panels.php:101
335
+ msgid "Custom Elements"
336
+ msgstr ""
337
+
338
+ #: includes/customizer/settings.php:56
339
+ #: includes/customizer/panels.php:159
340
+ msgid "Load Fonts Only"
341
+ msgstr ""
342
+
343
+ #: includes/customizer/settings.php:57
344
+ msgid "Load fonts but don't automatically assign them to an element."
345
+ msgstr ""
346
+
347
+ #: includes/customizer/settings.php:156
348
+ msgid "Force Styles?"
349
+ msgstr ""
350
+
351
+ #: includes/customizer/settings.php:160
352
+ msgid "If your choices are not displaying correctly, check this box."
353
+ msgstr ""
354
+
355
+ #: includes/customizer/panels.php:32
356
+ #: blocks/src/google-fonts/index.js:12
357
+ msgid "Google Fonts"
358
+ msgstr ""
359
+
360
+ #: includes/customizer/panels.php:41
361
+ msgid "Theme Settings"
362
+ msgstr ""
363
+
364
+ #: includes/customizer/panels.php:50
365
+ msgid "Basic Settings"
366
+ msgstr ""
367
+
368
+ #: includes/customizer/panels.php:60
369
+ msgid "Advanced Settings"
370
+ msgstr ""
371
+
372
+ #. Translators: %s Custom Elements Customizer Panel URL
373
+ #: includes/customizer/panels.php:74
374
+ msgid "Define your Custom Elements here and then customize them under <a href=\"%s\">Advanced Settings &rarr; Custom Elements</a>."
375
+ msgstr ""
376
+
377
+ #: includes/customizer/panels.php:82
378
+ msgid "Font Loading"
379
+ msgstr ""
380
+
381
+ #: includes/customizer/panels.php:92
382
+ msgid "Debugging"
383
+ msgstr ""
384
+
385
+ #. Translators: %s Custom Elements Customizer Panel URL
386
+ #: includes/customizer/panels.php:103
387
+ msgid "Custom Elements allow you to apply Google Fonts to any part of your website, they can be setup under <a href=\"%s\">Google Fonts &rarr; Custom Elements</a>."
388
+ msgstr ""
389
+
390
+ #: includes/customizer/panels.php:111
391
+ msgid "Theme Elements"
392
+ msgstr ""
393
+
394
+ #: includes/customizer/panels.php:119
395
+ msgid "Branding"
396
+ msgstr ""
397
+
398
+ #: includes/customizer/panels.php:127
399
+ msgid "Navigation"
400
+ msgstr ""
401
+
402
+ #: includes/customizer/panels.php:135
403
+ msgid "Content"
404
+ msgstr ""
405
+
406
+ #: includes/customizer/panels.php:143
407
+ msgid "Sidebar"
408
+ msgstr ""
409
+
410
+ #: includes/customizer/panels.php:151
411
+ msgid "Footer"
412
+ msgstr ""
413
+
414
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:83
415
+ msgid "Add New"
416
+ msgstr ""
417
+
418
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:86
419
+ msgid "Save Elements"
420
+ msgstr ""
421
+
422
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:134
423
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:140
424
+ msgid "Label"
425
+ msgstr ""
426
+
427
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:145
428
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:151
429
+ msgid "Description"
430
+ msgstr ""
431
+
432
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:156
433
+ msgid "Selectors"
434
+ msgstr ""
435
+
436
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:162
437
+ msgid "Add your selectors..."
438
+ msgstr ""
439
+
440
+ #: includes/customizer/controls/class-ogf-customize-repeater-control.php:166
441
+ msgid "Delete field"
442
+ msgstr ""
443
+
444
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:43
445
+ msgid "Font Family"
446
+ msgstr ""
447
+
448
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:44
449
+ msgid "Font Weight"
450
+ msgstr ""
451
+
452
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:45
453
+ msgid "Font Style"
454
+ msgstr ""
455
+
456
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:46
457
+ msgid "Font Size (px)"
458
+ msgstr ""
459
+
460
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:47
461
+ #: blocks/src/google-fonts/edit.js:160
462
+ msgid "Line Height"
463
+ msgstr ""
464
+
465
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:48
466
+ msgid "Color"
467
+ msgstr ""
468
+
469
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:109
470
+ msgid "Default Font"
471
+ msgstr ""
472
+
473
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:110
474
+ msgid "- System Fonts -"
475
+ msgstr ""
476
+
477
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:115
478
+ msgid "- Google Fonts -"
479
+ msgstr ""
480
+
481
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:124
482
+ msgid "Advanced"
483
+ msgstr ""
484
+
485
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:273
486
+ msgid "Italic"
487
+ msgstr ""
488
+
489
+ #: includes/customizer/controls/class-ogf-customize-typography-control.php:274
490
+ msgid "Oblique"
491
+ msgstr ""
492
+
493
+ #: blocks/src/google-fonts/edit.js:120
494
+ msgid "Font Settings"
495
+ msgstr ""
496
+
497
+ #: blocks/src/google-fonts/edit.js:122
498
+ msgid "Block Type"
499
+ msgstr ""
500
+
501
+ #: blocks/src/google-fonts/edit.js:138
502
+ msgid "Font"
503
+ msgstr ""
504
+
505
+ #: blocks/src/google-fonts/edit.js:145
506
+ msgid "Font Variant"
507
+ msgstr ""
508
+
509
+ #: blocks/src/google-fonts/edit.js:152
510
+ msgid "Font Size"
511
+ msgstr ""
512
+
513
+ #: blocks/src/google-fonts/edit.js:169
514
+ msgid "Color Settings"
515
+ msgstr ""
516
+
517
+ #: blocks/src/google-fonts/edit.js:174
518
+ msgid "Text Color"
519
+ msgstr ""
520
+
521
+ #: blocks/src/google-fonts/edit.js:204
522
+ msgid "Add some content..."
523
+ msgstr ""
524
+
525
+ #: blocks/src/google-fonts/index.js:16
526
+ msgid "Fonts"
527
+ msgstr ""
528
+
529
+ #: blocks/src/google-fonts/index.js:17
530
+ msgid "Heading"
531
+ msgstr ""
trunk/olympus-google-fonts.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Google Fonts Typography
4
+ *
5
+ * Plugin Name: Google Fonts Typography
6
+ * Plugin URI: https://wordpress.org/plugins/olympus-google-fonts/
7
+ * Description: The easiest to use Google Fonts typography plugin. No coding required. 870+ font choices.
8
+ * Version: 1.9.8
9
+ * Author: Fonts Plugin
10
+ * Author URI: https://fontsplugin.com/?utm_source=wporg&utm_campaign=heading
11
+ * Text Domain: olympus-google-fonts
12
+ * License: GPL-2.0+
13
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
14
+ * Domain Path: /languages
15
+ *
16
+ * @package olympus-google-fonts
17
+ * @copyright Copyright (c) 2019, Fonts Plugin
18
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
19
+ */
20
+
21
+ define( 'OGF_VERSION', '1.9.8' );
22
+ define( 'OGF_DIR_PATH', plugin_dir_path( __FILE__ ) );
23
+ define( 'OGF_DIR_URL', plugin_dir_url( __FILE__ ) );
24
+
25
+ require OGF_DIR_PATH . 'class-olympus-google-fonts.php';
26
+ require OGF_DIR_PATH . 'blocks/init.php';
27
+
28
+ $gfwp = new Olympus_Google_Fonts();
29
+
30
+ $current_theme = wp_get_theme();
31
+ $theme_author = strtolower( esc_attr( $current_theme->get( 'Author' ) ) );
32
+ $author_compat_path = OGF_DIR_PATH . '/compatability/' . $theme_author . '.php';
33
+
34
+ if ( file_exists( $author_compat_path ) ) {
35
+ require $author_compat_path;
36
+ }
trunk/readme.txt ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Google Fonts Typography ===
2
+ Contributors: DannyCooper, googlefonts
3
+ Tags: google, fonts, google fonts, typography, elementor, beaver builder
4
+ Donate link: https://fontsplugin.com/#pricing
5
+ Requires at least: 4.0
6
+ Tested up to: 5.2
7
+ License: GPLv2 or later
8
+ Stable tag: 1.9.8
9
+
10
+ The easiest to use Google Fonts Typography Plugin. No coding required. 900+ font choices.
11
+
12
+ == Description ==
13
+ The [Google Fonts](https://fontsplugin.com/?utm_source=wporg&utm_campaign=intro) library currently contains 877 unique fonts. This plugin allows you to easily use any of them on your WordPress website.
14
+
15
+ You're not stuck with one font for the entire website, you can easily choose one font for headings and another for your content.
16
+
17
+ It's hard to know which font will look good on your website, that's why we've included a live preview feature. That means you can test each font and see a live preview of how it will look with your content instantly.
18
+
19
+ Once you've found a combination you love, you can press save and make the changes publicly visible.
20
+
21
+ The full Google Fonts library can be found here - [Google Fonts](https://fonts.google.com)
22
+
23
+ = Plugin Features =
24
+
25
+ * **Live Customizer Preview:** Choose and preview fonts in real time using the WordPress Customizer.
26
+ * **Over 900+ Google Fonts** to choose from.
27
+ * Works with any WordPress Theme. No coding required.
28
+ * Easy One-Click Updates.
29
+ * Translation Ready.
30
+ * SSL and HTTPS compatible.
31
+ * Efficient Font Loading using a single request.
32
+ * **SEO-Friendly** (Search Engine Optimization).
33
+ * Tested with **PHP7**
34
+ * Selective Font Loading
35
+ * Preconnect Resource Hints
36
+ * Host Google Fonts Locally
37
+ * Font Size, Weight, Color and Line Height Typography Settings
38
+
39
+ > Note: some features are Premium. Which means you need to upgrade to unlock those features. You can upgrade here: [Google Fonts Pro](https://fontsplugin.com/pro-upgrade/?utm_source=wporg&utm_campaign=upgrade)
40
+
41
+ = Plugin Compatibility =
42
+
43
+ The Google Fonts for WordPress plugin will work with all WordPress themes and has been specifically tested with the following:
44
+
45
+ * All OlympusThemes
46
+ * All StudioPress and Genesis Themes
47
+ * TwentyFifteen
48
+ * TwentySixteen
49
+ * TwentySeventeen
50
+ * ThemeGrill
51
+ * ThemeIsle
52
+
53
+ ### Further Reading
54
+
55
+ For more info on Google Fonts for Wordpress, check out the following:
56
+
57
+ * [Documentation](https://fontsplugin.com/docs/?utm_source=wporg)
58
+ * [Font Combinations](https://fontsplugin.com/font-combinations/?utm_source=wporg)
59
+ * [How to Use Google Fonts in WordPress](https://fontsplugin.com/wordpress-google-fonts/?utm_source=wporg)
60
+ * [Google Fonts in Beaver Builder](https://docs.fontsplugin.com/integrations/beaver-builder)
61
+ * [Google Fonts in Elementor](https://docs.fontsplugin.com/integrations/elementor)
62
+ * [Google Fonts in WPBakery](https://docs.fontsplugin.com/integrations/wpbakery)
63
+
64
+ = Bugs =
65
+ If you find an issue with Google Fonts for WordPress, let us know [here](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)!
66
+
67
+ = Google Fonts Gutenberg Block =
68
+ Add some flair to your content with our new Gutenberg block.
69
+
70
+ * All 900+ fonts available in the editor
71
+ * Font size, variant and line-height settings
72
+ * Text-align: left, right or center.
73
+
74
+ = Contributions =
75
+ Anyone is welcome to contribute to the 'Google Fonts for WordPress' plugin.
76
+
77
+ There are various ways you can contribute:
78
+
79
+ 1. Raise an [Issue](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)
80
+ 2. Translate the Google Fonts for WordPress plugin into [different languages](https://translate.wordpress.org/projects/wp-plugins/olympus-google-fonts/)
81
+ 3. Provide feedback and suggestions on [enhancements](https://wordpress.org/support/plugin/olympus-google-fonts#new-post)
82
+
83
+ == Installation ==
84
+ Upload 'Google Fonts for WordPress', activate it, and you're done!
85
+
86
+ Navigate to wp-admin -> Appearance -> Customize and you will see a new tab named 'Google Fonts'
87
+
88
+ == Frequently Asked Questions ==
89
+
90
+ = Will my theme work with Google Fonts for WordPress? =
91
+
92
+ We are 99.99% certain it will, if it doesn't then please create a [support ticket](https://wordpress.org/support/plugin/olympus-google-fonts#new-post).
93
+
94
+ == Screenshots ==
95
+
96
+ 1. Instant Live Preview - Google Fonts for WordPress
97
+ 2. Customizer Settings Search - Google Fonts for WordPress
98
+ 3. Customizer Settings Font Weight and Style Typography Settings
99
+
100
+ == Changelog ==
101
+
102
+ [See changelog.txt for the complete changelog.](https://raw.githubusercontent.com/dannycooper/olympus-google-fonts/master/changelog.txt)