Maps Builder – Google Maps Plugin - Version 1.0.0

Version Description

Download this release

Release Info

Developer dlocc
Plugin Icon 128x128 Maps Builder – Google Maps Plugin
Version 1.0.0
Comparing to
See all releases

Version 1.0.0

Files changed (83) hide show
  1. LICENSE.txt +339 -0
  2. README.txt +112 -0
  3. admin/assets/css/admin-settings.css +196 -0
  4. admin/assets/css/admin-settings.min.css +1 -0
  5. admin/assets/css/admin-widget.css +459 -0
  6. admin/assets/css/admin-widget.min.css +1 -0
  7. admin/assets/css/admin.css +687 -0
  8. admin/assets/css/admin.min.css +1 -0
  9. admin/assets/css/grid.css +890 -0
  10. admin/assets/css/grid.min.css +1 -0
  11. admin/assets/css/index.php +1 -0
  12. admin/assets/img/arrows.png +0 -0
  13. admin/assets/img/help.png +0 -0
  14. admin/assets/img/icons-app-000.svg +56 -0
  15. admin/assets/img/icons-infowindow-002.svg +111 -0
  16. admin/assets/img/marker-btn.png +0 -0
  17. admin/assets/img/new-window-icon.png +0 -0
  18. admin/assets/img/powered-by-google-on-white.png +0 -0
  19. admin/assets/img/spinner.gif +0 -0
  20. admin/assets/img/wordimpress-logo-small.png +0 -0
  21. admin/assets/js/admin-google-map.min.js +1 -0
  22. admin/assets/js/admin-settings.js +53 -0
  23. admin/assets/js/admin-settings.min.js +1 -0
  24. admin/assets/js/admin-widget.js +267 -0
  25. admin/assets/js/admin-widget.min.js +1 -0
  26. admin/assets/js/index.php +1 -0
  27. admin/class-wordpress-google-maps-admin.php +758 -0
  28. admin/class-wordpress-google-maps-settings.php +422 -0
  29. admin/includes/index.php +1 -0
  30. admin/includes/tooltips/jquery.qtip.css +513 -0
  31. admin/includes/tooltips/jquery.qtip.js +3302 -0
  32. admin/includes/tooltips/jquery.qtip.min.css +2 -0
  33. admin/includes/tooltips/jquery.qtip.min.js +5 -0
  34. admin/includes/tooltips/jquery.qtip.min.map +1 -0
  35. admin/views/admin-widget.php +61 -0
  36. admin/views/index.php +1 -0
  37. admin/views/logo-svg-small.php +33 -0
  38. admin/views/logo-svg.php +34 -0
  39. admin/views/markers.php +224 -0
  40. admin/views/settings-page.php +86 -0
  41. admin/views/social-media.php +45 -0
  42. admin/views/tab-general-settings.php +28 -0
  43. admin/views/tab-map-options.php +31 -0
  44. google-maps-builder.php +64 -0
  45. includes/assets/css/index.php +1 -0
  46. includes/assets/img/loading.GIF +0 -0
  47. includes/assets/img/review_stars.png +0 -0
  48. includes/assets/index.php +1 -0
  49. includes/assets/js/index.php +1 -0
  50. includes/index.php +1 -0
  51. includes/map-icons/README.md +118 -0
  52. includes/map-icons/css/map-icons.css +568 -0
  53. includes/map-icons/demo.html +124 -0
  54. includes/map-icons/fonts/map-icons.dev.svg +1394 -0
  55. includes/map-icons/fonts/map-icons.eot +0 -0
  56. includes/map-icons/fonts/map-icons.svg +1394 -0
  57. includes/map-icons/fonts/map-icons.ttf +0 -0
  58. includes/map-icons/fonts/map-icons.woff +0 -0
  59. includes/map-icons/js/map-icons-ie7.js +203 -0
  60. includes/map-icons/js/map-icons.js +99 -0
  61. includes/map-icons/js/map-icons.min.js +7 -0
  62. includes/metabox/example-functions.php +413 -0
  63. includes/metabox/helpers/cmb_Meta_Box_Sanitize.php +346 -0
  64. includes/metabox/helpers/cmb_Meta_Box_Show_Filters.php +105 -0
  65. includes/metabox/helpers/cmb_Meta_Box_ajax.php +203 -0
  66. includes/metabox/helpers/cmb_Meta_Box_field.php +478 -0
  67. includes/metabox/helpers/cmb_Meta_Box_types.php +791 -0
  68. includes/metabox/images/ico-delete.png +0 -0
  69. includes/metabox/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  70. includes/metabox/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  71. includes/metabox/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  72. includes/metabox/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  73. includes/metabox/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  74. includes/metabox/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  75. includes/metabox/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  76. includes/metabox/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  77. includes/metabox/images/ui-icons_222222_256x240.png +0 -0
  78. includes/metabox/images/ui-icons_2e83ff_256x240.png +0 -0
  79. includes/metabox/images/ui-icons_454545_256x240.png +0 -0
  80. includes/metabox/images/ui-icons_888888_256x240.png +0 -0
  81. includes/metabox/images/ui-icons_cd0a0a_256x240.png +0 -0
  82. includes/metabox/init.php +1164 -0
  83. includes/metabox/js/cmb.js +209 -0
LICENSE.txt ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
README.txt ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Google Maps Builder ===
2
+ Contributors: dlocc, wordimpress
3
+ Donate link: http://wordimpress.com/
4
+ Tags: google maps, google map, google map widget, google map shortcode, maps, map, wp map, wp google maps, google maps directions, google maps builder, google maps plugin, google places, google places api, google maps api, google places reviews
5
+ Requires at least: 3.6
6
+ Tested up to: 3.9
7
+ Stable tag: 1.0.0
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ One Google Maps plugin to rule them all. Google Maps Builder is intuitive, sleek, powerful and easy to use. Forget the rest, use the best.
12
+
13
+ == Description ==
14
+
15
+ Google Maps Builder isn't just another Google Maps plugin. It's built from the ground up to be the easiest, most intuitive and fastest Google Maps plugin for WordPress. Visually build powerfule customized Google Maps to use on your WordPress site quickly and easily without ever having to touch a bit of code.
16
+
17
+ = Plugin highlights: =
18
+
19
+ * **Google Places API integration** to display business ratings and nearby points of interest
20
+ * **Snazzy Maps integration** for truly unique Google Map themes that look great with any design
21
+ * **Unique Marker Icons** The only plugin with [Map Icons](map-icons.com) integration; set icon and marker colors for truly unique markers
22
+ * **Intuitive UI** that seamlessly integrates with WordPress' - no eye sores or outdated interfaces here
23
+ * **Small Footprint** - GMB does not create any new database tables, not even one
24
+ * **Optimized** - All scripts and styles are optimized and packaged with Grunt
25
+ * **No notices or warnings** We developed this plugins in debug mode. This results in high quality plugins with no errors, warnings or notices.
26
+
27
+ = Marker Creation =
28
+
29
+ Google Maps builder features a simple **"Point and Click" marker creation system**. As well, you can add markers using an intuitive Google autocomplete search field. As well, **Bulk edit marker data ** using meta fields attached to each marker's content.
30
+
31
+ = Map Themes =
32
+
33
+ Want to add some pazazz to your maps? [Snazzy Maps](http://snazzymaps.com/) themes are baked right in to Google Map Builder. This means your maps can stand out, fit into any design, and look unique and intriguing.
34
+
35
+
36
+
37
+ == Installation ==
38
+
39
+ This section describes how to install the plugin and get it working.
40
+
41
+ = Using The WordPress Dashboard =
42
+
43
+ 1. Navigate to the 'Add New' in the plugins dashboard
44
+ 2. Search for 'Google Maps Builder'
45
+ 3. Click 'Install Now'
46
+ 4. Activate the plugin on the Plugin dashboard
47
+
48
+ = Uploading in WordPress Dashboard =
49
+
50
+ 1. Navigate to the 'Add New' in the plugins dashboard
51
+ 2. Navigate to the 'Upload' area
52
+ 3. Select `google-maps-builder.zip` from your computer
53
+ 4. Click 'Install Now'
54
+ 5. Activate the plugin in the Plugin dashboard
55
+
56
+ = Using FTP =
57
+
58
+ 1. Download `google-maps-builder.zip`
59
+ 2. Extract the `google-maps-builder` directory to your computer
60
+ 3. Upload the `google-maps-builder` directory to the `/wp-content/plugins/` directory
61
+ 4. Activate the plugin in the Plugin dashboard
62
+
63
+ == Frequently Asked Questions ==
64
+
65
+ 1. What sets this plugin apart from all the other Google Maps plugins for WordPress?
66
+
67
+ There are many features and functionality that set Google Maps Builder apart. The plugin is built from the ground up to be easy and fun to use. We've placed extra care and attention on the map creation process. The admin UI integrates seamlessly with WordPress without adding and distracting visuals. Built in integration with Google Places means you can display various points of interest next to your markers for added value.
68
+
69
+ There is really a lot more that distinguishes GMB, but you should see for yourself. Give it a try!
70
+
71
+ 2. Does this plugin create any new database tables?
72
+
73
+ Unlike other Google Maps plugins, Google Maps Builder does not create a single new table in your WordPress database. There is no added database overhead or foreign MySQL queries. It's our guarantee that this plugin will never leave an orphaned table in your WordPress account.
74
+
75
+
76
+ == Roadmap ==
77
+
78
+ Here is what we are working on for future releases:
79
+
80
+ * Maps Widget - Build in a widget to output Google Maps
81
+ * Custom Map Marker Images - Ability to upload your own map marker images
82
+ * Map Icons: Fix maps icon overlap issue when they are bunched in an area (zIndex issue)
83
+ * Admin JS i18n - Please contact us at info@wordimpress.com to volunteer for translating!
84
+ * Public JS i18n - Please contact us at info@wordimpress.com to volunteer for translating!
85
+ * Google Places - Add the ability to remove place information
86
+ * Google Places - Pagination for markers, the ability to set number of markers
87
+ * Google Places - Customize the individual place markers
88
+ * Markers - Add the ability to drag markers to new positions (lat, lng) in builder.
89
+ * Info Window - Add a WYSIWYG editor? Possible complications with this.
90
+
91
+ Bug Fixes
92
+
93
+ * Info Window - FOUC: Investigate why sometimes pointer tip of info window flashes before it opens (mainly Chrome)
94
+ * Chrome - Look into while map tiles have strange lines in between
95
+ * Firefox - Clicking on a marker to open the same info window creates content overflow
96
+
97
+ == Screenshots ==
98
+
99
+ 1. **Google Map Builder** - A view of the single map view in the WordPress admin panel. Notice the autocomplete search field and "Drop a Marker" button.
100
+
101
+ 2. **Editable Marker** - Customize the content of the map markers directly in the builder. Built to mock Google's own Maps Engine.
102
+
103
+ 3. **Custom Markers** - Configure a marker to fit your location. Easily adjust the marker, icon and color.
104
+
105
+ 4. **Frontend View** - A view the a map on the frontend of a WordPress site using the TwentyTwelve theme. This map displays various Google Places.
106
+
107
+ 5. **Settings Panel** - Adjust the various plugin settings using a UI that is built using WordPress' own styles.
108
+
109
+ == Changelog ==
110
+
111
+ = 1.0 =
112
+ * Plugin released. Yay!
admin/assets/css/admin-settings.css ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Google Places Map CPT Styles
3
+ */
4
+
5
+ .wrap {
6
+ margin-left: -5px;
7
+ }
8
+
9
+ .clear:before,
10
+ .clear:after {
11
+ content: " ";
12
+ display: table;
13
+ }
14
+
15
+ .clear:after {
16
+ clear: both;
17
+ }
18
+
19
+ table.form-table {
20
+ margin:0 0 20px;
21
+ }
22
+
23
+ /*---------------------------
24
+ Header
25
+ -----------------------------*/
26
+
27
+ .main-heading {
28
+ font-size: 36px;
29
+ font-weight: 400;
30
+ line-height: 1.1em;
31
+ margin: 10px 0 20px;
32
+ }
33
+
34
+ .main-subheading {
35
+ font-size: 20px;
36
+ line-height: 1.4em;
37
+ }
38
+
39
+ .logo-svg {
40
+ margin: 15px 0 0;
41
+ }
42
+
43
+ .logo-svg.logo-svg-small {
44
+ float: right;
45
+ margin: 0;
46
+ }
47
+
48
+ .gmb-plugin-heading {
49
+ width: 170px;
50
+ float: left;
51
+ margin: 9px 0 0;
52
+ }
53
+
54
+ .new-window {
55
+ background: url('../img/new-window-icon.png') no-repeat right 5px transparent;
56
+ padding-right: 13px;
57
+ margin-right: 4px;
58
+ }
59
+
60
+ /* Social Media */
61
+
62
+ .social-items-wrap {
63
+ float: left;
64
+ }
65
+
66
+ .social-items-wrap > div {
67
+ display: inline-block;
68
+ }
69
+
70
+ .google-plus {
71
+ margin-left: 20px;
72
+ display: inline;
73
+ width: 150px;
74
+ }
75
+
76
+ .wordimpress-logo {
77
+ float: left;
78
+ margin: -7px 0 0;
79
+ }
80
+
81
+ .logo-link {
82
+ background: url('../img/wordimpress-logo-small.png') no-repeat 0 0 transparent;
83
+ width: 100px;
84
+ height: 40px;
85
+ display: block;
86
+ }
87
+
88
+ .hide-welcome {
89
+ margin: 2px 0 0 30px;
90
+ }
91
+
92
+ .hide-welcome span {
93
+ background: url('../img/arrows.png') no-repeat 0 -33px rgba(0, 0, 0, 0);
94
+ width: 15px;
95
+ height: 14px;
96
+ display: inline-block;
97
+ margin-left: 3px;
98
+ }
99
+
100
+ .pull-left {
101
+ float: left;
102
+ }
103
+
104
+ .pull-right {
105
+ float: right;
106
+ }
107
+
108
+ .small-desc {
109
+ font-size: 12px;
110
+ font-style: italic;
111
+ color: #B3B3B3;
112
+ }
113
+
114
+ /*---------------------------
115
+ Map Options Tab
116
+ -----------------------------*/
117
+
118
+ .size-label {
119
+ margin: 8px 10px 0 0;
120
+ font-style: italic;
121
+ width: 50px;
122
+ }
123
+
124
+ /* Map Size */
125
+
126
+ .width_unit_label, .width_radio, .map-width, .map-height, .size-label, .radio-left, .label-left {
127
+ float: left !important;
128
+ }
129
+
130
+ #width_wrap {
131
+ margin: 0 0 10px;
132
+ }
133
+
134
+ #size_labels_wrap {
135
+ margin: 8px 0 0 10px;
136
+ padding: 0;
137
+ float: left;
138
+ }
139
+
140
+ #width_unit_percent {
141
+ margin: 0 3px 0 0;
142
+ }
143
+
144
+ #width_unit_px {
145
+ margin: 0 3px 0 8px;
146
+ }
147
+
148
+ .map-width, .map-height {
149
+ width: 55px !important
150
+ }
151
+
152
+ /* Lat Lng */
153
+ #lat-lng-wrap {
154
+ float: left;
155
+ clear: both;
156
+ margin: 15px 0 0;
157
+ display: none;
158
+ }
159
+
160
+ label.geocode-label {
161
+ width: 130px;
162
+ margin-right: 0;
163
+ }
164
+
165
+ label.yes-label {
166
+ margin-right: 10px;
167
+ }
168
+
169
+ #lat-lng-wrap input[type=text].latitude, #lat-lng-wrap input[type=text].longitude {
170
+ width: 120px;
171
+ float: left;
172
+ }
173
+
174
+ .lat-lng-wrap {
175
+ margin: 0 0 10px;
176
+ clear: none;
177
+ }
178
+
179
+ .lat-lng-wrap > span, .lat-lng-wrap > input {
180
+ float: left;
181
+ }
182
+
183
+ .lat-lng-wrap > span {
184
+ margin: 8px 5px 0 0;
185
+ width: 80px;
186
+ font-style: italic;
187
+ }
188
+
189
+
190
+ /*---------------------------
191
+ General Options Tab
192
+ -----------------------------*/
193
+
194
+ #gmb_menu_position {
195
+ width: 40px;
196
+ }
admin/assets/css/admin-settings.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wrap{margin-left:-5px}.clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}table.form-table{margin:0 0 20px}.main-heading{font-size:36px;font-weight:400;line-height:1.1em;margin:10px 0 20px}.main-subheading{font-size:20px;line-height:1.4em}.logo-svg{margin:15px 0 0}.logo-svg.logo-svg-small{float:right;margin:0}.gmb-plugin-heading{width:170px;float:left;margin:9px 0 0}.new-window{background:url(../img/new-window-icon.png) no-repeat right 5px transparent;padding-right:13px;margin-right:4px}.social-items-wrap{float:left}.social-items-wrap>div{display:inline-block}.google-plus{margin-left:20px;display:inline;width:150px}.wordimpress-logo{float:left;margin:-7px 0 0}.logo-link{background:url(../img/wordimpress-logo-small.png) no-repeat 0 0 transparent;width:100px;height:40px;display:block}.hide-welcome{margin:2px 0 0 30px}.hide-welcome span{background:url(../img/arrows.png) no-repeat 0 -33px rgba(0,0,0,0);width:15px;height:14px;display:inline-block;margin-left:3px}.pull-left{float:left}.pull-right{float:right}.small-desc{font-size:12px;font-style:italic;color:#B3B3B3}.size-label{margin:8px 10px 0 0;font-style:italic;width:50px}.width_unit_label,.width_radio,.map-width,.map-height,.size-label,.radio-left,.label-left{float:left!important}#width_wrap{margin:0 0 10px}#size_labels_wrap{margin:8px 0 0 10px;padding:0;float:left}#width_unit_percent{margin:0 3px 0 0}#width_unit_px{margin:0 3px 0 8px}.map-width,.map-height{width:55px!important}#lat-lng-wrap{float:left;clear:both;margin:15px 0 0;display:none}label.geocode-label{width:130px;margin-right:0}label.yes-label{margin-right:10px}#lat-lng-wrap input[type=text].latitude,#lat-lng-wrap input[type=text].longitude{width:120px;float:left}.lat-lng-wrap{margin:0 0 10px;clear:none}.lat-lng-wrap>span,.lat-lng-wrap>input{float:left}.lat-lng-wrap>span{margin:8px 5px 0 0;width:80px;font-style:italic}#gmb_menu_position{width:40px}
admin/assets/css/admin-widget.css ADDED
@@ -0,0 +1,459 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Styles specifically for the Yelp Widget Pro widget in the WP admin interface
3
+ * Is only loaded on widgets.php
4
+ */
5
+ .wpgp-toggler {
6
+ padding: 10px;
7
+ margin: 0 0 10px;
8
+ cursor: pointer;
9
+ background-color: #EBEBEB;
10
+ border: 1px solid #E5E5E5;
11
+ display: block;
12
+ }
13
+
14
+ .wpgp-toggler span {
15
+ background: url('../img/arrows.png') no-repeat 60% -107px;
16
+ float: right;
17
+ height: 12px;
18
+ display: inline-block;
19
+ width: 12px;
20
+ }
21
+
22
+ .wpgp-toggler.toggled span {
23
+ background-position: 60% 1px;
24
+ }
25
+
26
+ .toggle-item, .reviews-toggle-container {
27
+ display: none;
28
+ }
29
+
30
+ .toggle-item p {
31
+ padding: 0;
32
+ margin: 0 0 10px;
33
+ }
34
+
35
+ .toggle-item.toggled, .reviews-toggle-container.toggled {
36
+ display: block;
37
+ }
38
+
39
+ .widget-api-option {
40
+ line-height: 22px;
41
+ }
42
+
43
+ .widget-api-option input {
44
+ }
45
+
46
+ .toggle-item select {
47
+ background: #FFF;
48
+ }
49
+
50
+ .wpgp-method-span:hover, .search-api-option:hover, .business-api-option:hover {
51
+ cursor: pointer;
52
+ }
53
+
54
+ .wpgp-method-label {
55
+ padding-left: 4px;
56
+ }
57
+
58
+ .new-window {
59
+ background: url('../img/new-window-icon.png') no-repeat right 3px transparent;
60
+ padding-right: 16px;
61
+ }
62
+
63
+ .wpgp-radio-label {
64
+ margin: 0 0 5px;
65
+ display: block;
66
+ }
67
+
68
+ .wpgp-widget-footer-links {
69
+ font-style: italic;
70
+ }
71
+
72
+ .wpgp-widget-footer-links a {
73
+ margin-right: 10px;
74
+ }
75
+
76
+ .powered-by-google {
77
+ background: url('../img/powered-by-google-on-white.png') no-repeat 0 0 transparent;
78
+ width: 104px;
79
+ height: 16px;
80
+ }
81
+
82
+ /*------------------------------------------------
83
+ Google Maps
84
+ ---------------------------------------------------*/
85
+ .map-canvas {
86
+ height: 100%;
87
+ margin: 0px;
88
+ padding: 0px;
89
+ min-height: 400px;
90
+ }
91
+
92
+ .google-autocomplete-map-wrap {
93
+ display: none;
94
+ }
95
+
96
+ .google-autocomplete-map-wrap .controls {
97
+ margin-top: 16px;
98
+ border: 1px solid transparent;
99
+ border-radius: 2px;
100
+ box-sizing: border-box;
101
+ -moz-box-sizing: border-box;
102
+ height: 32px;
103
+ outline: none;
104
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
105
+ }
106
+
107
+ .marker-label,
108
+ .marker-icon {
109
+ z-index: 99;
110
+ position: absolute;
111
+ display: block;
112
+ margin-top: -50px;
113
+ margin-left: -25px;
114
+ width: 50px;
115
+ height: 50px;
116
+ font-size: 30px !important;
117
+ text-align: center;
118
+ color: #FFFFFF;
119
+ white-space: nowrap;
120
+ }
121
+
122
+ /* PAC input */
123
+
124
+ .pac-input {
125
+ background-color: #fff;
126
+ padding: 0 11px 0 13px;
127
+ width: 100%;
128
+ font-family: Roboto;
129
+ font-size: 15px;
130
+ font-weight: 300;
131
+ text-overflow: ellipsis;
132
+ display: none;
133
+ }
134
+
135
+ .pac-input:focus {
136
+ border-color: #4d90fe;
137
+ width: 100%;
138
+ }
139
+
140
+ .map-canvas .pac-input {
141
+ left:10px !important;
142
+ top: 42px !important;
143
+ display: block !important;
144
+ width: 92%;
145
+ line-height: 26px;
146
+ margin:0;
147
+ }
148
+
149
+
150
+
151
+
152
+ .pac-container {
153
+ font-family: Roboto;
154
+ }
155
+
156
+ /* Type Selector */
157
+
158
+ .type-selector {
159
+ color: #fff;
160
+ background-color: #4d90fe;
161
+ padding: 5px 11px 0px 11px;
162
+ display: none;
163
+ }
164
+
165
+ .type-selector label {
166
+ font-family: Roboto;
167
+ font-size: 13px;
168
+ font-weight: 300;
169
+ }
170
+
171
+ .map-canvas .type-selector {
172
+ left:0 !important;
173
+ top: 0 !important;
174
+ display: block !important;
175
+ margin: 0;
176
+ width: 100%;
177
+ }
178
+
179
+
180
+ ul.map-control-list {
181
+ margin: 0;
182
+ padding: 0;
183
+ }
184
+
185
+ .map-control-list li {
186
+ float: left;
187
+ margin: 0 10px 0 0;
188
+ }
189
+
190
+ .map-control-list li:last-child {
191
+ margin-right: 0;
192
+ }
193
+
194
+ .map-control-list li input[type="radio"] {
195
+ margin: 0 2px 0 0;
196
+ }
197
+
198
+ /*-------------------------------------------
199
+ Helper Classes
200
+ ---------------------------------------------*/
201
+ .clearfix {
202
+ *zoom: 1;
203
+ }
204
+
205
+ .clearfix:before, .clearfix:after {
206
+ display: table;
207
+ content: "";
208
+ line-height: 0;
209
+ }
210
+
211
+ .clearfix:after {
212
+ clear: both;
213
+ }
214
+
215
+ .hide-text {
216
+ font: 0/0 a;
217
+ color: transparent;
218
+ text-shadow: none;
219
+ background-color: transparent;
220
+ border: 0;
221
+ }
222
+
223
+ .input-block-level {
224
+ display: block;
225
+ width: 100%;
226
+ min-height: 30px;
227
+ -webkit-box-sizing: border-box;
228
+ -moz-box-sizing: border-box;
229
+ box-sizing: border-box;
230
+ }
231
+
232
+ .clickable + .toggle-item {
233
+ padding: 0 5px;
234
+ }
235
+
236
+ /*----------------------------------------
237
+ Toggle Tips
238
+ -------------------------------------------*/
239
+
240
+ .tooltip {
241
+ position: absolute;
242
+ z-index: 1030;
243
+ display: block;
244
+ visibility: visible;
245
+ padding: 5px;
246
+ font-size: 11px;
247
+ opacity: 0;
248
+ filter: alpha(opacity=0);
249
+ }
250
+
251
+ .tooltip.in {
252
+ opacity: 0.8;
253
+ filter: alpha(opacity=80);
254
+ }
255
+
256
+ .tooltip.top {
257
+ margin-top: -3px;
258
+ }
259
+
260
+ .tooltip.right {
261
+ margin-left: 3px;
262
+ }
263
+
264
+ .tooltip.bottom {
265
+ margin-top: 3px;
266
+ }
267
+
268
+ .tooltip.left {
269
+ margin-left: -3px;
270
+ }
271
+
272
+ .tooltip-inner {
273
+ max-width: 200px;
274
+ padding: 3px 8px;
275
+ color: #ffffff;
276
+ text-align: center;
277
+ text-decoration: none;
278
+ background-color: #000000;
279
+ -webkit-border-radius: 4px;
280
+ -moz-border-radius: 4px;
281
+ border-radius: 4px;
282
+ }
283
+
284
+ .tooltip-arrow {
285
+ position: absolute;
286
+ width: 0;
287
+ height: 0;
288
+ border-color: transparent;
289
+ border-style: solid;
290
+ }
291
+
292
+ .tooltip.top .tooltip-arrow {
293
+ bottom: 0;
294
+ left: 50%;
295
+ margin-left: -5px;
296
+ border-width: 5px 5px 0;
297
+ border-top-color: #000000;
298
+ }
299
+
300
+ .tooltip.right .tooltip-arrow {
301
+ top: 50%;
302
+ left: 0;
303
+ margin-top: -5px;
304
+ border-width: 5px 5px 5px 0;
305
+ border-right-color: #000000;
306
+ }
307
+
308
+ .tooltip.left .tooltip-arrow {
309
+ top: 50%;
310
+ right: 0;
311
+ margin-top: -5px;
312
+ border-width: 5px 0 5px 5px;
313
+ border-left-color: #000000;
314
+ }
315
+
316
+ .tooltip.bottom .tooltip-arrow {
317
+ top: 0;
318
+ left: 50%;
319
+ margin-left: -5px;
320
+ border-width: 0 5px 5px;
321
+ border-bottom-color: #000000;
322
+ }
323
+
324
+ /*----------------------------------------
325
+ Tipsy
326
+ -------------------------------------------*/
327
+
328
+ .tooltip-info {
329
+ cursor: help;
330
+ margin: -3px 0 0 5px;
331
+ position: relative;
332
+ top: 3px;
333
+ }
334
+
335
+ .tipsy {
336
+ font-size: 10px;
337
+ position: absolute;
338
+ padding: 5px;
339
+ z-index: 100000;
340
+ }
341
+
342
+ .tipsy-inner {
343
+ background-color: #000;
344
+ color: #FFF;
345
+ max-width: 200px;
346
+ padding: 5px 8px 4px 8px;
347
+ text-align: center;
348
+ }
349
+
350
+ /* Rounded corners */
351
+ .tipsy-inner {
352
+ border-radius: 3px;
353
+ -moz-border-radius: 3px;
354
+ -webkit-border-radius: 3px;
355
+ }
356
+
357
+ /* Uncomment for shadow */
358
+ /*.tipsy-inner { box-shadow: 0 0 5px #000000; -webkit-box-shadow: 0 0 5px #000000; -moz-box-shadow: 0 0 5px #000000; }*/
359
+
360
+ .tipsy-arrow {
361
+ position: absolute;
362
+ width: 0;
363
+ height: 0;
364
+ line-height: 0;
365
+ border: 5px dashed #000;
366
+ }
367
+
368
+ /* Rules to colour arrows */
369
+ .tipsy-arrow-n {
370
+ border-bottom-color: #000;
371
+ }
372
+
373
+ .tipsy-arrow-s {
374
+ border-top-color: #000;
375
+ }
376
+
377
+ .tipsy-arrow-e {
378
+ border-left-color: #000;
379
+ }
380
+
381
+ .tipsy-arrow-w {
382
+ border-right-color: #000;
383
+ }
384
+
385
+ .tipsy-n .tipsy-arrow {
386
+ top: 0px;
387
+ left: 50%;
388
+ margin-left: -5px;
389
+ border-bottom-style: solid;
390
+ border-top: none;
391
+ border-left-color: transparent;
392
+ border-right-color: transparent;
393
+ }
394
+
395
+ .tipsy-nw .tipsy-arrow {
396
+ top: 0;
397
+ left: 10px;
398
+ border-bottom-style: solid;
399
+ border-top: none;
400
+ border-left-color: transparent;
401
+ border-right-color: transparent;
402
+ }
403
+
404
+ .tipsy-ne .tipsy-arrow {
405
+ top: 0;
406
+ right: 10px;
407
+ border-bottom-style: solid;
408
+ border-top: none;
409
+ border-left-color: transparent;
410
+ border-right-color: transparent;
411
+ }
412
+
413
+ .tipsy-s .tipsy-arrow {
414
+ bottom: 0;
415
+ left: 50%;
416
+ margin-left: -5px;
417
+ border-top-style: solid;
418
+ border-bottom: none;
419
+ border-left-color: transparent;
420
+ border-right-color: transparent;
421
+ }
422
+
423
+ .tipsy-sw .tipsy-arrow {
424
+ bottom: 0;
425
+ left: 10px;
426
+ border-top-style: solid;
427
+ border-bottom: none;
428
+ border-left-color: transparent;
429
+ border-right-color: transparent;
430
+ }
431
+
432
+ .tipsy-se .tipsy-arrow {
433
+ bottom: 0;
434
+ right: 10px;
435
+ border-top-style: solid;
436
+ border-bottom: none;
437
+ border-left-color: transparent;
438
+ border-right-color: transparent;
439
+ }
440
+
441
+ .tipsy-e .tipsy-arrow {
442
+ right: 0;
443
+ top: 50%;
444
+ margin-top: -5px;
445
+ border-left-style: solid;
446
+ border-right: none;
447
+ border-top-color: transparent;
448
+ border-bottom-color: transparent;
449
+ }
450
+
451
+ .tipsy-w .tipsy-arrow {
452
+ left: 0;
453
+ top: 50%;
454
+ margin-top: -5px;
455
+ border-right-style: solid;
456
+ border-left: none;
457
+ border-top-color: transparent;
458
+ border-bottom-color: transparent;
459
+ }
admin/assets/css/admin-widget.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wpgp-toggler{padding:10px;margin:0 0 10px;cursor:pointer;background-color:#EBEBEB;border:1px solid #E5E5E5;display:block}.wpgp-toggler span{background:url(../img/arrows.png) no-repeat 60% -107px;float:right;height:12px;display:inline-block;width:12px}.wpgp-toggler.toggled span{background-position:60% 1px}.toggle-item,.reviews-toggle-container{display:none}.toggle-item p{padding:0;margin:0 0 10px}.toggle-item.toggled,.reviews-toggle-container.toggled{display:block}.widget-api-option{line-height:22px}.widget-api-option input{}.toggle-item select{background:#FFF}.wpgp-method-span:hover,.search-api-option:hover,.business-api-option:hover{cursor:pointer}.wpgp-method-label{padding-left:4px}.new-window{background:url(../img/new-window-icon.png) no-repeat right 3px transparent;padding-right:16px}.wpgp-radio-label{margin:0 0 5px;display:block}.wpgp-widget-footer-links{font-style:italic}.wpgp-widget-footer-links a{margin-right:10px}.powered-by-google{background:url(../img/powered-by-google-on-white.png) no-repeat 0 0 transparent;width:104px;height:16px}.map-canvas{height:100%;margin:0;padding:0;min-height:400px}.google-autocomplete-map-wrap{display:none}.google-autocomplete-map-wrap .controls{margin-top:16px;border:1px solid transparent;border-radius:2px;box-sizing:border-box;-moz-box-sizing:border-box;height:32px;outline:0;box-shadow:0 2px 6px rgba(0,0,0,.3)}.marker-label,.marker-icon{z-index:99;position:absolute;display:block;margin-top:-50px;margin-left:-25px;width:50px;height:50px;font-size:30px!important;text-align:center;color:#FFF;white-space:nowrap}.pac-input{background-color:#fff;padding:0 11px 0 13px;width:100%;font-family:Roboto;font-size:15px;font-weight:300;text-overflow:ellipsis;display:none}.pac-input:focus{border-color:#4d90fe;width:100%}.map-canvas .pac-input{left:10px!important;top:42px!important;display:block!important;width:92%;line-height:26px;margin:0}.pac-container{font-family:Roboto}.type-selector{color:#fff;background-color:#4d90fe;padding:5px 11px 0;display:none}.type-selector label{font-family:Roboto;font-size:13px;font-weight:300}.map-canvas .type-selector{left:0!important;top:0!important;display:block!important;margin:0;width:100%}ul.map-control-list{margin:0;padding:0}.map-control-list li{float:left;margin:0 10px 0 0}.map-control-list li:last-child{margin-right:0}.map-control-list li input[type=radio]{margin:0 2px 0 0}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clickable+.toggle-item{padding:0 5px}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-info{cursor:help;margin:-3px 0 0 5px;position:relative;top:3px}.tipsy{font-size:10px;position:absolute;padding:5px;z-index:100000}.tipsy-inner{background-color:#000;color:#FFF;max-width:200px;padding:5px 8px 4px;text-align:center}.tipsy-inner{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.tipsy-arrow-n{border-bottom-color:#000}.tipsy-arrow-s{border-top-color:#000}.tipsy-arrow-e{border-left-color:#000}.tipsy-arrow-w{border-right-color:#000}.tipsy-n .tipsy-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:0;border-top-color:transparent;border-bottom-color:transparent}
admin/assets/css/admin.css ADDED
@@ -0,0 +1,687 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Google Places Map CPT Styles
3
+ */
4
+
5
+ .clear:before,
6
+ .clear:after {
7
+ content: " ";
8
+ display: table;
9
+ }
10
+
11
+ .clear:after {
12
+ clear: both;
13
+ }
14
+
15
+ .hover-transition, .marker-icon-row .icon, .marker-row .marker-item {
16
+ -webkit-transition: 0.2s all linear;
17
+ -moz-transition: 0.2s all linear;
18
+ -o-transition: 0.2s all linear;
19
+ transition: 0.2s all linear;
20
+ }
21
+
22
+ #gmb_markers_group_repeat {
23
+ /*display: none;*/
24
+ }
25
+
26
+ .cmb_id_gmb_theme_json {
27
+ display: none;
28
+ }
29
+
30
+ .marker-info-wrapper {
31
+ background-color: #F1F1F1;
32
+ margin: 8px 0 4px;
33
+ padding: 12px 12px 12px 12px;
34
+ font-size: 13px;
35
+ }
36
+
37
+ .marker-info-wrapper > div {
38
+ margin: 0 0 5px;
39
+ padding: 0;
40
+ }
41
+
42
+ .marker-info-wrapper > div.rating-wrap {
43
+ margin: 0;
44
+ padding: 0;
45
+ }
46
+
47
+ .repeatable-grouping .cmb-nested-table td {
48
+ padding-top: 3px;
49
+ }
50
+
51
+ .repeatable-grouping .cmb-nested-table td pre {
52
+ margin: 0;
53
+ }
54
+
55
+ .repeatable-grouping .cmb-nested-table td pre textarea {
56
+ height: 50px;
57
+ }
58
+
59
+ .new-window {
60
+ background: url('../img/new-window-icon.png') no-repeat right 3px transparent;
61
+ padding-right: 16px;
62
+ }
63
+
64
+
65
+ /*------------------------------------------
66
+ CMB Interface
67
+ --------------------------------------------*/
68
+
69
+ .cmb_metabox_description {
70
+ display: block;
71
+ margin-top: 5px;
72
+ }
73
+
74
+ .cmb_id_gmb_places_search_multicheckbox ul {
75
+ overflow: hidden;
76
+ }
77
+
78
+ .cmb_id_gmb_places_search_multicheckbox li {
79
+ float: left;
80
+ width: 33%;
81
+ }
82
+
83
+ .cmb_id_gmb_places_search_multicheckbox .cmb_metabox_description {
84
+ margin-top: 10px;
85
+ margin-right: 2px;
86
+ }
87
+
88
+ #google-map-wrap {
89
+ position: relative;
90
+ }
91
+
92
+ .autocomplete-wrap {
93
+ background: url('../img/powered-by-google-on-white.png') no-repeat right 8px rgba(0, 0, 0, 0);
94
+ }
95
+
96
+ .repeatable-group .shift-rows {
97
+ display: none;
98
+ }
99
+
100
+ /*------------------------------------------
101
+ Messages
102
+ --------------------------------------------*/
103
+
104
+ .wpgp-message {
105
+ background-color: #FFF;
106
+ border-left: 4px solid #7AD03A;
107
+ -webkit-box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.15);
108
+ box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.15);
109
+ box-sizing: border-box;
110
+ -webkit-box-sizing: border-box;
111
+ -moz-box-sizing: border-box;
112
+ padding: 1px 12px;
113
+ display: none;
114
+ }
115
+
116
+ .wpgp-message.warning-message {
117
+ border-left: 4px solid #d40000;
118
+ margin: 20px 0 0;
119
+ }
120
+
121
+ .wpgp-message p, .form-table td .wpgp-message p {
122
+ margin: .5em 0;
123
+ padding: 2px;
124
+ }
125
+
126
+ .places-change-message {
127
+ margin-bottom: 15px;
128
+ margin-right: 2px;
129
+ }
130
+
131
+ .places-change-message p {
132
+ float: left;
133
+ }
134
+
135
+ .places-change-message .button {
136
+ float: right;
137
+ margin-top: 5px;
138
+ }
139
+
140
+ #google-map-wrap .wpgp-message {
141
+ margin-top: 20px;
142
+ }
143
+
144
+ /*------------------------------------------
145
+ Google Map Metabox
146
+ --------------------------------------------*/
147
+
148
+ #map {
149
+ width: 100%;
150
+ margin: 0 auto;
151
+ }
152
+
153
+ .places-loading {
154
+ background: url('../img/spinner.gif') no-repeat center right transparent;
155
+ font-style: italic;
156
+ position: absolute;
157
+ top: -34px;
158
+ right: 31px;
159
+ padding: 0 25px 0 0;
160
+ display: none;
161
+ }
162
+
163
+ .cmb_id_gmb_map_type td {
164
+ padding-bottom: 0;
165
+ }
166
+
167
+ .cmb_id_gmb_map_type .cmb_option {
168
+ margin: 5px 0 10px;
169
+ }
170
+
171
+ .cmb_id_gmb_geocoder td {
172
+ padding-bottom: 3px;
173
+ }
174
+
175
+ /*------------------------------------------
176
+ General Styles
177
+ --------------------------------------------*/
178
+
179
+ .cmb_id_gmb_search_radius, .cmb_id_gmb_places_search_multicheckbox {
180
+ display: none;
181
+ }
182
+
183
+ #google_maps_details_options tr {
184
+ display: none;
185
+ }
186
+
187
+ #google_maps_details_options tr.cmb_id_gmb_show_poi {
188
+ display: table-row;
189
+ }
190
+
191
+ .snazzy-link {
192
+ font-size: 10px;
193
+ text-transform: uppercase;
194
+ font-style: normal;
195
+ display: inline-block;
196
+ }
197
+
198
+ .width_unit_label, .width_radio, .map-width, .map-height, .size-label {
199
+ float: left !important;
200
+ }
201
+
202
+ #width_wrap {
203
+ margin: 0 0 10px;
204
+ }
205
+
206
+ #size_labels_wrap {
207
+ margin: 8px 0 0 10px;
208
+ padding: 0;
209
+ float: left;
210
+ }
211
+
212
+ #width_unit_percent {
213
+ margin: 0 3px 0 0;
214
+ }
215
+
216
+ #width_unit_px {
217
+ margin: 0 3px 0 8px;
218
+ }
219
+
220
+ .inner-sidebar table.cmb_metabox label.size-label, #side-sortables table.cmb_metabox label.size-label, label.size-label {
221
+ font-weight: normal;
222
+ font-style: italic;
223
+ }
224
+
225
+ .inner-sidebar table.cmb_metabox label.size-label, #side-sortables table.cmb_metabox label.size-label, .form-table label.size-label {
226
+ padding: 9px 0 0;
227
+ width: 50px;
228
+ font-weight: normal;
229
+ }
230
+
231
+ .map-width, .map-height {
232
+ width: 55px !important
233
+ }
234
+
235
+ /*------------------------------------------
236
+ Place Markers
237
+ --------------------------------------------*/
238
+
239
+ #google-map-wrap div#infobubble-content {
240
+ line-height: 1.35;
241
+ /*overflow: hidden;*/
242
+ /*white-space: nowrap;*/
243
+ }
244
+
245
+ #infobubble-content.loading {
246
+ background: url('../../../includes/assets/img/loading.GIF') no-repeat center center #FFF;
247
+ }
248
+
249
+ #google-map-wrap div#infobubble-content > div {
250
+ white-space: normal;
251
+ }
252
+
253
+ .gm-style-iw, .gm-style-iw > div {
254
+ overflow: visible !important;
255
+ }
256
+
257
+ #infobubble-content p {
258
+ font-size: 12px;
259
+ margin: 0 0 7px;
260
+ color: #2C2C2C;
261
+ }
262
+
263
+ #infobubble-content {
264
+ padding: 0 0 0 0;
265
+ margin: 3px -20px 0 0;
266
+ min-width: 314px;
267
+ min-height: 80px;
268
+ height: 100%;
269
+ overflow: hidden;
270
+ box-sizing: border-box;
271
+ cursor: default;
272
+ }
273
+
274
+ #infobubble-content .place-title {
275
+ border: 1px solid #FFF;
276
+ font-family: Roboto, Arial, sans-serif;
277
+ font-size: 16px;
278
+ line-height: 21px;
279
+ font-weight: 700;
280
+ min-height: 21px;
281
+ white-space: normal;
282
+ padding-right: 20px;
283
+ }
284
+
285
+ #infobubble-content .place-description {
286
+ white-space: normal;
287
+ }
288
+
289
+ .marker-confirm-place {
290
+ margin: 0 8px 4px 0;
291
+ display: inline-block;
292
+ }
293
+
294
+ .marker-confirm-place:hover {
295
+ cursor: pointer;
296
+ }
297
+
298
+ /* Ratings */
299
+ #infobubble-content .rating-wrap {
300
+ overflow: hidden;
301
+ }
302
+
303
+ #infobubble-content .numeric-rating {
304
+ font-size: 16px;
305
+ color: #DD4B39;
306
+ font-weight: 400;
307
+ float: left;
308
+ margin: 0 5px 0 0;
309
+ }
310
+
311
+ #infobubble-content .star-rating-wrap {
312
+ background: url('../../../includes/assets/img/review_stars.png') no-repeat 0 0 transparent;
313
+ height: 13px;
314
+ width: 67px;
315
+ float: left;
316
+ margin: 5px 0 0;
317
+ }
318
+
319
+ #infobubble-content .star-rating-size {
320
+ background: url('../../../includes/assets/img/review_stars.png') no-repeat 0 -13px transparent;
321
+ height: 13px;
322
+ }
323
+
324
+ /*------------------------------------------
325
+ Editable Marker
326
+ --------------------------------------------*/
327
+
328
+ #edit-toolbar {
329
+ list-style: none;
330
+ margin: 0;
331
+ padding: 0;
332
+ text-align: right;
333
+ }
334
+
335
+ #edit-toolbar > li {
336
+ margin: 0 4px;
337
+ cursor: pointer;
338
+ display: inline-block;
339
+ content: '';
340
+ height: 21px;
341
+ width: 21px;
342
+ opacity: .5;
343
+ background: url('../img/icons-infowindow-002.svg');
344
+ }
345
+
346
+ #edit-toolbar > li:hover {
347
+ opacity: .75;
348
+ }
349
+
350
+ #edit-toolbar > li.trash-marker {
351
+ background-position: -42px 0;
352
+ }
353
+
354
+ #edit-toolbar > li.edit-info {
355
+ background: url('../img/icons-app-000.svg');
356
+ background-position: 21px 21px;
357
+ }
358
+
359
+ /*------------------------------------------
360
+ Display Options
361
+ --------------------------------------------*/
362
+
363
+ #lat-lng-wrap input[type=text].latitude, #lat-lng-wrap input[type=text].longitude,
364
+ #side-sortables #lat-lng-wrap input[type=text].latitude, #side-sortables #lat-lng-wrap input[type=text].longitude {
365
+ width: 100px;
366
+ float: left;
367
+ }
368
+
369
+ .lat-lng-wrap {
370
+ float: left;
371
+ margin: 0 0 10px;
372
+ clear: none;
373
+ }
374
+
375
+ .lng-wrap {
376
+ margin-bottom: 0;
377
+ }
378
+
379
+ .lat-lng-wrap > span, .lat-lng-wrap > input {
380
+ float: left;
381
+ }
382
+
383
+ .lat-lng-wrap > span {
384
+ margin: 8px 5px 0 0;
385
+ width: 80px;
386
+ font-style: italic;
387
+ }
388
+
389
+ /* Mini message */
390
+
391
+ .lat-lng-change-message {
392
+ float: left;
393
+ clear: both;
394
+ margin: 10px 0 0;
395
+ width: 100%;
396
+ }
397
+
398
+ .lat-lng-change-message > p {
399
+ float: left;
400
+ }
401
+
402
+ .lat-lng-update-btn {
403
+ float: right;
404
+ margin: 7px 0 0 !important;
405
+ }
406
+
407
+ /*-------------------------------------
408
+ Autocomplete Metabox
409
+ ---------------------------------------*/
410
+ #google_maps_metabox .search-autocomplete {
411
+ width: 78%;
412
+ margin-right: 10px;
413
+ }
414
+
415
+ #google_maps_metabox .autocomplete-wrap p {
416
+ font-style: italic;
417
+ margin-bottom: 5px !important;
418
+ }
419
+
420
+ #google_maps_metabox a.drop-marker {
421
+ font-style: normal;
422
+ }
423
+
424
+ /*-------------------------------------
425
+ Save Info Window Toolbar
426
+ ---------------------------------------*/
427
+
428
+ #save-toolbar {
429
+ margin: 0;
430
+ padding: 0;
431
+ float: left;
432
+ }
433
+
434
+ #save-toolbar > li {
435
+ display: inline-block;
436
+ margin: 0;
437
+ padding: 0;
438
+ }
439
+
440
+ #save-toolbar > li:first-child {
441
+ margin: 0 5px 0 0;
442
+ }
443
+
444
+ #save-toolbar > li .google-btn {
445
+ width: 75px;
446
+ }
447
+
448
+ a.marker-edit-link {
449
+ background: url('../img/marker-btn.png') no-repeat 0 0 transparent;
450
+ width: 20px;
451
+ height: 20px;
452
+ opacity: 0.5;
453
+ margin: 4px 0 0;
454
+ display: block;
455
+ float: right;
456
+ }
457
+
458
+ #save-toolbar > li .marker-edit-link {
459
+ opacity: 0.75;
460
+ }
461
+
462
+ #infobubble-content .edit-place-title {
463
+ width: 290px;
464
+ }
465
+
466
+ #infobubble-content .edit-place-description {
467
+ display: block;
468
+ font-size: 12px;
469
+ width: 100%;
470
+ min-height: 100px;
471
+ }
472
+
473
+ /*-------------------------------------
474
+ Marker Icon Modal
475
+ ---------------------------------------*/
476
+
477
+ .marker-icon-row {
478
+ margin-bottom: 10px;
479
+ }
480
+
481
+ .marker-icon-row, .save-marker-icon {
482
+ display: none;
483
+ }
484
+
485
+ .marker-icon-row .icon, .marker-row .marker-item {
486
+ width: 31%;
487
+ float: left;
488
+ font-size: 14px;
489
+ margin-bottom: 10px;
490
+ padding: 4px;
491
+ border-radius: 5px;
492
+ }
493
+
494
+ .icon-inner {
495
+ position: relative;
496
+ top: -8px;
497
+ }
498
+
499
+ .marker-icon-row .icon span {
500
+ font-size: 32px;
501
+ margin-right: 8px;
502
+ position: relative;
503
+ top: 8px;
504
+ }
505
+
506
+ .marker-icon-row .icon:hover, .marker-row .marker-item:hover, .marker-item-selected {
507
+ cursor: pointer;
508
+ background: #DDEAEC;
509
+ }
510
+
511
+ .marker-label {
512
+ z-index: 99;
513
+ position: absolute;
514
+ display: block;
515
+ margin-top: -50px;
516
+ margin-left: -25px;
517
+ width: 50px;
518
+ height: 50px;
519
+ font-size: 28px;
520
+ text-align: center;
521
+ color: #FFFFFF;
522
+ white-space: nowrap;
523
+ line-height: 1;
524
+ }
525
+
526
+ /* Color */
527
+
528
+ .marker-icon-color-wrap, .marker-label-color-wrap {
529
+ display: none;
530
+ }
531
+
532
+ .marker-label-color-wrap {
533
+ margin-bottom: 60px;
534
+ }
535
+
536
+ .marker-color-picker-wrap {
537
+ float: left;
538
+ }
539
+
540
+ #TB_ajaxContent p.color-desc {
541
+ float: left;
542
+ margin: 0 0 0 10px;
543
+ padding-top: 3px;
544
+ font-style: italic;
545
+ }
546
+
547
+ /* Pins */
548
+
549
+ .marker-row .marker-item {
550
+ float: left;
551
+ width: 31%;
552
+ }
553
+
554
+ .marker-svg {
555
+ float: left;
556
+ margin-right: 12px;
557
+ height: 50px;
558
+ }
559
+
560
+ .marker-svg .default-marker {
561
+ margin: 8px 0 0 10px;
562
+ }
563
+
564
+ .marker-description {
565
+ line-height: 50px;
566
+ }
567
+
568
+ /* Save button */
569
+
570
+ .save-marker-icon {
571
+ background: #F1F1F1;
572
+ padding: 10px;
573
+ position: absolute;
574
+ bottom: 0;
575
+ left: 0;
576
+ width: 100%;
577
+ box-sizing: border-box;
578
+ -moz-box-sizing: border-box;
579
+ -webkit-box-sizing: border-box;
580
+ border-top: 1px solid #DFDFDF;
581
+ }
582
+
583
+ .save-marker-icon .save-text {
584
+ float: left;
585
+ font-style: italic;
586
+ margin: 0;
587
+ }
588
+
589
+ .save-marker-icon .button {
590
+ float: right;
591
+ }
592
+
593
+ .radius-label {
594
+ position: relative;
595
+ top: 35px;
596
+ color: #7dbee8;
597
+ }
598
+
599
+ /*-------------------------------------
600
+ Buttons
601
+ ---------------------------------------*/
602
+
603
+ .google-btn {
604
+ -webkit-border-radius: 2px;
605
+ border-radius: 2px;
606
+ cursor: default;
607
+ font-weight: 300;
608
+ font-size: 13px;
609
+ text-align: center;
610
+ white-space: nowrap;
611
+ height: 27px;
612
+ line-height: 27px;
613
+ min-width: 54px;
614
+ outline: 0;
615
+ padding: 0 8px;
616
+
617
+ }
618
+
619
+ .google-btn-blue {
620
+ -webkit-box-shadow: none;
621
+ box-shadow: none;
622
+ background-color: #4D90FE;
623
+ background-image: -webkit-linear-gradient(top, #4D90FE, #4787ED);
624
+ background-image: linear-gradient(top, #4d90fe, #4787ed);
625
+ border: 1px solid #3079ED;
626
+ color: #FFF;
627
+ }
628
+
629
+ .google-btn-blue:hover {
630
+ -webkit-box-shadow: none;
631
+ box-shadow: none;
632
+ background-color: #357AE8;
633
+ background-image: -webkit-linear-gradient(top, #4D90FE, #357AE8);
634
+ background-image: linear-gradient(top, #4d90fe, #357ae8);
635
+ border: 1px solid #2F5BB7;
636
+ border-bottom-color: #2F5BB7;
637
+ }
638
+
639
+ .google-btn-blue:active, .google-btn-blue:focus {
640
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3);
641
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3);
642
+ background: #357AE8;
643
+ border: 1px solid #2F5BB7;
644
+ border-top: 1px solid #2F5BB7;
645
+ }
646
+
647
+ .google-btn-default {
648
+ -webkit-box-shadow: none;
649
+ box-shadow: none;
650
+ background-color: #F5F5F5;
651
+ background-image: -webkit-linear-gradient(top, #F5F5F5, #F1F1F1);
652
+ background-image: linear-gradient(top, #f5f5f5, #f1f1f1);
653
+ color: #333;
654
+ border: 1px solid #DCDCDC;
655
+ border: 1px solid rgba(0, 0, 0, 0.1);
656
+ }
657
+
658
+ .google-btn-default:hover {
659
+ -webkit-box-shadow: none;
660
+ box-shadow: none;
661
+ background-color: #F8F8F8;
662
+ background-image: -webkit-linear-gradient(top, #F8F8F8, #F1F1F1);
663
+ background-image: linear-gradient(top, #f8f8f8, #f1f1f1);
664
+ border: 1px solid #C6C6C6;
665
+ color: #111;
666
+ }
667
+
668
+ .google-btn-default:active {
669
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
670
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
671
+ background: #F8F8F8;
672
+ color: #111;
673
+ }
674
+
675
+ /*-------------------------------------
676
+ Temporary Info Window
677
+ ---------------------------------------*/
678
+
679
+ .infowindow-toolbar {
680
+ display: block;
681
+ margin: 0;
682
+ padding: 8px 0 5px;
683
+ }
684
+
685
+ .add-marker {
686
+ text-decoration: none;
687
+ }
admin/assets/css/admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}.hover-transition,.marker-icon-row .icon,.marker-row .marker-item{-webkit-transition:.2s all linear;-moz-transition:.2s all linear;-o-transition:.2s all linear;transition:.2s all linear}#gmb_markers_group_repeat{}.cmb_id_gmb_theme_json{display:none}.marker-info-wrapper{background-color:#F1F1F1;margin:8px 0 4px;padding:12px;font-size:13px}.marker-info-wrapper>div{margin:0 0 5px;padding:0}.marker-info-wrapper>div.rating-wrap{margin:0;padding:0}.repeatable-grouping .cmb-nested-table td{padding-top:3px}.repeatable-grouping .cmb-nested-table td pre{margin:0}.repeatable-grouping .cmb-nested-table td pre textarea{height:50px}.new-window{background:url(../img/new-window-icon.png) no-repeat right 3px transparent;padding-right:16px}.cmb_metabox_description{display:block;margin-top:5px}.cmb_id_gmb_places_search_multicheckbox ul{overflow:hidden}.cmb_id_gmb_places_search_multicheckbox li{float:left;width:33%}.cmb_id_gmb_places_search_multicheckbox .cmb_metabox_description{margin-top:10px;margin-right:2px}#google-map-wrap{position:relative}.autocomplete-wrap{background:url(../img/powered-by-google-on-white.png) no-repeat right 8px rgba(0,0,0,0)}.repeatable-group .shift-rows{display:none}.wpgp-message{background-color:#FFF;border-left:4px solid #7AD03A;-webkit-box-shadow:1px 1px 1px 1px rgba(0,0,0,.15);box-shadow:1px 1px 1px 1px rgba(0,0,0,.15);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:1px 12px;display:none}.wpgp-message.warning-message{border-left:4px solid #d40000;margin:20px 0 0}.wpgp-message p,.form-table td .wpgp-message p{margin:.5em 0;padding:2px}.places-change-message{margin-bottom:15px;margin-right:2px}.places-change-message p{float:left}.places-change-message .button{float:right;margin-top:5px}#google-map-wrap .wpgp-message{margin-top:20px}#map{width:100%;margin:0 auto}.places-loading{background:url(../img/spinner.gif) no-repeat center right transparent;font-style:italic;position:absolute;top:-34px;right:31px;padding:0 25px 0 0;display:none}.cmb_id_gmb_map_type td{padding-bottom:0}.cmb_id_gmb_map_type .cmb_option{margin:5px 0 10px}.cmb_id_gmb_geocoder td{padding-bottom:3px}.cmb_id_gmb_search_radius,.cmb_id_gmb_places_search_multicheckbox{display:none}#google_maps_details_options tr{display:none}#google_maps_details_options tr.cmb_id_gmb_show_poi{display:table-row}.snazzy-link{font-size:10px;text-transform:uppercase;font-style:normal;display:inline-block}.width_unit_label,.width_radio,.map-width,.map-height,.size-label{float:left!important}#width_wrap{margin:0 0 10px}#size_labels_wrap{margin:8px 0 0 10px;padding:0;float:left}#width_unit_percent{margin:0 3px 0 0}#width_unit_px{margin:0 3px 0 8px}.inner-sidebar table.cmb_metabox label.size-label,#side-sortables table.cmb_metabox label.size-label,label.size-label{font-weight:400;font-style:italic}.inner-sidebar table.cmb_metabox label.size-label,#side-sortables table.cmb_metabox label.size-label,.form-table label.size-label{padding:9px 0 0;width:50px;font-weight:400}.map-width,.map-height{width:55px!important}#google-map-wrap div#infobubble-content{line-height:1.35}#infobubble-content.loading{background:url(../../../includes/assets/img/loading.GIF) no-repeat center center #FFF}#google-map-wrap div#infobubble-content>div{white-space:normal}.gm-style-iw,.gm-style-iw>div{overflow:visible!important}#infobubble-content p{font-size:12px;margin:0 0 7px;color:#2C2C2C}#infobubble-content{padding:0;margin:3px -20px 0 0;min-width:314px;min-height:80px;height:100%;overflow:hidden;box-sizing:border-box;cursor:default}#infobubble-content .place-title{border:1px solid #FFF;font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:21px;font-weight:700;min-height:21px;white-space:normal;padding-right:20px}#infobubble-content .place-description{white-space:normal}.marker-confirm-place{margin:0 8px 4px 0;display:inline-block}.marker-confirm-place:hover{cursor:pointer}#infobubble-content .rating-wrap{overflow:hidden}#infobubble-content .numeric-rating{font-size:16px;color:#DD4B39;font-weight:400;float:left;margin:0 5px 0 0}#infobubble-content .star-rating-wrap{background:url(../../../includes/assets/img/review_stars.png) no-repeat 0 0 transparent;height:13px;width:67px;float:left;margin:5px 0 0}#infobubble-content .star-rating-size{background:url(../../../includes/assets/img/review_stars.png) no-repeat 0 -13px transparent;height:13px}#edit-toolbar{list-style:none;margin:0;padding:0;text-align:right}#edit-toolbar>li{margin:0 4px;cursor:pointer;display:inline-block;content:'';height:21px;width:21px;opacity:.5;background:url(../img/icons-infowindow-002.svg)}#edit-toolbar>li:hover{opacity:.75}#edit-toolbar>li.trash-marker{background-position:-42px 0}#edit-toolbar>li.edit-info{background:url(../img/icons-app-000.svg);background-position:21px 21px}#lat-lng-wrap input[type=text].latitude,#lat-lng-wrap input[type=text].longitude,#side-sortables #lat-lng-wrap input[type=text].latitude,#side-sortables #lat-lng-wrap input[type=text].longitude{width:100px;float:left}.lat-lng-wrap{float:left;margin:0 0 10px;clear:none}.lng-wrap{margin-bottom:0}.lat-lng-wrap>span,.lat-lng-wrap>input{float:left}.lat-lng-wrap>span{margin:8px 5px 0 0;width:80px;font-style:italic}.lat-lng-change-message{float:left;clear:both;margin:10px 0 0;width:100%}.lat-lng-change-message>p{float:left}.lat-lng-update-btn{float:right;margin:7px 0 0!important}#google_maps_metabox .search-autocomplete{width:78%;margin-right:10px}#google_maps_metabox .autocomplete-wrap p{font-style:italic;margin-bottom:5px!important}#google_maps_metabox a.drop-marker{font-style:normal}#save-toolbar{margin:0;padding:0;float:left}#save-toolbar>li{display:inline-block;margin:0;padding:0}#save-toolbar>li:first-child{margin:0 5px 0 0}#save-toolbar>li .google-btn{width:75px}a.marker-edit-link{background:url(../img/marker-btn.png) no-repeat 0 0 transparent;width:20px;height:20px;opacity:.5;margin:4px 0 0;display:block;float:right}#save-toolbar>li .marker-edit-link{opacity:.75}#infobubble-content .edit-place-title{width:290px}#infobubble-content .edit-place-description{display:block;font-size:12px;width:100%;min-height:100px}.marker-icon-row{margin-bottom:10px}.marker-icon-row,.save-marker-icon{display:none}.marker-icon-row .icon,.marker-row .marker-item{width:31%;float:left;font-size:14px;margin-bottom:10px;padding:4px;border-radius:5px}.icon-inner{position:relative;top:-8px}.marker-icon-row .icon span{font-size:32px;margin-right:8px;position:relative;top:8px}.marker-icon-row .icon:hover,.marker-row .marker-item:hover,.marker-item-selected{cursor:pointer;background:#DDEAEC}.marker-label{z-index:99;position:absolute;display:block;margin-top:-50px;margin-left:-25px;width:50px;height:50px;font-size:28px;text-align:center;color:#FFF;white-space:nowrap;line-height:1}.marker-icon-color-wrap,.marker-label-color-wrap{display:none}.marker-label-color-wrap{margin-bottom:60px}.marker-color-picker-wrap{float:left}#TB_ajaxContent p.color-desc{float:left;margin:0 0 0 10px;padding-top:3px;font-style:italic}.marker-row .marker-item{float:left;width:31%}.marker-svg{float:left;margin-right:12px;height:50px}.marker-svg .default-marker{margin:8px 0 0 10px}.marker-description{line-height:50px}.save-marker-icon{background:#F1F1F1;padding:10px;position:absolute;bottom:0;left:0;width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-top:1px solid #DFDFDF}.save-marker-icon .save-text{float:left;font-style:italic;margin:0}.save-marker-icon .button{float:right}.radius-label{position:relative;top:35px;color:#7dbee8}.google-btn{-webkit-border-radius:2px;border-radius:2px;cursor:default;font-weight:300;font-size:13px;text-align:center;white-space:nowrap;height:27px;line-height:27px;min-width:54px;outline:0;padding:0 8px}.google-btn-blue{-webkit-box-shadow:none;box-shadow:none;background-color:#4D90FE;background-image:-webkit-linear-gradient(top,#4D90FE,#4787ED);background-image:linear-gradient(top,#4d90fe,#4787ed);border:1px solid #3079ED;color:#FFF}.google-btn-blue:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#357AE8;background-image:-webkit-linear-gradient(top,#4D90FE,#357AE8);background-image:linear-gradient(top,#4d90fe,#357ae8);border:1px solid #2F5BB7;border-bottom-color:#2F5BB7}.google-btn-blue:active,.google-btn-blue:focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);box-shadow:inset 0 1px 2px rgba(0,0,0,.3);background:#357AE8;border:1px solid #2F5BB7;border-top:1px solid #2F5BB7}.google-btn-default{-webkit-box-shadow:none;box-shadow:none;background-color:#F5F5F5;background-image:-webkit-linear-gradient(top,#F5F5F5,#F1F1F1);background-image:linear-gradient(top,#f5f5f5,#f1f1f1);color:#333;border:1px solid #DCDCDC;border:1px solid rgba(0,0,0,.1)}.google-btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#F8F8F8;background-image:-webkit-linear-gradient(top,#F8F8F8,#F1F1F1);background-image:linear-gradient(top,#f8f8f8,#f1f1f1);border:1px solid #C6C6C6;color:#111}.google-btn-default:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);background:#F8F8F8;color:#111}.infowindow-toolbar{display:block;margin:0;padding:8px 0 5px}.add-marker{text-decoration:none}
admin/assets/css/grid.css ADDED
@@ -0,0 +1,890 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ -webkit-box-sizing: border-box;
3
+ -moz-box-sizing: border-box;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .clearfix:before, .clearfix:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-footer:before, .modal-footer:after {
8
+ content: " ";
9
+ display: table;
10
+ }
11
+
12
+ .container {
13
+ padding-left: 15px;
14
+ padding-right: 15px;
15
+ }
16
+
17
+ @media (min-width: 768px) {
18
+ .container {
19
+ width: 750px;
20
+ }
21
+ }
22
+
23
+ @media (min-width: 992px) {
24
+ .container {
25
+ width: 970px;
26
+ }
27
+ }
28
+
29
+ @media (min-width: 1200px) {
30
+ .container {
31
+ width: 1170px;
32
+ }
33
+ }
34
+
35
+ .container-fluid {
36
+ margin-right: auto;
37
+ margin-left: auto;
38
+ padding-left: 15px;
39
+ padding-right: 15px;
40
+ }
41
+
42
+ .row {
43
+ margin-left: -15px;
44
+ margin-right: -15px;
45
+ }
46
+
47
+ .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
48
+ position: relative;
49
+ min-height: 1px;
50
+ padding-left: 15px;
51
+ padding-right: 15px;
52
+ }
53
+
54
+ .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
55
+ float: left;
56
+ }
57
+
58
+ .col-xs-12 {
59
+ width: 100%;
60
+ }
61
+
62
+ .col-xs-11 {
63
+ width: 91.66666667%;
64
+ }
65
+
66
+ .col-xs-10 {
67
+ width: 83.33333333%;
68
+ }
69
+
70
+ .col-xs-9 {
71
+ width: 75%;
72
+ }
73
+
74
+ .col-xs-8 {
75
+ width: 66.66666667%;
76
+ }
77
+
78
+ .col-xs-7 {
79
+ width: 58.33333333%;
80
+ }
81
+
82
+ .col-xs-6 {
83
+ width: 50%;
84
+ }
85
+
86
+ .col-xs-5 {
87
+ width: 41.66666667%;
88
+ }
89
+
90
+ .col-xs-4 {
91
+ width: 33.33333333%;
92
+ }
93
+
94
+ .col-xs-3 {
95
+ width: 25%;
96
+ }
97
+
98
+ .col-xs-2 {
99
+ width: 16.66666667%;
100
+ }
101
+
102
+ .col-xs-1 {
103
+ width: 8.33333333%;
104
+ }
105
+
106
+ .col-xs-pull-12 {
107
+ right: 100%;
108
+ }
109
+
110
+ .col-xs-pull-11 {
111
+ right: 91.66666667%;
112
+ }
113
+
114
+ .col-xs-pull-10 {
115
+ right: 83.33333333%;
116
+ }
117
+
118
+ .col-xs-pull-9 {
119
+ right: 75%;
120
+ }
121
+
122
+ .col-xs-pull-8 {
123
+ right: 66.66666667%;
124
+ }
125
+
126
+ .col-xs-pull-7 {
127
+ right: 58.33333333%;
128
+ }
129
+
130
+ .col-xs-pull-6 {
131
+ right: 50%;
132
+ }
133
+
134
+ .col-xs-pull-5 {
135
+ right: 41.66666667%;
136
+ }
137
+
138
+ .col-xs-pull-4 {
139
+ right: 33.33333333%;
140
+ }
141
+
142
+ .col-xs-pull-3 {
143
+ right: 25%;
144
+ }
145
+
146
+ .col-xs-pull-2 {
147
+ right: 16.66666667%;
148
+ }
149
+
150
+ .col-xs-pull-1 {
151
+ right: 8.33333333%;
152
+ }
153
+
154
+ .col-xs-pull-0 {
155
+ right: 0%;
156
+ }
157
+
158
+ .col-xs-push-12 {
159
+ left: 100%;
160
+ }
161
+
162
+ .col-xs-push-11 {
163
+ left: 91.66666667%;
164
+ }
165
+
166
+ .col-xs-push-10 {
167
+ left: 83.33333333%;
168
+ }
169
+
170
+ .col-xs-push-9 {
171
+ left: 75%;
172
+ }
173
+
174
+ .col-xs-push-8 {
175
+ left: 66.66666667%;
176
+ }
177
+
178
+ .col-xs-push-7 {
179
+ left: 58.33333333%;
180
+ }
181
+
182
+ .col-xs-push-6 {
183
+ left: 50%;
184
+ }
185
+
186
+ .col-xs-push-5 {
187
+ left: 41.66666667%;
188
+ }
189
+
190
+ .col-xs-push-4 {
191
+ left: 33.33333333%;
192
+ }
193
+
194
+ .col-xs-push-3 {
195
+ left: 25%;
196
+ }
197
+
198
+ .col-xs-push-2 {
199
+ left: 16.66666667%;
200
+ }
201
+
202
+ .col-xs-push-1 {
203
+ left: 8.33333333%;
204
+ }
205
+
206
+ .col-xs-push-0 {
207
+ left: 0%;
208
+ }
209
+
210
+ .col-xs-offset-12 {
211
+ margin-left: 100%;
212
+ }
213
+
214
+ .col-xs-offset-11 {
215
+ margin-left: 91.66666667%;
216
+ }
217
+
218
+ .col-xs-offset-10 {
219
+ margin-left: 83.33333333%;
220
+ }
221
+
222
+ .col-xs-offset-9 {
223
+ margin-left: 75%;
224
+ }
225
+
226
+ .col-xs-offset-8 {
227
+ margin-left: 66.66666667%;
228
+ }
229
+
230
+ .col-xs-offset-7 {
231
+ margin-left: 58.33333333%;
232
+ }
233
+
234
+ .col-xs-offset-6 {
235
+ margin-left: 50%;
236
+ }
237
+
238
+ .col-xs-offset-5 {
239
+ margin-left: 41.66666667%;
240
+ }
241
+
242
+ .col-xs-offset-4 {
243
+ margin-left: 33.33333333%;
244
+ }
245
+
246
+ .col-xs-offset-3 {
247
+ margin-left: 25%;
248
+ }
249
+
250
+ .col-xs-offset-2 {
251
+ margin-left: 16.66666667%;
252
+ }
253
+
254
+ .col-xs-offset-1 {
255
+ margin-left: 8.33333333%;
256
+ }
257
+
258
+ .col-xs-offset-0 {
259
+ margin-left: 0%;
260
+ }
261
+
262
+ @media (min-width: 768px) {
263
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
264
+ float: left;
265
+ }
266
+
267
+ .col-sm-12 {
268
+ width: 100%;
269
+ }
270
+
271
+ .col-sm-11 {
272
+ width: 91.66666667%;
273
+ }
274
+
275
+ .col-sm-10 {
276
+ width: 83.33333333%;
277
+ }
278
+
279
+ .col-sm-9 {
280
+ width: 75%;
281
+ }
282
+
283
+ .col-sm-8 {
284
+ width: 66.66666667%;
285
+ }
286
+
287
+ .col-sm-7 {
288
+ width: 58.33333333%;
289
+ }
290
+
291
+ .col-sm-6 {
292
+ width: 50%;
293
+ }
294
+
295
+ .col-sm-5 {
296
+ width: 41.66666667%;
297
+ }
298
+
299
+ .col-sm-4 {
300
+ width: 33.33333333%;
301
+ }
302
+
303
+ .col-sm-3 {
304
+ width: 25%;
305
+ }
306
+
307
+ .col-sm-2 {
308
+ width: 16.66666667%;
309
+ }
310
+
311
+ .col-sm-1 {
312
+ width: 8.33333333%;
313
+ }
314
+
315
+ .col-sm-pull-12 {
316
+ right: 100%;
317
+ }
318
+
319
+ .col-sm-pull-11 {
320
+ right: 91.66666667%;
321
+ }
322
+
323
+ .col-sm-pull-10 {
324
+ right: 83.33333333%;
325
+ }
326
+
327
+ .col-sm-pull-9 {
328
+ right: 75%;
329
+ }
330
+
331
+ .col-sm-pull-8 {
332
+ right: 66.66666667%;
333
+ }
334
+
335
+ .col-sm-pull-7 {
336
+ right: 58.33333333%;
337
+ }
338
+
339
+ .col-sm-pull-6 {
340
+ right: 50%;
341
+ }
342
+
343
+ .col-sm-pull-5 {
344
+ right: 41.66666667%;
345
+ }
346
+
347
+ .col-sm-pull-4 {
348
+ right: 33.33333333%;
349
+ }
350
+
351
+ .col-sm-pull-3 {
352
+ right: 25%;
353
+ }
354
+
355
+ .col-sm-pull-2 {
356
+ right: 16.66666667%;
357
+ }
358
+
359
+ .col-sm-pull-1 {
360
+ right: 8.33333333%;
361
+ }
362
+
363
+ .col-sm-pull-0 {
364
+ right: 0%;
365
+ }
366
+
367
+ .col-sm-push-12 {
368
+ left: 100%;
369
+ }
370
+
371
+ .col-sm-push-11 {
372
+ left: 91.66666667%;
373
+ }
374
+
375
+ .col-sm-push-10 {
376
+ left: 83.33333333%;
377
+ }
378
+
379
+ .col-sm-push-9 {
380
+ left: 75%;
381
+ }
382
+
383
+ .col-sm-push-8 {
384
+ left: 66.66666667%;
385
+ }
386
+
387
+ .col-sm-push-7 {
388
+ left: 58.33333333%;
389
+ }
390
+
391
+ .col-sm-push-6 {
392
+ left: 50%;
393
+ }
394
+
395
+ .col-sm-push-5 {
396
+ left: 41.66666667%;
397
+ }
398
+
399
+ .col-sm-push-4 {
400
+ left: 33.33333333%;
401
+ }
402
+
403
+ .col-sm-push-3 {
404
+ left: 25%;
405
+ }
406
+
407
+ .col-sm-push-2 {
408
+ left: 16.66666667%;
409
+ }
410
+
411
+ .col-sm-push-1 {
412
+ left: 8.33333333%;
413
+ }
414
+
415
+ .col-sm-push-0 {
416
+ left: 0%;
417
+ }
418
+
419
+ .col-sm-offset-12 {
420
+ margin-left: 100%;
421
+ }
422
+
423
+ .col-sm-offset-11 {
424
+ margin-left: 91.66666667%;
425
+ }
426
+
427
+ .col-sm-offset-10 {
428
+ margin-left: 83.33333333%;
429
+ }
430
+
431
+ .col-sm-offset-9 {
432
+ margin-left: 75%;
433
+ }
434
+
435
+ .col-sm-offset-8 {
436
+ margin-left: 66.66666667%;
437
+ }
438
+
439
+ .col-sm-offset-7 {
440
+ margin-left: 58.33333333%;
441
+ }
442
+
443
+ .col-sm-offset-6 {
444
+ margin-left: 50%;
445
+ }
446
+
447
+ .col-sm-offset-5 {
448
+ margin-left: 41.66666667%;
449
+ }
450
+
451
+ .col-sm-offset-4 {
452
+ margin-left: 33.33333333%;
453
+ }
454
+
455
+ .col-sm-offset-3 {
456
+ margin-left: 25%;
457
+ }
458
+
459
+ .col-sm-offset-2 {
460
+ margin-left: 16.66666667%;
461
+ }
462
+
463
+ .col-sm-offset-1 {
464
+ margin-left: 8.33333333%;
465
+ }
466
+
467
+ .col-sm-offset-0 {
468
+ margin-left: 0%;
469
+ }
470
+ }
471
+
472
+ @media (min-width: 992px) {
473
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
474
+ float: left;
475
+ }
476
+
477
+ .col-md-12 {
478
+ width: 100%;
479
+ }
480
+
481
+ .col-md-11 {
482
+ width: 91.66666667%;
483
+ }
484
+
485
+ .col-md-10 {
486
+ width: 83.33333333%;
487
+ }
488
+
489
+ .col-md-9 {
490
+ width: 75%;
491
+ }
492
+
493
+ .col-md-8 {
494
+ width: 66.66666667%;
495
+ }
496
+
497
+ .col-md-7 {
498
+ width: 58.33333333%;
499
+ }
500
+
501
+ .col-md-6 {
502
+ width: 50%;
503
+ }
504
+
505
+ .col-md-5 {
506
+ width: 41.66666667%;
507
+ }
508
+
509
+ .col-md-4 {
510
+ width: 33.33333333%;
511
+ }
512
+
513
+ .col-md-3 {
514
+ width: 25%;
515
+ }
516
+
517
+ .col-md-2 {
518
+ width: 16.66666667%;
519
+ }
520
+
521
+ .col-md-1 {
522
+ width: 8.33333333%;
523
+ }
524
+
525
+ .col-md-pull-12 {
526
+ right: 100%;
527
+ }
528
+
529
+ .col-md-pull-11 {
530
+ right: 91.66666667%;
531
+ }
532
+
533
+ .col-md-pull-10 {
534
+ right: 83.33333333%;
535
+ }
536
+
537
+ .col-md-pull-9 {
538
+ right: 75%;
539
+ }
540
+
541
+ .col-md-pull-8 {
542
+ right: 66.66666667%;
543
+ }
544
+
545
+ .col-md-pull-7 {
546
+ right: 58.33333333%;
547
+ }
548
+
549
+ .col-md-pull-6 {
550
+ right: 50%;
551
+ }
552
+
553
+ .col-md-pull-5 {
554
+ right: 41.66666667%;
555
+ }
556
+
557
+ .col-md-pull-4 {
558
+ right: 33.33333333%;
559
+ }
560
+
561
+ .col-md-pull-3 {
562
+ right: 25%;
563
+ }
564
+
565
+ .col-md-pull-2 {
566
+ right: 16.66666667%;
567
+ }
568
+
569
+ .col-md-pull-1 {
570
+ right: 8.33333333%;
571
+ }
572
+
573
+ .col-md-pull-0 {
574
+ right: 0%;
575
+ }
576
+
577
+ .col-md-push-12 {
578
+ left: 100%;
579
+ }
580
+
581
+ .col-md-push-11 {
582
+ left: 91.66666667%;
583
+ }
584
+
585
+ .col-md-push-10 {
586
+ left: 83.33333333%;
587
+ }
588
+
589
+ .col-md-push-9 {
590
+ left: 75%;
591
+ }
592
+
593
+ .col-md-push-8 {
594
+ left: 66.66666667%;
595
+ }
596
+
597
+ .col-md-push-7 {
598
+ left: 58.33333333%;
599
+ }
600
+
601
+ .col-md-push-6 {
602
+ left: 50%;
603
+ }
604
+
605
+ .col-md-push-5 {
606
+ left: 41.66666667%;
607
+ }
608
+
609
+ .col-md-push-4 {
610
+ left: 33.33333333%;
611
+ }
612
+
613
+ .col-md-push-3 {
614
+ left: 25%;
615
+ }
616
+
617
+ .col-md-push-2 {
618
+ left: 16.66666667%;
619
+ }
620
+
621
+ .col-md-push-1 {
622
+ left: 8.33333333%;
623
+ }
624
+
625
+ .col-md-push-0 {
626
+ left: 0%;
627
+ }
628
+
629
+ .col-md-offset-12 {
630
+ margin-left: 100%;
631
+ }
632
+
633
+ .col-md-offset-11 {
634
+ margin-left: 91.66666667%;
635
+ }
636
+
637
+ .col-md-offset-10 {
638
+ margin-left: 83.33333333%;
639
+ }
640
+
641
+ .col-md-offset-9 {
642
+ margin-left: 75%;
643
+ }
644
+
645
+ .col-md-offset-8 {
646
+ margin-left: 66.66666667%;
647
+ }
648
+
649
+ .col-md-offset-7 {
650
+ margin-left: 58.33333333%;
651
+ }
652
+
653
+ .col-md-offset-6 {
654
+ margin-left: 50%;
655
+ }
656
+
657
+ .col-md-offset-5 {
658
+ margin-left: 41.66666667%;
659
+ }
660
+
661
+ .col-md-offset-4 {
662
+ margin-left: 33.33333333%;
663
+ }
664
+
665
+ .col-md-offset-3 {
666
+ margin-left: 25%;
667
+ }
668
+
669
+ .col-md-offset-2 {
670
+ margin-left: 16.66666667%;
671
+ }
672
+
673
+ .col-md-offset-1 {
674
+ margin-left: 8.33333333%;
675
+ }
676
+
677
+ .col-md-offset-0 {
678
+ margin-left: 0%;
679
+ }
680
+ }
681
+
682
+ @media (min-width: 1200px) {
683
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
684
+ float: left;
685
+ }
686
+
687
+ .col-lg-12 {
688
+ width: 100%;
689
+ }
690
+
691
+ .col-lg-11 {
692
+ width: 91.66666667%;
693
+ }
694
+
695
+ .col-lg-10 {
696
+ width: 83.33333333%;
697
+ }
698
+
699
+ .col-lg-9 {
700
+ width: 75%;
701
+ }
702
+
703
+ .col-lg-8 {
704
+ width: 66.66666667%;
705
+ }
706
+
707
+ .col-lg-7 {
708
+ width: 58.33333333%;
709
+ }
710
+
711
+ .col-lg-6 {
712
+ width: 50%;
713
+ }
714
+
715
+ .col-lg-5 {
716
+ width: 41.66666667%;
717
+ }
718
+
719
+ .col-lg-4 {
720
+ width: 33.33333333%;
721
+ }
722
+
723
+ .col-lg-3 {
724
+ width: 25%;
725
+ }
726
+
727
+ .col-lg-2 {
728
+ width: 16.66666667%;
729
+ }
730
+
731
+ .col-lg-1 {
732
+ width: 8.33333333%;
733
+ }
734
+
735
+ .col-lg-pull-12 {
736
+ right: 100%;
737
+ }
738
+
739
+ .col-lg-pull-11 {
740
+ right: 91.66666667%;
741
+ }
742
+
743
+ .col-lg-pull-10 {
744
+ right: 83.33333333%;
745
+ }
746
+
747
+ .col-lg-pull-9 {
748
+ right: 75%;
749
+ }
750
+
751
+ .col-lg-pull-8 {
752
+ right: 66.66666667%;
753
+ }
754
+
755
+ .col-lg-pull-7 {
756
+ right: 58.33333333%;
757
+ }
758
+
759
+ .col-lg-pull-6 {
760
+ right: 50%;
761
+ }
762
+
763
+ .col-lg-pull-5 {
764
+ right: 41.66666667%;
765
+ }
766
+
767
+ .col-lg-pull-4 {
768
+ right: 33.33333333%;
769
+ }
770
+
771
+ .col-lg-pull-3 {
772
+ right: 25%;
773
+ }
774
+
775
+ .col-lg-pull-2 {
776
+ right: 16.66666667%;
777
+ }
778
+
779
+ .col-lg-pull-1 {
780
+ right: 8.33333333%;
781
+ }
782
+
783
+ .col-lg-pull-0 {
784
+ right: 0%;
785
+ }
786
+
787
+ .col-lg-push-12 {
788
+ left: 100%;
789
+ }
790
+
791
+ .col-lg-push-11 {
792
+ left: 91.66666667%;
793
+ }
794
+
795
+ .col-lg-push-10 {
796
+ left: 83.33333333%;
797
+ }
798
+
799
+ .col-lg-push-9 {
800
+ left: 75%;
801
+ }
802
+
803
+ .col-lg-push-8 {
804
+ left: 66.66666667%;
805
+ }
806
+
807
+ .col-lg-push-7 {
808
+ left: 58.33333333%;
809
+ }
810
+
811
+ .col-lg-push-6 {
812
+ left: 50%;
813
+ }
814
+
815
+ .col-lg-push-5 {
816
+ left: 41.66666667%;
817
+ }
818
+
819
+ .col-lg-push-4 {
820
+ left: 33.33333333%;
821
+ }
822
+
823
+ .col-lg-push-3 {
824
+ left: 25%;
825
+ }
826
+
827
+ .col-lg-push-2 {
828
+ left: 16.66666667%;
829
+ }
830
+
831
+ .col-lg-push-1 {
832
+ left: 8.33333333%;
833
+ }
834
+
835
+ .col-lg-push-0 {
836
+ left: 0%;
837
+ }
838
+
839
+ .col-lg-offset-12 {
840
+ margin-left: 100%;
841
+ }
842
+
843
+ .col-lg-offset-11 {
844
+ margin-left: 91.66666667%;
845
+ }
846
+
847
+ .col-lg-offset-10 {
848
+ margin-left: 83.33333333%;
849
+ }
850
+
851
+ .col-lg-offset-9 {
852
+ margin-left: 75%;
853
+ }
854
+
855
+ .col-lg-offset-8 {
856
+ margin-left: 66.66666667%;
857
+ }
858
+
859
+ .col-lg-offset-7 {
860
+ margin-left: 58.33333333%;
861
+ }
862
+
863
+ .col-lg-offset-6 {
864
+ margin-left: 50%;
865
+ }
866
+
867
+ .col-lg-offset-5 {
868
+ margin-left: 41.66666667%;
869
+ }
870
+
871
+ .col-lg-offset-4 {
872
+ margin-left: 33.33333333%;
873
+ }
874
+
875
+ .col-lg-offset-3 {
876
+ margin-left: 25%;
877
+ }
878
+
879
+ .col-lg-offset-2 {
880
+ margin-left: 16.66666667%;
881
+ }
882
+
883
+ .col-lg-offset-1 {
884
+ margin-left: 8.33333333%;
885
+ }
886
+
887
+ .col-lg-offset-0 {
888
+ margin-left: 0%;
889
+ }
890
+ }
admin/assets/css/grid.min.css ADDED
@@ -0,0 +1 @@
 
1
+ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.container{padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}
admin/assets/css/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
admin/assets/img/arrows.png ADDED
Binary file
admin/assets/img/help.png ADDED
Binary file
admin/assets/img/icons-app-000.svg ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+ width="84px" height="63px" viewBox="0 0 84 63" enable-background="new 0 0 84 63" xml:space="preserve">
6
+ <path d="M16.7422,15.502L14,12.7578h-0.6426l-0.5508-0.5508C13.54,11.3379,14,10.229,14,9c0-2.7607-2.2383-5-5-5
7
+ C6.2378,4,4,6.2393,4,9c0,2.7617,2.2378,5,5,5c1.229,0,2.3379-0.459,3.208-1.1934l0.5518,0.5508V14l2.7422,2.7422
8
+ c0.3418,0.3438,0.8965,0.3438,1.2402,0.002C17.0859,16.4004,17.0859,15.8457,16.7422,15.502z M9,12.25
9
+ c-1.7949,0-3.25-1.4551-3.25-3.25S7.2051,5.75,9,5.75c1.7969,0,3.25,1.4551,3.25,3.25S10.7969,12.25,9,12.25z"/>
10
+ <g>
11
+ <path d="M60.25,52H59v-2.25c0-0.4141-0.3359-0.75-0.75-0.75h-5.9395l-1.7793-1.7788C50.3965,47.084,50.209,47,50,47h-4.25
12
+ C45.3359,47,45,47.3359,45,47.75V49v10.25c0,0.4141,0.3359,0.75,0.75,0.75H48h6.5h3.75h0.25c0.4141,0,0.75-0.3359,0.75-0.75
13
+ l1.75-6.5C61,52.3359,60.6641,52,60.25,52z"/>
14
+ </g>
15
+ <path fill="#FFFFFF" d="M47.25,58l1-5.75c0-0.1382,0.1113-0.25,0.25-0.25H59v-1H48.5c-0.6895,0-1.25,0.561-1.25,1.25l-1,5.75"/>
16
+ <polygon points="58,5.4141 56.5859,4 52,8.5859 47.4141,4 46,5.4141 50.5859,10 46,14.5859 47.4141,16 52,11.4141 56.5859,16
17
+ 58,14.5859 53.4141,10 "/>
18
+ <rect x="42" fill="#4387FD" fill-opacity="0" width="21" height="21"/>
19
+ <polygon enable-background="new " points="77.9141,7.5 76.5,6.0859 73.5,9.0859 70.5,6.0859 69.085,7.5 72.085,10.5 69.085,13.5
20
+ 70.5,14.9141 73.5,11.9141 76.5,14.9141 77.9141,13.5 74.9141,10.5 "/>
21
+ <path d="M60.8633,37.4961l-7-12C53.6855,25.189,53.3555,25,53,25c-0.3545,0-0.6846,0.189-0.8623,0.4961l-7,12
22
+ c-0.1826,0.3105-0.1826,0.6914-0.0049,1.002C45.3115,38.8086,45.6436,39,46,39h14c0.3574,0,0.6895-0.1914,0.8672-0.502
23
+ S61.0449,37.8066,60.8633,37.4961z"/>
24
+ <circle fill="#FFFFFF" cx="52.998" cy="35.999" r="1.0508"/>
25
+ <polygon fill="#FFFFFF" points="52,29 54,29 53.6504,34 52.3506,34 "/>
26
+ <path fill="#4D90FE" d="M26,52c0,3.3145,2.6875,6,6,6c3.3145,0,6-2.6855,6-6c0-3.313-2.6855-6-6-6C28.6875,46,26,48.687,26,52z"/>
27
+ <rect x="31" y="51" fill="#FFFFFF" width="2" height="4"/>
28
+ <rect x="31" y="48" fill="#FFFFFF" width="2" height="2"/>
29
+ <path d="M15.5,25h-10C4.6719,25,4,25.6719,4,26.5v10C4,37.3281,4.6719,38,5.5,38h10c0.8281,0,1.5-0.6719,1.5-1.5v-10
30
+ C17,25.6719,16.3281,25,15.5,25z"/>
31
+ <path fill="#FFFFFF" d="M11,35.5c0,0.2754-0.2251,0.5-0.5,0.5h-1C9.2241,36,9,35.7754,9,35.5v-1C9,34.2246,9.2241,34,9.5,34h1
32
+ c0.2749,0,0.5,0.2246,0.5,0.5V35.5z M14,30c0,0.5532-0.4473,1-1,1h-2v2H9v-2c0-0.5312,0.4839-1,1-1h2v-2h-2v1H8v-1
33
+ c0-0.5532,0.4468-1,1-1h4c0.5527,0,1,0.4468,1,1V30z"/>
34
+ <path fill="#4D90FE" d="M36.5,25h-10c-0.8281,0-1.5,0.6719-1.5,1.5v10c0,0.8281,0.6719,1.5,1.5,1.5h10c0.8281,0,1.5-0.6719,1.5-1.5
35
+ v-10C38,25.6719,37.3281,25,36.5,25z"/>
36
+ <path fill="#FFFFFF" d="M32,35.5c0,0.2754-0.2251,0.5-0.5,0.5h-1c-0.2759,0-0.5-0.2246-0.5-0.5v-1c0-0.2754,0.2241-0.5,0.5-0.5h1
37
+ c0.2749,0,0.5,0.2246,0.5,0.5V35.5z M35,30c0,0.5532-0.4473,1-1,1h-2v2h-2v-2c0-0.5312,0.4839-1,1-1h2v-2h-2v1h-2v-1
38
+ c0-0.5532,0.4468-1,1-1h4c0.5527,0,1,0.4468,1,1V30z"/>
39
+ <path fill="#FFFFFF" d="M37.7422,15.502L35,12.7578h-0.6426l-0.5508-0.5508C34.54,11.3379,35,10.229,35,9c0-2.7607-2.2383-5-5-5
40
+ c-2.7622,0-5,2.2393-5,5c0,2.7617,2.2378,5,5,5c1.229,0,2.3379-0.459,3.208-1.1934l0.5518,0.5508V14l2.7422,2.7422
41
+ c0.3418,0.3438,0.8965,0.3438,1.2402,0.002C38.0859,16.4004,38.0859,15.8457,37.7422,15.502z M30,12.25
42
+ c-1.7949,0-3.25-1.4551-3.25-3.25S28.2051,5.75,30,5.75c1.7969,0,3.25,1.4551,3.25,3.25S31.7969,12.25,30,12.25z"/>
43
+ <g>
44
+ <polygon points="74.1152,48.4683 67,55.5859 67,59 70.416,59 77.5312,51.8838 "/>
45
+ <path d="M79.585,49.8281c0.5537-0.5532,0.5518-1.4473-0.001-2.002l-1.4102-1.4102c-0.5508-0.5532-1.4492-0.5552-2.0049-0.0039
46
+ l-1.1924,1.1948l3.416,3.4141L79.585,49.8281z"/>
47
+ </g>
48
+ <path d="M5,52c0,3.3145,2.6875,6,6,6c3.3145,0,6-2.6855,6-6c0-3.313-2.6855-6-6-6C7.6875,46,5,48.687,5,52z"/>
49
+ <rect x="10" y="51" fill="#FFFFFF" width="2" height="4"/>
50
+ <rect x="10" y="48" fill="#FFFFFF" width="2" height="2"/>
51
+ <path fill="#DD4B39" d="M81.8633,37.4961l-7-12C74.6855,25.189,74.3555,25,74,25c-0.3545,0-0.6846,0.189-0.8623,0.4961l-7,12
52
+ c-0.1826,0.3105-0.1826,0.6914-0.0049,1.002C66.3115,38.8086,66.6436,39,67,39h14c0.3574,0,0.6895-0.1914,0.8672-0.502
53
+ S82.0449,37.8066,81.8633,37.4961z"/>
54
+ <circle fill="#FFFFFF" cx="73.998" cy="35.999" r="1.0508"/>
55
+ <polygon fill="#FFFFFF" points="73,29 75,29 74.6504,34 73.3506,34 "/>
56
+ </svg>
admin/assets/img/icons-infowindow-002.svg ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
3
+ <!ENTITY st0 "fill:#4D90FE;">
4
+ <!ENTITY st1 "fill:#4387FD;fill-opacity:0;">
5
+ <!ENTITY st2 "enable-background:new ;">
6
+ <!ENTITY st3 "opacity:0.5;fill:none;stroke:#000000;stroke-miterlimit:10;">
7
+ <!ENTITY st4 "opacity:0.55;enable-background:new ;">
8
+ <!ENTITY st5 "stroke:#FFFFFF;stroke-width:0.35;stroke-miterlimit:10;">
9
+ <!ENTITY st6 "fill:#FFFFFF;stroke:#000000;stroke-width:0.8;stroke-miterlimit:10;">
10
+ <!ENTITY st7 "opacity:0.45;enable-background:new ;">
11
+ <!ENTITY st8 "fill:none;stroke:#000000;stroke-width:1.4;stroke-miterlimit:10;">
12
+ <!ENTITY st9 "opacity:0.5;">
13
+ <!ENTITY st10 "fill:none;stroke:#000000;stroke-miterlimit:10;">
14
+ <!ENTITY st11 "fill:#FFD040;">
15
+ <!ENTITY st12 "fill:#FFFFFF;">
16
+ <!ENTITY st13 "fill:none;">
17
+ <!ENTITY st14 "opacity:0.5;fill:#FFFFFF;enable-background:new;">
18
+ <!ENTITY st15 "fill:#DD4B39;">
19
+ ]>
20
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="84px"
21
+ height="63px" viewBox="0 0 84 63" style="enable-background:new 0 0 84 63;" xml:space="preserve">
22
+ <g id="Infowindow">
23
+ <g id="Length">
24
+ <polygon points="58,31 55,28 55,30 49,30 49,28 46,31 49,34 49,32 55,32 55,34 "/>
25
+ <rect x="42" y="21" style="&st13;" width="21" height="21"/>
26
+ </g>
27
+ <g id="Perimeter">
28
+ <path d="M35,27v8h-8v-8H35 M37,25H25v12h12V25L37,25z"/>
29
+ <rect x="21" y="21" style="&st13;" width="21" height="21"/>
30
+ </g>
31
+ <g id="Area">
32
+ <rect y="21" style="&st13;" width="21" height="21"/>
33
+ <g>
34
+ <polygon points="6.646,25 4,27.646 4,28.354 7.354,25 "/>
35
+ </g>
36
+ <g>
37
+ <polygon points="9.646,25 4,30.646 4,31.354 10.354,25 "/>
38
+ </g>
39
+ <g>
40
+ <polygon points="12.646,25 4,33.646 4,34.354 13.354,25 "/>
41
+ </g>
42
+ <g>
43
+ <polygon points="15.646,25 4,36.646 4,37 4.354,37 16,25.354 16,25 "/>
44
+ </g>
45
+ <g>
46
+ <polygon points="6.646,37 7.354,37 16,28.354 16,27.646 "/>
47
+ </g>
48
+ <g>
49
+ <polygon points="9.646,37 10.354,37 16,31.354 16,30.646 "/>
50
+ </g>
51
+ <g>
52
+ <polygon points="12.646,37 13.354,37 16,34.354 16,33.646 "/>
53
+ </g>
54
+ </g>
55
+ <g id="Delete">
56
+ <rect x="42" style="&st13;" width="21" height="21"/>
57
+ <polygon points="53.997,4 53.997,3 50.003,3 50.003,4 46,4 46,6 58,6 58,4 "/>
58
+ <rect x="47" y="7" width="10" height="11"/>
59
+ </g>
60
+ <g id="Direections">
61
+ <rect x="21" style="&st13;" width="21" height="21"/>
62
+ <path style="&st7;" d="M27,4l3.805,3.853C32.227,9.275,32.801,11,32.801,13v4H30.1v-4c-0.016-1.158-0.365-2.311-1.248-3.195L25,6
63
+ L27,4z"/>
64
+ <path d="M32.197,7.853l1.816-1.84L32,4h6v6l-2.012-2.012L34.15,9.805C33.266,10.69,32.916,11.842,32.9,13v4H30v-4
65
+ C30,11,30.773,9.275,32.197,7.853z"/>
66
+ </g>
67
+ <g id="Settings">
68
+ <rect style="&st13;" width="21" height="21"/>
69
+ <path d="M16.895,11.641C16.96,11.27,17,10.89,17,10.5s-0.04-0.77-0.105-1.14l1.535-1.129l0.182-0.683l-1.5-2.598l-0.684-0.184
70
+ l-1.738,0.762c-0.58-0.49-1.25-0.875-1.979-1.138L12.5,2.5L12,2H9L8.5,2.499L8.29,4.395C7.562,4.658,6.896,5.043,6.314,5.531
71
+ L4.57,4.768L3.889,4.951l-1.5,2.598l0.184,0.684l1.535,1.129C4.04,9.731,4,10.111,4,10.5s0.04,0.77,0.105,1.139L2.57,12.768
72
+ l-0.182,0.685l1.5,2.598l0.682,0.185l1.744-0.764c0.58,0.487,1.248,0.872,1.975,1.137l0.21,1.896L9,19h3l0.5-0.5l0.21-1.893
73
+ c0.729-0.262,1.397-0.647,1.979-1.137l1.737,0.762l0.685-0.185l1.498-2.598l-0.18-0.683L16.895,11.641z M14.15,10.5
74
+ c0,2.016-1.635,3.65-3.65,3.65s-3.65-1.635-3.65-3.65c0-2.015,1.635-3.65,3.65-3.65S14.15,8.484,14.15,10.5z"/>
75
+ </g>
76
+ </g>
77
+ <g id="Table">
78
+ </g>
79
+ <g id="Toolbar">
80
+ </g>
81
+ <g id="Legend_panel">
82
+ </g>
83
+ <g id="App">
84
+ <g id="Add_image">
85
+ <rect x="63" y="21" style="&st13;" width="21" height="21"/>
86
+ <polygon style="&st12;" points="72,27 74,27 74,30 77,30 77,32 74,32 74,35 72,35 72,32 69,32 69,30 72,30 "/>
87
+ </g>
88
+ <g id="Delete_small_white">
89
+ <rect x="63" style="&st13;" width="21" height="21"/>
90
+ <polygon style="&st12;" points="74.997,5 74.997,4 71.003,4 71.003,5 68,5 68,7 78,7 78,5 "/>
91
+ <rect x="69" y="8" style="&st12;" width="8" height="8"/>
92
+ </g>
93
+ <g id="Next_arrow_1_">
94
+ <rect x="21" y="42" style="&st13;" width="21" height="21"/>
95
+ <polygon style="&st12;" points="30.277,57 35,53.048 30.287,49 29,50.408 32.053,53.029 29.01,55.576 "/>
96
+ </g>
97
+ <g id="Previous_arrow_1_">
98
+ <rect y="42" style="&st13;" width="21" height="21"/>
99
+ <polygon style="&st12;" points="12.99,55.576 9.947,53.029 13,50.408 11.713,49 7,53.048 11.723,57 "/>
100
+ </g>
101
+ <g>
102
+ <rect x="42" y="42" style="&st13;" width="21" height="21"/>
103
+ <g>
104
+ <path d="M46.5,60c-1,0-1.5-0.5-1.5-1.5v-9c0-1,0.5-1.5,1.5-1.5H48c0,0,2-2,3-2h4c1,0,3,2,3,2h1.5c1,0,1.5,0.5,1.5,1.5v9
105
+ c0,1-0.5,1.5-1.5,1.5H46.5z"/>
106
+ <path style="&st12;" d="M53,50c-2.209,0-4,1.791-4,4s1.791,4,4,4s4-1.791,4-4S55.209,50,53,50z M53,56.375
107
+ c-1.312,0-2.375-1.063-2.375-2.375s1.063-2.375,2.375-2.375s2.375,1.063,2.375,2.375S54.312,56.375,53,56.375z"/>
108
+ </g>
109
+ </g>
110
+ </g>
111
+ </svg>
admin/assets/img/marker-btn.png ADDED
Binary file
admin/assets/img/new-window-icon.png ADDED
Binary file
admin/assets/img/powered-by-google-on-white.png ADDED
Binary file
admin/assets/img/spinner.gif ADDED
Binary file
admin/assets/img/wordimpress-logo-small.png ADDED
Binary file
admin/assets/js/admin-google-map.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function($){"use strict";function drop_marker(a,b){var c=a.lat(),d=a.lng();"undefined"!=typeof e&&e.setVisible(!1),$(".drop-marker").removeClass("active").text("Drop a Marker"),map.setOptions({draggableCursor:null}),google.maps.event.removeListener(b);var e=new Marker({position:a,map:map,icon:gmb_data.plugin_url+"/public/assets/img/default-marker.png",zIndex:google.maps.Marker.MAX_ZINDEX+1,optimized:!1}),f=get_marker_index();$("#gmb_markers_group_"+f+"_title").val("Point "+f),$("#gmb_markers_group_"+f+"_lat").val(c),$("#gmb_markers_group_"+f+"_lng").val(d),get_editable_info_window(f,e),google.maps.event.addListener(e,"click",function(){get_info_window_content(f,e)})}function initialize_map(a){lat_field=$("#gmb_lat_lng-latitude"),lng_field=$("#gmb_lat_lng-longitude");var b=lat_field.val()?lat_field.val():"",c=lng_field.val()?lng_field.val():"";zoom=parseInt($("#gmb_zoom").val()),lat_lng=new google.maps.LatLng(b,c);var d={zoom:zoom,streetViewControl:!1,styles:[{stylers:[{visibility:"simplified"}]},{elementType:"labels",stylers:[{visibility:"off"}]}]};map=new google.maps.Map(a[0],d),places_service=new google.maps.places.PlacesService(map),navigator.geolocation&&"yes"===gmb_data.geolocate_setting&&""==c&&""==b?navigator.geolocation.getCurrentPosition(function(a){initial_location=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),map.setCenter(initial_location),lat_field.val(a.coords.latitude),lng_field.val(a.coords.longitude)}):""!==b&&""!==c?map.setCenter(new google.maps.LatLng(b,c)):(alert("Geolocation service failed."),initial_location=new google.maps.LatLng(gmb_data.default_lat,gmb_data.default_lng),lat_field.val(gmb_data.default_lat),lng_field.val(gmb_data.default_lng),map.setCenter(initial_location)),set_map_type(!1),"none"!==$("#gmb_theme").val()&&set_map_theme(!1),set_street_view(),set_pan_control(),set_draggable(),set_double_click_zoom(),set_mouse_wheel_scroll(),set_map_type_control(),set_map_zoom_control(),"undefined"==typeof autocomplete&&(autocomplete=new google.maps.places.Autocomplete($("#gmb_geocoder")[0]),autocomplete.bindTo("bounds",map),google.maps.event.addListener(autocomplete,"place_changed",function(){return $("#gmb_geocoder").one("blur",function(){$("#gmb_geocoder").val("")}),setTimeout(function(){$("#gmb_geocoder").val("")},10),"undefined"!=typeof tentative_location_marker&&tentative_location_marker.setVisible(!1),place=autocomplete.getPlace(),lat_field.val(place.geometry.location.lat()),lng_field.val(place.geometry.location.lng()),place.geometry?(map.setCenter(place.geometry.location),void add_tentative_marker(map,place.reference)):void alert("Error: Place not found!")})),info_bubble=new google.maps.InfoWindow({maxWidth:315}),google.maps.event.addListenerOnce(map,"idle",function(){handle_map_zoom(map),add_markers(map),"undefined"!=typeof $(".cmb_id_gmb_show_places input:radio").prop("checked")&&"yes"===$(".cmb_id_gmb_show_places input:radio:checked").val()&&perform_places_search()}),google.maps.event.addListener(map,"zoom_changed",function(){handle_map_zoom(map)}),google.maps.event.addListener(map,"dragend",function(){var a=map.getCenter();$(".lat-lng-change-message").slideDown(),$(".lat-lng-update-btn").attr("data-lat",a.lat()),$(".lat-lng-update-btn").attr("data-lng",a.lng())})}function add_tentative_marker(a,b){var c=a.getCenter();tentative_location_marker=new google.maps.Marker({map:a,title:"Map Icons",animation:google.maps.Animation.DROP,position:new google.maps.LatLng(c.lat(),c.lng()),icon:new google.maps.MarkerImage(gmb_data.plugin_url+"/public/assets/img/temp-marker.png"),zIndex:google.maps.Marker.MAX_ZINDEX+1,optimized:!1});var d=google.maps.event.addListener(tentative_location_marker,"mouseover",function(){add_circle(b)}),e=google.maps.event.addListener(tentative_location_marker,"mouseout",function(){hover_circle.setVisible(!1)});google.maps.event.addListener(tentative_location_marker,"click",function(){google.maps.event.removeListener(d),google.maps.event.removeListener(e),hover_circle.setVisible(!0),add_tenative_info_window(b,tentative_location_marker)}),tentative_location_marker.setVisible(!0),a.setZoom(zoom)}function add_tenative_info_window(a,b){var c={key:gmb_data.api_key,reference:a};places_service.getDetails(c,function(a,c){if(c==google.maps.places.PlacesServiceStatus.OK){var d=a.geometry.location.lat(),e=a.geometry.location.lng(),f='<p class="place-title">'+a.name+"</p>";f+=add_place_content_to_info_window(a),f+='<div class="infowindow-toolbar clear"><a href="#" class="add-marker" data-title="'+a.name+'" data-reference="'+a.reference+'" data-lat="'+d+'" data-lng="'+e+'">Add to Map</a></div>',f=set_info_window_wrapper(f),info_bubble.setContent(f),info_bubble.open(map,b),google.maps.event.addListener(info_bubble,"closeclick",function(){hover_circle.setVisible(!1)})}})}function add_place_content_to_info_window(a){var b;return b='<div class="marker-info-wrapper">',b+=a.formatted_address?'<div class="place-address">'+a.formatted_address+"</div>":"",b+=a.formatted_phone_number?'<div class="place-phone">'+a.formatted_phone_number+"</div>":"",b+=a.website?'<div class="place-website"><a href="'+a.website+'" target="_blank" rel="nofollow" title="Click to visit the '+a.name+' website">Website</a></div>':"",a.rating&&(b+='<div class="rating-wrap clear"><p class="numeric-rating">'+a.rating+'</p><div class="star-rating-wrap"><div class="star-rating-size" style="width:'+65*a.rating/5+'px;"></div></div></div>'),b+="</div>"}function get_editable_info_window(index,marker){info_bubble.close(),info_bubble.setContent('<div id="infobubble-content" class="loading"></div>'),info_bubble.open(map,marker);var info_window_data=get_info_window_saved_data(index),info_window_content;info_window_data.title||(info_window_data.title="Point "+index),info_window_content='<input class="edit-place-title" data-field="#gmb_markers_group_'+index+'_title" type="text" value="'+info_window_data.title+'">',info_window_content+='<textarea class="edit-place-description" data-field="#gmb_markers_group_'+index+'_description">'+info_window_data.desc+"</textarea>",info_window_content+='<div class="infowindow-toolbar clear"><ul id="save-toolbar"><li class="info-window-save"><div class="google-btn-blue google-btn google-save-btn" data-tooltip="Save changes" data-index="'+index+'">Save</div></li><li class="info-window-cancel"><div class="google-btn-default google-btn google-cancel-btn" data-tooltip="Cancel edit" data-index="'+index+'">Cancel</div></li></ul><span class="marker-edit-link-wrap" data-index="'+index+'"><a href="#TB_inline?width=600&height=550&inlineId=marker-icon-modal" data-tooltip="Change icon" class="marker-edit-link thickbox"></a></span></div>',info_window_content=set_info_window_wrapper(info_window_content),info_bubble.setContent(info_window_content),initialize_tooltips(),google.maps.event.addDomListener($(".google-save-btn")[0],"click",function(){var a=$(".edit-place-title").data("field"),b=$(".edit-place-title").val(),c=$(".edit-place-description").data("field"),d=$(".edit-place-description").val();$(a).val(b),$(c).val(d),get_info_window_content($(this).data("index"),marker),google.maps.event.removeListener(save_icon_listener),google.maps.event.removeListener(edit_marker_icon_button_click)}),google.maps.event.addDomListener(info_bubble,"closeclick",function(){google.maps.event.removeListener(save_icon_listener),google.maps.event.removeListener(edit_marker_icon_button_click)}),google.maps.event.addDomListener($(".google-cancel-btn")[0],"click",function(){get_info_window_content($(this).data("index"),marker),google.maps.event.removeListener(save_icon_listener),google.maps.event.removeListener(edit_marker_icon_button_click)});var edit_marker_icon_button_click=google.maps.event.addDomListener($(".marker-edit-link-wrap")[0],"click",function(){$(".save-marker-button").attr("data-marker-index",$(this).data("index"))}),save_icon_listener=google.maps.event.addDomListener($(".save-marker-button")[0],"click",function(){var marker_position=marker.getPosition(),marker_icon_data,marker_icon=$(this).data("marker"),marker_icon_color=$(this).data("marker-color"),label_color=$(this).data("label-color"),marker_label_inline_style="color:"+label_color+"; ";"MAP_PIN"===marker_icon?marker_label_inline_style+="font-size: 20px;position: relative; top: -3px;":"SQUARE_PIN"==marker_icon&&(marker_label_inline_style+="font-size: 20px;position: relative; top: 12px;");var marker_label_data='<i class="'+$(this).data("label")+'" style="'+marker_label_inline_style+'"></i>';""==marker_icon?(marker_icon_data=gmb_data.plugin_url+"/public/assets/img/default-marker.png",$("#gmb_markers_group_"+index+"_marker").val(""),marker_label_data=""):(marker_icon_data="{ path : "+marker_icon+', fillColor : "'+marker_icon_color+'", fillOpacity : 1, strokeColor : "", strokeWeight: 0, scale : 1 / 3 }',$("#gmb_markers_group_"+index+"_marker").val(marker_icon_data),marker_icon_data=eval("("+marker_icon_data+")")),marker.setMap(null),$("#gmb_markers_group_"+index+"_label").val(marker_label_data),marker=new Marker({position:marker_position,map:map,zIndex:9,icon:marker_icon_data,label:marker_label_data}),google.maps.event.addListener(marker,"click",function(){get_info_window_content(index,marker)}),$(".icon, .marker-item").removeClass("marker-item-selected"),$(".marker-icon-row, .save-marker-icon, .marker-icon-color-wrap, .marker-label-color-wrap").hide(),$(this).removeData("marker"),$(this).removeData("marker-color"),$(this).removeData("label"),$(this).removeData("label-color"),tb_remove(),google.maps.event.removeListener(save_icon_listener),google.maps.event.removeListener(edit_marker_icon_button_click)})}function set_info_window_wrapper(a){var b='<div id="infobubble-content" class="main-place-infobubble-content">';return b+=a,b+="</div>"}function add_circle(a){hover_circle=new google.maps.Marker({position:tentative_location_marker.getPosition(),zIndex:google.maps.Marker.MAX_ZINDEX-1,optimized:!1,icon:{path:google.maps.SymbolPath.CIRCLE,scale:20,strokeWeight:3,strokeOpacity:.9,strokeColor:"#FFF",fillOpacity:.3,fillColor:"#FFF"},map:map}),google.maps.event.addListener(hover_circle,"click",function(){add_tenative_info_window(a,tentative_location_marker)}),google.maps.event.addListener(tentative_location_marker,"click",function(){hover_circle.setVisible(!0)})}function add_markers(map){clear_main_markers(),$("#gmb_markers_group_repeat .repeatable-grouping").each(function(index){var marker_icon=gmb_data.plugin_url+"/public/assets/img/default-marker.png",marker_label="",custom_marker_icon=$("#gmb_markers_group_"+index+"_marker").val();custom_marker_icon.length>0&&(marker_icon=eval("("+custom_marker_icon+")"));var custom_label=$("#gmb_markers_group_"+index+"_label").val();custom_label.length>0&&(marker_label=custom_label);var location_marker=new Marker({map:map,zIndex:9,icon:marker_icon,label:marker_label}),marker_lat=$("#gmb_markers_group_"+index+"_lat").val(),marker_lng=$("#gmb_markers_group_"+index+"_lng").val();location_marker.setPosition(new google.maps.LatLng(marker_lat,marker_lng)),location_marker.setVisible(!0),google.maps.event.addListener(location_marker,"click",function(){get_info_window_content(index,location_marker)})})}function get_info_window_saved_data(a){var b=new Object;return b.title=$("#gmb_markers_group_"+a+"_title").val(),b.desc=$("#gmb_markers_group_"+a+"_description").val(),b.reference=$("#gmb_markers_group_"+a+"_reference").val(),b.lat=$("#gmb_markers_group_"+a+"_lat").val(),b.lng=$("#gmb_markers_group_"+a+"_lng").val(),b}function get_info_window_content(a,b){info_bubble.close(),info_bubble.setContent('<div id="infobubble-content" class="loading"></div>'),info_bubble.open(map,b);var c,d=get_info_window_saved_data(a);if(d.reference){var e={reference:d.reference};places_service.getDetails(e,function(e,f){f==google.maps.places.PlacesServiceStatus.OK&&(c='<p class="place-title">'+d.title+"</p>",c+='<div class="place-description">'+d.desc+"</div>",c+=add_place_content_to_info_window(e),c+='<div class="infowindow-toolbar"><ul id="edit-toolbar"><li class="edit-info" data-index="'+a+'" data-tooltip="Edit Marker"></li><li class="trash-marker" data-index="'+a+'" data-tooltip="Delete Marker"></li></ul></div>',add_edit_events(c,b))})}else c='<p class="place-title">'+d.title+"</p>",c+='<div class="place-description">'+d.desc+"</div>",c+='<div class="infowindow-toolbar"><ul id="edit-toolbar"><li class="edit-info" data-index="'+a+'" data-tooltip="Edit Marker"></li><li class="trash-marker" data-index="'+a+'" data-tooltip="Delete Marker"></li></ul></div>',add_edit_events(c,b)}function add_edit_events(a,b){a=set_info_window_wrapper(a),info_bubble.setContent(a),initialize_tooltips(),google.maps.event.addDomListener($(".edit-info")[0],"click",function(){get_editable_info_window($(this).data("index"),b)}),google.maps.event.addDomListener($(".trash-marker")[0],"click",function(){var a=$(this).data("index");0===a&&$('tr[data-iterator="'+a+'"] ').find("input,textarea").val(""),$('tr[data-iterator="'+a+'"] .remove-group-row').trigger("click"),info_bubble.close(),b.setVisible(!1)})}function get_marker_index(){var a=parseInt($("#gmb_markers_group_repeat tr.repeatable-grouping").last().attr("data-iterator")),b=$('tr[data-iterator="0"] ').find("input,textarea").val();return b&&0===a?($(".add-group-row.button").trigger("click"),a=1):0!==a&&($(".add-group-row.button").trigger("click"),a=parseInt($("#gmb_markers_group_repeat tr.repeatable-grouping").last().attr("data-iterator"))),a}function get_place_info_window_content(a,b){info_bubble.setContent('<div id="infobubble-content" class="loading"></div>'),info_bubble.open(map,b);var c={reference:a.reference};places_service.getDetails(c,function(a,b){if(b==google.maps.places.PlacesServiceStatus.OK){var c;c='<p class="place-title">'+a.name+"</p>",c+=add_place_content_to_info_window(a),c=set_info_window_wrapper(c),info_bubble.setContent(c),initialize_tooltips()}})}function get_places_type_array(){var a=[];return $('.cmb_id_gmb_places_search_multicheckbox input[type="checkbox"]').each(function(){$(this).is(":checked")&&a.push($(this).val())}),a}function perform_places_search(){$(".places-loading").fadeIn(),$(".warning-message").hide().empty();var a=get_places_type_array();if(clear_search_markers(),a.length>0){var b={location:return_lat_lng(),types:a,radius:parseInt($("#gmb_search_radius").val())};places_service.nearbySearch(b,places_search_callback)}else show_warning_message("<strong>Notice: No Place Types are selected</strong><br/> Please select the types of places you would like to display on this map using the Place Type field checkboxes found below.")}function show_warning_message(a){$(".wpgp-loading").fadeOut(),$(".warning-message").empty().append("<p>"+a+"</p>").fadeIn()}function return_lat_lng(){var a=map.getCenter(),b=new google.maps.LatLng(a.lat(),a.lng());return b}function handle_map_zoom(a){var b=a.getZoom();$("#gmb_zoom").val(b),$("#gmb_zoom").on("change",function(){a.setZoom(parseInt($(this).val()))})}function lat_lng_field_change(a){var b=new google.maps.LatLng($(lat_field).val(),$(lng_field).val());a.panTo(b)}function places_search_callback(a,b,c){var d,e=0;if(b==google.maps.places.PlacesServiceStatus.OK){for(e=0;d=a[e];e++)create_search_result_marker(a[e]);c.hasNextPage?c.nextPage():$(".places-loading").fadeOut()}}function create_search_result_marker(a){var b=new Marker({map:map,zIndex:0,optimized:!1});b.setIcon({url:a.icon,size:new google.maps.Size(24,24),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(17,34),scaledSize:new google.maps.Size(24,24)}),b.setPosition(a.geometry.location),b.setVisible(!0),google.maps.event.addListener(b,"click",function(){get_place_info_window_content(a,b)}),search_markers.push(b)}function clear_main_markers(){for(var a=0;a<location_marker_array.length;a++)location_marker_array[a].setMap(null);for(location_marker_array.length=0,a=0;a<info_bubble_array.length;a++)info_bubble_array[a].close(),google.maps.event.trigger(info_bubble_array[a],"closeclick");info_bubble_array.length=0}function clear_search_markers(){for(var a=0;a<search_markers.length;a++)search_markers[a].setMap(null);search_markers=[]}function geocode_position(a){var b={location:a,radius:10};places_service.nearbySearch(b,function(a,b){if(b==google.maps.places.PlacesServiceStatus.OK){var c="";if(info_bubble.close(),a.length>1){c='<div id="infobubble-content"><p>Hmm, it looks like there are multiple places in this area. Please confirm which place you would like this marker to display:</p>';for(var d=0;d<a.length;d++)c+='<a class="marker-confirm-place" data-reference="'+a[d].reference+'" data-name-address="'+a[d].name+", "+a[d].vicinity+'">'+a[d].name+"</a>";c+="</div>",google.maps.event.addDomListener(info_bubble,"domready",function(){$(".marker-confirm-place").on("click",function(a){a.preventDefault(),$("#gmb_geocoder").val($(this).data("name-address")),$("#gmb_reference").val($(this).data("reference")),info_bubble.close(),get_info_window_content($(this).data("reference"))})})}info_bubble.setContent(c),info_bubble.open(map,location_marker)}})}function scroll_to_field(a){$("html, body").animate({scrollTop:parseInt($(a).offset().top)},600)}function marker_drag_end(a){var b=a.getPosition();geocode_position(b),$(lat_field).val(b.lat()),$(lng_field).val(b.lng()),map.panTo(b)}function calc_radius(a,b){radius_marker=new Marker({position:a.getCenter(),map:a,icon:{path:MAP_PIN,fillColor:"#0E77E9",fillOpacity:0,strokeColor:"",strokeWeight:0,scale:.25},label:'<i class="map-icon-crosshairs radius-label"></i>',zIndex:google.maps.Marker.MAX_ZINDEX+1,optimized:!1}),radius_circle=new google.maps.Circle({map:a,fillColor:"#BBD8E9",fillOpacity:.3,radius:b,strokeColor:"#BBD8E9",strokeOpacity:.9,strokeWeight:2}),radius_circle.bindTo("center",radius_marker,"position")}function toggle_metabox_fields(){var a=$(".cmb_id_gmb_show_places input:radio");a.prop("checked")===!0&&($(".cmb_id_gmb_search_radius").show(),$(".cmb_id_gmb_places_search_multicheckbox").show()),a.prop("checked")===!1&&$("#gmb_show_places2").prop("checked",!0),a.on("change",function(){$(".cmb_id_gmb_search_radius").toggle(),$(".cmb_id_gmb_places_search_multicheckbox").toggle(),"no"===$(this).val()?clear_search_markers():perform_places_search()})}function set_map_size(){var a=$("#gmb_width_height-width").val(),b=$('input[name="gmb_width_height[map_width_unit]"]:checked').val(),c=$("#gmb_width_height-height").val();$("#map").css({width:a+b,height:c})}function set_map_zoom_control(){var a=$("#gmb_zoom_control").val().toUpperCase();map.setOptions("NONE"==a?{zoomControl:!1}:{zoomControl:!0,zoomControlOptions:{style:google.maps.ZoomControlStyle[a]}})}function set_map_type_control(){var a=$("#gmb_map_type_control").val().toUpperCase();map.setOptions("NONE"==a?{mapTypeControl:!1}:{mapTypeControl:!0,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle[a]}})}function set_mouse_wheel_scroll(){var a=$("#gmb_wheel_zoom").val();map.setOptions("none"===a?{scrollwheel:!1}:{scrollwheel:!0})}function set_double_click_zoom(){var a=$("#gmb_double_click").val();map.setOptions("none"===a?{disableDoubleClickZoom:!0}:{disableDoubleClickZoom:!1})}function set_draggable(){var a=$("#gmb_draggable").val();map.setOptions("none"==a?{draggable:!1}:{draggable:!0})}function set_pan_control(){var a=$("#gmb_pan").val();map.setOptions("none"===a?{panControl:!1}:{panControl:!0})}function set_street_view(){var a=$("#gmb_street_view").val();map.setOptions("none"===a?{streetViewControl:!1}:{streetViewControl:!0})}function set_map_type(a){a===!0&&($("#gmb_theme").val("none"),$("#gmb_theme_json").val("none"));var b=$("#gmb_type").val().toUpperCase();map.setOptions({mapTypeId:google.maps.MapTypeId[b],styles:!1})}function set_map_theme(reset){reset===!0&&($("#gmb_type").val("RoadMap"),$("#gmb_theme_json").val("none"));var map_theme_input_val=parseInt($("#gmb_theme").val());"none"===map_theme_input_val&&set_map_type(),$.each(snazzy_json,function(index){snazzy_json[index].id===map_theme_input_val&&(map_theme_input_val=eval(snazzy_json[index].json),$("#gmb_theme_json").val(snazzy_json[index].json))}),map.setOptions({mapTypeId:google.maps.MapTypeId.ROADMAP,styles:map_theme_input_val})}function set_map_marker_icon(){$(".marker-item").on("click",function(){var a=$(this).data("marker");$(".marker-item").removeClass("marker-item-selected"),$(this).addClass("marker-item-selected"),"default"==a?($(".marker-icon-row, .marker-icon-color-wrap, .marker-label-color-wrap").slideUp(),$(".save-marker-icon").slideDown(),$("#TB_window .save-marker-button").attr("data-marker",""),$("#TB_window .save-marker-button").attr("data-label","")):($(".marker-icon-color-wrap, .marker-icon-row").slideDown(),$("#TB_window .save-marker-button").attr("data-marker",a))}),$(".icon").on("click",function(){$(".icon").removeClass("marker-item-selected"),$(this).addClass("marker-item-selected"),$(".save-marker-icon, .marker-label-color-wrap").slideDown(),$("#TB_window .save-marker-button").attr("data-label",$(this).find("span").attr("class"))});var a={change:function(a,b){var c=b.color.toString();$(this).hasClass("marker-color")===!0?($(".save-marker-button").attr("data-marker-color",c),$(".marker-svg polygon, .marker-svg path").attr("fill",c)):$(this).hasClass("label-color")===!0&&($(".save-marker-button").attr("data-label-color",c),$(".icon-inner span").css("color",c))},clear:function(){},hide:!0,palettes:!0};$(".color-picker").wpColorPicker(a)}function initialize_tooltips(){$('[data-tooltip!=""]').qtip({content:{attr:"data-tooltip"},hide:{fixed:!0,delay:100},position:{my:"top center",at:"bottom center"},style:{classes:"qtip-tipsy"},show:{when:{event:"focus"},effect:function(){$(this).fadeIn(200)}}})}$(window).load(function(){toggle_metabox_fields(),initialize_tooltips(),initialize_map($("#map")),$("#gmb_lat_lng-latitude").on("change",function(){lat_lng_field_change(map)}),$("#gmb_lat_lng-longitude").on("change",function(){lat_lng_field_change(map)}),$(".drop-marker").on("click",function(a){if(a.preventDefault(),$(this).hasClass("active"))$(this).text("Drop a Marker").removeClass("active"),map.setOptions({draggableCursor:null});else{$(this).text("Click on the Map").addClass("active"),map.setOptions({draggableCursor:"crosshair"});var b=google.maps.event.addListener(map,"click",function(a){drop_marker(a.latLng,b)})}});var a;$("#gmb_search_radius").on("focus",function(){a=$(this).val(),calc_radius(map,parseInt($(this).val()))}).focusout(function(){a!==$(this).val()&&perform_places_search(),radius_circle.setMap(null),radius_marker.setMap(null)}),$('[name^="gmb_places_search_multicheckbox"]').on("change",function(){0===$(".places-change-message").length&&($(".cmb_id_gmb_places_search_multicheckbox ul").prepend('<div class="wpgp-message places-change-message clear"><p>Place selections have changed.</p><a href="#" class="button update-places-map">Update Map</a></div>'),$(".places-change-message").slideDown())}),$(document).on("click",".update-places-map",function(a){a.preventDefault(),scroll_to_field("#google_maps_preview_metabox"),perform_places_search(),$(this).parent().fadeOut(function(){$(this).remove()})}),$(".lat-lng-update-btn").on("click",function(a){a.preventDefault(),$(".lat-lng-change-message").slideUp(),$("#gmb_lat_lng-latitude").val($(this).attr("data-lat")),$("#gmb_lat_lng-longitude").val($(this).attr("data-lng"))}),$(document).on("click",".add-marker",function(a){a.preventDefault(),hover_circle.setVisible(!1);var b=new google.maps.Marker({position:tentative_location_marker.getPosition(),map:map,icon:gmb_data.plugin_url+"/public/assets/img/default-marker.png",zIndex:google.maps.Marker.MAX_ZINDEX+1,optimized:!1});tentative_location_marker.setVisible(!1);var c=get_marker_index(),d=$(this).data("reference");$("#gmb_markers_group_"+c+"_title").val($(this).data("title")),$("#gmb_markers_group_"+c+"_lat").val($(this).data("lat")),$("#gmb_markers_group_"+c+"_lng").val($(this).data("lng")),$("#gmb_markers_group_"+c+"_reference").val(d),get_editable_info_window(c,b),google.maps.event.addListener(b,"click",function(){get_info_window_content(c,b)})}),set_map_marker_icon(),$("#gmb_type").change(function(){set_map_type(!0)}),$("#gmb_theme").change(function(){set_map_theme(!0)}),$("#gmb_street_view").change(function(){set_street_view()}),$("#gmb_pan").change(function(){set_pan_control()}),$("#gmb_draggable").change(function(){set_draggable()}),$("#gmb_double_click").change(function(){set_double_click_zoom()}),$("#gmb_wheel_zoom").change(function(){set_mouse_wheel_scroll()}),$("#gmb_map_type_control").change(function(){set_map_type_control()}),$("#gmb_zoom_control").change(function(){set_map_zoom_control()}),$("#gmb_width_height-width, #gmb_width_height-height").keyup(function(){delay(function(){set_map_size()},500)}),$('input[name="gmb_width_height[map_width_unit]"]').change(function(){set_map_size()})});var map,places_service,lat_lng,zoom,lat_field,lng_field,radius_circle,radius_marker,place,autocomplete,info_bubble,info_bubble_array=[],tentative_location_marker,location_marker,location_marker_array=[],search_markers=[],hover_circle,initial_location,snazzy_json=$.parseJSON(eval(gmb_data.snazzy)),delay=function(){var a=0;return function(b,c){clearTimeout(a),a=setTimeout(b,c)}}()}(jQuery);
admin/assets/js/admin-settings.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Google Maps Builder Settings JS
3
+ */
4
+ (function ( $ ) {
5
+ "use strict";
6
+
7
+ $( function () {
8
+
9
+ //Hide Welcome Message
10
+ $( '.hide-welcome' ).on( 'click', function ( e ) {
11
+ e.preventDefault();
12
+ $( '.welcome-header' ).slideUp( 'normal', function () {
13
+ $( '.logo-svg-small' ).fadeIn(); //Show new tiny logo
14
+ } ); //slide up welcome header
15
+
16
+ var data = {
17
+ action: 'hide_welcome'
18
+ };
19
+ $.post( ajaxurl, data, function ( response ) {
20
+
21
+ //Do something here if necessary
22
+
23
+ } );
24
+
25
+ } );
26
+
27
+ //Geolocate position change
28
+ var geolocate_radio = $( '.geolocate-radio-wrap input:radio' );
29
+ if ( geolocate_radio.prop( 'checked' ) === true ) {
30
+ $( '#lat-lng-wrap' ).hide();
31
+ }
32
+ if ( geolocate_radio.prop( 'checked' ) === false ) {
33
+ $( '#lat-lng-wrap' ).show();
34
+ }
35
+ geolocate_radio.on( 'change', function () {
36
+ $( '#lat-lng-wrap' ).toggle();
37
+ } );
38
+
39
+ //Default setting for Has Archive Inline Radio
40
+ if ( $( '#gmb_has_archive1' ).prop( 'checked' ) === false && $( '#gmb_has_archive2' ).prop( 'checked' ) === 'false' ) {
41
+ $( '#gmb_has_archive1' ).prop( 'checked', true );
42
+ }
43
+
44
+
45
+ //Label Click Helper
46
+ $( 'input:radio + label' ).on( 'click', function () {
47
+ $( this ).prev( 'input:radio' ).prop( 'checked', true );
48
+ } );
49
+
50
+ } );
51
+
52
+
53
+ }( jQuery ));
admin/assets/js/admin-settings.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a){"use strict";a(function(){a(".hide-welcome").on("click",function(b){b.preventDefault(),a(".welcome-header").slideUp("normal",function(){a(".logo-svg-small").fadeIn()});var c={action:"hide_welcome"};a.post(ajaxurl,c,function(){})});var b=a(".geolocate-radio-wrap input:radio");b.prop("checked")===!0&&a("#lat-lng-wrap").hide(),b.prop("checked")===!1&&a("#lat-lng-wrap").show(),b.on("change",function(){a("#lat-lng-wrap").toggle()}),a("#gmb_has_archive1").prop("checked")===!1&&"false"===a("#gmb_has_archive2").prop("checked")&&a("#gmb_has_archive1").prop("checked",!0),a("input:radio + label").on("click",function(){a(this).prev("input:radio").prop("checked",!0)})})}(jQuery);
admin/assets/js/admin-widget.js ADDED
@@ -0,0 +1,267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+ "use strict";
3
+
4
+ $(function () {
5
+
6
+ gmb_widget_toggles();
7
+ gmb_widget_tooltips();
8
+
9
+ //Initialize Gmap when user clicks an option
10
+ place_details_on_click();
11
+ place_search_on_click();
12
+
13
+
14
+ });
15
+
16
+ /*
17
+ * Function to Refresh jQuery toggles for wpgp Widget Pro upon saving specific widget
18
+ */
19
+ $(document).ajaxSuccess(function (e, xhr, settings) {
20
+
21
+ gmb_widget_toggles();
22
+ gmb_widget_tooltips();
23
+ refresh_google_map();
24
+ place_details_on_click();
25
+ place_search_on_click();
26
+
27
+
28
+ });
29
+ $(document).ajaxStop(function (e, xhr, settings) {
30
+
31
+ });
32
+
33
+ /**
34
+ * Place Details Radio
35
+ *
36
+ * This function handles displaying the Google Map and initializing gmaps
37
+ */
38
+ function place_details_on_click() {
39
+ //set up the click event
40
+ $('.place-details-api-option-wrap').on('click', function () {
41
+ var map_wrap = $(this).parentsUntil('form').find('.google-autocomplete-map-wrap');
42
+ var map_canvas = $(map_wrap).find('.map-canvas');
43
+
44
+ //slide down the autocomplete map
45
+ $(map_wrap).slideDown('normal', function () {
46
+ //check if map initialized already by checking for children in canvas
47
+ if (map_canvas.children().length == 0) {
48
+ //no map so initialize
49
+ place_details_autocomplete_initialize(map_canvas);
50
+ }
51
+
52
+ }); //slide down
53
+ }); //click
54
+ }
55
+
56
+ /**
57
+ * Place Search Radio
58
+ *
59
+ * This function handles displaying the Google Map and initializing gmaps
60
+ */
61
+ function place_search_on_click() {
62
+ $('.place-search-api-option-wrap').on('click', function () {
63
+ //Slide up Autocomplete Map
64
+ $('.google-autocomplete-map-wrap').slideUp('normal');
65
+ });
66
+ }
67
+
68
+
69
+ /**
70
+ * Refresh Gmap
71
+ */
72
+ function refresh_google_map() {
73
+
74
+ //check if Place Details Option enabled and/or map is displayed
75
+
76
+ //initialize map
77
+ var google_widget = jQuery('.widget-inside:visible').has('.google-autocomplete-map-wrap');
78
+
79
+
80
+ // console.log(google_widget);
81
+ //
82
+ // var map_canvas = google_widget.find('.map-canvas');
83
+ // place_details_autocomplete_initialize(map_canvas);
84
+
85
+ // $('.google-autocomplete-map-wrap').slideDown('normal', function () {
86
+ // var map_canvas = $(this).parentsUntil('form').find('.map-canvas');
87
+ // place_details_autocomplete_initialize(map_canvas);
88
+ // });
89
+
90
+ }
91
+
92
+
93
+ /**
94
+ * Widget Autocomplete Map
95
+ *
96
+ * Created the map with autocomplete searching used within the widget admin UI
97
+ *
98
+ * @see: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
99
+ */
100
+ function place_details_autocomplete_initialize(map_canvas) {
101
+
102
+ var latitude = '32.713240';
103
+ var longitude = '-117.159443';
104
+ var referenceField = $(map_canvas[0]).parent().find('.place-detail-reference').val();
105
+
106
+ var mapOptions = {
107
+ center : new google.maps.LatLng(latitude, longitude),
108
+ zoom : 13,
109
+ zoomControl : true,
110
+ zoomControlOptions: {
111
+ style : google.maps.ZoomControlStyle.SMALL,
112
+ position: google.maps.ControlPosition.LEFT_BOTTOM
113
+ },
114
+ mapTypeControl : false,
115
+ streetViewControl : false
116
+ };
117
+
118
+ var map = new google.maps.Map(map_canvas[0], mapOptions);
119
+
120
+
121
+ //Check to see if this widget already has been setup
122
+ //@see: https://developers.google.com/maps/documentation/javascript/examples/place-details
123
+ if (referenceField) {
124
+ var service = new google.maps.places.PlacesService(map);
125
+ var request = {
126
+ reference: referenceField
127
+ };
128
+
129
+ service.getDetails(request, function (place, status) {
130
+ if (status == google.maps.places.PlacesServiceStatus.OK) {
131
+
132
+ set_marker_open_infobubble(map, place);
133
+
134
+ }
135
+ });
136
+
137
+ }
138
+
139
+ var input = /** @type {HTMLInputElement} */(
140
+ $(map_canvas[0]).parent().find('.pac-input')[0]);
141
+
142
+ var types = $(map_canvas[0]).parent().find('.type-selector')[0];
143
+ map.controls[google.maps.ControlPosition.TOP_CENTER].push(input);
144
+ map.controls[google.maps.ControlPosition.TOP_CENTER].push(types);
145
+
146
+ var autocomplete = new google.maps.places.Autocomplete(input);
147
+ autocomplete.bindTo('bounds', map);
148
+
149
+
150
+ //Autocomplete Place Change
151
+ google.maps.event.addListener(autocomplete, 'place_changed', function () {
152
+
153
+ var place = autocomplete.getPlace();
154
+ if (!place.geometry) {
155
+ return;
156
+ }
157
+
158
+ //set reference hidden input value
159
+ $(map_canvas[0]).parent().find('.place-detail-reference').val(place.reference);
160
+
161
+ // If the place has a geometry, then present it on a map.
162
+ set_marker_open_infobubble(map, place);
163
+
164
+
165
+ });
166
+
167
+ // Sets a listener on a radio button to change the filter type on Places
168
+ // Autocomplete.
169
+ function setupClickListener(id, types) {
170
+ var radioButton = document.getElementById(id);
171
+ google.maps.event.addDomListener(radioButton, 'click', function () {
172
+ autocomplete.setTypes(types);
173
+ });
174
+ }
175
+
176
+ setupClickListener('changetype-all', []);
177
+ setupClickListener('changetype-establishment', ['establishment']);
178
+ setupClickListener('changetype-geocode', ['geocode']);
179
+
180
+ }
181
+
182
+
183
+ function set_marker_open_infobubble(map, place) {
184
+
185
+ //Marker for map
186
+ var marker = new google.maps.Marker({
187
+ map: map
188
+ });
189
+ marker.setVisible(false);
190
+
191
+ //Custom InfoBubble
192
+ var infoBubble = new InfoBubble({
193
+ maxWidth: 300
194
+ });
195
+ //Update map with saved place detail
196
+ // If the place has a geometry, then present it on a map.
197
+ if (place.geometry.viewport) {
198
+ map.fitBounds(place.geometry.viewport);
199
+ } else {
200
+ map.setCenter(place.geometry.location);
201
+ map.setZoom(17); // Why 17? Because it looks good.
202
+ }
203
+ //setup marker icon
204
+ marker.setIcon(/** @type {google.maps.Icon} */({
205
+ url : place.icon,
206
+ size : new google.maps.Size(71, 71),
207
+ origin : new google.maps.Point(0, 0),
208
+ anchor : new google.maps.Point(17, 34),
209
+ scaledSize: new google.maps.Size(35, 35)
210
+ }));
211
+ marker.setPosition(place.geometry.location);
212
+ marker.setVisible(true);
213
+
214
+ var address = '';
215
+ if (place.address_components) {
216
+ address = [
217
+ (place.address_components[0] && place.address_components[0].short_name || ''),
218
+ (place.address_components[1] && place.address_components[1].short_name || ''),
219
+ (place.address_components[2] && place.address_components[2].short_name || '')
220
+ ].join(' ');
221
+ }
222
+
223
+ infoBubble.setContent('<div><strong>' + place.name + '</strong><br>' + address);
224
+ infoBubble.open(map, marker);
225
+
226
+ }
227
+
228
+
229
+ /**
230
+ * Toggles Widget Panels
231
+ */
232
+ function gmb_widget_toggles() {
233
+
234
+ //API Method Toggle
235
+ $('#widgets-right .widget-api-option .wpgp-method-span:not("clickable")').each(function () {
236
+
237
+ $(this).addClass("clickable").unbind("click").click(function () {
238
+ $(this).parent().parent().find('.toggled').slideUp().removeClass('toggled');
239
+ $(this).find('input').attr('checked', 'checked');
240
+ if ($(this).hasClass('search-api-option-wrap')) {
241
+ $(this).parent().next('.toggle-api-option-1').slideToggle().toggleClass('toggled');
242
+ } else {
243
+ $(this).parent().next().next('.toggle-api-option-2').slideToggle().toggleClass('toggled');
244
+ }
245
+ });
246
+ });
247
+
248
+
249
+ }
250
+
251
+
252
+ /**
253
+ * Tooltips
254
+ */
255
+ function gmb_widget_tooltips() {
256
+ //Tooltips for admins
257
+ $('.tooltip-info').tipsy({
258
+ fade : true,
259
+ html : true,
260
+ gravity : 's',
261
+ delayOut: 1000,
262
+ delayIn : 500
263
+ });
264
+ }
265
+
266
+
267
+ }(jQuery));
admin/assets/js/admin-widget.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a){"use strict";function b(){a(".place-details-api-option-wrap").on("click",function(){var b=a(this).parentsUntil("form").find(".google-autocomplete-map-wrap"),c=a(b).find(".map-canvas");a(b).slideDown("normal",function(){0==c.children().length&&e(c)})})}function c(){a(".place-search-api-option-wrap").on("click",function(){a(".google-autocomplete-map-wrap").slideUp("normal")})}function d(){jQuery(".widget-inside:visible").has(".google-autocomplete-map-wrap")}function e(b){function c(a,b){var c=document.getElementById(a);google.maps.event.addDomListener(c,"click",function(){n.setTypes(b)})}var d="32.713240",e="-117.159443",g=a(b[0]).parent().find(".place-detail-reference").val(),h={center:new google.maps.LatLng(d,e),zoom:13,zoomControl:!0,zoomControlOptions:{style:google.maps.ZoomControlStyle.SMALL,position:google.maps.ControlPosition.LEFT_BOTTOM},mapTypeControl:!1,streetViewControl:!1},i=new google.maps.Map(b[0],h);if(g){var j=new google.maps.places.PlacesService(i),k={reference:g};j.getDetails(k,function(a,b){b==google.maps.places.PlacesServiceStatus.OK&&f(i,a)})}var l=a(b[0]).parent().find(".pac-input")[0],m=a(b[0]).parent().find(".type-selector")[0];i.controls[google.maps.ControlPosition.TOP_CENTER].push(l),i.controls[google.maps.ControlPosition.TOP_CENTER].push(m);var n=new google.maps.places.Autocomplete(l);n.bindTo("bounds",i),google.maps.event.addListener(n,"place_changed",function(){var c=n.getPlace();c.geometry&&(a(b[0]).parent().find(".place-detail-reference").val(c.reference),f(i,c))}),c("changetype-all",[]),c("changetype-establishment",["establishment"]),c("changetype-geocode",["geocode"])}function f(a,b){var c=new google.maps.Marker({map:a});c.setVisible(!1);var d=new InfoBubble({maxWidth:300});b.geometry.viewport?a.fitBounds(b.geometry.viewport):(a.setCenter(b.geometry.location),a.setZoom(17)),c.setIcon({url:b.icon,size:new google.maps.Size(71,71),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(17,34),scaledSize:new google.maps.Size(35,35)}),c.setPosition(b.geometry.location),c.setVisible(!0);var e="";b.address_components&&(e=[b.address_components[0]&&b.address_components[0].short_name||"",b.address_components[1]&&b.address_components[1].short_name||"",b.address_components[2]&&b.address_components[2].short_name||""].join(" ")),d.setContent("<div><strong>"+b.name+"</strong><br>"+e),d.open(a,c)}function g(){a('#widgets-right .widget-api-option .wpgp-method-span:not("clickable")').each(function(){a(this).addClass("clickable").unbind("click").click(function(){a(this).parent().parent().find(".toggled").slideUp().removeClass("toggled"),a(this).find("input").attr("checked","checked"),a(this).hasClass("search-api-option-wrap")?a(this).parent().next(".toggle-api-option-1").slideToggle().toggleClass("toggled"):a(this).parent().next().next(".toggle-api-option-2").slideToggle().toggleClass("toggled")})})}function h(){a(".tooltip-info").tipsy({fade:!0,html:!0,gravity:"s",delayOut:1e3,delayIn:500})}a(function(){g(),h(),b(),c()}),a(document).ajaxSuccess(function(){g(),h(),d(),b(),c()}),a(document).ajaxStop(function(){})}(jQuery);
admin/assets/js/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
admin/class-wordpress-google-maps-admin.php ADDED
@@ -0,0 +1,758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Google Maps Admin
4
+ *
5
+ * The admin is considered the single post view where you build maps
6
+ *
7
+ * @package Google_Maps_Builder_Admin
8
+ * @author Devin Walker <devin@wordimpress.com>
9
+ * @license GPL-2.0+
10
+ * @link http://wordimpress.com
11
+ * @copyright 2014 WordImpress, Devin Walker
12
+ */
13
+
14
+ class Google_Maps_Builder_Admin {
15
+
16
+ /**
17
+ * Instance of this class.
18
+ *
19
+ * @since 1.0.0
20
+ *
21
+ * @var object
22
+ */
23
+ protected static $instance = null;
24
+
25
+
26
+ /**
27
+ * Array of metaboxes/fields
28
+ *
29
+ * @since 1.0.0
30
+ *
31
+ * @var array
32
+ */
33
+ protected static $plugin_options = array();
34
+
35
+ /**
36
+ * Array of metaboxes/fields
37
+ *
38
+ * @since 1.0.0
39
+ *
40
+ * @var array
41
+ */
42
+ protected static $default_map_options;
43
+
44
+
45
+ /**
46
+ * Initialize the plugin by loading admin scripts & styles and adding a
47
+ * settings page and menu.
48
+ *
49
+ * @since 1.0.0
50
+ */
51
+ private function __construct() {
52
+
53
+ /*
54
+ * Call $plugin_slug from public plugin class.
55
+ */
56
+ $plugin = Google_Maps_Builder::get_instance();
57
+ $this->plugin_slug = $plugin->get_plugin_slug();
58
+
59
+ // Load admin style sheet and JavaScript.
60
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) );
61
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
62
+
63
+ //Add metaboxes and fields to CPT
64
+ add_filter( 'cmb_meta_boxes', array( $this, 'cpt_metaboxes_fields' ), 1 );
65
+
66
+ //Custom Meta Fields
67
+ add_action( 'cmb_render_google_geocoder', array( $this, 'cmb_render_google_geocoder' ), 10, 2 );
68
+ add_action( 'cmb_render_google_maps_preview', array( $this, 'cmb_render_google_maps_preview' ), 10, 2 );
69
+ add_action( 'cmb_render_search_options', array( $this, 'cmb_render_search_options' ), 10, 2 );
70
+ add_action( 'cmb_render_width_height', array( $this, 'cmb_render_width_height' ), 10, 2 );
71
+ add_action( 'cmb_render_lat_lng', array( $this, 'cmb_render_lat_lng' ), 10, 2 );
72
+
73
+
74
+
75
+ }
76
+
77
+
78
+ public function get_default_map_options() {
79
+
80
+ $width_height = gmb_get_option( 'gmb_width_height' );
81
+ // $lat_lng = gmb_get_option( 'gmb_lat_lng' );
82
+
83
+ $defaults = array(
84
+ 'width' => ( isset( $width_height['width'] ) ) ? $width_height['width'] : '100',
85
+ 'width_unit' => ( isset( $width_height['map_width_unit'] ) ) ? $width_height['map_width_unit'] : '%',
86
+ 'height' => ( isset( $width_height['height'] ) ) ? $width_height['height'] : '600',
87
+ // 'latitude' => ( isset( $lat_lng['latitude'] ) ) ? $lat_lng['latitude'] : '600',
88
+ // 'longitude' => ( isset( $lat_lng['longitude'] ) ) ? $lat_lng['longitude'] : '600',
89
+ );
90
+
91
+ return $defaults;
92
+
93
+ }
94
+
95
+ /**
96
+ * Return an instance of this class.
97
+ *
98
+ * @since 1.0.0
99
+ *
100
+ * @return object A single instance of this class.
101
+ */
102
+ public static function get_instance() {
103
+
104
+ // If the single instance hasn't been set, set it now.
105
+ if ( null == self::$instance ) {
106
+ self::$instance = new self;
107
+ }
108
+
109
+ return self::$instance;
110
+ }
111
+
112
+
113
+ /**
114
+ * Register and enqueue admin-specific style sheet.
115
+ *
116
+ * Return early if no settings page is registered.
117
+ * @since 1.0.0
118
+ *
119
+ * @return null
120
+ */
121
+ public function enqueue_admin_styles( $hook ) {
122
+
123
+ global $post;
124
+ $suffix = defined( 'GMB_DEBUG' ) && GMB_DEBUG ? '' : '.min';
125
+
126
+ //Only enqueue scripts for CPT on post type screen
127
+ if ( $hook == 'post-new.php' || $hook == 'post.php' && 'google_maps' === $post->post_type ) {
128
+
129
+ wp_enqueue_style( $this->plugin_slug . '-admin-styles', plugins_url( 'assets/css/admin' . $suffix . '.css', __FILE__ ), array(), Google_Maps_Builder::VERSION );
130
+ wp_enqueue_style( $this->plugin_slug . '-map-icons', plugins_url( 'includes/map-icons/css/map-icons.css', dirname( __FILE__ ) ), array(), Google_Maps_Builder::VERSION );
131
+ wp_enqueue_style( $this->plugin_slug . '-map-tooltips', plugins_url( 'includes/tooltips/jquery.qtip' . $suffix . '.css', __FILE__ ), array(), Google_Maps_Builder::VERSION );
132
+
133
+ }
134
+
135
+ }
136
+
137
+ /**
138
+ * Register and enqueue admin-specific JavaScript.
139
+ *
140
+ * @since 1.0.0
141
+ *
142
+ * @return null Return early if no settings page is registered.
143
+ */
144
+ public function enqueue_admin_scripts( $hook ) {
145
+ global $post;
146
+ $suffix = defined( 'GMB_DEBUG' ) && GMB_DEBUG ? '' : '.min';
147
+
148
+ //Only enqueue scripts for CPT on post type screen
149
+ if ( $hook == 'post-new.php' || $hook == 'post.php' && 'google_maps' === $post->post_type ) {
150
+
151
+ wp_enqueue_script( $this->plugin_slug . '-admin-gmaps', 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places', array( 'jquery' ) );
152
+ wp_enqueue_script( $this->plugin_slug . '-map-icons', plugins_url( 'includes/map-icons/js/map-icons.js', dirname( __FILE__ ) ), array( 'jquery' ) );
153
+ wp_enqueue_script( $this->plugin_slug . '-admin-map-builder', plugins_url( 'assets/js/admin-google-map' . $suffix . '.js', __FILE__ ), array( 'jquery' ), Google_Maps_Builder::VERSION );
154
+ wp_enqueue_script( $this->plugin_slug . '-admin-qtip', plugins_url( 'includes/tooltips/jquery.qtip' . $suffix . '.js', __FILE__ ), array( 'jquery' ), Google_Maps_Builder::VERSION, true );
155
+
156
+
157
+ $snazzy = wp_remote_fopen( GMB_PLUGIN_URL . '/includes/snazzy.php' );
158
+ $api_key = gmb_get_option( 'gmb_api_key' );
159
+ $geolocate = gmb_get_option( 'gmb_lat_lng' );
160
+
161
+ $maps_data = array(
162
+ 'api_key' => $api_key,
163
+ 'geolocate_setting' => isset( $geolocate['geolocate_map'] ) ? $geolocate['geolocate_map'] : 'yes',
164
+ 'default_lat' => isset( $geolocate['latitude'] ) ? $geolocate['latitude'] : '32.715738',
165
+ 'default_lng' => isset( $geolocate['longitude'] ) ? $geolocate['longitude'] : '-117.16108380000003',
166
+ 'plugin_url' => GMB_PLUGIN_URL,
167
+ 'snazzy' => json_encode( $snazzy )
168
+ );
169
+ wp_localize_script( $this->plugin_slug . '-admin-map-builder', 'gmb_data', $maps_data );
170
+
171
+ }
172
+
173
+ wp_enqueue_style( 'dashicons' );
174
+
175
+
176
+ }
177
+
178
+
179
+
180
+
181
+ /**
182
+ * Register our setting to WP
183
+ * @since 1.0.0
184
+ */
185
+ public function settings_init() {
186
+ register_setting( $this->plugin_slug, $this->plugin_slug );
187
+ }
188
+
189
+
190
+ /**
191
+ * Defines the Google Places CPT metabox and field configuration
192
+ * @since 1.0.0
193
+ * @return array
194
+ */
195
+
196
+ public function cpt_metaboxes_fields( array $meta_boxes ) {
197
+
198
+ $prefix = 'gmb_'; // Prefix for all fields
199
+
200
+ $default_options = $this->get_default_map_options();
201
+
202
+ $meta_boxes['google_maps_metabox'] = array(
203
+ 'id' => 'google_maps_metabox',
204
+ 'title' => __( 'Google Map Markers', $this->plugin_slug ),
205
+ 'pages' => array( 'google_maps' ), // post type
206
+ 'context' => 'normal', // 'normal', 'advanced', or 'side'
207
+ 'priority' => 'high', // 'high', 'core', 'default' or 'low'
208
+ 'show_names' => true, // Show field names on the left
209
+ 'fields' => array(
210
+ array(
211
+ 'name' => __( 'Create Marker', $this->plugin_slug ),
212
+ 'id' => $prefix . 'geocoder',
213
+ 'type' => 'google_geocoder',
214
+ 'std' => 'San Diego, CA, United States',
215
+ 'desc' => '',
216
+ ),
217
+ ),
218
+ );
219
+ $meta_boxes['google_maps_preview_metabox'] = array(
220
+ 'id' => 'google_maps_preview_metabox',
221
+ 'title' => __( 'Google Map Preview', $this->plugin_slug ),
222
+ 'pages' => array( 'google_maps' ), // post type
223
+ 'context' => 'normal', // 'normal', 'advanced', or 'side'
224
+ 'priority' => 'core', // 'high', 'core', 'default' or 'low'
225
+ 'show_names' => false, // Show field names on the left
226
+ 'fields' => array(
227
+ array(
228
+ 'name' => 'Map Preview',
229
+ 'id' => $prefix . 'preview',
230
+ 'type' => 'google_maps_preview',
231
+ 'std' => '',
232
+ ),
233
+
234
+ ),
235
+ );
236
+ $meta_boxes['google_maps_markers'] = array(
237
+ 'id' => 'google_maps_markers',
238
+ 'title' => __( 'Google Map Markers', $this->plugin_slug ),
239
+ 'pages' => array( 'google_maps' ), // post type
240
+ 'context' => 'normal', // 'normal', 'advanced', or 'side'
241
+ 'priority' => 'low', // 'high', 'core', 'default' or 'low'
242
+ 'show_names' => true, // Show field names on the left
243
+ 'fields' => array(
244
+ array(
245
+ 'id' => $prefix . 'markers_group',
246
+ 'type' => 'group',
247
+ 'description' => __('Generatemap m marke. You may update marker data here in bulk ps', $this->plugin_slug ),
248
+ 'options' => array(
249
+ 'add_button' => __( 'Add Another Marker', $this->plugin_slug ),
250
+ 'remove_button' => __( 'Remove Marker', $this->plugin_slug ),
251
+ 'sortable' => true, // beta
252
+ ),
253
+ // Fields array works the same, except id's only need to be unique for this group. Prefix is not needed.
254
+ 'fields' => array(
255
+ array(
256
+ 'name' => 'Marker Title',
257
+ 'id' => 'title',
258
+ 'type' => 'text',
259
+ ),
260
+ array(
261
+ 'name' => 'Marker Description',
262
+ 'description' => 'Write a short description for this marker',
263
+ 'id' => 'description',
264
+ 'type' => 'textarea_small',
265
+ ),
266
+ array(
267
+ 'name' => 'Marker Reference',
268
+ 'id' => 'reference',
269
+ 'type' => 'text',
270
+ ),
271
+ array(
272
+ 'name' => 'Hide Place Details',
273
+ 'id' => 'hide_details',
274
+ 'type' => 'checkbox',
275
+ ),
276
+ array(
277
+ 'name' => 'Marker Latitude',
278
+ 'id' => 'lat',
279
+ 'type' => 'text',
280
+ ),
281
+ array(
282
+ 'name' => 'Marker Longitude',
283
+ 'id' => 'lng',
284
+ 'type' => 'text',
285
+ ),
286
+ array(
287
+ 'name' => 'Marker Data',
288
+ 'id' => 'marker',
289
+ 'type' => 'textarea_code',
290
+ ),
291
+ array(
292
+ 'name' => 'Marker Label Data',
293
+ 'id' => 'label',
294
+ 'type' => 'textarea_code',
295
+ ),
296
+ ),
297
+ ),
298
+ ),
299
+ );
300
+
301
+
302
+ $meta_boxes['google_maps_search_options'] = array(
303
+ 'id' => 'google_maps_search_options',
304
+ 'title' => __( 'Google Places', $this->plugin_slug ),
305
+ 'pages' => array( 'google_maps' ), // post type
306
+ 'context' => 'normal', // 'normal', 'advanced', or 'side'
307
+ 'priority' => 'core', // 'high', 'core', 'default' or 'low'
308
+ 'show_names' => true, // Show field names on the left
309
+ 'fields' => array(
310
+ array(
311
+ 'name' => __( 'Show Places?', $this->plugin_slug ),
312
+ 'desc' => __( 'Display establishments, prominent points of interest, geographic locations, and more.', $this->plugin_slug ),
313
+ 'id' => $prefix . 'show_places',
314
+ 'type' => 'radio_inline',
315
+ 'options' => array(
316
+ 'yes' => __( 'Yes', 'cmb' ),
317
+ 'no' => __( 'No', 'cmb' ),
318
+ ),
319
+ ),
320
+ array(
321
+ 'name' => __( 'Search Radius', $this->plugin_slug ),
322
+ 'desc' => __( 'Defines the distance (in meters) within which to return Place results. The maximum allowed radius is 50,000 meters.', $this->plugin_slug ),
323
+ 'std' => '1000',
324
+ 'id' => $prefix . 'search_radius',
325
+ 'type' => 'text_small'
326
+ ),
327
+ array(
328
+ 'name' => __( 'Place Types', $this->plugin_slug ),
329
+ 'desc' => __( 'Select which type of places you would like to display on this map.', $this->plugin_slug ),
330
+ 'id' => $prefix . 'places_search_multicheckbox',
331
+ 'type' => 'multicheck',
332
+ 'options' => array(
333
+ 'accounting' => __( 'Accounting', $this->plugin_slug ),
334
+ 'airport' => __( 'Airport', $this->plugin_slug ),
335
+ // 'amusement_park' => __('Amusement Park', $this->plugin_slug ),
336
+ // 'aquarium' => __('Aquarium', $this->plugin_slug ),
337
+ // 'art_gallery' => __('Art Gallery',
338
+ 'atm' => __( 'ATM', $this->plugin_slug ),
339
+ 'bakery' => __( 'Bakery', $this->plugin_slug ),
340
+ 'bank' => __( 'Bank', $this->plugin_slug ),
341
+ 'bar' => __( 'Bar', $this->plugin_slug ),
342
+ // 'beauty_salon' => __('Beauty Salon', $this->plugin_slug ),
343
+ // 'bicycle_store' => __('Bicycle Store', $this->plugin_slug ),
344
+ // 'book_store' => __('Book Store', $this->plugin_slug ),
345
+ 'bowling_alley' => __( 'Bowling Alley', $this->plugin_slug ),
346
+ 'bus_station' => __( 'Bus Station', $this->plugin_slug ),
347
+ 'cafe' => __( 'Cafe', $this->plugin_slug ),
348
+ 'campground' => __( 'Campground', $this->plugin_slug ),
349
+ // 'car_dealer' => __('Car Dealer', $this->plugin_slug ),
350
+ // 'car_rental' => __('Car Rental', $this->plugin_slug ),
351
+ // 'car_repair' => __('Car Repair', $this->plugin_slug ),
352
+ 'car_wash' => __( 'Car Wash', $this->plugin_slug ),
353
+ 'casino' => __( 'Casino', $this->plugin_slug ),
354
+ 'cemetery' => __( 'Cemetery', $this->plugin_slug ),
355
+ 'church' => __( 'Church', $this->plugin_slug ),
356
+ 'city_hall' => __( 'City Hall', $this->plugin_slug ),
357
+ 'clothing_store' => __( 'Clothing Store', $this->plugin_slug ),
358
+ 'convenience_store' => __( 'Convenience Store', $this->plugin_slug ),
359
+ 'courthouse' => __( 'Courthouse', $this->plugin_slug ),
360
+ 'dentist' => __( 'Dentist', $this->plugin_slug ),
361
+ 'department_store' => __( 'Department Store', $this->plugin_slug ),
362
+ // 'doctor' => __('Doctor', $this->plugin_slug ),
363
+ // 'electrician' => __('Electrician', $this->plugin_slug ),
364
+ // 'electronics_store' => __('Electronics Store', $this->plugin_slug ),
365
+ 'embassy' => __( 'Embassy', $this->plugin_slug ),
366
+ 'establishment' => __( 'Establishment', $this->plugin_slug ),
367
+ 'finance' => __( 'Finance', $this->plugin_slug ),
368
+ 'fire_station' => __( 'Fire Station', $this->plugin_slug ),
369
+ 'florist' => __( 'Florist', $this->plugin_slug ),
370
+ 'food' => __( 'Food', $this->plugin_slug ),
371
+ 'funeral_home' => __( 'Funeral Home', $this->plugin_slug ),
372
+ 'furniture_store' => __( 'Furniture_store', $this->plugin_slug ),
373
+ // 'gas_station' => __('Gas Station', $this->plugin_slug ),
374
+ // 'general_contractor' => __('General Contractor', $this->plugin_slug ),
375
+ // 'grocery_or_supermarket' => __('Grocery or Supermarket', $this->plugin_slug ),
376
+ 'gym' => __( 'Gym', $this->plugin_slug ),
377
+ 'hair_care' => __( 'Hair Care', $this->plugin_slug ),
378
+ 'hardware_store' => __( 'Hardware Store', $this->plugin_slug ),
379
+ 'health' => __( 'Health', $this->plugin_slug ),
380
+ 'hindu_temple' => __( 'Hindu Temple', $this->plugin_slug ),
381
+ // 'home_goods_store' => __('Home Goods Store', $this->plugin_slug ),
382
+ // 'hospital' => __('Hospital', $this->plugin_slug ),
383
+ // 'insurance_agency' => __('Insurance Agency', $this->plugin_slug ),
384
+ 'jewelry_store' => __( 'Jewelry Store', $this->plugin_slug ),
385
+ 'laundry' => __( 'Laundry', $this->plugin_slug ),
386
+ 'lawyer' => __( 'Lawyer', $this->plugin_slug ),
387
+ 'library' => __( 'Library', $this->plugin_slug ),
388
+ 'liquor_store' => __( 'Liquor Store', $this->plugin_slug ),
389
+ 'local_government_office' => __( 'Local Government Office', $this->plugin_slug ),
390
+ 'locksmith' => __( 'Locksmith', $this->plugin_slug ),
391
+ 'lodging' => __( 'Lodging', $this->plugin_slug ),
392
+ 'meal_delivery' => __( 'Meal Delivery', $this->plugin_slug ),
393
+ 'meal_takeaway' => __( 'Meal Takeaway', $this->plugin_slug ),
394
+ // 'mosque' => __('Mosque', $this->plugin_slug ),
395
+ // 'movie_rental' => __('Movie Rental', $this->plugin_slug ),
396
+ // 'movie_theater' => __('Movie Theater', $this->plugin_slug ),
397
+ // 'moving_company' => __('Moving Company', $this->plugin_slug ),
398
+ 'museum' => __( 'Museum', $this->plugin_slug ),
399
+ 'night_club' => __( 'Night Club', $this->plugin_slug ),
400
+ 'painter' => __( 'Painter', $this->plugin_slug ),
401
+ 'park' => __( 'Park', $this->plugin_slug ),
402
+ 'parking' => __( 'Parking', $this->plugin_slug ),
403
+ 'pet_store' => __( 'Pet Store', $this->plugin_slug ),
404
+ 'pharmacy' => __( 'Pharmacy', $this->plugin_slug ),
405
+ 'physiotherapist' => __( 'Physiotherapist', $this->plugin_slug ),
406
+ 'place_of_worship' => __( 'Place of Worship', $this->plugin_slug ),
407
+ 'plumber' => __( 'Plumber', $this->plugin_slug ),
408
+ 'police' => __( 'Police', $this->plugin_slug ),
409
+ 'post_office' => __( 'Post Office', $this->plugin_slug ),
410
+ // 'real_estate_agency' => __('Real Estate Agency', $this->plugin_slug ),
411
+ // 'restaurant' => __('Restaurant', $this->plugin_slug ),
412
+ // 'roofing_contractor' => __('Roofing Contractor', $this->plugin_slug ),
413
+ 'rv_park' => __( 'RV Park', $this->plugin_slug ),
414
+ 'school' => __( 'School', $this->plugin_slug ),
415
+ 'shoe_store' => __( 'Shoe Store', $this->plugin_slug ),
416
+ 'shopping_mall' => __( 'Shopping Mall', $this->plugin_slug ),
417
+ 'spa' => __( 'Spa', $this->plugin_slug ),
418
+ 'stadium' => __( 'Stadium', $this->plugin_slug ),
419
+ 'storage' => __( 'Storage', $this->plugin_slug ),
420
+ 'store' => __( 'Store', $this->plugin_slug ),
421
+ 'subway_station' => __( 'Subway Station', $this->plugin_slug ),
422
+ 'synagogue' => __( 'Synagogue', $this->plugin_slug ),
423
+ 'taxi_stand' => __( 'Taxi Stand', $this->plugin_slug ),
424
+ // 'train_station' => __('Train Station', $this->plugin_slug ),
425
+ // 'travel_agency' => __('Travel Agency', $this->plugin_slug ),
426
+ 'university' => __( 'University', $this->plugin_slug ),
427
+ 'veterinary_care' => __( 'Veterinary Care', $this->plugin_slug ),
428
+ 'zoo' => __( 'Zoo', $this->plugin_slug )
429
+ ),
430
+ ),
431
+ ),
432
+ );
433
+
434
+ $meta_boxes['google_maps_options'] = array(
435
+ 'id' => 'google_maps_options',
436
+ 'title' => __( 'Google Map Display Options', $this->plugin_slug ),
437
+ 'pages' => array( 'google_maps' ), // post type
438
+ 'context' => 'side', // 'normal', 'advanced', or 'side'
439
+ 'priority' => 'default', // 'high', 'core', 'default' or 'low'
440
+ 'show_names' => true, // Show field names on the left
441
+ 'fields' => array(
442
+ array(
443
+ 'name' => __( 'Map Size', $this->plugin_slug ),
444
+ 'id' => $prefix . 'width_height',
445
+ 'type' => 'width_height',
446
+ 'width_std' => $default_options['width'],
447
+ 'width_unit_std' => $default_options['width_unit'],
448
+ 'height_std' => $default_options['height'],
449
+ 'desc' => '',
450
+ ),
451
+ array(
452
+ 'name' => __( 'Map Location', $this->plugin_slug ),
453
+ 'id' => $prefix . 'lat_lng',
454
+ 'type' => 'lat_lng',
455
+ 'lat_std' => '',
456
+ 'lng_std' => '',
457
+ 'desc' => '',
458
+ ),
459
+
460
+ array(
461
+ 'name' => 'Map Type',
462
+ 'id' => $prefix . 'type',
463
+ 'type' => 'select',
464
+ 'std' => 'default',
465
+ 'options' => array(
466
+ array( 'name' => __( 'Road Map', $this->plugin_slug ), 'value' => 'RoadMap' ),
467
+ array( 'name' => __( 'Satellite', $this->plugin_slug ), 'value' => 'Satellite' ),
468
+ array( 'name' => __( 'Hybrid', $this->plugin_slug ), 'value' => 'Hybrid' ),
469
+ array( 'name' => __( 'Terrain', $this->plugin_slug ), 'value' => 'Terrain' ),
470
+ ),
471
+ ),
472
+ array(
473
+ 'name' => 'Map Theme',
474
+ 'desc' => sprintf( __( 'Set optional preconfigured styles. <a href="%s" class="snazzy-link new-window" target="_blank">Snazzy Maps</a>', $this->plugin_slug ), esc_url( 'http://snazzymaps.com' ) ),
475
+ 'id' => $prefix . 'theme',
476
+ 'type' => 'select',
477
+ 'std' => 'none',
478
+ 'options' => array(
479
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
480
+ array( 'name' => __( 'Aqua', $this->plugin_slug ), 'value' => '68' ),
481
+ array( 'name' => __( 'A Dark World', $this->plugin_slug ), 'value' => '73' ),
482
+ array( 'name' => __( 'Bluish', $this->plugin_slug ), 'value' => '28' ),
483
+ array( 'name' => __( 'Cool Grey', $this->plugin_slug ), 'value' => '80' ),
484
+ array( 'name' => __( 'Clean Cut', $this->plugin_slug ), 'value' => '77' ),
485
+ array( 'name' => __( 'Flat Green', $this->plugin_slug ), 'value' => '36' ),
486
+ array( 'name' => __( 'MapBox', $this->plugin_slug ), 'value' => '44' ),
487
+ array( 'name' => __( 'Muted Blue', $this->plugin_slug ), 'value' => '83' ),
488
+ array( 'name' => __( 'Old Timey', $this->plugin_slug ), 'value' => '22' ),
489
+ array( 'name' => __( 'Pale Dawn', $this->plugin_slug ), 'value' => '1' ),
490
+ array( 'name' => __( 'Paper', $this->plugin_slug ), 'value' => '19' ),
491
+ array( 'name' => __( 'Lunar Landscape', $this->plugin_slug ), 'value' => '37' ),
492
+ array( 'name' => __( 'Shade of Green', $this->plugin_slug ), 'value' => '75' ),
493
+ array( 'name' => __( 'Shift Worker', $this->plugin_slug ), 'value' => '27' ),
494
+ array( 'name' => __( 'Subtle Grayscale', $this->plugin_slug ), 'value' => '15' ),
495
+ array( 'name' => __( 'The Endless Atlas', $this->plugin_slug ), 'value' => '50' ),
496
+ ),
497
+ ),
498
+ array(
499
+ 'name' => 'Map Theme JSON',
500
+ 'desc' => 'Contains the map theme JSON',
501
+ 'default' => 'none',
502
+ 'id' => $prefix . 'theme_json',
503
+ 'type' => 'textarea_code'
504
+ ),
505
+ array(
506
+ 'name' => 'Zoom',
507
+ 'desc' => __( 'Adjust the map zoom (0-21)', $this->plugin_slug ),
508
+ 'id' => $prefix . 'zoom',
509
+ 'type' => 'select',
510
+ 'std' => '15',
511
+ 'options' => array(
512
+ array( 'name' => '21', 'value' => '21' ),
513
+ array( 'name' => '20', 'value' => '20' ),
514
+ array( 'name' => '19', 'value' => '19' ),
515
+ array( 'name' => '18', 'value' => '18' ),
516
+ array( 'name' => '17', 'value' => '17' ),
517
+ array( 'name' => '16', 'value' => '16' ),
518
+ array( 'name' => '15', 'value' => '15' ),
519
+ array( 'name' => '14', 'value' => '14' ),
520
+ array( 'name' => '13', 'value' => '13' ),
521
+ array( 'name' => '12', 'value' => '12' ),
522
+ array( 'name' => '11', 'value' => '11' ),
523
+ array( 'name' => '10', 'value' => '10' ),
524
+ array( 'name' => '9', 'value' => '9' ),
525
+ array( 'name' => '8', 'value' => '8' ),
526
+ array( 'name' => '7', 'value' => '7' ),
527
+ array( 'name' => '6', 'value' => '6' ),
528
+ array( 'name' => '5', 'value' => '5' ),
529
+ array( 'name' => '4', 'value' => '4' ),
530
+ array( 'name' => '3', 'value' => '3' ),
531
+ array( 'name' => '2', 'value' => '2' ),
532
+ array( 'name' => '1', 'value' => '1' ),
533
+ array( 'name' => '0', 'value' => '0' ),
534
+
535
+ )
536
+ ),
537
+ ),
538
+ );
539
+
540
+ $meta_boxes['google_maps_control_options'] = array(
541
+ 'id' => 'google_maps_control_options',
542
+ 'title' => __( 'Google Map Control Options', $this->plugin_slug ),
543
+ 'pages' => array( 'google_maps' ), // post type
544
+ 'context' => 'side', // 'normal', 'advanced', or 'side'
545
+ 'priority' => 'default', // 'high', 'core', 'default' or 'low'
546
+ 'show_names' => true, // Show field names on the left
547
+ 'fields' => array(
548
+ array(
549
+ 'name' => 'Zoom Control',
550
+ 'id' => $prefix . 'zoom_control',
551
+ 'type' => 'select',
552
+ 'std' => 'default',
553
+ 'options' => array(
554
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
555
+ array( 'name' => __( 'Small', $this->plugin_slug ), 'value' => 'small' ),
556
+ array( 'name' => __( 'Large', $this->plugin_slug ), 'value' => 'large' ),
557
+ array( 'name' => __( 'Default', $this->plugin_slug ), 'value' => 'default' ),
558
+ ),
559
+ ),
560
+ array(
561
+ 'name' => 'Street View',
562
+ 'id' => $prefix . 'street_view',
563
+ 'type' => 'select',
564
+ 'std' => 'true',
565
+ 'options' => array(
566
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
567
+ array( 'name' => __( 'Standard', $this->plugin_slug ), 'value' => 'true' ),
568
+ ),
569
+ ),
570
+ array(
571
+ 'name' => 'Pan Control',
572
+ 'id' => $prefix . 'pan',
573
+ 'type' => 'select',
574
+ 'std' => 'true',
575
+ 'options' => array(
576
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
577
+ array( 'name' => __( 'Standard', $this->plugin_slug ), 'value' => 'true' ),
578
+ ),
579
+ ),
580
+ array(
581
+ 'name' => 'Map Type Control',
582
+ 'id' => $prefix . 'map_type_control',
583
+ 'type' => 'select',
584
+ 'std' => 'horizontal_bar',
585
+ 'options' => array(
586
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
587
+ array( 'name' => __( 'Dropdown Menu', $this->plugin_slug ), 'value' => 'dropdown_menu' ),
588
+ array( 'name' => __( 'Horizontal Bar', $this->plugin_slug ), 'value' => 'horizontal_bar' ),
589
+ ),
590
+ ),
591
+
592
+ array(
593
+ 'name' => 'Draggable Map',
594
+ 'id' => $prefix . 'draggable',
595
+ 'type' => 'select',
596
+ 'std' => 'true',
597
+ 'options' => array(
598
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
599
+ array( 'name' => __( 'Standard', $this->plugin_slug ), 'value' => 'true' ),
600
+ ),
601
+ ),
602
+ array(
603
+ 'name' => 'Double Click to Zoom',
604
+ 'id' => $prefix . 'double_click',
605
+ 'type' => 'select',
606
+ 'std' => 'true',
607
+ 'options' => array(
608
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
609
+ array( 'name' => __( 'Standard', $this->plugin_slug ), 'value' => 'true' ),
610
+ ),
611
+ ),
612
+ array(
613
+ 'name' => 'Mouse Wheel to Zoom',
614
+ 'id' => $prefix . 'wheel_zoom',
615
+ 'type' => 'select',
616
+ 'std' => 'none',
617
+ 'options' => array(
618
+ array( 'name' => __( 'None', $this->plugin_slug ), 'value' => 'none' ),
619
+ array( 'name' => __( 'Standard', $this->plugin_slug ), 'value' => 'true' ),
620
+ ),
621
+ ),
622
+ ),
623
+
624
+ );
625
+
626
+ return $meta_boxes;
627
+
628
+ }
629
+
630
+
631
+ /**
632
+ * CMB Width Height
633
+ *
634
+ * Custom CMB field for Gmap width and height
635
+ *
636
+ * @param $field
637
+ * @param $meta
638
+ */
639
+ function cmb_render_width_height( $field, $meta ) {
640
+ $default_options = $this->get_default_map_options();
641
+ $meta = wp_parse_args(
642
+ $meta, array(
643
+ 'width' => $default_options['width'],
644
+ 'height' => $default_options['height'],
645
+ 'map_width_unit' => $default_options['width_unit'],
646
+ )
647
+ );
648
+
649
+ $output = '<div id="width_height_wrap" class="clear">';
650
+ //width
651
+ $output .= '<div id="width_wrap" class="clear">';
652
+ $output .= '<label class="width-label size-label">Width:</label><input type="text" class="regular-text map-width" name="' . $field['id'] . '[width]" id="' . $field['id'] . '-width" value="' . ( $meta['width'] ? $meta['width'] : $field['width_std'] ) . '" />';
653
+ $output .= '<div id="size_labels_wrap">';
654
+ $output .= '<input id="width_unit_percent" type="radio" name="' . $field['id'] . '[map_width_unit]" class="width_radio" value="%" ' . ( $meta['map_width_unit'] === '%' || $field['width_unit_std'] === '%' ? 'checked="checked"' : '' ) . '><label class="width_unit_label">%</label>';
655
+ $output .= '<input id="width_unit_px" type="radio" name="' . $field['id'] . '[map_width_unit]" class="width_radio" value="px" ' . ( $meta['map_width_unit'] === 'px' ? 'checked="checked"' : '' ) . ' ><label class="width_unit_label">px</label>';
656
+ $output .= '</div>';
657
+ $output .= '</div>';
658
+
659
+ //height
660
+ $output .= '<div id="height_wrap" class="clear">';
661
+ $output .= '<label for="' . $field['id'] . '[height]" class="height-label size-label">Height:</label><input type="text" class="regular-text map-height" name="' . $field['id'] . '[height]" id="' . $field['id'] . '-height" value="' . ( $meta['height'] ? $meta['height'] : $field['height_std'] ) . '" />';
662
+ $output .= '</div>';
663
+ $output .= '</div>';
664
+
665
+
666
+ echo $output;
667
+
668
+
669
+ }
670
+
671
+
672
+ /**
673
+ * CMB Lat Lng
674
+ *
675
+ * Custom CMB field for Gmap latitude and longitude
676
+ *
677
+ * @param $field
678
+ * @param $meta
679
+ */
680
+ function cmb_render_lat_lng( $field, $meta ) {
681
+ $meta = wp_parse_args(
682
+ $meta, array(
683
+ 'latitude' => '',
684
+ 'longitude' => '',
685
+ )
686
+ );
687
+
688
+ //lat lng
689
+ $output = '<div id="lat-lng-wrap">
690
+ <div class="coordinates-wrap clear">
691
+ <div class="lat-lng-wrap lat-wrap clear"><span>Latitude: </span>
692
+ <input type="text" class="regular-text latitude" name="' . $field['id'] . '[latitude]" id="' . $field['id'] . '-latitude" value="' . ( $meta['latitude'] ? $meta['latitude'] : $field['lat_std'] ) . '" />
693
+ </div>
694
+ <div class="lat-lng-wrap lng-wrap clear"><span>Longitude: </span>
695
+ <input type="text" class="regular-text longitude" name="' . $field['id'] . '[longitude]" id="' . $field['id'] . '-longitude" value="' . ( $meta['longitude'] ? $meta['longitude'] : $field['lng_std'] ) . '" />
696
+ </div>';
697
+ $output .= '<div class="wpgp-message lat-lng-change-message clear"><p>Lat/lng changed</p><a href="#" class="button lat-lng-update-btn button-small" data-lat="" data-lng="">Update</a></div>';
698
+ $output .= '</div><!-- /.coordinates-wrap -->
699
+ </div>';
700
+
701
+
702
+ echo $output;
703
+
704
+
705
+ }
706
+
707
+ /**
708
+ * Custom Google Geocoder field
709
+ * @since 1.0.0
710
+ * @return array
711
+ */
712
+ function cmb_render_google_geocoder( $field, $meta ) {
713
+
714
+ $meta = wp_parse_args(
715
+ $meta, array(
716
+ 'geocode' => '',
717
+ )
718
+ );
719
+
720
+ echo '<div class="autocomplete-wrap"><input type="text" name="' . $field['id'] . '[geocode]" id="' . $field['id'] . '" value="" class="search-autocomplete" /><p class="autocomplete-description">' .
721
+ sprintf( __( 'Enter the name of a place or an address above to create a map marker or %s', $this->plugin_slug ), '<a href="#" class="drop-marker button button-small">Drop a Marker</a>' ) .
722
+ '</p></div>';
723
+
724
+ //'desc' => sprintf( __( 'Set optional preconfigured styles. <a href="%s" class="snazzy-link new-window" target="_blank">Snazzy Maps</a>', $this->plugin_slug ), esc_url( 'http://snazzymaps.com' ) ),
725
+
726
+
727
+ //Markers Modal
728
+ add_thickbox();
729
+ include( 'views/markers.php' );
730
+
731
+ }
732
+
733
+ /**
734
+ * Custom Google Geocoder field
735
+ * @since 1.0.0
736
+ */
737
+ function cmb_render_google_maps_preview( $field, $meta ) {
738
+ global $post;
739
+ $meta = wp_parse_args( $meta, array() );
740
+ $wh_value = get_post_meta( $post->ID, 'gmb_width_height', true );
741
+ $default_options = $this->get_default_map_options();
742
+
743
+
744
+ $map_height = isset( $wh_value['height'] ) ? $wh_value['height'] : $default_options['height'];
745
+ $map_width = isset( $wh_value['width'] ) ? $wh_value['width'] : $default_options['width'];
746
+ $map_width_val = isset( $wh_value['map_width_unit'] ) ? $wh_value['map_width_unit'] : $default_options['width_unit'];
747
+
748
+ $output = '<div class="places-loading wpgp-loading">Loading Places</div><div id="google-map-wrap">';
749
+ $output .= '<div id="map" style="height:' . $map_height . 'px; width:' . $map_width . $map_width_val . '"></div>';
750
+ $output .= '</div>';
751
+ $output .= '<div class="warning-message wpgp-message"></div>';
752
+
753
+ echo $output;
754
+
755
+ }
756
+
757
+
758
+ } //end class
admin/class-wordpress-google-maps-settings.php ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB Theme Options
4
+ * @version 0.1.0
5
+ */
6
+ class Google_Maps_Builder_Settings {
7
+
8
+
9
+ /**
10
+ * Array of metaboxes/fields
11
+ * @var array
12
+ */
13
+ protected static $plugin_options = array();
14
+
15
+ public $plugin_slug;
16
+
17
+ public $options_page;
18
+
19
+ /**
20
+ * Option key, and option page slug
21
+ * @var string
22
+ */
23
+ protected static $key = 'gmb_settings';
24
+
25
+
26
+ /**
27
+ * Constructor
28
+ * @since 0.1.0
29
+ */
30
+ public function __construct() {
31
+
32
+ $plugin = Google_Maps_Builder::get_instance();
33
+ $this->plugin_slug = $plugin->get_plugin_slug();
34
+ $this->meta = $plugin->meta;
35
+
36
+
37
+ //Create Settings submenu
38
+ add_action( 'admin_init', array( $this, 'mninit' ) );
39
+ add_action( 'admin_menu', array( $this, 'add_page' ) );
40
+
41
+ // Load admin style sheet and JavaScript.
42
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) );
43
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
44
+ add_action( 'wp_ajax_hide_welcome', array( $this, 'hide_welcome_callback' ) );
45
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_pointer_script_style' ) );
46
+ add_action( 'cmb_render_lat_lng_default', array( $this, 'cmb_render_lat_lng_default' ), 10, 2 );
47
+
48
+ //Add links/information to plugin row meta
49
+ add_filter( 'plugin_row_meta', array( $this, 'add_plugin_meta_links' ), 10, 2 );
50
+ add_filter( 'plugin_action_links', array( $this, 'add_plugin_page_links' ), 10, 2 );
51
+
52
+ }
53
+
54
+
55
+ /**
56
+ * Activation Welcome Tooltip Scripts
57
+ *
58
+ * @param $hook_suffix
59
+ */
60
+ function enqueue_pointer_script_style( $hook_suffix ) {
61
+
62
+ // Assume pointer shouldn't be shown
63
+ $enqueue_pointer_script_style = false;
64
+
65
+ // Get array list of dismissed pointers for current user and convert it to array
66
+ $dismissed_pointers = explode( ',', get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
67
+ $key = array_search( 'gmb_welcome_pointer', $dismissed_pointers ); // $key = 2;
68
+
69
+ // Check if our pointer is not among dismissed ones
70
+ if ( ! in_array( 'gmb_welcome_pointer', $dismissed_pointers ) ) {
71
+ $enqueue_pointer_script_style = true;
72
+
73
+ // Add footer scripts using callback function
74
+ add_action( 'admin_print_footer_scripts', array( $this, 'welcome_pointer_print_scripts' ) );
75
+ }
76
+
77
+ // Enqueue pointer CSS and JS files, if needed
78
+ if ( $enqueue_pointer_script_style ) {
79
+ wp_enqueue_style( 'wp-pointer' );
80
+ wp_enqueue_script( 'wp-pointer' );
81
+ }
82
+
83
+ }
84
+
85
+ /**
86
+ * Print Activation Message
87
+ */
88
+ function welcome_pointer_print_scripts() {
89
+ $pointer_content = '<h3>' . __( 'Welcome to the Google Maps Builder', $this->plugin_slug ) . '</h3>';
90
+ $pointer_content .= '<p>' . __( 'Thank you for using Google Maps Builder for WordPress. To stay up to date on the latest plugin updates, enhancements and news please sign up for our mailing list.', $this->plugin_slug ) . '</p>';
91
+ $pointer_content .= '<div id="mc_embed_signup" style="padding: 0 15px;"><form action="http://wordimpress.us3.list-manage2.com/subscribe/post?u=3ccb75d68bda4381e2f45794c&amp;id=83609e2883" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate><div class="mc-field-group" style="margin: 0 0 10px;"><input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" style="margin-right:5px;width:230px;" placeholder="my.email@wordpress.com"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div><div id="mce-responses" class="clear"><div class="response" id="mce-error-response" style="display:none"></div><div class="response" id="mce-success-response" style="display:none"></div></div><div style="position: absolute; left: -5000px;"><input type="text" name="b_3ccb75d68bda4381e2f45794c_83609e2883" value=""></div></form></div>';
92
+ ?>
93
+
94
+ <script type="text/javascript">
95
+ //<![CDATA[
96
+ jQuery( document ).ready( function ( $ ) {
97
+ $( '#menu-posts-google_maps' ).pointer( {
98
+ content : '<?php echo $pointer_content; ?>',
99
+ position : {
100
+ edge : 'left', // arrow direction
101
+ align: 'center' // vertical alignment
102
+ },
103
+ pointerWidth: 350,
104
+ close : function () {
105
+ $.post( ajaxurl, {
106
+ pointer: 'gmb_welcome_pointer', // pointer ID
107
+ action : 'dismiss-wp-pointer'
108
+ } );
109
+ }
110
+ } ).pointer( 'open' );
111
+ } );
112
+ //]]>
113
+ </script>
114
+
115
+ <?php
116
+ }
117
+
118
+ /**
119
+ * Register our setting to WP
120
+ * @since 0.1.0
121
+ */
122
+ public function mninit() {
123
+
124
+ register_setting( self::$key, self::$key );
125
+ }
126
+
127
+ /**
128
+ * Add menu options page
129
+ * @since 1.0.0
130
+ */
131
+ public function add_page() {
132
+
133
+ $this->options_page = add_submenu_page(
134
+ 'edit.php?post_type=google_maps',
135
+ __( 'Google Maps Builder Settings', $this->plugin_slug ),
136
+ __( 'Settings', $this->plugin_slug ),
137
+ 'manage_options',
138
+ self::$key,
139
+ array( $this, 'admin_page_display' )
140
+ );
141
+
142
+ }
143
+
144
+ /**
145
+ * Register and enqueue admin-specific style sheet.
146
+ *
147
+ *
148
+ * @since 1.0.0
149
+ *
150
+ * @param $hook
151
+ */
152
+ public function enqueue_admin_styles( $hook ) {
153
+
154
+ $suffix = defined( 'GMB_DEBUG' ) && GMB_DEBUG ? '' : '.min';
155
+ $screen = get_current_screen();
156
+
157
+ //Only enqueue scripts for Setting screen
158
+ if ( $this->options_page == $screen->id ) {
159
+
160
+ wp_enqueue_style( $this->plugin_slug . '-settings-grid', plugins_url( 'assets/css/grid' . $suffix . '.css', __FILE__ ), array(), Google_Maps_Builder::VERSION );
161
+ wp_enqueue_style( $this->plugin_slug . '-settings-styles', plugins_url( 'assets/css/admin-settings' . $suffix . '.css', __FILE__ ), array(), Google_Maps_Builder::VERSION );
162
+
163
+ }
164
+
165
+
166
+ }
167
+
168
+ /**
169
+ * Register and enqueue admin-specific JavaScript
170
+ *
171
+ *
172
+ * @since 1.0.0
173
+ *
174
+ * @param $hook
175
+ */
176
+ public function enqueue_admin_scripts( $hook ) {
177
+ global $post;
178
+ $suffix = defined( 'GMB_DEBUG' ) && GMB_DEBUG ? '' : '.min';
179
+ $screen = get_current_screen();
180
+
181
+ //Only enqueue scripts for Setting screen
182
+ if ( $this->options_page == $screen->id ) {
183
+
184
+ wp_enqueue_script( $this->plugin_slug . '-admin-settings', plugins_url( 'assets/js/admin-settings' . $suffix . '.js', __FILE__ ), array( 'jquery' ), Google_Maps_Builder::VERSION );
185
+
186
+ }
187
+
188
+
189
+ }
190
+
191
+
192
+ /**
193
+ * Hide the Settings welcome on click
194
+ *
195
+ * Sets a user meta key that once set
196
+ *
197
+ */
198
+ public function hide_welcome_callback() {
199
+ global $current_user;
200
+ $user_id = $current_user->ID;
201
+ add_user_meta( $user_id, 'gmb_hide_welcome', 'true', true );
202
+ wp_die(); // ajax call must die to avoid trailing 0 in your response
203
+ }
204
+
205
+
206
+ /**
207
+ * Admin page markup. Mostly handled by CMB
208
+ * @since 0.1.0
209
+ */
210
+ public function admin_page_display() {
211
+
212
+ include( 'views/settings-page.php' );
213
+
214
+ }
215
+
216
+ /**
217
+ * General Option Fields
218
+ * Defines the plugin option metabox and field configuration
219
+ * @since 1.0.0
220
+ * @return array
221
+ */
222
+ public function general_option_fields() {
223
+
224
+ // Only need to initiate the array once per page-load
225
+ if ( ! empty( self::$plugin_options ) ) {
226
+ return self::$plugin_options;
227
+ }
228
+
229
+ $prefix = 'gmb_';
230
+
231
+ self::$plugin_options = array(
232
+ 'id' => 'plugin_options',
233
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( self::$key, ), ),
234
+ 'show_names' => true,
235
+ 'fields' => array(
236
+ array(
237
+ 'name' => __( 'Post Type Slug', $this->plugin_slug ),
238
+ 'desc' => sprintf( __( 'Customize the default slug for this post type. <a href="%s">Resave (flush) permalinks</a> after customizing.', $this->plugin_slug ), esc_url( '/wp-admin/options-permalink.php' ) ),
239
+ 'default' => 'google-maps',
240
+ 'id' => $prefix . 'custom_slug',
241
+ 'type' => 'text_small'
242
+ ),
243
+ array(
244
+ 'name' => __( 'Menu Position', $this->plugin_slug ),
245
+ 'desc' => sprintf( __( 'Set the menu position for Google Maps Builder. See the <a href="%s" class="new-window">menu_position</a> arg.', $this->plugin_slug ), esc_url( 'http://codex.wordpress.org/Function_Reference/register_post_type#Arguments' ) ),
246
+ 'default' => '25',
247
+ 'id' => $prefix . 'menu_position',
248
+ 'type' => 'text_small'
249
+ ),
250
+ array(
251
+ 'name' => __( 'Has Archive', $this->plugin_slug ),
252
+ 'id' => $prefix . 'has_archive',
253
+ 'desc' => sprintf( __( 'Controls the post type archive page. See <a href="%s">Resave (flush) permalinks</a> after customizing.', $this->plugin_slug ), esc_url( '/wp-admin/options-permalink.php' ) ),
254
+ 'type' => 'radio_inline',
255
+ 'options' => array(
256
+ 'true' => __( 'Yes', 'cmb' ),
257
+ 'false' => __( 'No', 'cmb' ),
258
+ ),
259
+ ),
260
+ ),
261
+ );
262
+
263
+ return self::$plugin_options;
264
+
265
+ }
266
+
267
+ /**
268
+ * Map Option Fields
269
+ * Defines the plugin option metabox and field configuration
270
+ * @since 1.0.0
271
+ * @return array
272
+ */
273
+ public function map_option_fields() {
274
+
275
+ // Only need to initiate the array once per page-load
276
+ if ( ! empty( self::$plugin_options ) ) {
277
+ return self::$plugin_options;
278
+ }
279
+
280
+ $prefix = 'gmb_';
281
+
282
+ self::$plugin_options = array(
283
+ 'id' => 'plugin_options',
284
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( self::$key, ), ),
285
+ 'show_names' => true,
286
+ 'fields' => array(
287
+ array(
288
+ 'name' => __( 'Map Size', $this->plugin_slug ),
289
+ 'id' => $prefix . 'width_height',
290
+ 'type' => 'width_height',
291
+ 'width_std' => '100',
292
+ 'width_unit_std' => '%',
293
+ 'height_std' => '600',
294
+ 'lat_std' => '32.7153292',
295
+ 'lng_std' => '-117.15725509',
296
+ 'desc' => '',
297
+ ),
298
+ array(
299
+ 'name' => __( 'Map Location', $this->plugin_slug ),
300
+ 'id' => $prefix . 'lat_lng',
301
+ 'type' => 'lat_lng_default',
302
+ 'lat_std' => '32.7153292',
303
+ 'lng_std' => '-117.15725509',
304
+ 'desc' => '',
305
+ ),
306
+ array(
307
+ 'name' => __( 'Places API Key', $this->plugin_slug ),
308
+ 'desc' => sprintf( __( 'API keys are manage through the <a href="%1$s" class="new-window" target="_blank" class="new-window">Google API Console</a>. For more information please see <a href="%2$s" class="new-window" title="Google Places API Introduction">this article</a>.', $this->plugin_slug ), esc_url( 'https://code.google.com/apis/console/?noredirect' ), esc_url( 'https://developers.google.com/places/documentation/#Authentication' ) ),
309
+ 'id' => $prefix . 'api_key',
310
+ 'type' => 'text',
311
+ ),
312
+ ),
313
+ );
314
+
315
+ return self::$plugin_options;
316
+
317
+ }
318
+
319
+ /**
320
+ * CMB Lat Lng
321
+ *
322
+ * Custom CMB field for Gmap latitude and longitude
323
+ *
324
+ * @param $field
325
+ * @param $meta
326
+ */
327
+ function cmb_render_lat_lng_default( $field, $meta ) {
328
+
329
+ $meta = wp_parse_args(
330
+ $meta, array(
331
+ 'geolocate_map' => 'yes',
332
+ 'latitude' => '',
333
+ 'longitude' => '',
334
+ )
335
+ );
336
+
337
+ //Geolocate
338
+ $output = '<div id="width_wrap" class="clear">';
339
+ $output .= '<label class="geocode-label size-label">' . __( 'Geolocate Position', $this->plugin_slug ) . ':</label>';
340
+ $output .= '<div id="size_labels_wrap" class="geolocate-radio-wrap">';
341
+ $output .= '<input id="geolocate_map_yes" type="radio" name="' . $field['id'] . '[geolocate_map]" class="geolocate_map_radio radio-left" value="yes" ' . ( $meta['geolocate_map'] === 'yes' ? 'checked="checked"' : '' ) . '><label class="yes-label label-left">' . __( 'Yes', $this->plugin_slug ) . '</label>';
342
+
343
+ $output .= '<input id="geolocate_map_no" type="radio" name="' . $field['id'] . '[geolocate_map]" class="geolocate_map_radio radio-left" value="no" ' . ( $meta['geolocate_map'] === 'no' ? 'checked="checked"' : '' ) . ' ><label class="no-label label-left">' . __( 'No', $this->plugin_slug ) . '</label>';
344
+ $output .= '</div>';
345
+
346
+ //lat_lng
347
+ $output .= '<div id="lat-lng-wrap"><div class="coordinates-wrap clear">';
348
+ $output .= '<div class="lat-lng-wrap lat-wrap clear"><span>Latitude: </span>
349
+ <input type="text" class="regular-text latitude" name="' . $field['id'] . '[latitude]" id="' . $field['id'] . '-latitude" value="' . ( $meta['latitude'] ? $meta['latitude'] : $field['lat_std'] ) . '" />
350
+ </div>
351
+ <div class="lat-lng-wrap lng-wrap clear"><span>Longitude: </span>
352
+ <input type="text" class="regular-text longitude" name="' . $field['id'] . '[longitude]" id="' . $field['id'] . '-longitude" value="' . ( $meta['longitude'] ? $meta['longitude'] : $field['lng_std'] ) . '" />
353
+ </div>';
354
+ $output .= '<p class="small-desc">' . sprintf( __( 'For quick lat/lng lookup use <a href="%s" class="new-window" target="_blank">this service</a>', $this->plugin_slug ), esc_url( 'http://www.latlong.net/' ) ) . '</p>';
355
+ $output .= '</div><!-- /.search-coordinates-wrap -->
356
+ </div>';
357
+
358
+
359
+ echo $output;
360
+
361
+
362
+ }
363
+
364
+
365
+ /**
366
+ * Make public the protected $key variable.
367
+ * @since 0.1.0
368
+ * @return string Option key
369
+ */
370
+ public static function key() {
371
+ return self::$key;
372
+ }
373
+
374
+
375
+ /**
376
+ * Add links to Plugin listings view
377
+ *
378
+ * @param $links
379
+ *
380
+ * @return mixed
381
+ */
382
+ function add_plugin_page_links( $links, $file ) {
383
+
384
+ if ( $file == GMB_PLUGIN_BASE ) {
385
+
386
+ // Add Widget Page link to our plugin
387
+ $settings_link = '<a href="edit.php?post_type=google_maps&page=' . self::$key . '" title="' . __( 'Visit the Google Maps Builder plugin settings page', $this->plugin_slug ) . '">' . __( 'Settings', $this->plugin_slug ) . '</a>';
388
+ array_unshift( $links, $settings_link );
389
+
390
+ }
391
+
392
+ return $links;
393
+ }
394
+
395
+ function add_plugin_meta_links( $meta, $file ) {
396
+
397
+ if ( $file == GMB_PLUGIN_BASE ) {
398
+ $meta[] = "<a href='http://wordpress.org/support/view/plugin-reviews/google-maps-builder' target='_blank' title='" . __( 'Rate Google Maps Builder on WordPress.org', $this->plugin_slug ) . "'>" . __( 'Rate Plugin', $this->plugin_slug ) . "</a>";
399
+ $meta[] = '<a href="http://wordpress.org/support/plugin/google-maps-builder/" target="_blank" title="' . __( 'Get plugin support via the WordPress community', $this->plugin_slug ) . '">' . __( 'Support', $this->plugin_slug ) . '</a>';
400
+ $meta[] = __( 'Thank You for using Google Maps Builder', $this->plugin_slug );
401
+ }
402
+
403
+ return $meta;
404
+ }
405
+
406
+
407
+ }
408
+
409
+ // Get it started
410
+ $Google_Maps_Builder_Settings = new Google_Maps_Builder_Settings();
411
+
412
+ /**
413
+ * Wrapper function around cmb_get_option
414
+ * @since 0.1.0
415
+ *
416
+ * @param string $key Options array key
417
+ *
418
+ * @return mixed Option value
419
+ */
420
+ function gmb_get_option( $key = '' ) {
421
+ return cmb_get_option( Google_Maps_Builder_Settings::key(), $key );
422
+ }
admin/includes/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
admin/includes/tooltips/jquery.qtip.css ADDED
@@ -0,0 +1,513 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * qTip2 - Pretty powerful tooltips - v2.2.0
3
+ * http://qtip2.com
4
+ *
5
+ * Copyright (c) 2014 Craig Michael Thompson
6
+ * Released under the MIT, GPL licenses
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: Sun Mar 16 2014 07:12 EDT-0400
10
+ * Plugins: tips viewport imagemap svg modal
11
+ * Styles: css3
12
+ */
13
+ .qtip{
14
+ position: absolute;
15
+ left: -28000px;
16
+ top: -28000px;
17
+ display: none;
18
+
19
+ max-width: 280px;
20
+ min-width: 50px;
21
+
22
+ font-size: 10.5px;
23
+ line-height: 12px;
24
+
25
+ direction: ltr;
26
+
27
+ box-shadow: none;
28
+ padding: 0;
29
+ }
30
+
31
+ .qtip-content{
32
+ position: relative;
33
+ padding: 5px 9px;
34
+ overflow: hidden;
35
+
36
+ text-align: left;
37
+ word-wrap: break-word;
38
+ }
39
+
40
+ .qtip-titlebar{
41
+ position: relative;
42
+ padding: 5px 35px 5px 10px;
43
+ overflow: hidden;
44
+
45
+ border-width: 0 0 1px;
46
+ font-weight: bold;
47
+ }
48
+
49
+ .qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }
50
+
51
+ /* Default close button class */
52
+ .qtip-close{
53
+ position: absolute;
54
+ right: -9px; top: -9px;
55
+
56
+ cursor: pointer;
57
+ outline: medium none;
58
+
59
+ border-width: 1px;
60
+ border-style: solid;
61
+ border-color: transparent;
62
+ }
63
+
64
+ .qtip-titlebar .qtip-close{
65
+ right: 4px; top: 50%;
66
+ margin-top: -9px;
67
+ }
68
+
69
+ * html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */
70
+
71
+ .qtip-titlebar .ui-icon,
72
+ .qtip-icon .ui-icon{
73
+ display: block;
74
+ text-indent: -1000em;
75
+ direction: ltr;
76
+ }
77
+
78
+ .qtip-icon, .qtip-icon .ui-icon{
79
+ -moz-border-radius: 3px;
80
+ -webkit-border-radius: 3px;
81
+ border-radius: 3px;
82
+ text-decoration: none;
83
+ }
84
+
85
+ .qtip-icon .ui-icon{
86
+ width: 18px;
87
+ height: 14px;
88
+
89
+ line-height: 14px;
90
+ text-align: center;
91
+ text-indent: 0;
92
+ font: normal bold 10px/13px Tahoma,sans-serif;
93
+
94
+ color: inherit;
95
+ background: transparent none no-repeat -100em -100em;
96
+ }
97
+
98
+ /* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
99
+ .qtip-focus{}
100
+
101
+ /* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */
102
+ .qtip-hover{}
103
+
104
+ /* Default tooltip style */
105
+ .qtip-default{
106
+ border-width: 1px;
107
+ border-style: solid;
108
+ border-color: #F1D031;
109
+
110
+ background-color: #FFFFA3;
111
+ color: #555;
112
+ }
113
+
114
+ .qtip-default .qtip-titlebar{
115
+ background-color: #FFEF93;
116
+ }
117
+
118
+ .qtip-default .qtip-icon{
119
+ border-color: #CCC;
120
+ background: #F1F1F1;
121
+ color: #777;
122
+ }
123
+
124
+ .qtip-default .qtip-titlebar .qtip-close{
125
+ border-color: #AAA;
126
+ color: #111;
127
+ }
128
+
129
+
130
+
131
+ .qtip-shadow{
132
+ -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
133
+ -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
134
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
135
+ }
136
+
137
+ /* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
138
+ .qtip-rounded,
139
+ .qtip-tipsy,
140
+ .qtip-bootstrap{
141
+ -moz-border-radius: 5px;
142
+ -webkit-border-radius: 5px;
143
+ border-radius: 5px;
144
+ }
145
+
146
+ .qtip-rounded .qtip-titlebar{
147
+ -moz-border-radius: 4px 4px 0 0;
148
+ -webkit-border-radius: 4px 4px 0 0;
149
+ border-radius: 4px 4px 0 0;
150
+ }
151
+
152
+ /* Youtube tooltip style */
153
+ .qtip-youtube{
154
+ -moz-border-radius: 2px;
155
+ -webkit-border-radius: 2px;
156
+ border-radius: 2px;
157
+
158
+ -webkit-box-shadow: 0 0 3px #333;
159
+ -moz-box-shadow: 0 0 3px #333;
160
+ box-shadow: 0 0 3px #333;
161
+
162
+ color: white;
163
+ border-width: 0;
164
+
165
+ background: #4A4A4A;
166
+ background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));
167
+ background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);
168
+ background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);
169
+ background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);
170
+ background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);
171
+ }
172
+
173
+ .qtip-youtube .qtip-titlebar{
174
+ background-color: #4A4A4A;
175
+ background-color: rgba(0,0,0,0);
176
+ }
177
+
178
+ .qtip-youtube .qtip-content{
179
+ padding: .75em;
180
+ font: 12px arial,sans-serif;
181
+
182
+ filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);
183
+ -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);";
184
+ }
185
+
186
+ .qtip-youtube .qtip-icon{
187
+ border-color: #222;
188
+ }
189
+
190
+ .qtip-youtube .qtip-titlebar .ui-state-hover{
191
+ border-color: #303030;
192
+ }
193
+
194
+
195
+ /* jQuery TOOLS Tooltip style */
196
+ .qtip-jtools{
197
+ background: #232323;
198
+ background: rgba(0, 0, 0, 0.7);
199
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
200
+ background-image: -moz-linear-gradient(top, #717171, #232323);
201
+ background-image: -webkit-linear-gradient(top, #717171, #232323);
202
+ background-image: -ms-linear-gradient(top, #717171, #232323);
203
+ background-image: -o-linear-gradient(top, #717171, #232323);
204
+
205
+ border: 2px solid #ddd;
206
+ border: 2px solid rgba(241,241,241,1);
207
+
208
+ -moz-border-radius: 2px;
209
+ -webkit-border-radius: 2px;
210
+ border-radius: 2px;
211
+
212
+ -webkit-box-shadow: 0 0 12px #333;
213
+ -moz-box-shadow: 0 0 12px #333;
214
+ box-shadow: 0 0 12px #333;
215
+ }
216
+
217
+ /* IE Specific */
218
+ .qtip-jtools .qtip-titlebar{
219
+ background-color: transparent;
220
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);
221
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";
222
+ }
223
+ .qtip-jtools .qtip-content{
224
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);
225
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";
226
+ }
227
+
228
+ .qtip-jtools .qtip-titlebar,
229
+ .qtip-jtools .qtip-content{
230
+ background: transparent;
231
+ color: white;
232
+ border: 0 dashed transparent;
233
+ }
234
+
235
+ .qtip-jtools .qtip-icon{
236
+ border-color: #555;
237
+ }
238
+
239
+ .qtip-jtools .qtip-titlebar .ui-state-hover{
240
+ border-color: #333;
241
+ }
242
+
243
+
244
+ /* Cluetip style */
245
+ .qtip-cluetip{
246
+ -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
247
+ -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
248
+ box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
249
+
250
+ background-color: #D9D9C2;
251
+ color: #111;
252
+ border: 0 dashed transparent;
253
+ }
254
+
255
+ .qtip-cluetip .qtip-titlebar{
256
+ background-color: #87876A;
257
+ color: white;
258
+ border: 0 dashed transparent;
259
+ }
260
+
261
+ .qtip-cluetip .qtip-icon{
262
+ border-color: #808064;
263
+ }
264
+
265
+ .qtip-cluetip .qtip-titlebar .ui-state-hover{
266
+ border-color: #696952;
267
+ color: #696952;
268
+ }
269
+
270
+
271
+ /* Tipsy style */
272
+ .qtip-tipsy{
273
+ background: black;
274
+ background: rgba(0, 0, 0, .87);
275
+
276
+ color: white;
277
+ border: 0 solid transparent;
278
+
279
+ font-size: 11px;
280
+ font-family: 'Lucida Grande', sans-serif;
281
+ font-weight: bold;
282
+ line-height: 16px;
283
+ text-shadow: 0 1px black;
284
+ }
285
+
286
+ .qtip-tipsy .qtip-titlebar{
287
+ padding: 6px 35px 0 10px;
288
+ background-color: transparent;
289
+ }
290
+
291
+ .qtip-tipsy .qtip-content{
292
+ padding: 6px 10px;
293
+ }
294
+
295
+ .qtip-tipsy .qtip-icon{
296
+ border-color: #222;
297
+ text-shadow: none;
298
+ }
299
+
300
+ .qtip-tipsy .qtip-titlebar .ui-state-hover{
301
+ border-color: #303030;
302
+ }
303
+
304
+
305
+ /* Tipped style */
306
+ .qtip-tipped{
307
+ border: 3px solid #959FA9;
308
+
309
+ -moz-border-radius: 3px;
310
+ -webkit-border-radius: 3px;
311
+ border-radius: 3px;
312
+
313
+ background-color: #F9F9F9;
314
+ color: #454545;
315
+
316
+ font-weight: normal;
317
+ font-family: serif;
318
+ }
319
+
320
+ .qtip-tipped .qtip-titlebar{
321
+ border-bottom-width: 0;
322
+
323
+ color: white;
324
+ background: #3A79B8;
325
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
326
+ background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);
327
+ background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
328
+ background-image: -ms-linear-gradient(top, #3A79B8, #2E629D);
329
+ background-image: -o-linear-gradient(top, #3A79B8, #2E629D);
330
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
331
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";
332
+ }
333
+
334
+ .qtip-tipped .qtip-icon{
335
+ border: 2px solid #285589;
336
+ background: #285589;
337
+ }
338
+
339
+ .qtip-tipped .qtip-icon .ui-icon{
340
+ background-color: #FBFBFB;
341
+ color: #555;
342
+ }
343
+
344
+
345
+ /**
346
+ * Twitter Bootstrap style.
347
+ *
348
+ * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.
349
+ * Does not work with IE 7.
350
+ */
351
+ .qtip-bootstrap{
352
+ /** Taken from Bootstrap body */
353
+ font-size: 14px;
354
+ line-height: 20px;
355
+ color: #333333;
356
+
357
+ /** Taken from Bootstrap .popover */
358
+ padding: 1px;
359
+ background-color: #ffffff;
360
+ border: 1px solid #ccc;
361
+ border: 1px solid rgba(0, 0, 0, 0.2);
362
+ -webkit-border-radius: 6px;
363
+ -moz-border-radius: 6px;
364
+ border-radius: 6px;
365
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
366
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
367
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
368
+ -webkit-background-clip: padding-box;
369
+ -moz-background-clip: padding;
370
+ background-clip: padding-box;
371
+ }
372
+
373
+ .qtip-bootstrap .qtip-titlebar{
374
+ /** Taken from Bootstrap .popover-title */
375
+ padding: 8px 14px;
376
+ margin: 0;
377
+ font-size: 14px;
378
+ font-weight: normal;
379
+ line-height: 18px;
380
+ background-color: #f7f7f7;
381
+ border-bottom: 1px solid #ebebeb;
382
+ -webkit-border-radius: 5px 5px 0 0;
383
+ -moz-border-radius: 5px 5px 0 0;
384
+ border-radius: 5px 5px 0 0;
385
+ }
386
+
387
+ .qtip-bootstrap .qtip-titlebar .qtip-close{
388
+ /**
389
+ * Overrides qTip2:
390
+ * .qtip-titlebar .qtip-close{
391
+ * [...]
392
+ * right: 4px;
393
+ * top: 50%;
394
+ * [...]
395
+ * border-style: solid;
396
+ * }
397
+ */
398
+ right: 11px;
399
+ top: 45%;
400
+ border-style: none;
401
+ }
402
+
403
+ .qtip-bootstrap .qtip-content{
404
+ /** Taken from Bootstrap .popover-content */
405
+ padding: 9px 14px;
406
+ }
407
+
408
+ .qtip-bootstrap .qtip-icon{
409
+ /**
410
+ * Overrides qTip2:
411
+ * .qtip-default .qtip-icon {
412
+ * border-color: #CCC;
413
+ * background: #F1F1F1;
414
+ * color: #777;
415
+ * }
416
+ */
417
+ background: transparent;
418
+ }
419
+
420
+ .qtip-bootstrap .qtip-icon .ui-icon{
421
+ /**
422
+ * Overrides qTip2:
423
+ * .qtip-icon .ui-icon{
424
+ * width: 18px;
425
+ * height: 14px;
426
+ * }
427
+ */
428
+ width: auto;
429
+ height: auto;
430
+
431
+ /* Taken from Bootstrap .close */
432
+ float: right;
433
+ font-size: 20px;
434
+ font-weight: bold;
435
+ line-height: 18px;
436
+ color: #000000;
437
+ text-shadow: 0 1px 0 #ffffff;
438
+ opacity: 0.2;
439
+ filter: alpha(opacity=20);
440
+ }
441
+
442
+ .qtip-bootstrap .qtip-icon .ui-icon:hover{
443
+ /* Taken from Bootstrap .close:hover */
444
+ color: #000000;
445
+ text-decoration: none;
446
+ cursor: pointer;
447
+ opacity: 0.4;
448
+ filter: alpha(opacity=40);
449
+ }
450
+
451
+
452
+ /* IE9 fix - removes all filters */
453
+ .qtip:not(.ie9haxors) div.qtip-content,
454
+ .qtip:not(.ie9haxors) div.qtip-titlebar{
455
+ filter: none;
456
+ -ms-filter: none;
457
+ }
458
+
459
+
460
+
461
+ .qtip .qtip-tip{
462
+ margin: 0 auto;
463
+ overflow: hidden;
464
+ z-index: 10;
465
+
466
+ }
467
+
468
+ /* Opera bug #357 - Incorrect tip position
469
+ https://github.com/Craga89/qTip2/issues/367 */
470
+ x:-o-prefocus, .qtip .qtip-tip{
471
+ visibility: hidden;
472
+ }
473
+
474
+ .qtip .qtip-tip,
475
+ .qtip .qtip-tip .qtip-vml,
476
+ .qtip .qtip-tip canvas{
477
+ position: absolute;
478
+
479
+ color: #123456;
480
+ background: transparent;
481
+ border: 0 dashed transparent;
482
+ }
483
+
484
+ .qtip .qtip-tip canvas{ top: 0; left: 0; }
485
+
486
+ .qtip .qtip-tip .qtip-vml{
487
+ behavior: url(#default#VML);
488
+ display: inline-block;
489
+ visibility: visible;
490
+ }
491
+
492
+ #qtip-overlay{
493
+ position: fixed;
494
+ left: 0; top: 0;
495
+ width: 100%; height: 100%;
496
+ }
497
+
498
+ /* Applied to modals with show.modal.blur set to true */
499
+ #qtip-overlay.blurs{ cursor: pointer; }
500
+
501
+ /* Change opacity of overlay here */
502
+ #qtip-overlay div{
503
+ position: absolute;
504
+ left: 0; top: 0;
505
+ width: 100%; height: 100%;
506
+
507
+ background-color: black;
508
+
509
+ opacity: 0.7;
510
+ filter:alpha(opacity=70);
511
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
512
+ }
513
+
admin/includes/tooltips/jquery.qtip.js ADDED
@@ -0,0 +1,3302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * qTip2 - Pretty powerful tooltips - v2.2.0
3
+ * http://qtip2.com
4
+ *
5
+ * Copyright (c) 2014 Craig Michael Thompson
6
+ * Released under the MIT, GPL licenses
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: Sun Mar 16 2014 07:12 EDT-0400
10
+ * Plugins: tips viewport imagemap svg modal
11
+ * Styles: css3
12
+ */
13
+ /*global window: false, jQuery: false, console: false, define: false */
14
+
15
+ /* Cache window, document, undefined */
16
+ (function( window, document, undefined ) {
17
+
18
+ // Uses AMD or browser globals to create a jQuery plugin.
19
+ (function( factory ) {
20
+ "use strict";
21
+ if(typeof define === 'function' && define.amd) {
22
+ define(['jquery'], factory);
23
+ }
24
+ else if(jQuery && !jQuery.fn.qtip) {
25
+ factory(jQuery);
26
+ }
27
+ }
28
+ (function($) {
29
+ "use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
30
+
31
+ ;// Munge the primitives - Paul Irish tip
32
+ var TRUE = true,
33
+ FALSE = false,
34
+ NULL = null,
35
+
36
+ // Common variables
37
+ X = 'x', Y = 'y',
38
+ WIDTH = 'width',
39
+ HEIGHT = 'height',
40
+
41
+ // Positioning sides
42
+ TOP = 'top',
43
+ LEFT = 'left',
44
+ BOTTOM = 'bottom',
45
+ RIGHT = 'right',
46
+ CENTER = 'center',
47
+
48
+ // Position adjustment types
49
+ FLIP = 'flip',
50
+ FLIPINVERT = 'flipinvert',
51
+ SHIFT = 'shift',
52
+
53
+ // Shortcut vars
54
+ QTIP, PROTOTYPE, CORNER, CHECKS,
55
+ PLUGINS = {},
56
+ NAMESPACE = 'qtip',
57
+ ATTR_HAS = 'data-hasqtip',
58
+ ATTR_ID = 'data-qtip-id',
59
+ WIDGET = ['ui-widget', 'ui-tooltip'],
60
+ SELECTOR = '.'+NAMESPACE,
61
+ INACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '),
62
+
63
+ CLASS_FIXED = NAMESPACE+'-fixed',
64
+ CLASS_DEFAULT = NAMESPACE + '-default',
65
+ CLASS_FOCUS = NAMESPACE + '-focus',
66
+ CLASS_HOVER = NAMESPACE + '-hover',
67
+ CLASS_DISABLED = NAMESPACE+'-disabled',
68
+
69
+ replaceSuffix = '_replacedByqTip',
70
+ oldtitle = 'oldtitle',
71
+ trackingBound,
72
+
73
+ // Browser detection
74
+ BROWSER = {
75
+ /*
76
+ * IE version detection
77
+ *
78
+ * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment
79
+ * Credit to James Padolsey for the original implemntation!
80
+ */
81
+ ie: (function(){
82
+ var v = 3, div = document.createElement('div');
83
+ while ((div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->')) {
84
+ if(!div.getElementsByTagName('i')[0]) { break; }
85
+ }
86
+ return v > 4 ? v : NaN;
87
+ }()),
88
+
89
+ /*
90
+ * iOS version detection
91
+ */
92
+ iOS: parseFloat(
93
+ ('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1])
94
+ .replace('undefined', '3_2').replace('_', '.').replace('_', '')
95
+ ) || FALSE
96
+ };
97
+
98
+ ;function QTip(target, options, id, attr) {
99
+ // Elements and ID
100
+ this.id = id;
101
+ this.target = target;
102
+ this.tooltip = NULL;
103
+ this.elements = { target: target };
104
+
105
+ // Internal constructs
106
+ this._id = NAMESPACE + '-' + id;
107
+ this.timers = { img: {} };
108
+ this.options = options;
109
+ this.plugins = {};
110
+
111
+ // Cache object
112
+ this.cache = {
113
+ event: {},
114
+ target: $(),
115
+ disabled: FALSE,
116
+ attr: attr,
117
+ onTooltip: FALSE,
118
+ lastClass: ''
119
+ };
120
+
121
+ // Set the initial flags
122
+ this.rendered = this.destroyed = this.disabled = this.waiting =
123
+ this.hiddenDuringWait = this.positioning = this.triggering = FALSE;
124
+ }
125
+ PROTOTYPE = QTip.prototype;
126
+
127
+ PROTOTYPE._when = function(deferreds) {
128
+ return $.when.apply($, deferreds);
129
+ };
130
+
131
+ PROTOTYPE.render = function(show) {
132
+ if(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit
133
+
134
+ var self = this,
135
+ options = this.options,
136
+ cache = this.cache,
137
+ elements = this.elements,
138
+ text = options.content.text,
139
+ title = options.content.title,
140
+ button = options.content.button,
141
+ posOptions = options.position,
142
+ namespace = '.'+this._id+' ',
143
+ deferreds = [],
144
+ tooltip;
145
+
146
+ // Add ARIA attributes to target
147
+ $.attr(this.target[0], 'aria-describedby', this._id);
148
+
149
+ // Create tooltip element
150
+ this.tooltip = elements.tooltip = tooltip = $('<div/>', {
151
+ 'id': this._id,
152
+ 'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, NAMESPACE + '-pos-' + options.position.my.abbrev() ].join(' '),
153
+ 'width': options.style.width || '',
154
+ 'height': options.style.height || '',
155
+ 'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse,
156
+
157
+ /* ARIA specific attributes */
158
+ 'role': 'alert',
159
+ 'aria-live': 'polite',
160
+ 'aria-atomic': FALSE,
161
+ 'aria-describedby': this._id + '-content',
162
+ 'aria-hidden': TRUE
163
+ })
164
+ .toggleClass(CLASS_DISABLED, this.disabled)
165
+ .attr(ATTR_ID, this.id)
166
+ .data(NAMESPACE, this)
167
+ .appendTo(posOptions.container)
168
+ .append(
169
+ // Create content element
170
+ elements.content = $('<div />', {
171
+ 'class': NAMESPACE + '-content',
172
+ 'id': this._id + '-content',
173
+ 'aria-atomic': TRUE
174
+ })
175
+ );
176
+
177
+ // Set rendered flag and prevent redundant reposition calls for now
178
+ this.rendered = -1;
179
+ this.positioning = TRUE;
180
+
181
+ // Create title...
182
+ if(title) {
183
+ this._createTitle();
184
+
185
+ // Update title only if its not a callback (called in toggle if so)
186
+ if(!$.isFunction(title)) {
187
+ deferreds.push( this._updateTitle(title, FALSE) );
188
+ }
189
+ }
190
+
191
+ // Create button
192
+ if(button) { this._createButton(); }
193
+
194
+ // Set proper rendered flag and update content if not a callback function (called in toggle)
195
+ if(!$.isFunction(text)) {
196
+ deferreds.push( this._updateContent(text, FALSE) );
197
+ }
198
+ this.rendered = TRUE;
199
+
200
+ // Setup widget classes
201
+ this._setWidget();
202
+
203
+ // Initialize 'render' plugins
204
+ $.each(PLUGINS, function(name) {
205
+ var instance;
206
+ if(this.initialize === 'render' && (instance = this(self))) {
207
+ self.plugins[name] = instance;
208
+ }
209
+ });
210
+
211
+ // Unassign initial events and assign proper events
212
+ this._unassignEvents();
213
+ this._assignEvents();
214
+
215
+ // When deferreds have completed
216
+ this._when(deferreds).then(function() {
217
+ // tooltiprender event
218
+ self._trigger('render');
219
+
220
+ // Reset flags
221
+ self.positioning = FALSE;
222
+
223
+ // Show tooltip if not hidden during wait period
224
+ if(!self.hiddenDuringWait && (options.show.ready || show)) {
225
+ self.toggle(TRUE, cache.event, FALSE);
226
+ }
227
+ self.hiddenDuringWait = FALSE;
228
+ });
229
+
230
+ // Expose API
231
+ QTIP.api[this.id] = this;
232
+
233
+ return this;
234
+ };
235
+
236
+ PROTOTYPE.destroy = function(immediate) {
237
+ // Set flag the signify destroy is taking place to plugins
238
+ // and ensure it only gets destroyed once!
239
+ if(this.destroyed) { return this.target; }
240
+
241
+ function process() {
242
+ if(this.destroyed) { return; }
243
+ this.destroyed = TRUE;
244
+
245
+ var target = this.target,
246
+ title = target.attr(oldtitle);
247
+
248
+ // Destroy tooltip if rendered
249
+ if(this.rendered) {
250
+ this.tooltip.stop(1,0).find('*').remove().end().remove();
251
+ }
252
+
253
+ // Destroy all plugins
254
+ $.each(this.plugins, function(name) {
255
+ this.destroy && this.destroy();
256
+ });
257
+
258
+ // Clear timers and remove bound events
259
+ clearTimeout(this.timers.show);
260
+ clearTimeout(this.timers.hide);
261
+ this._unassignEvents();
262
+
263
+ // Remove api object and ARIA attributes
264
+ target.removeData(NAMESPACE)
265
+ .removeAttr(ATTR_ID)
266
+ .removeAttr(ATTR_HAS)
267
+ .removeAttr('aria-describedby');
268
+
269
+ // Reset old title attribute if removed
270
+ if(this.options.suppress && title) {
271
+ target.attr('title', title).removeAttr(oldtitle);
272
+ }
273
+
274
+ // Remove qTip events associated with this API
275
+ this._unbind(target);
276
+
277
+ // Remove ID from used id objects, and delete object references
278
+ // for better garbage collection and leak protection
279
+ this.options = this.elements = this.cache = this.timers =
280
+ this.plugins = this.mouse = NULL;
281
+
282
+ // Delete epoxsed API object
283
+ delete QTIP.api[this.id];
284
+ }
285
+
286
+ // If an immediate destory is needed
287
+ if((immediate !== TRUE || this.triggering === 'hide') && this.rendered) {
288
+ this.tooltip.one('tooltiphidden', $.proxy(process, this));
289
+ !this.triggering && this.hide();
290
+ }
291
+
292
+ // If we're not in the process of hiding... process
293
+ else { process.call(this); }
294
+
295
+ return this.target;
296
+ };
297
+
298
+ ;function invalidOpt(a) {
299
+ return a === NULL || $.type(a) !== 'object';
300
+ }
301
+
302
+ function invalidContent(c) {
303
+ return !( $.isFunction(c) || (c && c.attr) || c.length || ($.type(c) === 'object' && (c.jquery || c.then) ));
304
+ }
305
+
306
+ // Option object sanitizer
307
+ function sanitizeOptions(opts) {
308
+ var content, text, ajax, once;
309
+
310
+ if(invalidOpt(opts)) { return FALSE; }
311
+
312
+ if(invalidOpt(opts.metadata)) {
313
+ opts.metadata = { type: opts.metadata };
314
+ }
315
+
316
+ if('content' in opts) {
317
+ content = opts.content;
318
+
319
+ if(invalidOpt(content) || content.jquery || content.done) {
320
+ content = opts.content = {
321
+ text: (text = invalidContent(content) ? FALSE : content)
322
+ };
323
+ }
324
+ else { text = content.text; }
325
+
326
+ // DEPRECATED - Old content.ajax plugin functionality
327
+ // Converts it into the proper Deferred syntax
328
+ if('ajax' in content) {
329
+ ajax = content.ajax;
330
+ once = ajax && ajax.once !== FALSE;
331
+ delete content.ajax;
332
+
333
+ content.text = function(event, api) {
334
+ var loading = text || $(this).attr(api.options.content.attr) || 'Loading...',
335
+
336
+ deferred = $.ajax(
337
+ $.extend({}, ajax, { context: api })
338
+ )
339
+ .then(ajax.success, NULL, ajax.error)
340
+ .then(function(content) {
341
+ if(content && once) { api.set('content.text', content); }
342
+ return content;
343
+ },
344
+ function(xhr, status, error) {
345
+ if(api.destroyed || xhr.status === 0) { return; }
346
+ api.set('content.text', status + ': ' + error);
347
+ });
348
+
349
+ return !once ? (api.set('content.text', loading), deferred) : loading;
350
+ };
351
+ }
352
+
353
+ if('title' in content) {
354
+ if(!invalidOpt(content.title)) {
355
+ content.button = content.title.button;
356
+ content.title = content.title.text;
357
+ }
358
+
359
+ if(invalidContent(content.title || FALSE)) {
360
+ content.title = FALSE;
361
+ }
362
+ }
363
+ }
364
+
365
+ if('position' in opts && invalidOpt(opts.position)) {
366
+ opts.position = { my: opts.position, at: opts.position };
367
+ }
368
+
369
+ if('show' in opts && invalidOpt(opts.show)) {
370
+ opts.show = opts.show.jquery ? { target: opts.show } :
371
+ opts.show === TRUE ? { ready: TRUE } : { event: opts.show };
372
+ }
373
+
374
+ if('hide' in opts && invalidOpt(opts.hide)) {
375
+ opts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide };
376
+ }
377
+
378
+ if('style' in opts && invalidOpt(opts.style)) {
379
+ opts.style = { classes: opts.style };
380
+ }
381
+
382
+ // Sanitize plugin options
383
+ $.each(PLUGINS, function() {
384
+ this.sanitize && this.sanitize(opts);
385
+ });
386
+
387
+ return opts;
388
+ }
389
+
390
+ // Setup builtin .set() option checks
391
+ CHECKS = PROTOTYPE.checks = {
392
+ builtin: {
393
+ // Core checks
394
+ '^id$': function(obj, o, v, prev) {
395
+ var id = v === TRUE ? QTIP.nextid : v,
396
+ new_id = NAMESPACE + '-' + id;
397
+
398
+ if(id !== FALSE && id.length > 0 && !$('#'+new_id).length) {
399
+ this._id = new_id;
400
+
401
+ if(this.rendered) {
402
+ this.tooltip[0].id = this._id;
403
+ this.elements.content[0].id = this._id + '-content';
404
+ this.elements.title[0].id = this._id + '-title';
405
+ }
406
+ }
407
+ else { obj[o] = prev; }
408
+ },
409
+ '^prerender': function(obj, o, v) {
410
+ v && !this.rendered && this.render(this.options.show.ready);
411
+ },
412
+
413
+ // Content checks
414
+ '^content.text$': function(obj, o, v) {
415
+ this._updateContent(v);
416
+ },
417
+ '^content.attr$': function(obj, o, v, prev) {
418
+ if(this.options.content.text === this.target.attr(prev)) {
419
+ this._updateContent( this.target.attr(v) );
420
+ }
421
+ },
422
+ '^content.title$': function(obj, o, v) {
423
+ // Remove title if content is null
424
+ if(!v) { return this._removeTitle(); }
425
+
426
+ // If title isn't already created, create it now and update
427
+ v && !this.elements.title && this._createTitle();
428
+ this._updateTitle(v);
429
+ },
430
+ '^content.button$': function(obj, o, v) {
431
+ this._updateButton(v);
432
+ },
433
+ '^content.title.(text|button)$': function(obj, o, v) {
434
+ this.set('content.'+o, v); // Backwards title.text/button compat
435
+ },
436
+
437
+ // Position checks
438
+ '^position.(my|at)$': function(obj, o, v){
439
+ 'string' === typeof v && (obj[o] = new CORNER(v, o === 'at'));
440
+ },
441
+ '^position.container$': function(obj, o, v){
442
+ this.rendered && this.tooltip.appendTo(v);
443
+ },
444
+
445
+ // Show checks
446
+ '^show.ready$': function(obj, o, v) {
447
+ v && (!this.rendered && this.render(TRUE) || this.toggle(TRUE));
448
+ },
449
+
450
+ // Style checks
451
+ '^style.classes$': function(obj, o, v, p) {
452
+ this.rendered && this.tooltip.removeClass(p).addClass(v);
453
+ },
454
+ '^style.(width|height)': function(obj, o, v) {
455
+ this.rendered && this.tooltip.css(o, v);
456
+ },
457
+ '^style.widget|content.title': function() {
458
+ this.rendered && this._setWidget();
459
+ },
460
+ '^style.def': function(obj, o, v) {
461
+ this.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v);
462
+ },
463
+
464
+ // Events check
465
+ '^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) {
466
+ this.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v);
467
+ },
468
+
469
+ // Properties which require event reassignment
470
+ '^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() {
471
+ if(!this.rendered) { return; }
472
+
473
+ // Set tracking flag
474
+ var posOptions = this.options.position;
475
+ this.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse);
476
+
477
+ // Reassign events
478
+ this._unassignEvents();
479
+ this._assignEvents();
480
+ }
481
+ }
482
+ };
483
+
484
+ // Dot notation converter
485
+ function convertNotation(options, notation) {
486
+ var i = 0, obj, option = options,
487
+
488
+ // Split notation into array
489
+ levels = notation.split('.');
490
+
491
+ // Loop through
492
+ while( option = option[ levels[i++] ] ) {
493
+ if(i < levels.length) { obj = option; }
494
+ }
495
+
496
+ return [obj || options, levels.pop()];
497
+ }
498
+
499
+ PROTOTYPE.get = function(notation) {
500
+ if(this.destroyed) { return this; }
501
+
502
+ var o = convertNotation(this.options, notation.toLowerCase()),
503
+ result = o[0][ o[1] ];
504
+
505
+ return result.precedance ? result.string() : result;
506
+ };
507
+
508
+ function setCallback(notation, args) {
509
+ var category, rule, match;
510
+
511
+ for(category in this.checks) {
512
+ for(rule in this.checks[category]) {
513
+ if(match = (new RegExp(rule, 'i')).exec(notation)) {
514
+ args.push(match);
515
+
516
+ if(category === 'builtin' || this.plugins[category]) {
517
+ this.checks[category][rule].apply(
518
+ this.plugins[category] || this, args
519
+ );
520
+ }
521
+ }
522
+ }
523
+ }
524
+ }
525
+
526
+ var rmove = /^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,
527
+ rrender = /^prerender|show\.ready/i;
528
+
529
+ PROTOTYPE.set = function(option, value) {
530
+ if(this.destroyed) { return this; }
531
+
532
+ var rendered = this.rendered,
533
+ reposition = FALSE,
534
+ options = this.options,
535
+ checks = this.checks,
536
+ name;
537
+
538
+ // Convert singular option/value pair into object form
539
+ if('string' === typeof option) {
540
+ name = option; option = {}; option[name] = value;
541
+ }
542
+ else { option = $.extend({}, option); }
543
+
544
+ // Set all of the defined options to their new values
545
+ $.each(option, function(notation, value) {
546
+ if(rendered && rrender.test(notation)) {
547
+ delete option[notation]; return;
548
+ }
549
+
550
+ // Set new obj value
551
+ var obj = convertNotation(options, notation.toLowerCase()), previous;
552
+ previous = obj[0][ obj[1] ];
553
+ obj[0][ obj[1] ] = value && value.nodeType ? $(value) : value;
554
+
555
+ // Also check if we need to reposition
556
+ reposition = rmove.test(notation) || reposition;
557
+
558
+ // Set the new params for the callback
559
+ option[notation] = [obj[0], obj[1], value, previous];
560
+ });
561
+
562
+ // Re-sanitize options
563
+ sanitizeOptions(options);
564
+
565
+ /*
566
+ * Execute any valid callbacks for the set options
567
+ * Also set positioning flag so we don't get loads of redundant repositioning calls.
568
+ */
569
+ this.positioning = TRUE;
570
+ $.each(option, $.proxy(setCallback, this));
571
+ this.positioning = FALSE;
572
+
573
+ // Update position if needed
574
+ if(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) {
575
+ this.reposition( options.position.target === 'mouse' ? NULL : this.cache.event );
576
+ }
577
+
578
+ return this;
579
+ };
580
+
581
+ ;PROTOTYPE._update = function(content, element, reposition) {
582
+ var self = this,
583
+ cache = this.cache;
584
+
585
+ // Make sure tooltip is rendered and content is defined. If not return
586
+ if(!this.rendered || !content) { return FALSE; }
587
+
588
+ // Use function to parse content
589
+ if($.isFunction(content)) {
590
+ content = content.call(this.elements.target, cache.event, this) || '';
591
+ }
592
+
593
+ // Handle deferred content
594
+ if($.isFunction(content.then)) {
595
+ cache.waiting = TRUE;
596
+ return content.then(function(c) {
597
+ cache.waiting = FALSE;
598
+ return self._update(c, element);
599
+ }, NULL, function(e) {
600
+ return self._update(e, element);
601
+ });
602
+ }
603
+
604
+ // If content is null... return false
605
+ if(content === FALSE || (!content && content !== '')) { return FALSE; }
606
+
607
+ // Append new content if its a DOM array and show it if hidden
608
+ if(content.jquery && content.length > 0) {
609
+ element.empty().append(
610
+ content.css({ display: 'block', visibility: 'visible' })
611
+ );
612
+ }
613
+
614
+ // Content is a regular string, insert the new content
615
+ else { element.html(content); }
616
+
617
+ // Wait for content to be loaded, and reposition
618
+ return this._waitForContent(element).then(function(images) {
619
+ if(images.images && images.images.length && self.rendered && self.tooltip[0].offsetWidth > 0) {
620
+ self.reposition(cache.event, !images.length);
621
+ }
622
+ });
623
+ };
624
+
625
+ PROTOTYPE._waitForContent = function(element) {
626
+ var cache = this.cache;
627
+
628
+ // Set flag
629
+ cache.waiting = TRUE;
630
+
631
+ // If imagesLoaded is included, ensure images have loaded and return promise
632
+ return ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) )
633
+ .done(function() { cache.waiting = FALSE; })
634
+ .promise();
635
+ };
636
+
637
+ PROTOTYPE._updateContent = function(content, reposition) {
638
+ this._update(content, this.elements.content, reposition);
639
+ };
640
+
641
+ PROTOTYPE._updateTitle = function(content, reposition) {
642
+ if(this._update(content, this.elements.title, reposition) === FALSE) {
643
+ this._removeTitle(FALSE);
644
+ }
645
+ };
646
+
647
+ PROTOTYPE._createTitle = function()
648
+ {
649
+ var elements = this.elements,
650
+ id = this._id+'-title';
651
+
652
+ // Destroy previous title element, if present
653
+ if(elements.titlebar) { this._removeTitle(); }
654
+
655
+ // Create title bar and title elements
656
+ elements.titlebar = $('<div />', {
657
+ 'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '')
658
+ })
659
+ .append(
660
+ elements.title = $('<div />', {
661
+ 'id': id,
662
+ 'class': NAMESPACE + '-title',
663
+ 'aria-atomic': TRUE
664
+ })
665
+ )
666
+ .insertBefore(elements.content)
667
+
668
+ // Button-specific events
669
+ .delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) {
670
+ $(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down');
671
+ })
672
+ .delegate('.qtip-close', 'mouseover mouseout', function(event){
673
+ $(this).toggleClass('ui-state-hover', event.type === 'mouseover');
674
+ });
675
+
676
+ // Create button if enabled
677
+ if(this.options.content.button) { this._createButton(); }
678
+ };
679
+
680
+ PROTOTYPE._removeTitle = function(reposition)
681
+ {
682
+ var elements = this.elements;
683
+
684
+ if(elements.title) {
685
+ elements.titlebar.remove();
686
+ elements.titlebar = elements.title = elements.button = NULL;
687
+
688
+ // Reposition if enabled
689
+ if(reposition !== FALSE) { this.reposition(); }
690
+ }
691
+ };
692
+
693
+ ;PROTOTYPE.reposition = function(event, effect) {
694
+ if(!this.rendered || this.positioning || this.destroyed) { return this; }
695
+
696
+ // Set positioning flag
697
+ this.positioning = TRUE;
698
+
699
+ var cache = this.cache,
700
+ tooltip = this.tooltip,
701
+ posOptions = this.options.position,
702
+ target = posOptions.target,
703
+ my = posOptions.my,
704
+ at = posOptions.at,
705
+ viewport = posOptions.viewport,
706
+ container = posOptions.container,
707
+ adjust = posOptions.adjust,
708
+ method = adjust.method.split(' '),
709
+ tooltipWidth = tooltip.outerWidth(FALSE),
710
+ tooltipHeight = tooltip.outerHeight(FALSE),
711
+ targetWidth = 0,
712
+ targetHeight = 0,
713
+ type = tooltip.css('position'),
714
+ position = { left: 0, top: 0 },
715
+ visible = tooltip[0].offsetWidth > 0,
716
+ isScroll = event && event.type === 'scroll',
717
+ win = $(window),
718
+ doc = container[0].ownerDocument,
719
+ mouse = this.mouse,
720
+ pluginCalculations, offset;
721
+
722
+ // Check if absolute position was passed
723
+ if($.isArray(target) && target.length === 2) {
724
+ // Force left top and set position
725
+ at = { x: LEFT, y: TOP };
726
+ position = { left: target[0], top: target[1] };
727
+ }
728
+
729
+ // Check if mouse was the target
730
+ else if(target === 'mouse') {
731
+ // Force left top to allow flipping
732
+ at = { x: LEFT, y: TOP };
733
+
734
+ // Use the cached mouse coordinates if available, or passed event has no coordinates
735
+ if(mouse && mouse.pageX && (adjust.mouse || !event || !event.pageX) ) {
736
+ event = mouse;
737
+ }
738
+
739
+ // If the passed event has no coordinates (such as a scroll event)
740
+ else if(!event || !event.pageX) {
741
+ // Use the mouse origin that caused the show event, if distance hiding is enabled
742
+ if((!adjust.mouse || this.options.show.distance) && cache.origin && cache.origin.pageX) {
743
+ event = cache.origin;
744
+ }
745
+
746
+ // Use cached event for resize/scroll events
747
+ else if(!event || (event && (event.type === 'resize' || event.type === 'scroll'))) {
748
+ event = cache.event;
749
+ }
750
+ }
751
+
752
+ // Calculate body and container offset and take them into account below
753
+ if(type !== 'static') { position = container.offset(); }
754
+ if(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) {
755
+ offset = $(document.body).offset();
756
+ }
757
+
758
+ // Use event coordinates for position
759
+ position = {
760
+ left: event.pageX - position.left + (offset && offset.left || 0),
761
+ top: event.pageY - position.top + (offset && offset.top || 0)
762
+ };
763
+
764
+ // Scroll events are a pain, some browsers
765
+ if(adjust.mouse && isScroll && mouse) {
766
+ position.left -= (mouse.scrollX || 0) - win.scrollLeft();
767
+ position.top -= (mouse.scrollY || 0) - win.scrollTop();
768
+ }
769
+ }
770
+
771
+ // Target wasn't mouse or absolute...
772
+ else {
773
+ // Check if event targetting is being used
774
+ if(target === 'event') {
775
+ if(event && event.target && event.type !== 'scroll' && event.type !== 'resize') {
776
+ cache.target = $(event.target);
777
+ }
778
+ else if(!event.target) {
779
+ cache.target = this.elements.target;
780
+ }
781
+ }
782
+ else if(target !== 'event'){
783
+ cache.target = $(target.jquery ? target : this.elements.target);
784
+ }
785
+ target = cache.target;
786
+
787
+ // Parse the target into a jQuery object and make sure there's an element present
788
+ target = $(target).eq(0);
789
+ if(target.length === 0) { return this; }
790
+
791
+ // Check if window or document is the target
792
+ else if(target[0] === document || target[0] === window) {
793
+ targetWidth = BROWSER.iOS ? window.innerWidth : target.width();
794
+ targetHeight = BROWSER.iOS ? window.innerHeight : target.height();
795
+
796
+ if(target[0] === window) {
797
+ position = {
798
+ top: (viewport || target).scrollTop(),
799
+ left: (viewport || target).scrollLeft()
800
+ };
801
+ }
802
+ }
803
+
804
+ // Check if the target is an <AREA> element
805
+ else if(PLUGINS.imagemap && target.is('area')) {
806
+ pluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE);
807
+ }
808
+
809
+ // Check if the target is an SVG element
810
+ else if(PLUGINS.svg && target && target[0].ownerSVGElement) {
811
+ pluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE);
812
+ }
813
+
814
+ // Otherwise use regular jQuery methods
815
+ else {
816
+ targetWidth = target.outerWidth(FALSE);
817
+ targetHeight = target.outerHeight(FALSE);
818
+ position = target.offset();
819
+ }
820
+
821
+ // Parse returned plugin values into proper variables
822
+ if(pluginCalculations) {
823
+ targetWidth = pluginCalculations.width;
824
+ targetHeight = pluginCalculations.height;
825
+ offset = pluginCalculations.offset;
826
+ position = pluginCalculations.position;
827
+ }
828
+
829
+ // Adjust position to take into account offset parents
830
+ position = this.reposition.offset(target, position, container);
831
+
832
+ // Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2)
833
+ if((BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1) ||
834
+ (BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33) ||
835
+ (!BROWSER.iOS && type === 'fixed')
836
+ ){
837
+ position.left -= win.scrollLeft();
838
+ position.top -= win.scrollTop();
839
+ }
840
+
841
+ // Adjust position relative to target
842
+ if(!pluginCalculations || (pluginCalculations && pluginCalculations.adjustable !== FALSE)) {
843
+ position.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0;
844
+ position.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0;
845
+ }
846
+ }
847
+
848
+ // Adjust position relative to tooltip
849
+ position.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0);
850
+ position.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0);
851
+
852
+ // Use viewport adjustment plugin if enabled
853
+ if(PLUGINS.viewport) {
854
+ position.adjusted = PLUGINS.viewport(
855
+ this, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight
856
+ );
857
+
858
+ // Apply offsets supplied by positioning plugin (if used)
859
+ if(offset && position.adjusted.left) { position.left += offset.left; }
860
+ if(offset && position.adjusted.top) { position.top += offset.top; }
861
+ }
862
+
863
+ // Viewport adjustment is disabled, set values to zero
864
+ else { position.adjusted = { left: 0, top: 0 }; }
865
+
866
+ // tooltipmove event
867
+ if(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; }
868
+ delete position.adjusted;
869
+
870
+ // If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly
871
+ if(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) {
872
+ tooltip.css(position);
873
+ }
874
+
875
+ // Use custom function if provided
876
+ else if($.isFunction(posOptions.effect)) {
877
+ posOptions.effect.call(tooltip, this, $.extend({}, position));
878
+ tooltip.queue(function(next) {
879
+ // Reset attributes to avoid cross-browser rendering bugs
880
+ $(this).css({ opacity: '', height: '' });
881
+ if(BROWSER.ie) { this.style.removeAttribute('filter'); }
882
+
883
+ next();
884
+ });
885
+ }
886
+
887
+ // Set positioning flag
888
+ this.positioning = FALSE;
889
+
890
+ return this;
891
+ };
892
+
893
+ // Custom (more correct for qTip!) offset calculator
894
+ PROTOTYPE.reposition.offset = function(elem, pos, container) {
895
+ if(!container[0]) { return pos; }
896
+
897
+ var ownerDocument = $(elem[0].ownerDocument),
898
+ quirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat',
899
+ parent = container[0],
900
+ scrolled, position, parentOffset, overflow;
901
+
902
+ function scroll(e, i) {
903
+ pos.left += i * e.scrollLeft();
904
+ pos.top += i * e.scrollTop();
905
+ }
906
+
907
+ // Compensate for non-static containers offset
908
+ do {
909
+ if((position = $.css(parent, 'position')) !== 'static') {
910
+ if(position === 'fixed') {
911
+ parentOffset = parent.getBoundingClientRect();
912
+ scroll(ownerDocument, -1);
913
+ }
914
+ else {
915
+ parentOffset = $(parent).position();
916
+ parentOffset.left += (parseFloat($.css(parent, 'borderLeftWidth')) || 0);
917
+ parentOffset.top += (parseFloat($.css(parent, 'borderTopWidth')) || 0);
918
+ }
919
+
920
+ pos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0);
921
+ pos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0);
922
+
923
+ // If this is the first parent element with an overflow of "scroll" or "auto", store it
924
+ if(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); }
925
+ }
926
+ }
927
+ while((parent = parent.offsetParent));
928
+
929
+ // Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode)
930
+ if(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) {
931
+ scroll(scrolled, 1);
932
+ }
933
+
934
+ return pos;
935
+ };
936
+
937
+ // Corner class
938
+ var C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) {
939
+ corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase();
940
+ this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase();
941
+ this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase();
942
+ this.forceY = !!forceY;
943
+
944
+ var f = corner.charAt(0);
945
+ this.precedance = (f === 't' || f === 'b' ? Y : X);
946
+ }).prototype;
947
+
948
+ C.invert = function(z, center) {
949
+ this[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z];
950
+ };
951
+
952
+ C.string = function() {
953
+ var x = this.x, y = this.y;
954
+ return x === y ? x : this.precedance === Y || (this.forceY && y !== 'center') ? y+' '+x : x+' '+y;
955
+ };
956
+
957
+ C.abbrev = function() {
958
+ var result = this.string().split(' ');
959
+ return result[0].charAt(0) + (result[1] && result[1].charAt(0) || '');
960
+ };
961
+
962
+ C.clone = function() {
963
+ return new CORNER( this.string(), this.forceY );
964
+ };;
965
+ PROTOTYPE.toggle = function(state, event) {
966
+ var cache = this.cache,
967
+ options = this.options,
968
+ tooltip = this.tooltip;
969
+
970
+ // Try to prevent flickering when tooltip overlaps show element
971
+ if(event) {
972
+ if((/over|enter/).test(event.type) && (/out|leave/).test(cache.event.type) &&
973
+ options.show.target.add(event.target).length === options.show.target.length &&
974
+ tooltip.has(event.relatedTarget).length) {
975
+ return this;
976
+ }
977
+
978
+ // Cache event
979
+ cache.event = cloneEvent(event);
980
+ }
981
+
982
+ // If we're currently waiting and we've just hidden... stop it
983
+ this.waiting && !state && (this.hiddenDuringWait = TRUE);
984
+
985
+ // Render the tooltip if showing and it isn't already
986
+ if(!this.rendered) { return state ? this.render(1) : this; }
987
+ else if(this.destroyed || this.disabled) { return this; }
988
+
989
+ var type = state ? 'show' : 'hide',
990
+ opts = this.options[type],
991
+ otherOpts = this.options[ !state ? 'show' : 'hide' ],
992
+ posOptions = this.options.position,
993
+ contentOptions = this.options.content,
994
+ width = this.tooltip.css('width'),
995
+ visible = this.tooltip.is(':visible'),
996
+ animate = state || opts.target.length === 1,
997
+ sameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target,
998
+ identicalState, allow, showEvent, delay, after;
999
+
1000
+ // Detect state if valid one isn't provided
1001
+ if((typeof state).search('boolean|number')) { state = !visible; }
1002
+
1003
+ // Check if the tooltip is in an identical state to the new would-be state
1004
+ identicalState = !tooltip.is(':animated') && visible === state && sameTarget;
1005
+
1006
+ // Fire tooltip(show/hide) event and check if destroyed
1007
+ allow = !identicalState ? !!this._trigger(type, [90]) : NULL;
1008
+
1009
+ // Check to make sure the tooltip wasn't destroyed in the callback
1010
+ if(this.destroyed) { return this; }
1011
+
1012
+ // If the user didn't stop the method prematurely and we're showing the tooltip, focus it
1013
+ if(allow !== FALSE && state) { this.focus(event); }
1014
+
1015
+ // If the state hasn't changed or the user stopped it, return early
1016
+ if(!allow || identicalState) { return this; }
1017
+
1018
+ // Set ARIA hidden attribute
1019
+ $.attr(tooltip[0], 'aria-hidden', !!!state);
1020
+
1021
+ // Execute state specific properties
1022
+ if(state) {
1023
+ // Store show origin coordinates
1024
+ cache.origin = cloneEvent(this.mouse);
1025
+
1026
+ // Update tooltip content & title if it's a dynamic function
1027
+ if($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); }
1028
+ if($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); }
1029
+
1030
+ // Cache mousemove events for positioning purposes (if not already tracking)
1031
+ if(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) {
1032
+ $(document).bind('mousemove.'+NAMESPACE, this._storeMouse);
1033
+ trackingBound = TRUE;
1034
+ }
1035
+
1036
+ // Update the tooltip position (set width first to prevent viewport/max-width issues)
1037
+ if(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); }
1038
+ this.reposition(event, arguments[2]);
1039
+ if(!width) { tooltip.css('width', ''); }
1040
+
1041
+ // Hide other tooltips if tooltip is solo
1042
+ if(!!opts.solo) {
1043
+ (typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo))
1044
+ .not(tooltip).not(opts.target).qtip('hide', $.Event('tooltipsolo'));
1045
+ }
1046
+ }
1047
+ else {
1048
+ // Clear show timer if we're hiding
1049
+ clearTimeout(this.timers.show);
1050
+
1051
+ // Remove cached origin on hide
1052
+ delete cache.origin;
1053
+
1054
+ // Remove mouse tracking event if not needed (all tracking qTips are hidden)
1055
+ if(trackingBound && !$(SELECTOR+'[tracking="true"]:visible', opts.solo).not(tooltip).length) {
1056
+ $(document).unbind('mousemove.'+NAMESPACE);
1057
+ trackingBound = FALSE;
1058
+ }
1059
+
1060
+ // Blur the tooltip
1061
+ this.blur(event);
1062
+ }
1063
+
1064
+ // Define post-animation, state specific properties
1065
+ after = $.proxy(function() {
1066
+ if(state) {
1067
+ // Prevent antialias from disappearing in IE by removing filter
1068
+ if(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); }
1069
+
1070
+ // Remove overflow setting to prevent tip bugs
1071
+ tooltip.css('overflow', '');
1072
+
1073
+ // Autofocus elements if enabled
1074
+ if('string' === typeof opts.autofocus) {
1075
+ $(this.options.show.autofocus, tooltip).focus();
1076
+ }
1077
+
1078
+ // If set, hide tooltip when inactive for delay period
1079
+ this.options.show.target.trigger('qtip-'+this.id+'-inactive');
1080
+ }
1081
+ else {
1082
+ // Reset CSS states
1083
+ tooltip.css({
1084
+ display: '',
1085
+ visibility: '',
1086
+ opacity: '',
1087
+ left: '',
1088
+ top: ''
1089
+ });
1090
+ }
1091
+
1092
+ // tooltipvisible/tooltiphidden events
1093
+ this._trigger(state ? 'visible' : 'hidden');
1094
+ }, this);
1095
+
1096
+ // If no effect type is supplied, use a simple toggle
1097
+ if(opts.effect === FALSE || animate === FALSE) {
1098
+ tooltip[ type ]();
1099
+ after();
1100
+ }
1101
+
1102
+ // Use custom function if provided
1103
+ else if($.isFunction(opts.effect)) {
1104
+ tooltip.stop(1, 1);
1105
+ opts.effect.call(tooltip, this);
1106
+ tooltip.queue('fx', function(n) {
1107
+ after(); n();
1108
+ });
1109
+ }
1110
+
1111
+ // Use basic fade function by default
1112
+ else { tooltip.fadeTo(90, state ? 1 : 0, after); }
1113
+
1114
+ // If inactive hide method is set, active it
1115
+ if(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); }
1116
+
1117
+ return this;
1118
+ };
1119
+
1120
+ PROTOTYPE.show = function(event) { return this.toggle(TRUE, event); };
1121
+
1122
+ PROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); };
1123
+
1124
+ ;PROTOTYPE.focus = function(event) {
1125
+ if(!this.rendered || this.destroyed) { return this; }
1126
+
1127
+ var qtips = $(SELECTOR),
1128
+ tooltip = this.tooltip,
1129
+ curIndex = parseInt(tooltip[0].style.zIndex, 10),
1130
+ newIndex = QTIP.zindex + qtips.length,
1131
+ focusedElem;
1132
+
1133
+ // Only update the z-index if it has changed and tooltip is not already focused
1134
+ if(!tooltip.hasClass(CLASS_FOCUS)) {
1135
+ // tooltipfocus event
1136
+ if(this._trigger('focus', [newIndex], event)) {
1137
+ // Only update z-index's if they've changed
1138
+ if(curIndex !== newIndex) {
1139
+ // Reduce our z-index's and keep them properly ordered
1140
+ qtips.each(function() {
1141
+ if(this.style.zIndex > curIndex) {
1142
+ this.style.zIndex = this.style.zIndex - 1;
1143
+ }
1144
+ });
1145
+
1146
+ // Fire blur event for focused tooltip
1147
+ qtips.filter('.' + CLASS_FOCUS).qtip('blur', event);
1148
+ }
1149
+
1150
+ // Set the new z-index
1151
+ tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;
1152
+ }
1153
+ }
1154
+
1155
+ return this;
1156
+ };
1157
+
1158
+ PROTOTYPE.blur = function(event) {
1159
+ if(!this.rendered || this.destroyed) { return this; }
1160
+
1161
+ // Set focused status to FALSE
1162
+ this.tooltip.removeClass(CLASS_FOCUS);
1163
+
1164
+ // tooltipblur event
1165
+ this._trigger('blur', [ this.tooltip.css('zIndex') ], event);
1166
+
1167
+ return this;
1168
+ };
1169
+
1170
+ ;PROTOTYPE.disable = function(state) {
1171
+ if(this.destroyed) { return this; }
1172
+
1173
+ // If 'toggle' is passed, toggle the current state
1174
+ if(state === 'toggle') {
1175
+ state = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled);
1176
+ }
1177
+
1178
+ // Disable if no state passed
1179
+ else if('boolean' !== typeof state) {
1180
+ state = TRUE;
1181
+ }
1182
+
1183
+ if(this.rendered) {
1184
+ this.tooltip.toggleClass(CLASS_DISABLED, state)
1185
+ .attr('aria-disabled', state);
1186
+ }
1187
+
1188
+ this.disabled = !!state;
1189
+
1190
+ return this;
1191
+ };
1192
+
1193
+ PROTOTYPE.enable = function() { return this.disable(FALSE); };
1194
+
1195
+ ;PROTOTYPE._createButton = function()
1196
+ {
1197
+ var self = this,
1198
+ elements = this.elements,
1199
+ tooltip = elements.tooltip,
1200
+ button = this.options.content.button,
1201
+ isString = typeof button === 'string',
1202
+ close = isString ? button : 'Close tooltip';
1203
+
1204
+ if(elements.button) { elements.button.remove(); }
1205
+
1206
+ // Use custom button if one was supplied by user, else use default
1207
+ if(button.jquery) {
1208
+ elements.button = button;
1209
+ }
1210
+ else {
1211
+ elements.button = $('<a />', {
1212
+ 'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'),
1213
+ 'title': close,
1214
+ 'aria-label': close
1215
+ })
1216
+ .prepend(
1217
+ $('<span />', {
1218
+ 'class': 'ui-icon ui-icon-close',
1219
+ 'html': '&times;'
1220
+ })
1221
+ );
1222
+ }
1223
+
1224
+ // Create button and setup attributes
1225
+ elements.button.appendTo(elements.titlebar || tooltip)
1226
+ .attr('role', 'button')
1227
+ .click(function(event) {
1228
+ if(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); }
1229
+ return FALSE;
1230
+ });
1231
+ };
1232
+
1233
+ PROTOTYPE._updateButton = function(button)
1234
+ {
1235
+ // Make sure tooltip is rendered and if not, return
1236
+ if(!this.rendered) { return FALSE; }
1237
+
1238
+ var elem = this.elements.button;
1239
+ if(button) { this._createButton(); }
1240
+ else { elem.remove(); }
1241
+ };
1242
+
1243
+ ;// Widget class creator
1244
+ function createWidgetClass(cls) {
1245
+ return WIDGET.concat('').join(cls ? '-'+cls+' ' : ' ');
1246
+ }
1247
+
1248
+ // Widget class setter method
1249
+ PROTOTYPE._setWidget = function()
1250
+ {
1251
+ var on = this.options.style.widget,
1252
+ elements = this.elements,
1253
+ tooltip = elements.tooltip,
1254
+ disabled = tooltip.hasClass(CLASS_DISABLED);
1255
+
1256
+ tooltip.removeClass(CLASS_DISABLED);
1257
+ CLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled';
1258
+ tooltip.toggleClass(CLASS_DISABLED, disabled);
1259
+
1260
+ tooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on);
1261
+
1262
+ if(elements.content) {
1263
+ elements.content.toggleClass( createWidgetClass('content'), on);
1264
+ }
1265
+ if(elements.titlebar) {
1266
+ elements.titlebar.toggleClass( createWidgetClass('header'), on);
1267
+ }
1268
+ if(elements.button) {
1269
+ elements.button.toggleClass(NAMESPACE+'-icon', !on);
1270
+ }
1271
+ };;function cloneEvent(event) {
1272
+ return event && {
1273
+ type: event.type,
1274
+ pageX: event.pageX,
1275
+ pageY: event.pageY,
1276
+ target: event.target,
1277
+ relatedTarget: event.relatedTarget,
1278
+ scrollX: event.scrollX || window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft,
1279
+ scrollY: event.scrollY || window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop
1280
+ } || {};
1281
+ }
1282
+
1283
+ function delay(callback, duration) {
1284
+ // If tooltip has displayed, start hide timer
1285
+ if(duration > 0) {
1286
+ return setTimeout(
1287
+ $.proxy(callback, this), duration
1288
+ );
1289
+ }
1290
+ else{ callback.call(this); }
1291
+ }
1292
+
1293
+ function showMethod(event) {
1294
+ if(this.tooltip.hasClass(CLASS_DISABLED)) { return FALSE; }
1295
+
1296
+ // Clear hide timers
1297
+ clearTimeout(this.timers.show);
1298
+ clearTimeout(this.timers.hide);
1299
+
1300
+ // Start show timer
1301
+ this.timers.show = delay.call(this,
1302
+ function() { this.toggle(TRUE, event); },
1303
+ this.options.show.delay
1304
+ );
1305
+ }
1306
+
1307
+ function hideMethod(event) {
1308
+ if(this.tooltip.hasClass(CLASS_DISABLED)) { return FALSE; }
1309
+
1310
+ // Check if new target was actually the tooltip element
1311
+ var relatedTarget = $(event.relatedTarget),
1312
+ ontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0],
1313
+ ontoTarget = relatedTarget[0] === this.options.show.target[0];
1314
+
1315
+ // Clear timers and stop animation queue
1316
+ clearTimeout(this.timers.show);
1317
+ clearTimeout(this.timers.hide);
1318
+
1319
+ // Prevent hiding if tooltip is fixed and event target is the tooltip.
1320
+ // Or if mouse positioning is enabled and cursor momentarily overlaps
1321
+ if(this !== relatedTarget[0] &&
1322
+ (this.options.position.target === 'mouse' && ontoTooltip) ||
1323
+ (this.options.hide.fixed && (
1324
+ (/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget))
1325
+ ))
1326
+ {
1327
+ try {
1328
+ event.preventDefault();
1329
+ event.stopImmediatePropagation();
1330
+ } catch(e) {}
1331
+
1332
+ return;
1333
+ }
1334
+
1335
+ // If tooltip has displayed, start hide timer
1336
+ this.timers.hide = delay.call(this,
1337
+ function() { this.toggle(FALSE, event); },
1338
+ this.options.hide.delay,
1339
+ this
1340
+ );
1341
+ }
1342
+
1343
+ function inactiveMethod(event) {
1344
+ if(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return FALSE; }
1345
+
1346
+ // Clear timer
1347
+ clearTimeout(this.timers.inactive);
1348
+
1349
+ this.timers.inactive = delay.call(this,
1350
+ function(){ this.hide(event); },
1351
+ this.options.hide.inactive
1352
+ );
1353
+ }
1354
+
1355
+ function repositionMethod(event) {
1356
+ if(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); }
1357
+ }
1358
+
1359
+ // Store mouse coordinates
1360
+ PROTOTYPE._storeMouse = function(event) {
1361
+ (this.mouse = cloneEvent(event)).type = 'mousemove';
1362
+ };
1363
+
1364
+ // Bind events
1365
+ PROTOTYPE._bind = function(targets, events, method, suffix, context) {
1366
+ var ns = '.' + this._id + (suffix ? '-'+suffix : '');
1367
+ events.length && $(targets).bind(
1368
+ (events.split ? events : events.join(ns + ' ')) + ns,
1369
+ $.proxy(method, context || this)
1370
+ );
1371
+ };
1372
+ PROTOTYPE._unbind = function(targets, suffix) {
1373
+ $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : ''));
1374
+ };
1375
+
1376
+ // Apply common event handlers using delegate (avoids excessive .bind calls!)
1377
+ var ns = '.'+NAMESPACE;
1378
+ function delegate(selector, events, method) {
1379
+ $(document.body).delegate(selector,
1380
+ (events.split ? events : events.join(ns + ' ')) + ns,
1381
+ function() {
1382
+ var api = QTIP.api[ $.attr(this, ATTR_ID) ];
1383
+ api && !api.disabled && method.apply(api, arguments);
1384
+ }
1385
+ );
1386
+ }
1387
+
1388
+ $(function() {
1389
+ delegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) {
1390
+ var state = event.type === 'mouseenter',
1391
+ tooltip = $(event.currentTarget),
1392
+ target = $(event.relatedTarget || event.target),
1393
+ options = this.options;
1394
+
1395
+ // On mouseenter...
1396
+ if(state) {
1397
+ // Focus the tooltip on mouseenter (z-index stacking)
1398
+ this.focus(event);
1399
+
1400
+ // Clear hide timer on tooltip hover to prevent it from closing
1401
+ tooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide);
1402
+ }
1403
+
1404
+ // On mouseleave...
1405
+ else {
1406
+ // Hide when we leave the tooltip and not onto the show target (if a hide event is set)
1407
+ if(options.position.target === 'mouse' && options.hide.event &&
1408
+ options.show.target && !target.closest(options.show.target[0]).length) {
1409
+ this.hide(event);
1410
+ }
1411
+ }
1412
+
1413
+ // Add hover class
1414
+ tooltip.toggleClass(CLASS_HOVER, state);
1415
+ });
1416
+
1417
+ // Define events which reset the 'inactive' event handler
1418
+ delegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod);
1419
+ });
1420
+
1421
+ // Event trigger
1422
+ PROTOTYPE._trigger = function(type, args, event) {
1423
+ var callback = $.Event('tooltip'+type);
1424
+ callback.originalEvent = (event && $.extend({}, event)) || this.cache.event || NULL;
1425
+
1426
+ this.triggering = type;
1427
+ this.tooltip.trigger(callback, [this].concat(args || []));
1428
+ this.triggering = FALSE;
1429
+
1430
+ return !callback.isDefaultPrevented();
1431
+ };
1432
+
1433
+ PROTOTYPE._bindEvents = function(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod) {
1434
+ // If hide and show targets are the same...
1435
+ if(hideTarget.add(showTarget).length === hideTarget.length) {
1436
+ var toggleEvents = [];
1437
+
1438
+ // Filter identical show/hide events
1439
+ hideEvents = $.map(hideEvents, function(type) {
1440
+ var showIndex = $.inArray(type, showEvents);
1441
+
1442
+ // Both events are identical, remove from both hide and show events
1443
+ // and append to toggleEvents
1444
+ if(showIndex > -1) {
1445
+ toggleEvents.push( showEvents.splice( showIndex, 1 )[0] );
1446
+ return;
1447
+ }
1448
+
1449
+ return type;
1450
+ });
1451
+
1452
+ // Toggle events are special case of identical show/hide events, which happen in sequence
1453
+ toggleEvents.length && this._bind(showTarget, toggleEvents, function(event) {
1454
+ var state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false;
1455
+ (state ? hideMethod : showMethod).call(this, event);
1456
+ });
1457
+ }
1458
+
1459
+ // Apply show/hide/toggle events
1460
+ this._bind(showTarget, showEvents, showMethod);
1461
+ this._bind(hideTarget, hideEvents, hideMethod);
1462
+ };
1463
+
1464
+ PROTOTYPE._assignInitialEvents = function(event) {
1465
+ var options = this.options,
1466
+ showTarget = options.show.target,
1467
+ hideTarget = options.hide.target,
1468
+ showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
1469
+ hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];
1470
+
1471
+ /*
1472
+ * Make sure hoverIntent functions properly by using mouseleave as a hide event if
1473
+ * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
1474
+ */
1475
+ if(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) {
1476
+ hideEvents.push('mouseleave');
1477
+ }
1478
+
1479
+ /*
1480
+ * Also make sure initial mouse targetting works correctly by caching mousemove coords
1481
+ * on show targets before the tooltip has rendered. Also set onTarget when triggered to
1482
+ * keep mouse tracking working.
1483
+ */
1484
+ this._bind(showTarget, 'mousemove', function(event) {
1485
+ this._storeMouse(event);
1486
+ this.cache.onTarget = TRUE;
1487
+ });
1488
+
1489
+ // Define hoverIntent function
1490
+ function hoverIntent(event) {
1491
+ // Only continue if tooltip isn't disabled
1492
+ if(this.disabled || this.destroyed) { return FALSE; }
1493
+
1494
+ // Cache the event data
1495
+ this.cache.event = cloneEvent(event);
1496
+ this.cache.target = event ? $(event.target) : [undefined];
1497
+
1498
+ // Start the event sequence
1499
+ clearTimeout(this.timers.show);
1500
+ this.timers.show = delay.call(this,
1501
+ function() { this.render(typeof event === 'object' || options.show.ready); },
1502
+ options.show.delay
1503
+ );
1504
+ }
1505
+
1506
+ // Filter and bind events
1507
+ this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() {
1508
+ clearTimeout(this.timers.show);
1509
+ });
1510
+
1511
+ // Prerendering is enabled, create tooltip now
1512
+ if(options.show.ready || options.prerender) { hoverIntent.call(this, event); }
1513
+ };
1514
+
1515
+ // Event assignment method
1516
+ PROTOTYPE._assignEvents = function() {
1517
+ var self = this,
1518
+ options = this.options,
1519
+ posOptions = options.position,
1520
+
1521
+ tooltip = this.tooltip,
1522
+ showTarget = options.show.target,
1523
+ hideTarget = options.hide.target,
1524
+ containerTarget = posOptions.container,
1525
+ viewportTarget = posOptions.viewport,
1526
+ documentTarget = $(document),
1527
+ bodyTarget = $(document.body),
1528
+ windowTarget = $(window),
1529
+
1530
+ showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
1531
+ hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];
1532
+
1533
+
1534
+ // Assign passed event callbacks
1535
+ $.each(options.events, function(name, callback) {
1536
+ self._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip);
1537
+ });
1538
+
1539
+ // Hide tooltips when leaving current window/frame (but not select/option elements)
1540
+ if(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') {
1541
+ this._bind(documentTarget, ['mouseout', 'blur'], function(event) {
1542
+ if(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) {
1543
+ this.hide(event);
1544
+ }
1545
+ });
1546
+ }
1547
+
1548
+ // Enable hide.fixed by adding appropriate class
1549
+ if(options.hide.fixed) {
1550
+ hideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) );
1551
+ }
1552
+
1553
+ /*
1554
+ * Make sure hoverIntent functions properly by using mouseleave to clear show timer if
1555
+ * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
1556
+ */
1557
+ else if(/mouse(over|enter)/i.test(options.show.event)) {
1558
+ this._bind(hideTarget, 'mouseleave', function() {
1559
+ clearTimeout(this.timers.show);
1560
+ });
1561
+ }
1562
+
1563
+ // Hide tooltip on document mousedown if unfocus events are enabled
1564
+ if(('' + options.hide.event).indexOf('unfocus') > -1) {
1565
+ this._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) {
1566
+ var elem = $(event.target),
1567
+ enabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0,
1568
+ isAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0;
1569
+
1570
+ if(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor &&
1571
+ !this.target.has(elem[0]).length && enabled
1572
+ ) {
1573
+ this.hide(event);
1574
+ }
1575
+ });
1576
+ }
1577
+
1578
+ // Check if the tooltip hides when inactive
1579
+ if('number' === typeof options.hide.inactive) {
1580
+ // Bind inactive method to show target(s) as a custom event
1581
+ this._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod);
1582
+
1583
+ // Define events which reset the 'inactive' event handler
1584
+ this._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod, '-inactive');
1585
+ }
1586
+
1587
+ // Filter and bind events
1588
+ this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod);
1589
+
1590
+ // Mouse movement bindings
1591
+ this._bind(showTarget.add(tooltip), 'mousemove', function(event) {
1592
+ // Check if the tooltip hides when mouse is moved a certain distance
1593
+ if('number' === typeof options.hide.distance) {
1594
+ var origin = this.cache.origin || {},
1595
+ limit = this.options.hide.distance,
1596
+ abs = Math.abs;
1597
+
1598
+ // Check if the movement has gone beyond the limit, and hide it if so
1599
+ if(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) {
1600
+ this.hide(event);
1601
+ }
1602
+ }
1603
+
1604
+ // Cache mousemove coords on show targets
1605
+ this._storeMouse(event);
1606
+ });
1607
+
1608
+ // Mouse positioning events
1609
+ if(posOptions.target === 'mouse') {
1610
+ // If mouse adjustment is on...
1611
+ if(posOptions.adjust.mouse) {
1612
+ // Apply a mouseleave event so we don't get problems with overlapping
1613
+ if(options.hide.event) {
1614
+ // Track if we're on the target or not
1615
+ this._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) {
1616
+ this.cache.onTarget = event.type === 'mouseenter';
1617
+ });
1618
+ }
1619
+
1620
+ // Update tooltip position on mousemove
1621
+ this._bind(documentTarget, 'mousemove', function(event) {
1622
+ // Update the tooltip position only if the tooltip is visible and adjustment is enabled
1623
+ if(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) {
1624
+ this.reposition(event);
1625
+ }
1626
+ });
1627
+ }
1628
+ }
1629
+
1630
+ // Adjust positions of the tooltip on window resize if enabled
1631
+ if(posOptions.adjust.resize || viewportTarget.length) {
1632
+ this._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod );
1633
+ }
1634
+
1635
+ // Adjust tooltip position on scroll of the window or viewport element if present
1636
+ if(posOptions.adjust.scroll) {
1637
+ this._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod );
1638
+ }
1639
+ };
1640
+
1641
+ // Un-assignment method
1642
+ PROTOTYPE._unassignEvents = function() {
1643
+ var targets = [
1644
+ this.options.show.target[0],
1645
+ this.options.hide.target[0],
1646
+ this.rendered && this.tooltip[0],
1647
+ this.options.position.container[0],
1648
+ this.options.position.viewport[0],
1649
+ this.options.position.container.closest('html')[0], // unfocus
1650
+ window,
1651
+ document
1652
+ ];
1653
+
1654
+ this._unbind($([]).pushStack( $.grep(targets, function(i) {
1655
+ return typeof i === 'object';
1656
+ })));
1657
+ };
1658
+
1659
+ ;// Initialization method
1660
+ function init(elem, id, opts) {
1661
+ var obj, posOptions, attr, config, title,
1662
+
1663
+ // Setup element references
1664
+ docBody = $(document.body),
1665
+
1666
+ // Use document body instead of document element if needed
1667
+ newTarget = elem[0] === document ? docBody : elem,
1668
+
1669
+ // Grab metadata from element if plugin is present
1670
+ metadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL,
1671
+
1672
+ // If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise
1673
+ metadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL,
1674
+
1675
+ // Grab data from metadata.name (or data-qtipopts as fallback) using .data() method,
1676
+ html5 = elem.data(opts.metadata.name || 'qtipopts');
1677
+
1678
+ // If we don't get an object returned attempt to parse it manualyl without parseJSON
1679
+ try { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; } catch(e) {}
1680
+
1681
+ // Merge in and sanitize metadata
1682
+ config = $.extend(TRUE, {}, QTIP.defaults, opts,
1683
+ typeof html5 === 'object' ? sanitizeOptions(html5) : NULL,
1684
+ sanitizeOptions(metadata5 || metadata));
1685
+
1686
+ // Re-grab our positioning options now we've merged our metadata and set id to passed value
1687
+ posOptions = config.position;
1688
+ config.id = id;
1689
+
1690
+ // Setup missing content if none is detected
1691
+ if('boolean' === typeof config.content.text) {
1692
+ attr = elem.attr(config.content.attr);
1693
+
1694
+ // Grab from supplied attribute if available
1695
+ if(config.content.attr !== FALSE && attr) { config.content.text = attr; }
1696
+
1697
+ // No valid content was found, abort render
1698
+ else { return FALSE; }
1699
+ }
1700
+
1701
+ // Setup target options
1702
+ if(!posOptions.container.length) { posOptions.container = docBody; }
1703
+ if(posOptions.target === FALSE) { posOptions.target = newTarget; }
1704
+ if(config.show.target === FALSE) { config.show.target = newTarget; }
1705
+ if(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); }
1706
+ if(config.hide.target === FALSE) { config.hide.target = newTarget; }
1707
+ if(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; }
1708
+
1709
+ // Ensure we only use a single container
1710
+ posOptions.container = posOptions.container.eq(0);
1711
+
1712
+ // Convert position corner values into x and y strings
1713
+ posOptions.at = new CORNER(posOptions.at, TRUE);
1714
+ posOptions.my = new CORNER(posOptions.my);
1715
+
1716
+ // Destroy previous tooltip if overwrite is enabled, or skip element if not
1717
+ if(elem.data(NAMESPACE)) {
1718
+ if(config.overwrite) {
1719
+ elem.qtip('destroy', true);
1720
+ }
1721
+ else if(config.overwrite === FALSE) {
1722
+ return FALSE;
1723
+ }
1724
+ }
1725
+
1726
+ // Add has-qtip attribute
1727
+ elem.attr(ATTR_HAS, id);
1728
+
1729
+ // Remove title attribute and store it if present
1730
+ if(config.suppress && (title = elem.attr('title'))) {
1731
+ // Final attr call fixes event delegatiom and IE default tooltip showing problem
1732
+ elem.removeAttr('title').attr(oldtitle, title).attr('title', '');
1733
+ }
1734
+
1735
+ // Initialize the tooltip and add API reference
1736
+ obj = new QTip(elem, config, id, !!attr);
1737
+ elem.data(NAMESPACE, obj);
1738
+
1739
+ // Catch remove/removeqtip events on target element to destroy redundant tooltip
1740
+ elem.one('remove.qtip-'+id+' removeqtip.qtip-'+id, function() {
1741
+ var api; if((api = $(this).data(NAMESPACE))) { api.destroy(true); }
1742
+ });
1743
+
1744
+ return obj;
1745
+ }
1746
+
1747
+ // jQuery $.fn extension method
1748
+ QTIP = $.fn.qtip = function(options, notation, newValue)
1749
+ {
1750
+ var command = ('' + options).toLowerCase(), // Parse command
1751
+ returned = NULL,
1752
+ args = $.makeArray(arguments).slice(1),
1753
+ event = args[args.length - 1],
1754
+ opts = this[0] ? $.data(this[0], NAMESPACE) : NULL;
1755
+
1756
+ // Check for API request
1757
+ if((!arguments.length && opts) || command === 'api') {
1758
+ return opts;
1759
+ }
1760
+
1761
+ // Execute API command if present
1762
+ else if('string' === typeof options) {
1763
+ this.each(function() {
1764
+ var api = $.data(this, NAMESPACE);
1765
+ if(!api) { return TRUE; }
1766
+
1767
+ // Cache the event if possible
1768
+ if(event && event.timeStamp) { api.cache.event = event; }
1769
+
1770
+ // Check for specific API commands
1771
+ if(notation && (command === 'option' || command === 'options')) {
1772
+ if(newValue !== undefined || $.isPlainObject(notation)) {
1773
+ api.set(notation, newValue);
1774
+ }
1775
+ else {
1776
+ returned = api.get(notation);
1777
+ return FALSE;
1778
+ }
1779
+ }
1780
+
1781
+ // Execute API command
1782
+ else if(api[command]) {
1783
+ api[command].apply(api, args);
1784
+ }
1785
+ });
1786
+
1787
+ return returned !== NULL ? returned : this;
1788
+ }
1789
+
1790
+ // No API commands. validate provided options and setup qTips
1791
+ else if('object' === typeof options || !arguments.length) {
1792
+ // Sanitize options first
1793
+ opts = sanitizeOptions($.extend(TRUE, {}, options));
1794
+
1795
+ return this.each(function(i) {
1796
+ var api, id;
1797
+
1798
+ // Find next available ID, or use custom ID if provided
1799
+ id = $.isArray(opts.id) ? opts.id[i] : opts.id;
1800
+ id = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id;
1801
+
1802
+ // Initialize the qTip and re-grab newly sanitized options
1803
+ api = init($(this), id, opts);
1804
+ if(api === FALSE) { return TRUE; }
1805
+ else { QTIP.api[id] = api; }
1806
+
1807
+ // Initialize plugins
1808
+ $.each(PLUGINS, function() {
1809
+ if(this.initialize === 'initialize') { this(api); }
1810
+ });
1811
+
1812
+ // Assign initial pre-render events
1813
+ api._assignInitialEvents(event);
1814
+ });
1815
+ }
1816
+ };
1817
+
1818
+ // Expose class
1819
+ $.qtip = QTip;
1820
+
1821
+ // Populated in render method
1822
+ QTIP.api = {};
1823
+ ;$.each({
1824
+ /* Allow other plugins to successfully retrieve the title of an element with a qTip applied */
1825
+ attr: function(attr, val) {
1826
+ if(this.length) {
1827
+ var self = this[0],
1828
+ title = 'title',
1829
+ api = $.data(self, 'qtip');
1830
+
1831
+ if(attr === title && api && 'object' === typeof api && api.options.suppress) {
1832
+ if(arguments.length < 2) {
1833
+ return $.attr(self, oldtitle);
1834
+ }
1835
+
1836
+ // If qTip is rendered and title was originally used as content, update it
1837
+ if(api && api.options.content.attr === title && api.cache.attr) {
1838
+ api.set('content.text', val);
1839
+ }
1840
+
1841
+ // Use the regular attr method to set, then cache the result
1842
+ return this.attr(oldtitle, val);
1843
+ }
1844
+ }
1845
+
1846
+ return $.fn['attr'+replaceSuffix].apply(this, arguments);
1847
+ },
1848
+
1849
+ /* Allow clone to correctly retrieve cached title attributes */
1850
+ clone: function(keepData) {
1851
+ var titles = $([]), title = 'title',
1852
+
1853
+ // Clone our element using the real clone method
1854
+ elems = $.fn['clone'+replaceSuffix].apply(this, arguments);
1855
+
1856
+ // Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false
1857
+ if(!keepData) {
1858
+ elems.filter('['+oldtitle+']').attr('title', function() {
1859
+ return $.attr(this, oldtitle);
1860
+ })
1861
+ .removeAttr(oldtitle);
1862
+ }
1863
+
1864
+ return elems;
1865
+ }
1866
+ }, function(name, func) {
1867
+ if(!func || $.fn[name+replaceSuffix]) { return TRUE; }
1868
+
1869
+ var old = $.fn[name+replaceSuffix] = $.fn[name];
1870
+ $.fn[name] = function() {
1871
+ return func.apply(this, arguments) || old.apply(this, arguments);
1872
+ };
1873
+ });
1874
+
1875
+ /* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar).
1876
+ * This snippet is taken directly from jQuery UI source code found here:
1877
+ * http://code.jquery.com/ui/jquery-ui-git.js
1878
+ */
1879
+ if(!$.ui) {
1880
+ $['cleanData'+replaceSuffix] = $.cleanData;
1881
+ $.cleanData = function( elems ) {
1882
+ for(var i = 0, elem; (elem = $( elems[i] )).length; i++) {
1883
+ if(elem.attr(ATTR_HAS)) {
1884
+ try { elem.triggerHandler('removeqtip'); }
1885
+ catch( e ) {}
1886
+ }
1887
+ }
1888
+ $['cleanData'+replaceSuffix].apply(this, arguments);
1889
+ };
1890
+ }
1891
+
1892
+ ;// qTip version
1893
+ QTIP.version = '2.2.0';
1894
+
1895
+ // Base ID for all qTips
1896
+ QTIP.nextid = 0;
1897
+
1898
+ // Inactive events array
1899
+ QTIP.inactiveEvents = INACTIVE_EVENTS;
1900
+
1901
+ // Base z-index for all qTips
1902
+ QTIP.zindex = 15000;
1903
+
1904
+ // Define configuration defaults
1905
+ QTIP.defaults = {
1906
+ prerender: FALSE,
1907
+ id: FALSE,
1908
+ overwrite: TRUE,
1909
+ suppress: TRUE,
1910
+ content: {
1911
+ text: TRUE,
1912
+ attr: 'title',
1913
+ title: FALSE,
1914
+ button: FALSE
1915
+ },
1916
+ position: {
1917
+ my: 'top left',
1918
+ at: 'bottom right',
1919
+ target: FALSE,
1920
+ container: FALSE,
1921
+ viewport: FALSE,
1922
+ adjust: {
1923
+ x: 0, y: 0,
1924
+ mouse: TRUE,
1925
+ scroll: TRUE,
1926
+ resize: TRUE,
1927
+ method: 'flipinvert flipinvert'
1928
+ },
1929
+ effect: function(api, pos, viewport) {
1930
+ $(this).animate(pos, {
1931
+ duration: 200,
1932
+ queue: FALSE
1933
+ });
1934
+ }
1935
+ },
1936
+ show: {
1937
+ target: FALSE,
1938
+ event: 'mouseenter',
1939
+ effect: TRUE,
1940
+ delay: 90,
1941
+ solo: FALSE,
1942
+ ready: FALSE,
1943
+ autofocus: FALSE
1944
+ },
1945
+ hide: {
1946
+ target: FALSE,
1947
+ event: 'mouseleave',
1948
+ effect: TRUE,
1949
+ delay: 0,
1950
+ fixed: FALSE,
1951
+ inactive: FALSE,
1952
+ leave: 'window',
1953
+ distance: FALSE
1954
+ },
1955
+ style: {
1956
+ classes: '',
1957
+ widget: FALSE,
1958
+ width: FALSE,
1959
+ height: FALSE,
1960
+ def: TRUE
1961
+ },
1962
+ events: {
1963
+ render: NULL,
1964
+ move: NULL,
1965
+ show: NULL,
1966
+ hide: NULL,
1967
+ toggle: NULL,
1968
+ visible: NULL,
1969
+ hidden: NULL,
1970
+ focus: NULL,
1971
+ blur: NULL
1972
+ }
1973
+ };
1974
+
1975
+ ;var TIP,
1976
+
1977
+ // .bind()/.on() namespace
1978
+ TIPNS = '.qtip-tip',
1979
+
1980
+ // Common CSS strings
1981
+ MARGIN = 'margin',
1982
+ BORDER = 'border',
1983
+ COLOR = 'color',
1984
+ BG_COLOR = 'background-color',
1985
+ TRANSPARENT = 'transparent',
1986
+ IMPORTANT = ' !important',
1987
+
1988
+ // Check if the browser supports <canvas/> elements
1989
+ HASCANVAS = !!document.createElement('canvas').getContext,
1990
+
1991
+ // Invalid colour values used in parseColours()
1992
+ INVALID = /rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i;
1993
+
1994
+ // Camel-case method, taken from jQuery source
1995
+ // http://code.jquery.com/jquery-1.8.0.js
1996
+ function camel(s) { return s.charAt(0).toUpperCase() + s.slice(1); }
1997
+
1998
+ /*
1999
+ * Modified from Modernizr's testPropsAll()
2000
+ * http://modernizr.com/downloads/modernizr-latest.js
2001
+ */
2002
+ var cssProps = {}, cssPrefixes = ["Webkit", "O", "Moz", "ms"];
2003
+ function vendorCss(elem, prop) {
2004
+ var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
2005
+ props = (prop + ' ' + cssPrefixes.join(ucProp + ' ') + ucProp).split(' '),
2006
+ cur, val, i = 0;
2007
+
2008
+ // If the property has already been mapped...
2009
+ if(cssProps[prop]) { return elem.css(cssProps[prop]); }
2010
+
2011
+ while((cur = props[i++])) {
2012
+ if((val = elem.css(cur)) !== undefined) {
2013
+ return cssProps[prop] = cur, val;
2014
+ }
2015
+ }
2016
+ }
2017
+
2018
+ // Parse a given elements CSS property into an int
2019
+ function intCss(elem, prop) {
2020
+ return Math.ceil(parseFloat(vendorCss(elem, prop)));
2021
+ }
2022
+
2023
+
2024
+ // VML creation (for IE only)
2025
+ if(!HASCANVAS) {
2026
+ var createVML = function(tag, props, style) {
2027
+ return '<qtipvml:'+tag+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(props||'')+
2028
+ ' style="behavior: url(#default#VML); '+(style||'')+ '" />';
2029
+ };
2030
+ }
2031
+
2032
+ // Canvas only definitions
2033
+ else {
2034
+ var PIXEL_RATIO = window.devicePixelRatio || 1,
2035
+ BACKING_STORE_RATIO = (function() {
2036
+ var context = document.createElement('canvas').getContext('2d');
2037
+ return context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio ||
2038
+ context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || 1;
2039
+ }()),
2040
+ SCALE = PIXEL_RATIO / BACKING_STORE_RATIO;
2041
+ }
2042
+
2043
+
2044
+ function Tip(qtip, options) {
2045
+ this._ns = 'tip';
2046
+ this.options = options;
2047
+ this.offset = options.offset;
2048
+ this.size = [ options.width, options.height ];
2049
+
2050
+ // Initialize
2051
+ this.init( (this.qtip = qtip) );
2052
+ }
2053
+
2054
+ $.extend(Tip.prototype, {
2055
+ init: function(qtip) {
2056
+ var context, tip;
2057
+
2058
+ // Create tip element and prepend to the tooltip
2059
+ tip = this.element = qtip.elements.tip = $('<div />', { 'class': NAMESPACE+'-tip' }).prependTo(qtip.tooltip);
2060
+
2061
+ // Create tip drawing element(s)
2062
+ if(HASCANVAS) {
2063
+ // save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()!
2064
+ context = $('<canvas />').appendTo(this.element)[0].getContext('2d');
2065
+
2066
+ // Setup constant parameters
2067
+ context.lineJoin = 'miter';
2068
+ context.miterLimit = 100000;
2069
+ context.save();
2070
+ }
2071
+ else {
2072
+ context = createVML('shape', 'coordorigin="0,0"', 'position:absolute;');
2073
+ this.element.html(context + context);
2074
+
2075
+ // Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML
2076
+ qtip._bind( $('*', tip).add(tip), ['click', 'mousedown'], function(event) { event.stopPropagation(); }, this._ns);
2077
+ }
2078
+
2079
+ // Bind update events
2080
+ qtip._bind(qtip.tooltip, 'tooltipmove', this.reposition, this._ns, this);
2081
+
2082
+ // Create it
2083
+ this.create();
2084
+ },
2085
+
2086
+ _swapDimensions: function() {
2087
+ this.size[0] = this.options.height;
2088
+ this.size[1] = this.options.width;
2089
+ },
2090
+ _resetDimensions: function() {
2091
+ this.size[0] = this.options.width;
2092
+ this.size[1] = this.options.height;
2093
+ },
2094
+
2095
+ _useTitle: function(corner) {
2096
+ var titlebar = this.qtip.elements.titlebar;
2097
+ return titlebar && (
2098
+ corner.y === TOP || (corner.y === CENTER && this.element.position().top + (this.size[1] / 2) + this.options.offset < titlebar.outerHeight(TRUE))
2099
+ );
2100
+ },
2101
+
2102
+ _parseCorner: function(corner) {
2103
+ var my = this.qtip.options.position.my;
2104
+
2105
+ // Detect corner and mimic properties
2106
+ if(corner === FALSE || my === FALSE) {
2107
+ corner = FALSE;
2108
+ }
2109
+ else if(corner === TRUE) {
2110
+ corner = new CORNER( my.string() );
2111
+ }
2112
+ else if(!corner.string) {
2113
+ corner = new CORNER(corner);
2114
+ corner.fixed = TRUE;
2115
+ }
2116
+
2117
+ return corner;
2118
+ },
2119
+
2120
+ _parseWidth: function(corner, side, use) {
2121
+ var elements = this.qtip.elements,
2122
+ prop = BORDER + camel(side) + 'Width';
2123
+
2124
+ return (use ? intCss(use, prop) : (
2125
+ intCss(elements.content, prop) ||
2126
+ intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||
2127
+ intCss(elements.tooltip, prop)
2128
+ )) || 0;
2129
+ },
2130
+
2131
+ _parseRadius: function(corner) {
2132
+ var elements = this.qtip.elements,
2133
+ prop = BORDER + camel(corner.y) + camel(corner.x) + 'Radius';
2134
+
2135
+ return BROWSER.ie < 9 ? 0 :
2136
+ intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) ||
2137
+ intCss(elements.tooltip, prop) || 0;
2138
+ },
2139
+
2140
+ _invalidColour: function(elem, prop, compare) {
2141
+ var val = elem.css(prop);
2142
+ return !val || (compare && val === elem.css(compare)) || INVALID.test(val) ? FALSE : val;
2143
+ },
2144
+
2145
+ _parseColours: function(corner) {
2146
+ var elements = this.qtip.elements,
2147
+ tip = this.element.css('cssText', ''),
2148
+ borderSide = BORDER + camel(corner[ corner.precedance ]) + camel(COLOR),
2149
+ colorElem = this._useTitle(corner) && elements.titlebar || elements.content,
2150
+ css = this._invalidColour, color = [];
2151
+
2152
+ // Attempt to detect the background colour from various elements, left-to-right precedance
2153
+ color[0] = css(tip, BG_COLOR) || css(colorElem, BG_COLOR) || css(elements.content, BG_COLOR) ||
2154
+ css(elements.tooltip, BG_COLOR) || tip.css(BG_COLOR);
2155
+
2156
+ // Attempt to detect the correct border side colour from various elements, left-to-right precedance
2157
+ color[1] = css(tip, borderSide, COLOR) || css(colorElem, borderSide, COLOR) ||
2158
+ css(elements.content, borderSide, COLOR) || css(elements.tooltip, borderSide, COLOR) || elements.tooltip.css(borderSide);
2159
+
2160
+ // Reset background and border colours
2161
+ $('*', tip).add(tip).css('cssText', BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';');
2162
+
2163
+ return color;
2164
+ },
2165
+
2166
+ _calculateSize: function(corner) {
2167
+ var y = corner.precedance === Y,
2168
+ width = this.options['width'],
2169
+ height = this.options['height'],
2170
+ isCenter = corner.abbrev() === 'c',
2171
+ base = (y ? width: height) * (isCenter ? 0.5 : 1),
2172
+ pow = Math.pow,
2173
+ round = Math.round,
2174
+ bigHyp, ratio, result,
2175
+
2176
+ smallHyp = Math.sqrt( pow(base, 2) + pow(height, 2) ),
2177
+ hyp = [ (this.border / base) * smallHyp, (this.border / height) * smallHyp ];
2178
+
2179
+ hyp[2] = Math.sqrt( pow(hyp[0], 2) - pow(this.border, 2) );
2180
+ hyp[3] = Math.sqrt( pow(hyp[1], 2) - pow(this.border, 2) );
2181
+
2182
+ bigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]);
2183
+ ratio = bigHyp / smallHyp;
2184
+
2185
+ result = [ round(ratio * width), round(ratio * height) ];
2186
+ return y ? result : result.reverse();
2187
+ },
2188
+
2189
+ // Tip coordinates calculator
2190
+ _calculateTip: function(corner, size, scale) {
2191
+ scale = scale || 1;
2192
+ size = size || this.size;
2193
+
2194
+ var width = size[0] * scale,
2195
+ height = size[1] * scale,
2196
+ width2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2),
2197
+
2198
+ // Define tip coordinates in terms of height and width values
2199
+ tips = {
2200
+ br: [0,0, width,height, width,0],
2201
+ bl: [0,0, width,0, 0,height],
2202
+ tr: [0,height, width,0, width,height],
2203
+ tl: [0,0, 0,height, width,height],
2204
+ tc: [0,height, width2,0, width,height],
2205
+ bc: [0,0, width,0, width2,height],
2206
+ rc: [0,0, width,height2, 0,height],
2207
+ lc: [width,0, width,height, 0,height2]
2208
+ };
2209
+
2210
+ // Set common side shapes
2211
+ tips.lt = tips.br; tips.rt = tips.bl;
2212
+ tips.lb = tips.tr; tips.rb = tips.tl;
2213
+
2214
+ return tips[ corner.abbrev() ];
2215
+ },
2216
+
2217
+ // Tip coordinates drawer (canvas)
2218
+ _drawCoords: function(context, coords) {
2219
+ context.beginPath();
2220
+ context.moveTo(coords[0], coords[1]);
2221
+ context.lineTo(coords[2], coords[3]);
2222
+ context.lineTo(coords[4], coords[5]);
2223
+ context.closePath();
2224
+ },
2225
+
2226
+ create: function() {
2227
+ // Determine tip corner
2228
+ var c = this.corner = (HASCANVAS || BROWSER.ie) && this._parseCorner(this.options.corner);
2229
+
2230
+ // If we have a tip corner...
2231
+ if( (this.enabled = !!this.corner && this.corner.abbrev() !== 'c') ) {
2232
+ // Cache it
2233
+ this.qtip.cache.corner = c.clone();
2234
+
2235
+ // Create it
2236
+ this.update();
2237
+ }
2238
+
2239
+ // Toggle tip element
2240
+ this.element.toggle(this.enabled);
2241
+
2242
+ return this.corner;
2243
+ },
2244
+
2245
+ update: function(corner, position) {
2246
+ if(!this.enabled) { return this; }
2247
+
2248
+ var elements = this.qtip.elements,
2249
+ tip = this.element,
2250
+ inner = tip.children(),
2251
+ options = this.options,
2252
+ curSize = this.size,
2253
+ mimic = options.mimic,
2254
+ round = Math.round,
2255
+ color, precedance, context,
2256
+ coords, bigCoords, translate, newSize, border, BACKING_STORE_RATIO;
2257
+
2258
+ // Re-determine tip if not already set
2259
+ if(!corner) { corner = this.qtip.cache.corner || this.corner; }
2260
+
2261
+ // Use corner property if we detect an invalid mimic value
2262
+ if(mimic === FALSE) { mimic = corner; }
2263
+
2264
+ // Otherwise inherit mimic properties from the corner object as necessary
2265
+ else {
2266
+ mimic = new CORNER(mimic);
2267
+ mimic.precedance = corner.precedance;
2268
+
2269
+ if(mimic.x === 'inherit') { mimic.x = corner.x; }
2270
+ else if(mimic.y === 'inherit') { mimic.y = corner.y; }
2271
+ else if(mimic.x === mimic.y) {
2272
+ mimic[ corner.precedance ] = corner[ corner.precedance ];
2273
+ }
2274
+ }
2275
+ precedance = mimic.precedance;
2276
+
2277
+ // Ensure the tip width.height are relative to the tip position
2278
+ if(corner.precedance === X) { this._swapDimensions(); }
2279
+ else { this._resetDimensions(); }
2280
+
2281
+ // Update our colours
2282
+ color = this.color = this._parseColours(corner);
2283
+
2284
+ // Detect border width, taking into account colours
2285
+ if(color[1] !== TRANSPARENT) {
2286
+ // Grab border width
2287
+ border = this.border = this._parseWidth(corner, corner[corner.precedance]);
2288
+
2289
+ // If border width isn't zero, use border color as fill if it's not invalid (1.0 style tips)
2290
+ if(options.border && border < 1 && !INVALID.test(color[1])) { color[0] = color[1]; }
2291
+
2292
+ // Set border width (use detected border width if options.border is true)
2293
+ this.border = border = options.border !== TRUE ? options.border : border;
2294
+ }
2295
+
2296
+ // Border colour was invalid, set border to zero
2297
+ else { this.border = border = 0; }
2298
+
2299
+ // Determine tip size
2300
+ newSize = this.size = this._calculateSize(corner);
2301
+ tip.css({
2302
+ width: newSize[0],
2303
+ height: newSize[1],
2304
+ lineHeight: newSize[1]+'px'
2305
+ });
2306
+
2307
+ // Calculate tip translation
2308
+ if(corner.precedance === Y) {
2309
+ translate = [
2310
+ round(mimic.x === LEFT ? border : mimic.x === RIGHT ? newSize[0] - curSize[0] - border : (newSize[0] - curSize[0]) / 2),
2311
+ round(mimic.y === TOP ? newSize[1] - curSize[1] : 0)
2312
+ ];
2313
+ }
2314
+ else {
2315
+ translate = [
2316
+ round(mimic.x === LEFT ? newSize[0] - curSize[0] : 0),
2317
+ round(mimic.y === TOP ? border : mimic.y === BOTTOM ? newSize[1] - curSize[1] - border : (newSize[1] - curSize[1]) / 2)
2318
+ ];
2319
+ }
2320
+
2321
+ // Canvas drawing implementation
2322
+ if(HASCANVAS) {
2323
+ // Grab canvas context and clear/save it
2324
+ context = inner[0].getContext('2d');
2325
+ context.restore(); context.save();
2326
+ context.clearRect(0,0,6000,6000);
2327
+
2328
+ // Calculate coordinates
2329
+ coords = this._calculateTip(mimic, curSize, SCALE);
2330
+ bigCoords = this._calculateTip(mimic, this.size, SCALE);
2331
+
2332
+ // Set the canvas size using calculated size
2333
+ inner.attr(WIDTH, newSize[0] * SCALE).attr(HEIGHT, newSize[1] * SCALE);
2334
+ inner.css(WIDTH, newSize[0]).css(HEIGHT, newSize[1]);
2335
+
2336
+ // Draw the outer-stroke tip
2337
+ this._drawCoords(context, bigCoords);
2338
+ context.fillStyle = color[1];
2339
+ context.fill();
2340
+
2341
+ // Draw the actual tip
2342
+ context.translate(translate[0] * SCALE, translate[1] * SCALE);
2343
+ this._drawCoords(context, coords);
2344
+ context.fillStyle = color[0];
2345
+ context.fill();
2346
+ }
2347
+
2348
+ // VML (IE Proprietary implementation)
2349
+ else {
2350
+ // Calculate coordinates
2351
+ coords = this._calculateTip(mimic);
2352
+
2353
+ // Setup coordinates string
2354
+ coords = 'm' + coords[0] + ',' + coords[1] + ' l' + coords[2] +
2355
+ ',' + coords[3] + ' ' + coords[4] + ',' + coords[5] + ' xe';
2356
+
2357
+ // Setup VML-specific offset for pixel-perfection
2358
+ translate[2] = border && /^(r|b)/i.test(corner.string()) ?
2359
+ BROWSER.ie === 8 ? 2 : 1 : 0;
2360
+
2361
+ // Set initial CSS
2362
+ inner.css({
2363
+ coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),
2364
+ antialias: ''+(mimic.string().indexOf(CENTER) > -1),
2365
+ left: translate[0] - (translate[2] * Number(precedance === X)),
2366
+ top: translate[1] - (translate[2] * Number(precedance === Y)),
2367
+ width: newSize[0] + border,
2368
+ height: newSize[1] + border
2369
+ })
2370
+ .each(function(i) {
2371
+ var $this = $(this);
2372
+
2373
+ // Set shape specific attributes
2374
+ $this[ $this.prop ? 'prop' : 'attr' ]({
2375
+ coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border),
2376
+ path: coords,
2377
+ fillcolor: color[0],
2378
+ filled: !!i,
2379
+ stroked: !i
2380
+ })
2381
+ .toggle(!!(border || i));
2382
+
2383
+ // Check if border is enabled and add stroke element
2384
+ !i && $this.html( createVML(
2385
+ 'stroke', 'weight="'+(border*2)+'px" color="'+color[1]+'" miterlimit="1000" joinstyle="miter"'
2386
+ ) );
2387
+ });
2388
+ }
2389
+
2390
+ // Opera bug #357 - Incorrect tip position
2391
+ // https://github.com/Craga89/qTip2/issues/367
2392
+ window.opera && setTimeout(function() {
2393
+ elements.tip.css({
2394
+ display: 'inline-block',
2395
+ visibility: 'visible'
2396
+ });
2397
+ }, 1);
2398
+
2399
+ // Position if needed
2400
+ if(position !== FALSE) { this.calculate(corner, newSize); }
2401
+ },
2402
+
2403
+ calculate: function(corner, size) {
2404
+ if(!this.enabled) { return FALSE; }
2405
+
2406
+ var self = this,
2407
+ elements = this.qtip.elements,
2408
+ tip = this.element,
2409
+ userOffset = this.options.offset,
2410
+ isWidget = elements.tooltip.hasClass('ui-widget'),
2411
+ position = { },
2412
+ precedance, corners;
2413
+
2414
+ // Inherit corner if not provided
2415
+ corner = corner || this.corner;
2416
+ precedance = corner.precedance;
2417
+
2418
+ // Determine which tip dimension to use for adjustment
2419
+ size = size || this._calculateSize(corner);
2420
+
2421
+ // Setup corners and offset array
2422
+ corners = [ corner.x, corner.y ];
2423
+ if(precedance === X) { corners.reverse(); }
2424
+
2425
+ // Calculate tip position
2426
+ $.each(corners, function(i, side) {
2427
+ var b, bc, br;
2428
+
2429
+ if(side === CENTER) {
2430
+ b = precedance === Y ? LEFT : TOP;
2431
+ position[ b ] = '50%';
2432
+ position[MARGIN+'-' + b] = -Math.round(size[ precedance === Y ? 0 : 1 ] / 2) + userOffset;
2433
+ }
2434
+ else {
2435
+ b = self._parseWidth(corner, side, elements.tooltip);
2436
+ bc = self._parseWidth(corner, side, elements.content);
2437
+ br = self._parseRadius(corner);
2438
+
2439
+ position[ side ] = Math.max(-self.border, i ? bc : (userOffset + (br > b ? br : -b)));
2440
+ }
2441
+ });
2442
+
2443
+ // Adjust for tip size
2444
+ position[ corner[precedance] ] -= size[ precedance === X ? 0 : 1 ];
2445
+
2446
+ // Set and return new position
2447
+ tip.css({ margin: '', top: '', bottom: '', left: '', right: '' }).css(position);
2448
+ return position;
2449
+ },
2450
+
2451
+ reposition: function(event, api, pos, viewport) {
2452
+ if(!this.enabled) { return; }
2453
+
2454
+ var cache = api.cache,
2455
+ newCorner = this.corner.clone(),
2456
+ adjust = pos.adjusted,
2457
+ method = api.options.position.adjust.method.split(' '),
2458
+ horizontal = method[0],
2459
+ vertical = method[1] || method[0],
2460
+ shift = { left: FALSE, top: FALSE, x: 0, y: 0 },
2461
+ offset, css = {}, props;
2462
+
2463
+ function shiftflip(direction, precedance, popposite, side, opposite) {
2464
+ // Horizontal - Shift or flip method
2465
+ if(direction === SHIFT && newCorner.precedance === precedance && adjust[side] && newCorner[popposite] !== CENTER) {
2466
+ newCorner.precedance = newCorner.precedance === X ? Y : X;
2467
+ }
2468
+ else if(direction !== SHIFT && adjust[side]){
2469
+ newCorner[precedance] = newCorner[precedance] === CENTER ?
2470
+ (adjust[side] > 0 ? side : opposite) : (newCorner[precedance] === side ? opposite : side);
2471
+ }
2472
+ }
2473
+
2474
+ function shiftonly(xy, side, opposite) {
2475
+ if(newCorner[xy] === CENTER) {
2476
+ css[MARGIN+'-'+side] = shift[xy] = offset[MARGIN+'-'+side] - adjust[side];
2477
+ }
2478
+ else {
2479
+ props = offset[opposite] !== undefined ?
2480
+ [ adjust[side], -offset[side] ] : [ -adjust[side], offset[side] ];
2481
+
2482
+ if( (shift[xy] = Math.max(props[0], props[1])) > props[0] ) {
2483
+ pos[side] -= adjust[side];
2484
+ shift[side] = FALSE;
2485
+ }
2486
+
2487
+ css[ offset[opposite] !== undefined ? opposite : side ] = shift[xy];
2488
+ }
2489
+ }
2490
+
2491
+ // If our tip position isn't fixed e.g. doesn't adjust with viewport...
2492
+ if(this.corner.fixed !== TRUE) {
2493
+ // Perform shift/flip adjustments
2494
+ shiftflip(horizontal, X, Y, LEFT, RIGHT);
2495
+ shiftflip(vertical, Y, X, TOP, BOTTOM);
2496
+
2497
+ // Update and redraw the tip if needed (check cached details of last drawn tip)
2498
+ if(newCorner.string() !== cache.corner.string() && (cache.cornerTop !== adjust.top || cache.cornerLeft !== adjust.left)) {
2499
+ this.update(newCorner, FALSE);
2500
+ }
2501
+ }
2502
+
2503
+ // Setup tip offset properties
2504
+ offset = this.calculate(newCorner);
2505
+
2506
+ // Readjust offset object to make it left/top
2507
+ if(offset.right !== undefined) { offset.left = -offset.right; }
2508
+ if(offset.bottom !== undefined) { offset.top = -offset.bottom; }
2509
+ offset.user = this.offset;
2510
+
2511
+ // Perform shift adjustments
2512
+ if(shift.left = (horizontal === SHIFT && !!adjust.left)) { shiftonly(X, LEFT, RIGHT); }
2513
+ if(shift.top = (vertical === SHIFT && !!adjust.top)) { shiftonly(Y, TOP, BOTTOM); }
2514
+
2515
+ /*
2516
+ * If the tip is adjusted in both dimensions, or in a
2517
+ * direction that would cause it to be anywhere but the
2518
+ * outer border, hide it!
2519
+ */
2520
+ this.element.css(css).toggle(
2521
+ !((shift.x && shift.y) || (newCorner.x === CENTER && shift.y) || (newCorner.y === CENTER && shift.x))
2522
+ );
2523
+
2524
+ // Adjust position to accomodate tip dimensions
2525
+ pos.left -= offset.left.charAt ? offset.user :
2526
+ horizontal !== SHIFT || shift.top || !shift.left && !shift.top ? offset.left + this.border : 0;
2527
+ pos.top -= offset.top.charAt ? offset.user :
2528
+ vertical !== SHIFT || shift.left || !shift.left && !shift.top ? offset.top + this.border : 0;
2529
+
2530
+ // Cache details
2531
+ cache.cornerLeft = adjust.left; cache.cornerTop = adjust.top;
2532
+ cache.corner = newCorner.clone();
2533
+ },
2534
+
2535
+ destroy: function() {
2536
+ // Unbind events
2537
+ this.qtip._unbind(this.qtip.tooltip, this._ns);
2538
+
2539
+ // Remove the tip element(s)
2540
+ if(this.qtip.elements.tip) {
2541
+ this.qtip.elements.tip.find('*')
2542
+ .remove().end().remove();
2543
+ }
2544
+ }
2545
+ });
2546
+
2547
+ TIP = PLUGINS.tip = function(api) {
2548
+ return new Tip(api, api.options.style.tip);
2549
+ };
2550
+
2551
+ // Initialize tip on render
2552
+ TIP.initialize = 'render';
2553
+
2554
+ // Setup plugin sanitization options
2555
+ TIP.sanitize = function(options) {
2556
+ if(options.style && 'tip' in options.style) {
2557
+ var opts = options.style.tip;
2558
+ if(typeof opts !== 'object') { opts = options.style.tip = { corner: opts }; }
2559
+ if(!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; }
2560
+ }
2561
+ };
2562
+
2563
+ // Add new option checks for the plugin
2564
+ CHECKS.tip = {
2565
+ '^position.my|style.tip.(corner|mimic|border)$': function() {
2566
+ // Make sure a tip can be drawn
2567
+ this.create();
2568
+
2569
+ // Reposition the tooltip
2570
+ this.qtip.reposition();
2571
+ },
2572
+ '^style.tip.(height|width)$': function(obj) {
2573
+ // Re-set dimensions and redraw the tip
2574
+ this.size = [ obj.width, obj.height ];
2575
+ this.update();
2576
+
2577
+ // Reposition the tooltip
2578
+ this.qtip.reposition();
2579
+ },
2580
+ '^content.title|style.(classes|widget)$': function() {
2581
+ this.update();
2582
+ }
2583
+ };
2584
+
2585
+ // Extend original qTip defaults
2586
+ $.extend(TRUE, QTIP.defaults, {
2587
+ style: {
2588
+ tip: {
2589
+ corner: TRUE,
2590
+ mimic: FALSE,
2591
+ width: 6,
2592
+ height: 6,
2593
+ border: TRUE,
2594
+ offset: 0
2595
+ }
2596
+ }
2597
+ });
2598
+
2599
+ ;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight)
2600
+ {
2601
+ var target = posOptions.target,
2602
+ tooltip = api.elements.tooltip,
2603
+ my = posOptions.my,
2604
+ at = posOptions.at,
2605
+ adjust = posOptions.adjust,
2606
+ method = adjust.method.split(' '),
2607
+ methodX = method[0],
2608
+ methodY = method[1] || method[0],
2609
+ viewport = posOptions.viewport,
2610
+ container = posOptions.container,
2611
+ cache = api.cache,
2612
+ adjusted = { left: 0, top: 0 },
2613
+ fixed, newMy, newClass, containerOffset, containerStatic,
2614
+ viewportWidth, viewportHeight, viewportScroll, viewportOffset;
2615
+
2616
+ // If viewport is not a jQuery element, or it's the window/document, or no adjustment method is used... return
2617
+ if(!viewport.jquery || target[0] === window || target[0] === document.body || adjust.method === 'none') {
2618
+ return adjusted;
2619
+ }
2620
+
2621
+ // Cach container details
2622
+ containerOffset = container.offset() || adjusted;
2623
+ containerStatic = container.css('position') === 'static';
2624
+
2625
+ // Cache our viewport details
2626
+ fixed = tooltip.css('position') === 'fixed';
2627
+ viewportWidth = viewport[0] === window ? viewport.width() : viewport.outerWidth(FALSE);
2628
+ viewportHeight = viewport[0] === window ? viewport.height() : viewport.outerHeight(FALSE);
2629
+ viewportScroll = { left: fixed ? 0 : viewport.scrollLeft(), top: fixed ? 0 : viewport.scrollTop() };
2630
+ viewportOffset = viewport.offset() || adjusted;
2631
+
2632
+ // Generic calculation method
2633
+ function calculate(side, otherSide, type, adjust, side1, side2, lengthName, targetLength, elemLength) {
2634
+ var initialPos = position[side1],
2635
+ mySide = my[side],
2636
+ atSide = at[side],
2637
+ isShift = type === SHIFT,
2638
+ myLength = mySide === side1 ? elemLength : mySide === side2 ? -elemLength : -elemLength / 2,
2639
+ atLength = atSide === side1 ? targetLength : atSide === side2 ? -targetLength : -targetLength / 2,
2640
+ sideOffset = viewportScroll[side1] + viewportOffset[side1] - (containerStatic ? 0 : containerOffset[side1]),
2641
+ overflow1 = sideOffset - initialPos,
2642
+ overflow2 = initialPos + elemLength - (lengthName === WIDTH ? viewportWidth : viewportHeight) - sideOffset,
2643
+ offset = myLength - (my.precedance === side || mySide === my[otherSide] ? atLength : 0) - (atSide === CENTER ? targetLength / 2 : 0);
2644
+
2645
+ // shift
2646
+ if(isShift) {
2647
+ offset = (mySide === side1 ? 1 : -1) * myLength;
2648
+
2649
+ // Adjust position but keep it within viewport dimensions
2650
+ position[side1] += overflow1 > 0 ? overflow1 : overflow2 > 0 ? -overflow2 : 0;
2651
+ position[side1] = Math.max(
2652
+ -containerOffset[side1] + viewportOffset[side1],
2653
+ initialPos - offset,
2654
+ Math.min(
2655
+ Math.max(
2656
+ -containerOffset[side1] + viewportOffset[side1] + (lengthName === WIDTH ? viewportWidth : viewportHeight),
2657
+ initialPos + offset
2658
+ ),
2659
+ position[side1],
2660
+
2661
+ // Make sure we don't adjust complete off the element when using 'center'
2662
+ mySide === 'center' ? initialPos - myLength : 1E9
2663
+ )
2664
+ );
2665
+
2666
+ }
2667
+
2668
+ // flip/flipinvert
2669
+ else {
2670
+ // Update adjustment amount depending on if using flipinvert or flip
2671
+ adjust *= (type === FLIPINVERT ? 2 : 0);
2672
+
2673
+ // Check for overflow on the left/top
2674
+ if(overflow1 > 0 && (mySide !== side1 || overflow2 > 0)) {
2675
+ position[side1] -= offset + adjust;
2676
+ newMy.invert(side, side1);
2677
+ }
2678
+
2679
+ // Check for overflow on the bottom/right
2680
+ else if(overflow2 > 0 && (mySide !== side2 || overflow1 > 0) ) {
2681
+ position[side1] -= (mySide === CENTER ? -offset : offset) + adjust;
2682
+ newMy.invert(side, side2);
2683
+ }
2684
+
2685
+ // Make sure we haven't made things worse with the adjustment and reset if so
2686
+ if(position[side1] < viewportScroll && -position[side1] > overflow2) {
2687
+ position[side1] = initialPos; newMy = my.clone();
2688
+ }
2689
+ }
2690
+
2691
+ return position[side1] - initialPos;
2692
+ }
2693
+
2694
+ // Set newMy if using flip or flipinvert methods
2695
+ if(methodX !== 'shift' || methodY !== 'shift') { newMy = my.clone(); }
2696
+
2697
+ // Adjust position based onviewport and adjustment options
2698
+ adjusted = {
2699
+ left: methodX !== 'none' ? calculate( X, Y, methodX, adjust.x, LEFT, RIGHT, WIDTH, targetWidth, elemWidth ) : 0,
2700
+ top: methodY !== 'none' ? calculate( Y, X, methodY, adjust.y, TOP, BOTTOM, HEIGHT, targetHeight, elemHeight ) : 0
2701
+ };
2702
+
2703
+ // Set tooltip position class if it's changed
2704
+ if(newMy && cache.lastClass !== (newClass = NAMESPACE + '-pos-' + newMy.abbrev())) {
2705
+ tooltip.removeClass(api.cache.lastClass).addClass( (api.cache.lastClass = newClass) );
2706
+ }
2707
+
2708
+ return adjusted;
2709
+ };
2710
+ ;PLUGINS.polys = {
2711
+ // POLY area coordinate calculator
2712
+ // Special thanks to Ed Cradock for helping out with this.
2713
+ // Uses a binary search algorithm to find suitable coordinates.
2714
+ polygon: function(baseCoords, corner) {
2715
+ var result = {
2716
+ width: 0, height: 0,
2717
+ position: {
2718
+ top: 1e10, right: 0,
2719
+ bottom: 0, left: 1e10
2720
+ },
2721
+ adjustable: FALSE
2722
+ },
2723
+ i = 0, next,
2724
+ coords = [],
2725
+ compareX = 1, compareY = 1,
2726
+ realX = 0, realY = 0,
2727
+ newWidth, newHeight;
2728
+
2729
+ // First pass, sanitize coords and determine outer edges
2730
+ i = baseCoords.length; while(i--) {
2731
+ next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ];
2732
+
2733
+ if(next[0] > result.position.right){ result.position.right = next[0]; }
2734
+ if(next[0] < result.position.left){ result.position.left = next[0]; }
2735
+ if(next[1] > result.position.bottom){ result.position.bottom = next[1]; }
2736
+ if(next[1] < result.position.top){ result.position.top = next[1]; }
2737
+
2738
+ coords.push(next);
2739
+ }
2740
+
2741
+ // Calculate height and width from outer edges
2742
+ newWidth = result.width = Math.abs(result.position.right - result.position.left);
2743
+ newHeight = result.height = Math.abs(result.position.bottom - result.position.top);
2744
+
2745
+ // If it's the center corner...
2746
+ if(corner.abbrev() === 'c') {
2747
+ result.position = {
2748
+ left: result.position.left + (result.width / 2),
2749
+ top: result.position.top + (result.height / 2)
2750
+ };
2751
+ }
2752
+ else {
2753
+ // Second pass, use a binary search algorithm to locate most suitable coordinate
2754
+ while(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0)
2755
+ {
2756
+ newWidth = Math.floor(newWidth / 2);
2757
+ newHeight = Math.floor(newHeight / 2);
2758
+
2759
+ if(corner.x === LEFT){ compareX = newWidth; }
2760
+ else if(corner.x === RIGHT){ compareX = result.width - newWidth; }
2761
+ else{ compareX += Math.floor(newWidth / 2); }
2762
+
2763
+ if(corner.y === TOP){ compareY = newHeight; }
2764
+ else if(corner.y === BOTTOM){ compareY = result.height - newHeight; }
2765
+ else{ compareY += Math.floor(newHeight / 2); }
2766
+
2767
+ i = coords.length; while(i--)
2768
+ {
2769
+ if(coords.length < 2){ break; }
2770
+
2771
+ realX = coords[i][0] - result.position.left;
2772
+ realY = coords[i][1] - result.position.top;
2773
+
2774
+ if((corner.x === LEFT && realX >= compareX) ||
2775
+ (corner.x === RIGHT && realX <= compareX) ||
2776
+ (corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) ||
2777
+ (corner.y === TOP && realY >= compareY) ||
2778
+ (corner.y === BOTTOM && realY <= compareY) ||
2779
+ (corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) {
2780
+ coords.splice(i, 1);
2781
+ }
2782
+ }
2783
+ }
2784
+ result.position = { left: coords[0][0], top: coords[0][1] };
2785
+ }
2786
+
2787
+ return result;
2788
+ },
2789
+
2790
+ rect: function(ax, ay, bx, by) {
2791
+ return {
2792
+ width: Math.abs(bx - ax),
2793
+ height: Math.abs(by - ay),
2794
+ position: {
2795
+ left: Math.min(ax, bx),
2796
+ top: Math.min(ay, by)
2797
+ }
2798
+ };
2799
+ },
2800
+
2801
+ _angles: {
2802
+ tc: 3 / 2, tr: 7 / 4, tl: 5 / 4,
2803
+ bc: 1 / 2, br: 1 / 4, bl: 3 / 4,
2804
+ rc: 2, lc: 1, c: 0
2805
+ },
2806
+ ellipse: function(cx, cy, rx, ry, corner) {
2807
+ var c = PLUGINS.polys._angles[ corner.abbrev() ],
2808
+ rxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ),
2809
+ rys = ry * Math.sin( c * Math.PI );
2810
+
2811
+ return {
2812
+ width: (rx * 2) - Math.abs(rxc),
2813
+ height: (ry * 2) - Math.abs(rys),
2814
+ position: {
2815
+ left: cx + rxc,
2816
+ top: cy + rys
2817
+ },
2818
+ adjustable: FALSE
2819
+ };
2820
+ },
2821
+ circle: function(cx, cy, r, corner) {
2822
+ return PLUGINS.polys.ellipse(cx, cy, r, r, corner);
2823
+ }
2824
+ };;PLUGINS.imagemap = function(api, area, corner, adjustMethod)
2825
+ {
2826
+ if(!area.jquery) { area = $(area); }
2827
+
2828
+ var shape = area.attr('shape').toLowerCase().replace('poly', 'polygon'),
2829
+ image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'),
2830
+ coordsString = $.trim(area.attr('coords')),
2831
+ coordsArray = coordsString.replace(/,$/, '').split(','),
2832
+ imageOffset, coords, i, next, result, len;
2833
+
2834
+ // If we can't find the image using the map...
2835
+ if(!image.length) { return FALSE; }
2836
+
2837
+ // Pass coordinates string if polygon
2838
+ if(shape === 'polygon') {
2839
+ result = PLUGINS.polys.polygon(coordsArray, corner);
2840
+ }
2841
+
2842
+ // Otherwise parse the coordinates and pass them as arguments
2843
+ else if(PLUGINS.polys[shape]) {
2844
+ for(i = -1, len = coordsArray.length, coords = []; ++i < len;) {
2845
+ coords.push( parseInt(coordsArray[i], 10) );
2846
+ }
2847
+
2848
+ result = PLUGINS.polys[shape].apply(
2849
+ this, coords.concat(corner)
2850
+ );
2851
+ }
2852
+
2853
+ // If no shapre calculation method was found, return false
2854
+ else { return FALSE; }
2855
+
2856
+ // Make sure we account for padding and borders on the image
2857
+ imageOffset = image.offset();
2858
+ imageOffset.left += Math.ceil((image.outerWidth(FALSE) - image.width()) / 2);
2859
+ imageOffset.top += Math.ceil((image.outerHeight(FALSE) - image.height()) / 2);
2860
+
2861
+ // Add image position to offset coordinates
2862
+ result.position.left += imageOffset.left;
2863
+ result.position.top += imageOffset.top;
2864
+
2865
+ return result;
2866
+ };;PLUGINS.svg = function(api, svg, corner)
2867
+ {
2868
+ var doc = $(document),
2869
+ elem = svg[0],
2870
+ root = $(elem.ownerSVGElement),
2871
+ xScale = 1, yScale = 1,
2872
+ complex = true,
2873
+ rootWidth, rootHeight,
2874
+ mtx, transformed, viewBox,
2875
+ len, next, i, points,
2876
+ result, position, dimensions;
2877
+
2878
+ // Ascend the parentNode chain until we find an element with getBBox()
2879
+ while(!elem.getBBox) { elem = elem.parentNode; }
2880
+ if(!elem.getBBox || !elem.parentNode) { return FALSE; }
2881
+
2882
+ // Determine dimensions where possible
2883
+ rootWidth = root.attr('width') || root.width() || parseInt(root.css('width'), 10);
2884
+ rootHeight = root.attr('height') || root.height() || parseInt(root.css('height'), 10);
2885
+
2886
+ // Add stroke characteristics to scaling
2887
+ var strokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2;
2888
+ if(strokeWidth2) {
2889
+ xScale += strokeWidth2 / rootWidth;
2890
+ yScale += strokeWidth2 / rootHeight;
2891
+ }
2892
+
2893
+ // Determine which shape calculation to use
2894
+ switch(elem.nodeName) {
2895
+ case 'ellipse':
2896
+ case 'circle':
2897
+ result = PLUGINS.polys.ellipse(
2898
+ elem.cx.baseVal.value,
2899
+ elem.cy.baseVal.value,
2900
+ (elem.rx || elem.r).baseVal.value + strokeWidth2,
2901
+ (elem.ry || elem.r).baseVal.value + strokeWidth2,
2902
+ corner
2903
+ );
2904
+ break;
2905
+
2906
+ case 'line':
2907
+ case 'polygon':
2908
+ case 'polyline':
2909
+ // Determine points object (line has none, so mimic using array)
2910
+ points = elem.points || [
2911
+ { x: elem.x1.baseVal.value, y: elem.y1.baseVal.value },
2912
+ { x: elem.x2.baseVal.value, y: elem.y2.baseVal.value }
2913
+ ];
2914
+
2915
+ for(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) {
2916
+ next = points.getItem ? points.getItem(i) : points[i];
2917
+ result.push.apply(result, [next.x, next.y]);
2918
+ }
2919
+
2920
+ result = PLUGINS.polys.polygon(result, corner);
2921
+ break;
2922
+
2923
+ // Unknown shape or rectangle? Use bounding box
2924
+ default:
2925
+ result = elem.getBoundingClientRect();
2926
+ result = {
2927
+ width: result.width, height: result.height,
2928
+ position: {
2929
+ left: result.left,
2930
+ top: result.top
2931
+ }
2932
+ };
2933
+ complex = false;
2934
+ break;
2935
+ }
2936
+
2937
+ // Shortcut assignments
2938
+ position = result.position;
2939
+ root = root[0];
2940
+
2941
+ // If the shape was complex (i.e. not using bounding box calculations)
2942
+ if(complex) {
2943
+ // Convert position into a pixel value
2944
+ if(root.createSVGPoint) {
2945
+ mtx = elem.getScreenCTM();
2946
+ points = root.createSVGPoint();
2947
+
2948
+ points.x = position.left;
2949
+ points.y = position.top;
2950
+ transformed = points.matrixTransform( mtx );
2951
+ position.left = transformed.x;
2952
+ position.top = transformed.y;
2953
+ }
2954
+
2955
+ // Calculate viewBox characteristics
2956
+ if(root.viewBox && (viewBox = root.viewBox.baseVal) && viewBox.width && viewBox.height) {
2957
+ xScale *= rootWidth / viewBox.width;
2958
+ yScale *= rootHeight / viewBox.height;
2959
+ }
2960
+ }
2961
+
2962
+ // Adjust by scroll offset
2963
+ position.left += doc.scrollLeft();
2964
+ position.top += doc.scrollTop();
2965
+
2966
+ return result;
2967
+ };;var MODAL, OVERLAY,
2968
+ MODALCLASS = 'qtip-modal',
2969
+ MODALSELECTOR = '.'+MODALCLASS;
2970
+
2971
+ OVERLAY = function()
2972
+ {
2973
+ var self = this,
2974
+ focusableElems = {},
2975
+ current, onLast,
2976
+ prevState, elem;
2977
+
2978
+ // Modified code from jQuery UI 1.10.0 source
2979
+ // http://code.jquery.com/ui/1.10.0/jquery-ui.js
2980
+ function focusable(element) {
2981
+ // Use the defined focusable checker when possible
2982
+ if($.expr[':'].focusable) { return $.expr[':'].focusable; }
2983
+
2984
+ var isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')),
2985
+ nodeName = element.nodeName && element.nodeName.toLowerCase(),
2986
+ map, mapName, img;
2987
+
2988
+ if('area' === nodeName) {
2989
+ map = element.parentNode;
2990
+ mapName = map.name;
2991
+ if(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {
2992
+ return false;
2993
+ }
2994
+ img = $('img[usemap=#' + mapName + ']')[0];
2995
+ return !!img && img.is(':visible');
2996
+ }
2997
+ return (/input|select|textarea|button|object/.test( nodeName ) ?
2998
+ !element.disabled :
2999
+ 'a' === nodeName ?
3000
+ element.href || isTabIndexNotNaN :
3001
+ isTabIndexNotNaN
3002
+ );
3003
+ }
3004
+
3005
+ // Focus inputs using cached focusable elements (see update())
3006
+ function focusInputs(blurElems) {
3007
+ // Blurring body element in IE causes window.open windows to unfocus!
3008
+ if(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); }
3009
+
3010
+ // Focus the inputs
3011
+ else { focusableElems.first().focus(); }
3012
+ }
3013
+
3014
+ // Steal focus from elements outside tooltip
3015
+ function stealFocus(event) {
3016
+ if(!elem.is(':visible')) { return; }
3017
+
3018
+ var target = $(event.target),
3019
+ tooltip = current.tooltip,
3020
+ container = target.closest(SELECTOR),
3021
+ targetOnTop;
3022
+
3023
+ // Determine if input container target is above this
3024
+ targetOnTop = container.length < 1 ? FALSE :
3025
+ (parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10));
3026
+
3027
+ // If we're showing a modal, but focus has landed on an input below
3028
+ // this modal, divert focus to the first visible input in this modal
3029
+ // or if we can't find one... the tooltip itself
3030
+ if(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) {
3031
+ focusInputs(target);
3032
+ }
3033
+
3034
+ // Detect when we leave the last focusable element...
3035
+ onLast = event.target === focusableElems[focusableElems.length - 1];
3036
+ }
3037
+
3038
+ $.extend(self, {
3039
+ init: function() {
3040
+ // Create document overlay
3041
+ elem = self.elem = $('<div />', {
3042
+ id: 'qtip-overlay',
3043
+ html: '<div></div>',
3044
+ mousedown: function() { return FALSE; }
3045
+ })
3046
+ .hide();
3047
+
3048
+ // Make sure we can't focus anything outside the tooltip
3049
+ $(document.body).bind('focusin'+MODALSELECTOR, stealFocus);
3050
+
3051
+ // Apply keyboard "Escape key" close handler
3052
+ $(document).bind('keydown'+MODALSELECTOR, function(event) {
3053
+ if(current && current.options.show.modal.escape && event.keyCode === 27) {
3054
+ current.hide(event);
3055
+ }
3056
+ });
3057
+
3058
+ // Apply click handler for blur option
3059
+ elem.bind('click'+MODALSELECTOR, function(event) {
3060
+ if(current && current.options.show.modal.blur) {
3061
+ current.hide(event);
3062
+ }
3063
+ });
3064
+
3065
+ return self;
3066
+ },
3067
+
3068
+ update: function(api) {
3069
+ // Update current API reference
3070
+ current = api;
3071
+
3072
+ // Update focusable elements if enabled
3073
+ if(api.options.show.modal.stealfocus !== FALSE) {
3074
+ focusableElems = api.tooltip.find('*').filter(function() {
3075
+ return focusable(this);
3076
+ });
3077
+ }
3078
+ else { focusableElems = []; }
3079
+ },
3080
+
3081
+ toggle: function(api, state, duration) {
3082
+ var docBody = $(document.body),
3083
+ tooltip = api.tooltip,
3084
+ options = api.options.show.modal,
3085
+ effect = options.effect,
3086
+ type = state ? 'show': 'hide',
3087
+ visible = elem.is(':visible'),
3088
+ visibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip),
3089
+ zindex;
3090
+
3091
+ // Set active tooltip API reference
3092
+ self.update(api);
3093
+
3094
+ // If the modal can steal the focus...
3095
+ // Blur the current item and focus anything in the modal we an
3096
+ if(state && options.stealfocus !== FALSE) {
3097
+ focusInputs( $(':focus') );
3098
+ }
3099
+
3100
+ // Toggle backdrop cursor style on show
3101
+ elem.toggleClass('blurs', options.blur);
3102
+
3103
+ // Append to body on show
3104
+ if(state) {
3105
+ elem.appendTo(document.body);
3106
+ }
3107
+
3108
+ // Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible
3109
+ if((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) {
3110
+ return self;
3111
+ }
3112
+
3113
+ // Stop all animations
3114
+ elem.stop(TRUE, FALSE);
3115
+
3116
+ // Use custom function if provided
3117
+ if($.isFunction(effect)) {
3118
+ effect.call(elem, state);
3119
+ }
3120
+
3121
+ // If no effect type is supplied, use a simple toggle
3122
+ else if(effect === FALSE) {
3123
+ elem[ type ]();
3124
+ }
3125
+
3126
+ // Use basic fade function
3127
+ else {
3128
+ elem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() {
3129
+ if(!state) { elem.hide(); }
3130
+ });
3131
+ }
3132
+
3133
+ // Reset position and detach from body on hide
3134
+ if(!state) {
3135
+ elem.queue(function(next) {
3136
+ elem.css({ left: '', top: '' });
3137
+ if(!$(MODALSELECTOR).length) { elem.detach(); }
3138
+ next();
3139
+ });
3140
+ }
3141
+
3142
+ // Cache the state
3143
+ prevState = state;
3144
+
3145
+ // If the tooltip is destroyed, set reference to null
3146
+ if(current.destroyed) { current = NULL; }
3147
+
3148
+ return self;
3149
+ }
3150
+ });
3151
+
3152
+ self.init();
3153
+ };
3154
+ OVERLAY = new OVERLAY();
3155
+
3156
+ function Modal(api, options) {
3157
+ this.options = options;
3158
+ this._ns = '-modal';
3159
+
3160
+ this.init( (this.qtip = api) );
3161
+ }
3162
+
3163
+ $.extend(Modal.prototype, {
3164
+ init: function(qtip) {
3165
+ var tooltip = qtip.tooltip;
3166
+
3167
+ // If modal is disabled... return
3168
+ if(!this.options.on) { return this; }
3169
+
3170
+ // Set overlay reference
3171
+ qtip.elements.overlay = OVERLAY.elem;
3172
+
3173
+ // Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index
3174
+ tooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length);
3175
+
3176
+ // Apply our show/hide/focus modal events
3177
+ qtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) {
3178
+ var oEvent = event.originalEvent;
3179
+
3180
+ // Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop
3181
+ if(event.target === tooltip[0]) {
3182
+ if(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) {
3183
+ try { event.preventDefault(); } catch(e) {}
3184
+ }
3185
+ else if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) {
3186
+ this.toggle(event, event.type === 'tooltipshow', duration);
3187
+ }
3188
+ }
3189
+ }, this._ns, this);
3190
+
3191
+ // Adjust modal z-index on tooltip focus
3192
+ qtip._bind(tooltip, 'tooltipfocus', function(event, api) {
3193
+ // If focus was cancelled before it reached us, don't do anything
3194
+ if(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; }
3195
+
3196
+ var qtips = $(MODALSELECTOR),
3197
+
3198
+ // Keep the modal's lower than other, regular qtips
3199
+ newIndex = QTIP.modal_zindex + qtips.length,
3200
+ curIndex = parseInt(tooltip[0].style.zIndex, 10);
3201
+
3202
+ // Set overlay z-index
3203
+ OVERLAY.elem[0].style.zIndex = newIndex - 1;
3204
+
3205
+ // Reduce modal z-index's and keep them properly ordered
3206
+ qtips.each(function() {
3207
+ if(this.style.zIndex > curIndex) {
3208
+ this.style.zIndex -= 1;
3209
+ }
3210
+ });
3211
+
3212
+ // Fire blur event for focused tooltip
3213
+ qtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent);
3214
+
3215
+ // Set the new z-index
3216
+ tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;
3217
+
3218
+ // Set current
3219
+ OVERLAY.update(api);
3220
+
3221
+ // Prevent default handling
3222
+ try { event.preventDefault(); } catch(e) {}
3223
+ }, this._ns, this);
3224
+
3225
+ // Focus any other visible modals when this one hides
3226
+ qtip._bind(tooltip, 'tooltiphide', function(event) {
3227
+ if(event.target === tooltip[0]) {
3228
+ $(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event);
3229
+ }
3230
+ }, this._ns, this);
3231
+ },
3232
+
3233
+ toggle: function(event, state, duration) {
3234
+ // Make sure default event hasn't been prevented
3235
+ if(event && event.isDefaultPrevented()) { return this; }
3236
+
3237
+ // Toggle it
3238
+ OVERLAY.toggle(this.qtip, !!state, duration);
3239
+ },
3240
+
3241
+ destroy: function() {
3242
+ // Remove modal class
3243
+ this.qtip.tooltip.removeClass(MODALCLASS);
3244
+
3245
+ // Remove bound events
3246
+ this.qtip._unbind(this.qtip.tooltip, this._ns);
3247
+
3248
+ // Delete element reference
3249
+ OVERLAY.toggle(this.qtip, FALSE);
3250
+ delete this.qtip.elements.overlay;
3251
+ }
3252
+ });
3253
+
3254
+
3255
+ MODAL = PLUGINS.modal = function(api) {
3256
+ return new Modal(api, api.options.show.modal);
3257
+ };
3258
+
3259
+ // Setup sanitiztion rules
3260
+ MODAL.sanitize = function(opts) {
3261
+ if(opts.show) {
3262
+ if(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; }
3263
+ else if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; }
3264
+ }
3265
+ };
3266
+
3267
+ // Base z-index for all modal tooltips (use qTip core z-index as a base)
3268
+ QTIP.modal_zindex = QTIP.zindex - 200;
3269
+
3270
+ // Plugin needs to be initialized on render
3271
+ MODAL.initialize = 'render';
3272
+
3273
+ // Setup option set checks
3274
+ CHECKS.modal = {
3275
+ '^show.modal.(on|blur)$': function() {
3276
+ // Initialise
3277
+ this.destroy();
3278
+ this.init();
3279
+
3280
+ // Show the modal if not visible already and tooltip is visible
3281
+ this.qtip.elems.overlay.toggle(
3282
+ this.qtip.tooltip[0].offsetWidth > 0
3283
+ );
3284
+ }
3285
+ };
3286
+
3287
+ // Extend original api defaults
3288
+ $.extend(TRUE, QTIP.defaults, {
3289
+ show: {
3290
+ modal: {
3291
+ on: FALSE,
3292
+ effect: TRUE,
3293
+ blur: TRUE,
3294
+ stealfocus: TRUE,
3295
+ escape: TRUE
3296
+ }
3297
+ }
3298
+ });
3299
+ ;}));
3300
+ }( window, document ));
3301
+
3302
+
admin/includes/tooltips/jquery.qtip.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* qTip2 v2.2.0 css3 | qtip2.com | Licensed MIT, GPL | Sun Mar 16 2014 07:12:39 */
2
+ .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;cursor:pointer;outline:medium none;border-width:1px;border-style:solid;border-color:transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-titlebar .ui-icon,.qtip-icon .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:transparent none no-repeat -100em -100em}.qtip-focus{}.qtip-hover{}.qtip-default{border-width:1px;border-style:solid;border-color:#F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-rounded,.qtip-tipsy,.qtip-bootstrap{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border-width:0;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:#4A4A4A;background-color:rgba(0,0,0,0)}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323)"}.qtip-jtools .qtip-titlebar,.qtip-jtools .qtip-content{background:transparent;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:transparent}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}x:-o-prefocus,.qtip .qtip-tip{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:transparent;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}
admin/includes/tooltips/jquery.qtip.min.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /* qTip2 v2.2.0 tips viewport imagemap svg modal | qtip2.com | Licensed MIT, GPL | Sun Mar 16 2014 07:12:37 */
2
+
3
+ !function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=F,this.elements={target:a},this._id=S+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:E,attr:e,onTooltip:E,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=E}function f(a){return a===F||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?E:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?E:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==E,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,F,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(f(b.title)||(b.button=b.title.button,b.title=b.title.text),g(b.title||E)&&(b.title=E))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===D?{ready:D}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(R,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d<f.length&&(c=e);return[c||a,f.pop()]}function j(a,b){var c,d,e;for(c in this.checks)for(d in this.checks[c])(e=new RegExp(d,"i").exec(a))&&(b.push(e),("builtin"===c||this.plugins[c])&&this.checks[c][d].apply(this.plugins[c]||this,b))}function k(a){return V.concat("").join(a?"-"+a+" ":" ")}function l(c){return c&&{type:c.type,pageX:c.pageX,pageY:c.pageY,target:c.target,relatedTarget:c.relatedTarget,scrollX:c.scrollX||a.pageXOffset||b.body.scrollLeft||b.documentElement.scrollLeft,scrollY:c.scrollY||a.pageYOffset||b.body.scrollTop||b.documentElement.scrollTop}||{}}function m(a,b){return b>0?setTimeout(d.proxy(a,this),b):(a.call(this),void 0)}function n(a){return this.tooltip.hasClass(ab)?E:(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=m.call(this,function(){this.toggle(D,a)},this.options.show.delay),void 0)}function o(a){if(this.tooltip.hasClass(ab))return E;var b=d(a.relatedTarget),c=b.closest(W)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=m.call(this,function(){this.toggle(E,a)},this.options.hide.delay,this)}function p(a){return this.tooltip.hasClass(ab)||!this.options.hide.inactive?E:(clearTimeout(this.timers.inactive),this.timers.inactive=m.call(this,function(){this.hide(a)},this.options.hide.inactive),void 0)}function q(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function r(a,c,e){d(b.body).delegate(a,(c.split?c:c.join(hb+" "))+hb,function(){var a=y.api[d.attr(this,U)];a&&!a.disabled&&e.apply(a,arguments)})}function s(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):F,p="html5"===f.metadata.type&&o?o[f.metadata.name]:F,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(D,{},y.defaults,f,"object"==typeof q?h(q):F,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===E||!j)return E;k.content.text=j}if(i.container.length||(i.container=m),i.target===E&&(i.target=n),k.show.target===E&&(k.show.target=n),k.show.solo===D&&(k.show.solo=i.container.closest("body")),k.hide.target===E&&(k.hide.target=n),k.position.viewport===D&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new A(i.at,D),i.my=new A(i.my),a.data(S))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===E)return E;return a.attr(T,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(cb,l).attr("title",""),g=new e(a,k,c,!!j),a.data(S,g),a.one("remove.qtip-"+c+" removeqtip.qtip-"+c,function(){var a;(a=d(this).data(S))&&a.destroy(!0)}),g}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function u(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+sb.join(f+" ")+f).split(" "),h=0;if(rb[b])return a.css(rb[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return rb[b]=d,e}function v(a,b){return Math.ceil(parseFloat(u(a,b)))}function w(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}function x(a,b){this.options=b,this._ns="-modal",this.init(this.qtip=a)}var y,z,A,B,C,D=!0,E=!1,F=null,G="x",H="y",I="width",J="height",K="top",L="left",M="bottom",N="right",O="center",P="flipinvert",Q="shift",R={},S="qtip",T="data-hasqtip",U="data-qtip-id",V=["ui-widget","ui-tooltip"],W="."+S,X="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),Y=S+"-fixed",Z=S+"-default",$=S+"-focus",_=S+"-hover",ab=S+"-disabled",bb="_replacedByqTip",cb="oldtitle",db={ie:function(){for(var a=3,c=b.createElement("div");(c.innerHTML="<!--[if gt IE "+ ++a+"]><i></i><![endif]-->")&&c.getElementsByTagName("i")[0];);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||E};z=e.prototype,z._when=function(a){return d.when.apply(d,a)},z.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),this.tooltip=g.tooltip=b=d("<div/>",{id:this._id,"class":[S,Z,e.style.classes,S+"-pos-"+e.position.my.abbrev()].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":E,"aria-describedby":this._id+"-content","aria-hidden":D}).toggleClass(ab,this.disabled).attr(U,this.id).data(S,this).appendTo(k.container).append(g.content=d("<div />",{"class":S+"-content",id:this._id+"-content","aria-atomic":D})),this.rendered=-1,this.positioning=D,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,E))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,E)),this.rendered=D,this._setWidget(),d.each(R,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=E,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(D,f.event,E),c.hiddenDuringWait=E}),y.api[this.id]=this,this},z.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=D;var a=this.target,b=a.attr(cb);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()}),clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this._unassignEvents(),a.removeData(S).removeAttr(U).removeAttr(T).removeAttr("aria-describedby"),this.options.suppress&&b&&a.attr("title",b).removeAttr(cb),this._unbind(a),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=F,delete y.api[this.id]}}return this.destroyed?this.target:(a===D&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},B=z.checks={builtin:{"^id$":function(a,b,c,e){var f=c===D?y.nextid:c,g=S+"-"+f;f!==E&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),this._updateTitle(c),void 0):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(a[b]=new A(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(D)||this.toggle(D))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(Z,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},z.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var eb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,fb=/^prerender|show\.ready/i;z.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=E,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&fb.test(b))return delete a[b],void 0;var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=eb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=D,d.each(a,d.proxy(j,this)),this.positioning=E,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?F:this.cache.event),this},z._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=D,a.then(function(a){return e.waiting=E,c._update(a,b)},F,function(a){return c._update(a,b)})):a===E||!a&&""!==a?E:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){a.images&&a.images.length&&c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):E},z._waitForContent=function(a){var b=this.cache;return b.waiting=D,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=E}).promise()},z._updateContent=function(a,b){this._update(a,this.elements.content,b)},z._updateTitle=function(a,b){this._update(a,this.elements.title,b)===E&&this._removeTitle(E)},z._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("<div />",{"class":S+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("<div />",{id:b,"class":S+"-title","aria-atomic":D})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},z._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=F,a!==E&&this.reposition())},z.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=D;var f,g,h=this.cache,i=this.tooltip,j=this.options.position,k=j.target,l=j.my,m=j.at,n=j.viewport,o=j.container,p=j.adjust,q=p.method.split(" "),r=i.outerWidth(E),s=i.outerHeight(E),t=0,u=0,v=i.css("position"),w={left:0,top:0},x=i[0].offsetWidth>0,y=c&&"scroll"===c.type,z=d(a),A=o[0].ownerDocument,B=this.mouse;if(d.isArray(k)&&2===k.length)m={x:L,y:K},w={left:k[0],top:k[1]};else if("mouse"===k)m={x:L,y:K},!B||!B.pageX||!p.mouse&&c&&c.pageX?c&&c.pageX||((!p.mouse||this.options.show.distance)&&h.origin&&h.origin.pageX?c=h.origin:(!c||c&&("resize"===c.type||"scroll"===c.type))&&(c=h.event)):c=B,"static"!==v&&(w=o.offset()),A.body.offsetWidth!==(a.innerWidth||A.documentElement.clientWidth)&&(g=d(b.body).offset()),w={left:c.pageX-w.left+(g&&g.left||0),top:c.pageY-w.top+(g&&g.top||0)},p.mouse&&y&&B&&(w.left-=(B.scrollX||0)-z.scrollLeft(),w.top-=(B.scrollY||0)-z.scrollTop());else{if("event"===k?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?h.target=d(c.target):c.target||(h.target=this.elements.target):"event"!==k&&(h.target=d(k.jquery?k:this.elements.target)),k=h.target,k=d(k).eq(0),0===k.length)return this;k[0]===b||k[0]===a?(t=db.iOS?a.innerWidth:k.width(),u=db.iOS?a.innerHeight:k.height(),k[0]===a&&(w={top:(n||k).scrollTop(),left:(n||k).scrollLeft()})):R.imagemap&&k.is("area")?f=R.imagemap(this,k,m,R.viewport?q:E):R.svg&&k&&k[0].ownerSVGElement?f=R.svg(this,k,m,R.viewport?q:E):(t=k.outerWidth(E),u=k.outerHeight(E),w=k.offset()),f&&(t=f.width,u=f.height,g=f.offset,w=f.position),w=this.reposition.offset(k,w,o),(db.iOS>3.1&&db.iOS<4.1||db.iOS>=4.3&&db.iOS<4.33||!db.iOS&&"fixed"===v)&&(w.left-=z.scrollLeft(),w.top-=z.scrollTop()),(!f||f&&f.adjustable!==E)&&(w.left+=m.x===N?t:m.x===O?t/2:0,w.top+=m.y===M?u:m.y===O?u/2:0)}return w.left+=p.x+(l.x===N?-r:l.x===O?-r/2:0),w.top+=p.y+(l.y===M?-s:l.y===O?-s/2:0),R.viewport?(w.adjusted=R.viewport(this,w,j,t,u,r,s),g&&w.adjusted.left&&(w.left+=g.left),g&&w.adjusted.top&&(w.top+=g.top)):w.adjusted={left:0,top:0},this._trigger("move",[w,n.elem||n],c)?(delete w.adjusted,e===E||!x||isNaN(w.left)||isNaN(w.top)||"mouse"===k||!d.isFunction(j.effect)?i.css(w):d.isFunction(j.effect)&&(j.effect.call(i,this,d.extend({},w)),i.queue(function(a){d(this).css({opacity:"",height:""}),db.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=E,this):this},z.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!db.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var gb=(A=z.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,O).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?H:G}).prototype;gb.invert=function(a,b){this[a]=this[a]===L?N:this[a]===N?L:b||this[a]},gb.string=function(){var a=this.x,b=this.y;return a===b?a:this.precedance===H||this.forceY&&"center"!==b?b+" "+a:a+" "+b},gb.abbrev=function(){var a=this.string().split(" ");return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},gb.clone=function(){return new A(this.string(),this.forceY)},z.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=l(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=D),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",m=this.options[k],n=(this.options[a?"hide":"show"],this.options.position),o=this.options.content,p=this.tooltip.css("width"),q=this.tooltip.is(":visible"),r=a||1===m.target.length,s=!c||m.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!q),h=!g.is(":animated")&&q===a&&s,i=h?F:!!this._trigger(k,[90]),this.destroyed?this:(i!==E&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(e.origin=l(this.mouse),d.isFunction(o.text)&&this._updateContent(o.text,E),d.isFunction(o.title)&&this._updateTitle(o.title,E),!C&&"mouse"===n.target&&n.adjust.mouse&&(d(b).bind("mousemove."+S,this._storeMouse),C=D),p||g.css("width",g.outerWidth(E)),this.reposition(c,arguments[2]),p||g.css("width",""),m.solo&&("string"==typeof m.solo?d(m.solo):d(W,m.solo)).not(g).not(m.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,C&&!d(W+'[tracking="true"]:visible',m.solo).not(g).length&&(d(b).unbind("mousemove."+S),C=E),this.blur(c)),j=d.proxy(function(){a?(db.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof m.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),m.effect===E||r===E?(g[k](),j()):d.isFunction(m.effect)?(g.stop(1,1),m.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&m.target.trigger("qtip-"+this.id+"-inactive"),this))},z.show=function(a){return this.toggle(D,a)},z.hide=function(a){return this.toggle(E,a)},z.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(W),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=y.zindex+b.length;return c.hasClass($)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+$).qtip("blur",a)),c.addClass($)[0].style.zIndex=f),this},z.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass($),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},z.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(ab):this.disabled):"boolean"!=typeof a&&(a=D),this.rendered&&this.tooltip.toggleClass(ab,a).attr("aria-disabled",a),this.disabled=!!a,this)},z.enable=function(){return this.disable(E)},z._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d("<a />",{"class":"qtip-close "+(this.options.style.widget?"":S+"-icon"),title:g,"aria-label":g}).prepend(d("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(ab)||a.hide(b),E})},z._updateButton=function(a){if(!this.rendered)return E;var b=this.elements.button;a?this._createButton():b.remove()},z._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(ab);c.removeClass(ab),ab=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(ab,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(Z,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(S+"-icon",!a)},z._storeMouse=function(a){(this.mouse=l(a)).type="mousemove"},z._bind=function(a,b,c,e,f){var g="."+this._id+(e?"-"+e:"");b.length&&d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this))},z._unbind=function(a,b){d(a).unbind("."+this._id+(b?"-"+b:""))};var hb="."+S;d(function(){r(W,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(Y)&&!c.hasClass(ab)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(_,b)}),r("["+U+"]",X,p)}),z._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||F,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=E,!e.isDefaultPrevented()},z._bindEvents=function(a,b,c,e,f,g){if(e.add(c).length===e.length){var h=[];b=d.map(b,function(b){var c=d.inArray(b,a);return c>-1?(h.push(a.splice(c,1)[0]),void 0):b}),h.length&&this._bind(c,h,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)})}this._bind(c,a,f),this._bind(e,b,g)},z._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?E:(this.cache.event=l(a),this.cache.target=a?d(a.target):[c],clearTimeout(this.timers.show),this.timers.show=m.call(this,function(){this.render("object"==typeof a||e.show.ready)},e.show.delay),void 0)}var e=this.options,f=e.show.target,g=e.hide.target,h=e.show.event?d.trim(""+e.show.event).split(" "):[],i=e.hide.event?d.trim(""+e.hide.event).split(" "):[];/mouse(over|enter)/i.test(e.show.event)&&!/mouse(out|leave)/i.test(e.hide.event)&&i.push("mouseleave"),this._bind(f,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=D}),this._bindEvents(h,i,f,g,b,function(){clearTimeout(this.timers.show)}),(e.show.ready||e.prerender)&&b.call(this,a)},z._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),m=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(Y)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0,e=b.parents(W).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",p),this._bind(i.add(g),y.inactiveEvents,p,"-inactive")),this._bindEvents(r,s,h,i,n,o),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){this.cache.onTarget="mouseenter"===a.type}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:m,"resize",q),f.adjust.scroll&&this._bind(m.add(f.container),"scroll",q)},z._unassignEvents=function(){var c=[this.options.show.target[0],this.options.hide.target[0],this.rendered&&this.tooltip[0],this.options.position.container[0],this.options.position.viewport[0],this.options.position.container.closest("html")[0],a,b];this._unbind(d([]).pushStack(d.grep(c,function(a){return"object"==typeof a})))},y=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=F,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],S):F;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,S);if(!a)return D;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),E;a.set(b,e)}}),g!==F?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(D,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===E||c.length<1||y.api[c]?y.nextid++:c,b=s(d(this),c,k),b===E?D:(y.api[c]=b,d.each(R,function(){"initialize"===this.initialize&&this(b)}),b._assignInitialEvents(j),void 0)}))},d.qtip=e,y.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,cb):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(cb,b))}return d.fn["attr"+bb].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+bb].apply(this,arguments));return a||b.filter("["+cb+"]").attr("title",function(){return d.attr(this,cb)}).removeAttr(cb),b}},function(a,b){if(!b||d.fn[a+bb])return D;var c=d.fn[a+bb]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+bb]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(T))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+bb].apply(this,arguments)}),y.version="2.2.0",y.nextid=0,y.inactiveEvents=X,y.zindex=15e3,y.defaults={prerender:E,id:E,overwrite:D,suppress:D,content:{text:D,attr:"title",title:E,button:E},position:{my:"top left",at:"bottom right",target:E,container:E,viewport:E,adjust:{x:0,y:0,mouse:D,scroll:D,resize:D,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:E})}},show:{target:E,event:"mouseenter",effect:D,delay:90,solo:E,ready:E,autofocus:E},hide:{target:E,event:"mouseleave",effect:D,delay:0,fixed:E,inactive:E,leave:"window",distance:E},style:{classes:"",widget:E,width:E,height:E,def:D},events:{render:F,move:F,show:F,hide:F,toggle:F,visible:F,hidden:F,focus:F,blur:F}};var ib,jb="margin",kb="border",lb="color",mb="background-color",nb="transparent",ob=" !important",pb=!!b.createElement("canvas").getContext,qb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,rb={},sb=["Webkit","O","Moz","ms"];if(pb)var tb=a.devicePixelRatio||1,ub=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),vb=tb/ub;else var wb=function(a,b,c){return"<qtipvml:"+a+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(b||"")+' style="behavior: url(#default#VML); '+(c||"")+'" />'};d.extend(w.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("<div />",{"class":S+"-tip"}).prependTo(a.tooltip),pb?(b=d("<canvas />").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=wb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===K||a.y===O&&this.element.position().top+this.size[1]/2+this.options.offset<b.outerHeight(D))},_parseCorner:function(a){var b=this.qtip.options.position.my;return a===E||b===E?a=E:a===D?a=new A(b.string()):a.string||(a=new A(a),a.fixed=D),a},_parseWidth:function(a,b,c){var d=this.qtip.elements,e=kb+t(b)+"Width";return(c?v(c,e):v(d.content,e)||v(this._useTitle(a)&&d.titlebar||d.content,e)||v(d.tooltip,e))||0},_parseRadius:function(a){var b=this.qtip.elements,c=kb+t(a.y)+t(a.x)+"Radius";return db.ie<9?0:v(this._useTitle(a)&&b.titlebar||b.content,c)||v(b.tooltip,c)||0},_invalidColour:function(a,b,c){var d=a.css(b);return!d||c&&d===a.css(c)||qb.test(d)?E:d},_parseColours:function(a){var b=this.qtip.elements,c=this.element.css("cssText",""),e=kb+t(a[a.precedance])+t(lb),f=this._useTitle(a)&&b.titlebar||b.content,g=this._invalidColour,h=[];return h[0]=g(c,mb)||g(f,mb)||g(b.content,mb)||g(b.tooltip,mb)||c.css(mb),h[1]=g(c,e,lb)||g(f,e,lb)||g(b.content,e,lb)||g(b.tooltip,e,lb)||b.tooltip.css(e),d("*",c).add(c).css("cssText",mb+":"+nb+ob+";"+kb+":0"+ob+";"),h},_calculateSize:function(a){var b,c,d,e=a.precedance===H,f=this.options.width,g=this.options.height,h="c"===a.abbrev(),i=(e?f:g)*(h?.5:1),j=Math.pow,k=Math.round,l=Math.sqrt(j(i,2)+j(g,2)),m=[this.border/i*l,this.border/g*l];return m[2]=Math.sqrt(j(m[0],2)-j(this.border,2)),m[3]=Math.sqrt(j(m[1],2)-j(this.border,2)),b=l+m[2]+m[3]+(h?0:m[0]),c=b/l,d=[k(c*f),k(c*g)],e?d:d.reverse()},_calculateTip:function(a,b,c){c=c||1,b=b||this.size;var d=b[0]*c,e=b[1]*c,f=Math.ceil(d/2),g=Math.ceil(e/2),h={br:[0,0,d,e,d,0],bl:[0,0,d,0,0,e],tr:[0,e,d,0,d,e],tl:[0,0,0,e,d,e],tc:[0,e,f,0,d,e],bc:[0,0,d,0,f,e],rc:[0,0,d,g,0,e],lc:[d,0,d,e,0,g]};return h.lt=h.br,h.rt=h.bl,h.lb=h.tr,h.rb=h.tl,h[a.abbrev()]},_drawCoords:function(a,b){a.beginPath(),a.moveTo(b[0],b[1]),a.lineTo(b[2],b[3]),a.lineTo(b[4],b[5]),a.closePath()},create:function(){var a=this.corner=(pb||db.ie)&&this._parseCorner(this.options.corner);return(this.enabled=!!this.corner&&"c"!==this.corner.abbrev())&&(this.qtip.cache.corner=a.clone(),this.update()),this.element.toggle(this.enabled),this.corner},update:function(b,c){if(!this.enabled)return this;var e,f,g,h,i,j,k,l,m=this.qtip.elements,n=this.element,o=n.children(),p=this.options,q=this.size,r=p.mimic,s=Math.round;b||(b=this.qtip.cache.corner||this.corner),r===E?r=b:(r=new A(r),r.precedance=b.precedance,"inherit"===r.x?r.x=b.x:"inherit"===r.y?r.y=b.y:r.x===r.y&&(r[b.precedance]=b[b.precedance])),f=r.precedance,b.precedance===G?this._swapDimensions():this._resetDimensions(),e=this.color=this._parseColours(b),e[1]!==nb?(l=this.border=this._parseWidth(b,b[b.precedance]),p.border&&1>l&&!qb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==D?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===H?[s(r.x===L?l:r.x===N?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===K?k[1]-q[1]:0)]:[s(r.x===L?k[0]-q[0]:0),s(r.y===K?l:r.y===M?k[1]-q[1]-l:(k[1]-q[1])/2)],pb?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,vb),i=this._calculateTip(r,this.size,vb),o.attr(I,k[0]*vb).attr(J,k[1]*vb),o.css(I,k[0]).css(J,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*vb,j[1]*vb),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===db.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(O)>-1),left:j[0]-j[2]*Number(f===G),top:j[1]-j[2]*Number(f===H),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(wb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==E&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return E;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===G&&e.reverse(),d.each(e,function(d,e){var h,k,l;e===O?(h=c===H?L:K,j[h]="50%",j[jb+"-"+h]=-Math.round(b[c===H?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))
4
+ }),j[a[c]]-=b[c===G?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===Q&&j.precedance===b&&k[d]&&j[c]!==O?j.precedance=j.precedance===G?H:G:a!==Q&&k[d]&&(j[b]=j[b]===O?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===O?p[jb+"-"+b]=o[a]=g[jb+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=E),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:E,top:E,x:0,y:0},p={};this.corner.fixed!==D&&(e(m,G,H,L,N),e(n,H,G,K,M),j.string()===i.corner.string()||i.cornerTop===k.top&&i.cornerLeft===k.left||this.update(j,E)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===Q&&!!k.left)&&f(G,L,N),(o.top=n===Q&&!!k.top)&&f(H,K,M),this.element.css(p).toggle(!(o.x&&o.y||j.x===O&&o.y||j.y===O&&o.x)),d.left-=g.left.charAt?g.user:m!==Q||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==Q||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),ib=R.tip=function(a){return new w(a,a.options.style.tip)},ib.initialize="render",ib.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=D)}},B.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(D,y.defaults,{style:{tip:{corner:D,mimic:E,width:6,height:6,border:D,offset:0}}}),R.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],m=v[a],t=w[a],u=c===Q,x=m===f?j:m===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=r[f]+s[f]-(o?0:n[f]),A=z-k,B=k+j-(h===I?p:q)-z,C=x-(v.precedance===a||m===v[b]?y:0)-(t===O?i/2:0);return u?(C=(m===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-n[f]+s[f],k-C,Math.min(Math.max(-n[f]+s[f]+(h===I?p:q),k+C),d[f],"center"===m?k-x:1e9))):(e*=c===P?2:0,A>0&&(m!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(m!==g||A>0)&&(d[f]-=(m===O?-C:C)+e,l.invert(a,g)),d[f]<r&&-d[f]>B&&(d[f]=k,l=v.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s,t=e.target,u=c.elements.tooltip,v=e.my,w=e.at,x=e.adjust,y=x.method.split(" "),z=y[0],A=y[1]||y[0],B=e.viewport,C=e.container,D=c.cache,F={left:0,top:0};return B.jquery&&t[0]!==a&&t[0]!==b.body&&"none"!==x.method?(n=C.offset()||F,o="static"===C.css("position"),k="fixed"===u.css("position"),p=B[0]===a?B.width():B.outerWidth(E),q=B[0]===a?B.height():B.outerHeight(E),r={left:k?0:B.scrollLeft(),top:k?0:B.scrollTop()},s=B.offset()||F,("shift"!==z||"shift"!==A)&&(l=v.clone()),F={left:"none"!==z?j(G,H,z,x.x,L,N,I,f,h):0,top:"none"!==A?j(H,G,A,x.y,K,M,J,g,i):0},l&&D.lastClass!==(m=S+"-pos-"+l.abbrev())&&u.removeClass(c.cache.lastClass).addClass(c.cache.lastClass=m),F):F},R.polys={polygon:function(a,b){var c,d,e,f={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:E},g=0,h=[],i=1,j=1,k=0,l=0;for(g=a.length;g--;)c=[parseInt(a[--g],10),parseInt(a[g+1],10)],c[0]>f.position.right&&(f.position.right=c[0]),c[0]<f.position.left&&(f.position.left=c[0]),c[1]>f.position.bottom&&(f.position.bottom=c[1]),c[1]<f.position.top&&(f.position.top=c[1]),h.push(c);if(d=f.width=Math.abs(f.position.right-f.position.left),e=f.height=Math.abs(f.position.bottom-f.position.top),"c"===b.abbrev())f.position={left:f.position.left+f.width/2,top:f.position.top+f.height/2};else{for(;d>0&&e>0&&i>0&&j>0;)for(d=Math.floor(d/2),e=Math.floor(e/2),b.x===L?i=d:b.x===N?i=f.width-d:i+=Math.floor(d/2),b.y===K?j=e:b.y===M?j=f.height-e:j+=Math.floor(e/2),g=h.length;g--&&!(h.length<2);)k=h[g][0]-f.position.left,l=h[g][1]-f.position.top,(b.x===L&&k>=i||b.x===N&&i>=k||b.x===O&&(i>k||k>f.width-i)||b.y===K&&l>=j||b.y===M&&j>=l||b.y===O&&(j>l||l>f.height-j))&&h.splice(g,1);f.position={left:h[0][0],top:h[0][1]}}return f},rect:function(a,b,c,d){return{width:Math.abs(c-a),height:Math.abs(d-b),position:{left:Math.min(a,c),top:Math.min(b,d)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(a,b,c,d,e){var f=R.polys._angles[e.abbrev()],g=0===f?0:c*Math.cos(f*Math.PI),h=d*Math.sin(f*Math.PI);return{width:2*c-Math.abs(g),height:2*d-Math.abs(h),position:{left:a+g,top:b+h},adjustable:E}},circle:function(a,b,c,d){return R.polys.ellipse(a,b,c,c,d)}},R.imagemap=function(a,b,c){b.jquery||(b=d(b));var e,f,g,h,i,j=b.attr("shape").toLowerCase().replace("poly","polygon"),k=d('img[usemap="#'+b.parent("map").attr("name")+'"]'),l=d.trim(b.attr("coords")),m=l.replace(/,$/,"").split(",");if(!k.length)return E;if("polygon"===j)h=R.polys.polygon(m,c);else{if(!R.polys[j])return E;for(g=-1,i=m.length,f=[];++g<i;)f.push(parseInt(m[g],10));h=R.polys[j].apply(this,f.concat(c))}return e=k.offset(),e.left+=Math.ceil((k.outerWidth(E)-k.width())/2),e.top+=Math.ceil((k.outerHeight(E)-k.height())/2),h.position.left+=e.left,h.position.top+=e.top,h},R.svg=function(a,c,e){for(var f,g,h,i,j,k,l,m,n,o,p,q=d(b),r=c[0],s=d(r.ownerSVGElement),t=1,u=1,v=!0;!r.getBBox;)r=r.parentNode;if(!r.getBBox||!r.parentNode)return E;f=s.attr("width")||s.width()||parseInt(s.css("width"),10),g=s.attr("height")||s.height()||parseInt(s.css("height"),10);var w=(parseInt(c.css("stroke-width"),10)||0)/2;switch(w&&(t+=w/f,u+=w/g),r.nodeName){case"ellipse":case"circle":o=R.polys.ellipse(r.cx.baseVal.value,r.cy.baseVal.value,(r.rx||r.r).baseVal.value+w,(r.ry||r.r).baseVal.value+w,e);break;case"line":case"polygon":case"polyline":for(n=r.points||[{x:r.x1.baseVal.value,y:r.y1.baseVal.value},{x:r.x2.baseVal.value,y:r.y2.baseVal.value}],o=[],m=-1,k=n.numberOfItems||n.length;++m<k;)l=n.getItem?n.getItem(m):n[m],o.push.apply(o,[l.x,l.y]);o=R.polys.polygon(o,e);break;default:o=r.getBoundingClientRect(),o={width:o.width,height:o.height,position:{left:o.left,top:o.top}},v=!1}return p=o.position,s=s[0],v&&(s.createSVGPoint&&(h=r.getScreenCTM(),n=s.createSVGPoint(),n.x=p.left,n.y=p.top,i=n.matrixTransform(h),p.left=i.x,p.top=i.y),s.viewBox&&(j=s.viewBox.baseVal)&&j.width&&j.height&&(t*=f/j.width,u*=g/j.height)),p.left+=q.scrollLeft(),p.top+=q.scrollTop(),o};var xb,yb,zb="qtip-modal",Ab="."+zb;yb=function(){function a(a){if(d.expr[":"].focusable)return d.expr[":"].focusable;var b,c,e,f=!isNaN(d.attr(a,"tabindex")),g=a.nodeName&&a.nodeName.toLowerCase();return"area"===g?(b=a.parentNode,c=b.name,a.href&&c&&"map"===b.nodeName.toLowerCase()?(e=d("img[usemap=#"+c+"]")[0],!!e&&e.is(":visible")):!1):/input|select|textarea|button|object/.test(g)?!a.disabled:"a"===g?a.href||f:f}function c(a){k.length<1&&a.length?a.not("body").blur():k.first().focus()}function e(a){if(i.is(":visible")){var b,e=d(a.target),h=f.tooltip,j=e.closest(W);b=j.length<1?E:parseInt(j[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),b||e.closest(W)[0]===h[0]||c(e),g=a.target===k[k.length-1]}}var f,g,h,i,j=this,k={};d.extend(j,{init:function(){return i=j.elem=d("<div />",{id:"qtip-overlay",html:"<div></div>",mousedown:function(){return E}}).hide(),d(b.body).bind("focusin"+Ab,e),d(b).bind("keydown"+Ab,function(a){f&&f.options.show.modal.escape&&27===a.keyCode&&f.hide(a)}),i.bind("click"+Ab,function(a){f&&f.options.show.modal.blur&&f.hide(a)}),j},update:function(b){f=b,k=b.options.show.modal.stealfocus!==E?b.tooltip.find("*").filter(function(){return a(this)}):[]},toggle:function(a,e,g){var k=(d(b.body),a.tooltip),l=a.options.show.modal,m=l.effect,n=e?"show":"hide",o=i.is(":visible"),p=d(Ab).filter(":visible:not(:animated)").not(k);return j.update(a),e&&l.stealfocus!==E&&c(d(":focus")),i.toggleClass("blurs",l.blur),e&&i.appendTo(b.body),i.is(":animated")&&o===e&&h!==E||!e&&p.length?j:(i.stop(D,E),d.isFunction(m)?m.call(i,e):m===E?i[n]():i.fadeTo(parseInt(g,10)||90,e?1:0,function(){e||i.hide()}),e||i.queue(function(a){i.css({left:"",top:""}),d(Ab).length||i.detach(),a()}),h=e,f.destroyed&&(f=F),j)}}),j.init()},yb=new yb,d.extend(x.prototype,{init:function(a){var b=a.tooltip;return this.options.on?(a.elements.overlay=yb.elem,b.addClass(zb).css("z-index",y.modal_zindex+d(Ab).length),a._bind(b,["tooltipshow","tooltiphide"],function(a,c,e){var f=a.originalEvent;if(a.target===b[0])if(f&&"tooltiphide"===a.type&&/mouse(leave|enter)/.test(f.type)&&d(f.relatedTarget).closest(yb.elem[0]).length)try{a.preventDefault()}catch(g){}else(!f||f&&"tooltipsolo"!==f.type)&&this.toggle(a,"tooltipshow"===a.type,e)},this._ns,this),a._bind(b,"tooltipfocus",function(a,c){if(!a.isDefaultPrevented()&&a.target===b[0]){var e=d(Ab),f=y.modal_zindex+e.length,g=parseInt(b[0].style.zIndex,10);yb.elem[0].style.zIndex=f-1,e.each(function(){this.style.zIndex>g&&(this.style.zIndex-=1)}),e.filter("."+$).qtip("blur",a.originalEvent),b.addClass($)[0].style.zIndex=f,yb.update(c);try{a.preventDefault()}catch(h){}}},this._ns,this),a._bind(b,"tooltiphide",function(a){a.target===b[0]&&d(Ab).filter(":visible").not(b).last().qtip("focus",a)},this._ns,this),void 0):this},toggle:function(a,b,c){return a&&a.isDefaultPrevented()?this:(yb.toggle(this.qtip,!!b,c),void 0)},destroy:function(){this.qtip.tooltip.removeClass(zb),this.qtip._unbind(this.qtip.tooltip,this._ns),yb.toggle(this.qtip,E),delete this.qtip.elements.overlay}}),xb=R.modal=function(a){return new x(a,a.options.show.modal)},xb.sanitize=function(a){a.show&&("object"!=typeof a.show.modal?a.show.modal={on:!!a.show.modal}:"undefined"==typeof a.show.modal.on&&(a.show.modal.on=D))},y.modal_zindex=y.zindex-200,xb.initialize="render",B.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},d.extend(D,y.defaults,{show:{modal:{on:E,effect:D,blur:D,stealfocus:D,escape:D}}})})}(window,document);
5
+ //# sourceMappingURL=http://cdnjs.cloudflare.com/ajax/libs/qtip2/2.2.0//var/www/qtip2/build/tmp/tmp-11954r9wgiyo/jquery.qtip.min.map
admin/includes/tooltips/jquery.qtip.min.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"/var/www/qtip2/build/tmp/tmp-11954r9wgiyo/jquery.qtip.min.js","sources":["/var/www/qtip2/build/tmp/tmp-11954r9wgiyo/jquery.qtip.js"],"names":["window","document","undefined","factory","define","amd","jQuery","fn","qtip","$","QTip","target","options","id","attr","this","tooltip","NULL","elements","_id","NAMESPACE","timers","img","plugins","cache","event","disabled","FALSE","onTooltip","lastClass","rendered","destroyed","waiting","hiddenDuringWait","positioning","triggering","invalidOpt","a","type","invalidContent","c","isFunction","length","jquery","then","sanitizeOptions","opts","content","text","ajax","once","metadata","done","api","loading","deferred","extend","context","success","error","set","xhr","status","title","button","position","my","at","show","TRUE","ready","hide","style","classes","each","PLUGINS","sanitize","convertNotation","notation","obj","i","option","levels","split","pop","setCallback","args","category","rule","match","checks","RegExp","exec","push","apply","createWidgetClass","cls","WIDGET","concat","join","cloneEvent","pageX","pageY","relatedTarget","scrollX","pageXOffset","body","scrollLeft","documentElement","scrollY","pageYOffset","scrollTop","delay","callback","duration","setTimeout","proxy","call","showMethod","hasClass","CLASS_DISABLED","clearTimeout","toggle","hideMethod","ontoTooltip","closest","SELECTOR","ontoTarget","fixed","test","preventDefault","stopImmediatePropagation","e","inactiveMethod","inactive","repositionMethod","offsetWidth","reposition","delegate","selector","events","method","ns","QTIP","ATTR_ID","arguments","init","elem","posOptions","config","docBody","newTarget","metadata5","name","html5","data","parseJSON","defaults","container","solo","viewport","eq","CORNER","overwrite","ATTR_HAS","suppress","removeAttr","oldtitle","one","destroy","camel","s","charAt","toUpperCase","slice","vendorCss","prop","cur","val","ucProp","props","cssPrefixes","cssProps","css","intCss","Math","ceil","parseFloat","Tip","_ns","offset","size","width","height","Modal","PROTOTYPE","CHECKS","trackingBound","X","Y","WIDTH","HEIGHT","TOP","LEFT","BOTTOM","RIGHT","CENTER","FLIPINVERT","SHIFT","INACTIVE_EVENTS","CLASS_FIXED","CLASS_DEFAULT","CLASS_FOCUS","CLASS_HOVER","replaceSuffix","BROWSER","ie","v","div","createElement","innerHTML","getElementsByTagName","NaN","iOS","navigator","userAgent","replace","prototype","_when","deferreds","when","render","self","class","abbrev","tracking","adjust","mouse","role","aria-live","aria-atomic","aria-describedby","aria-hidden","toggleClass","appendTo","append","_createTitle","_updateTitle","_createButton","_updateContent","_setWidget","instance","initialize","_unassignEvents","_assignEvents","_trigger","immediate","process","stop","find","remove","end","removeData","_unbind","builtin","^id$","o","prev","nextid","new_id","^prerender","^content.text$","^content.attr$","^content.title$","_removeTitle","^content.button$","_updateButton","^content.title.(text|button)$","^position.(my|at)$","^position.container$","^show.ready$","^style.classes$","p","removeClass","addClass","^style.(width|height)","^style.widget|content.title","^style.def","^events.(render|show|move|hide|focus|blur)$","^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)","get","toLowerCase","result","precedance","string","rmove","rrender","value","previous","nodeType","_update","element","empty","display","visibility","html","_waitForContent","images","imagesLoaded","Deferred","resolve","promise","titlebar","widget","insertBefore","substr","effect","pluginCalculations","tooltipWidth","outerWidth","tooltipHeight","outerHeight","targetWidth","targetHeight","left","top","visible","isScroll","win","doc","ownerDocument","isArray","x","y","distance","origin","innerWidth","clientWidth","innerHeight","imagemap","is","svg","ownerSVGElement","adjustable","adjusted","isNaN","queue","next","opacity","removeAttribute","pos","scroll","scrolled","parentOffset","overflow","quirks","compatMode","parent","getBoundingClientRect","offsetParent","C","Corner","corner","forceY","f","invert","z","center","clone","state","add","has","identicalState","allow","after","contentOptions","animate","sameTarget","search","focus","bind","_storeMouse","not","Event","unbind","blur","autofocus","trigger","n","fadeTo","qtips","curIndex","parseInt","zIndex","newIndex","zindex","filter","disable","enable","isString","close","aria-label","prepend","click","on","def","_bind","targets","suffix","currentTarget","originalEvent","isDefaultPrevented","_bindEvents","showEvents","hideEvents","showTarget","hideTarget","toggleEvents","map","showIndex","inArray","splice","_assignInitialEvents","hoverIntent","trim","onTarget","prerender","containerTarget","viewportTarget","documentTarget","windowTarget","leave","nodeName","indexOf","enabled","isAncestor","parents","inactiveEvents","limit","abs","resize","special","pushStack","grep","newValue","command","returned","makeArray","timeStamp","isPlainObject","keepData","elems","func","old","ui","cleanData","triggerHandler","version","move","hidden","TIP","MARGIN","BORDER","COLOR","BG_COLOR","TRANSPARENT","IMPORTANT","HASCANVAS","getContext","INVALID","PIXEL_RATIO","devicePixelRatio","BACKING_STORE_RATIO","backingStorePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","SCALE","createVML","tag","tip","prependTo","lineJoin","miterLimit","save","stopPropagation","create","_swapDimensions","_resetDimensions","_useTitle","_parseCorner","_parseWidth","side","use","_parseRadius","_invalidColour","compare","_parseColours","borderSide","colorElem","color","_calculateSize","bigHyp","ratio","isCenter","base","pow","round","smallHyp","sqrt","hyp","border","reverse","_calculateTip","scale","width2","height2","tips","br","bl","tr","tl","tc","bc","rc","lc","lt","rt","lb","rb","_drawCoords","coords","beginPath","moveTo","lineTo","closePath","update","bigCoords","translate","newSize","inner","children","curSize","mimic","lineHeight","restore","clearRect","fillStyle","fill","coordsize","antialias","Number","$this","path","fillcolor","filled","stroked","opera","calculate","corners","userOffset","b","max","margin","bottom","right","shiftflip","direction","popposite","opposite","newCorner","shiftonly","xy","shift","horizontal","vertical","cornerTop","cornerLeft","user","^position.my|style.tip.(corner|mimic|border)$","^style.tip.(height|width)$","^content.title|style.(classes|widget)$","elemWidth","elemHeight","otherSide","side1","side2","lengthName","targetLength","elemLength","initialPos","mySide","atSide","isShift","myLength","atLength","sideOffset","viewportScroll","viewportOffset","containerStatic","containerOffset","overflow1","overflow2","viewportWidth","viewportHeight","min","newMy","newClass","methodX","methodY","polys","polygon","baseCoords","newWidth","newHeight","compareX","compareY","realX","realY","floor","rect","ax","ay","bx","by","_angles","ellipse","cx","cy","rx","ry","rxc","cos","PI","rys","sin","circle","r","area","imageOffset","len","shape","image","coordsString","coordsArray","rootWidth","rootHeight","mtx","transformed","viewBox","points","root","xScale","yScale","complex","getBBox","parentNode","strokeWidth2","baseVal","x1","y1","x2","y2","numberOfItems","getItem","createSVGPoint","getScreenCTM","matrixTransform","MODAL","OVERLAY","MODALCLASS","MODALSELECTOR","focusable","expr","mapName","isTabIndexNotNaN","href","focusInputs","blurElems","focusableElems","first","stealFocus","targetOnTop","current","onLast","prevState","mousedown","modal","escape","keyCode","stealfocus","visibleModals","detach","overlay","modal_zindex","oEvent","last","^show.modal.(on|blur)$"],"mappings":"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"}
admin/views/admin-widget.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Represents the admin view for Google Maps Builder widget.
4
+ * *
5
+ * @package Google_Maps_Builder
6
+ * @author Devin Walker <devin@wordimpress.com>
7
+ * @license GPL-2.0+
8
+ * @link http://wordimpress.com
9
+ * @copyright 2014 WordImpress, Devin Walker
10
+ */
11
+
12
+ ?>
13
+ <!-- Title -->
14
+ <p>
15
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Widget Title', $this->plugin_slug ); ?></label>
16
+ <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>" />
17
+ </p>
18
+
19
+
20
+ <!-- API Options -->
21
+ <p class="widget-api-option">
22
+ <label for="<?php echo $this->get_field_id( 'api_option' ); ?>"><?php _e( 'API Request Method:', $this->plugin_slug ); ?></label><br />
23
+ <span class="wpgp-method-span place-details-api-option-wrap">
24
+ <input type="radio" name="<?php echo $this->get_field_name( 'api_option' ); ?>" class="<?php echo $this->get_field_id( 'api_option' ); ?> " value="0" <?php checked( '0', $api_option ); ?>><span class="wpgp-method-label"><?php _e( 'Place Details', $this->plugin_slug ); ?></span><img src="<?php echo GMB_PLUGIN_URL . '/admin/assets/img/help.png' ?>" title="<?php _e( 'Google Place Details allows you to display more details about a particular establishment. This method returns more comprehensive information about the indicated place such as its complete address, phone number, user rating and reviews.', $this->plugin_slug ); ?>" class="tooltip-info" width="16" height="16" /><br />
25
+ </span>
26
+ <span class="wpgp-method-span place-search-api-option-wrap">
27
+ <input type="radio" name="<?php echo $this->get_field_name( 'api_option' ); ?>" class="<?php echo $this->get_field_id( 'api_option' ); ?> business-api-option" value="1" <?php checked( '1', $api_option ); ?>><span class="wpgp-method-label"><?php _e( 'Place Search', $this->plugin_slug ); ?></span><img src="<?php echo GMB_PLUGIN_URL . '/admin/assets/img/help.png' ?>" title="<?php _e( 'This option allows you to query for place information on a variety of categories, such as: establishments, prominent points of interest, geographic locations, and more. You can search for places either by proximity or a text string. A Place Search returns a list of Places along with summary information about each Place; additional information is available via a Place Details query.', $this->plugin_slug ); ?>" class="tooltip-info" width="16" height="16" />
28
+ </span>
29
+ </p>
30
+
31
+ <!-- Google Places Lookup Autocomplete Search Form -->
32
+ <div class="google-autocomplete-map-wrap" <?php if ( $api_option == '0' ) { ?> style="display:block;" <?php } ?>>
33
+ <input class="pac-input controls" type="text" placeholder="Enter a location">
34
+
35
+ <div class="map-canvas"></div>
36
+
37
+ <div class="type-selector controls">
38
+ <ul class="map-control-list clearfix">
39
+ <li>
40
+ <input type="radio" name="type" id="changetype-all" checked="checked">
41
+ <label for="changetype-all"><?php _e( 'All' ); ?></label>
42
+ </li>
43
+ <li>
44
+ <input type="radio" name="type" id="changetype-establishment">
45
+ <label for="changetype-establishment"><?php _e( 'Establishments' ); ?></label>
46
+ </li>
47
+ <li>
48
+ <input type="radio" name="type" id="changetype-geocode">
49
+ <label for="changetype-geocode"><?php _e( 'Geocodes' ); ?></label>
50
+ </li>
51
+ </ul>
52
+ </div>
53
+
54
+
55
+ <input class="widefat place-detail-reference" id="<?php echo $this->get_field_id( 'place_detail_reference' ); ?>" name="<?php echo $this->get_field_name( 'place_detail_reference' ); ?>" type="text" value="<?php echo $place_detail_reference; ?>" />
56
+
57
+ </div>
58
+
59
+ <div class="widget-footer">
60
+ <div class="powered-by-google"></div>
61
+ </div>
admin/views/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
admin/views/logo-svg-small.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * LOGO SVG
4
+ *
5
+ * @package Google_Maps_Builder
6
+ * @author Devin Walker <devin@wordimpress.com>
7
+ * @license GPL-2.0+
8
+ * @link http://wordimpress.com
9
+ * @copyright 2014 WordImpress, Devin Walker
10
+ */
11
+ ?>
12
+
13
+ <svg height="35px" id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="35px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="flat_x5F_8">
14
+ <g>
15
+ <path d="M424.574,447.998l-25.471-6.039l77.041-316.293c-11.028-18.652-24.314-35.824-39.56-51.053 l-19.13,78.383L202.053,101.92L226.582,1.405c-19.051,2.152-37.457,6.407-55.006,12.514L152.948,90.28L77.144,72.303 c-13.296,12.945-25.186,27.313-35.437,42.88l99.446,23.58L85.485,367.595l-67.161-15.896c8.636,21.324,20.039,41.22,33.805,59.239 l21.566,5.14l-3.812,15.668c12.955,13.675,27.366,25.967,43.053,36.515l9.862-40.541l245.086,58.11 C388.496,475.764,407.523,462.987,424.574,447.998z M190.26,150.403l215.405,51.075l-55.666,228.84l-215.405-51.081 L190.26,150.403z" style="fill:#FFF8A3;" />
16
+ <path d="M417.456,152.996l-40.345-9.564l-41.879,41.348l70.433,16.699l-55.666,228.84l-212.431-50.377 l-60.126,59.369c10.944,10.652,22.775,20.396,35.497,28.951l9.862-40.541l245.086,58.111 c20.608-10.068,39.637-22.846,56.688-37.834l-25.471-6.039l77.041-316.293c-9.802-16.58-21.396-31.982-34.558-45.895l-8.246,8.143 L417.456,152.996z" style="fill:#E1D78F;" />
17
+ <g>
18
+ <path d="M69.887,431.748l3.812-15.668l-21.566-5.141C57.67,418.198,63.612,425.135,69.887,431.748z" style="fill:#AAC26F;" />
19
+ <path d="M-0.344,255.718c0,33.956,6.664,66.331,18.67,95.981l67.161,15.896l55.668-228.832l-99.446-23.58 C15.153,155.528-0.344,203.8-0.344,255.718z" style="fill:#AAC26F;" />
20
+ <path d="M255.657-0.283c-9.836,0-19.527,0.611-29.074,1.688L202.054,101.92l215.402,51.075l19.13-78.382 C390.268,28.338,326.307-0.283,255.657-0.283z" style="fill:#AAC26F;" />
21
+ <path d="M152.949,90.28l18.628-76.361c-35.746,12.424-67.882,32.539-94.432,58.386L152.949,90.28z" style="fill:#AAC26F;" />
22
+ </g>
23
+ <polygon points="134.594,379.237 349.999,430.318 405.665,201.479 190.26,150.403 " style="fill:#6AAFDA;" />
24
+ <g>
25
+ <path d="M112.939,468.262c40.778,27.436,89.875,43.455,142.718,43.455 c40.263,0,78.341-9.322,112.229-25.885l-245.085-58.111L112.939,468.262z" style="fill:#5E9CC1;" />
26
+ <polygon points="405.665,201.479 335.232,184.779 137.568,379.941 349.999,430.318 " style="fill:#5E9CC1;" />
27
+ </g>
28
+ <path d="M511.656,255.718c0-47.491-12.975-91.925-35.512-130.052l-77.041,316.293l25.471,6.039 C477.936,401.082,511.656,332.359,511.656,255.718z" style="fill:#C6A963;" />
29
+ <path d="M497.996,113.431c0,48.554-67.83,190.112-89.042,190.112c-20.666,0-89.044-141.56-89.044-190.112 c0-48.554,39.865-87.915,89.044-87.915C458.131,25.516,497.996,64.877,497.996,113.431z" style="fill:#F05D4A;" />
30
+ <path d="M454.284,115.528c0-24.716-20.296-44.749-45.33-44.749c-25.033,0-45.33,20.033-45.33,44.749 c0,24.719,20.297,44.758,45.33,44.758C433.988,160.284,454.284,140.246,454.284,115.528z" style="fill:#BD4231;" />
31
+ </g>
32
+ </g>
33
+ <g id="Layer_1_1_" /></svg>
admin/views/logo-svg.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * LOGO SVG
4
+
5
+ *
6
+ * @package Google_Maps_Builder
7
+ * @author Devin Walker <devin@wordimpress.com>
8
+ * @license GPL-2.0+
9
+ * @link http://wordimpress.com
10
+ * @copyright 2014 WordImpress, Devin Walker
11
+ */
12
+ ?>
13
+
14
+ <svg height="200px" id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="200px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="flat_x5F_8">
15
+ <g>
16
+ <path d="M424.574,447.998l-25.471-6.039l77.041-316.293c-11.028-18.652-24.314-35.824-39.56-51.053 l-19.13,78.383L202.053,101.92L226.582,1.405c-19.051,2.152-37.457,6.407-55.006,12.514L152.948,90.28L77.144,72.303 c-13.296,12.945-25.186,27.313-35.437,42.88l99.446,23.58L85.485,367.595l-67.161-15.896c8.636,21.324,20.039,41.22,33.805,59.239 l21.566,5.14l-3.812,15.668c12.955,13.675,27.366,25.967,43.053,36.515l9.862-40.541l245.086,58.11 C388.496,475.764,407.523,462.987,424.574,447.998z M190.26,150.403l215.405,51.075l-55.666,228.84l-215.405-51.081 L190.26,150.403z" style="fill:#FFF8A3;" />
17
+ <path d="M417.456,152.996l-40.345-9.564l-41.879,41.348l70.433,16.699l-55.666,228.84l-212.431-50.377 l-60.126,59.369c10.944,10.652,22.775,20.396,35.497,28.951l9.862-40.541l245.086,58.111 c20.608-10.068,39.637-22.846,56.688-37.834l-25.471-6.039l77.041-316.293c-9.802-16.58-21.396-31.982-34.558-45.895l-8.246,8.143 L417.456,152.996z" style="fill:#E1D78F;" />
18
+ <g>
19
+ <path d="M69.887,431.748l3.812-15.668l-21.566-5.141C57.67,418.198,63.612,425.135,69.887,431.748z" style="fill:#AAC26F;" />
20
+ <path d="M-0.344,255.718c0,33.956,6.664,66.331,18.67,95.981l67.161,15.896l55.668-228.832l-99.446-23.58 C15.153,155.528-0.344,203.8-0.344,255.718z" style="fill:#AAC26F;" />
21
+ <path d="M255.657-0.283c-9.836,0-19.527,0.611-29.074,1.688L202.054,101.92l215.402,51.075l19.13-78.382 C390.268,28.338,326.307-0.283,255.657-0.283z" style="fill:#AAC26F;" />
22
+ <path d="M152.949,90.28l18.628-76.361c-35.746,12.424-67.882,32.539-94.432,58.386L152.949,90.28z" style="fill:#AAC26F;" />
23
+ </g>
24
+ <polygon points="134.594,379.237 349.999,430.318 405.665,201.479 190.26,150.403 " style="fill:#6AAFDA;" />
25
+ <g>
26
+ <path d="M112.939,468.262c40.778,27.436,89.875,43.455,142.718,43.455 c40.263,0,78.341-9.322,112.229-25.885l-245.085-58.111L112.939,468.262z" style="fill:#5E9CC1;" />
27
+ <polygon points="405.665,201.479 335.232,184.779 137.568,379.941 349.999,430.318 " style="fill:#5E9CC1;" />
28
+ </g>
29
+ <path d="M511.656,255.718c0-47.491-12.975-91.925-35.512-130.052l-77.041,316.293l25.471,6.039 C477.936,401.082,511.656,332.359,511.656,255.718z" style="fill:#C6A963;" />
30
+ <path d="M497.996,113.431c0,48.554-67.83,190.112-89.042,190.112c-20.666,0-89.044-141.56-89.044-190.112 c0-48.554,39.865-87.915,89.044-87.915C458.131,25.516,497.996,64.877,497.996,113.431z" style="fill:#F05D4A;" />
31
+ <path d="M454.284,115.528c0-24.716-20.296-44.749-45.33-44.749c-25.033,0-45.33,20.033-45.33,44.749 c0,24.719,20.297,44.758,45.33,44.758C433.988,160.284,454.284,140.246,454.284,115.528z" style="fill:#BD4231;" />
32
+ </g>
33
+ </g>
34
+ <g id="Layer_1_1_" /></svg>
admin/views/markers.php ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Markers
4
+ *
5
+ * @description: Appears in modal
6
+ * @since :
7
+ * @created : 4/29/14
8
+ */
9
+ ?>
10
+
11
+ <div id="marker-icon-modal" style="display:none;">
12
+
13
+ <div class="marker-description clear">
14
+ <p><?php _e( 'Customize your Google Maps markers by selecting a marker graphic and icon. Integration made possible from the excellent Maps Icon library.', $this->plugin_slug ); ?></p>
15
+ </div>
16
+
17
+ <div class="marker-row clear">
18
+ <h3><?php _e( 'Step 1: Select a Marker', $this->plugin_slug ); ?></h3>
19
+
20
+ <div class="marker-item" data-marker="MAP_PIN">
21
+ <div class="marker-svg">
22
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px" height="50px" viewBox="0 0 100 165" enable-background="new 0 0 100 165" xml:space="preserve"><path fill="#428BCA" d="M50,0C22.382,0,0,21.966,0,49.054C0,76.151,50,165,50,165s50-88.849,50-115.946C100,21.966,77.605,0,50,0z"></path>
23
+ </svg>
24
+ </div>
25
+ <div class="marker-description"><?php _e( 'Map Pin', $this->plugin_slug ); ?></div>
26
+ </div>
27
+
28
+ <div class="marker-item" data-marker="SQUARE_PIN">
29
+ <div class="marker-svg">
30
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px" height="50px" viewBox="0 0 100 120" enable-background="new 0 0 100 120" xml:space="preserve"><polygon fill="#428BCA" points="100,0 0,0 0,100 36.768,100 50.199,119.876 63.63,100 100,100 "></polygon></svg>
31
+ </div>
32
+ <div class="marker-description"><?php _e( 'Square Pin', $this->plugin_slug ); ?></div>
33
+ </div>
34
+ <div class="marker-item" data-marker="default">
35
+ <div class="marker-svg">
36
+ <img src="<?php echo GMB_PLUGIN_URL . '/public/assets/img/default-marker.png' ?>" class="default-marker" />
37
+ </div>
38
+ <div class="marker-description"><?php _e( 'Default', $this->plugin_slug ); ?></div>
39
+ </div>
40
+
41
+ </div>
42
+
43
+ <div class="marker-icon-color-wrap clear">
44
+
45
+ <div class="marker-color-picker-wrap"><input type="text" name="color" id="color" value="#428BCA" class="color-picker marker-color" />
46
+ </div>
47
+ <p class="color-desc"><?php _e( 'Customize the marker color?', $this->plugin_slug ); ?></p>
48
+
49
+ </div>
50
+
51
+
52
+ <div class="marker-icon-row clear">
53
+ <h3><?php _e( 'Step 2: Select a Marker Icon', $this->plugin_slug ); ?></h3>
54
+
55
+ <div class="icon">
56
+ <div class="icon-inner">
57
+ <span class="map-icon-art-gallery"></span>
58
+ art-gallery
59
+ </div>
60
+ </div>
61
+ <div class="icon">
62
+ <div class="icon-inner">
63
+ <span class="map-icon-campground"></span>
64
+ campground
65
+ </div>
66
+ </div>
67
+ <div class="icon">
68
+ <div class="icon-inner">
69
+ <span class="map-icon-bank"></span>
70
+ bank
71
+ </div>
72
+ </div>
73
+ <div class="icon">
74
+ <div class="icon-inner">
75
+ <span class="map-icon-hair-care"></span>
76
+ hair-care
77
+ </div>
78
+ </div>
79
+ <div class="icon">
80
+ <div class="icon-inner">
81
+ <span class="map-icon-gym"></span>
82
+ gym
83
+ </div>
84
+ </div>
85
+ <div class="icon">
86
+ <div class="icon-inner">
87
+ <span class="map-icon-point-of-interest"></span>
88
+ point-of-interest
89
+ </div>
90
+ </div>
91
+ <div class="icon">
92
+ <div class="icon-inner">
93
+ <span class="map-icon-post-box"></span>
94
+ post-box
95
+ </div>
96
+ </div>
97
+ <div class="icon">
98
+ <div class="icon-inner">
99
+ <span class="map-icon-post-office"></span>
100
+ post-office
101
+ </div>
102
+ </div>
103
+ <div class="icon">
104
+ <div class="icon-inner">
105
+ <span class="map-icon-university"></span>
106
+ university
107
+ </div>
108
+ </div>
109
+ <div class="icon">
110
+ <div class="icon-inner">
111
+ <span class="map-icon-beauty-salon"></span>
112
+ beauty-salon
113
+ </div>
114
+ </div>
115
+ <div class="icon">
116
+ <div class="icon-inner">
117
+ <span class="map-icon-atm"></span>
118
+ atm
119
+ </div>
120
+ </div>
121
+ <div class="icon">
122
+ <div class="icon-inner">
123
+ <span class="map-icon-rv-park"></span>
124
+ rv-park
125
+ </div>
126
+ </div>
127
+ <div class="icon">
128
+ <div class="icon-inner">
129
+ <span class="map-icon-school"></span>
130
+ school
131
+ </div>
132
+ </div>
133
+ <div class="icon">
134
+ <div class="icon-inner">
135
+ <span class="map-icon-library"></span>
136
+ library
137
+ </div>
138
+ </div>
139
+ <div class="icon">
140
+ <div class="icon-inner">
141
+ <span class="map-icon-spa"></span>
142
+ spa
143
+ </div>
144
+ </div>
145
+ <div class="icon">
146
+ <div class="icon-inner">
147
+ <span class="map-icon-route"></span>
148
+ route
149
+ </div>
150
+ </div>
151
+ <div class="icon">
152
+ <div class="icon-inner">
153
+ <span class="map-icon-postal-code"></span>
154
+ postal-code
155
+ </div>
156
+ </div>
157
+ <div class="icon">
158
+ <div class="icon-inner">
159
+ <span class="map-icon-stadium"></span>
160
+ stadium
161
+ </div>
162
+ </div>
163
+ <div class="icon">
164
+ <div class="icon-inner">
165
+ <span class="map-icon-postal-code-prefix"></span>
166
+ postal-code-prefix
167
+ </div>
168
+ </div>
169
+ <div class="icon">
170
+ <div class="icon-inner">
171
+ <span class="map-icon-museum"></span>
172
+ museum
173
+ </div>
174
+ </div>
175
+ <div class="icon">
176
+ <div class="icon-inner">
177
+ <span class="map-icon-finance"></span>
178
+ finance
179
+ </div>
180
+ </div>
181
+ <div class="icon">
182
+ <div class="icon-inner">
183
+ <span class="map-icon-natural-feature"></span>
184
+ natural-feature
185
+ </div>
186
+ </div>
187
+ <div class="icon">
188
+ <div class="icon-inner">
189
+ <span class="map-icon-funeral-home"></span>
190
+ funeral-home
191
+ </div>
192
+ </div>
193
+ <div class="icon">
194
+ <div class="icon-inner">
195
+ <span class="map-icon-cemetery"></span>
196
+ cemetery
197
+ </div>
198
+ </div>
199
+ <div class="icon">
200
+ <div class="icon-inner">
201
+ <span class="map-icon-park"></span>
202
+ park
203
+ </div>
204
+ </div>
205
+ <div class="icon">
206
+ <div class="icon-inner">
207
+ <span class="map-icon-lodging"></span>
208
+ lodging
209
+ </div>
210
+ </div>
211
+ </div>
212
+ <!--/.marker-icon-row -->
213
+
214
+ <div class="marker-label-color-wrap clear">
215
+ <div class="marker-color-picker-wrap"><input type="text" name="color" id="color" class="color-picker label-color" value="#444444" /></div>
216
+ <p class="color-desc"><?php _e( 'Customize the icon color?', $this->plugin_slug ); ?></p>
217
+ </div>
218
+
219
+ <div class="save-marker-icon clear">
220
+ <p class="save-text"><?php _e( 'Marker is ready to be set.', $this->plugin_slug ); ?></p>
221
+ <button class="button button-primary button-large save-marker-button" data-marker="" data-marker-color="#428BCA" data-label="" data-label-color="#FFFFFF" data-marker-index="">Set Marker</button>
222
+ </div>
223
+
224
+ </div>
admin/views/settings-page.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Represents the view for the administration dashboard.
4
+ *
5
+ * This includes the header, options, and other information that should provide
6
+ * The User Interface to the end user.
7
+ *
8
+ * @package Google_Maps_Builder
9
+ * @author Devin Walker <devin@wordimpress.com>
10
+ * @license GPL-2.0+
11
+ * @link http://wordimpress.com
12
+ * @copyright 2014 WordImpress, Devin Walker
13
+ */
14
+
15
+ ?>
16
+
17
+ <div class="wrap">
18
+
19
+ <?php global $current_user;
20
+ $user_id = $current_user->ID;
21
+ // Check that the user hasn't already clicked to ignore the welcome message and that they have appropriate permissions
22
+ if ( ! get_user_meta( $user_id, 'gmb_hide_welcome' ) && current_user_can( 'install_plugins' ) ) {
23
+ ?>
24
+ <div class="container welcome-header">
25
+ <div class="row">
26
+
27
+ <div class="col-md-9">
28
+ <h1 class="main-heading"><?php _e( 'Welcome to Google Maps Builder', $this->plugin_slug ); ?> <?php echo $this->meta['Version']; ?></h1>
29
+
30
+ <p class="main-subheading"><?php _e( 'Thanks for using Google Maps Builder', $this->plugin_slug ); ?> <?php echo $this->meta['Version']; ?>. <?php _e( 'To get started, read over the documentation, take a gander at the settings, and build yourself some maps! If you enjoy this plugin please consider telling a friend, following us or purchasing the Pro edition (coming soon!).', $this->plugin_slug ); ?></p>
31
+ <?php include( 'social-media.php' ); ?>
32
+
33
+ </div>
34
+
35
+ <div class="col-md-3">
36
+ <div class="logo-svg">
37
+ <?php include( 'logo-svg.php' ); ?>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+
43
+ <?php } ?>
44
+
45
+ <div class="logo-svg logo-svg-small pull-left" <?php echo (!get_user_meta( $user_id, 'gmb_hide_welcome') ?
46
+ 'style="display:none;"' : ''); ?>>
47
+ <div class="gmb-plugin-heading">Google Maps Builder <?php echo $this->meta['Version']; ?></div>
48
+ <?php include ('logo-svg-small.php'); ?>
49
+ </div>
50
+
51
+
52
+ <?php
53
+ /**
54
+ * Option tabs
55
+ *
56
+ * Better organize our options in tabs
57
+ *
58
+ * @see: http://code.tutsplus.com/tutorials/the-complete-guide-to-the-wordpress-settings-api-part-5-tabbed-navigation-for-your-settings-page--wp-24971
59
+ */
60
+ $active_tab = isset($_GET['tab']) ? $_GET['tab'] : 'map_options';
61
+ ?>
62
+ <h2 class="nav-tab-wrapper">
63
+ <a href="?post_type=google_maps&page=<?php echo self::$key; ?>" class="nav-tab <?php echo $active_tab == 'map_options' ? 'nav-tab-active' : ''; ?>"><?php _e('Map Options', $this->plugin_slug); ?></a>
64
+ <a href="?post_type=google_maps&page=<?php echo self::$key; ?>&tab=general_settings" class="nav-tab <?php echo $active_tab == 'general_settings' ? 'nav-tab-active' : ''; ?>"><?php _e('General Options', $this->plugin_slug); ?></a>
65
+ </h2>
66
+
67
+
68
+ <?php
69
+ /**
70
+ * Get the appropriate tab
71
+ */
72
+ switch ($active_tab) {
73
+ case 'map_options':
74
+ include ('tab-map-options.php');
75
+ break;
76
+ case 'general_settings':
77
+ include ('tab-general-settings.php');
78
+ break;
79
+ default :
80
+ include ('tab-map-options.php');
81
+ break;
82
+ }
83
+ ?>
84
+
85
+
86
+ </div>
admin/views/social-media.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="adminFacebook">
2
+ <div class="social-items-wrap">
3
+ <div class="fb-item-wrap">
4
+ <iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fpages%2FWordImpress%2F353658958080509&amp;send=false&amp;layout=button_count&amp;width=100&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21&amp;appId=220596284639969" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
5
+ </div>
6
+ <div class="twitter-item-wrap">
7
+ <a href="https://twitter.com/wordimpress" class="twitter-follow-button" data-show-count="false">Follow @wordimpress</a>
8
+ <script>!function ( d, s, id ) {
9
+ var js, fjs = d.getElementsByTagName( s )[0], p = /^http:/.test( d.location ) ? 'http' : 'https';
10
+ if ( !d.getElementById( id ) ) {
11
+ js = d.createElement( s );
12
+ js.id = id;
13
+ js.src = p + '://platform.twitter.com/widgets.js';
14
+ fjs.parentNode.insertBefore( js, fjs );
15
+ }
16
+ }( document, 'script', 'twitter-wjs' );</script>
17
+ </div>
18
+ <div class="google-plus">
19
+ <!-- Place this tag where you want the +1 button to render. -->
20
+ <div class="g-plusone" data-size="medium" data-annotation="inline" data-width="200" data-href="https://plus.google.com/117062083910623146392"></div>
21
+
22
+
23
+ <!-- Place this tag after the last +1 button tag. -->
24
+ <script type="text/javascript">
25
+ (function () {
26
+ var po = document.createElement( 'script' );
27
+ po.type = 'text/javascript';
28
+ po.async = true;
29
+ po.src = 'https://apis.google.com/js/plusone.js';
30
+ var s = document.getElementsByTagName( 'script' )[0];
31
+ s.parentNode.insertBefore( po, s );
32
+ })();
33
+ </script>
34
+ </div>
35
+ <!--/.google-plus -->
36
+ </div>
37
+ <!-- /.social-items-wrap -->
38
+
39
+ <div class="wordimpress-logo">
40
+ <a href="http://wordimpress.com" title="<?php _e( 'Visit the Developers site of Google Maps Builder', $this->plugin_slug ); ?>" target="_blank" class="logo-link"></a>
41
+ </div>
42
+
43
+ <a href="#" class="hide-welcome" title="<?php _e( 'Hide the Google Maps Builder Welcome Message', $this->plugin_slug ); ?>"><?php _e( 'Hide Welcome', $this->plugin_slug ); ?><span></span></a>
44
+
45
+ </div>
admin/views/tab-general-settings.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * General Settings: Represents the tab view for Google Maps Builder.
4
+ *
5
+ * @package Google_Maps_Builder
6
+ * @author Devin Walker <devin@wordimpress.com>
7
+ * @license GPL-2.0+
8
+ * @link http://wordimpress.com
9
+ * @copyright 2014 WordImpress, Devin Walker
10
+ */
11
+
12
+ ?>
13
+
14
+ <div class="container">
15
+ <div class="row">
16
+ <div class="col-md-10">
17
+
18
+ <h3><?php _e( 'General Settings', $this->plugin_slug ); ?></h3>
19
+
20
+ <p><?php _e( 'The following settings allow you to customize how Google Maps Builder functions within WordPress.', $this->plugin_slug ); ?></p>
21
+
22
+ <?php cmb_metabox_form( $this->general_option_fields(), self::$key ); ?>
23
+ </div>
24
+ <div class="col-md-2">
25
+
26
+ </div>
27
+ </div>
28
+ </div>
admin/views/tab-map-options.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Represents the tab view for Google Places widget.
4
+ * *
5
+ * @package Google_Maps_Builder
6
+ * @author Devin Walker <devin@wordimpress.com>
7
+ * @license GPL-2.0+
8
+ * @link http://wordimpress.com
9
+ * @copyright 2014 WordImpress, Devin Walker
10
+ */
11
+
12
+ ?>
13
+
14
+ <div class="container">
15
+ <div class="row">
16
+
17
+ <div class="col-md-10">
18
+
19
+ <h3><?php _e('Default Map Settings', $this->plugin_slug); ?></h3>
20
+ <p><?php _e('The following settings change the default map options that display when created a new map. <strong>Many more options coming soon!</strong>', $this->plugin_slug); ?></p>
21
+ <?php
22
+
23
+ ?>
24
+ <?php cmb_metabox_form( $this->map_option_fields(), self::$key ); ?>
25
+ </div>
26
+
27
+ <div class="col-md-2">
28
+
29
+ </div>
30
+ </div>
31
+ </div>
google-maps-builder.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Google Maps Builder
4
+ *
5
+ * @package Google_Maps_Builder
6
+ * @author Devin Walker <devin@wordimpress.com>
7
+ * @license GPL-2.0+
8
+ * @link http://wordimpress.com
9
+ * @copyright 2014 WordImpress, Devin Walker
10
+ *
11
+ * @wordpress-google-places
12
+ * Plugin Name: Google Maps Builder
13
+ * Plugin URI: http://wordimpress.com/
14
+ * Description: Create stylish and powerful Google Maps quickly and easily.
15
+ * Version: 1.0.0
16
+ * Author: dlocc, wordimpress
17
+ * Author URI: http://wordimpress.com/
18
+ * Text Domain: google-maps-builder
19
+ * License: GPL-2.0+
20
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
21
+ * Domain Path: /languages
22
+ */
23
+
24
+ // If this file is called directly, abort.
25
+ if ( ! defined( 'WPINC' ) ) {
26
+ die;
27
+ }
28
+ // Define Constants
29
+ define( 'GMB_PLUGIN_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
30
+ define( 'GMB_PLUGIN_URL', plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) );
31
+ define( 'GMB_PLUGIN_BASE', plugin_basename( __FILE__ ) );
32
+ define( 'GMB_DEBUG', false );
33
+
34
+ /*----------------------------------------------------------------------------*
35
+ * Public-Facing Functionality
36
+ *----------------------------------------------------------------------------*/
37
+ require_once( plugin_dir_path( __FILE__ ) . 'public/class-wordpress-google-maps.php' );
38
+ //require_once( plugin_dir_path( __FILE__ ) . 'public/class-wordpress-google-maps-widget.php' );
39
+ require_once( plugin_dir_path( __FILE__ ) . 'admin/class-wordpress-google-maps-settings.php' );
40
+ require_once( plugin_dir_path( __FILE__ ) . 'public/class-wordpress-google-maps-engine.php' );
41
+
42
+
43
+ /*
44
+ * Register hooks that are fired when the plugin is activated or deactivated.
45
+ * When the plugin is deleted, the uninstall.php file is loaded.
46
+ */
47
+ register_activation_hook( __FILE__, array( 'Google_Maps_Builder', 'activate' ) );
48
+ register_deactivation_hook( __FILE__, array( 'Google_Maps_Builder', 'deactivate' ) );
49
+
50
+ /*
51
+ * Get instances of Google_Maps_Builder class
52
+ */
53
+ add_action( 'plugins_loaded', array( 'Google_Maps_Builder', 'get_instance' ) );
54
+ add_action( 'plugins_loaded', array( 'Google_Maps_Builder_Engine', 'get_instance' ) );
55
+
56
+ /*----------------------------------------------------------------------------*
57
+ * Dashboard and Administrative Functionality
58
+ *----------------------------------------------------------------------------*/
59
+ if ( is_admin() ) {
60
+
61
+ require_once( plugin_dir_path( __FILE__ ) . 'admin/class-wordpress-google-maps-admin.php' );
62
+ add_action( 'plugins_loaded', array( 'Google_Maps_Builder_Admin', 'get_instance' ) );
63
+
64
+ }
includes/assets/css/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
includes/assets/img/loading.GIF ADDED
Binary file
includes/assets/img/review_stars.png ADDED
Binary file
includes/assets/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
includes/assets/js/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
includes/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
includes/map-icons/README.md ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Map-Icons
2
+ =========
3
+
4
+ Version 2.1
5
+
6
+ Website: <http://map-icons.com/>
7
+
8
+ Demo: <http://map-icons.com/demo.html>
9
+
10
+ ##Summary
11
+
12
+ Map Icons is an icon font for use with Google Maps API and Google Places API using SVG markers and icon labels
13
+
14
+ Map Icons makes [Google Maps Markers](https://developers.google.com/maps/documentation/javascript/reference#Marker) dynamic with control over shape, color, size, and icon easily changed using options in the marker object as well as simple [SVG Notation](http://www.w3.org/TR/SVG/paths.html#PathData) and CSS.
15
+
16
+ ##Markers
17
+
18
+ * MAP_PIN
19
+ * SQUARE_PIN
20
+ * SHEILD
21
+ * ROUTE
22
+ * ROUNDED
23
+
24
+ ##Usage
25
+ Map Icons extends the [Google Maps Marker](https://developers.google.com/maps/documentation/javascript/reference#Marker) Object to enable either an image or SVG marker to be used with the icon placed on top as a label.
26
+
27
+ ###Creating a Marker
28
+
29
+ ```
30
+ var marker = new Marker({
31
+ map: map,
32
+ title: 'Map Icons',
33
+ position: userLocation,
34
+ zIndex: 9,
35
+ icon: {
36
+ path: MAP_PIN,
37
+ fillColor: '#0E77E9',
38
+ fillOpacity: 1,
39
+ strokeColor: '',
40
+ strokeWeight: 0,
41
+ scale: 1/2
42
+ },
43
+ label: '<i class="map-icon-parking"></i>'
44
+ });
45
+ ```
46
+
47
+ ###Styling the Icon
48
+ ```
49
+ .marker-label,
50
+ .marker-icon {
51
+ z-index: 99;
52
+ position: absolute;
53
+ display: block;
54
+ margin-top: -50px;
55
+ margin-left: -25px;
56
+ width: 50px;
57
+ height: 50px;
58
+ font-size: 30px !important;
59
+ text-align: center;
60
+ color: #FFFFFF;
61
+ white-space: nowrap;
62
+ }
63
+ ```
64
+
65
+ ##Changelog
66
+
67
+ #### Version 2.1
68
+
69
+ * Changed icon- prefix to map-icon-
70
+ * Added ROUNDED marker
71
+ * Fixed SVG Markers to center on LatLng
72
+
73
+ #### Version 2.0
74
+
75
+ * Added Activity Icons
76
+ * Fix Marker Docs with SVG Notation
77
+
78
+ #### Version 1.2
79
+
80
+ * Fixed Icons to be Pixel Grid Aligned
81
+ * Added User Interface Icons
82
+ * Added Marker Icons
83
+
84
+ #### Version 1.1
85
+
86
+ * Added Marker Shapes
87
+
88
+ #### Version 1.0
89
+
90
+ * Initial Commit
91
+
92
+ ##Author
93
+
94
+ Email: <scott@map-icons.com>
95
+
96
+ Twitter: [@scottdejonge](http://twitter.com/scottdejonge)
97
+
98
+ GitHub: <https://github.com/scottdejonge>
99
+
100
+
101
+ ##License
102
+ ###Font License
103
+
104
+ Applies to all desktop and webfont files in the following directory: `map-icon/font/`
105
+
106
+ Map Icons licensed under [SIL OFL 1.1](http://scripts.sil.org/OFL)
107
+
108
+ ###Code License
109
+
110
+ Applies to code inside: `map-icons.css`, `map-icons.js` and `map-icons-min.js`.
111
+
112
+ Code licensed under [MIT License](http://opensource.org/licenses/mit-license.html)
113
+
114
+ ###Documentation License
115
+
116
+ Applies to all Map Icons project files that are not a part of the Font or Code licenses.
117
+
118
+ Documentation licensed under [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)
includes/map-icons/css/map-icons.css ADDED
@@ -0,0 +1,568 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'map-icons';
3
+ src:url('../fonts/map-icons.eot');
4
+ src:url('../fonts/map-icons.eot?#iefix') format('embedded-opentype'),
5
+ url('../fonts/map-icons.woff') format('woff'),
6
+ url('../fonts/map-icons.ttf') format('truetype'),
7
+ url('../fonts/map-icons.svg#map-icons') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+
12
+ /* Use the following CSS code if you want to use data attributes for inserting your icons */
13
+ [data-icon]:before {
14
+ font-family: 'map-icons';
15
+ content: attr(data-icon);
16
+ speak: none;
17
+ font-weight: normal;
18
+ font-variant: normal;
19
+ text-transform: none;
20
+ line-height: 1;
21
+ -webkit-font-smoothing: antialiased;
22
+ -moz-osx-font-smoothing: grayscale;
23
+ }
24
+
25
+ /* Use the following CSS code if you want to have a class per icon */
26
+ /*
27
+ Instead of a list of all class selectors,
28
+ you can use the generic selector below, but it's slower:
29
+ [class*="map-icon-"] {
30
+ */
31
+ .map-icon-map-pin, .map-icon-expand, .map-icon-fullscreen, .map-icon-square-pin, .map-icon-route-pin, .map-icon-sheild, .map-icon-liquor-store, .map-icon-bicycle-store, .map-icon-hardware-store, .map-icon-insurance-agency, .map-icon-lawyer, .map-icon-real-estate-agency, .map-icon-art-gallery, .map-icon-campground, .map-icon-bakery, .map-icon-bar, .map-icon-amusement-park, .map-icon-aquarium, .map-icon-airport, .map-icon-bank, .map-icon-car-rental, .map-icon-car-dealer, .map-icon-hospital, .map-icon-hair-care, .map-icon-gym, .map-icon-grocery-or-supermarket, .map-icon-general-contractor, .map-icon-pharmacy, .map-icon-point-of-interest, .map-icon-political, .map-icon-post-box, .map-icon-health, .map-icon-post-office, .map-icon-real-estate-agency-copy, .map-icon-hindu-temple, .map-icon-restaurant, .map-icon-female, .map-icon-male, .map-icon-zoo, .map-icon-veterinary-care, .map-icon-car-repair, .map-icon-university, .map-icon-travel-agency, .map-icon-transit-station, .map-icon-beauty-salon, .map-icon-electronics-store, .map-icon-search, .map-icon-zoom-out-alt, .map-icon-movie-rental, .map-icon-atm, .map-icon-jewelry-store, .map-icon-car-wash, .map-icon-unisex, .map-icon-rv-park, .map-icon-school, .map-icon-clothing-store, .map-icon-laundry, .map-icon-casino, .map-icon-place-of-worship, .map-icon-furniture-store, .map-icon-zoom-in-alt, .map-icon-zoom-in, .map-icon-department-store, .map-icon-fire-station, .map-icon-church, .map-icon-library, .map-icon-shopping-mall, .map-icon-local-government, .map-icon-spa, .map-icon-convenience-store, .map-icon-police, .map-icon-route, .map-icon-zoom-out, .map-icon-location-arrow, .map-icon-postal-code, .map-icon-locksmith, .map-icon-doctor, .map-icon-mosque, .map-icon-stadium, .map-icon-storage, .map-icon-movie-theater, .map-icon-electrician, .map-icon-moving-company, .map-icon-postal-code-prefix, .map-icon-crosshairs, .map-icon-compass, .map-icon-dentist, .map-icon-plumber, .map-icon-museum, .map-icon-finance, .map-icon-parking, .map-icon-courthouse, .map-icon-accounting, .map-icon-store, .map-icon-subway-station, .map-icon-natural-feature, .map-icon-florist, .map-icon-food, .map-icon-night-club, .map-icon-synagogue, .map-icon-taxi-stand, .map-icon-painter, .map-icon-train-station, .map-icon-pet-store, .map-icon-gas-station, .map-icon-funeral-home, .map-icon-cemetery, .map-icon-bowling-alley, .map-icon-roofing-contractor, .map-icon-physiotherapist, .map-icon-embassy, .map-icon-city-hall, .map-icon-bus-station, .map-icon-park, .map-icon-lodging, .map-icon-toilet, .map-icon-circle, .map-icon-square-rounded, .map-icon-square, .map-icon-book-store, .map-icon-cafe, .map-icon-wheelchair, .map-icon-volume-control-telephone, .map-icon-sign-language, .map-icon-low-vision-access, .map-icon-open-captioning, .map-icon-closed-captioning, .map-icon-braille, .map-icon-audio-description, .map-icon-assistive-listening-system, .map-icon-abseiling, .map-icon-tennis, .map-icon-skateboarding, .map-icon-playground, .map-icon-inline-skating, .map-icon-hang-gliding, .map-icon-climbing, .map-icon-baseball, .map-icon-archery, .map-icon-wind-surfing, .map-icon-scuba-diving, .map-icon-sailing, .map-icon-marina, .map-icon-canoe, .map-icon-boat-tour, .map-icon-boat-ramp, .map-icon-swimming, .map-icon-whale-watching, .map-icon-waterskiing, .map-icon-surfing, .map-icon-rafting, .map-icon-kayaking, .map-icon-jet-skiing, .map-icon-fishing-pier, .map-icon-fish-cleaning, .map-icon-diving, .map-icon-boating, .map-icon-fishing, .map-icon-cross-country-skiing, .map-icon-skiing, .map-icon-snowmobile, .map-icon-snowboarding, .map-icon-snow, .map-icon-snow-shoeing, .map-icon-sledding, .map-icon-ski-jumping, .map-icon-ice-skating, .map-icon-ice-fishing, .map-icon-chairlift, .map-icon-golf, .map-icon-horse-riding, .map-icon-motobike-trail, .map-icon-trail-walking, .map-icon-viewing, .map-icon-walking, .map-icon-bicycling {
32
+ font-family: 'map-icons';
33
+ speak: none;
34
+ font-style: normal;
35
+ font-weight: normal;
36
+ font-variant: normal;
37
+ text-transform: none;
38
+ line-height: 1;
39
+ -webkit-font-smoothing: antialiased;
40
+ }
41
+ .map-icon-map-pin:before {
42
+ content: "\e000";
43
+ }
44
+ .map-icon-expand:before {
45
+ content: "\e001";
46
+ }
47
+ .map-icon-fullscreen:before {
48
+ content: "\e002";
49
+ }
50
+ .map-icon-square-pin:before {
51
+ content: "\e003";
52
+ }
53
+ .map-icon-route-pin:before {
54
+ content: "\e004";
55
+ }
56
+ .map-icon-sheild:before {
57
+ content: "\e005";
58
+ }
59
+ .map-icon-liquor-store:before {
60
+ content: "\e006";
61
+ }
62
+ .map-icon-bicycle-store:before {
63
+ content: "\e007";
64
+ }
65
+ .map-icon-hardware-store:before {
66
+ content: "\e008";
67
+ }
68
+ .map-icon-insurance-agency:before {
69
+ content: "\e009";
70
+ }
71
+ .map-icon-lawyer:before {
72
+ content: "\e00a";
73
+ }
74
+ .map-icon-real-estate-agency:before {
75
+ content: "\e00b";
76
+ }
77
+ .map-icon-art-gallery:before {
78
+ content: "\e00c";
79
+ }
80
+ .map-icon-campground:before {
81
+ content: "\e00d";
82
+ }
83
+ .map-icon-bakery:before {
84
+ content: "\e00e";
85
+ }
86
+ .map-icon-bar:before {
87
+ content: "\e00f";
88
+ }
89
+ .map-icon-amusement-park:before {
90
+ content: "\e010";
91
+ }
92
+ .map-icon-aquarium:before {
93
+ content: "\e011";
94
+ }
95
+ .map-icon-airport:before {
96
+ content: "\e012";
97
+ }
98
+ .map-icon-bank:before {
99
+ content: "\e013";
100
+ }
101
+ .map-icon-car-rental:before {
102
+ content: "\e016";
103
+ }
104
+ .map-icon-car-dealer:before {
105
+ content: "\e017";
106
+ }
107
+ .map-icon-hospital:before {
108
+ content: "\e018";
109
+ }
110
+ .map-icon-hair-care:before {
111
+ content: "\e019";
112
+ }
113
+ .map-icon-gym:before {
114
+ content: "\e01a";
115
+ }
116
+ .map-icon-grocery-or-supermarket:before {
117
+ content: "\e01b";
118
+ }
119
+ .map-icon-general-contractor:before {
120
+ content: "\e01c";
121
+ }
122
+ .map-icon-pharmacy:before {
123
+ content: "\e01d";
124
+ }
125
+ .map-icon-point-of-interest:before {
126
+ content: "\e01e";
127
+ }
128
+ .map-icon-political:before {
129
+ content: "\e01f";
130
+ }
131
+ .map-icon-post-box:before {
132
+ content: "\e020";
133
+ }
134
+ .map-icon-health:before {
135
+ content: "\e021";
136
+ }
137
+ .map-icon-post-office:before {
138
+ content: "\e022";
139
+ }
140
+ .map-icon-real-estate-agency-copy:before {
141
+ content: "\e023";
142
+ }
143
+ .map-icon-hindu-temple:before {
144
+ content: "\e024";
145
+ }
146
+ .map-icon-restaurant:before {
147
+ content: "\e025";
148
+ }
149
+ .map-icon-female:before {
150
+ content: "\e026";
151
+ }
152
+ .map-icon-male:before {
153
+ content: "\e027";
154
+ }
155
+ .map-icon-zoo:before {
156
+ content: "\e028";
157
+ }
158
+ .map-icon-veterinary-care:before {
159
+ content: "\e029";
160
+ }
161
+ .map-icon-car-repair:before {
162
+ content: "\e02a";
163
+ }
164
+ .map-icon-university:before {
165
+ content: "\e02b";
166
+ }
167
+ .map-icon-travel-agency:before {
168
+ content: "\e02c";
169
+ }
170
+ .map-icon-transit-station:before {
171
+ content: "\e02d";
172
+ }
173
+ .map-icon-beauty-salon:before {
174
+ content: "\e02e";
175
+ }
176
+ .map-icon-electronics-store:before {
177
+ content: "\e02f";
178
+ }
179
+ .map-icon-search:before {
180
+ content: "\e030";
181
+ }
182
+ .map-icon-zoom-out-alt:before {
183
+ content: "\e031";
184
+ }
185
+ .map-icon-movie-rental:before {
186
+ content: "\e032";
187
+ }
188
+ .map-icon-atm:before {
189
+ content: "\e033";
190
+ }
191
+ .map-icon-jewelry-store:before {
192
+ content: "\e034";
193
+ }
194
+ .map-icon-car-wash:before {
195
+ content: "\e035";
196
+ }
197
+ .map-icon-unisex:before {
198
+ content: "\e036";
199
+ }
200
+ .map-icon-rv-park:before {
201
+ content: "\e037";
202
+ }
203
+ .map-icon-school:before {
204
+ content: "\e038";
205
+ }
206
+ .map-icon-clothing-store:before {
207
+ content: "\e039";
208
+ }
209
+ .map-icon-laundry:before {
210
+ content: "\e03a";
211
+ }
212
+ .map-icon-casino:before {
213
+ content: "\e03b";
214
+ }
215
+ .map-icon-place-of-worship:before {
216
+ content: "\e03c";
217
+ }
218
+ .map-icon-furniture-store:before {
219
+ content: "\e03d";
220
+ }
221
+ .map-icon-zoom-in-alt:before {
222
+ content: "\e03e";
223
+ }
224
+ .map-icon-zoom-in:before {
225
+ content: "\e03f";
226
+ }
227
+ .map-icon-department-store:before {
228
+ content: "\e040";
229
+ }
230
+ .map-icon-fire-station:before {
231
+ content: "\e041";
232
+ }
233
+ .map-icon-church:before {
234
+ content: "\e042";
235
+ }
236
+ .map-icon-library:before {
237
+ content: "\e043";
238
+ }
239
+ .map-icon-shopping-mall:before {
240
+ content: "\e044";
241
+ }
242
+ .map-icon-local-government:before {
243
+ content: "\e045";
244
+ }
245
+ .map-icon-spa:before {
246
+ content: "\e046";
247
+ }
248
+ .map-icon-convenience-store:before {
249
+ content: "\e047";
250
+ }
251
+ .map-icon-police:before {
252
+ content: "\e048";
253
+ }
254
+ .map-icon-route:before {
255
+ content: "\e049";
256
+ }
257
+ .map-icon-zoom-out:before {
258
+ content: "\e04a";
259
+ }
260
+ .map-icon-location-arrow:before {
261
+ content: "\e04b";
262
+ }
263
+ .map-icon-postal-code:before {
264
+ content: "\e04c";
265
+ }
266
+ .map-icon-locksmith:before {
267
+ content: "\e04d";
268
+ }
269
+ .map-icon-doctor:before {
270
+ content: "\e04e";
271
+ }
272
+ .map-icon-mosque:before {
273
+ content: "\e04f";
274
+ }
275
+ .map-icon-stadium:before {
276
+ content: "\e050";
277
+ }
278
+ .map-icon-storage:before {
279
+ content: "\e051";
280
+ }
281
+ .map-icon-movie-theater:before {
282
+ content: "\e052";
283
+ }
284
+ .map-icon-electrician:before {
285
+ content: "\e053";
286
+ }
287
+ .map-icon-moving-company:before {
288
+ content: "\e054";
289
+ }
290
+ .map-icon-postal-code-prefix:before {
291
+ content: "\e055";
292
+ }
293
+ .map-icon-crosshairs:before {
294
+ content: "\e056";
295
+ }
296
+ .map-icon-compass:before {
297
+ content: "\e057";
298
+ }
299
+ .map-icon-dentist:before {
300
+ content: "\e058";
301
+ }
302
+ .map-icon-plumber:before {
303
+ content: "\e059";
304
+ }
305
+ .map-icon-museum:before {
306
+ content: "\e05b";
307
+ }
308
+ .map-icon-finance:before {
309
+ content: "\e05a";
310
+ }
311
+ .map-icon-parking:before {
312
+ content: "\e05c";
313
+ }
314
+ .map-icon-courthouse:before {
315
+ content: "\e05d";
316
+ }
317
+ .map-icon-accounting:before {
318
+ content: "\e05e";
319
+ }
320
+ .map-icon-store:before {
321
+ content: "\e05f";
322
+ }
323
+ .map-icon-subway-station:before {
324
+ content: "\e060";
325
+ }
326
+ .map-icon-natural-feature:before {
327
+ content: "\e061";
328
+ }
329
+ .map-icon-florist:before {
330
+ content: "\e062";
331
+ }
332
+ .map-icon-food:before {
333
+ content: "\e063";
334
+ }
335
+ .map-icon-night-club:before {
336
+ content: "\e064";
337
+ }
338
+ .map-icon-synagogue:before {
339
+ content: "\e065";
340
+ }
341
+ .map-icon-taxi-stand:before {
342
+ content: "\e066";
343
+ }
344
+ .map-icon-painter:before {
345
+ content: "\e067";
346
+ }
347
+ .map-icon-train-station:before {
348
+ content: "\e068";
349
+ }
350
+ .map-icon-pet-store:before {
351
+ content: "\e069";
352
+ }
353
+ .map-icon-gas-station:before {
354
+ content: "\e06a";
355
+ }
356
+ .map-icon-funeral-home:before {
357
+ content: "\e06b";
358
+ }
359
+ .map-icon-cemetery:before {
360
+ content: "\e06c";
361
+ }
362
+ .map-icon-bowling-alley:before {
363
+ content: "\e06d";
364
+ }
365
+ .map-icon-roofing-contractor:before {
366
+ content: "\e06e";
367
+ }
368
+ .map-icon-physiotherapist:before {
369
+ content: "\e06f";
370
+ }
371
+ .map-icon-embassy:before {
372
+ content: "\e070";
373
+ }
374
+ .map-icon-city-hall:before {
375
+ content: "\e071";
376
+ }
377
+ .map-icon-bus-station:before {
378
+ content: "\e072";
379
+ }
380
+ .map-icon-park:before {
381
+ content: "\e073";
382
+ }
383
+ .map-icon-lodging:before {
384
+ content: "\e074";
385
+ }
386
+ .map-icon-toilet:before {
387
+ content: "\e075";
388
+ }
389
+ .map-icon-circle:before {
390
+ content: "\e076";
391
+ }
392
+ .map-icon-square-rounded:before {
393
+ content: "\e077";
394
+ }
395
+ .map-icon-square:before {
396
+ content: "\e078";
397
+ }
398
+ .map-icon-book-store:before {
399
+ content: "\e014";
400
+ }
401
+ .map-icon-cafe:before {
402
+ content: "\e015";
403
+ }
404
+ .map-icon-wheelchair:before {
405
+ content: "\e079";
406
+ }
407
+ .map-icon-volume-control-telephone:before {
408
+ content: "\e07a";
409
+ }
410
+ .map-icon-sign-language:before {
411
+ content: "\e07b";
412
+ }
413
+ .map-icon-low-vision-access:before {
414
+ content: "\e07c";
415
+ }
416
+ .map-icon-open-captioning:before {
417
+ content: "\e07d";
418
+ }
419
+ .map-icon-closed-captioning:before {
420
+ content: "\e07e";
421
+ }
422
+ .map-icon-braille:before {
423
+ content: "\e07f";
424
+ }
425
+ .map-icon-audio-description:before {
426
+ content: "\e080";
427
+ }
428
+ .map-icon-assistive-listening-system:before {
429
+ content: "\e081";
430
+ }
431
+ .map-icon-abseiling:before {
432
+ content: "\e082";
433
+ }
434
+ .map-icon-tennis:before {
435
+ content: "\e083";
436
+ }
437
+ .map-icon-skateboarding:before {
438
+ content: "\e084";
439
+ }
440
+ .map-icon-playground:before {
441
+ content: "\e085";
442
+ }
443
+ .map-icon-inline-skating:before {
444
+ content: "\e086";
445
+ }
446
+ .map-icon-hang-gliding:before {
447
+ content: "\e087";
448
+ }
449
+ .map-icon-climbing:before {
450
+ content: "\e088";
451
+ }
452
+ .map-icon-baseball:before {
453
+ content: "\e089";
454
+ }
455
+ .map-icon-archery:before {
456
+ content: "\e08a";
457
+ }
458
+ .map-icon-wind-surfing:before {
459
+ content: "\e08b";
460
+ }
461
+ .map-icon-scuba-diving:before {
462
+ content: "\e08c";
463
+ }
464
+ .map-icon-sailing:before {
465
+ content: "\e08d";
466
+ }
467
+ .map-icon-marina:before {
468
+ content: "\e08e";
469
+ }
470
+ .map-icon-canoe:before {
471
+ content: "\e08f";
472
+ }
473
+ .map-icon-boat-tour:before {
474
+ content: "\e090";
475
+ }
476
+ .map-icon-boat-ramp:before {
477
+ content: "\e091";
478
+ }
479
+ .map-icon-swimming:before {
480
+ content: "\e092";
481
+ }
482
+ .map-icon-whale-watching:before {
483
+ content: "\e093";
484
+ }
485
+ .map-icon-waterskiing:before {
486
+ content: "\e094";
487
+ }
488
+ .map-icon-surfing:before {
489
+ content: "\e095";
490
+ }
491
+ .map-icon-rafting:before {
492
+ content: "\e096";
493
+ }
494
+ .map-icon-kayaking:before {
495
+ content: "\e097";
496
+ }
497
+ .map-icon-jet-skiing:before {
498
+ content: "\e099";
499
+ }
500
+ .map-icon-fishing-pier:before {
501
+ content: "\e09a";
502
+ }
503
+ .map-icon-fish-cleaning:before {
504
+ content: "\e09b";
505
+ }
506
+ .map-icon-diving:before {
507
+ content: "\e09c";
508
+ }
509
+ .map-icon-boating:before {
510
+ content: "\e09d";
511
+ }
512
+ .map-icon-fishing:before {
513
+ content: "\e098";
514
+ }
515
+ .map-icon-cross-country-skiing:before {
516
+ content: "\e09e";
517
+ }
518
+ .map-icon-skiing:before {
519
+ content: "\e09f";
520
+ }
521
+ .map-icon-snowmobile:before {
522
+ content: "\e0a0";
523
+ }
524
+ .map-icon-snowboarding:before {
525
+ content: "\e0a1";
526
+ }
527
+ .map-icon-snow:before {
528
+ content: "\e0a2";
529
+ }
530
+ .map-icon-snow-shoeing:before {
531
+ content: "\e0a3";
532
+ }
533
+ .map-icon-sledding:before {
534
+ content: "\e0a4";
535
+ }
536
+ .map-icon-ski-jumping:before {
537
+ content: "\e0a5";
538
+ }
539
+ .map-icon-ice-skating:before {
540
+ content: "\e0a6";
541
+ }
542
+ .map-icon-ice-fishing:before {
543
+ content: "\e0a7";
544
+ }
545
+ .map-icon-chairlift:before {
546
+ content: "\e0a8";
547
+ }
548
+ .map-icon-golf:before {
549
+ content: "\e0a9";
550
+ }
551
+ .map-icon-horse-riding:before {
552
+ content: "\e0aa";
553
+ }
554
+ .map-icon-motobike-trail:before {
555
+ content: "\e0ab";
556
+ }
557
+ .map-icon-trail-walking:before {
558
+ content: "\e0ac";
559
+ }
560
+ .map-icon-viewing:before {
561
+ content: "\e0ad";
562
+ }
563
+ .map-icon-walking:before {
564
+ content: "\e0ae";
565
+ }
566
+ .map-icon-bicycling:before {
567
+ content: "\e0af";
568
+ }
includes/map-icons/demo.html ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
5
+ <meta charset="utf-8">
6
+ <title>Map Icons Demo</title>
7
+ <link rel="shortcut icon" href="images/favicon.ico" />
8
+ <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
9
+ <link rel="stylesheet" type="text/css" href="css/map-icons.css" />
10
+ <script src="js/map-icons.js"></script>
11
+ <style>
12
+ body, html {
13
+ width: 100%;
14
+ height: 100%;
15
+ margin: 0;
16
+ padding: 0;
17
+ }
18
+
19
+ #map-canvas {
20
+ width: 100%;
21
+ height: 100%;
22
+ }
23
+
24
+ .marker-label,
25
+ .marker-icon {
26
+ z-index: 99;
27
+ position: absolute;
28
+ display: block;
29
+ margin-top: -50px;
30
+ margin-left: -25px;
31
+ width: 50px;
32
+ height: 50px;
33
+ font-size: 30px !important;
34
+ text-align: center;
35
+ color: #FFFFFF;
36
+ white-space: nowrap;
37
+ }
38
+ </style>
39
+ <script>
40
+ function initialize() {
41
+ var mapOptions = {
42
+ zoom: 12,
43
+ center: new google.maps.LatLng(-33.9, 151.2),
44
+ mapTypeId: google.maps.MapTypeId.ROADMAP,
45
+ styles: [
46
+ {stylers: [{ visibility: 'simplified' }]},
47
+ {elementType: 'labels', stylers: [{ visibility: 'off' }]}
48
+ ]
49
+ }
50
+ var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
51
+
52
+ var marker1 = new Marker({
53
+ map: map,
54
+ zIndex: 9,
55
+ title: 'Map Icons',
56
+ position: new google.maps.LatLng(-33.890542, 151.274856),
57
+ icon: {
58
+ path: MAP_PIN,
59
+ fillColor: '#0E77E9',
60
+ fillOpacity: 1,
61
+ strokeColor: '',
62
+ strokeWeight: 0,
63
+ scale: 1/2
64
+ },
65
+ label: '<i class="map-icon-walking"></i>'
66
+ });
67
+
68
+ var marker2 = new Marker({
69
+ map: map,
70
+ zIndex: 9,
71
+ title: 'Map Icons',
72
+ position: new google.maps.LatLng(-33.923036, 151.259052),
73
+ icon: {
74
+ path: SQUARE_PIN,
75
+ fillColor: '#0E77E9',
76
+ fillOpacity: 1,
77
+ strokeColor: '',
78
+ strokeWeight: 0,
79
+ scale: 1/2
80
+ },
81
+ label: '<i class="map-icon-cafe"></i>'
82
+ });
83
+
84
+ var marker3 = new Marker({
85
+ map: map,
86
+ zIndex: 9,
87
+ title: 'Map Icons',
88
+ position: new google.maps.LatLng(-34.028249, 151.157507),
89
+ icon: {
90
+ path: SHEILD,
91
+ fillColor: '#0E77E9',
92
+ fillOpacity: 1,
93
+ strokeColor: '',
94
+ strokeWeight: 0,
95
+ scale: 1/2
96
+ },
97
+ label: '<i class="map-icon-car-wash"></i>'
98
+ });
99
+
100
+ var marker4 = new Marker({
101
+ map: map,
102
+ zIndex: 9,
103
+ title: 'Map Icons',
104
+ position: new google.maps.LatLng(-33.80010128657071, 151.28747820854187),
105
+ icon: {
106
+ path: ROUTE,
107
+ fillColor: '#0E77E9',
108
+ fillOpacity: 1,
109
+ strokeColor: '',
110
+ strokeWeight: 0,
111
+ scale: 1/2
112
+ },
113
+ label: '<i class="map-icon-male"></i>'
114
+ });
115
+ }
116
+
117
+ google.maps.event.addDomListener(window, 'load', initialize);
118
+
119
+ </script>
120
+ </head>
121
+ <body>
122
+ <div id="map-canvas"></div>
123
+ </body>
124
+ </html>
includes/map-icons/fonts/map-icons.dev.svg ADDED
@@ -0,0 +1,1394 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>
5
+ This is a custom SVG font generated by IcoMoon.
6
+ <iconset grid="16"></iconset>
7
+ </metadata>
8
+ <defs>
9
+ <font id="map-icons" horiz-adv-x="512" >
10
+ <font-face units-per-em="512" ascent="480" descent="-32" />
11
+ <missing-glyph horiz-adv-x="512" />
12
+ <glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
13
+ <glyph unicode="&#xe000;" d="M 256.154,455.424c-79.872,0-144.599-63.529-144.599-141.865C 111.555,235.203, 256.154-21.76, 256.154-21.76s 144.609,256.963, 144.609,335.319
14
+ C 400.763,391.895, 335.995,455.424, 256.154,455.424z" data-tags="map-pin" />
15
+ <glyph unicode="&#xe001;" d="M 20.48,318.638L 20.48,459.52L 166.902,459.52L 220.785,418.56L 130.99,418.56L 225.28,318.638L 166.902,264.96L 71.68,354.55L 71.68,264.755 zM 491.52,134.38L 491.52-11.52L 345.098-11.52L 291.215,29.44L 381.010,29.44L 286.72,131.871L 345.098,186.798L 440.32,98.468L 440.32,188.262 z" data-tags="expand" />
16
+ <glyph unicode="&#xe002;" d="M 20.48,318.638L 20.48,459.52L 166.902,459.52L 220.785,418.56L 130.99,418.56L 225.28,318.638L 166.902,264.96L 71.68,354.55L 71.68,264.755 zM 345.62,459.52L 491.52,459.52L 491.52,318.116L 450.56,264.243L 450.56,354.028L 348.129,259.738L 293.202,315.607L 381.532,408.32L 291.738,408.32 zM 491.52,134.38L 491.52-11.52L 345.098-11.52L 291.215,29.44L 381.010,29.44L 286.72,131.871L 345.098,186.798L 440.32,98.468L 440.32,188.262 zM 166.38-11.52L 20.48-11.52L 20.48,134.902L 61.44,188.785L 61.44,98.99L 163.871,193.28L 218.798,134.902L 130.468,39.68L 220.262,39.68 z" data-tags="fullscreen" />
17
+ <glyph unicode="&#xe003;" d="M 460.8,469.76L 51.2,469.76L 51.2,60.16L 205.752,60.16L 261.448-22.272L 317.153,60.16L 460.8,60.16 z" data-tags="square-pin" />
18
+ <glyph unicode="&#xe004;" d="M 486.349,259.072C 484.045,383.57, 411.822,433.039, 408.863,434.995l-11.172,7.639l-11.254-7.619c-18.698-12.687-38.083-19.128-57.61-19.128
19
+ c-32.338,0-54.292,17.408-55.224,18.166L 261.007,444.16l-12.503-10.138c-0.922-0.737-22.866-18.135-55.214-18.135c-19.507,0-38.881,6.431-57.61,19.159
20
+ l-11.203,7.557l-11.284-7.629C 105.533,429.711, 38.298,380.047, 35.86,259.686C 34.888,249.201, 63.805,51.057, 261.11-6.4
21
+ C 475.617,56.289, 487.455,245.996, 486.349,259.072z" data-tags="route-pin" />
22
+ <glyph unicode="&#xe005;" d="M 435.814,304.814c 2.847,33.853, 13.056,64.932, 31.027,93.43L 397.885,464.64c-21.78-18.053-46.602-28.058-74.701-29.819
23
+ c-25.764-2.243-50.176,2.468-73.155,14.162c-23.613-11.305-47.933-16.046-73.277-14.162c-26.235,2.253-49.9,11.213-71.096,27.075L 36.526,395.52
24
+ c 17.009-28.897, 26.481-59.136, 28.334-90.706c 0.881-14.531-3.42-34.56-13.097-60.416c-5.059-14.336-8.878-26.778-11.5-37.171
25
+ c-2.417-10.332-3.922-18.708-4.434-25.006c-0.348-27.556, 7.68-52.439, 24.146-74.568c 12.872-16.148, 34.099-33.987, 63.57-53.494
26
+ c 32.236-15.8, 57.19-26.051, 74.67-30.423c 5.018-2.263, 9.912-4.424, 14.5-6.502c 4.557-2.089, 9.441-4.147, 14.531-6.38
27
+ c 11.008-6.349, 18.719-13.22, 22.784-20.316c 4.997,7.69, 12.892,14.377, 23.378,20.316c 7.393,3.113, 13.67,5.786, 18.698,8.161
28
+ c 5.028,2.15, 8.776,3.738, 10.947,4.71c 3.738,1.772, 8.622,3.82, 14.561,6.083c 5.96,2.263, 13.363,5.028, 22.159,8.1
29
+ c 17.029,5.796, 29.43,11.295, 37.304,16.251c 28.59,19.497, 49.49,37.059, 62.792,52.736c 17.050,22.2, 25.344,47.206, 24.965,75.305
30
+ c-1.014,12.595-6.554,32.727-16.609,60.16C 438.661,269.097, 434.432,289.843, 435.814,304.814z" data-tags="sheild" />
31
+ <glyph unicode="&#xe006;" d="M 143.36,316.16c 30.72-10.24, 51.2-36.332, 51.2-70.738l0-264.366 C 194.56-27.075, 202.783-32, 194.386-32L 42.824-32 C 34.447-32, 30.72-27.075, 30.72-18.954L 30.72,245.422
32
+ C 30.72,279.91, 51.2,308.439, 81.92,316.16L 81.92,439.040 l 61.44,0 L 143.36,316.16 zM 81.92,480L 143.36,480L 143.36,459.52L 81.92,459.52zM 361.011,431.002c-4.68,0.666-8.274,4.465-8.274,9.042c0,3.348, 2.007,6.267, 4.925,7.926c-2.918,1.536-4.925,6.943-4.925,10.322
33
+ C 352.737,463.37, 357.018,469.76, 362.322,469.76l 47.964,0 c 5.335,0, 9.585-6.39, 9.585-11.459c0-3.533-1.997-7.649-5.038-9.134
34
+ c 2.918-1.587, 5.038-5.059, 5.038-8.53c0-4.588-3.461-8.673-8.12-9.288l 61.082-149.504C 476.416,272.128, 481.28,261.202, 481.28,250.47L 481.28-11.52
35
+ c0-9.994, 0.266-20.48-10.24-20.48L 316.529-32 C 305.859-32, 307.2-21.514, 307.2-11.52L 307.2,254.72 c0,10.721, 1.997,17.265, 5.601,26.993L 361.011,431.002zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" data-tags="liquor_store" />
36
+ <glyph unicode="&#xe007;" d="M 418.908,248.054c-12.964,0-25.283-2.662-36.475-7.444l-31.498,53.975l 23.736,40.684c 3.226,5.55, 1.352,12.677-4.188,15.923
37
+ c-2.437,1.413-5.151,3.973-7.721,3.553C 362.086,354.857, 361.431,357.12, 360.745,357.12l-46.561,0 c-6.42,0-11.633-8.94-11.633-15.36
38
+ c0-6.431, 5.212-15.36, 11.633-15.36l 30.177,0 l-13.588-20.48L 194.806,305.92 l 27.156,51.2l 10.762,0 c 6.42,0, 11.633,3.809, 11.633,10.24s-5.212,10.24-11.633,10.24l-58.194,0
39
+ c-6.41,0-11.633-3.809-11.633-10.24s 5.212-10.24, 11.633-10.24l 20.47,0 l-65.423-114.33c-11.203,4.782-23.542,6.349-36.495,6.349
40
+ C 41.677,249.139,0,206.909,0,155.505c0-51.415, 41.677-93.358, 93.092-93.358s 93.092,41.544, 93.092,92.959c0,30.106-14.356,56.74-36.557,73.769l 24.914,42.66
41
+ l 71.414-122.429c 0.082-0.133, 0.184-0.256, 0.276-0.389c 0.092-0.174, 0.205-0.317, 0.307-0.461c 0.082-0.133, 0.143-0.236, 0.236-0.348
42
+ c 0.287-0.379, 0.604-0.727, 0.922-1.065c 0.031-0.041, 0.072-0.082, 0.113-0.133c 0.102-0.102, 0.205-0.195, 0.317-0.287
43
+ c 0.102-0.092, 0.215-0.184, 0.328-0.266c 0.287-0.246, 0.594-0.502, 0.901-0.717c 0.123-0.092, 0.246-0.164, 0.379-0.246
44
+ c 0.102-0.061, 0.195-0.123, 0.297-0.195c 0.041-0.020, 0.072-0.051, 0.123-0.072c 0.010-0.020, 0.031-0.020, 0.041-0.041
45
+ c 0.317-0.174, 0.645-0.328, 0.983-0.481c 0.041-0.031, 0.072-0.041, 0.113-0.051c 0.072-0.031, 0.154-0.092, 0.236-0.123
46
+ c 0.020,0, 0.051-0.020, 0.082-0.020c 0.236-0.102, 0.502-0.184, 0.748-0.266c 0.236-0.082, 0.461-0.174, 0.696-0.225
47
+ c 0.051-0.010, 0.102-0.010, 0.143-0.041c 0.092-0.010, 0.174-0.020, 0.256-0.041c 0.143-0.031, 0.297-0.051, 0.451-0.092
48
+ c 0.696-0.133, 1.382-0.215, 2.089-0.215l0,0 c 0.010,0, 0.010-0.635, 0.010-0.635c 0.020,0, 0.031-0.604, 0.041-0.604l 70.564,0
49
+ c 5.755-40.96, 44.831-80.845, 92.293-80.845c 51.415,0, 93.092,41.994, 93.092,93.409C 512,206.060, 470.323,248.054, 418.908,248.054z M 162.908,154.962
50
+ c0-38.574-31.252-69.827-69.816-69.827c-38.564,0-69.816,31.263-69.816,69.827c0,38.554, 31.252,69.806, 69.816,69.806
51
+ c 8.673,0, 16.947-1.649, 24.607-4.547l-34.662-59.412c-3.236-5.54-1.352-12.667, 4.198-15.923c 1.843-1.065, 3.86-1.577, 5.847-1.577
52
+ c 4.004,0, 7.895,2.068, 10.066,5.765l 34.673,59.453C 153.139,195.717, 162.908,176.476, 162.908,154.962z M 256,180.541L 194.806,285.44l 122.399,0 L 256,180.541z
53
+ M 337.449,269.476l 24.924-43.704C 343.101,210.985, 329.789,193.28, 326.615,162.56l-50.36,0 L 337.449,269.476z M 374.18,204.503L 398.664,162.56l-48.517,0
54
+ C 352.952,183.040, 361.677,194.048, 374.18,204.503z M 418.908,84.5c-34.58,0-63.232,26.86-68.772,57.58l 68.741,0 c 0.031,0, 0.031,0.604, 0.051,0.604
55
+ c 0.696,0, 1.393,0.41, 2.079,0.543c 0.164,0.041, 0.307,0.215, 0.471,0.236c 0.635,0.154, 1.28,0.42, 1.935,0.676
56
+ c 0.061,0.031, 0.133,0.133, 0.215,0.164c 0.379,0.174, 0.768,0.379, 1.157,0.594c 0.092,0.051, 0.174,0.154, 0.276,0.215
57
+ c 0.348,0.225, 0.676,0.492, 1.034,0.748c 0.266,0.225, 0.573,0.44, 0.799,0.676c 0.287,0.256, 0.532,0.553, 0.778,0.85
58
+ c 0.236,0.266, 0.502,0.553, 0.696,0.87c 0.205,0.276, 0.41,0.625, 0.584,0.942c 0.184,0.328, 0.369,0.635, 0.532,0.973
59
+ c 0.154,0.348, 0.266,0.707, 0.399,1.065c 0.123,0.348, 0.236,0.696, 0.317,1.065c 0.092,0.369, 0.123,0.696, 0.174,1.065
60
+ c 0.061,0.44, 0.113,0.819, 0.133,1.26c0,0.123, 0.031,0.236, 0.031,0.358c0,0.215-0.051,0.43-0.051,0.655
61
+ c-0.041,0.44-0.072,0.84-0.143,1.27c-0.051,0.379-0.154,0.707-0.236,1.085c-0.102,0.358-0.195,0.707-0.338,1.065
62
+ c-0.164,0.399-0.338,0.778-0.532,1.157c-0.102,0.205-0.174,0.41-0.276,0.604l-34.662,59.412c 7.68,2.898, 15.944,4.547, 24.607,4.547
63
+ c 38.574,0, 69.827-31.57, 69.827-70.124C 488.745,116.081, 457.482,84.5, 418.908,84.5z" data-tags="bicycle_store" />
64
+ <glyph unicode="&#xe008;" d="M 128.522-26.726c-3.482-6.103-13.394-7.066-22.139-2.048l-54.743,31.16c-8.704,4.966-12.954,13.947-9.462,20.040L 275.005,391.506
65
+ c 33.485,54.129-83.558,49.357-112.292,33.423C 184.443,463.892, 253.696,476.754, 298.609,480l 13.066-0.85c 25.385-12.646, 61.788-31.621, 85.78-47.534
66
+ c 17.623-27.679, 36.209-42.25, 62.525-42.179c 34.345-26.317-19.302-98.109-53.053-64.86c 0.184,16.425-47.473,58.921-80.855,23.91L 128.522-26.726z" data-tags="hardware_store" />
67
+ <glyph unicode="&#xe009;" d="M 261.233,450.386L 12.984,244.48L 71.68,244.48 l0-245.76 l 368.64,0 L 440.32,244.48 l 64.184,0 L 261.233,450.386z M 316.846,70.4L 200.632,70.4 l 24.371,109.681c-14.735,10.24-24.371,25.661-24.371,44.544
68
+ c0,31.109, 26.020,55.695, 58.102,55.695c 32.102,0, 58.112-25.528, 58.112-56.637c0-18.893-9.636-33.229-24.361-43.438L 316.846,70.4z" data-tags="insurance_agency" />
69
+ <glyph unicode="&#xe00a;" d="M 3.021,197.571c 4.198-32.512, 31.918-57.61, 65.587-57.61c 33.628,0, 61.327,25.098, 65.536,57.61L 3.021,197.571 zM 360.264,64.461c0-5.663-4.567-10.271-10.22-10.271L 159.007,54.19 c-5.612,0-10.24,4.608-10.24,10.271l0,0c0,5.622, 4.618,10.168, 10.24,10.168l 191.027,0
70
+ C 355.686,74.629, 360.264,70.083, 360.264,64.461L 360.264,64.461zM 149.883,48.957L 359.158,48.957L 359.158,19.395L 149.883,19.395zM 377.856,197.571c 4.188-32.512, 31.939-57.61, 65.556-57.61c 33.638,0, 61.348,25.098, 65.526,57.61L 377.856,197.571 zM 505.334,218.143l-53.688,73.953l 28.703,0 c 6.984,0, 12.605,5.724, 12.605,12.8c0,7.014-5.632,12.677-12.605,12.677L 328.305,317.573
71
+ c-9.062,24.996-30.935,43.776-57.692,48.456L 270.612,391.229 L 270.612,405.934 c0,7.096-5.693,12.759-12.749,12.759c-0.389,0-0.768-0.082-1.188-0.133
72
+ c-0.379,0.051-0.788,0.133-1.188,0.133c-7.055,0-12.728-5.663-12.728-12.759l0-14.705 l0-25.18 c-26.757-4.68-48.62-23.46-57.672-48.456L 33.014,317.594
73
+ c-6.932,0-12.585-5.663-12.585-12.677c0-7.086, 5.652-12.8, 12.585-12.8l 27.392,0 l-53.699-73.953L0,218.163 l0-13.66 l 137.196,0 l0,13.66 L 130.458,218.163 L 76.78,292.096
74
+ l 103.741,0 l 9.8,0 l 11.069,0 c0,2.888, 0.317,5.724, 0.748,8.438c 0.44,1.28, 0.737,2.58, 0.737,3.922c 4.69,19.763, 20.132,35.461, 39.885,40.274
75
+ l0-97.403 l0-42.854 l-0.532,0 c-1.096-52.756-26.194-98.765-63.427-124.621l 74.404,0 l 3.482,0 l 6.973,0 l 70.932,0 c-37.243,25.856-62.321,71.864-63.478,124.621l-0.492,0
76
+ l0,42.854 l0,97.403 c 19.722-4.813, 35.215-20.511, 39.875-40.274c 0.041-1.341, 0.317-2.642, 0.768-3.922c 0.41-2.724, 0.666-5.55, 0.666-8.438l 11.141,0
77
+ l 9.789,0 l 102.38,0 l-53.699-73.953l-6.697,0 l0-13.66 L 512,204.483 l0,13.66 L 505.334,218.143 z M 63.13,218.143L 20.275,218.143 l 42.854,59.034L 63.13,218.143 z M 74.097,218.143l0,59.034
78
+ l 42.854-59.034L 74.097,218.143 z M 437.944,218.143l-42.875,0 l 42.875,59.034L 437.944,218.143 z M 448.86,218.143l0,59.034 l 42.906-59.034L 448.86,218.143 zM 81.316,335.37c0-6.953-5.693-12.687-12.698-12.687c-7.035,0-12.749,5.734-12.749,12.687c0,7.025, 5.714,12.759, 12.749,12.759
79
+ C 75.622,348.14, 81.316,342.395, 81.316,335.37zM 456.141,336.046c0-7.076-5.693-12.687-12.718-12.687c-7.055,0-12.718,5.612-12.718,12.687c0,7.025, 5.663,12.749, 12.718,12.749
80
+ C 450.447,348.795, 456.141,343.071, 456.141,336.046z" data-tags="lawyer" />
81
+ <glyph unicode="&#xe00b;" d="M 145.787,75.52l 312.146,0 L 457.933,342.589 L 145.787,342.589 L 145.787,75.52 z M 304.394,316.006l 112.538-98.284l-28.355,0 l0-117.924 l-65.905,0 L 322.673,183.040 l-41.626,0 l0-83.241 L 218.624,99.799 L 218.624,217.723
82
+ l-29.082,0 L 304.394,316.006zM 111.104,408.484L 111.104,469.576L 41.738,469.576L 41.738-32L 111.104-32L 111.104,377.262L 471.818,377.262L 471.818,408.484 z" data-tags="real_estate_agency" />
83
+ <glyph unicode="&#xe00c;" d="M 217.201,418.56C 87.849,418.56, 10.24,314.798, 10.24,262.912c0-51.886, 25.866-90.798, 77.609-90.798
84
+ c 51.743,0, 77.619-12.964, 77.619-51.876c0-51.876, 38.799-90.788, 90.542-90.788c 168.161,0, 245.76,90.788, 245.76,181.576
85
+ C 501.76,366.674, 372.388,418.56, 217.201,418.56L 217.201,418.56z M 184.863,366.674c 17.859,0, 32.338-14.52, 32.338-32.42
86
+ c0-17.92-14.479-32.43-32.338-32.43s-32.338,14.52-32.338,32.43C 152.525,352.154, 167.004,366.674, 184.863,366.674z M 288.328,366.674
87
+ c 17.859,0, 32.338-14.52, 32.338-32.42c0-17.92-14.479-32.43-32.338-32.43c-17.848,0-32.328,14.52-32.328,32.43
88
+ C 256,352.154, 270.479,366.674, 288.328,366.674z M 391.813,314.798c 17.869,0, 32.348-14.51, 32.348-32.43c0-17.92-14.479-32.42-32.348-32.42
89
+ c-17.859,0-32.328,14.51-32.328,32.42C 359.475,300.278, 373.955,314.798, 391.813,314.798z M 94.321,288.85c 17.859,0, 32.328-14.51, 32.328-32.41
90
+ c0-17.92-14.479-32.43-32.328-32.43s-32.338,14.52-32.338,32.43C 61.983,274.34, 76.462,288.85, 94.321,288.85z M 256,159.15
91
+ c 21.432,0, 38.799-17.408, 38.799-38.922c0-21.484-17.367-38.902-38.799-38.902s-38.799,17.418-38.799,38.902
92
+ C 217.201,141.742, 234.568,159.15, 256,159.15L 256,159.15z" data-tags="art_gallery" />
93
+ <glyph unicode="&#xe00d;" d="M 256,418.56c-12.933,0-18.78-6.308-22.63-13.169L 72.499,102.574L 37.734,102.574 c-15.176,0-27.494-11.725-27.494-26.327
94
+ c0-14.572, 12.319-26.317, 27.494-26.317l 50.125,0 l 336.302,0 l 50.125,0 c 15.165,0, 27.494,11.745, 27.494,26.317c0,14.612-12.319,26.327-27.494,26.327L 439.501,102.574
95
+ l-160.86,302.828C 274.78,412.252, 268.943,418.56, 256,418.56L 256,418.56z M 256,286.904l 90.542-184.33L 165.458,102.574 L 256,286.904z" data-tags="campground" />
96
+ <glyph unicode="&#xe00e;" d="M 387.41,328.325c 3.41-53.299-22.446-90.665-22.446-90.665c 3.359,41.052-13.281,97.792-13.281,97.792c-14.213,2.785-36.925-0.205-36.925-0.205
97
+ c 3.277-44.278-19.241-82.944-35.871-97.178c 8.223,49.101-4.864,86.252-4.864,86.252c-22.497,5.673-54.743,2.202-54.743,2.202
98
+ c 7.004-52.234-21.811-90.665-21.811-90.665c 4.772,36.413-14.684,83.118-14.684,83.118c-16.517,1.075-42.834-4.301-42.834-4.301
99
+ c 13.875-24.791, 2.796-79.278, 2.796-79.278c-7.567,44.554-33.004,70.83-33.004,70.83C-36.116,244.111, 2.304,158.536, 73.626,133.048
100
+ c 67.287-24.003, 284.099-35.83, 381.102,6.257C 551.741,181.412, 483.43,299.735, 387.41,328.325z" data-tags="bakery" />
101
+ <glyph unicode="&#xe00f;" d="M 40.96,469.76l 57.344-462.643c 1.792-14.428, 14.326-28.877, 28.682-28.877l 258.028,0 c 14.346,0, 26.9,14.449, 28.662,28.877L 471.040,469.76
102
+ L 40.96,469.76 z M 105.472,411.945l 301.046,0 l-13.435-115.661L 118.917,296.284 L 105.472,411.945z" data-tags="bar" />
103
+ <glyph unicode="&#xe010;" d="M 408.801,192.389c 4.741-2.324, 10.516-2.284, 12.831,0.113c 2.345,2.386, 0.317,6.154-4.485,8.366l-83.743,38.789
104
+ c-4.803,2.232-12.872,2.796-17.91,1.28l-29.952-8.98c-5.089-1.526-11.725-2.775-14.735-2.775c-3.011,0-5.519,4.239-5.519,9.441l0,91.331
105
+ c0,5.192, 4.332,9.452, 9.636,9.452l 217.18,0 c 5.325,0, 9.646,4.25, 9.646,9.452L 501.75,379.525 c0,5.202-4.168,10.67-9.236,12.155L 263.803,458.414
106
+ c-5.069,1.485-13.384,1.485-18.452-0.020L 19.446,391.69C 14.387,390.205, 10.24,384.717, 10.24,379.525l0-30.659 c0-5.202, 4.332-9.452, 9.626-9.452l 214.323,0
107
+ c 5.304,0, 9.636-4.26, 9.636-9.452l0-91.382 c0-5.192-4.332-9.452-9.636-9.462l-3.891,0 c-5.304-0.010-12.739,2.959-16.548,6.584l-51.671,49.347
108
+ c-3.82,3.635-11.254,6.595-16.558,6.595l-23.9,0 c-5.284,0-11.663,3.123-14.152,6.922c-2.468,3.809-8.223,6.902-12.78,6.902
109
+ s-5.96-3.564-3.092-7.946l 0.451-0.686c 2.867-4.372, 2.877-11.571, 0.061-15.964l-25.846-40.182c-2.806-4.413-1.935-10.865, 2.007-14.356
110
+ l 1.833-1.649c 3.942-3.482, 10.967-4.383, 15.667-1.956l 27.689,14.408c 4.71,2.437, 10.865,0.85, 13.722-3.523l 30.382-46.51
111
+ c 2.877-4.383, 1.915-10.732-2.13-14.090l-13.896-11.602c-4.045-3.359-6.4-10.25-5.233-15.34l 18.012-78.356
112
+ c 1.167-5.089, 6.339-8.192, 11.479-6.912l 12.524,3.092c 5.151,1.29, 8.387,6.472, 7.26,11.551l-12.196,52.992
113
+ c-1.167,5.069, 2.058,10.373, 7.188,11.735l 30.792,8.253c 5.1,1.372, 13.629,2.468, 18.934,2.468l 3.891,0 c 5.304,0, 9.636-4.25, 9.636-9.421l0-93.972
114
+ c0-5.181-4.332-9.431-9.636-9.431L 19.866,38.072 c-5.294,0-9.626-4.239-9.626-9.462l0-30.638 C 10.24-7.281, 14.572-11.52, 19.866-11.52l 468.255,0
115
+ c 5.304,0, 9.626,4.239, 9.626,9.472l0,30.638 c0,5.222-4.332,9.462-9.626,9.462L 274.934,38.052 c-5.315,0-9.636,4.25-9.636,9.431l0,93.972
116
+ c0,5.171, 4.332,9.421, 9.636,9.421l 11.1,0 c 5.304,0, 13.773-1.096, 18.924-2.468l 30.792-8.253c 5.14-1.362, 8.376-6.656, 7.188-11.735
117
+ l-12.165-52.992c-1.188-5.079, 2.068-10.26, 7.219-11.551l 12.544-3.092c 5.151-1.28, 10.281,1.823, 11.469,6.912l 18.033,78.356
118
+ c 1.198,5.089-1.075,11.878-4.997,15.176c-3.912,3.256-7.363,10.199-7.67,15.38l-1.567,27.72c-0.317,5.181, 3.338,7.526, 8.090,5.192
119
+ L 408.801,192.389z" data-tags="amusement_park" />
120
+ <glyph unicode="&#xe011;" d="M 10.24,414.659c0,0, 23.112-40.96, 23.112-67.133s-22.979-65.075-22.979-65.075c0-6.083, 4.106-8.151, 8.97-4.669l 75.602,54.231
121
+ c 15.268-11.274, 45.179-26.235, 66.898-38.523l0-43.889 l 48.486,27.607c 15.565-3.533, 31.355-5.775, 48.261-5.775c 101.878,0, 184.586,66.099, 184.586,77.117
122
+ c0,9.574-62.198,60.754-145.418,73.964L 205.23,469.76l0-51.067 c-43.377-12.022-87.747-36.956-110.275-53.596l-75.878,54.231C 14.223,422.82, 10.24,420.741, 10.24,414.659
123
+ M 360.97,335.135c-11.991,0-21.729,9.861-21.729,22.047s 9.738,22.036, 21.729,22.036c 12.012,0, 21.688-9.851, 21.688-22.036
124
+ S 372.982,335.135, 360.97,335.135 M 501.76,143.309c0,6.093-3.983,8.172-8.837,4.669l-75.51-54.252c-22.528,16.64-66.447,41.574-109.885,53.586L 307.528,198.4
125
+ l-92.897-47.237c-83.251-13.199-145.623-64.399-145.623-73.974c0-11.018, 82.627-77.148, 184.494-77.148c 16.896,0, 33.065,2.294, 48.609,5.837L 350.956-21.76
126
+ l0,43.878 c 21.688,12.319, 51.251,27.259, 66.447,38.574l 75.407-54.241c 4.905-3.533, 8.899-1.423, 8.899,4.618c0,0-23.020,38.902-23.020,65.096
127
+ C 478.7,102.359, 501.76,143.309, 501.76,143.309 M 166.042,77.896c-12.001,0-21.699,9.841-21.699,22.047c0,12.165, 9.697,21.996, 21.699,21.996
128
+ c 11.981,0, 21.709-9.841, 21.709-21.996C 187.75,87.736, 178.033,77.896, 166.042,77.896" data-tags="aquarium" />
129
+ <glyph unicode="&#xe012;" d="M 492.022,108.186C 497.377,106.455, 501.76,109.64, 501.76,115.272l0,35.779 c0,5.632-3.963,12.595-8.796,15.483L 305.756,278.098
130
+ C 300.923,280.975, 296.96,287.949, 296.96,293.571L 296.96,418.56 c0,5.632-1.72,14.51-3.83,19.743c0,0-11.172,27.73-30.72,30.822C 260.321,469.494, 258.202,469.76, 256.072,469.76
131
+ C 256.051,469.76, 256.020,469.76, 256,469.76c-0.010,0-0.020,0-0.031,0c-2.468,0.020-4.905-0.287-7.301-0.737C 247.91,468.89, 247.194,468.705, 246.456,468.531
132
+ c-1.147-0.297-2.263-0.635-3.359-1.044c-16.261-5.427-24.637-29.030-24.637-29.030C 216.576,433.142, 215.040,424.192, 215.040,418.56l0-124.989
133
+ c0-5.632-3.963-12.595-8.796-15.483L 19.036,166.533C 14.203,163.645, 10.24,156.682, 10.24,151.050l0-35.779 c0-5.632, 4.383-8.817, 9.738-7.076l 185.324,60.16
134
+ C 210.657,170.086, 215.040,166.902, 215.040,161.27l0-97.618 c0-5.632-3.686-13.015-8.192-16.394l-24.576-18.452c-4.506-3.379-8.192-10.762-8.192-16.394L 174.080-11.52
135
+ c0-5.632, 4.434-8.97, 9.841-7.414l 62.208,17.869c 5.407,1.556, 14.275,1.556, 19.681,0l 62.269-17.869C 333.486-20.49, 337.92-17.152, 337.92-11.52l0,23.941
136
+ c0,5.632-3.686,13.015-8.192,16.394l-24.576,18.452c-4.495,3.379-8.192,10.762-8.192,16.394l0,97.618 c0,5.632, 4.383,8.817, 9.738,7.076L 492.022,108.186z" data-tags="airport" />
137
+ <glyph unicode="&#xe013;" d="M 355.144,215.798c-14.725,11.612-36.823,20.89-66.294,27.822L 266.24,248.955l0,96.563 c 1.004-0.44, 2.099-0.768, 3.062-1.249
138
+ C 288.492,334.551, 298.803,316.16, 300.216,295.68l 76.964,0 c-1.403,40.96-16.538,71.25-45.404,92.652C 312.596,402.555, 290.724,411.699, 266.24,416.307L 266.24,469.76 l-71.68,0 l0-51.814
139
+ c-33.147-4.096-59.433-14.766-78.735-32.113c-25.272-22.712-37.898-51.22-37.898-85.545c0-37.612, 12.913-65.26, 38.738-82.944
140
+ c 14.459-10.025, 40.52-19.333, 77.896-27.955l0-104.612 c-13.629,3.758-24.31,9.943-31.836,18.883C 155.464,112.343, 150.6,121.6, 148.122,142.080L 71.68,142.080
141
+ c0-40.96, 14.449-70.349, 43.356-93.143c 20.869-16.445, 47.432-26.44, 79.524-30.771L 194.56-21.76 l 71.68,0 l0,39.25 c 34.13,4.086, 61.686,14.981, 82.555,32.809
142
+ c 27.064,23.142, 40.602,52.224, 40.602,87.235C 389.396,171.684, 377.979,197.765, 355.144,215.798z M 170.68,275.364c-12.442,6.758-18.657,17.019-18.657,30.72
143
+ c0,14.909, 6.308,26.593, 18.924,34.908c 6.656,4.393, 14.582,7.588, 23.613,9.697l0-84.214 C 183.45,269.711, 175.432,272.681, 170.68,275.364z
144
+ M 277.944,86.876c-3.553-1.229-7.516-2.243-11.704-3.133L 266.24,172.8 c 12.339-3.656, 22.077-7.639, 29.164-11.919c 11.182-6.932, 16.783-16.794, 16.783-29.44
145
+ C 312.177,109.773, 300.759,94.853, 277.944,86.876z" data-tags="bank" />
146
+ <glyph unicode="&#xe016;" d="M 419.84,439.040L 226.068,439.040 c-15.391,20.48-40.612,38.42-69.14,38.42c-46.868,0-84.859-36.618-84.859-83.487c0-46.879, 37.99-82.299, 84.859-82.299
147
+ c 35.645,0, 66.14,24.965, 78.725,55.685l 28.211,0 l 20.449,20.46L 304.753,367.36l 12.749,0 l 20.439,20.46L 358.39,367.36l 12.739,0 l 20.449,20.46L 412.027,367.36L 419.84,367.36 l0-2.877
148
+ l-1.782-0.42l 40.346,39.547L 419.84,439.040z M 129.464,371.354c-13.558,0-24.566,11.008-24.566,24.586s 11.008,24.576, 24.566,24.576
149
+ c 13.578,0, 24.586-10.998, 24.586-24.576S 143.043,371.354, 129.464,371.354zM 440.32,172.8l-5.663,0 l-62.915,113.92C 369.029,291.645, 362.189,295.68, 356.557,295.68L 165.683,295.68 c-5.632,0-12.472-4.035-15.186-8.96L 87.572,172.8L 81.92,172.8
150
+ c-11.264,0-20.48-9.216-20.48-20.48l0-102.4 c0-11.264, 9.216-20.48, 20.48-20.48l 20.48,0 l0-30.72 c0-16.896, 13.824-30.72, 30.72-30.72l 10.24,0 c 16.896,0, 30.72,13.824, 30.72,30.72l0,30.72 l 174.080,0 l0-30.72 c0-16.896, 13.824-30.72, 30.72-30.72l 10.24,0 c 16.896,0, 30.72,13.824, 30.72,30.72l0,30.72
151
+ l 20.48,0 c 11.264,0, 20.48,9.216, 20.48,20.48L 460.8,152.32 C 460.8,163.584, 451.584,172.8, 440.32,172.8z M 117.76,90.88C 103.619,90.88, 92.16,102.339, 92.16,116.48s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6
152
+ S 131.901,90.88, 117.76,90.88z M 138.24,172.8l 41.503,82.995C 182.262,260.844, 188.928,264.96, 194.56,264.96l 133.12,0 c 5.632,0, 12.298-4.116, 14.817-9.165L 384,172.8L 138.24,172.8 z M 404.48,90.88
153
+ c-14.141,0-25.6,11.459-25.6,25.6s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6S 418.621,90.88, 404.48,90.88z" data-tags="car_rental" />
154
+ <glyph unicode="&#xe017;" d="M 489.298,358.318c-7.045,5.55-25.938,10.004-40.079,13.322L 430.080,374.2L 430.080,420.465 c0-0.205, 9.339,0.379, 9.8,0.154
155
+ C 449.065,415.959, 462.295,408.32, 462.981,398.080l 36.905,0 c-0.686,20.48-16.241,33.403-30.085,43.663C 460.616,448.553, 450.56,452.188, 430.080,454.39L 430.080,480 l-20.48,0 l0-24.822
156
+ c-20.48-1.966-27.095-7.066-36.342-15.391C 361.165,428.902, 355.779,415.242, 355.779,398.797c0-18.022, 5.151-31.263, 17.531-39.741
157
+ C 380.232,354.253, 389.12,349.788, 409.6,345.651l0-50.125 c-10.24,1.812-10.26,1.352-13.875,5.642C 392.243,305.326, 391.291,316.16, 390.103,316.16L 353.485,316.16
158
+ c0-20.48, 5.54-30.29, 19.405-41.216C 382.884,267.069, 389.12,265.677, 409.6,263.608L 409.6,244.48 l 20.48,0 l0,18.801 c 20.48,1.976, 37.878,7.188, 47.882,15.729
159
+ c 12.984,11.090, 23.603,25.027, 23.603,41.8C 501.555,337.172, 500.244,349.665, 489.298,358.318z M 399.544,386.847
160
+ c-5.96,3.246-8.253,8.161-8.253,14.725c0,7.148, 1.976,12.739, 8.018,16.732C 402.493,420.403, 399.36,421.929, 409.6,422.943l0-40.346
161
+ C 399.36,384.154, 401.797,385.567, 399.544,386.847z M 444.017,296.53C 442.296,295.936, 430.080,295.465, 430.080,295.045l0,42.67 c 20.48-1.761, 18.903-3.656, 22.303-5.714
162
+ c 5.335-3.318, 8.018-8.049, 8.018-14.1C 460.401,307.497, 454.922,300.36, 444.017,296.53zM 394.445,172.8l-5.663,0 l-62.915,113.92C 323.154,291.645, 316.314,295.68, 310.682,295.68L 119.798,295.68 c-5.632,0-12.472-4.035-15.186-8.96L 41.697,172.8L 36.045,172.8
163
+ C 24.771,172.8, 10.24,163.584, 10.24,152.32l0-102.4 c0-11.264, 14.531-20.48, 25.805-20.48L 51.2,29.44 l0-30.72 c0-16.896, 19.149-30.72, 36.045-30.72l 10.24,0 c 16.896,0, 25.395,13.824, 25.395,30.72l0,30.72 l 174.080,0 l0-30.72 c0-16.896, 19.139-30.72, 36.045-30.72
164
+ l 10.24,0 c 16.896,0, 25.395,13.824, 25.395,30.72l0,30.72 l 25.805,0 c 11.264,0, 15.155,9.216, 15.155,20.48L 409.6,152.32 C 409.6,163.584, 405.699,172.8, 394.445,172.8z M 71.885,90.88c-14.141,0-25.6,11.459-25.6,25.6
165
+ S 57.743,142.080, 71.885,142.080s 25.6-11.459, 25.6-25.6S 86.016,90.88, 71.885,90.88z M 92.365,172.8l 41.503,82.995C 136.376,260.844, 143.053,264.96, 148.685,264.96l 133.12,0
166
+ c 5.632,0, 12.298-4.116, 14.817-9.165L 338.125,172.8L 92.365,172.8 z M 358.605,90.88c-14.141,0-25.6,11.459-25.6,25.6s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6
167
+ S 372.736,90.88, 358.605,90.88z" data-tags="car_dealer" />
168
+ <glyph unicode="&#xe018;" d="M 378.88,469.76c-5.632,0-10.24-4.608-10.24-10.24l0-143.36 c0-5.632-4.608-10.24-10.24-10.24L 153.6,305.92 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,459.52 c0,5.632-4.608,10.24-10.24,10.24L 40.96,469.76 C 35.328,469.76, 30.72,465.152, 30.72,459.52l0-471.040
169
+ c0-5.632, 4.608-10.24, 10.24-10.24l 92.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 143.36,152.32 c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-163.84 c0-5.632, 4.608-10.24, 10.24-10.24l 92.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,459.52
170
+ c0,5.632-4.608,10.24-10.24,10.24L 378.88,469.76 z" data-tags="hospital" />
171
+ <glyph unicode="&#xe019;" d="M 432.466,220.826c 3.553,4.372, 10.834,9.4, 16.169,11.162l 43.971,17.951C 497.644,252.467, 501.76,259.144, 501.76,264.765L 501.76,390.195
172
+ c0,5.632-4.311,11.878-9.574,13.875c0,0-91.986,34.97-153.61,34.97c-57.344,0-136.622-30.239-136.622-30.239
173
+ c-5.263-2.007-14.141-4.209-19.732-4.905L 20.408,386.509C 14.817,385.823, 10.24,380.652, 10.24,375.020l0-85.135 c0-5.632, 4.526-11.090, 10.066-12.124l 161.741-26.102
174
+ c 5.55-0.922, 14.387-3.379, 19.62-5.458l 110.766-28.334c 5.56-0.84, 11.633-5.878, 13.466-11.213l 65.116-188.017
175
+ c 1.843-5.335, 7.721-8.212, 13.056-6.42l 68.844,23.153c 5.335,1.792, 8.202,7.608, 6.359,12.943l-45.199,130.386
176
+ c-1.843,5.335-3.4,9.994-3.471,10.373c0,0,0,0-0.082,0.389C 425.103,211.722, 432.466,220.826, 432.466,220.826z M 353.884,288.502
177
+ c-25.702,0-46.459,20.48-46.459,45.722c0,25.252, 20.756,45.722, 46.459,45.722c 25.62,0, 46.438-20.48, 46.438-45.722
178
+ C 400.323,308.982, 379.505,288.502, 353.884,288.502z" data-tags="hair_care" />
179
+ <glyph unicode="&#xe01a;" d="M 183.931,20.49c 3.83-4.127, 3.604-10.66-0.512-14.5l-22.241-20.797c-4.116-3.84-10.619-3.615-14.449,0.522L 17.203,125.307
180
+ c-3.83,4.127-3.594,10.65, 0.522,14.5l 22.272,20.767c 4.116,3.85, 10.619,3.615, 14.449-0.522L 183.931,20.49zM 349.204,283.146c 3.83-4.127, 3.594-10.66-0.522-14.5L 208.701,137.882c-4.116-3.84-10.619-3.615-14.449,0.522l-33.413,36.055
181
+ c-3.83,4.127-3.594,10.66, 0.522,14.5l 139.95,130.765c 4.106,3.84, 10.609,3.615, 14.438-0.522L 349.204,283.146zM 231.557,65.004c 3.83-4.127, 3.594-10.65-0.522-14.5l-22.272-20.787c-4.116-3.85-10.619-3.615-14.449,0.522L 64.86,169.83
182
+ c-3.83,4.127-3.604,10.66, 0.512,14.5l 22.231,20.777c 4.116,3.84, 10.619,3.615, 14.449-0.522L 231.557,65.004zM 447.242,278.139c 3.83-4.127, 3.594-10.66-0.532-14.5l-22.262-20.787c-4.116-3.84-10.619-3.615-14.459,0.512L 280.515,382.925
183
+ c-3.84,4.127-3.604,10.65, 0.512,14.5l 22.323,20.838c 4.106,3.84, 10.609,3.615, 14.438-0.522L 447.242,278.139zM 494.797,322.58c 3.83-4.127, 3.594-10.66-0.522-14.51l-22.221-20.777c-4.106-3.85-10.609-3.615-14.438,0.512L 328.161,427.428
184
+ c-3.83,4.127-3.604,10.66, 0.512,14.51l 22.241,20.818c 4.106,3.85, 10.598,3.625, 14.428-0.512L 494.797,322.58z" data-tags="gym" />
185
+ <glyph unicode="&#xe01b;" d="M 409.6,49.92A40.96,40.96 180 1 1 491.52,49.920000000000016A40.96,40.96 180 1 1 409.6,49.920000000000016zM 112.64,49.92A40.96,40.96 180 1 1 194.56,49.920000000000016A40.96,40.96 180 1 1 112.64,49.920000000000016zM 481.28,142.080L 161.495,142.080 l 6.83,11.080c 2.929,4.751, 3.789,10.496, 2.386,15.903l-6.666,25.661l 296.786,15.421C 472.084,210.719, 481.28,220.416, 481.28,231.68
186
+ L 481.28,367.36 c0,11.264-9.216,20.48-20.48,20.48L 113.859,387.84 l-4.004,15.391C 107.51,412.262, 99.359,418.56, 90.030,418.56L 20.48,418.56 C 9.175,418.56,0,409.385,0,398.080s 9.175-20.48, 20.48-20.48l 53.719,0 l 54.682-210.381
187
+ l-21.504-34.867c-3.891-6.318-4.065-14.254-0.44-20.726C 110.541,105.144, 117.381,101.12, 124.805,101.12L 481.28,101.12 c 11.305,0, 20.48,9.175, 20.48,20.48S 492.585,142.080, 481.28,142.080z" data-tags="grocery_or_supermarket" />
188
+ <glyph unicode="&#xe01c;" d="M 363.356,326.052c-2.54,0-4.956,1.71-4.956,4.209l0,63.283 C 358.4,396.042, 357.028,398.080, 354.478,398.080L 157.512,398.080 C 154.962,398.080, 153.6,396.042, 153.6,393.544
189
+ l0-63.283 C 153.6,327.762, 150.845,326.4, 148.285,326.4L 14.838,326.4 C 12.319,326.4, 10.24,323.666, 10.24,321.198l0-70.349 C 10.24,248.371, 12.319,244.48, 14.838,244.48l 214.897,0
190
+ C 232.284,244.48, 235.52,248.371, 235.52,250.849l0,15.002 C 235.52,268.349, 236.462,275.2, 239.002,275.2l 34.007,0 C 275.548,275.2, 276.48,268.349, 276.48,265.851l0-15.002
191
+ C 276.48,248.371, 279.716,244.48, 282.245,244.48l 214.886,0 C 499.692,244.48, 501.76,248.371, 501.76,250.849l0,70.349 C 501.76,323.676, 499.692,326.4, 497.142,326.4L 363.704,326.4 L 363.356,326.052z
192
+ M 185.272,326.4C 182.733,326.4, 184.32,327.762, 184.32,330.25l0,35.973 C 184.32,368.732, 182.733,367.36, 185.272,367.36l 141.455,0 C 329.267,367.36, 327.68,368.732, 327.68,366.223l0-35.973
193
+ C 327.68,327.762, 329.267,326.4, 326.728,326.4L 185.272,326.4 zM 277.043,175.749c0-2.478-1.495-2.949-4.035-2.949L 239.002,172.8 C 236.462,172.8, 235.52,171.704, 235.52,174.182l0,50.565
194
+ C 235.52,227.226, 232.284,234.24, 229.745,234.24L 14.838,234.24 C 12.319,234.24, 10.24,227.226, 10.24,224.748l0-149.801 C 10.24,72.458, 12.319,70.4, 14.838,70.4l 482.304,0
195
+ C 499.692,70.4, 501.76,72.458, 501.76,74.936L 501.76,224.748 C 501.76,227.226, 499.692,234.24, 497.142,234.24L 282.245,234.24 C 279.716,234.24, 276.48,227.226, 276.48,224.748l0-50.565 L 277.043,175.749z
196
+ " data-tags="general_contractor" />
197
+ <glyph unicode="&#xe01d;" d="M 402.964,305.92L 106.496,305.92 C 53.555,305.92, 10.24,268.646, 10.24,218.88c0-49.766, 43.315-87.040, 96.256-87.040l 296.468,0 c 52.92,0, 96.236,37.284, 96.236,87.040
198
+ C 499.2,268.646, 455.885,305.92, 402.964,305.92z M 402.995,152.32L 256,152.32 L 256,285.44 l 146.995,0 c 39.035,0, 71.004-29.85, 71.004-66.56S 442.040,152.32, 402.995,152.32z" data-tags="pharmacy" />
199
+ <glyph unicode="&#xe01e;" d="M 317.44,223.98c-33.884,0-61.399-27.494-61.399-61.42c0-33.956, 27.525-61.44, 61.399-61.44c 33.894,0, 61.42,27.484, 61.42,61.44
200
+ C 378.86,196.475, 351.334,223.98, 317.44,223.98zM 440.33,346.911L 389.734,448.973C 385.649,461.076, 374.19,469.76, 360.663,469.76l-84.388,0 c-13.763,0-25.242-8.929-29.225-21.248L 194.632,346.88L 71.67,346.88
201
+ C 37.796,346.88, 10.24,319.355, 10.24,285.43L 10.24-21.76 l 491.52,0 L 501.76,285.43 C 501.76,319.355, 474.225,346.911, 440.33,346.911z M 102.4,223.98c-16.998,0-30.73,13.742-30.73,30.7
202
+ c0,17.019, 13.742,30.751, 30.73,30.751s 30.71-13.732, 30.71-30.751C 133.11,237.722, 119.398,223.98, 102.4,223.98z M 317.44,39.619
203
+ c-67.84,0-122.89,55.060-122.89,122.941c0,67.85, 55.040,122.87, 122.89,122.87c 67.85,0, 122.89-55.009, 122.89-122.87
204
+ C 440.33,94.679, 385.29,39.619, 317.44,39.619z" data-tags="point_of_interest" />
205
+ <glyph unicode="&#xe01f;" d="M 126.29,254.72L 153.6,254.72 l0-163.84 l 40.96,0 L 194.56,234.24 l 40.96,0 l0-143.36 l 40.96,0 L 276.48,234.24 l 40.96,0 l0-143.36 l 40.96,0 L 358.4,254.72 l 27.3,0 C 393.236,254.72, 399.36,262.257, 399.36,269.046c0,4.106-2.263,8.735-5.683,10.967
206
+ l 0.020,0.532l-0.215,0.379c-0.123,0.072, 1.475,0.266, 1.372,0.338L 266.24,347.505l0,19.374 c 20.48-10.844, 40.458,7.834, 71.68-3.4L 337.92,406.272
207
+ c-31.242,11.223-51.2-7.444-71.68,3.4L 266.24,412.416 C 266.24,415.805, 259.779,418.56, 256,418.56s-10.24-2.755-10.24-6.144l0-64.911 l-128.604-66.109
208
+ c-0.123-0.061, 2.898-0.133, 2.775-0.215L 122.88,281.068l0-0.020 c-10.24-2.232-7.946-7.885-7.946-11.991C 114.924,262.257, 118.753,254.72, 126.29,254.72zM 143.36,80.64L 112.64,49.92L 399.36,49.92L 368.64,80.64 zM 368.64,244.48l0-153.6 l 9.062,0 l 4.004-5.663l 27.3-25.59L 418.662,49.92L 501.76,49.92 L 501.76,244.48 L 368.64,244.48 z M 430.080,121.6l-30.72,0 l0,30.72 l 30.72,0 L 430.080,121.6 z M 430.080,183.040l-30.72,0 l0,30.72 l 30.72,0 L 430.080,183.040 z M 471.040,121.6l-20.48,0 l0,30.72 l 20.48,0 L 471.040,121.6 z
209
+ M 471.040,183.040l-20.48,0 l0,30.72 l 20.48,0 L 471.040,183.040 zM 134.287,90.88L 143.36,90.88 L 143.36,244.48 L 10.24,244.48 l0-194.56 l 83.087,0 l 9.646,8.684l 27.31,26.624L 134.287,90.88z M 61.44,121.6L 40.96,121.6 l0,30.72 l 20.48,0 L 61.44,121.6 L 61.44,121.6z M 61.44,183.040L 40.96,183.040 l0,30.72 l 20.48,0 L 61.44,183.040 L 61.44,183.040z M 112.64,121.6L 81.92,121.6 l0,30.72 l 30.72,0
210
+ L 112.64,121.6 z M 112.64,183.040L 81.92,183.040 l0,30.72 l 30.72,0 L 112.64,183.040 z" data-tags="political" />
211
+ <glyph unicode="&#xe020;" d="M 296.95,433.736C 222.218,433.736, 163.84,374.559, 163.84,301.548l0-211.005 L 163.84-11.52 l 51.2,0 L 215.040,90.88 l 163.84,0 l0-102.4 l 51.2,0 l0,102.062 L 430.080,301.548 C 430.080,374.559, 371.712,433.736, 296.95,433.736z
212
+ M 40.96,459.52l 75.407-122.88l 7.864,0 C 129.004,387.84, 163.84,429.865, 215.040,448.84L 215.040,459.52 L 40.96,459.52 z" data-tags="post_box" />
213
+ <glyph unicode="&#xe021;" d="M 501.76,305.92c0,5.632-4.608,10.24-10.24,10.24L 358.4,316.16 c-5.632,0-10.24,4.608-10.24,10.24L 348.16,459.52 c0,5.632-4.608,10.24-10.24,10.24L 174.080,469.76 c-5.632,0-10.24-4.608-10.24-10.24l0-133.12 c0-5.632-4.608-10.24-10.24-10.24L 20.48,316.16
214
+ c-5.632,0-10.24-4.608-10.24-10.24l0-163.84 c0-5.632, 4.608-10.24, 10.24-10.24l 133.12,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-133.12 c0-5.632, 4.608-10.24, 10.24-10.24l 163.84,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 348.16,121.6 c0,5.632, 4.608,10.24, 10.24,10.24l 133.12,0
215
+ c 5.632,0, 10.24,4.608, 10.24,10.24L 501.76,305.92 z" data-tags="health" />
216
+ <glyph unicode="&#xe022;" d="M 30.116,398.080c-30.116,0-15.053-7.977,0-20.214L 256,205.947l 225.884,171.387c 15.073,12.237, 30.116,20.746,0,20.746
217
+ L 240.937,398.080 L 30.116,398.080 z M0,357.673l0-253.215 c0-14.899, 15.237-34.058, 27.29-34.058l 457.421,0 c 12.063,0, 27.29,19.159, 27.29,34.058l0,253.215 l-256-195.328
218
+ L0,357.673z" data-tags="post_office" />
219
+ <glyph unicode="&#xe023;" d="M 112.64,60.16c0-5.632, 4.608-10.24, 10.24-10.24l 348.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,357.12 c0,5.632-4.608,10.24-10.24,10.24L 122.88,367.36 c-5.632,0-10.24-4.608-10.24-10.24L 112.64,60.16 z M 289.751,319.939
220
+ c 4.28,3.666, 11.254,3.625, 15.493-0.072l 113.787-99.369C 423.27,216.791, 422.134,213.76, 416.502,213.76L 409.6,213.76 c-5.632,0-10.24-4.608-10.24-10.24l0-112.64
221
+ c0-5.632-4.608-10.24-10.24-10.24l-51.2,0 c-5.632,0-10.24,4.608-10.24,10.24l0,81.92 c0,5.632-4.608,10.24-10.24,10.24l-40.96,0 c-5.632,0-10.24-4.608-10.24-10.24l0-81.92 c0-5.632-4.608-10.24-10.24-10.24l-51.2,0 c-5.632,0-10.24,4.608-10.24,10.24
222
+ L 194.56,203.52 c0,5.632-4.608,10.24-10.24,10.24l-8.417,0 c-5.632,0-6.738,2.99-2.458,6.656L 289.751,319.939zM 102.4,418.56C 96.768,418.56, 92.16,423.168, 92.16,428.8L 92.16,459.52 c0,5.632-4.608,10.24-10.24,10.24L 40.96,469.76 C 35.328,469.76, 30.72,465.152, 30.72,459.52l0-471.040 c0-5.632, 4.608-10.24, 10.24-10.24l 40.96,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 92.16,377.6
223
+ c0,5.632, 4.608,10.24, 10.24,10.24l 368.64,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,408.32 c0,5.632-4.608,10.24-10.24,10.24L 102.4,418.56 z" data-tags="real_estate_agency copy" />
224
+ <glyph unicode="&#xe024;" d="M 281.692,381.911c 6.195-5.673, 12.063-11.028, 16.466-17.756l 2.447-3.738l 4.045,1.925c 11.244,5.376, 18.913,13.978, 26.327,22.292
225
+ c 5.591,6.267, 10.875,12.196, 17.5,16.65l 4.116,2.775l-2.652,4.209c-11.54,18.309-26.593,33.546-44.728,45.302l-3.799,2.468l-2.908-3.482
226
+ c-11.407-13.67-24.033-26.45-37.519-37.98l-2.959-2.54l 1.659-3.533C 265.011,397.169, 273.49,389.417, 281.692,381.911zM 347.546,304.425c 38.492,0, 70.011,15.729, 88.75,44.298l 2.232,3.4l-2.796,2.949c-3.256,3.42-6.369,6.994-9.482,10.568
227
+ c-9.288,10.66-18.903,21.678-32.44,28.989l-4.721,2.55L 386.765,392.325c-15.831-32.973-46.479-39.895-69.396-39.895
228
+ c-40.172,0-88.453,22.415-109.916,51.046l-16.896,22.538l 7.895-27.044C 213.125,348.6, 282.808,304.425, 347.546,304.425zM 214.712,216.023c 15.995,30.433, 16.66,66.068, 1.69,98.376c-14.766,31.887-42.097,54.364-73.093,60.16
229
+ c-6.564,1.229-13.036,1.833-19.241,1.833c-37.642,0-62.28-21.975-86.098-43.213c-8.673-7.731-16.865-15.084-25.61-21.32l-6.113-4.465
230
+ l 6.287-4.311c 2.007-1.3, 7.055-8.97, 11.121-14.807C 36.557,269.742, 47.309,254.72, 58.737,254.72c0,0, 0.010,0, 0.010,0
231
+ c 4.024,0, 7.782,4.772, 20.879,19.497c 5.519,6.195, 11.766,14.070, 15.114,16.722c 14.971,11.889, 35.492,28.17, 57.907,28.17
232
+ c 3.021,0, 6.062-0.297, 9.021-0.891c 10.373-2.079, 16.64-6.881, 19.149-14.694c 5.14-16.005-6.666-40.54-16.794-51.374
233
+ c-5.11-5.478-10.701-9.421-16.63-13.599c-8.499-5.99-17.285-12.196-24.545-23.101l-2.355-3.543l 3.062-2.97
234
+ c 4.424-4.28, 8.817-8.581, 13.21-12.882c 11.366-11.131, 23.122-22.641, 35.185-33.516l 4.045-3.645l 3.4,4.26
235
+ c 7.649,9.595, 15.718,19.804, 23.634,30.239c 2.13-3.164, 4.393-6.4, 6.717-9.718c 17.459-24.965, 37.253-53.258, 24.34-90.235
236
+ c-9.615-27.556-42.086-45.496-78.664-42.865c-43.254,3.031-81.756,39.956-117.729,112.886c-2.243,4.557-4.086,9.667-5.868,14.612
237
+ c-4.168,11.571-8.489,23.532-18.545,30.966l-10.086,7.455l 1.987-12.38c 10.557-65.864, 41.503-129.423, 82.79-170.025
238
+ c 24.975-24.596, 65.956-40.489, 104.397-40.489c 44.411,0, 91.996,23.081, 92.324,87.859c 0.287,60.672-37.181,100.076-67.297,131.738L 214.712,216.023zM 494.971,271.657c-11.93,22.19-56.781,38.369-79.278,33.444c-34.079-7.434-57.969-26.716-79.053-43.735
239
+ c-21.576-17.428-40.223-32.471-65.106-32.471c-7.475,0-15.124,1.331-23.378,4.055l-13.107,4.332l 7.107-11.827
240
+ c 16.323-27.167, 35.379-40.376, 58.255-40.376c 18.586,0.010, 37.612,8.919, 56.463,20.46l 4.229-12.534c 9.574-28.355, 51.251-70.41, 89.19-70.41
241
+ c 0.758,0, 1.516,0.020, 2.273,0.061c 16.558,0.737, 30.382,10.066, 39.987,27.003C 512.236,184.34, 510.013,243.722, 494.971,271.657z M 382.935,222.648
242
+ c 27.976,19.016, 57.364,38.543, 81.439,34.294c 10.476-18.207, 6.195-33.884, 0.625-43.96c-10.629-19.18-33.915-32.584-56.648-32.584
243
+ c-10.711,0-26.081,3.052-38.492,17.572l-8.735,10.209C 368.425,212.797, 375.706,217.743, 382.935,222.648z" data-tags="hindu_temple" />
244
+ <glyph unicode="&#xe025;" d="M 225.28,460.216L 225.28,346.88 l-20.48,0 L 204.8,459.52 c0,5.652-4.588,10.24-10.24,10.24s-10.24-4.588-10.24-10.24l0-112.64 l-20.48,0 L 163.84,459.889 c0,13.179-20.48,12.728-20.48,0.338L 143.36,346.88 l-20.48,0 L 122.88,459.418
245
+ c0,13.957-20.48,13.445-20.48,0.553l0-148.193 c0-21.371, 20.48-35.461, 40.96-35.461L 143.36,8.96 c0-40.96, 61.44-40.96, 61.44,0L 204.8,276.306 c 20.48,0, 40.96,17.019, 40.96,33.044L 245.76,459.889
246
+ C 245.76,472.945, 225.28,472.443, 225.28,460.216zM 317.44,428.8l0-256 l 20.48,0 l0-163.84 c0-40.96, 71.68-40.96, 71.68,0L 409.6,428.8 C 409.6,480, 317.44,480, 317.44,428.8z" data-tags="restaurant" />
247
+ <glyph unicode="&#xe026;" d="M 337.029,152.32l-60.508,166.267c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393
248
+ c 2.161,0, 3.973-1.444, 4.454-3.369L 326.339,213.76c 2.734-6.154, 13.978-10.24, 21.371-10.24c 9.882,0, 10.906,19.405, 10.691,20.48l-41.134,106.056
249
+ C 313.692,353.823, 289.69,377.6, 262.298,377.6L 208.691,377.6 c-27.392,0-53.176-23.777-56.75-47.544L 112.65,224c-0.891-2.038,0-20.48, 10.68-20.48
250
+ c 8.305,0, 19.354,2.898, 21.371,10.24l 39.68,108.022c 0.635,1.7, 2.335,2.908, 4.311,2.908c 2.529,0, 4.567-1.966, 4.567-4.383
251
+ c0-0.553-0.092-1.085-0.287-1.567L 134.021,152.32c-0.113-0.492,0-9.738,0-10.24c0-3.543, 8.55-10.24, 12.268-10.24L 184.32,131.84 l0-134.093
252
+ C 184.32-12.902, 193.7-21.76, 204.8-21.76c 11.1,0, 20.48,8.868, 20.48,19.507L 225.28,131.932 c0,2.898, 20.48,2.806, 20.48-0.092l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48c 11.121,0, 20.48,9.841, 20.48,20.48L 286.72,131.84
253
+ l 39.619,0 c 3.707,0, 10.691,6.697, 10.691,10.24C 337.029,142.899, 337.326,151.613, 337.029,152.32zM 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64z" data-tags="female" />
254
+ <glyph unicode="&#xe027;" d="M 184.32-1.28c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 225.28,193.28 l 20.48,0 l0-194.56 c0-12.605, 7.854-20.48, 20.48-20.48c 12.626,0, 20.48,7.854, 20.48,20.48L 286.72,326.4 l 10.24,0 l0-120.975
255
+ c0-24.525, 30.781-24.525, 30.72,0L 327.68,329.871 C 327.68,356.966, 308.163,377.6, 276.48,377.6l-81.92,0 c-28.877,0-51.2-17.603-51.2-46.971L 143.36,203.52 c0-20.48, 30.72-20.48, 30.72,0L 174.080,326.4 l 10.24,0 L 184.32-1.28 zM 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64z" data-tags="male" />
256
+ <glyph unicode="&#xe028;" d="M 470.303,183.562l-1.116,3.011c-3.502,9.441-7.834,21.176-18.934,27.822c-7.731,4.628-16.722,6.236-24.648,7.649
257
+ c-4.076,0.727-7.936,1.434-11.244,2.437c-0.973,0.287-1.935,0.655-2.908,1.024c-0.154,0.051-0.307,0.092-0.461,0.154
258
+ c-31.826,25.559-96.266,26.255-136.407,62.403C 217.057,339.835, 170.885,391.895, 118.958,469.76L 54.077,417.843c-4.506-3.604-13.107-6.492-13.107-19.466
259
+ c0-6.482, 6.595-7.475, 14.367-5.069l 36.598,11.561L 194.56,262.083c0-25.958,0-53.688,0-77.885c0-18.022-0.297-34.427, 14.991-43.745L 171.008-21.76l 25.958,0
260
+ l 24.392,77.025L 245.76,93.358l0-38.943 L 245.76-21.76 l 30.72,0 L 276.48,106.322 c0,0-0.358,25.958, 25.6,25.958s 25.6-25.958, 25.6-25.958l0-90.839 L 327.68-21.76 l 20.48,0 L 348.16,80.64 l 56.484-102.4l 25.958,0
261
+ C 417.618,19.2, 399.36,15.483, 399.36,54.415l0,25.958 c0,27.218, 30.72,51.917, 30.72,77.875l0,25.938 c0,6.164-0.799,11.622-2.202,16.558
262
+ c 4.526-0.922, 8.684-2.038, 11.848-3.942c 4.905-2.939, 7.619-10.271, 10.24-17.357l 1.188-3.195c 2.017-5.274, 7.926-7.926, 13.21-5.919l 0.010,0.010
263
+ C 469.668,172.37, 472.32,178.278, 470.303,183.562z" data-tags="zoo" />
264
+ <glyph unicode="&#xe029;" d="M 189.235,286.72c 23.859,4.055, 41.554,25.784, 44.247,51.743c 2.734,26.399, 8.899,132.485-30.925,125.737
265
+ C 99.256,446.679, 106.506,272.691, 189.235,286.72zM 325.151,286.72c 82.708-14.029, 89.958,159.959-13.343,177.49c-39.813,6.748-33.659-99.338-30.935-125.737
266
+ C 283.576,312.504, 301.292,290.775, 325.151,286.72zM 146.801,204.749c0,13.804-4.925,26.317-12.861,35.42c-13.056,17.060-54.559,51.558-64.748,42.721C 47.923,264.397, 48.609,218.88, 61.42,185.805
267
+ c 6.584-18.391, 22.487-31.324, 41.073-31.324C 126.956,154.481, 146.801,176.988, 146.801,204.749zM 445.164,282.89c-10.168,8.837-51.671-25.661-64.727-42.721c-7.936-9.103-12.872-21.617-12.872-35.42
268
+ c0-27.761, 19.866-50.268, 44.308-50.268c 18.596,0, 34.509,12.933, 41.093,31.324C 465.746,218.88, 466.452,264.397, 445.164,282.89zM 361.851,126.454c-37.642,18.77-36.475,54.917-45.036,87.9c-6.81,26.307-30.925,45.763-59.628,45.763
269
+ c-28.088,0-51.784-18.647-59.177-44.155c-9.165-31.56-3.645-68.301-44.677-89.262c-33.331-10.865-46.828-26.716-46.828-64.205
270
+ c0-30.454, 26.143-63.058, 59.884-67.113c 37.642-5.673, 67.011,1.741, 90.798,15.299c 23.788-13.558, 53.135-20.961, 90.839-15.299
271
+ c 33.72,4.055, 59.873,36.536, 59.873,67.113C 407.89,100.803, 395.254,115.077, 361.851,126.454z M 317.44,80.64l-39.025,0 l 0.051-40.96l-42.557,0 l 0.061,40.96L 194.56,80.64 l0,40.96
272
+ l 41.421,0 l-0.061,40.96l 42.557,0 l-0.051-40.96L 317.44,121.6 L 317.44,80.64 z" data-tags="veterinary_care" />
273
+ <glyph unicode="&#xe02a;" d="M 219.484,401.265L 194.56,367.36l-58.204,0 c 7.178-20.48, 30.679-39.793, 63.498-33.382c 9.728,0.655, 42.547,5.868, 56.146,2.662
274
+ c 18.104-4.342, 10.557-4.362, 43.018-30.413L 460.8,172.8c 9.912-8.755, 22.589-5.171, 31.365,4.721C 500.941,187.433, 501.432,205.005, 491.52,213.76L 286.72,377.6
275
+ c-12.82,10.291-16.056,24.545-20.48,40.96c-8.602,28.211-40.233,50.842-71.281,50.842C 169.943,469.402, 143.022,447.764, 133.12,428.8l 61.44,0 L 219.484,401.265zM 359.977,152.32L 359.977,152.32l-63.304,109.875C 294.175,266.752, 287.857,275.2, 282.665,275.2L 106.455,275.2 c-5.192,0-11.51-8.448-14.019-13.005L 30.72,152.32L 29.143,152.32
276
+ C 18.749,152.32, 10.24,148.541, 10.24,138.138l0-94.515 C 10.24,33.219, 18.749,29.44, 29.143,29.44L 51.2,29.44 l0-33.075 C 51.2-19.241, 60.805-32, 76.401-32l 9.452,0
277
+ C 101.458-32, 112.64-19.241, 112.64-3.635L 112.64,29.44 l 163.84,0 l0-33.075 c0-15.596, 11.182-28.365, 26.778-28.365l 9.452,0 C 328.315-32, 337.92-19.241, 337.92-3.635L 337.92,29.44 l 22.057,0
278
+ C 370.371,29.44, 378.88,33.219, 378.88,43.622l0,94.515 C 378.88,148.541, 370.371,152.32, 359.977,152.32z M 62.228,81.428c-13.056,0-23.634,10.578-23.634,23.634
279
+ s 10.578,23.634, 23.634,23.634c 13.046,0, 23.634-10.578, 23.634-23.634S 75.284,81.428, 62.228,81.428z M 81.132,152.32l 38.308,80.159
280
+ C 121.764,237.128, 127.928,244.48, 133.12,244.48l 122.88,0 c 5.192,0, 11.346-7.352, 13.681-12.001L 307.988,152.32L 81.132,152.32 z M 326.892,81.428
281
+ c-13.046,0-23.634,10.578-23.634,23.634s 10.578,23.634, 23.634,23.634s 23.634-10.578, 23.634-23.634S 339.937,81.428, 326.892,81.428zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" data-tags="car_repair" />
282
+ <glyph unicode="&#xe02b;" d="M 255.99,199.619c-55.357,0-102.39-16.097-133.11-41.329L 122.88,111.36 l 266.24,0 l0,46.93 C 358.4,183.521, 311.357,199.619, 255.99,199.619zM 500.429,223.703L 255.345,336.64L 10.363,223.703L 51.2,205.015l0-28.744 c-10.24-2.12-10.271-7.485-10.271-13.865c0-3.768, 1.249-8.182, 3.625-10.824
283
+ L 30.546,121.6l 49.971,0 l-13.885,30.003c 2.335,2.642, 4.25,6.533, 4.25,10.301C 70.881,168.274, 61.44,174.162, 61.44,176.282l0,23.931 l 51.2-22.999L 112.64,179.251
284
+ c 30.72,26.716, 84.695,43.674, 143.34,43.674C 314.644,222.925, 368.64,205.967, 399.36,179.251l0-2.038 L 500.429,223.703z" data-tags="university" />
285
+ <glyph unicode="&#xe02c;" d="M 471.040,336.64L 348.16,336.64 l0,40.714 C 348.16,406.548, 329.308,439.040, 300.145,439.040l-98.222,0 C 172.728,439.040, 153.6,406.548, 153.6,377.354L 153.6,336.64 L 40.96,336.64 c-11.264,0-20.48-9.216-20.48-20.48l0-296.96 c0-11.264, 9.216-20.48, 20.48-20.48
286
+ l 430.080,0 c 11.264,0, 20.48,9.216, 20.48,20.48L 491.52,316.16 C 491.52,327.424, 482.304,336.64, 471.040,336.64z M 307.2,29.44L 194.56,29.44 l0,10.926 c0,0.236, 6.277,0.543, 9.277,0.901s 5.632,0.963, 7.793,1.802
287
+ c 3.84,1.444, 8.141,3.512, 9.708,6.205S 225.28,55.552, 225.28,59.986l0,104.755 c0,4.198-2.54,7.895-4.465,11.069s-5.11,5.734-7.987,7.649
288
+ c-2.161,1.444-3.676,2.816-8.059,4.137S 194.56,189.768, 194.56,190.126l0,13.138 l 83.712,4.68L 276.48,205.251l0-142.92 c0-4.198, 3.236-7.772, 5.038-10.711
289
+ s 5.55-5.13, 8.909-6.574c 2.396-1.075, 4.966-2.038, 7.854-2.877S 307.2,40.735, 307.2,40.366L 307.2,29.44 z M 211.139,272.753
290
+ c0,9.124, 3.512,16.916, 10.527,23.398s 15.391,9.718, 25.108,9.718s 18.063-3.236, 25.016-9.718s 10.445-14.285, 10.445-23.398s-3.512-16.886-10.527-23.306
291
+ s-15.329-9.626-24.934-9.626c-9.718,0-18.094,3.205-25.108,9.626S 211.139,263.629, 211.139,272.753z M 317.44,336.64L 184.32,336.64 l0,40.714 C 184.32,388.28, 195.379,408.32, 206.305,408.32
292
+ l 82.452,0 C 299.663,408.32, 317.44,388.28, 317.44,377.354L 317.44,336.64 z" data-tags="travel_agency" />
293
+ <glyph unicode="&#xe02d;" d="M 212.132,234.24L 32.348,234.24 c-5.243,0-9.554,3.215-9.554,8.346c0,0.85, 0.154,1.178, 0.328,1.946l 9.574,61.501
294
+ C 33.495,310.374, 37.396,305.92, 42.086,305.92l 160.328,0 c 4.649,0, 8.581,4.219, 9.37-0.123l 9.585-65.526c 0.154-0.788, 0.338,1.27, 0.338,0.389
295
+ C 221.706,235.571, 217.364,234.24, 212.132,234.24z M 204.933,156.733c-10.107,0-18.34,7.997-18.34,17.92c0,9.871, 8.223,17.818, 18.34,17.818
296
+ c 10.056,0, 18.278-7.946, 18.278-17.818C 223.212,164.731, 214.999,156.733, 204.933,156.733z M 39.281,156.733c-10.025,0-18.248,7.997-18.248,17.92
297
+ c0,9.871, 8.212,17.818, 18.248,17.818c 10.168,0, 18.371-7.946, 18.371-17.818C 57.651,164.731, 49.449,156.733, 39.281,156.733z M 61.44,357.12l 112.64,0 l0-30.72 L 61.44,326.4
298
+ C 51.2,326.4, 51.2,357.12, 61.44,357.12z M 232.428,329.441c-3.267,15.79-14.459,22.139-30.095,28.498c-15.606,6.339-52.562,13.926-79.749,13.926
299
+ c-27.3,0-64.051-7.598-79.657-13.926c-15.616-6.359-26.982-12.708-30.249-28.498L0,241.521L0,121.6 l 18.278,0 l0,0c0-51.2, 34.417-51.2, 34.417,0l0,0l 137.636,0 l0,0
300
+ c0-51.2, 34.406-51.2, 34.406,0l0,0L 245.76,121.6 L 245.76,241.521 L 232.428,329.441zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 458.332,120.637c0,0.256-0.276,0.666-0.819,1.485c0,0.236, 0.154,0.41, 0.41,0.563c 0.246,0.154, 0.41,0.276, 0.41,0.563
301
+ c 7.66,3.164, 14.633,7.066, 20.869,11.684c 6.216,4.669, 9.503,11.469, 11.663,20.47C 491.080,156.447, 491.52,158.884, 491.52,162.601L 491.52,348.713
302
+ c0,4.495-0.44,9.155-3.082,13.885c-2.662,4.823-5.519,9.134-9.523,12.964c-3.963,3.789-9.697,7.014-14.633,9.554
303
+ C 460.012,387.308, 450.56,388.475, 450.56,388.751L 450.56,387.84 l 1.382,0 L 318.74,387.84 L 317.44,387.84 L 317.44,388.577 c-10.24-0.471-7.741-1.536-11.284-3.256c-4.915-2.396-10.025-5.448-14.121-9.165
304
+ c-4.096-3.686-8.202-7.875-10.854-12.493C 278.528,358.963, 276.48,354.427, 276.48,349.88l0-188.887 c0-3.174, 1.26-6.492, 2.796-9.943
305
+ c 1.618-3.451, 3.809-6.676, 6.185-9.697c 2.376-3.113, 5.1-5.888, 7.895-8.387c 2.775-2.509, 5.55-4.577, 8.212-6.164
306
+ c 1.28-0.543, 3.656-1.362, 7.004-2.417c 3.256-1.055, 4.813-1.638, 4.567-2.161L 258.642,39.68l 31.805,0 l 39.793,61.44l 109.793,0 l 39.752-61.44L 512,39.68 L 458.332,120.637z
307
+ M 366.152,377.6l 36.465,0 c 8.018,0, 14.592-2.212, 14.592-10.24c0-8.018-6.574-10.24-14.592-10.24l-36.465,0 c-8.028,0-14.592,2.222-14.592,10.24
308
+ C 351.56,375.388, 358.124,377.6, 366.152,377.6z M 460.8,283.894C 460.8,267.776, 447.744,254.72, 431.626,254.72L 326.134,254.72 C 310.016,254.72, 296.96,267.776, 296.96,283.894l0,23.583
309
+ C 296.96,323.584, 310.016,336.64, 326.134,336.64l 105.503,0 C 447.744,336.64, 460.8,323.584, 460.8,307.466L 460.8,283.894 z M 339.21,154.225c-4.106-4.239-9.247-6.349-15.309-6.349
310
+ c-6.113,0-11.090,2.109-14.961,6.349c-3.83,4.229-5.755,9.441-5.755,15.544c0,5.56, 1.997,10.394, 5.99,14.49
311
+ c 3.963,4.116, 8.878,6.195, 14.725,6.195c 6.062,0, 11.203-1.966, 15.309-5.755c 4.106-3.891, 6.164-8.94, 6.164-15.36
312
+ C 345.375,163.502, 343.316,158.454, 339.21,154.225z M 430.295,154.225c-4.106,4.229-6.185,9.441-6.185,15.544c0,6.113, 2.181,11.049, 6.574,14.94
313
+ c 4.393,3.779, 9.492,5.755, 15.34,5.755c 6.052,0, 11.049-2.079, 14.899-6.195c 3.83-4.096, 5.775-8.929, 5.775-14.49
314
+ c0-6.103-2.007-11.305-5.98-15.544c-4.004-4.239-9.021-6.349-15.145-6.349C 439.491,147.866, 434.391,149.975, 430.295,154.225z" data-tags="transit_station" />
315
+ <glyph unicode="&#xe02e;" d="M 356.157,411.761L 284.979,411.761 c-12.861-0.041-12.38-19.21,0-19.098l 71.178,0 l0-9.8 L 284.979,382.863 c-12.79,0.113-12.319-19.046,0-19.098l 71.178,0 l0-9.544
316
+ l0-0.471 L 284.979,353.751 c-12.79,0-12.319-19.149,0-19.098l 71.178,0 l0-9.544 L 284.979,325.11 c-12.524-0.092-12.319-19.261,0-19.323l 71.178,0 l0-9.564 L 284.979,296.223
317
+ c-12.524,0.041-12.575-19.098,0-19.098l 71.178,0 l0-9.544 L 284.979,267.581 c-12.524-0.041-12.575-19.2,0-19.108l 71.178,0 l0-9.779 L 284.979,238.694
318
+ c-12.524,0.113-12.575-19.026,0-19.098l 71.178,0 l0-9.523 L 284.979,210.074 c-12.524,0.010-12.319-19.169,0-19.108l 71.178,0 l0-185.948
319
+ c 0.041-28.334, 43.080-27.822, 43.203,0L 399.36,440.166 c-0.123,12.943-10.752,29.307-28.242,29.358L 284.979,469.524 c-12.861-0.010-12.38-19.18,0-19.098l 71.178-0.236
320
+ l0-9.523 L 284.979,440.668 c-12.841,0.061-12.36-19.098,0-19.108l 71.178,0 L 356.157,411.761 L 356.157,411.761zM 280.084,82.094C 280.044,115.169, 245.76,150.743, 204.8,127.703L 204.8,254.208 L 178.309,462.848C 177.756,468.367, 173.076,469.668, 169.933,469.76
321
+ c-3.246-0.092-9.748-1.393-10.455-6.912L 133.12,254.208l0-126.505 c-40.96,23.040-74.138-12.759-74.148-45.353c 0.010-29, 22.333-52.818, 52.541-52.746
322
+ c 30.433-0.072, 52.326,26.624, 52.326,52.746L 163.84,213.76 l 10.24,0 l0-131.41 c0-29.245, 22.651-50.893, 47.821-52.265c-0.42-16.036, 4.813-38.912, 14.664-47.985
323
+ c 11.551-10.65, 25.303,2.97, 19.661,14.060c-5.448,10.322-10.793,16.435-6.451,38.973C 267.919,43.53, 280.044,61.204, 280.084,82.094z
324
+ M 112.681,56.074c-14.295,0.092-25.846,11.684-25.866,26.020c 0.020,14.326, 11.571,25.969, 25.866,26.051c 14.193-0.082, 25.754-11.725, 25.856-26.051
325
+ C 138.435,67.748, 126.874,56.156, 112.681,56.074z M 200.448,82.094c 0.092,14.326, 11.633,25.969, 25.866,26.051
326
+ c 14.254-0.082, 25.815-11.725, 25.856-26.051c-0.041-14.336-11.592-25.928-25.856-26.020C 212.081,56.156, 200.53,67.748, 200.448,82.094z" data-tags="beauty_salon" />
327
+ <glyph unicode="&#xe02f;" d="M 253.112-21.76C 134.943-21.76, 38.799,74.383, 38.799,192.563c0,75.633, 38.666,144.21, 103.444,183.429c 13.885,8.407, 31.928,3.963, 40.325-9.902
328
+ c 8.397-13.865, 3.953-31.918-9.902-40.325c-47.053-28.488-75.141-78.295-75.141-133.202c0-85.801, 69.796-155.597, 155.597-155.597
329
+ c 85.801,0, 155.587,69.796, 155.587,155.597c0,55.808-30.147,107.674-78.715,135.322c-14.1,8.028-19.005,25.948-10.988,40.038
330
+ c 8.028,14.080, 25.948,18.995, 40.038,10.977c 66.867-38.072, 108.39-109.486, 108.39-186.348C 467.425,74.383, 371.302-21.76, 253.112-21.76zM 250.88,195.492c-16.21,0-35.84,13.148-35.84,29.358L 215.040,436.234 c0,16.21, 19.63,29.358, 35.84,29.358c 16.21,0, 35.84-13.148, 35.84-29.358l0-211.384
331
+ C 286.72,208.64, 267.090,195.492, 250.88,195.492z" data-tags="electronics_store" />
332
+ <glyph unicode="&#xe030;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
333
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
334
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
335
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669z" data-tags="search" />
336
+ <glyph unicode="&#xe031;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
337
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
338
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
339
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669zM 122.88,295.68L 286.72,295.68L 286.72,254.72L 122.88,254.72z" data-tags="zoom-out-alt" />
340
+ <glyph unicode="&#xe032;" d="M 261.192,248.863c-15.483,0-28.068-12.585-28.068-28.058c0-15.473, 12.585-28.058, 28.068-28.058c 15.473,0, 28.068,12.585, 28.068,28.058
341
+ C 289.26,236.278, 276.664,248.863, 261.192,248.863zM 428.278,438.292C 428.278,450.017, 418.775,459.52, 407.060,459.52L 103.148,459.52 C 91.423,459.52, 81.92,450.017, 81.92,438.292l0-428.605 C 81.92-2.028, 91.423-11.52, 103.148-11.52l 303.913,0
342
+ c 11.725,0, 21.217,9.492, 21.217,21.207L 428.278,438.292 z M 261.192,86.63c-73.984,0-134.175,60.18-134.175,134.175c0,73.974, 60.191,134.164, 134.175,134.164
343
+ c 73.974,0, 134.154-60.191, 134.154-134.164C 395.336,146.811, 335.155,86.63, 261.192,86.63z" data-tags="movie_rental" />
344
+ <glyph unicode="&#xe033;" d="M 423.987,255.867l-25.18,105.124c-4.413,18.34-22.999,29.86-41.441,25.334c-16.22-3.963-24.105-15.196-27.3-23.101
345
+ c-3.779-9.329-20.644-51.599-24.586-60.334c-1.382-3.031-4.301-4.628-4.895-4.895c-3.348-1.485-36.864-15.626-36.864-15.626l0-0.061
346
+ c-6.615-3.103-11.203-9.718-11.203-17.439c0-10.68, 8.745-19.343, 19.528-19.343c 2.324,0, 4.536,0.481, 6.615,1.219
347
+ c0-0.010-0.020-0.041,0-0.072c 0.215,0.092, 44.493,18.493, 44.493,18.493c 6.103,2.847, 9.083,6.451, 12.114,11.704
348
+ c 1.27,2.212, 5.13,11.469, 8.274,19.067l 26.849-112.282C 370.381,121.498, 370.36,9.677, 370.36,9.677c-0.051-17.285, 11.889-31.375, 29.338-31.437
349
+ c 17.469-0.061, 30.095,13.896, 30.208,31.212c0,0, 0.174,195.656, 0.174,205.343C 430.060,224.451, 426.22,247.398, 423.987,255.867zM 287.171,430.643A39.475,39.117 180 1 1 366.121,430.64300000000003A39.475,39.117 180 1 1 287.171,430.64300000000003zM 175.421,100.076l0-43.827 c 5.683,1.044, 10.281,3.645, 13.855,7.813c 3.543,4.168, 5.315,9.042, 5.315,14.653
350
+ c0,5.018-1.485,9.349-4.454,12.995C 187.126,95.314, 182.221,98.099, 175.421,100.076zM 148.347,168.141c-2.662-3.584-4.004-7.557-4.004-11.899c0-3.994, 1.219-7.66, 3.625-11.059c 2.437-3.42, 6.113-6.185, 10.998-8.274
351
+ l0,38.881 l0,0C 154.511,174.295, 150.958,171.735, 148.347,168.141zM 252.488,220.201l 0.041,0 l-61.184,122.747l-0.010-0.113c-4.495,9.298-14.039,15.718-25.139,15.718l-56.392,0
352
+ C 94.413,358.564, 81.92,346.194, 81.92,330.936l0-215.081 c0-0.031,0-0.061,0-0.092L 81.92-21.76 l 173.732,0 L 255.652,206.356 C 255.631,211.313, 254.495,216.003, 252.488,220.201z
353
+ M 209.971,48.486c-8.294-9.288-19.804-14.981-34.519-17.070l0-21.023 l-16.456,0 l0,20.46 c-13.087,1.567-23.685,6.41-31.877,14.49
354
+ c-8.151,8.1-13.363,19.517-15.626,34.273l 29.594,3.164c 1.198-6.001, 3.461-11.172, 6.81-15.534c 3.308-4.342, 7.014-7.485, 11.090-9.431
355
+ l0,47.084 c-14.807,4.198-25.692,10.557-32.584,19.026c-6.932,8.499-10.394,18.811-10.394,30.956c0,12.288, 3.901,22.61, 11.756,30.976
356
+ c 7.823,8.346, 18.227,13.169, 31.232,14.428l0,11.131 l 16.456,0 l0-11.131 c 12.001-1.413, 21.576-5.478, 28.682-12.175c 7.086-6.687, 11.622-15.688, 13.599-26.921
357
+ l-28.682-3.707c-1.751,8.827-6.277,14.838-13.599,17.981l0-43.93 c 18.135-4.884, 30.495-11.192, 37.079-18.934
358
+ c 6.564-7.762, 9.861-17.705, 9.861-29.839C 222.392,69.202, 218.255,57.784, 209.971,48.486z" data-tags="atm" />
359
+ <glyph unicode="&#xe034;" d="M 475.914,268.421l-0.133,1.034c-0.287,1.444-0.819,2.898-1.3,3.707L 409.6,377.6c0,0-8.274,10.24-10.24,10.24c-30.72,0-245.76,0-276.48,0L 39.731,276.705
360
+ l-0.983-1.024L 38.615,275.2c-0.655-1.034-1.219-2.202-1.72-3.584L 36.557,270.623c-0.492-1.7-0.717-3.174-0.655-5.386
361
+ c 0.072-1.434, 0.328-2.857, 0.788-4.342l 0.389-1.116c 0.522-1.321, 1.167-2.529, 1.925-3.604l 201.021-254.638l 0.41-0.584
362
+ c 1.034-1.331, 2.294-2.509, 3.83-3.584l 1.167-0.727c 1.147-0.717, 2.345-1.29, 4.086-1.925l 1.137-0.379C 252.621-6.164, 254.331-6.4, 256-6.4
363
+ c 1.69,0, 3.338,0.225, 5.56,0.799l 1.362,0.481c 1.331,0.471, 2.529,1.055, 3.973,1.946l 0.901,0.563c 1.546,1.096, 2.785,2.284, 3.471,3.215
364
+ l 201.277,254.904c 0.901,1.167, 1.659,2.478, 2.56,4.803c 0.492,1.29, 0.707,2.54, 0.819,3.287c 0.092,0.522, 0.154,1.055, 0.154,1.321
365
+ l 0.082,1.044C 476.16,266.988, 476.047,268.012, 475.914,268.421z M 367.985,275.2l 28.652,51.845L 425.267,275.2L 367.985,275.2 z M 350.802,244.48l 67.973,0 L 305.48,100.966
366
+ L 350.802,244.48z M 333.988,290.744L 292.608,346.88l 72.397,0 L 333.988,290.744z M 201.441,244.48l 109.148,0 L 256,71.66L 201.441,244.48z M 212.265,275.2L 256,334.551L 299.735,275.2
367
+ L 212.265,275.2 z M 181.463,295.393L 162.499,346.88l 56.904,0 L 181.463,295.393z M 206.541,100.956L 93.235,244.48l 67.983,0 L 206.541,100.956z M 129.69,326.687L 148.664,275.2L 91.75,275.2
368
+ L 129.69,326.687z" data-tags="jewelry_store" />
369
+ <glyph unicode="&#xe035;" d="M-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 440.32,418.56L 440.32,459.52L 71.68,459.52L 71.68,418.56L0,418.56L0-21.76L 40.96-21.76L 40.96,377.6L 71.68,377.6L 71.68,336.64L 440.32,336.64L 440.32,377.6L 471.040,377.6L 471.040-21.76L 512-21.76L 512,418.56 zM 430.612,183.040L 430.612,183.040l-66.816,113.92C 361.144,301.885, 354.478,305.92, 348.989,305.92L 163,305.92 c-5.489,0-12.155-4.035-14.797-8.96L 81.398,183.040
370
+ l0,0C 70.42,183.040, 61.44,173.824, 61.44,162.56l0-102.4 c0-11.264, 8.98-20.48, 19.958-20.48L 102.4,39.68 l0-30.72 c0-16.896, 12.421-30.72, 28.877-30.72l 9.984,0 C 157.716-21.76, 174.080-7.936, 174.080,8.96l0,30.72 l 163.84,0 l0-30.72
371
+ c0-16.896, 16.353-30.72, 32.819-30.72l 9.984,0 c 16.456,0, 28.877,13.824, 28.877,30.72l0,30.72 l 21.012,0 C 441.58,39.68, 450.56,48.896, 450.56,60.16L 450.56,162.56 C 450.56,173.824, 441.58,183.040, 430.612,183.040z
372
+ M 116.316,101.12c-13.773,0-24.945,11.459-24.945,25.6s 11.172,25.6, 24.945,25.6c 13.783,0, 24.945-11.459, 24.945-25.6S 130.099,101.12, 116.316,101.12z M 131.277,183.040
373
+ l 45.425,83.005c 2.458,5.038, 8.96,9.155, 14.438,9.155l 129.71,0 c 5.489,0, 11.991-4.116, 14.438-9.155L 380.723,183.040L 131.277,183.040 z M 395.684,101.12
374
+ c-13.773,0-24.945,11.459-24.945,25.6s 11.172,25.6, 24.945,25.6c 13.783,0, 24.955-11.459, 24.955-25.6S 409.457,101.12, 395.684,101.12z" data-tags="car_wash" />
375
+ <glyph unicode="&#xe036;" d="M 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64zM 225.28,377.6l-30.72,0 c-28.877,0-51.2-17.603-51.2-46.971L 143.36,203.52 c0-20.48, 30.72-20.48, 30.72,0L 174.080,326.4 l 10.24,0 l0-327.68 c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 225.28,193.28 L 225.28,377.6 zM 358.4,224l-41.134,106.056C 313.692,353.823, 289.69,377.6, 262.298,377.6L 235.52,377.6 l0-243.538 c 5.12-0.020, 10.24-0.768, 10.24-2.222l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48
376
+ c 11.121,0, 20.48,9.841, 20.48,20.48L 286.72,131.84 l 39.619,0 c 3.707,0, 10.691,6.697, 10.691,10.24c0,0.819, 0.297,9.533,0,10.24l-60.508,166.267
377
+ c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393c 2.161,0, 3.973-1.444, 4.454-3.369L 326.339,213.76
378
+ c 2.734-6.154, 13.978-10.24, 21.371-10.24C 357.591,203.52, 358.615,222.925, 358.4,224z" data-tags="unisex" />
379
+ <glyph unicode="&#xe037;" d="M 286.556,165.335c-23.050,0-41.759-18.944-41.759-42.342c0-23.388, 18.719-42.363, 41.759-42.363c 23.060,0, 41.748,18.975, 41.748,42.363
380
+ C 328.315,146.401, 309.617,165.335, 286.556,165.335z M 286.556,100.577c-12.237,0-22.118,10.025-22.118,22.415c0,12.38, 9.882,22.456, 22.118,22.456
381
+ c 12.196,0, 22.129-10.076, 22.129-22.456C 308.695,110.602, 298.762,100.577, 286.556,100.577zM 459.336,352.061C 444.559,357.161, 349.204,367.36, 286.433,367.36c-62.761,0-163.84-10.332-178.801-14.756C 106.086,352.154, 61.44,339.845, 61.44,291.441L 61.44,162.253
382
+ C 61.44,153.477, 64.727,142.080, 69.581,142.080L 10.24,142.080 l0-20.48 l 224.922,0 c0,30.72, 23.163,52.449, 51.692,52.449c 28.57,0, 51.722-21.729, 51.722-52.449l 125.245,0
383
+ C 484.803,121.6, 501.76,141.015, 501.76,162.253L 501.76,298.312 C 501.76,319.56, 485.786,342.917, 459.336,352.061z M 205.169,250.9c0-4.035-2.877-6.42-6.83-6.42
384
+ l-67.41,0 C 126.945,244.48, 122.88,245.996, 122.88,250.030l0,47.739 C 122.88,301.783, 126.945,305.92, 130.918,305.92l 67.41,0 C 202.281,305.92, 204.8,301.783, 204.8,297.769l0-47.739
385
+ L 205.169,250.9z M 450.56,250.030C 450.56,245.996, 447.386,244.48, 443.392,244.48L 294.236,244.48 C 290.253,244.48, 286.72,245.996, 286.72,250.030l0,47.739
386
+ C 286.72,301.783, 290.253,305.92, 294.236,305.92L 443.392,305.92 c 4.004,0, 7.168-4.137, 7.168-8.151L 450.56,250.030 z" data-tags="rv_park" />
387
+ <glyph unicode="&#xe038;" d="M 307.2,398.080l0-337.92 L 61.44,60.16 L 61.44,398.080 L 307.2,398.080 M 348.16,439.040L 20.48,439.040 l0-430.080 l 327.68,0 L 348.16,439.040 L 348.16,439.040zM 92.16,357.12L 276.48,357.12L 276.48,316.16L 92.16,316.16zM 92.16,285.44L 276.48,285.44L 276.48,244.48L 92.16,244.48zM 92.16,213.76L 276.48,213.76L 276.48,172.8L 92.16,172.8zM 92.16,142.080L 276.48,142.080L 276.48,101.12L 92.16,101.12zM 409.6,357.12L 491.52,357.12L 491.52,70.4L 409.6,70.4zM 450.621,469.76C 428.155,469.76, 409.6,451.686, 409.6,429.445L 409.6,387.84 l 81.92,0 L 491.52,429.445 C 491.52,451.686, 472.996,469.76, 450.621,469.76zM 408.965,39.68L 450.345-25.723L 491.52,39.68 z" data-tags="school" />
388
+ <glyph unicode="&#xe039;" d="M 484.966,328.96c 0.819-2.97-0.215-6.246-1.946-8.806l-55.194-82.125c-2.048-3.174-6.349-4.915-9.943-4.915c-1.024,0-3.891,0.205-5.007,0.512
389
+ L 368.64,244.48l0-194.56 c0-5.939-4.198-10.24-10.24-10.24L 143.36,39.68 c-6.042,0-10.24,4.301-10.24,10.24L 133.12,244.48 l-39.731-10.957c-4.608-1.434-8.602,0.41-11.162,4.403l-54.784,81.92
390
+ c-1.741,2.662-2.253,5.632-1.434,8.602c 0.717,3.072, 2.867,5.12, 5.632,6.554L 143.36,387.84c 10.24,0, 51.2,0, 51.2,0c 6.042,0, 10.24-4.198, 10.24-10.24c0-21.094, 29.594-36.045, 50.688-36.045
391
+ c 21.094,0, 51.712,14.848, 51.712,36.045c0,5.939, 4.198,10.24, 10.24,10.24c0,0, 40.96,0, 51.2,0l 110.592-51.814C 482.099,334.592, 484.147,332.032, 484.966,328.96z" data-tags="clothing_store" />
392
+ <glyph unicode="&#xe03a;" d="M 61.44,367.36l0-345.498 C 61.44,6.81, 74.107-11.52, 89.702-11.52l 340.152,0 C 445.409-11.52, 460.8,6.81, 460.8,21.862L 460.8,367.36 L 61.44,367.36 z M 260.71,93.174
393
+ c-60.006,0-108.657,47.043-108.657,105.093c0,58.051, 48.65,105.093, 108.657,105.093s 108.657-47.043, 108.657-105.093
394
+ C 369.367,140.206, 320.717,93.174, 260.71,93.174zM 429.855,469.76L 89.702,469.76 C 74.107,469.76, 61.44,459.182, 61.44,444.109L 61.44,387.84 l 399.36,0 L 460.8,444.109 C 460.8,459.182, 445.409,469.76, 429.855,469.76z M 194.56,408.32L 81.92,408.32 L 81.92,449.28 l 112.64,0 L 194.56,408.32 z M 390.615,411.187
395
+ c-12.79,0-23.122,10.025-23.122,22.405c0,12.36, 10.332,22.385, 23.122,22.385s 23.153-10.025, 23.153-22.385C 413.757,421.222, 403.405,411.187, 390.615,411.187z
396
+ " data-tags="laundry" />
397
+ <glyph unicode="&#xe03b;" d="M 501.76,372.593c 6.185,4.68, 10.24,12.012, 10.24,20.367C 512,407.101, 500.541,418.56, 486.4,418.56S 460.8,407.101, 460.8,392.96c0-8.346, 4.055-15.688, 10.24-20.367L 471.040,213.76 l-92.16,0 l0-81.92 l 102.4,0
398
+ l0,3.041 c 15.002,6.083, 25.6,20.726, 25.6,37.919c0,7.076-1.956,13.64-5.12,19.446L 501.76,372.593 zM 61.44,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 102.4,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 L 30.72,346.88 l0-61.44 l 10.24,0
399
+ C 40.96,285.44, 40.96,305.92, 61.44,305.92zM 204.8,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 245.76,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 l-10.24,0 l0-61.44 l 10.24,0
400
+ C 184.32,285.44, 184.32,305.92, 204.8,305.92zM 389.12,408.32L 389.12,428.8 L 265.011,428.8 c-4.669,20.5-22.927,35.84-44.851,35.84S 179.978,449.3, 175.309,428.8L 51.2,428.8 l0-20.48 L0,408.32 l0-419.84 l 450.56,0 L 450.56,408.32 L 389.12,408.32 z M 163.84,367.36l 122.88,0 l0-143.36 L 163.84,224 L 163.84,367.36 z M 20.48,367.36l 122.88,0 l0-143.36 L 20.48,224
401
+ L 20.48,367.36 z M 389.12,39.68L 51.2,39.68 l0,71.68 l 337.92,0 L 389.12,39.68 z M 430.080,224L 307.2,224 L 307.2,367.36 l 122.88,0 L 430.080,224 zM 348.16,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 389.12,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 l-10.24,0 l0-61.44 l 10.24,0
402
+ C 327.68,285.44, 327.68,305.92, 348.16,305.92z" data-tags="casino" />
403
+ <glyph unicode="&#xe03c;" d="M 443.187,337.705L 255.57,469.76l-42.24-29.778l 0.635-0.492L 48.742,322.038l0,0l0,0L 10.24,295.342l0-62.495 l 39.311,26.491L 49.551-21.76 l 3.973,0 l 42.854,0 l 6.359,0
404
+ l 303.237,0 l 13.23,0 l 39.465,0 l 3.789,0 L 462.459,261.847 L 501.76,232.847l0,62.495 L 443.187,337.705z M 403.456,38.124L 101.99,38.124 L 101.99,297.134 L 256.174,408.125L 403.456,302.131L 403.456,38.124 zM 186.726,267.356c 10.977,0, 20.050,9.042, 20.050,20.347c0,11.284-9.073,20.419-20.050,20.419c-11.11,0-20.101-9.144-20.101-20.419
405
+ C 166.625,276.398, 175.616,267.356, 186.726,267.356zM 159.355,70.676c0-6.277, 4.485-12.196, 10.68-12.196c 6.226,0, 10.588,4.495, 10.588,10.803l0,95.242 l 13.117,0 l0-95.242
406
+ c0-6.298, 3.84-11.5, 10.035-11.5c 6.226,0, 10.742,6.615, 10.742,12.902l-0.502,167.035l 12.472,0 l0-66.529 c0-6.656, 13.107-6.656, 13.107,0l0,65.044
407
+ c0,13.548-10.547,26.778-26.235,26.778l-53.217,0.123c-14.223,0-25.395-11.858-25.395-26.573l0-65.372 c0-6.656, 13.097-6.656, 13.097,0l0,66.529 l 11.653,0
408
+ L 159.355,70.676zM 329.134,267.356c 11.018,0, 20.101,9.042, 20.101,20.347c0,11.284-9.083,20.419-20.101,20.419c-11.049,0-20.142-9.144-20.142-20.419
409
+ C 308.992,276.398, 318.075,267.356, 329.134,267.356zM 301.814,70.676c0-6.277, 5.263-12.196, 11.459-12.196c 6.277,0, 11.54,4.495, 11.54,10.803l0,95.242 l 6.564,0 l0-95.242
410
+ c0-6.298, 6.195-11.5, 12.431-11.5c 6.236,0, 11.94,6.615, 11.94,12.902l 0.696,167.035l 7.711,0 l0-66.529 c0-6.656, 19.651-6.656, 19.651,0l0,65.044
411
+ c0,13.548-11.438,26.778-27.105,26.778l-52.746,0.123c-14.254,0-24.996-11.858-24.996-26.573l0-65.372 c0-6.656, 13.107-6.656, 13.107,0l0,66.529 l 9.841,0
412
+ L 301.814,70.676z" data-tags="place_of_worship" />
413
+ <glyph unicode="&#xe03d;" d="M 476.109,367.36L 36.055,367.36 c-14.152,0-25.733-12.872-25.733-25.6c0-12.728, 11.581-25.59, 25.733-25.59l 6.216,0 l0-51.2 l 428.247,0 l0,51.2 l 5.591,0
414
+ c 14.162,0, 25.733,12.861, 25.733,25.59C 501.842,354.488, 490.271,367.36, 476.109,367.36z M 256.082,290.355c-7.107,0-12.861,5.929-12.861,13.23
415
+ s 5.755,13.23, 12.861,13.23c 7.117,0, 12.861-5.929, 12.861-13.23S 263.199,290.355, 256.082,290.355zM 42.271,162.58l 428.247,0 L 470.518,244.48 L 42.271,244.48 L 42.271,162.58 z M 256.082,217.61c 7.117,0, 12.861-5.919, 12.861-13.22c0-7.311-5.745-13.23-12.861-13.23
416
+ c-7.107,0-12.861,5.919-12.861,13.23C 243.21,211.692, 248.975,217.61, 256.082,217.61zM 42.271,91.955l0-26.47 l0-33.065 c0-7.27, 0.911-13.23, 7.987-13.23l 51.446,0 c 7.076,0, 10.281,5.96, 10.281,13.23l0,37.99 l 288.819,0 l0-37.99
417
+ c0-7.27, 2.58-13.23, 9.646-13.23l 51.456,0 c 7.055,0, 8.602,5.96, 8.602,13.23l0,33.065 l0,26.47 L 470.508,142.080 L 42.271,142.080 L 42.271,91.955 z M 256.082,118.405
418
+ c 7.117,0, 12.861-5.929, 12.861-13.22c0-7.322-5.745-13.22-12.861-13.22c-7.107,0-12.861,5.898-12.861,13.22
419
+ C 243.21,112.466, 248.975,118.405, 256.082,118.405z" data-tags="furniture_store" />
420
+ <glyph unicode="&#xe03e;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
421
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
422
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
423
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669zM 286.72,295.68L 225.28,295.68L 225.28,357.12L 184.32,357.12L 184.32,295.68L 122.88,295.68L 122.88,254.72L 184.32,254.72L 184.32,193.28L 225.28,193.28L 225.28,254.72L 286.72,254.72 z" data-tags="zoom-in-alt" />
424
+ <glyph unicode="&#xe03f;" d="M 491.52,275.2L 307.2,275.2L 307.2,459.52L 204.8,459.52L 204.8,275.2L 20.48,275.2L 20.48,172.8L 204.8,172.8L 204.8-11.52L 307.2-11.52L 307.2,172.8L 491.52,172.8 z" data-tags="zoom-in" />
425
+ <glyph unicode="&#xe040;" d="M 348.16,367.36L 348.16,398.449 C 348.16,423.854, 326.564,449.28, 301.169,449.28l-85.432,0 C 190.351,449.28, 163.84,423.854, 163.84,398.449L 163.84,367.36 l-54.395,0 L 51.2,8.96l 411.515,0 l-59.167,358.4L 348.16,367.36 z
426
+ M 194.56,398.449C 194.56,407.962, 206.234,418.56, 215.736,418.56l 85.432,0 C 310.661,418.56, 317.44,407.962, 317.44,398.449L 317.44,367.36 L 194.56,367.36 L 194.56,398.449 z" data-tags="department_store" />
427
+ <glyph unicode="&#xe041;" d="M 259.43,231.199c0,0-49.551-39.864-49.551-72.090c0-14.428, 21.238-28.846, 49.551-28.846c 28.293,0, 49.531,14.418, 49.531,28.846
428
+ C 308.961,192.492, 259.43,231.199, 259.43,231.199zM 440.074,304.067c 2.867,35.103, 13.046,67.328, 30.966,96.86L 402.237,469.76c-21.729-18.719-46.49-29.082-74.547-30.915
429
+ c-25.702-2.324-50.063,2.56-72.97,14.694c-23.572-11.735-47.841-16.64-73.144-14.694c-26.163,2.345-49.787,11.622-70.932,28.068L 41.646,398.111
430
+ c 16.968-29.962, 26.419-61.307, 28.273-94.044c 0.881-15.073-3.42-35.809-13.066-62.638c-5.048-14.868-8.858-27.761-11.469-38.543
431
+ c-2.417-10.701-3.922-19.405-4.413-25.917c-0.358-28.57, 7.66-54.385, 24.095-77.312c 12.841-16.742, 34.017-35.236, 63.427-55.45
432
+ c 32.184-16.384, 57.078-27.013, 74.516-31.56c 4.987-2.335, 9.892-4.567, 14.459-6.717c 4.557-2.171, 9.431-4.301, 14.51-6.625
433
+ c 10.967-6.564, 18.668-13.691, 22.743-21.053c 4.966,7.956, 12.841,14.909, 23.327,21.053c 7.393,3.226, 13.629,6.031, 18.657,8.479
434
+ c 5.007,2.222, 8.755,3.871, 10.916,4.874c 3.727,1.853, 8.632,3.973, 14.531,6.308c 5.949,2.345, 13.332,5.212, 22.118,8.407
435
+ c 16.988,6.011, 29.379,11.704, 37.222,16.845c 28.529,20.214, 49.388,38.4, 62.648,54.682c 17.029,23.020, 25.293,48.937, 24.914,78.080
436
+ c-1.014,13.046-6.533,33.925-16.558,62.362C 442.941,267.039, 438.702,288.543, 440.074,304.067z M 259.43,101.427
437
+ c-62.536,0-120.32,51.651-120.32,115.354c0,43.264, 33.075,84.132, 42.465,100.936l 28.303-43.264l 49.551,72.090l 49.531-72.090l 28.344,43.264
438
+ c 9.359-16.804, 42.465-57.672, 42.465-100.936C 379.771,153.078, 321.976,101.427, 259.43,101.427z" data-tags="fire_station" />
439
+ <glyph unicode="&#xe042;" d="M 501.76,250.665L 266.24,362.076L 266.24,408.32L 296.96,408.32L 296.96,428.8L 266.24,428.8L 266.24,469.76L 245.76,469.76L 245.76,428.8L 215.040,428.8L 215.040,408.32L 245.76,408.32L 245.76,362.076L 81.326,284.201L 81.326,284.201L 81.326,284.201L 10.24,250.665L 10.24,234.24L 81.92,234.24L 81.92-21.76L 204.8-21.76L 204.8,131.84L 307.2,131.84L 307.2-21.76L 430.080-21.76L 430.080,234.24L 501.76,234.24 z" data-tags="church" />
440
+ <glyph unicode="&#xe043;" d="M 257.577,302.367c 40.479,0, 73.155,32.942, 73.155,73.554c0,40.53-32.666,73.359-73.155,73.359c-40.428,0-73.247-32.84-73.247-73.359
441
+ C 184.33,335.319, 217.16,302.367, 257.577,302.367zM 328.755,285.44c 33.495,0, 47.555-28.611, 47.555-28.611l 108.104-148.941c 4.475-6.646, 7.107-14.776, 7.107-23.552
442
+ c0-23.142-18.719-41.953-41.789-41.953c-5.519,0-10.865,1.198-15.555,3.021L 368.64,63.57L 368.64-1.28 L 143.36-1.28 l0,64.85 l-65.556-18.196
443
+ C 73.196,43.571, 67.891,42.342, 62.351,42.342c-23.050,0-41.861,18.739-41.861,41.882c0,8.765, 2.591,16.763, 7.229,23.429l 108.032,149.176
444
+ c0,0, 14.049,28.611, 47.401,28.611L 328.755,285.44 z M 256.061,43.899L 256.061,43.899l 84.439,28.058l-1.833,0.512c-58.419,17.121-36.024,94.495, 22.252,77.179
445
+ L 368.64,146.903l0,87.255 l-112.527-37.1L 143.36,234.158l0-87.255 l 7.721,2.755c 58.245,17.306, 80.876-60.058, 22.497-77.179l-2.048-0.512L 256.061,43.899
446
+ L 256.061,43.899z" data-tags="library" />
447
+ <glyph unicode="&#xe044;" d="M 261.908,388.475c 23.521-1.731, 44.093,15.032, 45.957,37.356c 1.884,22.436-15.667,42.066-39.188,43.796c-23.552,1.71-44.124-14.95-45.947-37.386
448
+ C 220.897,409.815, 238.459,390.226, 261.908,388.475zM 438.098,60.16l-14.213,122.88l-23.060,0 c 0.215,10.24, 0.184,11.377-0.522,17.592c-0.686,6.359-2.703,11.008-5.99,12.472
449
+ c 2.693,2.867, 4.485,6.513, 4.833,10.619c 0.522,6.472-2.509,12.524-7.578,16.128l-58.696,38.584l-43.213,81.367
450
+ c-7.158,10.65-19.282,19.241-33.915,20.47c-11.244,0.778-21.586-2.939-29.952-8.468l-85.75-66.376c-2.826-2.273-4.946-5.263-5.908-8.858
451
+ l-19.978-80.394C 113.981,215.409, 112.64,214.548, 112.64,213.791c0-0.010,0-0.020,0-0.031l-0.164,0 c-3.348,0-6.4-3.195-7.567-7.424
452
+ C 103.782,202.189, 102.4,196.71, 102.4,192.276C 102.4,189.082, 102.4,183.040, 102.4,183.040L 80.138,183.040 L 65.925,60.16l 57.436,0 l-25.18-40.294c-1.638-3.123-3.564-7.537-3.901-11.796
453
+ c-1.239-15.258, 10.639-28.518, 26.563-29.737c 11.377-0.758, 21.166,4.731, 27.116,13.496L 190.454,60.16l 5.56,0 l-0.87,7.547l 11.786,18.964
454
+ c 1.28,2.54, 5.345,8.755, 5.796,11.704l 14.397,62.566l 61.45-64.236l 19.292-96.573c 3.082-11.418, 12.933-20.838, 26.040-21.801
455
+ c 15.944-1.208, 29.901,10.045, 31.171,25.272c 0.113,1.905-0.225,3.338-0.174,5.612L 354.826,60.16l 18.207,0 L 438.098,60.16 z M 112.2,193.382
456
+ c 0.573,4.844, 2.386,7.598, 5.581,7.598c 0.42,0, 0.778,0.010, 1.198,0.020c 3.226-3.901, 8.018-6.574, 13.548-7.025
457
+ c 6.339-0.492, 12.032,2.243, 15.903,6.482c 0.86-0.727, 1.546-1.823, 2.017-3.338c 0.85-2.939, 1.341-6.308, 1.341-9.083
458
+ c0-1.659-0.082-4.997-0.195-4.997l-20.644,0 l-19.046,0 C 111.77,183.040, 111.811,189.624, 112.2,193.382z M 170.885,183.040l-12.134,0
459
+ c 0.256,10.24, 0.184,11.377-0.481,17.592c-0.573,5.325-2.079,9.441-4.465,11.551l 15.145,65.966l 29.87,23.112L 170.885,183.040z M 393.687,183.040L 373.043,183.040
460
+ l-19.077,0 c-0.164,0-0.113,6.584, 0.297,10.342c 0.532,4.844, 2.376,7.598, 5.581,7.598c 4.598,0, 8.765,0.143, 12.462,0.225
461
+ c 3.717,0.133, 8.786,0.317, 15.165,0.317c 2.447,0, 4.106-1.454, 5.028-4.413c 0.881-2.939, 1.352-6.308, 1.352-9.083
462
+ C 393.851,186.378, 393.759,183.040, 393.687,183.040z M 265.216,206.418l 19.251,81.265l 16.189-30.546c 1.28-2.099, 2.796-3.83, 4.792-5.458L 363.274,213.76l-8.735,0
463
+ c-3.348,0-4.577-3.195-5.734-7.424C 347.709,202.189, 348.16,196.71, 348.16,192.276C 348.16,189.082, 348.16,183.040, 348.16,183.040l-25.928,0 l-4.188-36.147L 265.216,206.418z" data-tags="shopping_mall" />
464
+ <glyph unicode="&#xe045;" d="M 471.040,183.040L 471.040-21.76L 317.44-21.76L 317.44,19.2L 184.32,19.2L 184.32-21.76L 40.96-21.76L 40.96,183.040 zM 378.358,220.365c-5.878,25.692-19.139,48.282-40.038,65.546C 318.075,302.735, 294.124,305.92, 266.342,316.16L 266.24,316.16 L 266.24,380.959
465
+ c0,0.287, 2.775,0.512, 5.366,1.444c 3.676,1.28, 7.148,2.755, 11.745,4.352c 4.516,1.526, 8.602,2.806, 12.861,3.707
466
+ c 4.178,0.993, 7.076,1.413, 9.062,1.413c 3.86,0, 8.745-0.614, 14.459-1.864c 5.816-1.413, 12.012-2.939, 18.309-4.669
467
+ c 6.564-1.987, 12.421-3.492, 18.104-4.772c 5.417-1.239, 9.953-1.751, 13.711-1.751C 375.839,378.808, 378.88,379.638, 389.12,381.46L 389.12,455.619
468
+ c-10.24-2.437-12.052-3.779-19.272-3.779c-3.758,0-8.407,0.573-13.834,1.946c-5.663,1.085-11.5,2.775-18.063,4.68
469
+ c-6.298,1.915-12.247,3.359-17.746,4.567c-5.56,1.321-9.175,1.956-13.107,1.956c-13.036,0-30.618-3.082-40.858-8.765L 266.24,469.76 l-20.48,0 l0-153.6 l-0.645,0
470
+ c-27.566-10.24-51.702-14.008-71.926-30.833c-20.5-17.285-33.812-38.41-40.11-64.113c0,0-19.63,2.785-19.63-17.695l 286.413,0
471
+ C 399.862,224, 378.358,220.365, 378.358,220.365z" data-tags="local_government" />
472
+ <glyph unicode="&#xe046;" d="M 483.645,60.16c0,0-74.045,0-166.205,0l0-40.735 L 317.44,19.2 c 40.96,0, 66.877,0, 66.877,0c 28.959,0, 41.513,0, 56.689,0l 44.339,0
473
+ C 499.149,19.2, 501.76,31.232, 501.76,31.232l0,9.933 C 501.76,41.165, 501.637,60.16, 483.645,60.16zM 460.657,68.25C 483.328,68.25, 501.76,86.702, 501.76,109.435c0,22.804-18.432,41.196-41.103,41.196c-22.641,0-41.021-18.401-41.021-41.196
474
+ C 419.635,86.712, 438.016,68.25, 460.657,68.25zM 374.088,70.4c 21.565,0, 38.912,15.196, 38.912,36.731c-0.010,21.494-17.418,32.768-38.82,32.932L 317.44,132.874L 317.44,70.4 L 374.088,70.4 L 374.088,70.4zM 189.676,337.326c 25.18,0, 45.548,20.48, 45.548,45.742C 235.223,408.33, 214.856,428.8, 189.676,428.8c-25.16,0-45.558-20.47-45.558-45.732
475
+ C 144.118,357.806, 164.516,337.326, 189.676,337.326zM 143.165,189.297c-0.113,0.215-0.297,0.338-0.41,0.594l-20.644,48.067L 122.081,142.080l 61.696,0 l 13.476,14.336l-36.547,14.070
476
+ C 152.044,173.742, 145.889,181.115, 143.165,189.297zM 156.242,193.608c 1.997-4.485, 5.693-8.12, 10.342-9.789l 70.42-26.102c 9.011-3.983, 19.538,0.154, 23.491,9.196
477
+ c 3.953,9.103-0.154,19.702-9.175,23.665l-64.973,24.535l-20.070,48.138l 13.087,4.874l 17.009-41.247L 245.76,208.568l0,50.401 l 26.214-15.596l 13.066-65.823
478
+ c 3.205-9.4, 13.353-14.346, 22.712-11.1c 9.267,3.215, 14.193,13.466, 11.008,22.825l-14.643,63.396c-0.963,3.553-3,6.656-5.755,8.98
479
+ c-7.506,8.315-45.466,50.76-48.169,53.596C 246.231,319.222, 237.169,326.4, 220.047,326.4l-61.44,0 c-34.918,0-41.636-35.635-34.499-53.76L 156.242,193.608zM 307.2,131.84L 30.382,131.84 C 20.306,131.84, 10.24,126.157, 10.24,113.654c0-2.898,0-8.202,0-8.202L 10.24,19.2 c0,0, 18.012,0, 23.859,0L 307.2,19.2 L 307.2,131.84 z" data-tags="spa" />
480
+ <glyph unicode="&#xe047;" d="M 419.84,285.44l-2.785,0 c-0.758,1.311-1.638,2.58-2.724,3.738L 296.12,415.826C 296.643,418.355, 296.96,420.977, 296.96,423.68C 296.96,443.474, 282.378,459.52, 264.376,459.52
481
+ c-6.943,0-30.3,0-37.243,0C 209.142,459.52, 194.56,443.474, 194.56,423.68c0-2.703, 0.328-5.325, 0.84-7.854L 77.189,289.178
482
+ C 76.114,288.020, 75.233,286.751, 74.465,285.44L 20.48,285.44 l0-71.68 l 20.48,0 l0-153.6 c0-28.283, 22.927-51.2, 51.2-51.2l 327.68,0 c 28.283,0, 51.2,22.917, 51.2,51.2L 471.040,213.76 l 20.48,0 l0,71.68 L 419.84,285.44 z M 227.144,387.84
483
+ c 6.943,0, 30.3,0, 37.243,0c 0.573,0, 1.096,0.154, 1.669,0.184L 361.789,285.44L 129.731,285.44 l 95.744,102.584C 226.038,387.994, 226.57,387.84, 227.144,387.84z M 133.12,70.4
484
+ c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 92.16,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 133.12,70.4 z M 225.28,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 184.32,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 225.28,70.4 z
485
+ M 327.68,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 286.72,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 327.68,70.4 z M 419.84,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 378.88,193.28 c0,11.264, 9.216,20.48, 20.48,20.48
486
+ s 20.48-9.216, 20.48-20.48L 419.84,70.4 z" data-tags="convenience_store" />
487
+ <glyph unicode="&#xe048;" d="M 292.669,269.629c0-34.499-28.559-34.499-43.95-34.499l-19.19,0 l0,65.219 l 24.115,0 C 267.131,300.349, 292.669,300.349, 292.669,269.629zM 440.084,304.067c 2.847,35.103, 13.015,67.318, 30.956,96.85L 402.237,469.76c-21.74-18.719-46.479-29.082-74.537-30.915
488
+ c-25.692-2.324-50.084,2.56-72.98,14.684c-23.562-11.735-47.831-16.64-73.134-14.684c-26.173,2.345-49.787,11.622-70.943,28.068L 41.646,398.1
489
+ c 16.968-29.952, 26.419-61.307, 28.283-94.034c 0.881-15.073-3.42-35.82-13.066-62.638C 51.814,226.56, 47.995,213.658, 45.394,202.885
490
+ c-2.406-10.701-3.912-19.405-4.413-25.917c-0.358-28.58, 7.66-54.385, 24.095-77.312c 12.841-16.742, 34.017-35.226, 63.427-55.45
491
+ c 32.174-16.384, 57.078-27.023, 74.516-31.549c 4.987-2.345, 9.892-4.588, 14.459-6.717c 4.547-2.191, 9.421-4.311, 14.51-6.625
492
+ c 10.967-6.574, 18.678-13.711, 22.733-21.064c 4.977,7.956, 12.851,14.909, 23.316,21.064c 7.393,3.215, 13.65,6.021, 18.668,8.479
493
+ c 5.018,2.202, 8.755,3.86, 10.926,4.874c 3.717,1.853, 8.602,3.963, 14.51,6.298c 5.97,2.345, 13.332,5.222, 22.129,8.397
494
+ c 16.998,6.031, 29.368,11.715, 37.233,16.855c 28.518,20.224, 49.367,38.4, 62.638,54.671c 17.019,23.030, 25.283,48.947, 24.904,78.090
495
+ c-1.004,13.046-6.523,33.925-16.548,62.372C 442.931,267.039, 438.692,288.543, 440.084,304.067z M 313.62,209.756
496
+ c-16.333-10.691-38.789-10.691-50.514-10.691l-32.205,0 l0-88.125 l-48.425,0 L 182.477,336.998 l 68.741,0 c 31.949,0, 58.665-2.058, 77.22-24.678
497
+ c 11.581-14.397, 13.537-30.751, 13.537-42.373C 341.955,243.62, 331.11,221.399, 313.62,209.756z" data-tags="police" />
498
+ <glyph unicode="&#xe049;" d="M 486.451,269.527C 484.076,398.94, 409.385,450.365, 406.323,452.413L 394.752,460.339l-11.633-7.905c-19.343-13.189-39.393-19.886-59.566-19.886
499
+ c-33.475,0-56.156,18.104-57.129,18.883l-13.025,10.506l-12.933-10.527c-0.942-0.768-23.654-18.872-57.108-18.872
500
+ c-20.183,0-40.223,6.687-59.587,19.917l-11.592,7.864l-11.674-7.926C 92.57,446.915, 23.030,395.295, 20.511,270.162
501
+ c-1.004-10.885, 28.908-216.842, 232.97-276.593C 475.392,58.737, 487.578,255.928, 486.451,269.527z M 61.604,267.049l 0.031-2.918
502
+ C 62.044,287.754, 65.341,316.16, 71.731,326.4l 363.407,0 c 6.42-10.24, 9.748-38.717, 10.117-62.505l 0.143,0.102c 0.809-6.595-7.311-192-191.918-229.222
503
+ C 88.207,71.25, 60.877,260.966, 61.604,267.049z" data-tags="route" />
504
+ <glyph unicode="&#xe04a;" d="M 20.48,275.2L 491.52,275.2L 491.52,172.8L 20.48,172.8z" data-tags="zoom-out" />
505
+ <glyph unicode="&#xe04b;" d="M 332.974-12.616L 260.557,203.52L 25.211,203.52L 477.798,457.513 z" data-tags="location-arrow" />
506
+ <glyph unicode="&#xe04c;" d="M 256,480c-84.828,0-153.6-68.157-153.6-152.228c0-84.081, 153.6-359.782, 153.6-359.782s 153.6,275.702, 153.6,359.782C 409.6,411.843, 340.828,480, 256,480z
507
+ M 255.498,282.245c-26.184,0-47.401,21.043-47.401,46.981c0,25.958, 21.217,46.991, 47.401,46.991c 26.204,0, 47.421-21.033, 47.421-46.991
508
+ C 302.92,303.288, 281.702,282.245, 255.498,282.245z" data-tags="postal_code" />
509
+ <glyph unicode="&#xe04d;" d="M 441.958,264.96L 419.84,264.96 l0,88.392 C 419.84,411.494, 361.513,469.76, 303.37,469.76l-97.085,0 C 148.173,469.76, 92.16,411.494, 92.16,353.352L 92.16,264.96 L 67.686,264.96 C 60.754,264.96, 51.2,254.085, 51.2,247.962l0-260.69
510
+ C 51.2-18.852, 60.754-21.76, 67.686-21.76l 374.272,0 c 6.953,0, 18.842,2.908, 18.842,9.032L 460.8,247.962 C 460.8,254.085, 448.911,264.96, 441.958,264.96z M 304.261,19.2l-98.826,0
511
+ l 20.736,102.062c-12.534,8.878-20.736,25.61-20.736,42.035c0,27.064, 22.129,50.115, 49.408,50.115c 27.279,0, 49.418-21.391, 49.418-48.435
512
+ c0-16.435-8.202-35.113-20.716-44.001L 304.261,19.2z M 348.16,264.96L 163.84,264.96 l0,88.392 C 163.84,379.75, 181.176,398.080, 207.268,398.080l 95.119,0 C 328.479,398.080, 348.16,379.75, 348.16,353.352L 348.16,264.96 z" data-tags="locksmith" />
513
+ <glyph unicode="&#xe04e;" d="M 439.542,346.88L 389.12,346.88 L 389.12,400.394 C 389.12,438.651, 358.932,469.76, 320.573,469.76L 191.437,469.76 C 153.057,469.76, 122.88,438.651, 122.88,400.394L 122.88,346.88 L 72.448,346.88 C 38.083,346.88, 10.24,320.348, 10.24,286.085
514
+ l0-235.592 C 10.24,16.241, 38.083-11.52, 72.448-11.52l 367.094,0 C 473.897-11.52, 501.76,16.241, 501.76,50.504L 501.76,286.085 C 501.76,320.348, 473.897,346.88, 439.542,346.88z M 163.84,400.394
515
+ C 163.84,414.72, 177.070,428.8, 191.437,428.8l 129.137,0 C 334.899,428.8, 348.16,414.72, 348.16,400.394L 348.16,346.88 L 163.84,346.88 L 163.84,400.394 z M 368.64,121.6l-71.68,0 l0-71.68 l-81.92,0 l0,71.68 l-71.68,0 l0,81.92 l 71.68,0 l0,71.68 l 81.92,0 l0-71.68 l 71.68,0 L 368.64,121.6 z" data-tags="doctor" />
516
+ <glyph unicode="&#xe04f;" d="M 491.745,207.084c-14.295-66.755-63.406-121.59-128.164-143.114c-19.866-6.615-40.448-9.964-61.184-9.964
517
+ c-83.446,0-157.225,53.146-183.603,132.239c-16.333,48.957-12.585,101.335, 10.547,147.497c 23.132,46.152, 62.884,80.558, 111.923,96.87
518
+ c 46.131,15.319, 96.225,12.759, 140.39-7.055l 9.574,18.053C 327.096,481.229, 247.214,490.711, 175.391,466.821C 110.438,445.225, 57.795,399.657, 27.156,338.534
519
+ c-30.638-61.133-35.594-130.519-13.967-195.379C 48.128,38.39, 145.848-32, 256.358-32c 27.464,0, 54.712,4.434, 81.009,13.169
520
+ c 98.028,32.604, 166.564,120.115, 174.612,222.966L 491.745,207.084zM 365.537,330.465L 314.194,426.557L 288.082,319.273L 181.289,298.281L 279.050,242.77L 262.236,132.219L 345.252,207.729L 448.123,158.372L 395.581,261.048L 478.771,341.35 z" data-tags="mosque" />
521
+ <glyph unicode="&#xe050;" d="M 352.645,300.268c 35.82,0, 64.983,28.682, 64.983,64.215C 417.628,400.005, 388.475,428.8, 352.645,428.8c-35.963,0-65.178-28.795-65.178-64.317
522
+ C 287.468,328.95, 316.692,300.268, 352.645,300.268zM 501.76,143.544l0,81.306 L 414.054,274.176c-14.858,7.455-31.375,9.984-47.882,6.502c-6.758-1.382-13.117-3.963-20.265-7.895
523
+ c-0.778-0.215-26.819-11.571-41.953-46.5L 243.558,106.138c0,0-59.505-11.397-84.408-16.148c-1.966-1.3-4.076-2.355-6.093-3.594l-15.411,55.101
524
+ c-6.38,22.405, 17.418,54.886, 18.309,56.207c 15.749,22.784, 20.060,52.797, 11.786,82.524c-7.537,26.88-24.699,49.541-47.043,62.29
525
+ c-17.48,9.82-37.13,12.524-54.968,7.67c-13.855-3.758-26.204-11.817-35.748-23.398c-0.123-0.113-7.383-10.752-7.383-10.752
526
+ c-12.841-22.354-15.8-50.371-8.376-77.394c 7.537-27.136, 24.504-49.705, 46.961-62.28l 5.376-2.816c 0.717-0.051, 37.704-14.961, 44.134-36.352
527
+ c-0.082-0.113, 9.708-35.092, 17.695-63.601c-2.048-0.881-4.014-1.946-6.083-2.765c 0.297-0.215, 0.85-0.553, 1.188-0.788
528
+ c-1.802-2.755-4.966-8.858-4.741-15.104c0-1.987, 0.164-3.973, 0.543-5.898c 3.41-17.664, 20.91-29.46, 38.789-25.866l 114.125,21.955
529
+ c0,0, 9.708,2.918, 13.865,5.847c 5.356,3.758, 9.39,11.643, 9.39,11.643l 29.993,59.628c0,0, 20.675-96.358, 21.074-98.14
530
+ c-0.348-0.266-2.028-2.099-4.762-4.905l 155.679,0 c-2.345,13.681-3.901,22.456-3.901,22.559c0,0.225-4.905,21.617-4.905,21.617
531
+ c 0.164-0.154-13.353,60.027-23.685,107.131c 16.466-9.421, 31.386-17.797, 32.215-18.248C 497.295,151.992, 499.067,148.623, 501.76,143.544z M 109.435,192.963
532
+ c-11.561-3.072-23.91-1.208-35.748,5.315c-16.486,9.216-29.225,26.368-34.683,47.063c-5.816,20.623-3.697,41.748, 5.693,58.030l 5.243,7.557
533
+ c 6.185,7.506, 13.681,12.524, 22.671,15.012c 28.713,7.711, 60.334-15.78, 70.554-52.47C 153.231,236.943, 138.158,200.694, 109.435,192.963z" data-tags="stadium" />
534
+ <glyph unicode="&#xe051;" d="M 30.72,418.56L 481.28,418.56L 481.28,367.36L 30.72,367.36zM 61.44,346.88l0-337.92 l 389.12,0 L 450.56,346.88 L 61.44,346.88 z M 327.68,254.72L 174.080,254.72 l0,30.72 l 153.6,0 L 327.68,254.72 z" data-tags="storage" />
535
+ <glyph unicode="&#xe052;" d="M 432.282,346.88l-58.102,0 l 58.46,56.054L 374.804,459.52l-81.859,0 l 58.644-56.044L 291.471,346.88l-69.519,0 l 59.781,56.054L 222.679,459.52l-83.261,0 l 58.644-56.044
536
+ L 137.861,346.88L 78.94,346.88 l 59.812,56.054L 79.585,459.52L 20.48,459.52 l0-471.040 l 471.040,0 L 491.52,459.52 l-57.774,0 L 491.52,403.159L 432.282,346.88z M 430.080,49.92L 81.92,49.92 l0,61.44 l 348.16,0 L 430.080,49.92 z M 430.080,162.56L 81.92,162.56 l0,61.44 l 348.16,0 L 430.080,162.56 z" data-tags="movie_theater" />
537
+ <glyph unicode="&#xe053;" d="M 419.84,336.64l-51.2,0 L 368.64,450.109 C 368.64,460.964, 359.475,469.76, 348.16,469.76s-20.48-8.796-20.48-19.651L 327.68,336.64 L 163.84,336.64 L 163.84,450.109 C 163.84,460.964, 154.675,469.76, 143.35,469.76
538
+ C 132.035,469.76, 122.88,460.964, 122.88,450.109L 122.88,336.64 L 71.68,336.64 c-5.663,0-10.24-8.899-10.24-14.326L 61.44,273.152 c0-58.972, 102.4-127.447, 102.4-222.167L 163.84,19.2 l 40.96,0 l0-40.96 l 81.92,0 l0,40.96 l 40.96,0 l0,31.785
539
+ c0,94.72, 102.4,163.205, 102.4,222.167l0,49.162 C 430.080,327.741, 425.503,336.64, 419.84,336.64 M 234.568,168.827C 235.233,170.977, 233.882,172.8, 231.537,172.8l-39.782,0
540
+ c-2.355,0-3.021,1.331-1.526,3.062c0,0, 81.971,104.028, 83.569,106.035c 1.208,1.905, 2.54,1.239, 2.12-0.952
541
+ c-0.635-2.775-18.135-73.748-18.135-73.748C 256.932,205.107, 258.161,203.52, 260.485,203.52l 39.803,0 c 2.345,0, 3.092-1.577, 1.659-3.359
542
+ c0,0-82.094-106.516-83.569-108.298c-1.485-1.782-2.857-1.239-2.109,1.792C 217.016,96.696, 234.568,168.827, 234.568,168.827" data-tags="electrician" />
543
+ <glyph unicode="&#xe054;" d="M 87.286,164.659c-20.255,0-36.71-16.558-36.71-36.905C 50.575,107.397, 67.041,90.88, 87.286,90.88c 20.296,0, 36.762,16.517, 36.762,36.884
544
+ C 124.047,148.101, 107.592,164.659, 87.286,164.659z M 87.286,108.739c-10.117,0-18.35,8.264-18.35,18.463c0,10.158, 8.233,18.442, 18.35,18.442
545
+ c 10.168,0, 18.401-8.284, 18.401-18.442C 105.697,117.002, 97.464,108.739, 87.286,108.739zM 410.286,164.659c-20.285,0-36.731-16.558-36.731-36.905c0-20.357, 16.435-36.884, 36.731-36.884c 20.275,0, 36.762,16.517, 36.762,36.884
546
+ C 447.048,148.101, 430.572,164.659, 410.286,164.659z M 410.286,108.739c-10.127,0-18.371,8.264-18.371,18.463
547
+ c 0.010,10.158, 8.243,18.442, 18.371,18.442c 10.158,0, 18.401-8.284, 18.401-18.442C 428.687,117.002, 420.454,108.739, 410.286,108.739zM 491.592,336.64L 168.561,336.64 c-5.601,0-10.168-4.567-10.168-10.209l0-92.59 l-20.347,0 l0,56.842 c0,5.652-4.557,10.209-10.179,10.209L 58.563,300.892
548
+ c-12.083,0-22.876-8.929-24.812-21.709l0,0.666 l-10.813-61.307l 0.020-0.215C 15.616,217.078, 10.24,210.698, 10.24,203.213c0-1.096, 0.123-2.222, 0.338-3.277
549
+ L 10.24,200.028l 15.258-68.966l 15.892,0 l0,0.625 c0,24.719, 20.224,44.739, 45.158,44.739c 24.914,0, 45.148-20.019, 45.148-44.739l0-0.625 l 232.714,0 l0,0.625
550
+ c0,24.719, 20.234,44.739, 45.128,44.739c 24.934,0, 45.169-20.019, 45.169-44.739c0-0.205,0-0.42-0.041-0.625l 0.041,0 L 501.76,131.062 L 501.76,326.431
551
+ C 501.76,332.063, 497.213,336.64, 491.592,336.64z M 102.431,284.303l0-50.463 l-61.030,0 l 7.629,42.813c 0.635,5.12, 5.089,8.899, 9.533,8.899l 43.868,0 L 102.431,284.303 z" data-tags="moving_company" />
552
+ <glyph unicode="&#xe055;" d="M 256,480c-84.828,0-153.6-68.157-153.6-152.228c0-84.081, 153.6-359.782, 153.6-359.782s 153.6,275.702, 153.6,359.782C 409.6,411.843, 340.828,480, 256,480z
553
+ M 255.498,282.245c-26.184,0-47.401,21.043-47.401,46.981c0,25.958, 21.217,46.991, 47.401,46.991c 26.204,0, 47.421-21.033, 47.421-46.991
554
+ C 302.92,303.288, 281.702,282.245, 255.498,282.245z" data-tags="postal_code_prefix" />
555
+ <glyph unicode="&#xe056;" d="M 256,469.76C 120.484,469.76, 10.24,359.516, 10.24,224c0-135.506, 110.244-245.76, 245.76-245.76c 135.506,0, 245.76,110.254, 245.76,245.76C 501.76,359.516, 391.506,469.76, 256,469.76z M 286.72,21.76L 286.72,111.36 l-61.44,0
556
+ l0-89.6 C 136.96,35.144, 67.144,104.96, 53.76,193.28L 143.36,193.28 l0,61.44 L 53.76,254.72 C 67.144,343.040, 136.96,412.856, 225.28,426.24L 225.28,336.64 l 61.44,0 L 286.72,426.24
557
+ C 375.040,412.856, 444.856,343.040, 458.24,254.72L 368.64,254.72 l0-61.44 l 89.6,0 C 444.856,104.96, 375.040,35.144, 286.72,21.76z" data-tags="crosshairs" />
558
+ <glyph unicode="&#xe057;" d="M 256-21.76C 120.484-21.76, 10.24,88.494, 10.24,224C 10.24,359.516, 120.484,469.76, 256,469.76c 135.506,0, 245.76-110.244, 245.76-245.76C 501.76,88.494, 391.506-21.76, 256-21.76z M 256,428.8
559
+ C 143.073,428.8, 51.2,336.927, 51.2,224c0-112.927, 91.873-204.8, 204.8-204.8c 112.927,0, 204.8,91.873, 204.8,204.8C 460.8,336.927, 368.927,428.8, 256,428.8zM 256.461,395.52C 256.461,395.52, 184.32,271.913, 184.32,234.24c0-3.983,0-16.548,0-20.48c0-37.663, 72.356-163.84, 72.356-163.84S 327.68,173.476, 327.68,211.139
560
+ c0,3.963,0,19.22,0,23.163C 327.68,271.974, 256.461,395.52, 256.461,395.52z M 256,183.040c-22.62,0-40.96,18.34-40.96,40.96c0,22.62, 18.34,40.96, 40.96,40.96c 22.62,0, 40.96-18.34, 40.96-40.96
561
+ C 296.96,201.38, 278.62,183.040, 256,183.040z" data-tags="compass" />
562
+ <glyph unicode="&#xe058;" d="M 254.433,200.776c 36.321,0, 53.156-27.546, 56.689-66.683c 0.829-9.359-0.010-23.009-1.229-38.82C 305.818,42.762, 301.128-21.76, 336.077-21.76
563
+ c 29.594,0, 44.759,56.73, 53.545,121.405c 8.458,64.020-0.522,95.877, 3.912,124.314c 8.407,53.862, 55.419,102.154, 40.899,170.834
564
+ c-8.049,38.103-29.041,56.013-49.807,63.56c-47.862,17.418-78.787-16.148-130.191-16.148c-51.395,0-82.299,33.567-130.181,16.148
565
+ c-20.756-7.537-41.759-25.457-49.828-63.56c-14.49-68.68, 32.512-116.961, 40.95-170.834c 4.393-28.426-4.536-60.293, 3.912-124.314
566
+ C 128.051,34.97, 143.247-21.76, 172.81-21.76c 34.929,0, 30.269,64.522, 26.194,117.033c-1.188,15.821-2.089,29.471-1.239,38.83
567
+ C 201.288,173.23, 218.368,200.776, 254.433,200.776z" data-tags="dentist" />
568
+ <glyph unicode="&#xe059;" d="M 201.38,345.129l-75.069,0 L 126.31,419.133 l 20.47,0 L 146.78,459.52 L 10.24,459.52 l0-40.387 l 20.48,0 l0-114.381 c0-29.737, 24.453-53.832, 54.61-53.832l 116.050,0 l0-20.193 l 40.97,0 L 242.35,365.302 l-40.97,0
569
+ L 201.38,345.129 zM 481.26,176.906l0,114.381 c0,29.727-24.443,53.832-54.569,53.832L 310.62,345.119 l0,20.173 l-40.97,0 l0-134.584 l 40.97,0 l0,20.204 l 75.080,0 l0-74.004 l-20.449,0
570
+ l0-40.387 L 501.76,136.52 l0,40.387 L 481.26,176.906 zM 470.743,25.385c0,20.419-37.253,77.486-37.253,77.486s-37.816-57.068-37.816-77.486c0-20.378, 16.814-36.905, 37.54-36.905
571
+ C 453.929-11.52, 470.743,5.007, 470.743,25.385z" data-tags="plumber" />
572
+ <glyph unicode="&#xe05b;" d="M 94.925,285.44l 40.1,0 l 6.164-184.32L 89.59,101.12 L 94.925,285.44L 94.925,285.44z M 61.44,90.88l 389.12,0 l0-20.48 l 30.72,0 l0-30.72 l 20.48,0 l0-20.48 L 10.24,19.2 l0,20.48 l 20.48,0 l0,30.72 l 30.72,0 L 61.44,90.88 L 61.44,90.88z M 471.040,338.565L 256.020,428.8L 40.96,338.565L 40.96,326.4
573
+ l 430.080,0 L 471.040,338.565 L 471.040,338.565z M 81.92,316.16l 348.16,0 l0-20.48 L 81.92,295.68 L 81.92,316.16 z M 376.177,285.44l 40.079,0 l 6.216-184.32l-51.671,0 L 376.177,285.44z M 282.46,285.44l 40.079,0 l 6.144-184.32l-51.62,0 L 282.46,285.44
574
+ L 282.46,285.44z M 188.723,285.44l 40.090,0 l 6.103-184.32l-51.599,0 L 188.723,285.44z" data-tags="museum" />
575
+ <glyph unicode="&#xe05a;" d="M 277.668,202.957C 275.313,204.39, 276.48,205.711, 266.24,206.93l0-29.665 c0,0.287, 4.424,0.635, 5.612,1.044
576
+ c 7.598,2.662, 11.407,7.629, 11.407,14.858C 283.259,197.356, 281.385,200.653, 277.668,202.957zM 231.578,251.361c0-4.557, 2.079-7.987, 6.216-10.24c 1.587-0.891, 4.26-1.884, 7.956-2.959l0,28.068
577
+ c-3.011-0.707-5.652-1.772-7.875-3.226C 233.677,260.219, 231.578,256.328, 231.578,251.361zM 256,326.4c-50.903,0-92.16-45.855-92.16-102.4c0-56.535, 41.257-102.4, 92.16-102.4c 50.903,0, 92.16,45.865, 92.16,102.4C 348.16,280.545, 306.903,326.4, 256,326.4z M 295.465,166.103
578
+ C 288.512,160.164, 276.48,156.529, 266.24,155.156L 266.24,142.080 l-20.48,0 l0,13.312 c-10.691,1.454-19.548,3.072-26.501,8.55C 209.613,171.54, 204.8,183.040, 204.8,193.28l 25.477,0
579
+ c 0.829,0, 2.447-8.202, 4.864-11.1c 2.509-2.98, 6.072-3.328, 10.619-4.588l0,34.867 c-12.462,2.877-21.146,5.98-25.969,9.318
580
+ c-8.612,5.888-12.913,15.114-12.913,27.648c0,11.438, 4.209,20.941, 12.636,28.508c 6.431,5.786, 15.196,9.339, 26.245,10.711L 245.76,305.92 l 20.48,0 l0-17.818
581
+ c 10.24-1.526, 17.162-6.277, 23.552-11.018C 299.407,269.947, 306.176,264.96, 306.637,244.48l-25.661,0 c-0.481,10.24-5.622,14.664-12.001,17.9
582
+ C 268.636,262.543, 266.24,264.356, 266.24,264.499l0-32.184 l 9.236-1.782c 9.82-2.314, 18.903-5.407, 23.798-9.267c 7.619-6.021, 10.568-14.715, 10.568-26.081
583
+ C 309.862,183.511, 304.476,173.824, 295.465,166.103zM 440.32,357.12L 71.68,357.12 L0,357.12 l0-71.68 l0-122.88 l0-71.68 l 71.68,0 l 368.64,0 l 71.68,0 l0,71.68 L 512,285.44 l0,71.68 L 440.32,357.12 z M 491.52,159.785c-23.839-6.584-41.841-24.566-48.425-48.425L 68.905,111.36
584
+ c-6.595,23.839-24.576,41.841-48.425,48.425L 20.48,288.215 c 23.849,6.595, 41.83,24.576, 48.425,48.425l 374.426,0 c 6.881-23.112, 25.078-41.308, 48.189-48.189L 491.52,159.785 z
585
+ " data-tags="finance" />
586
+ <glyph unicode="&#xe05c;" d="M 303.278,480L 71.68,480 l0-512 l 112.64,0 L 184.32,131.84 l 118.958,0 c 127.631,0, 177.091,101.079, 177.091,184.525C 480.369,399.38, 430.909,480, 303.278,480z M 272.425,234.24L 184.32,234.24 L 184.32,387.84 l 88.105,0
587
+ c 52.357,0, 99-11.551, 99-76.667C 371.415,245.658, 324.782,234.24, 272.425,234.24zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" data-tags="parking" />
588
+ <glyph unicode="&#xe05d;" d="M 185.344,228.68L 91.095,281.825L 123.853,339.272L 218.122,286.157 zM 373.453,179.651L 214.2,269.353L 197.827,240.599L 357.059,150.886 zM 392.786,168.745L 376.361,140.012L 458.486,93.788L 474.911,122.491 zM 370.668,140.012c-1.26-2.243-4.7-2.775-7.69-1.137l0,0c-2.98,1.679-4.301,4.864-3.031,7.137l 19.2,33.638
589
+ c 1.321,2.284, 4.762,2.836, 7.721,1.137l0,0c 2.939-1.679, 4.27-4.936, 3-7.219L 370.668,140.012zM 491.827,121.59c-3.267,1.802-6.871,2.642-10.353,2.54l-21.002-36.782c 1.69-3.082, 4.209-5.775, 7.526-7.578
590
+ c 9.257-5.243, 20.9-2.222, 25.989,6.676l 5.386,9.523C 504.474,104.929, 501.115,116.347, 491.827,121.59zM 227.236,297.226c-2.468-4.465-8.090-5.96-12.544-3.502l-82.493,46.51c-4.465,2.478-5.97,8.059-3.471,12.524l0,0
591
+ c 2.509,4.383, 8.141,5.949, 12.595,3.42l 82.473-46.449C 228.219,307.2, 229.796,301.609, 227.236,297.226L 227.236,297.226zM 238.797,317.42c-2.54-4.454-8.161-5.96-12.564-3.482l-82.524,46.5c-4.434,2.478-5.99,8.069-3.451,12.462l0,0
592
+ c 2.478,4.454, 8.11,6.001, 12.595,3.492l 82.493-46.459C 239.8,327.424, 241.316,321.823, 238.797,317.42L 238.797,317.42zM 169.083,195.113c-2.54-4.403-8.161-5.898-12.585-3.42l-82.555,46.51c-4.424,2.458-5.97,8.059-3.461,12.524l0,0
593
+ c 2.509,4.321, 8.212,5.949, 12.585,3.42l 82.514-46.51C 170.015,205.169, 171.551,199.567, 169.083,195.113L 169.083,195.113zM 180.613,215.378c-2.509-4.454-8.131-5.949-12.636-3.43L 85.484,258.406c-4.403,2.529-5.97,8.12-3.471,12.524l0,0
594
+ c 2.55,4.444, 8.172,5.949, 12.605,3.43l 82.483-46.459C 181.524,225.382, 183.122,219.771, 180.613,215.378L 180.613,215.378zM 42.179,132.649L 187.628,132.649L 187.628,115.927L 42.179,115.927zM 219.392,97.772c-0.932,5.581-5.755,9.861-11.622,9.861L 22.077,107.633 c-5.857,0-10.711-4.28-11.622-9.861L 10.24,97.772 l0-27.382 l 209.367,0 l0,27.382
595
+ L 219.392,97.772 z" data-tags="courthouse" />
596
+ <glyph unicode="&#xe05e;" d="M 419.84,469.76L 92.16,469.76 C 69.632,469.76, 51.2,451.328, 51.2,428.8l0-409.6 c0-22.528, 18.432-40.96, 40.96-40.96l 327.68,0 c 22.528,0, 40.96,18.432, 40.96,40.96L 460.8,428.8 C 460.8,451.328, 442.368,469.76, 419.84,469.76z M 174.080,60.16c0-11.264-9.216-20.48-20.48-20.48l-40.96,0
597
+ c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,60.16 z M 174.080,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
598
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,142.080 z M 174.080,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,224 z M 296.96,60.16c0-11.264-9.216-20.48-20.48-20.48
599
+ l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,60.16 z M 296.96,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
600
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,142.080 z M 296.96,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,224 z M 419.84,60.16c0-11.264-9.216-20.48-20.48-20.48
601
+ l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,60.16 z M 419.84,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
602
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,142.080 z M 419.84,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,224 z M 419.84,316.16c0-11.264-9.216-20.48-20.48-20.48
603
+ L 112.64,295.68 c-11.264,0-20.48,9.216-20.48,20.48L 92.16,398.080 c0,11.264, 9.216,20.48, 20.48,20.48l 286.72,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,316.16 z" data-tags="accounting" />
604
+ <glyph unicode="&#xe05f;" d="M 409.6,285.44l0-40.96 L 112.64,244.48 l0,40.96 L 409.6,285.44 M 419.84,295.68L 102.4,295.68 l0-61.44 l 317.44,0 L 419.84,295.68 L 419.84,295.68zM 261.755,449.628L0,264.96l 61.44,0 l0-36.936 L 61.44,39.68 l 40.96,0 L 102.4,193.28 l 81.92,0 l0-153.6 l 26.931,0 L 460.8,39.68 l0,8.98 L 460.8,228.024 L 460.8,264.96 l 51.2,0 L 261.755,449.628z M 430.080,101.12L 235.52,101.12 l0,92.16 l 194.56,0 L 430.080,101.12 z M 430.080,224L 92.16,224 l0,81.92 l 337.92,0 L 430.080,224
605
+ z" data-tags="store" />
606
+ <glyph unicode="&#xe060;" d="M 512-32l-0.154,256.604c0,141.117-114.545,255.447-255.662,255.447c-141.117,0-255.662-114.412-255.662-255.539l 2.058-256.87L 61.44-32.215
607
+ l0,256.717 C 61.44,334.49, 146.043,423.639, 256,423.639c 109.978,0, 194.56-89.16, 194.56-199.148L 450.56-32 L 512-32 zM 339.937,60.918c0,0.276-0.297,0.778-0.942,1.72c0,0.266, 0.164,0.461, 0.492,0.635c 0.266,0.143, 0.451,0.307, 0.451,0.635
608
+ c 8.806,3.635, 16.804,8.090, 23.951,13.414c 7.148,5.345, 11.325,13.169, 13.804,23.511C 377.969,102.031, 378.88,104.817, 378.88,109.066L 378.88,322.601
609
+ c0,5.151-0.911,10.496-3.963,15.933c-3.031,5.53-6.523,10.476-11.162,14.868c-4.495,4.352-9.431,7.383-15.073,10.301
610
+ C 343.050,366.592, 337.787,367.36, 332.595,367.36L 317.44,367.36 L 194.56,367.36 l-14.766,0 c-4.874,0-10.117-0.686-15.77-3.43c-5.642-2.734-10.834-5.908-15.524-10.189
611
+ c-4.7-4.229-8.172-8.858-11.223-14.152C 134.267,334.193, 133.12,329.165, 133.12,323.942l0-216.719 c0-3.615, 0.553-7.455, 2.335-11.366
612
+ c 1.833-3.983, 3.901-7.7, 6.636-11.141c 2.744-3.564, 5.622-6.769, 8.827-9.636c 3.195-2.888, 6.226-5.243, 9.298-7.045
613
+ c 1.485-0.625, 4.127-1.577, 7.956-2.775c 3.779-1.219, 5.519-1.946, 5.233-2.519L 110.889-32l 36.465,0 l 45.65,61.44L 318.976,29.44 l 45.588-61.44l 36.925,0
614
+ L 339.937,60.918z M 204.8,346.88c0,5.632, 4.608,10.24, 10.24,10.24l 81.92,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-10.24 c0-5.632-4.608-10.24-10.24-10.24l-81.92,0 c-5.632,0-10.24,4.608-10.24,10.24L 204.8,346.88 z M 164.495,296.858
615
+ c 1.362,2.888, 2.427,5.509, 4.547,7.977c 2.161,2.437, 4.321,5.939, 7.199,7.465C 179.118,313.836, 181.77,316.16, 184.812,316.16L 194.56,316.16 l 122.88,0 l 9.267,0
616
+ c 2.734,0, 5.448-2.202, 8.202-3.359c 2.744-1.229, 5.243-3.717, 7.547-5.827c 2.273-2.12, 3.174-4.833, 4.588-7.26
617
+ C 348.385,297.339, 348.16,294.328, 348.16,291.594l0-48.374 c0-2.765, 0.133-5.335-1.362-7.936c-1.516-2.662-3.052-4.956-5.509-6.932
618
+ c-2.447-1.935-4.772-2.437-7.506-3.615C 331.039,223.447, 328.52,224, 325.816,224L 185.723,224 c-0.338,0-1.096-0.952-2.304-0.707
619
+ c-1.208,0.328-2.15,0.092-2.765,0.399c-5.151,0.901-8.315,3.369-12.288,7.936C 164.424,236.227, 163.84,240.916, 163.84,246.405l0,41.513
620
+ C 163.84,290.959, 163.144,293.949, 164.495,296.858z M 203.274,99.482c-4.7-4.864-10.588-7.291-17.551-7.291c-6.994,0-12.708,2.427-17.132,7.291
621
+ c-4.424,4.854-6.615,10.834-6.615,17.807c0,6.39, 2.304,11.93, 6.851,16.63c 4.557,4.731, 10.199,7.096, 16.896,7.096
622
+ c 6.963,0, 12.841-2.243, 17.551-6.584c 4.721-4.485, 7.086-10.26, 7.086-17.623C 210.36,110.111, 207.995,104.325, 203.274,99.482z M 307.753,99.482
623
+ c-4.69,4.854-7.055,10.834-7.055,17.807c0,7.025, 2.488,12.667, 7.516,17.152c 5.048,4.342, 10.885,6.584, 17.613,6.584
624
+ c 6.943,0, 12.657-2.365, 17.060-7.096c 4.434-4.7, 6.646-10.24, 6.646-16.63c0-6.984-2.263-12.964-6.871-17.807
625
+ c-4.547-4.864-10.332-7.291-17.336-7.291C 318.331,92.191, 312.494,94.618, 307.753,99.482z" data-tags="subway_station" />
626
+ <glyph unicode="&#xe061;" d="M 122.88,469.76L 215.040,469.76L 215.040,398.080L 122.88,398.080zM 314.604,174.623c-8.94,0-17.644,9.124-17.644,18.125L 296.96,377.6 l 145.275,0 l 59.689-254.751L 501.76,107.735L 501.76-5.478 c0-8.704-7.24-16.282-15.862-16.282
627
+ L 348.467-21.76 C 339.937-21.76, 337.92-14.182, 337.92-5.478L 337.92,172.8 l-20.48,0 M 197.437,174.418c 8.868,0, 17.603,8.796, 17.603,17.859L 215.040,377.6 L 69.857,377.6 L 10.097,122.706L 10.24,107.264l0-113.183 C 10.24-14.664, 17.48-21.76, 26.092-21.76l 137.267,0
628
+ C 172.104-21.76, 174.080-14.664, 174.080-5.919L 174.080,172.8 l 20.48,0 M 235.52,377.6L 276.48,377.6L 276.48,203.52L 235.52,203.52zM 296.96,469.76L 399.36,469.76L 399.36,398.080L 296.96,398.080z" data-tags="natural_feature" />
629
+ <glyph unicode="&#xe062;" d="M 261.673,109.599c 36.874-172.145, 244.931-31.222, 38.298,88.689c 227.738-132.178, 228.28,183.46, 0.461,51.384
630
+ c 227.82,132.065-44.206,289.946-44.257,25.692c 0.051,264.253-272.015,106.496-44.308-25.692c-227.707,132.198-227.973-183.45-0.195-51.364
631
+ c-206.746-119.849, 0.84-260.936, 37.724-88.443L 261.673,109.599z M 228.772,223.969c0,15.217, 12.268,27.525, 27.382,27.525
632
+ c 15.124,0, 27.372-12.308, 27.372-27.525c0-15.196-12.247-27.525-27.372-27.525C 241.050,196.454, 228.772,208.773, 228.772,223.969z" data-tags="florist" />
633
+ <glyph unicode="&#xe063;" d="M 500.675,324.823L 460.38,8.96L 324.28,8.96 l-40.131,317.44l 166.154,0 l 32.84,113.428L 501.76,434.217l-31.508-109.158L 500.675,324.823zM 264.909,142.080c0,0, 5.089,40.96-65.485,40.96L 87.030,183.040 c-70.472,0-65.485-40.96-65.485-40.96L 264.909,142.080 zM 21.545,49.92c0,0-4.987-40.96, 65.485-40.96l 112.404,0 c 70.574,0, 65.485,40.96, 65.485,40.96L 21.545,49.92 zM 254.351,70.4c 11.551,0, 20.879,11.407, 20.879,25.59c0,14.264-9.329,25.61-20.879,25.61L 31.13,121.6
634
+ C 19.63,121.6, 10.24,110.254, 10.24,95.99C 10.24,81.807, 19.63,70.4, 31.13,70.4L 254.351,70.4 z" data-tags="food" />
635
+ <glyph unicode="&#xe064;" d="M-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 481.28,387.84L 327.68,387.84 c0,0-10.24-81.92, 10.24-163.84c 8.233-13.722, 28.57-21.115, 51.2-22.989L 389.12,101.12 l-3.41,0 L 348.16,70.4l 112.64,0 l-36.7,30.72L 419.84,101.12 l0,100.639
636
+ c 21.709,2.816, 41.605,10.383, 51.2,22.241C 491.52,295.68, 481.28,387.84, 481.28,387.84z M 471.040,326.4L 337.92,326.4 l0,51.2 l 133.12,0 L 471.040,326.4 zM 220.16,101.12L 163.84,101.12 l0,87.040 L 276.48,357.12L 10.24,357.12 l 112.64-168.96L 122.88,101.12 L 66.56,101.12 C 58.071,101.12, 51.2,94.239, 51.2,85.76S 58.071,70.4, 66.56,70.4l 153.6,0 c 8.489,0, 15.36,6.881, 15.36,15.36
637
+ S 228.649,101.12, 220.16,101.12z" data-tags="night_club" />
638
+ <glyph unicode="&#xe065;" d="M 256,469.76l 72.52-123.965L 471.040,345.764l-71.25-121.754L 471.040,102.216l-142.5-0.020L 256-21.76l-72.53,123.955L 40.96,102.216l 71.25,121.795L 40.96,345.764
639
+ l 142.52,0.031L 256,469.76z M 163.041,223.898L 209.009,142.080l 93.85,0 l 46.090,81.818L 302.868,305.92l-93.706,0 L 163.041,223.898z M 353.679,142.080l 41.38,0 l-20.675,35.359
640
+ L 353.679,142.080z M 116.91,142.080l 41.39,0 l-20.705,35.369L 116.91,142.080z M 235.428,346.88l 41.39,0 l-20.695,35.348L 235.428,346.88z M 374.385,270.582L 395.059,305.92l-41.38,0
641
+ L 374.385,270.582z M 137.595,270.561L 158.29,305.92l-41.39,0 L 137.595,270.561z M 256.123,65.792L 276.818,101.12L 235.418,101.12 L 256.123,65.792z" data-tags="synagogue" />
642
+ <glyph unicode="&#xe066;" d="M 467.958,232.755l-80.794,136.12C 383.949,374.856, 376.187,377.6, 369.541,377.6L 296.96,377.6 L 296.96,439.040 c0,11.264-9.216,20.48-20.48,20.48l-51.2,0 c-11.264,0-20.48-9.216-20.48-20.48l0-61.44 l-61.030,0
643
+ c-6.656,0-14.746-2.744-17.961-8.724L 44.698,231.68C 31.375,231.68, 20.48,221.573, 20.48,207.903l0-124.303 C 20.48,69.929, 31.375,60.16, 44.698,60.16L 71.68,60.16 l0-38.707
644
+ C 71.68,0.932, 85.279-11.52, 105.257-11.52l 12.114,0 C 137.349-11.52, 153.6,0.932, 153.6,21.453L 153.6,60.16 l 204.8,0 l0-38.707 c0-20.521, 17.551-32.973, 37.53-32.973l 12.124,0
645
+ C 428.032-11.52, 440.32,0.932, 440.32,21.453L 440.32,60.16 l 28.293,0 C 481.925,60.16, 491.52,69.929, 491.52,83.599L 491.52,207.903 C 491.52,221.573, 481.28,232.755, 467.958,232.755z M 87.091,133.325
646
+ c-16.722,0-30.29,13.906-30.29,31.068c0,17.172, 13.558,31.078, 30.29,31.078s 30.28-13.906, 30.28-31.078
647
+ C 117.371,147.231, 103.823,133.325, 87.091,133.325z M 105.257,234.24l 55.132,96.020C 163.379,336.384, 171.274,336.64, 177.93,336.64l 157.45,0
648
+ c 6.656,0, 14.551-0.256, 17.531-6.38L 408.054,234.24L 105.257,234.24 z M 426.209,133.325c-16.712,0-30.28,13.906-30.28,31.068
649
+ c0,17.172, 13.568,31.078, 30.28,31.078c 16.722,0, 30.29-13.906, 30.29-31.078C 456.499,147.231, 442.931,133.325, 426.209,133.325z" data-tags="taxi_stand" />
650
+ <glyph unicode="&#xe067;" d="M 499.292,395.735C 496.814,406.876, 496.66,408.32, 471.644,408.32l-25.149,0 l-5.028,13.814c-6.636,20.040-28.938,39.137-51.159,44.708
651
+ c-12.861,3.215-58.675,3.779-170.486,3C 79.258,468.859, 65.71,468.060, 51.804,461.804C 20.675,447.816, 3.523,412.549, 12.718,381.491
652
+ c 6.42-21.647, 19.917-37.673, 39.086-46.285c 13.896-6.246, 27.443-6.902, 168.008-7.875c 111.8-0.788, 157.624,0.102, 170.476,3.328
653
+ c 22.292,5.581, 44.534,25.364, 51.231,45.588c 5.048,15.206, 5.274,15.36, 21.76,14.275l 16.64-1.096l 1.106-52.49l 1.096-52.48l-48.773-11.52
654
+ c-26.788-6.339-60.344-14.438-74.547-18.012c-14.193-3.564-48.589-11.93-76.431-18.586l-50.627-12.114l-0.010-26.583
655
+ c-0.010-26.419, 2.304-26.665-13.476-39.854L 204.8,144.527l0-83.149 l0,0L 204.8-21.76 l 34.857,0 L 276.48-21.76 l0,83.139 l0,83.149 l-14.653,13.435
656
+ c-15.626,13.066-15.34,14.019-14.152,34.12l 1.546,20.664l 18.063,4.495c 9.841,2.488, 41.185,10.107, 69.581,16.978
657
+ c 28.396,6.851, 77.148,18.616, 108.288,26.153L 501.76,274.053l0,54.559 C 501.76,358.595, 500.644,389.55, 499.292,395.735z M 253.696,22.927
658
+ c0-8.622-1.628-10.404-10.394-11.315c-11.039-1.126-15.811,4.342-13.455,15.401c 0.922,4.311, 4.721,6.175, 12.585,6.175
659
+ C 252.426,33.178, 253.696,32.010, 253.696,22.927z" data-tags="painter" />
660
+ <glyph unicode="&#xe068;" d="M 354.724,92.856c0,0.348-0.399,1.065-1.157,2.212c0,0.328, 0.215,0.625, 0.584,0.829c 0.358,0.215, 0.584,0.44, 0.584,0.829
661
+ c 10.762,4.444, 20.541,9.943, 29.297,16.425c 8.745,6.554, 14.602,16.118, 17.623,28.764c 0.317,1.495, 1.116,4.905, 2.202,10.117L 403.855,413.368
662
+ c0,6.308-1.884,12.851-5.601,19.507c-3.717,6.769-8.356,12.82-13.978,18.196c-5.56,5.325-11.756,9.841-18.678,13.425
663
+ C 358.676,468.019, 352.082,469.76, 345.743,469.76L 158.71,469.76 c-5.97,0-12.411-1.638-19.302-4.987c-6.912-3.359-13.251-7.649-18.985-12.872
664
+ c-5.755-5.171-10.516-11.059-14.234-17.541c-3.727-6.605-5.601-12.974-5.601-19.354l0-265.226 c0-4.465, 1.178-9.124, 3.348-13.957
665
+ c 2.253-4.854, 5.038-9.39, 8.376-13.629c 3.338-4.362, 7.014-8.264, 10.926-11.776s 7.711-6.42, 11.448-8.643
666
+ c 1.802-0.758, 5.11-1.925, 9.8-3.41c 4.588-1.475, 6.738-2.57, 6.39-3.287L 74.322-21.105l 44.657,0 l 55.88,80.988l 154.163,0 l 55.818-80.988L 430.080-21.105
667
+ L 354.724,92.856z M 207.811,447.447c0,1.874, 0.891,3.789, 2.796,5.888c 1.833,2.038, 3.686,3.021, 5.581,3.021l 71.496,0
668
+ c 0.717,0, 2.263-0.717, 4.485-2.181c 2.202-1.495, 3.318-2.98, 3.318-4.465l0-27.361 c0-1.874-0.942-3.594-2.775-5.018
669
+ c-1.884-1.536-3.584-2.314-5.018-2.314l-72.038,0 c-1.167,0.778-1.874,1.331-2.273,1.772c-1.075,0.717-2.324,1.7-3.615,3.082
670
+ c-1.311,1.249-1.956,2.621-1.956,4.106L 207.811,447.447 z M 135.752,370.934c0,3.717, 0.881,7.363, 2.529,10.916c 1.659,3.533, 3.82,6.758, 6.42,9.779
671
+ c 2.621,2.99, 5.693,5.335, 9.196,7.209c 3.564,1.884, 7.219,2.806, 10.936,2.806l 173.701,0 c 3.297,0, 6.656-0.778, 10.004-2.191
672
+ c 3.359-1.495, 6.42-3.584, 9.236-6.164C 360.581,390.707, 362.783,387.84, 364.483,384.87c 1.659-2.908, 2.478-6.103, 2.478-9.452l0-59.218
673
+ c0-3.359-0.901-6.533-2.765-9.728c-1.864-3.246-4.28-6.052-7.26-8.468c-3.021-2.376-6.124-4.342-9.503-5.775
674
+ c-3.338-1.587-6.697-2.253-10.025-2.253L 165.949,289.976 c-0.41,0-1.341,0.174-2.826,0.502c-1.475,0.389-2.621,0.758-3.369,1.157
675
+ c-6.298,1.085-11.868,4.454-16.722,10.056c-4.854,5.591-7.281,11.715-7.281,18.401L 135.752,370.934 z M 187.453,140.268
676
+ c-5.765-5.949-12.984-8.919-21.504-8.919c-8.571,0-15.565,2.97-20.992,8.919c-5.386,5.939-8.079,13.251-8.079,21.821
677
+ c0,7.813, 2.806,14.582, 8.407,20.337c 5.571,5.786, 12.462,8.714, 20.664,8.714c 8.52,0, 15.729-2.765, 21.504-8.079
678
+ c 5.775-5.458, 8.653-12.554, 8.653-21.555C 196.106,153.303, 193.229,146.207, 187.453,140.268z M 315.341,140.268
679
+ c-5.755,5.939-8.684,13.251-8.684,21.821c0,8.581, 3.062,15.514, 9.216,20.972c 6.164,5.325, 13.322,8.079, 21.545,8.079
680
+ c 8.499,0, 15.524-2.918, 20.92-8.714c 5.376-5.755, 8.12-12.534, 8.12-20.337c0-8.571-2.816-15.882-8.397-21.821
681
+ c-5.622-5.949-12.657-8.919-21.258-8.919C 328.264,131.348, 321.096,134.318, 315.341,140.268z" data-tags="train_station" />
682
+ <glyph unicode="&#xe069;" d="M 256,260.116c 28.713,0, 52.818-19.456, 59.628-45.763c 8.561-32.983, 7.404-69.13, 45.036-87.9c 33.403-11.366, 46.039-25.651, 46.039-63.949
683
+ c0-30.566-26.153-63.058-59.873-67.113c-37.704-5.663-67.052,1.741-90.839,15.299c-23.788-13.558-53.146-20.972-90.798-15.299
684
+ c-33.741,4.055-59.884,36.659-59.884,67.113c0,37.478, 13.486,53.34, 46.828,64.205c 41.032,20.961, 35.523,57.702, 44.677,89.262
685
+ C 204.216,241.469, 227.912,260.116, 256,260.116L 256,260.116z M 443.976,282.89c-10.168,8.837-51.671-25.661-64.727-42.721
686
+ c-7.936-9.103-12.872-21.617-12.872-35.42c0-27.761, 19.866-50.268, 44.308-50.268c 18.596,0, 34.509,12.933, 41.093,31.324
687
+ C 464.568,218.88, 465.275,264.397, 443.976,282.89L 443.976,282.89z M 68.004,282.89C 46.735,264.397, 47.421,218.88, 60.232,185.805
688
+ c 6.584-18.391, 22.487-31.324, 41.073-31.324c 24.463,0, 44.308,22.508, 44.308,50.268c0,13.804-4.925,26.317-12.861,35.42
689
+ C 119.685,257.229, 78.193,291.727, 68.004,282.89L 68.004,282.89z M 310.63,464.21c 103.301-17.531, 96.051-191.508, 13.343-177.49
690
+ c-23.859,4.055-41.574,25.784-44.268,51.743C 276.972,364.861, 270.817,470.948, 310.63,464.21L 310.63,464.21z M 201.37,464.21
691
+ c 39.823,6.748, 33.659-99.338, 30.925-125.737c-2.693-25.969-20.388-47.688-44.247-51.743C 105.318,272.691, 98.079,446.679, 201.37,464.21z" data-tags="pet_store" />
692
+ <glyph unicode="&#xe06a;" d="M 461.844,376.781c 5.622,5.622, 13.537,11.735, 21.617,19.108l 7.465,6.257l-20.347,22.835L 463.933,418.765
693
+ c-28.119-25.549-45.036-40.991-53.299-72.643c-8.202-31.468-8.53-63.324-7.67-93.102c 0.901-30.7, 2.058-50.954, 10.639-73.544l 3.236-8.325
694
+ c 8.233-20.716, 20.695-52.009, 20.695-92.262c0-48.63-19.702-73.298-58.552-73.298c-35.348,0-54.415,23.593-56.648,70.205
695
+ c-1.014,20.654, 4.782,46.152, 10.875,73.093c 5.151,22.743, 10.455,46.275, 13.066,71.25c 2.888,27.535-0.727,47.217-11.305,59.034
696
+ C 321.393,294.339, 300.493,295.68, 282.081,295.68L 276.48,295.68 L 276.48,437.617 C 276.48,449.905, 267.561,459.52, 255.345,459.52L 43.981,459.52 C 31.785,459.52, 20.48,449.905, 20.48,437.617L 20.48-11.52 l 256,0 L 276.48,264.96 l 5.612,0
697
+ c 12.595,0, 25.641-1.413, 30.075-6.359c 2.376-2.662, 6.021-11.284, 3.615-34.54c-2.427-23.183-7.567-46.111-12.524-67.953
698
+ c-6.564-29.071-12.79-56.719-11.561-81.644c 3.021-63.273, 34.857-99.635, 87.286-99.635c 55.88,0, 89.242,38.892, 89.242,104.12
699
+ c0,46.172-14.285,82.145-22.856,103.7l-3.092,7.854c-6.164,16.271-7.547,31.355-8.397,57.672c 9.861,0.225, 21.801,0.461, 27.167,0.461
700
+ c 12.278,0, 18.452,7.199, 21.084,19.671c 1.536,7.27-0.84,16.804-0.84,34.109l0,4.588 C 481.28,352.748, 474.286,365.814, 461.844,376.781z M 245.76,285.44L 51.2,285.44 L 51.2,418.56 l 194.56,0
701
+ L 245.76,285.44 z M 450.56,302.377c0-8.94, 2.355-17.49, 2.058-22.927c-6.124-0.092-13.169-0.256-20.337-0.42c 0.266,19.753, 2.458,39.864, 7.506,59.228
702
+ c 1.372,5.161, 0.963,9.708, 3.031,13.947C 448.276,346.952, 450.56,339.077, 450.56,306.985L 450.56,302.377 z" data-tags="gas_station" />
703
+ <glyph unicode="&#xe06b;" d="M 258.478,458.609L 10.24,244.48l 61.44,0 l0-256 l 368.64,0 L 440.32,244.48 l 61.44,0 L 258.478,458.609z M 348.16,172.8l-71.68,0 l0-123.781 L 276.009,49.92l-48.896,0 L 225.28,49.019L 225.28,172.8 l-61.44,0 l0,40.96 l 61.44,0 l0,92.16 l 51.2,0 l0-92.16 l 71.68,0 L 348.16,172.8 z" data-tags="funeral_home" />
704
+ <glyph unicode="&#xe06c;" d="M 256,469.76C 154.235,469.76, 71.68,388.772, 71.68,288.881L 71.68-21.76 l 368.64,0 L 440.32,288.881 C 440.32,388.772, 357.827,469.76, 256,469.76z" data-tags="cemetery" />
705
+ <glyph unicode="&#xe06d;" d="M 323.277,171.192c0,0-19.22,48.056-37.868,93.942c0,0-6.246,27.576-1.362,64.174c0,0, 13.271,55.941, 5.888,82.391
706
+ c0,0-11.336,22.661-34.888,24.238c0,0-32.502-2.294-38.574-33.915c0,0-1.587-18.227, 3.461-39.26c0,0, 18.196-69.601-1.761-115.026
707
+ c0,0-27.843-58.173-30.054-71.496c0,0-10.424-56.996-0.164-98.97c0,0, 21.545-71.813, 37.315-95.601c0,0, 31.99-8.161, 59.433,0.727
708
+ c0,0, 32.901,53.268, 39.475,101.407C 324.198,83.804, 332.411,134.666, 323.277,171.192zM 425.769,205.025c0,0-19.21,48.067-37.939,93.932c0,0-6.236,27.587-1.372,64.123c0,0, 13.292,55.941, 5.888,82.452
709
+ c0,0-11.284,22.661-34.857,24.218c0,0-32.512-2.284-38.574-33.894c0,0-1.597-18.237, 3.512-39.27c0,0, 18.207-69.663-1.812-115.016
710
+ c0,0-4.321-9.124-9.708-20.818c 17.48-42.957, 34.273-84.92, 34.273-84.92l 0.266-0.727l 0.174-0.717c 9.605-38.205, 1.434-89.569, 1.137-91.474
711
+ c-3.113-22.876-11.735-46.264-20.244-65.331c 0.379-0.686, 0.85-1.475, 1.26-2.079c0,0, 31.959-8.172, 59.433,0.778
712
+ c0,0, 32.881,53.197, 39.465,101.366C 426.67,117.658, 434.913,168.509, 425.769,205.025zM 196.864,252.099c 1.085,2.386, 1.987,5.018, 2.836,7.598c-4.997,12.411-10.445,25.743-15.821,39.035c0,0-6.308,27.648-1.372,64.174
713
+ c0,0, 13.281,55.89, 5.908,82.401c0,0-11.336,22.671-34.898,24.228c0,0-32.532-2.345-38.564-33.833c0,0-1.577-18.309, 3.523-39.281
714
+ c0,0, 18.207-69.642-1.812-115.067c0,0-27.843-58.184-30.065-71.496c0,0-10.435-57.006-0.164-98.97c0,0, 21.545-71.823, 37.304-95.549
715
+ c0,0, 32-8.233, 59.433,0.737c0,0, 0.635,0.993, 1.71,2.847c-10.035,26.399-18.248,53.576-18.872,55.767c-10.67,43.745-0.399,101.079,0,103.27
716
+ C 168.325,192.133, 192.215,242.473, 196.864,252.099z" data-tags="bowling_alley" />
717
+ <glyph unicode="&#xe06e;" d="M 83.446,315.525l 62.054,0 l-0.543-36.608l-61.512-55.357L 83.446,315.525 L 83.446,315.525zM 255.048,335.79L 10.24,119.869L 36.045,90.88l 220.006,194.089L 476.017,90.88L 501.76,119.869L 256.993,335.79L 256,336.64L 255.048,335.79z" data-tags="roofing_contractor" />
718
+ <glyph unicode="&#xe06f;" d="M 359.434,372.951c 19.241,0, 34.806,16.005, 34.806,35.789c0,19.661-15.575,35.676-34.806,35.676c-19.098,0-34.683-16.005-34.683-35.676
719
+ C 324.751,388.956, 340.326,372.951, 359.434,372.951zM 385.3,364.943l-50.698,0 l-86.405,88.893c-6.748,7.301-17.961,7.649-25.068,0.594c-7.096-6.943-7.444-18.483-0.676-25.784
720
+ l 90.296-93.010l0-308.244 c0-11.182, 8.704-20.122, 19.456-20.122c 10.875,0, 19.569,8.94, 19.569,20.122L 351.775,194.58 l 15.79,0 l 0.123-167.199
721
+ c0-11.182, 8.806-20.122, 19.558-20.122c 10.783,0, 19.466,8.94, 19.466,20.122L 406.6,335.616l 90.307,93.010c 6.748,7.301, 6.4,18.842-0.696,25.784
722
+ c-7.086,7.055-18.309,6.717-25.068-0.594L 385.3,364.943zM 201.605,228.956c-5.263,5.54-12.483,8.827-20.48,8.827l-72.694,0 c-8.008,0-15.217-3.297-20.367-8.827l-72.919-75.008
723
+ c-6.748-7.301-6.513-18.831, 0.584-25.784c 7.086-6.943, 18.432-6.707, 25.068,0.594l 56.535,58.163l0-77.701 L 33.925,109.22
724
+ c-11.663,0-21.074-9.646-21.074-21.668c0-6.236, 2.294-11.776, 6.42-15.78l 71.414-73.462c 6.298-9.544, 18.657-12.605, 28.508-6.707
725
+ c 10.404,6.113, 13.855,19.651, 7.895,30.239l-40.745,41.81l 0.799-0.113l 116.972,0 l-40.858-41.8c-5.837-10.598-2.406-24.136, 7.885-30.249
726
+ c 9.851-5.898, 22.333-2.847, 28.631,6.697l 71.414,73.462c 4.106,4.014, 6.41,9.554, 6.41,15.78c0,12.022-9.39,21.658-21.053,21.658l-63.304,0
727
+ l0,76.892 l 55.511-57.334c 6.758-7.311, 17.961-7.547, 25.057-0.594c 7.096,6.943, 7.342,18.483, 0.584,25.774L 201.605,228.956zM 145.531,245.443c 19.108,0, 34.56,15.995, 34.56,35.676c0,19.784-15.452,35.676-34.56,35.676c-19.128,0-34.703-15.892-34.703-35.676
728
+ C 110.828,261.437, 126.413,245.443, 145.531,245.443z" data-tags="physiotherapist" />
729
+ <glyph unicode="&#xe070;" d="M 117.371,469.76c-13.957,0-25.211-11.54-25.211-25.866l0-25.866 l0-25.876 l0-155.208 l0-232.817
730
+ c0-12.923, 12.605-25.876, 25.211-25.876c 12.595,0, 25.201,12.964, 25.201,25.876l0,265.155 c 8.612,3.758, 16.988,6.472, 25.211,6.472
731
+ c 50.412,0, 124.774-64.686, 176.445-64.686c 22.026,0, 53.565,8.919, 75.612,25.876l0,181.084 c-25.006-19.241-50.34-38.81-75.612-38.81
732
+ c-50.412,0-125.86,64.676-176.445,64.676c-8.499,0-16.794-1.556-25.211-3.236l0,3.236 C 142.572,458.22, 131.318,469.76, 117.371,469.76z" data-tags="embassy" />
733
+ <glyph unicode="&#xe071;" d="M 79.288,256.768l 35.686,0 l0-229.376 l 53.545,0 L 168.52,224 l 53.545,0 l0-196.608 l 53.535,0 L 275.599,224 l 53.555,0 l0-196.608 l 53.545,0 L 382.7,256.768 l 35.676,0 c 9.861,0, 17.859,7.332, 17.859,16.384
734
+ c0,5.468-2.949,10.281-7.444,13.251l 0.031,0.031l-0.266,0.154c-0.154,0.102-0.317,0.184-0.461,0.276l-170.342,88.156L 257.751,400.845
735
+ c 31.457-14.459, 57.354,10.445, 98.15-4.526L 355.901,453.366 c-40.817,14.971-66.703-9.912-98.15,4.536L 257.751,461.568 c0,4.536-3.983,8.192-8.919,8.192
736
+ S 239.923,466.104, 239.923,461.568l0-86.548 L 69.581,286.884c-0.154-0.092-0.307-0.195-0.461-0.276l-0.256-0.174l0-0.031
737
+ c-4.475-2.97-7.414-7.793-7.414-13.251C 61.44,264.1, 69.437,256.768, 79.288,256.768zM 97.126,10.998L 61.44-21.76L 436.244-21.76L 400.538,10.998 z" data-tags="city_hall" />
738
+ <glyph unicode="&#xe072;" d="M 421.499,224L 93.614,224 c-9.554,0-17.418,8.212-17.418,17.551c0,1.556, 0.287,3.318, 0.604,4.731l 17.449,121.846
739
+ C 95.734,376.044, 102.861,377.6, 111.391,377.6l 292.383,0 c 8.468,0, 15.657-1.423, 17.121-9.308l 17.449-124.068c 0.266-1.444, 0.614-2.294, 0.614-3.85
740
+ C 438.948,231.035, 431.043,224, 421.499,224z M 408.381,87.347c-18.463,0-33.434,14.531-33.434,32.645c0,17.992, 14.971,32.502, 33.434,32.502
741
+ c 18.34,0, 33.341-14.51, 33.341-32.502C 441.723,101.878, 426.721,87.347, 408.381,87.347z M 106.291,87.347c-18.33,0-33.311,14.531-33.311,32.645
742
+ c0,17.992, 14.981,32.502, 33.311,32.502c 18.514,0, 33.464-14.51, 33.464-32.502C 139.756,101.878, 124.805,87.347, 106.291,87.347z M 163.84,449.28l 204.8,0 l0-30.72 L 163.84,418.56
743
+ C 143.36,418.56, 143.36,449.28, 163.84,449.28z M 452.628,402.278c-5.98,28.805-23.45,40.407-51.948,51.999c-28.447,11.551-94.372,25.395-143.954,25.395
744
+ c-49.797,0-116.060-13.855-144.538-25.395C 83.702,442.675, 66.519,431.084, 60.59,402.278L 40.96,241.93L 40.96,19.2 l 30.72,0 l0-20.48 c0-40.96, 51.2-40.96, 51.2,0l0,20.48 l 256,0 l0-20.48 c0-40.96, 61.44-40.96, 61.44,0l0,20.48 l 30.72,0
745
+ L 471.040,241.93 L 452.628,402.278z" data-tags="bus_station" />
746
+ <glyph unicode="&#xe073;" d="M 175.104,213.76l 152.269,0 l-50.104,133.12l-51.948,0 L 175.104,213.76z M 92.16,346.88L 92.16,387.84 l 327.68,0 l0-40.96 l-80.599,0 l 50.227-133.12L 512,213.76 l0-40.96 L 408.197,172.8 l 58.665-143.36l-56.924,0 l-58.655,143.36L 161.608,172.8
747
+ L 103.219,29.44L 46.285,29.44 l 58.337,143.36L0,172.8 l0,40.96 l 123.31,0 l 50.186,133.12L 92.16,346.88 z" data-tags="park" />
748
+ <glyph unicode="&#xe074;" d="M 471.040,152.32l0-81.92 l 40.96,0 L 512,193.28 L 40.96,193.28 L 40.96,360.602 c0,11.5-8.899,20.91-20.48,20.91l0,0c-11.54,0-20.48-9.4-20.48-20.91L0,70.4 l 40.96,0 l0,81.92 L 471.040,152.32 zM 105.779,276.716c 20.9,0, 37.755,16.927, 37.755,37.827c0,20.756-16.855,37.632-37.755,37.632c-20.869,0-37.714-16.865-37.714-37.632
749
+ C 68.065,293.652, 84.91,276.716, 105.779,276.716zM 512,224l-0.143,49.879c-0.133,16.445-13.926,26.808-30.095,28.764L 185.242,331.653c-0.532,0.143-1.71,0.092-2.202,0.092
750
+ c-10.301,0-19.2-8.54-19.2-18.79L 163.84,254.72 L 87.521,254.72 c-10.353,0-18.698-5.12-18.698-15.35C 68.823,228.977, 77.169,224, 87.521,224L 512,224 z" data-tags="lodging" />
751
+ <glyph unicode="&#xe075;" d="M 61.44-6.4c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 102.4,183.040 l 20.48,0 l0-189.44 c0-12.605, 7.854-20.48, 20.48-20.48c 12.626,0, 20.48,7.854, 20.48,20.48L 163.84,316.16 l 10.24,0 l0-115.855
752
+ c0-24.525, 30.781-24.525, 30.72,0L 204.8,324.751 C 204.8,351.846, 185.283,367.36, 153.6,367.36L 71.68,367.36 c-28.877,0-51.2-12.483-51.2-41.851L 20.48,193.28 c0-20.48, 30.72-20.48, 30.72,0L 51.2,316.16 l 10.24,0 L 61.44-6.4 zM 470.149,147.2l-60.508,166.267c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393
753
+ c 2.161,0, 3.973-1.444, 4.454-3.369L 459.459,208.64c 2.734-6.154, 13.978-10.24, 21.371-10.24c 9.882,0, 10.906,19.405, 10.691,20.48l-41.134,103.496
754
+ C 446.812,346.143, 422.81,367.36, 395.418,367.36L 341.811,367.36 c-27.392,0-53.166-21.217-56.75-44.984l-39.291-104.776c-0.891-2.038,0-19.845, 10.691-19.845
755
+ c 8.305,0, 19.354,3.215, 21.361,10.557l 39.68,108.175c 0.635,1.7, 2.345,2.99, 4.321,2.99c 2.519,0, 4.557-1.925, 4.557-4.342
756
+ c0-0.553-0.092-1.065-0.276-1.546l-58.962-166.41c-0.123-0.492,0-12.288,0-12.79c0-3.543, 8.561-12.8, 12.268-12.8L 317.44,121.59 l0-128.973
757
+ c0-10.65, 9.38-19.507, 20.48-19.507s 20.48,8.868, 20.48,19.507L 358.4,126.812 c0,2.898, 20.48,2.806, 20.48-0.092l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48c 11.121,0, 20.48,9.841, 20.48,20.48L 419.84,121.6 l 39.619,0
758
+ c 3.707,0, 10.691,9.257, 10.691,12.8C 470.149,135.219, 470.446,146.493, 470.149,147.2zM 69.12,427.52A42.24,42.24 180 1 1 153.6,427.52A42.24,42.24 180 1 1 69.12,427.52zM 325.12,427.52A42.24,42.24 180 1 1 409.6,427.52A42.24,42.24 180 1 1 325.12,427.52z" data-tags="toilet" />
759
+ <glyph unicode="&#xe076;" d="M 10.24,224A245.76,245.76 180 1 1 501.76,224A245.76,245.76 180 1 1 10.24,224z" data-tags="circle" />
760
+ <glyph unicode="&#xe077;" d="M 501.76,60.16c0-45.056-36.864-81.92-81.92-81.92L 92.16-21.76 c-45.056,0-81.92,36.864-81.92,81.92L 10.24,387.84 c0,45.056, 36.864,81.92, 81.92,81.92l 327.68,0 c 45.056,0, 81.92-36.864, 81.92-81.92L 501.76,60.16 z" data-tags="square-rounded" />
761
+ <glyph unicode="&#xe078;" d="M 10.24,469.76L 501.76,469.76L 501.76-21.76L 10.24-21.76z" data-tags="square" />
762
+ <glyph unicode="&#xe014;" d="M 419.84,70.4L 419.84,418.56 c0,22.528-18.432,40.96-40.96,40.96L 133.12,459.52 c-22.528,0-40.96-18.432-40.96-40.96l0-389.12 c0-22.528, 18.432-40.96, 40.96-40.96l 245.76,0 c 19.026,0, 40.96,0, 40.96,20.48c0,4.26,0,0,0,10.24L 143.36,19.2 c-11.264,0-20.48,9.216-20.48,20.48
763
+ l0,30.72 L 419.84,70.4 z M 143.36,377.6c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-20.48 c0-5.632-4.608-10.24-10.24-10.24L 153.6,346.88 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,377.6 z M 143.36,295.68c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0
764
+ c 5.632,0, 10.24-4.608, 10.24-10.24l0-20.48 c0-5.632-4.608-10.24-10.24-10.24L 153.6,264.96 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,295.68 z" data-tags="book_store" />
765
+ <glyph unicode="&#xe015;" d="M 378.88,408.32l-40.96,0 L 133.12,408.32 L 92.16,408.32 l0-40.96 l0-102.4 l0-133.12 c0-22.528, 18.432-40.96, 40.96-40.96l 204.8,0 c 22.528,0, 40.96,18.432, 40.96,40.96l0,51.2 c 62.218,0, 112.64,50.432, 112.64,112.64S 441.098,408.32, 378.88,408.32z M 378.88,234.24l0,30.72 l0,92.16
766
+ c 33.935,0, 61.44-27.505, 61.44-61.44C 440.32,261.755, 412.815,234.24, 378.88,234.24zM 20.48,70.4l0-23.562 C 20.48,27.423, 41.667,19.2, 67.584,19.2L 444.416,19.2 c 25.907,0, 47.104,8.223, 47.104,27.638L 491.52,70.4 L 20.48,70.4 z" data-tags="cafe" />
767
+ <glyph unicode="&#xe079;" d="M 171.858,387.84c 22.723,0, 40.96,18.483, 40.96,40.96c0,22.723-18.237,40.96-40.96,40.96c-22.589,0-40.96-18.248-40.96-40.96C 130.898,406.323, 149.268,387.84, 171.858,387.84zM 200.776,12.288c-69.755,0-126.321,57.354-126.321,128.379c0,38.881, 17.295,73.574, 44.278,97.167l-2.243,40.161
768
+ C 71.311,249.303, 40.96,198.83, 40.96,140.667C 40.96,51.046, 112.466-21.76, 200.776-21.76C 265.759-21.76, 323.195,24.023, 348.16,80.64l-24.33,33.505
769
+ C 311.808,56.136, 261.468,12.288, 200.776,12.288zM 450.56,90.88l-20.48,0 l-81.92,112.64c-4.434,7.793-20.48,30.72-40.96,30.72l-92.16,0 l0,40.96 l 81.92,0 c 10.609,0, 22.057,4.516, 22.057,15.421
770
+ C 319.017,301.445, 307.866,305.92, 296.96,305.92l-81.92,0 l0,40.96 c-1.505,22.712-20.48,30.72-40.858,30.249C 153.6,376.658, 143.36,367.36, 143.36,346.88l0-143.36 c 1.946-22.999, 18.504-30.72, 40.96-30.72l 122.88,0 l 71.68-92.16
771
+ c 4.618-7.639, 20.48-30.72, 20.48-30.72l 51.2,0 c 10.568,0, 20.48,9.605, 20.48,20.48C 471.040,81.224, 461.455,90.88, 450.56,90.88z" data-tags="wheelchair" />
772
+ <glyph unicode="&#xe07a;" d="M 174.080,264.96l 27.464,0 C 209.777,264.96, 215.040,277.064, 215.040,285.235l0,86.467 C 215.040,379.884, 209.777,377.6, 201.544,377.6L 174.080,377.6 L 174.080,264.96 zM 174.080,101.12l 27.464,0 C 209.777,101.12, 215.040,91.617, 215.040,83.425l0-86.446 c0-8.131-5.263-18.739-13.496-18.739L 174.080-21.76 L 174.080,101.12 zM 137.83,183.040c-0.236,79.022, 14.623,81.92, 23.091,81.92C 161.853,264.96, 163.84,264.96, 163.84,264.96L 163.84,377.6 c0,0-2.683,0-3.502,0C 145.254,377.6, 71.68,352.809, 71.68,177.93
773
+ C 71.68,3.041, 145.254-21.76, 160.338-21.76C 161.157-21.76, 163.84-21.76, 163.84-21.76L 163.84,101.12 c0,0-1.987,0-2.918,0C 152.453,101.12, 138.056,104.059, 137.83,183.040zM 237.527,353.239c 4.987-5.97, 7.649-13.517, 7.649-21.289c0-7.772-2.662-15.319-7.649-21.299l 16.353-13.455
774
+ c 7.997,9.748, 12.431,22.098, 12.431,34.755c0,12.646-4.434,25.016-12.431,34.755L 237.527,353.239zM 290.099,258.376c 17.859,19.558, 27.73,44.913, 27.73,71.434c0,26.399-9.748,51.753-27.617,71.25l-15.903-13.865
775
+ c 14.387-15.667, 22.395-36.024, 22.395-57.385c0-21.412-7.997-41.841-22.63-57.569L 290.099,258.376zM 326.287,219.556c 27.74,29.297, 43.059,67.707, 43.059,108.042c0,40.212-15.186,78.51-42.701,107.807l-15.667-14.275
776
+ c 23.9-25.364, 37.14-58.614, 37.14-93.542c0-35.052-13.24-68.352-37.376-93.768L 326.287,219.556zM 362.619,180.726c 37.478,39.117, 58.143,90.522, 58.143,144.722c0,54.016-20.521,105.267-57.805,144.312l-15.299-14.623
777
+ c 33.526-35.103, 51.978-81.172, 51.978-129.69c0-48.742-18.565-94.935-52.326-130.017L 362.619,180.726z" data-tags="volume-control-telephone" />
778
+ <glyph unicode="&#xe07b;" d="M 367.411,44.155c-3.318-4.506-4.874-5.458-9.021-11.274c-6.902-8.909, 1.894-22.436, 6.277-20.306
779
+ c 5.11,1.915, 8.428,12.114, 14.008,15.442c 2.857,1.536, 10.455,12.698, 17.572,20.285c 5.233,5.949, 9.032,8.561, 14.008,14.725
780
+ c 8.428,10.455, 10.209,18.401, 17.572,29.563c 4.516,5.816, 7.731,7.598, 11.878,14.725c 21.965,41.554, 15.544,60.18, 36.567,89.856
781
+ c 6.4,8.776, 13.64,10.916, 23.849,16.138c 9.503,69.222-21.965,107.919-21.719,108.042c-26.481-15.432-40.724-21.729-68.147-20.296
782
+ c-10.322,0.113-15.79,4.506-25.989,3.564c-9.513-0.358-14.356-3.912-23.869-7.127c-14.592-4.506-22.548-8.54-37.857-13.292
783
+ c-9.738-2.734-15.913-2.847-26.010-6.287c-8.663-3.686-4.506-0.717-10.557-7.721c-7.844-8.673-5.939-15.432-13.302-30.28
784
+ c-9.144-19.466-8.069-22.077-2.847-24.453c-3.441-9.964-4.27-16.62-3.441-27.423c 0.952-8.192-2.499-13.885, 6.287-20.419
785
+ c 11.991-8.899, 37.161-29.798, 43.571-30.147c 9.615,0.348, 37.632-0.717, 51.866,9.144c 3.205,2.007, 4.157,4.045, 1.434-3.564
786
+ c-0.594-0.963-35.502-28.14-39.291-28.017c-44.401-1.434-29.563-3.922-32.287-2.857c-2.263,0-23.634,26.132-36.567,16.865
787
+ c-4.874-2.97-7.127-5.816-9.021-11.172c 1.659-3.441, 9.492-8.888, 16.742-13.414c 10.455-6.646, 11.397-13.65, 21.842-16.138
788
+ c 12.708-2.857, 26.235-0.952, 34.314-2.028c 3.092-0.829, 31.099,7.373, 48.548,16.742c 16.159,8.315-22.19-16.015-31.57-28.006
789
+ c-28.262-8.899-20.296-9.257-33.72-11.991c-12.462-2.847-11.868-2.13-20.419-4.874c-8.776-2.13-16.015-14.131-7.711-20.419
790
+ c 4.987-4.147, 20.541,1.669, 35.85,2.13c 6.769,0.123, 34.417,12.831, 40.724,16.159c 15.667,8.417, 27.187,20.060, 36.454,26.706
791
+ C 406.221,91.638, 378.921,58.163, 367.411,44.155L 367.411,44.155z M 281.815,214.753c 9.38-7.475, 14.131-29.798, 14.008-29.563
792
+ c 17.213-5.458, 28.129-16.855, 28.129-16.855c 26.481,14.725, 27.085,8.079, 38.595,16.855c 9.503,6.533, 9.032,8.55, 14.008,25.989
793
+ c 4.628,14.141-11.756,12.831-25.293,38.595c-23.501-8.899-36.198-4.874-44.155-4.157C 303.544,246.088, 304.128,231.731, 281.815,214.753L 281.815,214.753
794
+ zM 144.22,397.926c 3.328,4.751, 4.864,5.704, 9.144,11.284c 6.646,9.144-2.017,22.671-6.298,21.012
795
+ c-5.222-2.376-8.54-12.585-14.838-16.148c-2.263-1.3-9.851-12.462-16.855-20.306c-5.222-5.704-9.021-8.315-14.008-14.838
796
+ c-8.54-10.086-10.209-18.043-17.572-28.733c-4.506-6.4-7.834-8.069-11.878-15.432c-21.955-41.318-15.667-59.945-36.567-89.16
797
+ c-6.4-9.38-13.65-11.397-23.859-16.855c-9.492-69.1, 21.852-107.684, 21.729-107.448c 26.47,15.094, 40.602,21.381, 68.147,20.429
798
+ c 10.322-0.604, 15.79-4.987, 25.999-4.27c 9.503,0.594, 14.367,4.147, 23.859,7.004c 14.602,4.864, 22.559,8.899, 37.161,13.414
799
+ c 10.445,2.97, 16.62,3.092, 26.706,7.014c 8.673,3.195, 4.516,0.225, 10.568,7.014c 7.711,8.899, 5.939,15.657, 12.585,30.136
800
+ c 9.851,19.845, 8.786,22.436, 3.564,24.576c 3.328,10.209, 4.27,16.742, 3.441,27.423c-1.065,8.315, 2.499,14.131-6.287,20.296
801
+ c-11.991,9.267-37.161,30.157-43.448,30.28c-9.738-0.123-37.755,0.952-51.999-8.428c-3.205-2.488-4.157-4.506-1.423,2.734
802
+ c 0.594,1.3, 35.502,28.488, 39.291,28.846c 44.401,0.952, 29.563,3.441, 32.297,2.13c 2.253,0.236, 23.624-25.876, 36.567-16.855
803
+ c 4.741,3.195, 7.117,6.052, 9.144,11.151c-1.782,3.676-9.615,9.155-16.855,13.302c-10.445,6.994-11.51,13.998-21.842,16.261
804
+ c-12.708,3.082-26.358,1.188-34.314,2.734c-3.082,0.358-31.109-7.844-48.435-16.855c-16.384-8.673, 22.088,15.667, 31.57,28.129
805
+ c 28.14,8.438, 20.070,8.786, 33.72,11.878c 12.349,2.499, 11.756,1.782, 20.306,4.27c 8.663,2.376, 16.015,14.254, 7.711,21.012
806
+ c-5.1,3.799-20.531-2.017-35.727-2.13c-6.881-0.471-34.55-13.179-40.837-16.742c-15.667-8.192-27.187-19.825-36.444-25.999
807
+ C 105.277,350.679, 132.7,384.041, 144.22,397.926L 144.22,397.926z M 229.816,227.338c-9.38,7.711-14.131,30.024-14.008,30.147
808
+ c-17.213,5.11-28.14,16.507-28.14,16.148c-26.47-14.367-27.177-7.721-38.584-16.148c-9.615-6.892-9.021-9.021-14.008-25.887
809
+ c-4.639-14.725, 11.633-13.292, 25.283-38.697c 23.511,8.561, 36.219,4.516, 44.165,3.574C 208.087,196.229, 207.493,210.596, 229.816,227.338
810
+ L 229.816,227.338z" data-tags="sign-language" />
811
+ <glyph unicode="&#xe07c;" d="M 226.632,436.357c 0.225,21.053-17.080,38.482-38.185,38.257c-21.565,0.225-38.994-17.203-38.881-38.257
812
+ c-0.113-21.555, 17.316-38.82, 38.881-38.871C 209.541,397.537, 226.857,414.802, 226.632,436.357L 226.632,436.357zM 337.654,225.106L 214.139,374.948c-6.42,9.523-42.209,13.527-57.344,1.372L 96.696,266.967l 14.787-92.436
813
+ c 15.032-24.136, 44.851,0.287, 36.475,13.476l-10.086,65.485L 163.84,305.92l0-122.88 l-61.44-163.84c-10.67-35.779, 40.643-54.938, 51.2-20.48l 71.68,184.32l0,92.16 l-30.075,41.595
814
+ c-1.495,1.782-1.27,4.475, 0.573,6.021c 1.833,1.495, 4.475,1.26, 5.97-0.512l 102.748-121.508
815
+ C 321.034,178.196, 354.171,202.23, 337.654,225.106zM 290.396,17.254l-60.672,150.968L 204.8,101.12l 35.604-104.131C 254.73-36.547, 305.080-16.927, 290.396,17.254zM 451.297-17.388c 0.123-0.123, 0.225-0.287, 0.225-0.348c 2.406-2.867, 6.656-3.154, 9.523-0.799
816
+ c 2.519,2.181, 2.99,6.021, 1.26,8.765L 347.965,188.754c-0.123,0.123-0.225,0.236-0.338,0.399c-2.304,2.765-6.543,3.164-9.411,0.748
817
+ c-2.519-2.181-2.755-5.847-1.137-8.765L 451.297-17.388z" data-tags="low-vision-access" />
818
+ <glyph unicode="&#xe07d;" d="M 130.949,124.621c-63.539,0-112.486,35.717-112.486,102.246c0,67.318, 47.36,106.035, 112.486,106.035c 65.106,0, 112.476-38.728, 112.476-106.035
819
+ C 243.415,160.338, 194.478,124.621, 130.949,124.621z M 130.949,177.244c 22.948,0, 34.253,19.558, 34.253,49.234c0,23.347-4.864,53.811-34.253,53.811
820
+ c-29.399,0-34.263-30.464-34.263-53.811C 96.686,196.803, 107.991,177.244, 130.949,177.244zM 410.276,254.72c-0.338,10.24-3.389,14.111-8.253,18.975c-4.864,5.263-11.643,7.25-20.357,7.25c-29.266,0-34.13-30.792-34.13-54.139
821
+ c0-29.676, 11.305-50.924, 34.13-50.924c 20.357,0, 28.273,17.398, 30.525,27.638l 79.022,0 c-6.779-61.44-54.938-80.425-109.548-80.425
822
+ c-63.519,0-112.364,36.485-112.364,103.014c0,67.318, 47.37,107.745, 112.364,107.745c 52.695,0, 102.318-27.935, 107.96-79.135L 410.276,254.72 z" data-tags="open-captioning" />
823
+ <glyph unicode="&#xe07e;" d="M 159.734,244.48c-0.338,10.24-3.277,17.725-8.253,22.589c-4.864,5.253-11.643,9.062-20.234,9.062c-29.399,0-34.253-29.891-34.253-53.238
824
+ c0-29.665, 11.305-48.978, 34.253-48.978c 20.234,0, 28.15,9.134, 30.403,29.614l 79.022,0 c-6.779-61.44-54.938-81.94-109.425-81.94
825
+ c-63.539,0-112.486,35.738-112.486,102.267c0,67.318, 47.36,103.741, 112.486,103.741c 52.562,0, 102.308-21.678, 107.848-83.118L 159.734,244.48 zM 410.583,244.48c-0.338,10.24-3.389,17.725-8.253,22.589c-4.864,5.253-11.643,9.062-20.357,9.062c-29.266,0-34.13-29.891-34.13-53.238
826
+ c0-29.665, 11.305-48.978, 34.13-48.978c 20.357,0, 28.273,9.134, 30.525,29.614L 491.52,203.53 c-6.779-61.44-54.938-81.94-109.548-81.94
827
+ c-63.529,0-112.364,35.738-112.364,102.267c0,67.318, 47.37,103.741, 112.364,103.741c 52.695,0, 102.308-21.678, 107.971-83.118L 410.583,244.48 z" data-tags="closed-captioning" />
828
+ <glyph unicode="&#xe07f;" d="M 40.96,70.4l 50.115,0 c 18.821,0, 31.611-6.697, 31.611-25.231c0-9.708-4.823-16.835-13.394-20.992c 12.063-3.441, 18.217-13.906, 18.217-26.286
829
+ c0-20.142-17.132-29.891-35.113-29.891L 40.96-32 L 40.96,70.4 z M 61.44,29.44l 26.86,0 c 7.598,0, 13.261,2.12, 13.261,10.455C 101.56,49.357, 94.321,49.92, 86.61,49.92L 61.44,49.92 L 61.44,29.44 z M 61.44-11.52
830
+ l 28.068,0 c 8.684,0, 16.169,4.495, 16.169,14.817c0,10.117-6.4,15.903-15.688,15.903L 61.44,19.2 L 61.44-11.52 zM 143.36,39.68l 20.48,0 l0-10.24 l 0.225,0 c 3.625,10.24, 14.94,14.828, 24.596,14.828c 1.331,0, 5.898-0.788, 5.898-1.208l0-18.35 c-10.24,0.43-6.789,0.666-9.083,0.666
831
+ c-14.479,0-21.637-10.383-21.637-23.050L 163.84-32 l-20.48,0 L 143.36,39.68 zM 203.049,19.2c 1.085,20.48, 16.64,24.33, 32.686,24.33c 14.356,0, 30.505-2.949, 30.505-20.204l0-37.407 c0-6.513, 2.796-17.92, 4.618-17.92l-19.907,0
832
+ c-0.727,0-1.331,5.55-1.454,7.905c-6.277-6.523-15.442-8.387-24.125-8.387c-13.64,0-24.494,7.055-24.494,21.78
833
+ c0,16.302, 12.175,20.152, 24.494,21.965c 12.073,1.69, 23.286,1.444, 23.286,9.482c0,8.499-5.786,9.554-12.79,9.554
834
+ c-7.475,0-12.308-0.85-13.025-11.090L 203.049,19.21 z M 245.76,5.1c0-2.888-8.796-3.011-14.961-4.147c-6.154-1.27-10.988-3.318-10.988-10.568
835
+ c0-7.352, 4.71-9.165, 11.1-9.165c 15.442,0, 14.838,12.237, 14.838,16.527L 245.75,5.1 zM 308.879,52.951L 289.075,52.951 l0,16.23 l 19.804,0 L 308.879,52.951 z M 286.72,39.68l 20.48,0 l0-71.68 l-20.48,0 L 286.72,39.68 zM 327.68,70.4l 20.48,0 l0-102.4 l-20.48,0 L 327.68,70.4 zM 368.64,70.4l 20.48,0 l0-102.4 l-20.48,0 L 368.64,70.4 zM 426.998-1.28c 0.614-10.24, 6.625-18.842, 17.623-18.842c 7.967,0, 14.356,8.602, 15.565,8.602l 17.367,0 c-5.54-10.24-17.367-22.344-33.536-22.344
836
+ c-22.671,0-36.68,16.486-36.68,38.769c0,21.524, 14.848,37.233, 36.68,37.233c 24.381,0, 36.209-22.938, 34.867-43.418L 426.998-1.28 z M 459.1,8.96
837
+ c-1.812,10.24-6.031,15.258-15.688,15.258c-12.554,0-16.169-5.018-16.415-15.258L 459.1,8.96 zM 112.64,147.2A35.84,35.84 180 1 1 184.32,147.2A35.84,35.84 180 1 1 112.64,147.2zM 112.64,290.56A35.84,35.84 180 1 1 184.32,290.56A35.84,35.84 180 1 1 112.64,290.56zM 112.64,433.92A35.84,35.84 180 1 1 184.32,433.92A35.84,35.84 180 1 1 112.64,433.92zM 327.68,147.2A35.84,35.84 180 1 1 399.36,147.2A35.84,35.84 180 1 1 327.68,147.2zM 327.68,290.56A35.84,35.84 180 1 1 399.36,290.56A35.84,35.84 180 1 1 327.68,290.56zM 327.68,433.92A35.84,35.84 180 1 1 399.36,433.92A35.84,35.84 180 1 1 327.68,433.92z" data-tags="braille" />
838
+ <glyph unicode="&#xe080;" d="M 263.946,275.2L 256,275.2 l0-92.16 l 7.946,0 c 24.402,0, 44.042,21.75, 44.042,46.152C 307.988,253.46, 288.348,275.2, 263.946,275.2zM 409.6,408.32L 102.4,408.32 C 46.080,408.32,0,362.24,0,305.92l0-143.36 c0-56.32, 46.080-102.4, 102.4-102.4l 307.2,0 c 56.32,0, 102.4,46.080, 102.4,102.4L 512,305.92 C 512,362.24, 465.92,408.32, 409.6,408.32z M 204.8,152.32l-40.96,0 l0,20.48 l-60.314,0
839
+ l-14.019-20.48L 36.321,152.32 l 118.876,163.84L 204.8,316.16 L 204.8,152.32 z M 276.48,152.32l-10.24,0 l-51.2,0 L 215.040,316.16 l 53.289,0 l 0.502,0 c 45.67,0, 81.91-37.14, 81.91-82.944C 350.74,187.535, 322.161,152.32, 276.48,152.32z
840
+ M 366.182,152.32l-8.878,0 l-5.263,0 c 18.268,20.48, 28.662,48.886, 28.662,77.793c0,32.532-13.148,65.567-36.168,86.047l 5.14,0 l 10.015,0 l 5.263,0
841
+ c 20.511-30.72, 32.031-54.139, 32.031-86.047c0-28.396-9.011-57.313-25.539-77.793L 366.182,152.32 z M 407.972,152.32l-9.001,0 l-5.263,0
842
+ c 18.391,20.48, 28.785,48.886, 28.785,77.793c0,32.532-13.271,65.567-36.291,86.047l 5.263,0 l 9.892,0 l 5.243,0 c 20.531-30.72, 32.174-54.139, 32.174-86.047
843
+ c0-28.396-9.144-57.313-25.661-77.793L 407.972,152.32 z M 454.902,152.32L 449.638,152.32 l-9.001,0 l-5.263,0 c 18.391,20.48, 28.785,48.886, 28.785,77.793
844
+ c0,32.532-13.271,65.567-36.291,86.047l 5.263,0 l 9.892,0 l 5.243,0 c 20.531-30.72, 32.174-54.139, 32.174-86.047C 480.43,201.708, 471.286,172.8, 454.902,152.32zM 163.84,203.52L 163.84,263.967L 126.3,203.52 zM 253.809,231.188M 253.809,231.188M 253.809,231.188" data-tags="audio-description" />
845
+ <glyph unicode="&#xe081;" d="M 456.796,469.76l-29.143,0 l-99.246-108.81c 10.435-5.396, 20.060-13.097, 28.621-21.248c 14.131-13.414, 22.6-30.208, 29.020-48.292L 501.76,406.999L 501.76,469.76
846
+ C 465.121,469.76, 478.73,469.76, 456.796,469.76zM 10.24-21.76l 92.948,0 l 138.721,150.497l-82.872,55.214L 10.24,27.761l0-2.314 C 10.24,2.099, 10.24,7.496, 10.24-21.76zM 253.952,224.809M 253.952,224.809M 253.952,224.809M 246.415,326.4l 9.892,0 c 55.296,0, 87.081-53.975, 87.296-89.631c-0.215-6.943-1.935-13.507-9.789-13.353
847
+ c-16.568-0.154-10.66,27.556-24.361,50.207C 303.002,284.805, 282.235,305.92, 258.57,305.92l-8.714,0 c-12.698,0-36.577-8.448-52.603-32.604
848
+ c-20.060-29.102-6.881-51.067-23.726-50.964c-2.58-0.113-10.004,1.505-9.892,13.568C 164.393,290.673, 214.579,326.4, 246.415,326.4L 246.415,326.4zM 253.952,19.2c 20.756,0, 32.768,23.112, 32.768,37.571l0,30.126 c0,61.532, 66.601,85.832, 66.376,147.476c 0.215,57.764-50.944,101.325-100.209,101.222
849
+ c-40.878,0.102-68.27-26.255-78.807-39.905c-31.631-39.107-13.189-76.38-35.553-76.38c-6.349,0-12.462,3.604-12.564,16.241
850
+ c-0.983,61.204, 49.551,125.972, 129.096,126.075c 64.164-0.113, 126.566-51.21, 126.566-129.577c0-72.612-64.205-87.839-64.205-151.511l0-27.218
851
+ c0-28.017-24.361-60.017-65.341-60.191c-1.495,0.44-2.888,0.973-4.823,1.188c-7.526,2.253-12.636,9.032-10.803,16.773
852
+ C 238.623,17.818, 245.023,19.2, 253.42,19.2L 253.952,19.2 L 253.952,19.2z" data-tags="assistive-listening-system" />
853
+ <glyph unicode="&#xe082;" d="M 358.492,218.45c-3.348,13.24-20.204,23.695-32.87,17.572L 276.48,213.76l0,87.9 l 86.354,135.608c 6.267,9.902, 3.85,23.030-6.236,29.379
854
+ c-9.964,6.236-22.938,3.338-28.539-6.349L 255.693,345.047l-43.633-0.113c-2.796,0-5.571-0.451-8.376-1.556l-75.428-29.379L 89.395,372.521
855
+ C 83.005,382.31, 69.796,385.208, 59.832,378.87s-12.872-19.579-6.482-29.481l 48.497-72.98c 5.489-8.458, 17.019-12.237, 26.757-8.233L 184.32,289.649L 184.32,193.28
856
+ l-75.745-167.803c-5.714-12.81, 0.553-26.88, 13.885-34.345c 13.332-7.465, 28.682-3.113, 34.222,9.677l 60.938,139.080
857
+ c 5.366-1.556, 11.192-2.243, 17.132-2.243c 5.489,0, 10.865,1.004, 15.677,2.785l 68.413,31.826l 14.991-59.976
858
+ c 3.338-13.343, 16.957-21.473, 30.413-18.135c 13.435,3.338, 21.484,16.814, 18.125,30.157L 358.492,218.45zM 296.96,253.819l0-15.903 C 399.36,289.3, 439.071,465.306, 439.071,480l-14.326,0 C 419.369,443.29, 378.88,296.438, 296.96,253.819zM 224.338,352.717c 20.951,0, 37.97,16.794, 37.97,37.601c0,20.797-17.019,37.724-37.97,37.724c-20.951,0-37.97-16.916-37.97-37.724
859
+ C 186.368,369.51, 203.387,352.717, 224.338,352.717zM 256-32L 276.48-32L 276.48,137.656L 256,121.6 z" data-tags="abseiling" />
860
+ <glyph unicode="&#xe083;" d="M 59.484,232.090c-10.353,0-18.821-8.468-18.821-18.79c0-10.312, 8.479-18.637, 18.821-18.637c 10.342,0, 18.698,8.325, 18.698,18.637
861
+ C 78.182,223.621, 69.827,232.090, 59.484,232.090zM 320.481,388.342c 22.436,0, 40.755,18.135, 40.755,40.643c0,22.508-18.319,40.776-40.755,40.776c-22.559,0-40.888-18.268-40.888-40.776
862
+ C 279.593,406.477, 297.923,388.342, 320.481,388.342zM 495.903,25.723l-66.324,78.090c0,0-20.716,120.566-20.716,120.822c0,0.113-3.103,13.67-3.103,13.67
863
+ c 0.123-0.133-8.335,38.031-14.817,67.86c 10.342-5.96, 19.681-11.305, 20.183-11.561c 0.502-1.106, 35.144-66.867, 35.144-66.867
864
+ c 2.642-4.864, 7.025-8.468, 12.237-10.066c 5.356-1.618, 10.977-1.126, 15.841,1.495c 4.864,2.478, 8.479,6.83, 10.076,12.175
865
+ c 1.782,5.212, 1.239,10.824-1.382,15.657L 445.061,319.232c0,0-1.516,2.611-3.502,4.588c-2.744,2.734-8.755,6.093-8.755,6.093l-73.779,41.902
866
+ c-9.359,4.721-19.702,6.328-30.065,4.096c-4.26-0.87-8.223-2.488-12.698-4.977c-0.522-0.113-16.855-7.322-26.317-29.471l-37.888-76.073
867
+ c0,0-57.733-11.182-59.73-11.561c-0.492-0.123-1.014-0.246-1.372-0.492l-53.924,38.042c-12.093,8.448-13.578,33.812-13.722,34.806
868
+ c-1.485,17.398-11.469,33.812-27.423,45.128C 81.439,381.501, 63.969,385.843, 48.005,383.252c-12.472-2.12-23.060-8.581-29.798-18.043
869
+ C 12.984,357.878, 10.24,349.051, 10.24,339.61c0-0.133, 0.748-8.223, 0.748-8.223c 2.755-16.015, 12.595-30.935, 27.064-41.257
870
+ c 14.582-10.312, 31.918-14.674, 47.872-11.94l 3.748,0.748c 0.369,0.246, 24.31,7.598, 36.024-0.379c0-0.113, 40.325-28.457, 51.057-36.045
871
+ c-1.116-1.741-3.113-5.581-2.99-9.574c0-1.249, 0.133-2.478, 0.379-3.717c 2.12-11.203, 13.076-18.657, 24.31-16.425l 71.547,13.937
872
+ c0,0, 6.124,1.864, 8.745,3.738c 3.379,2.355, 5.857,7.322, 5.857,7.322l 18.821,37.796c0,0, 12.984-61.030, 13.199-62.147
873
+ c-1.485-1.495-58.696-62.034-58.696-62.034l-2.202-1.249C 250.081,145.080, 245.76,138.373, 245.76,131.267l0-128.266 C 245.76-10.701, 257.71-21.76, 271.421-21.76
874
+ C 285.020-21.76, 296.96-10.701, 296.96,3c0,0,0,105.39,0,107.141c 10.24,5.458, 49.603,51.569, 61.317,63.785c 1.26-7.209, 12.82-72.253, 12.82-72.253
875
+ c 1.004-5.724, 3.881-10.936, 7.997-15.145c0-0.143, 78.838-92.887, 78.838-92.887c 4.383-4.936, 10.373-8.069, 16.968-8.684
876
+ c 6.615-0.502, 12.995,1.597, 18.115,5.816c 5.724,4.864, 8.735,11.95, 8.735,18.924C 501.75,15.401, 499.896,21.002, 495.903,25.723z
877
+ M 102.625,305.418c-4.362-6.093-11.090-10.066-19.446-11.561c-11.725-1.976-24.822,1.372-35.779,9.329c-11.090,7.844-18.586,19.016-20.572,30.7
878
+ L 26.317,339.732c0,6.093, 1.628,11.551, 4.997,16.282c 10.844,15.155, 35.645,16.148, 55.337,2.232C 106.24,344.32, 113.469,320.584, 102.625,305.418z" data-tags="tennis" />
879
+ <glyph unicode="&#xe084;" d="M 182.6-7.485A13.885,14.275 180 1 1 210.371-7.485000000000014A13.885,14.275 180 1 1 182.6-7.485000000000014zM 308.716-21.494c 7.66,0, 13.865,6.451, 13.865,14.449c0,7.905-6.195,14.326-13.865,14.326c-7.68,0-13.875-6.42-13.875-14.326
880
+ C 294.84-15.043, 301.036-21.494, 308.716-21.494zM 284.764,393.943c 20.357,0, 36.905,17.029, 36.905,37.97C 321.659,452.844, 305.121,469.76, 284.764,469.76c-20.347,0-36.905-16.916-36.905-37.847
881
+ C 247.859,410.972, 264.417,393.943, 284.764,393.943zM 84.644,62.228C 82.903,58.87, 81.92,55.060, 81.92,50.934c0-13.332, 10.568-24.207, 23.624-24.207c 9.37,0, 17.418,5.601, 21.228,13.67
882
+ l 80.497,142.336l-33.423,34.386L 84.644,62.228zM 259.062,68.618c-3.799-8.069-11.858-13.681-21.217-13.681c-12.954,0-23.501,10.875-23.501,24.207c0,4.137, 0.973,7.936, 2.724,11.305
883
+ l 35.052,63.375l-68.362,69.898c-26.235,27.095-7.506,56.433-7.506,56.433l 36.792,66.857l-97.587-0.113c-10.772,0-19.374,9.554-19.374,20.531
884
+ C 96.072,378.296, 104.673,387.84, 115.446,387.84l 295.352,0 C 421.478,387.84, 430.080,378.276, 430.080,367.309C 430.080,356.332, 421.478,346.88, 410.798,346.88L 298.138,346.88 l-53.76-96.85l 54.743-55.654
885
+ c 19.18-18.934, 6.758-40.202, 6.758-40.202L 259.062,68.618zM 348.16,29.44c0-5.663-4.577-10.24-10.24-10.24L 163.84,19.2 c-5.652,0-10.24,4.577-10.24,10.24l0,0c0,5.663, 4.588,10.24, 10.24,10.24l 174.080,0 C 343.583,39.68, 348.16,35.103, 348.16,29.44L 348.16,29.44z" data-tags="skateboarding" />
886
+ <glyph unicode="&#xe085;" d="M 73.789,161.116c 29.542,0, 53.443,24.566, 53.443,54.968c0,30.239-23.9,54.815-53.443,54.815C 44.37,270.899, 20.48,246.323, 20.48,216.084
887
+ C 20.48,185.692, 44.37,161.116, 73.789,161.116zM 373.105,66.744c 2.488,1.761, 5.775,1.229, 7.588-1.198l 9.882-14.049c 1.679-2.437, 1.167-5.939-1.188-7.844l-72.499-54.139
888
+ c-2.345-1.761-5.755-1.208-7.608,1.208l-9.851,14.049c-1.69,2.437-1.157,5.929, 1.188,7.823L 373.105,66.744zM 291.154,136.55L 262.4,188.396L 247.306,177.060L 276.060,124.938 zM 224.072,257.659L 112.251,459.52L 90.86,459.377L 208.845,246.18 zM 329.349,150.856C 335.667,155.576, 350.126,162.56, 358.4,162.56l 102.4,0 c 20.214,0, 30.72-20.337, 30.72-41.001C 491.52,100.772, 481.014,90.88, 460.8,90.88l-92.16,0 l-110.961-87.060
889
+ c-38.994-28.867-62.628,2.847-62.628,2.847l-86.866,89.385c-14.572,17.951-11.418,52.111, 6.052,67.236l 120.207,88.033
890
+ c 11.94,10.24, 29.665,8.632, 39.782-3.512c 9.994-12.288, 8.417-30.659-3.543-40.919l-76.954-57.928l 55.286-56.156L 329.349,150.856z" data-tags="playground" />
891
+ <glyph unicode="&#xe086;" d="M 360.233,469.76c-23.101,0-41.851-19.036-41.851-42.383c0-23.439, 18.749-42.363, 41.851-42.363c 23.235,0, 42.056,18.924, 42.056,42.363
892
+ C 402.289,450.724, 383.457,469.76, 360.233,469.76zM 43.387,177.51c-3.625,5.898-11.244,7.69-17.039,4.045c-5.847-3.676-7.608-11.356-3.973-17.265
893
+ c 3.645-5.786, 11.233-7.567, 17.162-3.983C 45.261,164.004, 47.012,171.674, 43.387,177.51zM 52.009,142.94c-3.625,5.786-11.244,7.578-17.152,3.901c-5.734-3.604-7.485-11.336-3.86-17.121
894
+ c 3.635-5.99, 11.254-7.69, 16.978-4.045C 53.821,129.362, 55.593,137.052, 52.009,142.94zM 60.58,108.257c-3.574,5.96-11.346,7.68-17.091,4.004c-5.908-3.645-7.608-11.315-3.963-17.265
895
+ c 3.574-5.775, 11.336-7.537, 17.080-3.891C 62.464,94.74, 64.215,102.482, 60.58,108.257zM 69.1,73.687c-3.625,5.786-11.244,7.567-16.968,4.055c-5.919-3.789-7.619-11.459-4.045-17.306
896
+ c 3.635-5.898, 11.254-7.68, 17.152-4.004C 70.973,60.109, 72.735,67.799, 69.1,73.687zM 270.51,3.226c-6.584-2.212-10.23-9.226-8.12-15.841c 2.171-6.646, 9.155-10.189, 15.636-8.141
897
+ c 6.523,2.14, 10.148,9.175, 8.11,15.708C 284.017,1.567, 277.033,5.171, 270.51,3.226zM 305.777,2.918c-6.554-1.997-10.107-9.124-8.018-15.636c 2.109-6.656, 9.134-10.322, 15.626-8.182
898
+ c 6.461,2.089, 10.086,9.206, 7.997,15.749C 319.232,1.382, 312.381,5.059, 305.777,2.918zM 341.258,2.806c-6.636-2.109-10.281-9.124-8.11-15.77c 2.089-6.523, 9.083-10.189, 15.626-8.059
899
+ c 6.472,1.997, 10.076,9.083, 7.916,15.739C 354.724,1.26, 347.72,4.956, 341.258,2.806zM 376.474,2.662c-6.461-2.14-10.097-9.175-8.018-15.729c 2.161-6.595, 9.165-10.189, 15.626-8.1
900
+ c 6.513,2.15, 10.076,9.083, 8.018,15.677C 389.99,1.157, 382.966,4.71, 376.474,2.662zM 460.78,305.92l-73.277,0 l-36.239,59.259c-6.257,13.384-19.364,22.589-34.847,23.214c-3.021,0.154-5.755-0.297-8.53-0.911l-184.197-43.756
901
+ c-11.141-2.632-18.125-13.793-15.462-25.139c 2.499-11.244, 13.466-18.196, 24.596-15.657l 122.993,22.405L 162.335,162.56L 94.31,162.56 L 94.208,162.56 L 62.341,162.56 l 22.139-80.824
902
+ c 0.748-2.621, 0.748,0.266, 1.608-1.116c 3.113-5.14, 9.769-5.028, 14.746-1.894c 2.724,1.608, 4.495,5.304, 4.997,8.233l 13.24,41.155
903
+ l 0.502,1.884c0,0, 61.153,0.358, 61.614,0.358c 12.268,0, 22.774,3.43, 29.010,13.824l 28.344,47.442l 63.089-64.748L 274.893,19.2c0,0, 92.211,0, 92.6,0
904
+ c 5.96,0, 10.844,6.236, 10.844,12.175c0,4.7-2.877,8.612-6.451,10.609l-39.977,22.692l 19.19,76.544c0,0, 4.762,16.271-10.332,31.171
905
+ l-51.61,52.255c0,0, 27.576,45.793, 45.251,75.213L 358.4,264.96c 10.24,0, 11.612,0, 15.79,0l 86.211,0 c 11.5,0, 20.767,8.94, 20.879,20.408
906
+ C 481.382,296.98, 472.136,305.92, 460.78,305.92z" data-tags="inline-skating" />
907
+ <glyph unicode="&#xe087;" d="M 295.465,185.784c 13.281-4.495, 27.72,2.253, 32.358,15.227c 4.618,12.943-2.427,27.013-15.718,31.519
908
+ c-13.302,4.506-27.74-2.365-32.358-15.309C 275.231,204.329, 282.173,190.157, 295.465,185.784zM 503.828,347.116c0,0-85.975,10.076-264.53,10.076C 107.592,357.192,0,347.116,0,347.116s 44.616-19.139, 36.874-78.469
909
+ c0,0, 64.020,7.434, 90.839-45.978l 120.248,35.523l-7.864-78.152L 189.235,167.885c-4.506-1.014-8.315-3.154-11.428-5.847L 66.222,57.108
910
+ c-6.584-6.072-6.697-16.323-0.338-22.61c 6.236-6.431, 16.753-6.656, 23.224-0.573l 83.958,78.787l 102.861,24.535l-0.696-0.215l 17.101,4.28
911
+ l 15.718-17.459c 2.427-2.58, 5.888-4.157, 9.595-4.157l 55.357-0.215c 6.943,0, 12.708,5.509, 12.708,12.38l0,0
912
+ c0,5.97-4.27,10.578-9.933,11.94l-41.257,139.889l 171.848,50.708C 514.58,337.9, 513.884,346.051, 503.828,347.116z M 363.418,144.364
913
+ c-12.595,0-33.638,0.113-39.987,0.113c-6.011,6.636-29.829,32.87-29.829,32.87c-0.338,0.451-0.922,0.563-1.27,0.901
914
+ c-6.011,6.861-15.596,10.455-25.18,8.223l-14.92-3.615l 7.977,78.94l 62.976,18.565L 363.418,144.364z" data-tags="hang-gliding" />
915
+ <glyph unicode="&#xe088;" d="M 65.864,259.328c-2.222-4.557-3.84-9.605-4.69-15.032c-0.379-2.693-0.625-5.417-0.625-8.12l 1.976-124.16L 19.466,19.61
916
+ c-1.485-2.724-2.591-5.898-3.082-9.236c-2.355-15.278, 8.161-29.45, 23.501-31.795c 11.878-1.843, 23.255,4.188, 28.703,14.193l 47.37,101.007
917
+ c 0.983,2.345, 1.864,4.813, 2.222,7.516c 0.133,1.229, 0.256,2.591, 0.256,3.809l-0.369,76.759l 72.796-31.662l 11.756-75.018
918
+ c 2.345-10.967, 11.377-19.732, 23.132-21.565c 15.34-2.212, 29.563,8.264, 31.928,23.398c 0.358,2.591, 0.358,5.181, 0.113,7.639l-14.346,90.563
919
+ c-1.731,8.745-7.537,16.261-15.708,20.091l-65.065,28.795l 41.431,71.823l 20.552-25.999c 2.099-2.335, 4.823-4.311, 7.905-5.54l 78.316-22.784
920
+ c 10.404-2.222, 21.043,3.185, 25.108,13.169c 4.577,11.336-0.85,24.146-12.114,28.703c-0.379,0.123-0.748,0.246-1.116,0.369l-68.045,19.958
921
+ l-51.22,61.225c-7.67,8.131-17.94,13.916-29.809,15.78c-20.787,3.072-40.52-6.779-50.913-23.532L 65.864,259.328zM 290.519,81.316l-4.946-37.202l-134.717-32.635L 152.156-11.52l 328.561,0 C 492.36-11.52, 501.76-2.181, 501.76,9.4L 501.391,450.427l-45.015,10.465
922
+ l-25.866-115.948l-43.244-18.104l-38.349-106.916l 36.434-81.807l-10.26-31.406L 290.519,81.316zM 199.045,386.232c 23.132,0, 41.933,18.719, 41.933,41.759C 240.968,451.021, 222.177,469.76, 199.045,469.76s-41.943-18.739-41.943-41.769
923
+ C 157.092,404.951, 175.903,386.232, 199.045,386.232zM 115.599,379.699c 3.215,5.663, 1.352,13.056-4.454,16.261L 90.849,407.788C 85.043,410.993, 77.732,409.139, 74.394,403.354L 11.807,295.793
924
+ c-3.215-5.663-1.362-12.933, 4.444-16.261l 20.419-11.715c 5.683-3.318, 12.995-1.352, 16.323,4.321L 115.599,379.699z" data-tags="climbing" />
925
+ <glyph unicode="&#xe089;" d="M 300.38,340.644c 19.425,0, 35.236,17.285, 35.236,38.543c0,21.268-15.811,38.554-35.236,38.554c-19.456,0-35.277-17.285-35.277-38.554
926
+ C 265.103,357.929, 280.924,340.644, 300.38,340.644zM 398.141,4.024L 348.16,172.8L 348.16,305.92 c0,18.084-20.541,20.48-20.541,20.48l-53.146,0 l-14.049,0 c0,0-8.837-5.069-14.664-10.24l-33.065-15.155l-40.837,45.404
927
+ c-6.656,8.643-18.401,10.25-26.307,2.98c-8.008-7.27-8.417-20.285-1.772-29.041l 52.060-56.883c 3.553-4.106, 8.428-6.84, 13.937-6.84
928
+ c 4.055,0-1.966,1.444, 1.167,3.779L 245.76,275.2l0-102.4 l-53.002-168.448c-3.85-15.237, 9.339-30.925, 23.357-35.021c 13.947-4.086, 30.751,4.997, 34.499,20.244
929
+ l 47.073,151.347l 47.329-151.695c 3.717-15.34, 19.405-24.33, 33.341-20.234C 392.294-26.931, 401.961-11.223, 398.141,4.024zM 134.523,301.066c 1.761-1.987, 4.782-2.038, 6.656,0l 0.625,0.573c 1.782,2.058, 1.884,5.345,0,7.332l-10.189,11.428
930
+ c-1.884,2.048-4.905,2.048-6.779,0.051l-0.512-0.625c-1.864-2.048-1.976-5.294-0.102-7.281L 134.523,301.066zM 232.018,430.469l-60.16-71.127l 7.301-8.131l 67.123,63.283l 44.626,44.974c 1.782,2.161, 2.908,4.997, 2.908,8.079
931
+ c0,6.82-4.997,12.39-11.131,12.452c-3.011,0.051-5.612-1.198-7.68-3.133L 232.018,430.469z" data-tags="baseball" />
932
+ <glyph unicode="&#xe08a;" d="M 193.075,371.487c 22.958,0, 41.38,18.985, 41.38,42.373c0,23.398-18.422,42.383-41.38,42.383c-22.784,0-41.39-18.985-41.39-42.383
933
+ C 151.685,390.472, 170.291,371.487, 193.075,371.487zM 204.8,357.12L 81.92,357.12 c-20.48,0-20.48-30.72,0-30.72l 122.88,0 C 225.28,326.4, 225.28,357.12, 204.8,357.12zM 399.36,344.279c0,46.971-16.435,91.843-46.387,127.201C 353.106,471.603, 345.416,480, 345.416,480l-116.531-119.276l-1.987-1.966
934
+ c 0.358-0.532, 0.881-0.891, 1.106-1.495c 1.792-3.267, 2.785-6.902, 3.195-10.527c 0.123-1.495,0-3.041-0.174-4.588
935
+ c-0.225-3.154-0.819-6.246-2.14-9.175l-0.123-0.297c-0.287-0.532-0.41-1.188-0.748-1.782c-0.225-0.42-0.471-1.147-0.758-1.495
936
+ C 222.136,321.352, 213.371,316.16, 202.721,316.16L 133.12,316.16 l0-154.47 c0-0.123,0-9.236,0-9.37l-22.395-155.986c-2.447-12.851, 7.342-25.354, 19.896-27.853
937
+ C 143.176-34.15, 161.28-24.504, 163.84-11.52l 20.48,174.080l 10.24,0 l 34.714-175.391c 2.56-12.984, 20.5-21.32, 33.167-18.688c 12.452,2.499, 19.395,15.002, 16.947,27.853
938
+ L 245.76,162.877L 245.76,302.264 l 95.498-93.542c0,0, 9.759,8.448, 9.759,8.561C 380.826,252.611, 399.36,297.492, 399.36,344.279z M 378.255,326.4
939
+ c-3.42-30.72-21.32-67.871-43.756-95.048C 313.764,252.518, 266.24,292.383, 245.76,318.505L 245.76,326.4 L 378.255,326.4 z M 378.255,357.12L 244.756,357.12
940
+ c 24.525,30.72, 70.38,72.018, 93.88,96C 361.175,425.984, 374.958,398.080, 378.255,357.12z" data-tags="archery" />
941
+ <glyph unicode="&#xe08b;" d="M 491.52-21.76c-10.199,0-20.173,2.324-28.979,6.236c-9.042,4.157-19.231,6.584-29.901,6.584
942
+ c-10.557,0-20.756-2.417-29.798-6.584C 393.943-19.436, 384.072-21.76, 373.76-21.76c-10.301,0-20.173,2.324-28.989,6.236
943
+ c-9.042,4.157-19.241,6.584-29.911,6.584c-10.547,0-20.746-2.417-29.85-6.584C 276.214-19.436, 266.312-21.76, 255.99-21.76
944
+ c-10.26,0-20.183,2.324-28.969,6.236c-9.103,4.157-19.241,6.584-29.901,6.584c-10.619,0-20.756-2.417-29.85-6.584
945
+ C 158.413-19.436, 148.552-21.76, 138.24-21.76c-10.332,0-20.183,2.324-29.020,6.236c-9.021,4.157-19.241,6.584-29.86,6.584
946
+ c-10.67,0-20.828-2.417-29.85-6.584C 40.663-19.436, 30.802-21.76, 20.48-21.76l0,42.803 c 10.322,0, 20.183,2.324, 29.020,6.236
947
+ c 9.021,4.055, 19.19,6.482, 29.85,6.482c 10.619,0, 20.828-2.417, 29.86-6.482c 8.847-3.922, 18.698-6.236, 29.020-6.236
948
+ c 10.322,0, 20.173,2.324, 29.020,6.236c 9.093,4.055, 19.231,6.482, 29.85,6.482c 10.67,0, 20.808-2.417, 29.901-6.482
949
+ c 8.786-3.922, 18.708-6.236, 28.969-6.236c 10.322,0, 20.224,2.324, 29.020,6.236c 9.103,4.055, 19.302,6.482, 29.85,6.482
950
+ c 10.67,0, 20.869-2.417, 29.911-6.482c 8.817-3.922, 18.688-6.236, 28.989-6.236c 10.312,0, 20.183,2.324, 29.082,6.236
951
+ c 9.042,4.055, 19.241,6.482, 29.798,6.482c 10.67,0, 20.859-2.417, 29.901-6.482c 8.806-3.922, 18.78-6.236, 28.979-6.236L 491.5-21.76 zM 71.035,225.915c 15.77,0, 28.559,12.575, 28.559,28.047c0,15.452-12.79,28.037-28.559,28.037
952
+ c-15.729,0-28.508-12.585-28.508-28.037C 42.527,238.479, 55.306,225.915, 71.035,225.915zM 196.465,101.12l-81.633,0 c-12.012,0-22.446,5.765-27.146,15.954l-30.198,67.113c-0.584,2.304-0.881,4.291-0.881,6.728
953
+ c0,16.261, 13.373,29.266, 29.86,29.266l 66.314,0.041l 45.507,20.275c 0.707,0.451, 2.57,0.891, 4.577,0.891c 7.793,0, 14.193-6.359, 14.193-13.978
954
+ c0-4.741-2.468-9.011-6.103-11.551l-49.49-20.808C 158.177,192.522, 151.962,193.28, 151.962,193.28l-29.798,0 l 24.986-61.44l 55.183,0 l0,0
955
+ c 5.448,0, 9.267,0.461, 12.595-2.417l 54.088-49.418l0,0c 7.557-6.902, 7.967-17.981, 0.932-25.477c-7.086-7.383-18.944-6.298-26.511,0.625l0,0
956
+ L 196.465,101.12zM 450.836,190.362c 1.044-1.741, 3.604-2.417, 5.98-2.417c 4.536,0, 8.315,3.697, 8.315,8.305
957
+ c0,2.202-1.075,4.157-2.12,6.021c-51.016,95.775-188.744,67.277-205.629,61.041c-2.806-1.044-4.454-4.157-4.454-7.281
958
+ c0-4.485, 3.748-8.192, 8.315-8.192c 1.413,0, 2.109,0.123, 3.338,0.461C 399.677,278.19, 443.668,202.476, 450.836,190.362z M 474.296,181.699
959
+ L 301.548,74.496L 144.271,469.76C 285.010,451.41, 463.954,343.849, 474.296,181.699z" data-tags="wind-surfing" />
960
+ <glyph unicode="&#xe08c;" d="M 10.24,428.8L 88.238,347.976L 118.211,375.255L 91.075,428.554 zM 361.841,202.414c 14.735-4.116, 30.597,4.342, 34.775,19.548c 4.045,14.93-4.557,30.628-19.436,34.867l-11.54,3.226
961
+ l-14.981-54.292L 361.841,202.414zM 352.758,263.547l-93.338,26.655c-6.144,1.618-12.339-2.13-14.070-8.346l-8.724-31.631
962
+ c-1.71-6.226, 1.597-12.575, 7.864-14.449l 93.409-26.409L 352.758,263.547zM 367.483,173.629c-7.117,6.851-15.964,12.329-26.255,15.196l-113.183,32.123l0,0l-69.53,125.030
963
+ c-3.686,6.472-9.585,11.581-17.203,13.701c-15.237,4.352-31.089-4.731-35.256-20.173c-2.089-7.352-1.106-14.817, 2.212-21.166l 86.979-154.665
964
+ c0,0, 7.127-11.581, 25.057-17.572l 158.126-44.964l 73.339-75.459c 2.458-2.611, 5.663-4.598, 9.462-5.734c 11.059-3.113, 22.6,3.625, 25.805,14.715
965
+ c 2.099,7.834-0.358,16.056-5.898,21.166L 367.483,173.629zM 451.901,142.367l 16.435-21.791L 501.76,157.573l-28.242,15.954c 2.683,20.050-9.605,39.465-29.256,45.066
966
+ c-21.617,6.113-44.104-6.595-50.104-28.518c-6.164-22.047, 6.502-44.698, 28.119-50.811C 432.599,136.284, 443.044,137.902, 451.901,142.367z" data-tags="scuba-diving" />
967
+ <glyph unicode="&#xe08d;" d="M 481.28-21.76c-9.748,0-19.292,2.253-27.699,6.113c-8.632,4.065-18.381,6.451-28.611,6.451
968
+ c-10.097,0-19.845-2.376-28.477-6.451C 387.953-19.507, 378.511-21.76, 368.66-21.76c-9.769,0-19.292,2.253-27.73,6.113
969
+ c-8.612,4.065-18.381,6.451-28.59,6.451c-10.107,0-19.855-2.376-28.518-6.451C 275.343-19.507, 265.861-21.76, 256.051-21.76
970
+ c-9.871,0-19.292,2.253-27.771,6.113c-8.632,4.065-18.401,6.451-28.539,6.451c-10.209,0-19.978-2.376-28.611-6.451
971
+ C 162.703-19.507, 153.231-21.76, 143.35-21.76c-9.81,0-19.292,2.253-27.75,6.113c-8.643,4.065-18.401,6.451-28.559,6.451
972
+ c-10.158,0-19.917-2.376-28.559-6.451C 50.012-19.507, 40.591-21.76, 30.72-21.76l0,42.004 c 9.871,0, 19.292,2.253, 27.761,6.113
973
+ c 8.643,3.963, 18.401,6.339, 28.559,6.339c 10.148,0, 19.907-2.376, 28.559-6.339c 8.468-3.86, 17.94-6.113, 27.75-6.113
974
+ c 9.882,0, 19.354,2.253, 27.771,6.113c 8.632,3.963, 18.401,6.339, 28.611,6.339c 10.138,0, 19.907-2.376, 28.539-6.339
975
+ c 8.489-3.86, 17.9-6.113, 27.771-6.113c 9.81,0, 19.292,2.253, 27.771,6.113c 8.663,3.963, 18.412,6.339, 28.518,6.339
976
+ c 10.209,0, 19.978-2.376, 28.59-6.339c 8.438-3.86, 17.961-6.113, 27.73-6.113c 9.851,0, 19.292,2.253, 27.832,6.113
977
+ c 8.632,3.963, 18.381,6.339, 28.477,6.339c 10.23,0, 19.978-2.376, 28.611-6.339c 8.407-3.86, 17.951-6.113, 27.699-6.113L 481.27-21.76 zM 296.96,469.76L 296.96,152.32L 43.899,152.32 zM 327.68,396.861C 327.68,361.421, 489.953,264.96, 478.136,152.32L 327.68,152.32 L 327.68,396.861 L 327.68,396.861zM 445.716,131.84l-69.99,0 L 102.4,131.84 l0-63.488 c 10.24-1.024, 8.663-2.161, 12.155-3.86c 8.468-3.738, 18.473-5.99, 28.283-5.99
978
+ c 9.882,0, 19.62,2.253, 28.037,5.99c 8.632,4.076, 18.534,6.451, 28.744,6.451c 10.138,0, 19.968-2.365, 28.6-6.451
979
+ c 8.489-3.738, 17.93-5.99, 27.802-5.99c 9.81,0, 19.302,2.253, 27.781,5.99c 8.663,4.076, 18.422,6.451, 28.529,6.451
980
+ c 10.209,0, 19.988-2.365, 28.6-6.451c 8.438-3.738, 17.961-5.99, 27.73-5.99c 1.915,0, 3.686,0.451, 5.489,0.676
981
+ c 0.225,0, 0.225-0.225, 0.461-0.225c 1.219,0, 2.12,0.563, 3.359,0.563c 2.243,0.338, 4.475,0.573, 6.728,1.126
982
+ c 20.173,4.188, 33.219,20.541, 33.219,20.541L 457.185,131.84L 445.716,131.84 z" data-tags="sailing" />
983
+ <glyph unicode="&#xe08e;" d="M 257.198,374.17c-15.104,0-27.556,12.513-27.556,27.853c0,15.442, 12.452,27.843, 27.556,27.843
984
+ c 15.37,0, 27.699-12.401, 27.699-27.843C 284.897,386.683, 272.568,374.17, 257.198,374.17z M 480.799,130.396l-14.756,92.436
985
+ c-1.679,8.643-9.196,15.217-18.135,15.217c-5.437,0-10.281-2.314-13.793-6.093l-67.983-64.102c-1.065-0.973-2.161-2.058-3.144-3.41
986
+ c-6.39-8.745-4.567-21.156, 4.137-27.73c 1.659-1.198, 3.502-2.058, 5.315-2.796l 17.029-5.724C 373.064,81.51, 325.816,39.281, 276.48,29.44L 276.48,336.64
987
+ c 24.177,10.342, 48.077,37.396, 48.077,65.382C 324.557,439.48, 294.431,469.76, 257.198,469.76c-37.1,0-67.338-30.28-67.338-67.738
988
+ c0-27.986, 21.586-55.040, 45.65-65.382l0-307.2 c-50.422,9.124-96.317,51.2-113.132,98.765l 17.183,5.724c 1.812,0.737, 3.615,1.597, 5.315,2.796
989
+ c 8.694,6.574, 10.629,18.985, 4.116,27.73c-0.983,1.352-1.935,2.437-3.154,3.41l-67.973,64.102c-3.389,3.779-8.346,6.093-13.67,6.093
990
+ c-9.062,0-16.691-6.574-18.258-15.217l-14.756-92.436C 30.843,128.942, 30.72,127.365, 30.72,125.768c0-10.916, 8.827-19.825, 19.722-19.825
991
+ c 2.048,0, 3.983,0.256, 5.796,0.87l 15.964,5.222C 97.597,34.437, 170.25-21.76, 256-21.76c 85.74,0, 158.423,56.197, 183.818,133.919l 15.974-5.335
992
+ c 1.792-0.614, 3.758-0.87, 5.786-0.87c 10.885,0, 19.712,8.899, 19.712,19.825C 481.28,127.365, 481.167,128.942, 480.799,130.396z" data-tags="marina" />
993
+ <glyph unicode="&#xe08f;" d="M 178.555,348.058c 25.231,0, 45.568,20.408, 45.568,45.527C 224.123,418.693, 203.776,439.040, 178.555,439.040
994
+ c-25.18,0-45.578-20.347-45.578-45.455C 132.966,368.466, 153.375,348.058, 178.555,348.058zM 10.24,99.41c 10.24,0, 20.982,2.458, 30.177,6.584c 9.441,4.362, 20.142,6.922, 31.212,6.922c 11.080,0, 21.76-2.56, 31.15-6.922
995
+ c 9.257-4.116, 19.589-6.523, 30.362-6.523c 10.721,0, 21.043,2.396, 30.249,6.523c 9.38,4.362, 20.050,6.922, 31.191,6.922
996
+ c 11.069,0, 21.668-2.56, 31.171-6.922c 9.155-4.116, 19.528-6.523, 30.249-6.523c 10.721,0, 21.094,2.396, 30.239,6.523
997
+ c 9.503,4.362, 20.122,6.922, 31.242,6.922c 11.080,0, 21.678-2.56, 31.119-6.922c 9.257-4.116, 19.589-6.523, 30.321-6.523
998
+ c 10.752,0, 21.043,2.396, 30.3,6.523c 9.38,4.362, 20.040,6.922, 31.109,6.922c 9.503,0, 18.719-1.812, 27.034-5.059
999
+ c 13.537,14.756, 21.934,34.406, 21.934,55.921c0,45.814-37.181,82.903-83.046,82.903l-9.308-0.993c-10.209-41.339-51.651-43.080-51.651-43.080
1000
+ L 155.648,202.66l-15.852,9.308l 38.226,64l 41.851-24.125c 25.057-16.21, 38.103,6.513, 38.103,6.513l 41.964,68.26
1001
+ c 18.237,29.655-20.449,53.432-38.574,23.665l-29.379-47.841l-69.816,38.543c-48.384,26.921-68.884-17.674-68.884-17.674l-54.835-93.716
1002
+ c-9.329-19.476-1.065-27.843-1.065-27.843L 10.24,201.789L 10.24,99.41 zM 501.76,8.96c-10.732,0-21.043,2.376-30.188,6.513c-9.492,4.362-20.111,6.912-31.242,6.912
1003
+ c-11.069,0-21.729-2.55-31.109-6.912C 399.964,11.336, 389.673,8.96, 378.921,8.96c-10.732,0-21.064,2.376-30.321,6.513
1004
+ c-9.441,4.362-20.040,6.912-31.119,6.912c-11.121,0-21.74-2.55-31.242-6.912C 277.094,11.336, 266.721,8.96, 256,8.96
1005
+ c-10.711,0-21.094,2.376-30.249,6.513c-9.503,4.362-20.101,6.912-31.171,6.912c-11.131,0-21.801-2.55-31.181-6.912
1006
+ C 154.194,11.336, 143.872,8.96, 133.151,8.96c-10.783,0-21.105,2.376-30.362,6.513c-9.39,4.362-20.050,6.912-31.13,6.912
1007
+ c-11.069,0-21.74-2.55-31.171-6.912C 31.283,11.336, 20.961,8.96, 10.24,8.96l0,45.23 c 10.721,0, 21.043,2.437, 30.249,6.574
1008
+ c 9.441,4.352, 20.101,6.912, 31.171,6.912c 11.080,0, 21.75-2.56, 31.13-6.912c 9.257-4.127, 19.579-6.574, 30.362-6.574
1009
+ c 10.721,0, 21.043,2.437, 30.249,6.574c 9.38,4.352, 20.050,6.912, 31.181,6.912c 11.069,0, 21.668-2.56, 31.171-6.912
1010
+ c 9.155-4.127, 19.528-6.574, 30.249-6.574c 10.721,0, 21.094,2.437, 30.239,6.574c 9.503,4.352, 20.122,6.912, 31.242,6.912
1011
+ c 11.080,0, 21.678-2.56, 31.119-6.912c 9.257-4.127, 19.589-6.574, 30.321-6.574c 10.752,0, 21.043,2.437, 30.3,6.574
1012
+ c 9.38,4.352, 20.040,6.912, 31.109,6.912c 11.131,0, 21.75-2.56, 31.242-6.912c 9.155-4.127, 19.456-6.574, 30.188-6.574L 501.76,8.96 z" data-tags="canoe" />
1013
+ <glyph unicode="&#xe090;" d="M 491.52,60.16c-10.24,0-18.985,2.314-27.996,6.298c-9.38,4.209-18.964,6.676-29.932,6.676
1014
+ c-10.916,0-21.012-2.468-30.249-6.676C 394.209,62.474, 384.307,60.16, 373.678,60.16c-10.568,0-20.654,2.314-29.778,6.298
1015
+ c-9.308,4.209-19.712,6.676-30.628,6.676c-10.957,0-21.412-2.468-30.792-6.676c-9.011-3.994-19.22-6.298-29.798-6.298
1016
+ c-10.578,0-20.787,2.314-29.819,6.298c-9.37,4.209-19.825,6.676-30.74,6.676c-10.977,0-21.494-2.468-30.74-6.676
1017
+ C 152.3,62.474, 142.131,60.16, 131.553,60.16c-10.629,0-20.797,2.314-29.932,6.298c-9.257,4.209-19.773,6.676-30.689,6.676
1018
+ c-10.916,0-21.494-2.468-30.802-6.676C 31.037,62.474, 20.48,60.16, 10.24,60.16l0,43.725 c 10.24,0, 20.797,2.355, 29.88,6.359c 9.318,4.198, 19.855,6.676, 30.771,6.676
1019
+ c 10.916,0, 21.453-2.478, 30.71-6.676c 9.144-4.004, 19.313-6.359, 29.942-6.359c 10.588,0, 20.746,2.355, 29.829,6.359
1020
+ c 9.247,4.198, 19.773,6.676, 30.751,6.676c 10.916,0, 21.371-2.478, 30.74-6.676c 9.021-4.004, 19.251-6.359, 29.829-6.359
1021
+ c 10.578,0, 20.808,2.355, 29.819,6.359c 9.38,4.198, 19.845,6.676, 30.812,6.676c 10.916,0, 21.381-2.478, 30.689-6.676
1022
+ c 9.134-4.004, 19.323-6.359, 29.891-6.359c 10.629,0, 20.746,2.355, 29.88,6.359c 9.236,4.198, 19.773,6.676, 30.689,6.676
1023
+ c 10.967,0, 19.671-2.478, 29.051-6.676C 472.535,106.24, 481.28,103.885, 491.52,103.885L 491.52,60.16 zM 10.527,244.48l-0.174-101.478c 10.578,0, 20.746,3.185, 29.829,7.178c 9.318,4.219, 19.835,7.137, 30.74,7.137
1024
+ c 10.916,0, 21.432-2.243, 30.689-6.461c 9.144-4.004, 19.302-6.185, 29.932-6.185c 10.588,0, 20.746,2.345, 29.829,6.339
1025
+ c 9.247,4.219, 19.773,6.717, 30.74,6.717c 10.916,0, 21.371-2.447, 30.74-6.666c 9.021-4.004, 19.251-6.287, 29.829-6.287
1026
+ c 10.578,0, 20.808,2.304, 29.819,6.298c 9.38,4.219, 19.845,6.687, 30.812,6.687c 10.916,0, 21.381-2.468, 30.689-6.687
1027
+ c 9.134-4.004, 19.323-6.287, 29.891-6.287c 2.99,0, 5.857,0.625, 8.786,0.952c 5.335,1.116, 10.742,1.628, 15.923,3.645
1028
+ c 0.113,0.051, 0.236,0.113, 0.348,0.174c 38.502,15.278, 71.711,51.313, 92.447,79.524L 501.76,244.48L 10.527,244.48 zM 284.713,357.12l 71.035,0 l 0.635,0 l 0.461,0 c 0.809,0, 19.476,2.877, 25.743-10.783L 409.692,285.44c-13.036,0-45.046,0-92.396,0
1029
+ L 284.713,357.12z M 92.16,291.768C 92.16,286.996, 88.228,285.44, 83.405,285.44L 43.745,285.44 C 38.912,285.44, 30.72,286.996, 30.72,291.768l0,58.665 C 30.72,355.144, 38.912,357.12, 43.745,357.12l 39.649,0
1030
+ C 88.228,357.12, 92.16,355.144, 92.16,350.433L 92.16,291.768 z M 256,291.768C 256,286.996, 251.72,285.44, 246.835,285.44l-39.598,0 C 202.353,285.44, 194.56,286.996, 194.56,291.768l0,58.665
1031
+ C 194.56,355.144, 202.353,357.12, 207.237,357.12l 39.598,0 C 251.72,357.12, 256,355.144, 256,350.433L 256,291.768 z M 174.080,291.768C 174.080,286.996, 169.82,285.44, 164.946,285.44l-39.363,0
1032
+ C 120.689,285.44, 112.64,286.996, 112.64,291.768l0,58.665 C 112.64,355.144, 120.689,357.12, 125.583,357.12l 39.363,0 C 169.82,357.12, 174.080,355.144, 174.080,350.433L 174.080,291.768 z M 394.701,364.237
1033
+ C 382.915,389.857, 351.017,387.84, 351.017,387.84L 10.291,387.84 L 10.24,264.96l 427.162,0 L 394.701,364.237z" data-tags="boat-tour" />
1034
+ <glyph unicode="&#xe091;" d="M 87.040,407.378l 97.946-27.023L 239.35,418.56l 18.913-4.659l-53.852-38.318l 296.806-82.463l-21.719-80.712l-297.912,82.237
1035
+ C 66.171,329.452, 87.214,407.378, 87.214,407.378M 347.72,200.878c-0.358,6.738-1.638,13.158-3.84,19.22l 135.997-37.857l-4.362-16.783L 347.72,200.878zM 224.164,234.998c 3.666,5.335, 8.008,10.148, 12.943,14.316L 10.24,311.982l0-18.053 L 224.164,234.998zM 280.34,175.237c 12.196,0, 22.098,9.923, 22.098,22.118c0,12.237-9.902,22.139-22.098,22.139
1036
+ c-12.237,0-22.129-9.902-22.129-22.139C 258.212,185.16, 268.104,175.237, 280.34,175.237z M 501.76,39.68c-10.762,0-21.002,2.437-30.136,6.636
1037
+ c-9.503,4.301-20.101,6.881-31.201,6.881c-11.059,0-21.719-2.58-31.078-6.881C 400.077,42.117, 389.857,39.68, 379.085,39.68
1038
+ c-10.762,0-21.023,2.437-30.259,6.636c-9.421,4.301-19.999,6.881-31.078,6.881c-11.121,0-21.699-2.58-31.181-6.881
1039
+ C 277.422,42.117, 267.059,39.68, 256.348,39.68c-10.701,0-21.002,2.437-30.198,6.636c-9.482,4.301-20.142,6.881-31.191,6.881
1040
+ c-11.059,0-21.709-2.58-31.078-6.881C 154.685,42.117, 144.333,39.68, 133.612,39.68c-10.701,0-21.002,2.437-30.259,6.636
1041
+ c-9.38,4.301-20.029,6.881-31.089,6.881c-11.049,0-21.699-2.58-31.13-6.881C 31.949,42.117, 21.586,39.68, 10.936,39.68L 10.24,219.955l 248.084-68.465
1042
+ c-17.101,8.264-28.979,25.6-28.979,45.865c0,28.201, 22.804,51.026, 50.985,51.026c 28.099,0, 50.964-22.825, 50.964-51.026c0-28.18-22.856-50.995-50.964-50.995
1043
+ c-1.7,0-3.379,0.338-5.018,0.481l 226.079-62.341L 501.76,39.68z" data-tags="boat-ramp" />
1044
+ <glyph unicode="&#xe092;" d="M 501.76,70.4c-10.762,0-21.012,2.376-30.228,6.564c-9.39,4.239-20.029,6.799-31.15,6.799c-11.172,0-21.821-2.58-31.222-6.799
1045
+ C 399.954,72.776, 389.693,70.4, 378.921,70.4c-10.752,0-21.053,2.376-30.208,6.564c-9.554,4.239-20.214,6.799-31.212,6.799
1046
+ c-11.131,0-21.791-2.58-31.222-6.799C 277.115,72.776, 266.701,70.4, 256.041,70.4c-10.772,0-21.023,2.376-30.31,6.564
1047
+ c-9.431,4.239-20.050,6.799-31.089,6.799c-11.131,0-21.78-2.58-31.212-6.799C 154.266,72.776, 143.852,70.4, 133.079,70.4
1048
+ c-10.609,0-21.023,2.376-30.188,6.564C 93.46,81.203, 82.801,83.763, 71.68,83.763c-11.049,0-21.647-2.58-31.099-6.799
1049
+ C 31.273,72.776, 21.012,70.4, 10.24,70.4l0,45.015 c 10.762,0, 21.023,2.437, 30.341,6.461C 50.033,126.218, 60.631,128.778, 71.68,128.778
1050
+ c 11.121,0, 21.78-2.56, 31.212-6.902c 9.165-4.024, 19.579-6.461, 30.188-6.461c 10.762,0, 21.187,2.437, 30.351,6.461
1051
+ c 9.421,4.342, 20.081,6.902, 31.212,6.902c 11.039,0, 21.647-2.56, 31.089-6.902c 9.288-4.024, 19.538-6.461, 30.31-6.461
1052
+ c 10.66,0, 21.064,2.437, 30.239,6.461c 9.431,4.342, 20.091,6.902, 31.222,6.902c 10.988,0, 21.637-2.56, 31.212-6.902
1053
+ c 9.165-4.024, 19.456-6.461, 30.208-6.461c 10.772,0, 21.033,2.437, 30.239,6.461c 9.4,4.342, 20.050,6.902, 31.222,6.902
1054
+ c 11.121,0, 21.76-2.56, 31.15-6.902c 9.216-4.024, 19.466-6.461, 30.228-6.461L 501.76,70.4 zM 430.572,197.745c 32.276,0, 58.47,26.112, 58.47,58.143c0,32.061-26.194,58.040-58.47,58.040c-32.328,0-58.491-25.989-58.491-58.040
1055
+ C 372.081,223.857, 395.919,197.745, 430.572,197.745zM 90.020,165.059c 4.536-1.075, 8.817-2.642, 12.882-4.465c 9.165-4.116, 19.579-6.564, 30.198-6.564c 10.752,0, 21.187,2.437, 30.341,6.564
1056
+ c 9.431,4.239, 20.081,6.922, 31.212,6.922c 11.039,0, 21.668-2.683, 31.089-6.922c 9.277-4.116, 19.538-6.564, 30.31-6.564
1057
+ c 10.65,0, 21.074,2.437, 30.228,6.564c 9.441,4.239, 20.091,6.922, 31.222,6.922c 10.998,0, 21.658-2.683, 31.212-6.922
1058
+ c 9.175-4.116, 19.456-6.564, 30.228-6.564c 7.834,0, 15.38,1.321, 22.497,3.543l-97.536,174.653l 113.449,20.552
1059
+ c 16.65,3.154, 28.733,16.138, 28.733,32.758c0,18.33-15.022,33.024-33.403,33.024c-1.321,0-2.55,0-3.789-0.113L 233.646,386.785
1060
+ c-12.298-2.796-28.59-20.675-19.313-42.609c 0.512-1.208, 0.973-2.335, 1.495-3.533l 45.732-81.951L 90.020,165.059z" data-tags="swimming" />
1061
+ <glyph unicode="&#xe093;" d="M 491.52-21.76c-10.301,0-20.183,2.355-28.979,6.369c-9.144,4.25-19.343,6.728-29.901,6.728c-10.66,0-20.879-2.478-29.901-6.728
1062
+ C 393.943-19.405, 383.959-21.76, 373.77-21.76c-10.332,0-20.285,2.355-29.092,6.369c-9.042,4.25-19.241,6.728-29.901,6.728
1063
+ c-10.557,0-20.767-2.478-29.798-6.728C 276.193-19.405, 266.22-21.76, 255.898-21.76c-10.322,0-20.173,2.355-28.969,6.369
1064
+ c-9.042,4.25-19.21,6.728-29.88,6.728c-10.557,0-20.777-2.478-29.911-6.728C 158.341-19.405, 148.5-21.76, 138.23-21.76
1065
+ c-10.322,0-20.173,2.355-28.969,6.369c-9.021,4.25-19.241,6.728-29.901,6.728c-10.557,0-20.756-2.478-29.901-6.728C 40.653-19.405, 30.802-21.76, 20.48-21.76
1066
+ l0,43.786 c 10.322,0, 20.173,2.365, 28.969,6.4c 9.155,4.106, 19.343,6.595, 29.901,6.595c 10.67,0, 20.879-2.478, 29.901-6.595
1067
+ c 8.796-4.035, 18.647-6.4, 28.969-6.4c 10.271,0, 20.111,2.365, 28.918,6.4c 9.134,4.106, 19.354,6.595, 29.911,6.595
1068
+ c 10.67,0, 20.838-2.478, 29.88-6.595c 8.796-4.035, 18.647-6.4, 28.969-6.4c 10.312,0, 20.285,2.365, 29.082,6.4
1069
+ c 9.032,4.106, 19.241,6.595, 29.798,6.595c 10.66,0, 20.859-2.478, 29.901-6.595c 8.796-4.035, 18.76-6.4, 29.092-6.4
1070
+ c 10.189,0, 20.173,2.365, 28.969,6.4c 9.021,4.106, 19.241,6.595, 29.901,6.595c 10.557,0, 20.756-2.478, 29.901-6.595
1071
+ c 8.796-4.035, 18.678-6.4, 28.979-6.4L 491.52-21.76 zM 301.281,68.659c 4.465,0.942, 8.919,1.413, 13.496,1.413c 10.66,0, 20.859-2.468, 29.901-6.595c 8.796-4.035, 18.76-6.39, 29.092-6.39
1072
+ c 10.189,0, 20.173,2.355, 28.969,6.39c 6.216,2.806, 12.902,5.069, 20.060,6.011C 418.918,186.972, 297.175,291.789, 291.441,297.216
1073
+ c-5.98,5.437-11.5,17.347-7.619,31.406l 29.071,96.799c 5.171,15.002, 2.591,35.062-4.557,41.083c-4.106,3.308-12.79,5.673-18.668-1.065
1074
+ l-78.664-89.825c-17.244-18.422-2.806-38.134-3.154-38.021c-26.757,9.687-58.173,3.195-77.23-4.71l-64.983-33.188
1075
+ c-6.451-2.714-9.257-10.967-5.857-16.517c 10.793-17.367, 46.561-17.48, 121.088-9.329C 301.281,286.843, 301.404,92.621, 301.281,68.659z" data-tags="whale-watching" />
1076
+ <glyph unicode="&#xe094;" d="M 303.196,35.195c 3.523,0.594, 7.045,0.809, 10.68,0.809c 10.977,0, 21.504-2.499, 30.843-6.84c 9.083-3.953, 19.241-6.349, 29.88-6.349
1077
+ s 20.941,2.396, 30.024,6.349c 9.298,4.342, 19.825,6.84, 30.72,6.84c 11.018,0, 19.292-2.499, 28.59-6.84c 9.083-3.953, 17.347-6.349, 27.587-6.349L 491.52-21.76
1078
+ c-10.24,0-18.514,2.396-27.587,6.513c-9.298,4.157-18.708,6.717-29.727,6.717c-10.895,0-20.849-2.56-30.147-6.717
1079
+ C 394.967-19.364, 384.963-21.76, 374.323-21.76s-20.664,2.396-29.737,6.513c-9.339,4.157-19.794,6.717-30.771,6.717
1080
+ c-10.895,0-21.412-2.56-30.853-6.717C 273.889-19.364, 263.731-21.76, 253.092-21.76c-10.65,0-20.808,2.396-29.88,6.513
1081
+ c-9.298,4.157-19.794,6.717-30.802,6.717c-11.018,0-21.545-2.56-30.863-6.717C 152.484-19.364, 142.305-21.76, 131.727-21.76
1082
+ c-10.65,0-20.818,2.396-29.88,6.513c-9.441,4.157-19.978,6.717-30.863,6.717c-11.008,0-21.545-2.56-30.843-6.717
1083
+ C 31.058-19.364, 20.89-21.76, 10.24-21.76l0,44.575 c 10.65,0, 20.818,2.396, 29.901,6.349c 9.298,4.342, 19.835,6.84, 30.843,6.84
1084
+ c 10.885,0, 21.412-2.499, 30.863-6.84c 9.062-3.953, 19.241-6.349, 29.88-6.349c 10.578,0, 20.756,2.396, 29.819,6.349
1085
+ c 5.345,2.396, 10.895,4.342, 16.701,5.396l 283.116,50.104c 9.175,2.161, 21.658,8.509, 25.999,19.446c 0.86,2.079, 3.86,2.673, 6.4,2.56
1086
+ C 498.381,106.404, 501.76,102.451, 501.76,97.874c0-7.209-5.581-27.392-36.516-33.628L 303.196,35.195zM 57.549,388.444c 22.62,0, 41.021,18.258, 41.021,40.724C 98.57,451.625, 80.169,469.76, 57.549,469.76C 34.939,469.76, 16.66,451.625, 16.66,429.169
1087
+ C 16.66,406.692, 34.939,388.444, 57.549,388.444zM 176.66,59.802c 2.068-9.021, 13.076-17.664, 24.576-17.664l-0.133-0.123c 14.367,0, 26.112,11.54, 26.112,25.938l-0.481,4.219l-31.191,132.956
1088
+ c-2.662,8.53-10.783,16.589-19.128,19.958l0,0l-45.906,27.382l-20.931,89.6l 129.004,0.236c 10.537,0, 19.016,7.117, 19.016,17.582
1089
+ c0,10.445-8.479,17.705-19.016,17.705L 52.337,377.59 c-18.606,0-27.218-11.94-25.027-23.47l 26.378-118.159c 2.068-11.172, 9.431-20.224, 19.374-25.16
1090
+ l 0.594-0.072l 76.78-44.739L 176.66,59.802zM 266.24,357.12L 501.76,357.12L 501.76,346.88L 266.24,346.88z" data-tags="waterskiing" />
1091
+ <glyph unicode="&#xe095;" d="M 96.42,116.838c 137.411-58.092, 241.777-91.965, 388.782-138.537c 3.011-0.461, 5.786,1.628, 6.246,4.772
1092
+ c 0.461,3.021-1.608,5.939-4.628,6.523C 255.263,62.822, 73.492,143.964, 32.020,162.826c-4.291,1.731-9.277-0.236-10.885-4.444
1093
+ c-1.741-4.311, 0.113-8.96, 4.28-10.588c 10.312-4.649, 20.5-9.185, 30.351-13.496l-32.666-25.027c-3.707-5.468-2.089-12.462, 3.359-16.179
1094
+ c 4.055-2.796, 9.851-2.447, 13.783,0.123L 96.42,116.838zM 475.689,263.465l-106.957,98.734c 0.799-0.051, 1.556-0.236, 2.365-0.236c 21.658,0, 39.148,17.695, 39.148,39.465
1095
+ S 392.755,440.883, 371.098,440.883c-21.78,0-39.27-17.695-39.27-39.465c0-8.315, 2.591-16.015, 6.963-22.395l-72.52,25.999l-39.158,56.924
1096
+ c-3.011,4.198-7.649,6.994-13.066,7.69c-10.189,1.157-19.579-6.287-20.726-16.65c-0.461-4.311, 0.584-8.499, 2.662-11.991l 39.926-58.204
1097
+ c 1.853-2.324, 4.178-4.301, 6.953-5.591l 46.336-18.278l-76.073-39.117c-10.65-6.052-18.186-16.763-20.265-29.225l 0.348-69.97l-70.369-31.887
1098
+ c-7.875-3.84-13.548-11.756-13.896-21.197c-0.573-13.507, 9.851-24.791, 23.286-25.385c 4.168-0.215, 8.223,0.696, 11.704,2.458l 86.098,39.096
1099
+ c 6.144,3.267, 10.772,9.196, 12.278,16.425l-0.113,43.54l 59.761-53.791l-11.008-91.607c0-0.584-0.113-1.157-0.113-1.751
1100
+ c-0.584-13.496, 9.861-24.914, 23.286-25.498c 12.616-0.461, 23.388,8.735, 25.129,21.187l 12.861,104.55c0,0.461, 0.113,0.922, 0.113,1.403
1101
+ c 0.225,7.332-2.652,13.967-7.526,18.616l-55.357,49.48l 83.405,41.216l 77.384-71.598c 3.471-3.379, 8.223-5.468, 13.322-5.468
1102
+ c 10.424,0.113, 18.76,8.612, 18.657,18.975C 482.079,254.966, 479.519,259.973, 475.689,263.465z" data-tags="surfing" />
1103
+ <glyph unicode="&#xe096;" d="M 220.088,398.070l-5.55-9.933C 210.913,380.785, 203.418,377.6, 194.847,377.6l-13.046,0 c 7.485-10.24, 19.466-18.627, 33.352-18.627
1104
+ c 22.712,0, 40.847,17.162, 40.847,39.813L 256,398.080 l-33.976,0 C 221.174,398.080, 220.324,398.92, 220.088,398.070zM 194.847,387.84c 4.475,0, 8.448,1.556, 10.271,5.407l 5.427,9.708C 212.603,407.409, 216.955,408.32, 222.024,408.32l 42.527,0
1105
+ c-5.56,20.48-25.487,39.404-49.060,39.404c-27.904,0-50.493-20.664-50.493-48.62c0-4.465, 0.481-11.264, 1.69-11.264L 194.847,387.84 zM 334.684,162.56c 37.878,0, 136.817,11.602, 164.055,37.642c-12.257,37.642-60.58,40.653-104.919,21.484c-7.619-3.297-17.756-5.734-29.358-7.905
1106
+ l-9.062,35.082c 7.24,3.738, 12.022,11.397, 11.581,20.009c-0.461,11.756-10.322,20.941-22.077,20.46l-6.656,25.692
1107
+ c 6.543,4.936, 9.984,13.261, 8.038,21.75c-2.662,11.51-14.080,18.801-25.62,16.21c0,0-93.809-0.84-123.228-8.735
1108
+ c-29.358-7.895-39.26-57.231-39.26-57.231L 132.383,203.52L 10.24,203.52 l0-40.96 L 334.684,162.56 z M 250.358,307.927l 72.786,3l 5.796-22.292
1109
+ c-19.681-0.963-54.661-2.775-85.893-4.516L 250.358,307.927z M 230.062,241.408l 109.814,4.936l 9.124-34.949
1110
+ c-44.82-6.441-102.932-7.363-130.417-7.475L 230.062,241.408zM 435.261,115.364c0,0, 66.499,0.84, 66.499,65.741c0,2.601-0.256,4.557-0.481,6.963C 459.776,158.075, 348.877,152.32, 334.858,152.32L 10.24,152.32 l0-50.217
1111
+ c 7.854,0, 15.954,1.823, 23.071,4.936c 11.725,5.417, 24.771,8.315, 37.581,8.315c 12.8,0, 25.733-2.898, 37.202-8.202
1112
+ c 7.608-3.379, 15.462-5.059, 23.439-5.059c 8.1,0, 15.944,1.679, 23.194,4.936c 11.837,5.417, 24.76,8.315, 37.571,8.315
1113
+ c 12.923,0, 25.61-2.775, 37.335-8.202c 7.363-3.379, 15.452-5.059, 23.439-5.059c 7.967,0, 15.821,1.679, 23.183,4.936
1114
+ c 11.725,5.417, 24.781,8.315, 37.458,8.315c 13.036,0, 25.62-2.775, 37.325-8.202c 7.496-3.379, 15.575-5.059, 23.439-5.059
1115
+ c 0.983,0, 1.884,0.123, 2.836,0.123l 9.677-37.1c-4.178-0.717-8.335-1.219-12.636-1.219c-10.619,0-20.9,2.304-29.962,6.4
1116
+ c-9.298,4.342-19.804,6.861-30.802,6.861c-10.977,0-21.504-2.519-30.802-6.861c-9.062-4.096-19.22-6.4-29.85-6.4s-20.9,2.304-29.962,6.4
1117
+ c-9.298,4.342-19.804,6.861-30.802,6.861c-10.998,0-21.504-2.519-30.802-6.861c-9.062-4.096-19.21-6.4-29.839-6.4
1118
+ c-10.506,0-20.777,2.304-29.839,6.4c-9.308,4.342-19.814,6.861-30.802,6.861c-10.875,0-21.391-2.519-30.689-6.861
1119
+ C 31.027,66.202, 20.869,63.898, 10.24,63.898L 10.24,19.2 c 10.629,0, 20.787,2.284, 29.962,6.38c 9.298,4.342, 19.814,6.881, 30.689,6.881
1120
+ c 10.988,0, 21.494-2.54, 30.802-6.881c 9.062-4.096, 19.333-6.38, 29.839-6.38c 10.629,0, 20.777,2.284, 29.839,6.38
1121
+ c 9.298,4.342, 19.814,6.881, 30.802,6.881c 11.008,0, 21.504-2.54, 30.802-6.881c 9.062-4.096, 19.333-6.38, 29.962-6.38s 20.787,2.284, 29.85,6.38
1122
+ c 9.298,4.342, 19.825,6.881, 30.802,6.881c 10.998,0, 21.504-2.54, 30.802-6.881c 9.062-4.096, 19.343-6.38, 29.962-6.38
1123
+ c 10.496,0, 20.797,2.284, 29.839,6.38c 9.318,4.342, 19.825,6.881, 30.822,6.881c 10.977,0, 19.374-2.54, 28.672-6.881C 472.75,21.484, 481.28,19.2, 491.52,19.2
1124
+ l0,44.698 c-10.24,0-18.77,2.304-27.832,6.4c-9.298,4.342-18.749,6.861-29.727,6.861c-10.998,0-20.972-2.519-30.29-6.861
1125
+ c-0.717-0.317-1.178-0.543-1.925-0.84l-9.165,35.656c 1.7,0.604, 3.4,1.198, 5.018,1.925C 409.334,112.456, 422.461,115.364, 435.261,115.364z
1126
+ " data-tags="rafting" />
1127
+ <glyph unicode="&#xe097;" d="M 424.407,164.403c-10.209,0-19.958-2.437-28.6-6.636c-8.54-3.84-17.951-6.164-27.832-6.164c-9.851,0-19.272,2.324-27.802,6.164
1128
+ c-8.653,4.198-18.401,6.636-28.6,6.636c-10.097,0-19.855-2.437-28.611-6.636c-8.428-3.84-17.828-6.164-27.699-6.164
1129
+ c-9.882,0-19.415,2.324-27.853,6.164c-8.643,4.198-18.391,6.636-28.611,6.636c-10.199,0-19.948-2.437-28.59-6.636
1130
+ c-8.53-3.84-17.94-6.164-27.761-6.164c-9.871,0-19.292,2.324-27.822,6.164c-8.632,4.198-18.278,6.636-28.477,6.636
1131
+ c-10.22,0-19.476-2.437-28.129-6.636C 49.51,153.917, 40.96,151.603, 30.72,151.603l0-43.131 c 10.24,0, 18.79,2.345, 27.32,6.175
1132
+ c 8.643,4.188, 18.156,6.625, 28.375,6.625c 10.199,0, 19.722-2.437, 28.355-6.625c 7.188-3.256, 15.084-5.1, 23.276-5.704l-34.57-35.666
1133
+ c-10.998,7.076-25.6,5.806-35.133-4.086l-39.598-41.021c-10.998-11.397-11.008-29.86,0-41.37c 11.1-11.397, 28.938-11.397, 39.916,0l 39.608,41.011
1134
+ c 8.98,9.329, 10.537,23.255, 4.925,34.304l 47.616,49.275c 3.256,1.065, 6.39,1.864, 9.421,3.256c 8.643,4.188, 18.401,6.625, 28.59,6.625
1135
+ c 10.22,0, 19.968-2.437, 28.611-6.625c 8.438-3.83, 17.971-6.175, 27.853-6.175c 9.871,0, 19.261,2.345, 27.699,6.175
1136
+ c 8.745,4.188, 18.514,6.625, 28.611,6.625c 10.199,0, 19.948-2.437, 28.6-6.625c 8.53-3.83, 17.951-6.175, 27.802-6.175
1137
+ c 9.882,0, 19.292,2.345, 27.832,6.175c 8.643,4.188, 18.391,6.625, 28.6,6.625c 10.189,0, 20.081-2.437, 28.826-6.625
1138
+ C 461.65,110.807, 471.040,108.472, 481.28,108.472L 481.28,151.603 c-10.24,0-19.63,2.324-28.037,6.164C 444.488,161.956, 434.596,164.403, 424.407,164.403zM 443.587,375.306l 39.598,41.032c 11.1,11.5, 11.1,29.993,0,41.39c-10.998,11.5-28.948,11.5-39.936,0L 403.661,416.696
1139
+ c-9.544-9.882-10.762-24.996-3.809-36.27l-49.244-51.098l-97.812,37.55c-2.57,1.516-5.274,2.785-8.294,3.727
1140
+ c-21.34,6.615-43.889-5.929-50.289-28.027l-30.054-104.704C 163.768,236.657, 163.666,234.24, 163.553,234.24L 30.72,234.24 l0-55.368 c 10.24,0, 14.367,1.751, 20.992,4.762
1141
+ c 10.875,5.233, 22.774,8.028, 34.673,8.028c 11.878,0, 23.777-2.796, 34.437-7.926c 7.055-3.246, 14.295-4.864, 21.699-4.864
1142
+ c 7.465,0, 14.715,1.608, 21.453,4.762c 10.988,5.233, 22.989,8.028, 34.857,8.028c 12.012,0, 23.777-2.673, 34.683-7.926
1143
+ c 6.84-3.246, 14.356-4.864, 21.76-4.864c 7.414,0, 14.674,1.608, 21.514,4.762c 10.885,5.233, 22.999,8.028, 34.785,8.028
1144
+ c 12.104,0, 23.777-2.673, 34.642-7.926c 6.963-3.246, 14.49-4.864, 21.76-4.864c 7.424,0, 14.817,1.608, 21.545,4.762
1145
+ c 10.885,5.233, 22.999,8.028, 34.888,8.028c 1.997,0, 10.189-0.645, 18.289,4.925c 14.346,6.502, 19.743,10.22, 32.287,18.186
1146
+ C 485.325,221.338, 493.496,234.24, 471.040,234.24c-10.24,0-194.56,0-194.56,0l 60.099,59.412l 7.629-3.011c 9.646-3.604, 20.408,1.505, 24.003,11.51
1147
+ c 2.468,7.076, 0.573,14.756-4.147,19.866l 46.438,48.302C 421.151,364.493, 434.596,366.019, 443.587,375.306z M 259.41,234.24l-11.991,0 l 24.218,83.958
1148
+ l 50.033-19.343L 259.41,234.24zM 259.082,419.451l-5.161-10.404C 250.552,401.971, 243.61,398.080, 235.633,398.080l-12.134,0 c 6.973-10.24, 20.367-16.712, 33.26-16.712
1149
+ C 277.842,381.368, 296.96,399.196, 296.96,421.059L 296.96,418.56 l-36.076,0 C 260.096,418.56, 259.308,420.27, 259.082,419.451zM 235.633,408.32c 4.157,0, 7.864,2.591, 9.544,6.298l 5.048,9.185C 252.129,428.114, 256.164,428.8, 260.884,428.8l 39.465,0
1150
+ c-5.171,20.48-23.665,38.728-45.527,38.728c-25.938,0-46.92-20.664-46.92-47.616c0-4.301, 0.451-11.592, 1.577-11.592L 235.633,408.32 z" data-tags="kayaking" />
1151
+ <glyph unicode="&#xe099;" d="M 168.755,358.267c 21.832,2.632, 37.325,22.845, 34.744,45.087c-2.58,22.252-22.415,38.031-44.247,35.41
1152
+ c-21.832-2.775-37.263-22.845-34.683-45.087C 127.273,371.415, 146.924,355.635, 168.755,358.267zM 495.841,167.168c-2.109,1.075-164.321,85.023-164.321,85.023l-41.185,54.057l-2.55,0.604C 282.163,312.105, 276.48,311.624, 266.24,305.889l0-0.123
1153
+ c0-4.301-2.273-10.639, 0.563-15.79l 31.539-40.172l 0.625-0.369l-25.088-59.187l-67.092,17.111l-2.867,24.525l 55.286,6.799
1154
+ c 2.468,0.113, 5.059,0.84, 7.404,2.15c 9.165,4.895, 12.687,16.507, 7.875,25.825c-3.758,7.178-11.264,11.008-18.657,10.168l-56.31-6.932
1155
+ l-5.048,42.568c-2.693,22.129-22.538,38.031-44.247,35.4c-21.76-2.755-37.376-22.979-34.796-45.21l 11.735-98.417
1156
+ c 1.413-12.564, 8.745-23.439, 18.483-29.778l-88.443-10.762l-27.576-69.591c 1.055,0.471, 2.222,0.594, 3.164,1.065
1157
+ c 11.387,5.386, 24.064,8.264, 36.506,8.264c 12.442,0, 24.996-2.867, 36.27-8.131c 7.158-3.338, 15.022-5.018, 22.651-5.018
1158
+ c 7.69,0, 15.432,1.679, 22.477,4.895c 11.387,5.386, 23.941,8.264, 36.506,8.264c 12.442,0, 24.965-2.867, 36.127-8.131
1159
+ c 7.27-3.338, 15.135-5.018, 22.774-5.018c 7.741,0, 15.37,1.679, 22.528,4.895c 11.387,5.386, 24.074,8.264, 36.506,8.264s 24.996-2.867, 36.147-8.131
1160
+ c 2.703-1.188, 5.642-2.028, 8.571-2.867c 45.189,12.104, 125.235,35.4, 146.821,55.132C 502.999,153.303, 504.187,162.99, 495.841,167.168zM 10.24,8.96c 10.332,0, 20.306,2.386, 29.112,6.451c 9.032,4.311, 19.251,6.81, 29.932,6.81s 20.777-2.499, 29.932-6.81
1161
+ C 108.012,11.346, 117.873,8.96, 128.205,8.96c 10.271,0, 20.132,2.386, 29.051,6.451c 9.032,4.311, 19.241,6.81, 29.932,6.81
1162
+ c 10.568,0, 20.777-2.499, 29.901-6.81c 8.806-4.055, 18.668-6.451, 29-6.451c 10.322,0, 20.183,2.386, 29.102,6.451
1163
+ c 9.052,4.311, 19.251,6.81, 29.942,6.81c 10.557,0, 20.777-2.499, 29.809-6.81C 343.849,11.346, 353.71,8.96, 364.032,8.96
1164
+ c 10.342,0, 20.193,2.386, 29,6.451c 9.165,4.311, 19.374,6.81, 29.932,6.81c 10.67,0, 20.541-2.499, 29.563-6.81C 461.332,11.346, 471.040,8.96, 481.28,8.96
1165
+ l0,44.37 c-10.24,0-19.948,2.365-28.764,6.441c-9.021,4.321-19.067,6.707-29.737,6.707c-10.557,0-20.685-2.386-29.839-6.707
1166
+ c-8.806-4.065-18.616-6.441-28.959-6.441c-10.322,0-20.152,2.365-29.071,6.441c-9.032,4.321-19.241,6.707-29.798,6.707
1167
+ c-10.691,0-20.89-2.386-29.942-6.707c-8.919-4.065-18.77-6.441-29.092-6.441c-10.332,0-20.183,2.365-28.989,6.441
1168
+ c-9.124,4.321-19.333,6.707-29.901,6.707c-10.68,0-20.9-2.386-29.932-6.707c-8.919-4.065-18.78-6.441-29.051-6.441
1169
+ c-10.332,0-20.193,2.365-28.989,6.441c-9.155,4.321-19.251,6.707-29.932,6.707s-20.9-2.386-29.932-6.707
1170
+ C 30.546,55.695, 20.572,53.33, 10.24,53.33L 10.24,8.96 z" data-tags="jet-skiing" />
1171
+ <glyph unicode="&#xe09a;" d="M 256.778,402.627c 18.156,0, 32.799,14.602, 32.799,32.707c0,17.971-14.643,32.696-32.799,32.696s-32.799-14.725-32.799-32.696
1172
+ C 223.98,417.239, 238.623,402.627, 256.778,402.627zM 462.479,27.761c-9.042,4.198-19.22,6.646-29.88,6.646c-10.537,0-20.716-2.447-29.88-6.646
1173
+ c-8.776-3.86-18.616-6.195-28.918-6.195s-20.265,2.345-29.061,6.195c-9.021,4.198-19.2,6.646-29.86,6.646s-20.859-2.447-29.88-6.646
1174
+ c-8.899-3.86-18.739-6.195-29.041-6.195c-10.312,0-20.152,2.345-29.051,6.195c-9.021,4.198-19.21,6.646-29.87,6.646
1175
+ c-10.537,0-20.726-2.447-29.87-6.646c-8.786-3.86-18.596-6.195-28.846-6.195c-10.301,0-20.265,2.345-29.051,6.195
1176
+ c-9.021,4.198-19.21,6.646-29.87,6.646c-10.66,0-20.849-2.447-29.87-6.646C 40.632,23.9, 30.792,21.555, 20.48,21.555L 20.48-21.76
1177
+ c 10.312,0, 20.152,2.222, 29.051,6.195c 9.021,4.198, 19.21,6.646, 29.87,6.646c 10.66,0, 20.849-2.447, 29.87-6.646
1178
+ C 118.047-19.538, 128.020-21.76, 138.322-21.76c 10.25,0, 20.060,2.222, 28.846,6.195c 9.144,4.198, 19.323,6.646, 29.87,6.646
1179
+ c 10.66,0, 20.849-2.447, 29.87-6.646C 235.807-19.538, 245.647-21.76, 255.959-21.76c 10.301,0, 20.142,2.222, 29.041,6.195
1180
+ c 9.021,4.198, 19.22,6.646, 29.88,6.646s 20.838-2.447, 29.86-6.646C 353.536-19.538, 363.5-21.76, 373.801-21.76s 20.142,2.222, 28.918,6.195
1181
+ c 9.165,4.198, 19.343,6.646, 29.88,6.646c 10.66,0, 20.838-2.447, 29.88-6.646C 471.357-19.538, 481.219-21.76, 491.52-21.76l0,43.315
1182
+ C 481.219,21.555, 471.357,23.9, 462.479,27.761zM 465.183,469.32c-2.355,0.932-5.919,0.358-7.803-1.403L 337.398,347.126C 335.524,347.945, 333.036,346.88, 330.803,346.88c0,0-35.144,0-45.322,0
1183
+ c-7.741,10.24-48.732,50.237-48.732,50.237c-2.099,2.109-4.803,4.045-7.496,4.741c-9.37,8.182-23.542,8.448-32.563-0.543l-70.124-70.349
1184
+ C 123.873,328.284, 122.88,324.741, 122.88,320.768L 122.88,275.2 L 20.48,275.2 l0-20.48 l 102.4,0 l0-117.996 c0-14.602, 10.936-26.399, 25.528-26.399c 14.5,0, 25.672,11.796, 25.672,26.399L 174.080,254.72 l 71.68,0 l0-153.6 L 20.48,101.12 l0-30.72
1185
+ l 245.76,0 L 266.24,254.72 l 30.72,0 l0,20.48 L 174.080,275.2 l0,8.438 l 66.304,65.853l 27.064-27.761C 270.356,318.7, 274.575,316.16, 278.917,316.16l 51.876,0 C 339.722,316.16, 348.16,317.522, 348.16,326.4
1186
+ c0,2.109, 0.676,8.366,0,10.24c 28.344,28.262, 102.4,97.761, 112.64,111.892C 460.8,420.618, 460.8,70.4, 460.8,70.4l 10.24,0 L 471.040,463.483 C 471.040,466.053, 467.517,468.265, 465.183,469.32z" data-tags="fishing-pier" />
1187
+ <glyph unicode="&#xe09b;" d="M 24.832,135.793L 24.832,135.793c-0.338,0.379-0.461,0.727-0.461,1.219c0,0.993, 0.696,1.833, 1.731,1.833l 49.787-0.133
1188
+ c 2.529,0, 4.485,2.079, 4.485,4.649c0,1.956-0.922,3.308-2.765,4.403l-45.199,22.856c-0.799,0.604-1.382,1.577-1.382,2.693
1189
+ c0,0.86, 0.348,1.72, 0.809,2.212l0,0c0,0, 118.62,111.473, 381.010,3.4l 72.1,37.417c 0.686,0.379, 1.505,0.625, 2.417,0.625
1190
+ c 2.98,0, 5.53-2.703, 5.53-5.878c0-1.219-0.348-2.202-0.819-3.041l-42.537-56.228l 42.537-56.248c 0.471-0.85, 0.819-1.946, 0.819-3.041
1191
+ c0-3.297-2.55-5.99-5.53-5.99c-0.911,0-1.731,0.246-2.417,0.604l-72.1,37.53C 412.856,124.662, 161.966,18.565, 24.832,135.793z
1192
+ M 104.868,158.761c 9.544,0, 17.080,8.090, 17.080,18.145c0,10.23-7.537,18.278-17.080,18.278c-9.421,0-16.957-8.049-16.957-18.278
1193
+ C 87.91,166.851, 95.447,158.761, 104.868,158.761zM 327.68,346.88l0-61.44 l 145.101,0 C 488.755,285.44, 501.76,299.172, 501.76,316.16c0,17.121-13.005,30.72-28.979,30.72L 327.68,346.88 zM 60.375,302.643l 13.23,5.868l 8.274-15.043l0,0l 13.343,10.271l 9.544-14.182l 12.769,11.008l 10.353-13.455l 12.073,11.735l 10.977-12.82
1194
+ l 11.622,12.339l 11.612-12.339l 11.612,12.339l 11.5-12.339l 11.622,12.339l 11.571-12.339l 11.622,12.339l 11.612-12.339l 11.5,12.339l 11.622-12.339
1195
+ l 11.622,12.339l 11.612-12.339l 13.588,12.339L 317.44,286.013L 317.44,346.88 L 10.24,346.88 l0-0.369 C 20.48,328.796, 41.175,313.754, 60.375,302.643z" data-tags="fish-cleaning" />
1196
+ <glyph unicode="&#xe09c;" d="M 481.28-11.53c-9.861,0-19.302,2.243-27.709,6.042c-8.653,4.024-18.422,6.359-28.6,6.359c-10.189,0-19.855-2.345-28.611-6.359
1197
+ c-8.397-3.799-17.807-6.042-27.709-6.042c-9.861,0-19.302,2.243-27.72,6.042c-8.745,4.024-18.381,6.359-28.611,6.359
1198
+ c-10.199,0-19.948-2.345-28.611-6.359c-8.387-3.799-17.828-6.042-27.689-6.042c-9.892,0-19.313,2.243-27.832,6.042
1199
+ c-8.643,4.024-18.371,6.359-28.477,6.359c-10.199,0-19.968-2.345-28.59-6.359c-8.417-3.799-17.848-6.042-27.668-6.042
1200
+ c-9.861,0-19.282,2.243-27.822,6.042c-8.632,4.024-18.391,6.359-28.488,6.359c-10.22,0-19.968-2.345-28.611-6.359
1201
+ c-8.417-3.799-17.951-6.042-27.822-6.042L 30.71,29.952 c 9.861,0, 19.405,2.243, 27.822,6.042c 8.643,3.901, 18.401,6.257, 28.611,6.257
1202
+ c 10.086,0, 19.845-2.355, 28.488-6.257c 8.54-3.799, 17.961-6.042, 27.822-6.042c 9.82,0, 19.241,2.243, 27.668,6.042
1203
+ c 8.632,3.901, 18.391,6.257, 28.59,6.257c 10.097,0, 19.835-2.355, 28.477-6.257c 8.52-3.799, 17.94-6.042, 27.832-6.042
1204
+ c 9.861,0, 19.292,2.243, 27.689,6.042c 8.663,3.901, 18.412,6.257, 28.611,6.257c 10.23,0, 19.855-2.355, 28.611-6.257
1205
+ c 8.417-3.799, 17.859-6.042, 27.72-6.042c 9.902,0, 19.313,2.243, 27.709,6.042c 8.745,3.901, 18.422,6.257, 28.611,6.257
1206
+ c 10.179,0, 19.948-2.355, 28.6-6.257c 8.407-3.799, 17.848-6.042, 27.709-6.042L 481.28-11.53 zM 158.218,191.826c 20.982,0, 38.021,16.988, 38.021,37.908c0,20.91-17.039,37.796-38.021,37.796c-20.931,0-37.97-16.886-37.97-37.796
1207
+ C 120.248,208.824, 137.288,191.826, 158.218,191.826zM 163.604,60.805c-5.949-10.179-19.077-13.65-29.225-7.619c-10.199,5.919-13.681,19.016-7.741,29.204l 88.125,151.255
1208
+ c 3.215,5.704, 7.936,10.404, 13.537,13.527l 113.316,68.424l 76.954,130.57l0,0c 7.301,12.749, 23.552,17.101, 36.362,9.841
1209
+ c 12.657-7.383, 17.039-23.593, 9.728-36.229l0,0l-92.201-156.396c-3.144-5.714-7.854-10.404-13.568-13.527l-133.724-82.852L 163.604,60.805z" data-tags="diving" />
1210
+ <glyph unicode="&#xe09d;" d="M 512,70.4c-10.24,0-20.552,2.417-29.45,6.523c-9.144,4.342-19.466,6.902-30.147,6.902c-10.824,0-21.125-2.56-30.29-6.902
1211
+ c-9.011-4.096-18.985-6.523-29.44-6.523c-10.322,0-20.429,2.417-29.317,6.523c-9.165,4.342-19.476,6.902-30.269,6.902
1212
+ c-10.701,0-21.033-2.56-30.157-6.902C 293.888,72.817, 283.914,70.4, 273.469,70.4c-10.445,0-20.429,2.417-29.327,6.523
1213
+ c-9.144,4.342-19.476,6.902-30.249,6.902c-10.813,0-21.012-2.56-30.167-6.902C 174.715,72.817, 164.751,70.4, 154.296,70.4
1214
+ c-10.455,0-20.357,2.417-29.266,6.523c-9.257,4.342-19.476,6.902-30.28,6.902c-10.803,0-18.104-2.56-27.372-6.902C 58.481,72.817, 51.2,70.4, 40.96,70.4
1215
+ l0,44.831 c 10.24,0, 17.521,2.417, 26.419,6.523c 9.257,4.229, 18.022,6.789, 28.826,6.789c 10.803,0, 20.285-2.56, 29.553-6.789
1216
+ c 8.909-4.096, 18.452-6.523, 28.908-6.523c 10.455,0, 20.234,2.417, 29.256,6.523c 9.155,4.229, 19.261,6.789, 30.075,6.789
1217
+ c 10.772,0, 21.053-2.56, 30.198-6.789c 8.899-4.096, 18.852-6.523, 29.297-6.523c 10.445,0, 20.408,2.417, 29.44,6.523
1218
+ c 9.134,4.229, 19.446,6.789, 30.147,6.789c 10.793,0, 21.115-2.56, 30.269-6.789c 8.888-4.096, 18.995-6.523, 29.317-6.523
1219
+ c 10.455,0, 20.429,2.417, 29.44,6.523c 9.165,4.229, 19.466,6.789, 30.29,6.789c 10.68,0, 21.012-2.56, 30.147-6.789
1220
+ c 8.899-4.096, 19.21-6.523, 29.45-6.523L 511.99,70.4 zM 392.069,257.649l 86.692-6.892l-6.543,45.087L 408.576,300.421c-17.203,0.85-14.725-16.681-14.725-16.681L 392.069,257.649zM 231.311,267.919c 15.923,0, 28.744,13.046, 28.744,29.235c0,16.2-12.81,29.235-28.744,29.235c-15.903,0-28.692-13.046-28.692-29.235
1221
+ C 202.619,280.965, 215.409,267.919, 231.311,267.919zM 53.914,155.228c 3.676,1.085, 7.25,2.529, 10.568,4.106c 9.267,4.342, 19.476,6.892, 30.28,6.892c 10.803,0, 21.023-2.55, 30.28-6.892
1222
+ c 8.909-4.106, 18.811-6.523, 29.266-6.523c 10.455,0, 20.419,2.406, 29.44,6.523c 9.155,4.342, 19.354,6.892, 30.167,6.892
1223
+ c 10.772,0, 21.105-2.55, 30.249-6.892c 8.899-4.106, 18.883-6.523, 29.327-6.523c 10.445,0, 20.419,2.406, 29.45,6.523
1224
+ c 9.134,4.342, 19.456,6.892, 30.157,6.892c 10.793,0, 21.115-2.55, 30.269-6.892c 8.888-4.106, 18.995-6.523, 29.317-6.523
1225
+ c 10.455,0, 20.429,2.406, 29.44,6.523c 9.165,4.342, 19.466,6.892, 30.29,6.892c 10.68,0, 21.012-2.55, 30.147-6.892
1226
+ c 8.899-4.106, 18.883-6.523, 29.338-6.523l-9.748,79.944L 141.824,263.455l 54.385,55.828l-23.869,2.171l-54.313-55.951L 0.010,275.415
1227
+ C-0.707,234.455, 44.165,166.349, 53.914,155.228L 53.914,155.228z" data-tags="boating" />
1228
+ <glyph unicode="&#xe098;" d="M 299.121,141.967c 11.141,0, 20.070,8.878, 20.070,19.855c0,10.906-8.929,19.855-20.070,19.855s-20.193-8.95-20.193-19.855
1229
+ C 278.927,150.845, 287.98,141.967, 299.121,141.967z M 501.76-1.178c-122.88-1.761-245.647,20.746-341.115,96.389l0,0
1230
+ c-0.614,0.532-1.628,1.26-1.628,2.099c0,1.812, 1.075,3.195, 2.796,3.195l 93.921-0.123c 4.526,0, 8.212,3.676, 8.212,8.202
1231
+ c0,3.379-1.618,5.745-5.284,7.547l-85.115,40.069c-1.577,0.973-2.703,2.652-2.703,4.721c0,1.444, 2.161,2.826, 3.144,3.86l0,0
1232
+ c0,0, 102.492,90.317, 327.772,88.34L 501.76-1.178 zM 453.161,449.27c-73.667-0.819-145.828-31.805-226.755-97.26c-3,0.819-9.667,2.56-9.667,2.56
1233
+ c-12.851,0-23.327-10.25-23.327-22.897c0,0, 0.911-4.28, 1.464-6.912c-2.427-2.294-65.382-60.498-65.382-60.498l-55.613-51.681
1234
+ c-5.233-4.7-11.96-7.045-19.036-6.748C 47.821,206.182, 41.37,209.203, 36.68,214.262c-4.557,5.018-6.799,11.244-6.799,17.5
1235
+ c0,7.066, 2.877,14.121, 8.53,19.2c0,0, 4.198,2.304, 7.383,4.096c 0.676-4.69, 2.632-19.046, 2.632-19.046l 45.353,56.965l-50.033-16.814
1236
+ c-13.189-4.475-18.606-11.028-18.811-11.295c-18.34-16.312-19.773-45.036-2.826-63.508c 17.050-18.524, 46.162-19.845, 64.911-3.062l 0.481,0.604
1237
+ l 52.726,49.469c0,0, 65.055,60.713, 67.205,62.72c 3.123-0.829, 9.308-2.365, 9.308-2.365c 12.79,0, 23.194,10.281, 23.194,22.968
1238
+ c0,0-0.625,3.348-1.106,5.765c 78.295,63.488, 146.77,93.604, 215.316,94.382c 14.080,0.154, 25.334-1.69, 43.817-5.581L 501.76,425.421L 501.76,443.505
1239
+ l-2.447,0.512C 480.215,448.031, 467.681,449.444, 453.161,449.27z" data-tags="fishing" />
1240
+ <glyph unicode="&#xe09e;" d="M 337.224,411.443A37.714,37.837 180 1 1 412.652,411.443A37.714,37.837 180 1 1 337.224,411.443zM 135.782,47.852L 10.24,174.141l 0.051-22.057l 116.849-117.627c 13.425-14.592, 36.424,2.284, 36.424,2.284l-11.028,11.848
1241
+ c0,0-10.865-7.148-16.486-1.065L 135.782,47.852zM 10.24,285.44L 143.36,285.44L 143.36,275.2L 10.24,275.2zM 487.117,321.341L 501.76,314.409L 355.891,19.2L 339.743,19.2 zM 245.053,345.508l-58.706-67.973c-3.451-4.301-8.745-6.984-14.653-6.984c-10.527,0-18.985,8.54-18.985,19.046
1242
+ c0,5.693, 2.447,10.772, 6.4,14.244l 63.273,73.114c 3.502,4.188, 8.745,6.871, 14.643,6.871l 91.628,0.051c 6.738,0, 12.759-2.744, 17.213-6.984
1243
+ l 58.419-58.593l 48.404,48.425c 3.4,2.898, 7.813,4.639, 12.585,4.639c 10.865,0, 19.61-8.827, 19.61-19.661c0-4.741-1.618-9.042-4.403-12.452
1244
+ l-58.368-58.982c-17.705-17.766-31.98-2.683-31.98-2.683l-35.799,36.076l-55.982-64.901l 51.292-51.436c0,0, 10.803-10.056, 4.628-30.106l-28.744-128.471
1245
+ C 323.246,27.576, 313.385,19.2, 301.64,19.2c-13.466,0-24.402,10.936-24.402,24.463c0,2.13, 0.215,4.188, 0.788,6.154l 23.613,105.441l-58.255,56.76
1246
+ l-50.125-56.023c0,0-8.131-10.056-29.635-9.277l-101.642-0.174c-11.366-0.215-21.668,7.608-24.228,19.108c-3.011,13.179, 5.12,26.143, 18.268,29.041
1247
+ c 2.058,0.461, 4.116,0.676, 6.124,0.563l 87.45-0.215l 129.28,150.303L 245.053,345.508zM 469.248,17.48C 469.217,7.578, 461.015-1.28, 451.174-1.28L 153.6-1.28 l0-10.24 l 297.533,0 c 16.558-0.092, 30.065,12.687, 30.147,29.327
1248
+ L 469.248,17.48z" data-tags="cross-country-skiing" />
1249
+ <glyph unicode="&#xe09f;" d="M 452.301,289.106c 21.688,0, 39.219,17.736, 39.219,39.567c0,21.811-17.531,39.444-39.219,39.444
1250
+ c-21.586,0-39.158-17.623-39.158-39.444C 413.143,306.852, 430.715,289.106, 452.301,289.106zM 441.252,18.381L 28.57,262.738L 20.48,248.791l 412.498-244.419c 18.913-11.315, 43.325-5.14, 54.6,13.998l-13.691,8.305
1251
+ C 467.159,15.237, 452.475,11.602, 441.252,18.381zM 480.932,201.82l-70.185,41.308l-8.1,105.841c-1.208,12.667-8.038,24.033-17.981,31.037l-101.079,60.334
1252
+ c-23.839,16.169-56.064,9.81-72.141-14.356c-8.847-13.189-11.284-29.87-6.943-43.407l 27.423-90.563l-82.729-26.604
1253
+ c-10.353-4.198-18.35-13.998-19.732-26.020c-2.14-17.623, 10.875-29.297, 28.406-31.375c 3.994-0.481, 6.646,0.676, 10.353,1.618l 112.927,37.693
1254
+ c 8.284,3.031, 17.336,11.325, 18.217,18.555c 0.645,5.253, 2.314,9.687, 1.219,12.841l-17.183,61.962l 67.912-40.735l 8.212-59.402
1255
+ c 0.707-10.383, 5.396-17.848, 13.322-22.282l 88.75-52.275c 9.708-5.376, 21.975-1.761, 27.29,8.161C 494.295,183.982, 490.639,196.465, 480.932,201.82
1256
+ z" data-tags="skiing" />
1257
+ <glyph unicode="&#xe0a0;" d="M 211.855,353.096c 20.275,0, 36.669,16.886, 36.669,37.908C 248.525,411.802, 232.131,428.8, 211.855,428.8
1258
+ C 191.57,428.8, 175.104,411.802, 175.104,391.004C 175.104,369.981, 191.57,353.096, 211.855,353.096zM 255.037,49.92l 174.684,0 c0,0, 11.295-2.048, 33.751,16.507L 501.76,95.242l0-33.997 l-39.055-30.085c0,0-11.602-9.718-31.15-11.96
1259
+ L 240.394,19.2 L 255.037,49.92zM 11.704,19.2L 186.47,19.2L 201.001,49.92L 199.598,49.92L 24.832,49.92L 10.24,19.2 zM 230.308,305.736c0,21.627-18.104,39.199-38.339,39.199c-20.265,0-38.369-17.572-38.369-39.199l0-95.836
1260
+ C 153.6,197.765, 162.468,183.040, 170.639,183.040L 88.535,183.040 l-44.39-87.89c-0.973-1.956-1.403-6.134-1.403-8.448C 42.732,78.838, 54.077,70.4, 61.44,70.4l 296.96,0
1261
+ c0,0, 13.404-1.178, 32.993,15.258l 78.592,62.228L 440.32,203.52c0,0-6.717,13.527-31.816,17.592l-59.331,10.701l-31.826,56.791l-1.362,0.594
1262
+ C 311.327,294.861, 307.2,295.455, 296.96,290.601l0-0.123 c0-3.697-5.233-9.708-3.164-15.022L 317.44,233.359l0-0.338 l-31.099-53.76L 225.28,203.561L 225.28,224 l 52.111,0
1263
+ c 2.294,0, 4.669,1.925, 6.932,2.959c 9.001,3.564, 13.435,15.155, 9.964,24.648c-2.57,7.404-9.103,12.216-15.903,12.329l-48.179,0.328
1264
+ L 230.308,305.736" data-tags="snowmobile" />
1265
+ <glyph unicode="&#xe0a1;" d="M 355.144,402.647A39.342,38.717 180 1 1 433.828,402.647A39.342,38.717 180 1 1 355.144,402.647zM 485.13,256.932l-110.838,100.27c-3.717,3.533-7.997,6.4-12.769,8.458l-86.354,30.249l-39.229,55.972
1266
+ c-3.011,3.983-7.639,6.83-13.087,7.526c-10.332,1.137-19.61-6.164-20.9-16.333c-0.461-4.332, 0.584-8.448, 2.785-11.868l 40.018-56.986
1267
+ c 1.853-2.386, 4.178-4.219, 6.963-5.478l 46.438-18.043l-76.36-38.369c-10.568-6.052-18.217-16.445-20.306-28.785l 0.461-68.639l-70.502-31.293
1268
+ c-8.008-3.645-13.701-11.53-14.060-20.767c-0.236-5.468, 1.485-10.527, 4.434-14.694l-38.021,14.234c-7.137,2.693-12.708,8.387-15.135,15.636
1269
+ c-4.352,12.749-18.401,19.599-31.345,15.299c-12.943-4.28-19.896-18.094-15.555-30.843c 7.199-21.043, 23.45-37.683, 44.452-45.548L 396.452-6.605
1270
+ c 21.125-7.956, 44.472-6.185, 63.836,4.823c 11.848,6.687, 15.903,21.535, 9.175,33.178c-6.851,11.663-21.944,15.647-33.761,8.98
1271
+ c-6.502-3.707-14.531-4.311-21.719-1.567l-81.879,30.648c 8.509,2.877, 14.971,10.291, 16.2,19.374l 12.892,102.666
1272
+ c 0.102,0.461, 0.102,0.922, 0.102,1.382c 0.358,7.188-2.56,13.814-7.557,18.371l-55.46,48.425l 83.569,40.53l 77.629-70.328
1273
+ c 3.502-3.318, 8.141-5.376, 13.353-5.376c 10.455,0.113, 18.811,8.458, 18.698,18.729C 491.52,248.719, 488.95,253.635, 485.13,256.932z M 310.917,184.893
1274
+ l-11.039-90.122c0-0.44-0.102-1.024-0.102-1.577c-0.205-4.68, 1.004-9.052, 3.195-12.82l-155.576,58.225
1275
+ c 1.761,0.43, 3.492,0.983, 5.069,1.761l 86.374,38.39c 6.154,3.287, 10.793,9.103, 12.308,16.087l-0.225,42.691L 310.917,184.893z" data-tags="snowboarding" />
1276
+ <glyph unicode="&#xe0a2;" d="M 235.52-8.335l0,64.942 l-34.376-20.398L 184.32,46.797l0,22.825 l 51.2,30.577l0,42.68 l-40.96-25.098l0,45.22 l-40.96-21.443l0-61.338 l-16.927-12.595L 122.88,79.002
1277
+ l0,41.083 L 65.802,88.115L 40.96,98.345l0,25.897 l 58.214,32.461L 61.44,175.36l0,23.757 l 21.74,11.54l 53.391-31.416l 36.987,21.34l-0.84,0.666l-37.53,21.74
1278
+ l 36.536,22.815l-36.628,21.33L 81.715,235.878L 61.44,245.801l0,23.624 l 36.27,20.255L 40.96,320.942l0,25.897 l 23.767,11.407L 122.88,325.509l0,41.738 l 15.206,11.54
1279
+ l 19.896-12.083l-0.573-62.515l 37.612-21.729l 0.338,44.145L 235.52,305.111l0,42.67 l-51.2,30.597L 184.32,401.050 l 16.824,10.752L 235.52,391.404L 235.52,456.202 L 255.939,469.76L 276.48,456.202
1280
+ l0-64.799 l 39.997,20.797L 337.92,399.718l0-20.398 l-61.44-31.539l0-42.67 l 40.96,23.214l0-46.428 l 40.96,21.34l0,66.806 l 14.899,8.868L 389.12,370.053l0-42.67 l 59.822,31.539L 471.040,346.45
1281
+ l0-24.156 l-56.269-32.461L 450.56,269.824l0-23.081 l-18.739-10.199l-54.548,32.338l-37.673-24.023l 36.342-22.815l-37.468-21.729l 38.625-20.398l 55.183,30.577
1282
+ L 450.56,198.042l0-22.016 l-33.997-19.323l 54.477-32.461l0-25.498 l-25.825-10.619L 389.12,118.723l0-40.499 l-15.565-10.742L 358.4,78.223l0,61.46 l-40.96,22.661l0-42.68 l-40.96,23.224
1283
+ l0-42.68 l 51.2-30.577l0-24.156 l-16.865-9.257L 276.48,56.596l0-64.942 L 255.939-21.76L 235.52-8.335z M 220.508,223.058L 239.821,193.28l 35.983,0 l 16.517,29.778L 274.872,254.72
1284
+ l-35.983,0 L 220.508,223.058z" data-tags="snow" />
1285
+ <glyph unicode="&#xe0a3;" d="M 354.478,390.554c 21.647,0, 39.127,17.756, 39.127,39.608C 393.605,452.004, 376.125,469.76, 354.478,469.76c-21.668,0-39.281-17.756-39.281-39.608
1286
+ C 315.197,408.31, 332.81,390.554, 354.478,390.554zM 459.745,239.483c-6.83-15.882-21.412-11.11-21.412-11.11l-61.399,23.378c-6.154,2.222-10.885,7.363-12.524,13.67l-13.885,40.888
1287
+ l-21.668-60.17l 63.713-67.41C 400.548,164.577, 399.36,154.194, 399.36,154.194l0-93 l0,0c0,0, 41.605-18.575, 41.605-41.472
1288
+ c0-22.907-18.166-41.482-40.868-41.482c-3.236,0-6.257,0.348-9.38,1.167L 256,9.656l0,20.101 l 102.4,22.671l0,84.695 l-68.803,68.588l-10.783-71.864
1289
+ c-1.72-9.124-8.387-17.644-12.114-21.852l-47.309-55.255c-0.686,0.594-1.649,0.594-2.57,0.471l 2.509-0.471
1290
+ c 12.247-9.697, 18.616-25.928, 14.797-42.179c-5.181-22.313-27.433-36.096-49.449-30.843c-3.236,0.809-6.246,1.874-9.144,3.267L 51.2,47.995
1291
+ l 4.639,19.517l 114.022-1.638l 54.211,63.191L 240.845,253.389l 35.195,94.054l-48.722-28.273L 198.246,261.683c-8.806-18.227-24.668-8.643-24.668-8.643
1292
+ c-14.367,8.294-8.806,22.313-8.806,22.313l 29.768,60.754c 7.997,15.421, 14.367,17.756, 14.367,17.756l 69.571,38.441
1293
+ c 15.165,10.516, 32.778,2.335, 32.778,2.335l 40.069-15.309c 20.040-7.25, 20.859-18.575, 20.859-18.575l 24.791-80.036l 53.391-19.036
1294
+ C 450.365,261.683, 464.732,255.488, 459.745,239.483z M 397.199-2.949c 1.065-0.123, 2.089-0.236, 3.144-0.236c 12.513,0, 22.211,10.281, 22.211,22.907
1295
+ c0,12.605-12.954,22.886-23.194,22.886l0-4.792 c0-12.032-9.216-21.842-21.176-21.842c-10.527,0-18.637,7.711-20.582,17.756l-62.925-14.019L 397.199-2.949
1296
+ z M 185.969,2.775c 0.932-0.471, 1.853-0.686, 2.888-0.942c 12.278-2.908, 24.443,4.69, 27.341,16.947c 2.191,9.349-1.628,18.698-8.929,23.951
1297
+ l-9.267-10.875c-7.875-9.103-21.545-10.148-30.577-2.212c-5.325,4.68-7.404,11.315-7.055,17.869l-68.977,1.178L 185.969,2.775z" data-tags="snow-shoeing" />
1298
+ <glyph unicode="&#xe0a4;" d="M 440.044,137.124c 25.774,0, 46.725,21.699, 46.725,48.517c0,26.675-20.961,48.271-46.725,48.271
1299
+ c-25.897,0-46.746-21.586-46.746-48.271C 393.288,158.822, 414.136,137.124, 440.044,137.124zM 475.904,28.918c 2.099-0.737, 3.092-1.096, 5.427-1.096c 11.96,0, 21.053,10.056, 21.053,22.436
1300
+ c0,9.339-5.908,17.459-13.783,20.736l-64.819,26.081l-47.155,86.62c0,0-3.912,9.564-17.5,14.797L 204.698,262.543l-91.761,160.973
1301
+ C 107.602,432.732, 97.812,439.040, 86.569,439.040C 69.581,439.040, 55.869,424.735, 55.869,407.142c0-5.581, 1.413-10.803, 3.871-15.411l 113.92-200.028L 101.437,221.542
1302
+ l-18.156-12.206L 371.845,90.88l-0.123,0 l 11.827-18.504c0,0, 4.68-9.964, 18.637-15.657l 35.84-14.213c-23.316-24.136-56.003-13.609-56.003-13.609
1303
+ L 29.686,175.503L 10.24,163.533l 370.422-150.641C 423.424-3.246, 460.8,35.461, 460.8,35.461l0-0.123 L 475.904,28.918z" data-tags="sledding" />
1304
+ <glyph unicode="&#xe0a5;" d="M 346.685,392.131c 21.289,0, 38.39,17.316, 38.39,38.758S 367.985,469.76, 346.685,469.76c-21.197,0-38.318-17.428-38.318-38.871
1305
+ S 325.489,392.131, 346.685,392.131zM 183.849,234.721l 138.004,90.235c 18.022,11.571, 23.47,35.656, 12.022,53.883c-11.315,18.237-35.236,23.736-53.268,12.155l-101.745-66.488
1306
+ c-5.775-3.789-10.312-8.724-13.251-14.449L 59.689,98.857c-6.236-12.503-1.352-27.638, 10.885-33.946c 12.237-6.287, 27.31-1.372, 33.536,11.018
1307
+ L 183.849,234.721zM 452.649,249.508c 18.248,11.581, 23.921,35.881, 12.462,54.354l-13.384-8.253c 6.912-11.121, 3.523-25.682-7.465-32.563L 20.48-8.335L 28.867-21.76
1308
+ L 452.649,249.508z" data-tags="ski-jumping" />
1309
+ <glyph unicode="&#xe0a6;" d="M 446.802,379.617C 471.552,379.617, 491.52,399.841, 491.52,424.694C 491.52,449.597, 471.552,469.76, 446.802,469.76c-24.617,0-44.585-20.163-44.585-45.066
1310
+ C 402.207,399.841, 422.185,379.617, 446.802,379.617zM 317.44-11.52l 122.88,0 c0,0, 10.24,1.055, 10.24,10.24l0,10.24 l 10.24,0 c0,0, 4.209-27.74-19.016-30.72L 317.44-21.76 L 317.44-11.52 zM 30.72,80.64l 81.92-81.92c0,0, 6.748-2.54, 13.22,3.932l 6.472,6.523L 143.36-1.28c0,0-18.381-26.829-36.905-12.36L 20.48,73.196L 30.72,80.64zM 347.187,113.9l 0.143-81.592c0-15.34, 10.813-27.761, 26.010-27.761c 13.937,0, 26.020,16.23, 26.020,27.761L 399.36,145.848
1311
+ c0,7.905-1.782,15.084-7.045,20.142l-65.331,66.437l 87.921,88.371c 16.456,20.726, 7.967,45.578, 7.967,45.578
1312
+ c-9.042,27.566-39.956,28.518-39.956,28.518L 157.338,394.957c-11.991,0-21.77-9.82-21.77-21.985c0-12.237, 9.81-21.996, 21.811-21.996
1313
+ l 155.771-0.246l-65.556-65.925c-9.411-9.697-14.182-20.603-14.182-34.857c0-13.691, 5.396-25.928, 14.449-34.867L 347.187,113.9zM 233.902,202.639c-2.13,2.028-4.024,4.239-5.765,6.595L 97.966,77.568c-9.851-7.987-13.056-22.057-7.148-33.782
1314
+ c 6.779-13.435, 23.173-18.77, 36.475-11.858c 1.823,0.963, 3.461,2.099, 5.028,3.359L 265.933,170.373L 233.902,202.639z" data-tags="ice-skating" />
1315
+ <glyph unicode="&#xe0a7;" d="M 501.76-5.325c-112.64-1.649-234.496,20.398-327.619,94.72l0,0c-0.481,0.594, 0.758,1.178, 0.758,2.14c0,1.649, 2.232,3.072, 4.014,3.072
1316
+ l 91.965-0.123c 4.536,0, 8.325,3.564, 8.325,8.069c0,3.308-1.464,5.571-4.905,7.352l-82.831,39.352c-1.669,0.952-2.591,2.611-2.591,4.618
1317
+ c0,1.546-2.58,2.847-1.628,3.799l0,0c0,0, 99.461,88.781, 314.501,86.764L 501.75-5.325 z M 313.743,135.281c 10.865,0, 19.681,8.765, 19.681,19.538
1318
+ c0,10.803-8.817,19.456-19.681,19.456c-10.742,0-19.558-8.663-19.558-19.456C 294.185,144.046, 303.002,135.281, 313.743,135.281zM 10.24,459.52L 102.4,459.52L 102.4,387.84L 10.24,387.84zM 194.56,459.52L 501.76,459.52L 501.76,387.84L 194.56,387.84zM 143.36,352c-10.24-2.488-13.302-9.841-13.302-18.36c0-8.54, 3.062-15.892, 13.302-18.616l0-120.32 c0-15.524-14.766-27.965-30.392-27.965
1319
+ c-15.503,0-29.184,12.452-29.184,27.965c0,3.789, 0.133,7.465, 1.567,10.793l 0.901-0.952l 9.759-9.021l-6.277,54.897l-16.138-36.997
1320
+ c-4.884-11.377-3.717-18.719-3.717-18.719c0-22.405, 19.282-40.663, 41.82-40.663c 22.661,0, 41.882,18.258, 41.882,40.663L 153.58,315.259
1321
+ c 10.24,2.734, 13.117,9.953, 13.117,18.381c0,8.53-2.877,15.882-13.117,18.596L 153.58,459.52 l-10.24,0 L 143.34,352 z" data-tags="ice-fishing" />
1322
+ <glyph unicode="&#xe0a8;" d="M 436.214,99.379c 18.831,6.164, 28.969,26.184, 22.774,44.861l-13.65-4.362c 3.727-11.192-2.478-23.265-13.64-26.962L 72.991-8.335
1323
+ L 77.609-21.76L 436.214,99.379zM 105.912,308.91c 19.681,5.704, 30.945,26.286, 25.201,45.865c-5.755,19.569-26.44,30.761-46.182,25.057
1324
+ c-19.732-5.704-31.119-26.286-25.252-45.865C 65.434,314.388, 86.067,303.196, 105.912,308.91zM 90.685,257.679c-19.63,37.13, 36.7,67.215, 57.446,31.201l 40.448-76.298l 77.015,21.719c 12.739,3.584, 30.341-10.189, 30.341-26.399
1325
+ l 0.43-108.739c 0.123-26.952-40.243-27.064-40.243,0.215c-0.123,25.293-0.788,79.196-0.788,79.196l-80.364-23.931
1326
+ c-17.592-5.038-32.143,3.676-39.014,16.548L 90.685,257.679zM 215.040,240.445L 215.040,469.76L 194.56,469.76L 194.56,236.083 zM 53.699,208.118c-11.049,21.586, 17.48,35.901, 28.529,14.316l 34.785-67.564c 7.557-13.978, 22.333-23.501, 39.363-23.501
1327
+ c 5.294,0, 10.25,1.352, 15.104,2.355l 43.827,12.739c 23.235,6.943, 32.246-23.47, 8.806-30.321l-46.1-13.292
1328
+ c-6.871-2.13-14.316-3.236-21.985-3.236c-29.655,0-55.306,16.66-67.932,41.042L 53.699,208.118z" data-tags="chairlift" />
1329
+ <glyph unicode="&#xe0a9;" d="M 204.001,387.062c-20.173,0-36.506-16.138-36.506-36.045c0-20.009, 16.333-36.137, 36.506-36.137c 20.070,0, 36.403,16.138, 36.403,36.137
1330
+ C 240.404,370.924, 224.082,387.062, 204.001,387.062zM 388.844,315.761c-1.311,7.741-7.721,12.165-8.038,12.493L 166.513,469.76L 146.637,440.904c-3.697-5.755-2.109-13.261, 3.553-17.029
1331
+ c 5.734-3.758, 13.24-2.202, 16.988,3.543l 11.581,16.691l 174.029-115.087l-142.602-25.764c-10.025-1.659-17.316-11.827-15.114-21.668l 30.996-120.289
1332
+ l-100.28-150.794c-6.011-10.281-2.376-23.552, 7.997-29.399c 10.465-5.97, 23.798-2.335, 29.747,7.956c0,0, 104.663,157.747, 105.103,158.751
1333
+ c0,0, 5.407-21.893, 5.407-22.006L 258.263,7.424c-1.976-11.725, 6.072-22.774, 17.869-24.76c 11.909-1.997, 23.163,5.97, 25.16,17.684
1334
+ l 16.189,121.733c 0.451,3.103-0.102,9.943-0.87,12.933L 280.883,277.504l 93.071,16.804C 383.877,296.079, 390.615,305.695, 388.844,315.761z" data-tags="golf" />
1335
+ <glyph unicode="&#xe0aa;" d="M 201.513,393.452c 18.975,0, 34.284,14.776, 34.284,32.973C 235.796,444.744, 220.488,459.52, 201.513,459.52
1336
+ c-18.842,0-34.15-14.776-34.15-33.096C 167.363,408.228, 182.671,393.452, 201.513,393.452zM 455.803,298.26l-36.25,6.697l-21.094-40.479c 3.41-0.788, 6.932-1.137, 10.588-1.137
1337
+ C 431.555,263.352, 450.396,278.129, 455.803,298.26z M 10.24,229.919C 10.24,256.748, 32.737,275.2, 60.539,275.2L 163.84,275.2 l0,76.964 c0,18.309, 16.886,33.085, 35.85,33.085
1338
+ S 235.52,370.473, 235.52,352.164l0-11.366 l 50.371-12.513c 8.817-1.925, 14.397-10.455, 12.411-18.985c-1.997-8.653-10.732-13.988-19.671-12.063L 235.52,307.016L 235.52,275.2
1339
+ l 50.575,0 L 425.318,415.98l-4.137-35.318l 68.547-43.592c 11.325-6.257, 15.442-20.142, 8.97-31.048c-5.079-8.765-15.206-12.872-24.75-11.162
1340
+ l-5.53,1.075c-6.605-25.815-30.761-44.78-59.372-44.78c-5.642,0-12.585,0.809-17.766,2.171L 337.92,150.876l0-140.575
1341
+ C 337.92-1.751, 329.861-11.52, 317.379-11.52C 304.876-11.52, 296.96-1.751, 296.96,10.312L 296.96,152.32 L 180.797,152.32 l-20.5-33.024l 42.885-98.284
1342
+ c 6.236-10.557, 2.355-23.665-8.468-29.573c-10.967-6.031-25.262-2.171-31.508,8.407L 112.64,113.797L 112.64,150.067 l-20.48-34.007l0-105.748
1343
+ C 92.16-1.751, 79.084-11.52, 66.601-11.52C 54.118-11.52, 40.96-1.751, 40.96,10.312L 40.96,132.465 l 20.48,28.334l0,95.846 L 40.96,229.12L 40.96,152.32 L 10.24,152.32 L 10.24,229.919 z" data-tags="horse-riding" />
1344
+ <glyph unicode="&#xe0ab;" d="M 281.487,408.32c-6.257,20.48-28.18,40.714-54.077,40.714c-30.925,0-55.931-25.754-55.931-55.634
1345
+ c0-5.028, 0.604-5.56, 1.935-15.8l 22.405,0 c 1.659,0, 3.441-4.086, 3.441-4.086c 6.748-9.421, 18.033-14.623, 30.751-14.623
1346
+ c 20.695,0, 37.519,16.466, 37.519,36.485C 267.54,399.985, 268.769,408.32, 266.752,408.32L 281.487,408.32 zM 279.941,86.282c-5.857-5.775-13.988-10.168-23.132-10.168l-0.041,117.545l 84.081,23.337l 21.105-40.151
1347
+ L 279.941,86.282zM 209.336,353.71c-5.55,6.001-13.568,10.476-22.6,10.476c-9.554,0-18.135-3.901-23.624-10.65l-66.724-98.417
1348
+ c-2.714-4.383-4.27-9.421-4.27-14.889c0-10.168, 5.069-18.995, 13.148-24.259L 194.56,167.956l0-81.787 c0-11.561, 8.54-20.982, 20.48-20.982
1349
+ c 11.909,0, 20.48,9.421, 20.48,20.982l0,102.134 c0,0, 4.229,16.282-14.858,25.149l-55.142,28.273l 41.011,60.047l 21.76-32.758
1350
+ c 4.321-6.636, 10.24-9.206, 15.585-9.103l 55.429-1.26c 22.569,0, 22.61,26.788, 0.041,26.788l-44.923,0 L 209.336,353.71zM 454.666,221.184c 0.901-0.86, 1.403-1.935, 1.403-3.328c0-2.57-2.232-4.721-4.874-4.721
1351
+ c-0.727,0-1.188,0-1.782,0.225c-9.585,3.963-15.667,6.4-26.778,6.4c-7.363,0-16.486-2.437-27.013-10.691l-9.718,18.606
1352
+ c 12.155,3.553, 22.129,6.646, 32.594,6.646C 435.067,234.332, 443.771,231.014, 454.666,221.184zM 82.401,206.807l 93.952-50.094l 0.215-20.122L 69.274,193.751c-7.741,3.86-18.196,6.113-25.61,6.113
1353
+ c-11.069,0-17.203-2.447-26.726-6.41c-0.614-0.215-1.116-0.215-1.761-0.215c-2.673,0-4.936,2.15-4.936,4.71
1354
+ c0,1.393, 0.543,2.458, 1.434,3.318c 10.895,9.841, 21.975,13.148, 38.574,13.148C 58.767,214.405, 69.11,213.453, 82.401,206.807zM 91.136,22.487c 30.607,0, 55.398,23.962, 55.398,53.617c0,29.655-24.781,53.637-55.398,53.637
1355
+ c-30.597,0-55.388-23.992-55.388-53.637C 35.748,46.449, 60.539,22.487, 91.136,22.487z M 11.182,76.114c0,42.711, 35.799,77.414, 79.954,77.414
1356
+ c 44.206,0, 80.005-34.703, 80.005-77.414S 135.342-1.28, 91.136-1.28C 46.971-1.28, 11.182,33.403, 11.182,76.114zM 421.786,22.487c 30.607,0, 55.47,23.962, 55.47,53.617c0,29.655-24.863,53.637-55.47,53.637
1357
+ c-30.566,0-55.368-23.992-55.368-53.637C 366.418,46.449, 391.219,22.487, 421.786,22.487z M 341.852,76.114c0,42.711, 35.738,77.414, 79.944,77.414
1358
+ c 44.155,0, 79.974-34.703, 79.974-77.414S 465.951-1.28, 421.786-1.28C 377.59-1.28, 341.852,33.403, 341.852,76.114zM 404.163,164.536l-38.84,75.059C 360.223,248.586, 350.3,254.72, 338.934,254.72l-25.405,0 c-4.905,0-8.96-3.881-8.96-8.704
1359
+ c0-4.803, 4.055-8.632, 8.96-8.632l 25.405,0.143c 4.26,0, 9.021-2.785, 10.824-6.861l 36.598-72.131L 404.163,164.536z" data-tags="motobike-trail" />
1360
+ <glyph unicode="&#xe0ac;" d="M 246.477,385.464c 21.012,0, 37.98,16.63, 37.98,37.089C 284.457,443.003, 267.489,459.52, 246.477,459.52
1361
+ c-21.023,0-38.113-16.517-38.113-36.977C 208.364,402.084, 225.454,385.464, 246.477,385.464zM 182.19,379.331c 1.454,5.693-2.253,11.377-7.987,12.8l-31.693,7.444c-5.96,1.311-11.796-2.089-13.158-7.762
1362
+ l-26.634-107.315c-1.464-5.693, 2.13-11.377, 7.977-12.8l 31.805-7.444c 5.734-1.423, 11.694,2.079, 13.036,7.772L 182.19,379.331zM 328.458-2.335c0-0.215-0.113-0.44-0.113-0.543c0-4.7, 3.932-8.54, 8.755-8.54
1363
+ c 4.383,0, 8.090,3.277, 8.663,7.444L 409.6,333.056c0,0.215,0,0.44,0,0.655c0,4.598-3.82,8.428-8.653,8.428
1364
+ c-4.383,0-7.762-3.287-8.653-7.444L 328.458-2.335zM 116.091,19.763c-0.338-1.751-0.44-3.492-0.44-5.253c0-14.438, 11.919-26.030, 26.747-26.030
1365
+ c 12.145,0, 22.364,7.875, 25.62,18.586l 45.967,185.211l 43.827-184.105C 260.628-3.205, 271.196-11.52, 283.668-11.52c 14.838,0, 26.747,11.592, 26.747,26.030
1366
+ c0,1.976-0.225,3.83-0.573,5.693l-60.119,244.603l 5.059,21.555l 3.942-16.957c 3.594-11.049, 13.926-12.145, 13.926-12.145l 61.932-15.319
1367
+ c 1.239-0.215, 2.468-0.328, 3.717-0.328c 10.107,0, 18.319,7.875, 18.319,17.715c0,8.417-5.96,15.534-14.060,17.388l-53.596,13.128
1368
+ l-14.725,58.194c-6.973,32.492-38.881,31.724-38.881,31.724c-31.017,0.768-38.779-30.945-38.779-30.945L 116.091,19.763z" data-tags="trail-walking" />
1369
+ <glyph unicode="&#xe0ad;" d="M 51.2,428.8L 225.28,428.8L 225.28,408.32L 204.8,408.32L 204.8,393.943L 51.2,380.283 zM 297.37,379.095c 22.098,0, 39.946,17.94, 39.946,40.151C 337.316,441.467, 319.468,459.52, 297.37,459.52c-22.088,0-40.049-18.053-40.049-40.274
1370
+ C 257.321,397.036, 275.282,379.095, 297.37,379.095zM 327.629,381.358c 11.448,11.407, 29.88,11.407, 41.359,0l 86.497-86.845C 458.793,291.185, 460.8,286.546, 460.8,281.559l0-260.659
1371
+ C 460.8,2.959, 448.041-11.52, 430.213-11.52C 412.355-11.52, 399.36,2.959, 399.36,20.9l0,215.040 l-82.258,81.132l-33.075-32.43
1372
+ c-3.656-4.393-9.503-7.25-15.78-7.25c-5.775,0-11.192,2.499-14.858,6.533l-55.665,55.951c-7.086,8.438-6.564,21.268, 1.833,28.396
1373
+ c 8.387,7.127, 20.89,5.939, 28.006-2.499l 42.168-42.65L 327.629,381.358zM 159.437,368.998c-0.829,3.922-4.26,6.769-8.274,6.769c-4.137,0-5.714-2.97-6.42-7.004L 133.12,291.185L 133.12-11.52 l 112.64,0 l0,40.96 l-72.253,0
1374
+ l-0.471,259.891L 159.437,368.998z" data-tags="viewing" />
1375
+ <glyph unicode="&#xe0ae;" d="M 244.183,383.242c 20.613,0.543, 36.844,18.084, 36.311,39.014C 279.951,443.453, 262.871,459.899, 242.258,459.52
1376
+ c-20.511-0.553-36.741-18.084-36.311-39.117C 206.479,399.36, 223.672,382.7, 244.183,383.242zM 370.739,256.87l-54.569,30.484l-45.189,71.854c-7.25,9.236-18.575,16.067-31.498,15.903
1377
+ c-9.718-0.328-18.268-4.803-25.108-10.813l-68.065-69.55c-2.243-2.406-3.789-5.458-4.321-8.796l-8.714-76.605
1378
+ c-0.102-0.829-0.102-1.526-0.154-2.355c 0.266-9.503, 8.008-16.876, 17.295-16.712c 8.714,0.215, 15.38,7.762, 16.343,16.056l 7.168,65.741
1379
+ l 23.706,24.095l-21.197-184.238l-39.311-86.927c-1.178-3.062-2.406-7.332-2.304-11.356c 0.379-14.203, 11.971-25.457, 25.907-25.139
1380
+ c 9.871,0.276, 17.9,6.349, 22.221,14.971l 42.107,93.819c 0.85,2.509, 3.84,8.632, 3.942,11.407l 4.915,45.404l 43.366-147.681
1381
+ c 3.727-10.322, 13.24-18.135, 24.668-17.807c 13.885,0.379, 24.996,12.145, 24.678,26.399c-0.113,1.864-0.655,3.052-0.748,5.192l-60.252,204.78
1382
+ l 7.69,66.55l 16.988-26.88c 1.167-1.751, 2.775-3.389, 4.588-4.526l 59.607-33.382c 2.877-0.932, 5.13-1.7, 7.782-1.7
1383
+ c 9.421,0.266, 16.783,8.192, 16.579,17.756C 378.665,248.668, 375.439,254.024, 370.739,256.87z" data-tags="walking" />
1384
+ <glyph unicode="&#xe0af;" d="M 115.743,38.185c 42.895,0, 77.67,35.686, 77.67,79.606c0,44.052-34.775,79.749-77.67,79.749
1385
+ c-42.793,0-77.599-35.697-77.599-79.749C 38.144,73.871, 72.95,38.185, 115.743,38.185z M 20.48,117.791c0,54.026, 42.742,97.751, 95.263,97.751
1386
+ c 52.675,0, 95.334-43.725, 95.334-97.751c0-54.006-42.66-97.608-95.334-97.608C 63.222,20.183, 20.48,63.785, 20.48,117.791zM 396.298,37.212c 42.742,0, 77.558,35.686, 77.558,79.626c0,44.022-34.816,79.708-77.558,79.708
1387
+ c-42.916,0-77.742-35.686-77.742-79.708C 318.556,72.899, 353.382,37.212, 396.298,37.212z M 300.902,116.838c0,54.006, 42.742,97.72, 95.396,97.72
1388
+ c 52.48,0, 95.222-43.715, 95.222-97.72C 491.52,62.915, 448.778,19.2, 396.298,19.2C 343.644,19.2, 300.902,62.915, 300.902,116.838zM 301.199,355.369c 19.784,0, 35.86,16.384, 35.86,36.659C 337.060,412.314, 320.983,428.8, 301.199,428.8s-35.85-16.486-35.85-36.772
1389
+ C 265.349,371.743, 281.416,355.369, 301.199,355.369zM 302.705,264.96c-5.202,0-10.803,3.113-14.92,9.841l-23.276,37.622l-48.026-48.66l 44.493-23.9
1390
+ c 18.319-8.991, 15.514-25.395, 15.514-25.395l0-103.383 c0-11.725-9.052-21.258-20.48-21.258c-11.428,0-20.48,9.544-20.48,21.258l0,82.76 l-77.353,43.94
1391
+ c-9.206,5.315-15.503,15.401-15.503,26.89c0,7.926, 2.826,15.196, 7.69,20.613l 75.756,77.783c 9.4,10.957, 22.518,9.216, 22.518,9.216
1392
+ c 15.872,0, 24.228-14.213, 24.228-14.213l 37.693-63.242L 368.64,294.943c 20.48,0, 20.48-29.983,0-29.983L 302.705,264.96 z" data-tags="bicycling" />
1393
+ <glyph unicode="&#x20;" horiz-adv-x="256" />
1394
+ </font></defs></svg>
includes/map-icons/fonts/map-icons.eot ADDED
Binary file
includes/map-icons/fonts/map-icons.svg ADDED
@@ -0,0 +1,1394 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>
5
+ This is a custom SVG font generated by IcoMoon.
6
+ <iconset grid="16"></iconset>
7
+ </metadata>
8
+ <defs>
9
+ <font id="map-icons" horiz-adv-x="512" >
10
+ <font-face units-per-em="512" ascent="480" descent="-32" />
11
+ <missing-glyph horiz-adv-x="512" />
12
+ <glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
13
+ <glyph unicode="&#xe000;" d="M 256.154,455.424c-79.872,0-144.599-63.529-144.599-141.865C 111.555,235.203, 256.154-21.76, 256.154-21.76s 144.609,256.963, 144.609,335.319
14
+ C 400.763,391.895, 335.995,455.424, 256.154,455.424z" />
15
+ <glyph unicode="&#xe001;" d="M 20.48,318.638L 20.48,459.52L 166.902,459.52L 220.785,418.56L 130.99,418.56L 225.28,318.638L 166.902,264.96L 71.68,354.55L 71.68,264.755 zM 491.52,134.38L 491.52-11.52L 345.098-11.52L 291.215,29.44L 381.010,29.44L 286.72,131.871L 345.098,186.798L 440.32,98.468L 440.32,188.262 z" />
16
+ <glyph unicode="&#xe002;" d="M 20.48,318.638L 20.48,459.52L 166.902,459.52L 220.785,418.56L 130.99,418.56L 225.28,318.638L 166.902,264.96L 71.68,354.55L 71.68,264.755 zM 345.62,459.52L 491.52,459.52L 491.52,318.116L 450.56,264.243L 450.56,354.028L 348.129,259.738L 293.202,315.607L 381.532,408.32L 291.738,408.32 zM 491.52,134.38L 491.52-11.52L 345.098-11.52L 291.215,29.44L 381.010,29.44L 286.72,131.871L 345.098,186.798L 440.32,98.468L 440.32,188.262 zM 166.38-11.52L 20.48-11.52L 20.48,134.902L 61.44,188.785L 61.44,98.99L 163.871,193.28L 218.798,134.902L 130.468,39.68L 220.262,39.68 z" />
17
+ <glyph unicode="&#xe003;" d="M 460.8,469.76L 51.2,469.76L 51.2,60.16L 205.752,60.16L 261.448-22.272L 317.153,60.16L 460.8,60.16 z" />
18
+ <glyph unicode="&#xe004;" d="M 486.349,259.072C 484.045,383.57, 411.822,433.039, 408.863,434.995l-11.172,7.639l-11.254-7.619c-18.698-12.687-38.083-19.128-57.61-19.128
19
+ c-32.338,0-54.292,17.408-55.224,18.166L 261.007,444.16l-12.503-10.138c-0.922-0.737-22.866-18.135-55.214-18.135c-19.507,0-38.881,6.431-57.61,19.159
20
+ l-11.203,7.557l-11.284-7.629C 105.533,429.711, 38.298,380.047, 35.86,259.686C 34.888,249.201, 63.805,51.057, 261.11-6.4
21
+ C 475.617,56.289, 487.455,245.996, 486.349,259.072z" />
22
+ <glyph unicode="&#xe005;" d="M 435.814,304.814c 2.847,33.853, 13.056,64.932, 31.027,93.43L 397.885,464.64c-21.78-18.053-46.602-28.058-74.701-29.819
23
+ c-25.764-2.243-50.176,2.468-73.155,14.162c-23.613-11.305-47.933-16.046-73.277-14.162c-26.235,2.253-49.9,11.213-71.096,27.075L 36.526,395.52
24
+ c 17.009-28.897, 26.481-59.136, 28.334-90.706c 0.881-14.531-3.42-34.56-13.097-60.416c-5.059-14.336-8.878-26.778-11.5-37.171
25
+ c-2.417-10.332-3.922-18.708-4.434-25.006c-0.348-27.556, 7.68-52.439, 24.146-74.568c 12.872-16.148, 34.099-33.987, 63.57-53.494
26
+ c 32.236-15.8, 57.19-26.051, 74.67-30.423c 5.018-2.263, 9.912-4.424, 14.5-6.502c 4.557-2.089, 9.441-4.147, 14.531-6.38
27
+ c 11.008-6.349, 18.719-13.22, 22.784-20.316c 4.997,7.69, 12.892,14.377, 23.378,20.316c 7.393,3.113, 13.67,5.786, 18.698,8.161
28
+ c 5.028,2.15, 8.776,3.738, 10.947,4.71c 3.738,1.772, 8.622,3.82, 14.561,6.083c 5.96,2.263, 13.363,5.028, 22.159,8.1
29
+ c 17.029,5.796, 29.43,11.295, 37.304,16.251c 28.59,19.497, 49.49,37.059, 62.792,52.736c 17.050,22.2, 25.344,47.206, 24.965,75.305
30
+ c-1.014,12.595-6.554,32.727-16.609,60.16C 438.661,269.097, 434.432,289.843, 435.814,304.814z" />
31
+ <glyph unicode="&#xe006;" d="M 143.36,316.16c 30.72-10.24, 51.2-36.332, 51.2-70.738l0-264.366 C 194.56-27.075, 202.783-32, 194.386-32L 42.824-32 C 34.447-32, 30.72-27.075, 30.72-18.954L 30.72,245.422
32
+ C 30.72,279.91, 51.2,308.439, 81.92,316.16L 81.92,439.040 l 61.44,0 L 143.36,316.16 zM 81.92,480L 143.36,480L 143.36,459.52L 81.92,459.52zM 361.011,431.002c-4.68,0.666-8.274,4.465-8.274,9.042c0,3.348, 2.007,6.267, 4.925,7.926c-2.918,1.536-4.925,6.943-4.925,10.322
33
+ C 352.737,463.37, 357.018,469.76, 362.322,469.76l 47.964,0 c 5.335,0, 9.585-6.39, 9.585-11.459c0-3.533-1.997-7.649-5.038-9.134
34
+ c 2.918-1.587, 5.038-5.059, 5.038-8.53c0-4.588-3.461-8.673-8.12-9.288l 61.082-149.504C 476.416,272.128, 481.28,261.202, 481.28,250.47L 481.28-11.52
35
+ c0-9.994, 0.266-20.48-10.24-20.48L 316.529-32 C 305.859-32, 307.2-21.514, 307.2-11.52L 307.2,254.72 c0,10.721, 1.997,17.265, 5.601,26.993L 361.011,431.002zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" />
36
+ <glyph unicode="&#xe007;" d="M 418.908,248.054c-12.964,0-25.283-2.662-36.475-7.444l-31.498,53.975l 23.736,40.684c 3.226,5.55, 1.352,12.677-4.188,15.923
37
+ c-2.437,1.413-5.151,3.973-7.721,3.553C 362.086,354.857, 361.431,357.12, 360.745,357.12l-46.561,0 c-6.42,0-11.633-8.94-11.633-15.36
38
+ c0-6.431, 5.212-15.36, 11.633-15.36l 30.177,0 l-13.588-20.48L 194.806,305.92 l 27.156,51.2l 10.762,0 c 6.42,0, 11.633,3.809, 11.633,10.24s-5.212,10.24-11.633,10.24l-58.194,0
39
+ c-6.41,0-11.633-3.809-11.633-10.24s 5.212-10.24, 11.633-10.24l 20.47,0 l-65.423-114.33c-11.203,4.782-23.542,6.349-36.495,6.349
40
+ C 41.677,249.139,0,206.909,0,155.505c0-51.415, 41.677-93.358, 93.092-93.358s 93.092,41.544, 93.092,92.959c0,30.106-14.356,56.74-36.557,73.769l 24.914,42.66
41
+ l 71.414-122.429c 0.082-0.133, 0.184-0.256, 0.276-0.389c 0.092-0.174, 0.205-0.317, 0.307-0.461c 0.082-0.133, 0.143-0.236, 0.236-0.348
42
+ c 0.287-0.379, 0.604-0.727, 0.922-1.065c 0.031-0.041, 0.072-0.082, 0.113-0.133c 0.102-0.102, 0.205-0.195, 0.317-0.287
43
+ c 0.102-0.092, 0.215-0.184, 0.328-0.266c 0.287-0.246, 0.594-0.502, 0.901-0.717c 0.123-0.092, 0.246-0.164, 0.379-0.246
44
+ c 0.102-0.061, 0.195-0.123, 0.297-0.195c 0.041-0.020, 0.072-0.051, 0.123-0.072c 0.010-0.020, 0.031-0.020, 0.041-0.041
45
+ c 0.317-0.174, 0.645-0.328, 0.983-0.481c 0.041-0.031, 0.072-0.041, 0.113-0.051c 0.072-0.031, 0.154-0.092, 0.236-0.123
46
+ c 0.020,0, 0.051-0.020, 0.082-0.020c 0.236-0.102, 0.502-0.184, 0.748-0.266c 0.236-0.082, 0.461-0.174, 0.696-0.225
47
+ c 0.051-0.010, 0.102-0.010, 0.143-0.041c 0.092-0.010, 0.174-0.020, 0.256-0.041c 0.143-0.031, 0.297-0.051, 0.451-0.092
48
+ c 0.696-0.133, 1.382-0.215, 2.089-0.215l0,0 c 0.010,0, 0.010-0.635, 0.010-0.635c 0.020,0, 0.031-0.604, 0.041-0.604l 70.564,0
49
+ c 5.755-40.96, 44.831-80.845, 92.293-80.845c 51.415,0, 93.092,41.994, 93.092,93.409C 512,206.060, 470.323,248.054, 418.908,248.054z M 162.908,154.962
50
+ c0-38.574-31.252-69.827-69.816-69.827c-38.564,0-69.816,31.263-69.816,69.827c0,38.554, 31.252,69.806, 69.816,69.806
51
+ c 8.673,0, 16.947-1.649, 24.607-4.547l-34.662-59.412c-3.236-5.54-1.352-12.667, 4.198-15.923c 1.843-1.065, 3.86-1.577, 5.847-1.577
52
+ c 4.004,0, 7.895,2.068, 10.066,5.765l 34.673,59.453C 153.139,195.717, 162.908,176.476, 162.908,154.962z M 256,180.541L 194.806,285.44l 122.399,0 L 256,180.541z
53
+ M 337.449,269.476l 24.924-43.704C 343.101,210.985, 329.789,193.28, 326.615,162.56l-50.36,0 L 337.449,269.476z M 374.18,204.503L 398.664,162.56l-48.517,0
54
+ C 352.952,183.040, 361.677,194.048, 374.18,204.503z M 418.908,84.5c-34.58,0-63.232,26.86-68.772,57.58l 68.741,0 c 0.031,0, 0.031,0.604, 0.051,0.604
55
+ c 0.696,0, 1.393,0.41, 2.079,0.543c 0.164,0.041, 0.307,0.215, 0.471,0.236c 0.635,0.154, 1.28,0.42, 1.935,0.676
56
+ c 0.061,0.031, 0.133,0.133, 0.215,0.164c 0.379,0.174, 0.768,0.379, 1.157,0.594c 0.092,0.051, 0.174,0.154, 0.276,0.215
57
+ c 0.348,0.225, 0.676,0.492, 1.034,0.748c 0.266,0.225, 0.573,0.44, 0.799,0.676c 0.287,0.256, 0.532,0.553, 0.778,0.85
58
+ c 0.236,0.266, 0.502,0.553, 0.696,0.87c 0.205,0.276, 0.41,0.625, 0.584,0.942c 0.184,0.328, 0.369,0.635, 0.532,0.973
59
+ c 0.154,0.348, 0.266,0.707, 0.399,1.065c 0.123,0.348, 0.236,0.696, 0.317,1.065c 0.092,0.369, 0.123,0.696, 0.174,1.065
60
+ c 0.061,0.44, 0.113,0.819, 0.133,1.26c0,0.123, 0.031,0.236, 0.031,0.358c0,0.215-0.051,0.43-0.051,0.655
61
+ c-0.041,0.44-0.072,0.84-0.143,1.27c-0.051,0.379-0.154,0.707-0.236,1.085c-0.102,0.358-0.195,0.707-0.338,1.065
62
+ c-0.164,0.399-0.338,0.778-0.532,1.157c-0.102,0.205-0.174,0.41-0.276,0.604l-34.662,59.412c 7.68,2.898, 15.944,4.547, 24.607,4.547
63
+ c 38.574,0, 69.827-31.57, 69.827-70.124C 488.745,116.081, 457.482,84.5, 418.908,84.5z" />
64
+ <glyph unicode="&#xe008;" d="M 128.522-26.726c-3.482-6.103-13.394-7.066-22.139-2.048l-54.743,31.16c-8.704,4.966-12.954,13.947-9.462,20.040L 275.005,391.506
65
+ c 33.485,54.129-83.558,49.357-112.292,33.423C 184.443,463.892, 253.696,476.754, 298.609,480l 13.066-0.85c 25.385-12.646, 61.788-31.621, 85.78-47.534
66
+ c 17.623-27.679, 36.209-42.25, 62.525-42.179c 34.345-26.317-19.302-98.109-53.053-64.86c 0.184,16.425-47.473,58.921-80.855,23.91L 128.522-26.726z" />
67
+ <glyph unicode="&#xe009;" d="M 261.233,450.386L 12.984,244.48L 71.68,244.48 l0-245.76 l 368.64,0 L 440.32,244.48 l 64.184,0 L 261.233,450.386z M 316.846,70.4L 200.632,70.4 l 24.371,109.681c-14.735,10.24-24.371,25.661-24.371,44.544
68
+ c0,31.109, 26.020,55.695, 58.102,55.695c 32.102,0, 58.112-25.528, 58.112-56.637c0-18.893-9.636-33.229-24.361-43.438L 316.846,70.4z" />
69
+ <glyph unicode="&#xe00a;" d="M 3.021,197.571c 4.198-32.512, 31.918-57.61, 65.587-57.61c 33.628,0, 61.327,25.098, 65.536,57.61L 3.021,197.571 zM 360.264,64.461c0-5.663-4.567-10.271-10.22-10.271L 159.007,54.19 c-5.612,0-10.24,4.608-10.24,10.271l0,0c0,5.622, 4.618,10.168, 10.24,10.168l 191.027,0
70
+ C 355.686,74.629, 360.264,70.083, 360.264,64.461L 360.264,64.461zM 149.883,48.957L 359.158,48.957L 359.158,19.395L 149.883,19.395zM 377.856,197.571c 4.188-32.512, 31.939-57.61, 65.556-57.61c 33.638,0, 61.348,25.098, 65.526,57.61L 377.856,197.571 zM 505.334,218.143l-53.688,73.953l 28.703,0 c 6.984,0, 12.605,5.724, 12.605,12.8c0,7.014-5.632,12.677-12.605,12.677L 328.305,317.573
71
+ c-9.062,24.996-30.935,43.776-57.692,48.456L 270.612,391.229 L 270.612,405.934 c0,7.096-5.693,12.759-12.749,12.759c-0.389,0-0.768-0.082-1.188-0.133
72
+ c-0.379,0.051-0.788,0.133-1.188,0.133c-7.055,0-12.728-5.663-12.728-12.759l0-14.705 l0-25.18 c-26.757-4.68-48.62-23.46-57.672-48.456L 33.014,317.594
73
+ c-6.932,0-12.585-5.663-12.585-12.677c0-7.086, 5.652-12.8, 12.585-12.8l 27.392,0 l-53.699-73.953L0,218.163 l0-13.66 l 137.196,0 l0,13.66 L 130.458,218.163 L 76.78,292.096
74
+ l 103.741,0 l 9.8,0 l 11.069,0 c0,2.888, 0.317,5.724, 0.748,8.438c 0.44,1.28, 0.737,2.58, 0.737,3.922c 4.69,19.763, 20.132,35.461, 39.885,40.274
75
+ l0-97.403 l0-42.854 l-0.532,0 c-1.096-52.756-26.194-98.765-63.427-124.621l 74.404,0 l 3.482,0 l 6.973,0 l 70.932,0 c-37.243,25.856-62.321,71.864-63.478,124.621l-0.492,0
76
+ l0,42.854 l0,97.403 c 19.722-4.813, 35.215-20.511, 39.875-40.274c 0.041-1.341, 0.317-2.642, 0.768-3.922c 0.41-2.724, 0.666-5.55, 0.666-8.438l 11.141,0
77
+ l 9.789,0 l 102.38,0 l-53.699-73.953l-6.697,0 l0-13.66 L 512,204.483 l0,13.66 L 505.334,218.143 z M 63.13,218.143L 20.275,218.143 l 42.854,59.034L 63.13,218.143 z M 74.097,218.143l0,59.034
78
+ l 42.854-59.034L 74.097,218.143 z M 437.944,218.143l-42.875,0 l 42.875,59.034L 437.944,218.143 z M 448.86,218.143l0,59.034 l 42.906-59.034L 448.86,218.143 zM 81.316,335.37c0-6.953-5.693-12.687-12.698-12.687c-7.035,0-12.749,5.734-12.749,12.687c0,7.025, 5.714,12.759, 12.749,12.759
79
+ C 75.622,348.14, 81.316,342.395, 81.316,335.37zM 456.141,336.046c0-7.076-5.693-12.687-12.718-12.687c-7.055,0-12.718,5.612-12.718,12.687c0,7.025, 5.663,12.749, 12.718,12.749
80
+ C 450.447,348.795, 456.141,343.071, 456.141,336.046z" />
81
+ <glyph unicode="&#xe00b;" d="M 145.787,75.52l 312.146,0 L 457.933,342.589 L 145.787,342.589 L 145.787,75.52 z M 304.394,316.006l 112.538-98.284l-28.355,0 l0-117.924 l-65.905,0 L 322.673,183.040 l-41.626,0 l0-83.241 L 218.624,99.799 L 218.624,217.723
82
+ l-29.082,0 L 304.394,316.006zM 111.104,408.484L 111.104,469.576L 41.738,469.576L 41.738-32L 111.104-32L 111.104,377.262L 471.818,377.262L 471.818,408.484 z" />
83
+ <glyph unicode="&#xe00c;" d="M 217.201,418.56C 87.849,418.56, 10.24,314.798, 10.24,262.912c0-51.886, 25.866-90.798, 77.609-90.798
84
+ c 51.743,0, 77.619-12.964, 77.619-51.876c0-51.876, 38.799-90.788, 90.542-90.788c 168.161,0, 245.76,90.788, 245.76,181.576
85
+ C 501.76,366.674, 372.388,418.56, 217.201,418.56L 217.201,418.56z M 184.863,366.674c 17.859,0, 32.338-14.52, 32.338-32.42
86
+ c0-17.92-14.479-32.43-32.338-32.43s-32.338,14.52-32.338,32.43C 152.525,352.154, 167.004,366.674, 184.863,366.674z M 288.328,366.674
87
+ c 17.859,0, 32.338-14.52, 32.338-32.42c0-17.92-14.479-32.43-32.338-32.43c-17.848,0-32.328,14.52-32.328,32.43
88
+ C 256,352.154, 270.479,366.674, 288.328,366.674z M 391.813,314.798c 17.869,0, 32.348-14.51, 32.348-32.43c0-17.92-14.479-32.42-32.348-32.42
89
+ c-17.859,0-32.328,14.51-32.328,32.42C 359.475,300.278, 373.955,314.798, 391.813,314.798z M 94.321,288.85c 17.859,0, 32.328-14.51, 32.328-32.41
90
+ c0-17.92-14.479-32.43-32.328-32.43s-32.338,14.52-32.338,32.43C 61.983,274.34, 76.462,288.85, 94.321,288.85z M 256,159.15
91
+ c 21.432,0, 38.799-17.408, 38.799-38.922c0-21.484-17.367-38.902-38.799-38.902s-38.799,17.418-38.799,38.902
92
+ C 217.201,141.742, 234.568,159.15, 256,159.15L 256,159.15z" />
93
+ <glyph unicode="&#xe00d;" d="M 256,418.56c-12.933,0-18.78-6.308-22.63-13.169L 72.499,102.574L 37.734,102.574 c-15.176,0-27.494-11.725-27.494-26.327
94
+ c0-14.572, 12.319-26.317, 27.494-26.317l 50.125,0 l 336.302,0 l 50.125,0 c 15.165,0, 27.494,11.745, 27.494,26.317c0,14.612-12.319,26.327-27.494,26.327L 439.501,102.574
95
+ l-160.86,302.828C 274.78,412.252, 268.943,418.56, 256,418.56L 256,418.56z M 256,286.904l 90.542-184.33L 165.458,102.574 L 256,286.904z" />
96
+ <glyph unicode="&#xe00e;" d="M 387.41,328.325c 3.41-53.299-22.446-90.665-22.446-90.665c 3.359,41.052-13.281,97.792-13.281,97.792c-14.213,2.785-36.925-0.205-36.925-0.205
97
+ c 3.277-44.278-19.241-82.944-35.871-97.178c 8.223,49.101-4.864,86.252-4.864,86.252c-22.497,5.673-54.743,2.202-54.743,2.202
98
+ c 7.004-52.234-21.811-90.665-21.811-90.665c 4.772,36.413-14.684,83.118-14.684,83.118c-16.517,1.075-42.834-4.301-42.834-4.301
99
+ c 13.875-24.791, 2.796-79.278, 2.796-79.278c-7.567,44.554-33.004,70.83-33.004,70.83C-36.116,244.111, 2.304,158.536, 73.626,133.048
100
+ c 67.287-24.003, 284.099-35.83, 381.102,6.257C 551.741,181.412, 483.43,299.735, 387.41,328.325z" />
101
+ <glyph unicode="&#xe00f;" d="M 40.96,469.76l 57.344-462.643c 1.792-14.428, 14.326-28.877, 28.682-28.877l 258.028,0 c 14.346,0, 26.9,14.449, 28.662,28.877L 471.040,469.76
102
+ L 40.96,469.76 z M 105.472,411.945l 301.046,0 l-13.435-115.661L 118.917,296.284 L 105.472,411.945z" />
103
+ <glyph unicode="&#xe010;" d="M 408.801,192.389c 4.741-2.324, 10.516-2.284, 12.831,0.113c 2.345,2.386, 0.317,6.154-4.485,8.366l-83.743,38.789
104
+ c-4.803,2.232-12.872,2.796-17.91,1.28l-29.952-8.98c-5.089-1.526-11.725-2.775-14.735-2.775c-3.011,0-5.519,4.239-5.519,9.441l0,91.331
105
+ c0,5.192, 4.332,9.452, 9.636,9.452l 217.18,0 c 5.325,0, 9.646,4.25, 9.646,9.452L 501.75,379.525 c0,5.202-4.168,10.67-9.236,12.155L 263.803,458.414
106
+ c-5.069,1.485-13.384,1.485-18.452-0.020L 19.446,391.69C 14.387,390.205, 10.24,384.717, 10.24,379.525l0-30.659 c0-5.202, 4.332-9.452, 9.626-9.452l 214.323,0
107
+ c 5.304,0, 9.636-4.26, 9.636-9.452l0-91.382 c0-5.192-4.332-9.452-9.636-9.462l-3.891,0 c-5.304-0.010-12.739,2.959-16.548,6.584l-51.671,49.347
108
+ c-3.82,3.635-11.254,6.595-16.558,6.595l-23.9,0 c-5.284,0-11.663,3.123-14.152,6.922c-2.468,3.809-8.223,6.902-12.78,6.902
109
+ s-5.96-3.564-3.092-7.946l 0.451-0.686c 2.867-4.372, 2.877-11.571, 0.061-15.964l-25.846-40.182c-2.806-4.413-1.935-10.865, 2.007-14.356
110
+ l 1.833-1.649c 3.942-3.482, 10.967-4.383, 15.667-1.956l 27.689,14.408c 4.71,2.437, 10.865,0.85, 13.722-3.523l 30.382-46.51
111
+ c 2.877-4.383, 1.915-10.732-2.13-14.090l-13.896-11.602c-4.045-3.359-6.4-10.25-5.233-15.34l 18.012-78.356
112
+ c 1.167-5.089, 6.339-8.192, 11.479-6.912l 12.524,3.092c 5.151,1.29, 8.387,6.472, 7.26,11.551l-12.196,52.992
113
+ c-1.167,5.069, 2.058,10.373, 7.188,11.735l 30.792,8.253c 5.1,1.372, 13.629,2.468, 18.934,2.468l 3.891,0 c 5.304,0, 9.636-4.25, 9.636-9.421l0-93.972
114
+ c0-5.181-4.332-9.431-9.636-9.431L 19.866,38.072 c-5.294,0-9.626-4.239-9.626-9.462l0-30.638 C 10.24-7.281, 14.572-11.52, 19.866-11.52l 468.255,0
115
+ c 5.304,0, 9.626,4.239, 9.626,9.472l0,30.638 c0,5.222-4.332,9.462-9.626,9.462L 274.934,38.052 c-5.315,0-9.636,4.25-9.636,9.431l0,93.972
116
+ c0,5.171, 4.332,9.421, 9.636,9.421l 11.1,0 c 5.304,0, 13.773-1.096, 18.924-2.468l 30.792-8.253c 5.14-1.362, 8.376-6.656, 7.188-11.735
117
+ l-12.165-52.992c-1.188-5.079, 2.068-10.26, 7.219-11.551l 12.544-3.092c 5.151-1.28, 10.281,1.823, 11.469,6.912l 18.033,78.356
118
+ c 1.198,5.089-1.075,11.878-4.997,15.176c-3.912,3.256-7.363,10.199-7.67,15.38l-1.567,27.72c-0.317,5.181, 3.338,7.526, 8.090,5.192
119
+ L 408.801,192.389z" />
120
+ <glyph unicode="&#xe011;" d="M 10.24,414.659c0,0, 23.112-40.96, 23.112-67.133s-22.979-65.075-22.979-65.075c0-6.083, 4.106-8.151, 8.97-4.669l 75.602,54.231
121
+ c 15.268-11.274, 45.179-26.235, 66.898-38.523l0-43.889 l 48.486,27.607c 15.565-3.533, 31.355-5.775, 48.261-5.775c 101.878,0, 184.586,66.099, 184.586,77.117
122
+ c0,9.574-62.198,60.754-145.418,73.964L 205.23,469.76l0-51.067 c-43.377-12.022-87.747-36.956-110.275-53.596l-75.878,54.231C 14.223,422.82, 10.24,420.741, 10.24,414.659
123
+ M 360.97,335.135c-11.991,0-21.729,9.861-21.729,22.047s 9.738,22.036, 21.729,22.036c 12.012,0, 21.688-9.851, 21.688-22.036
124
+ S 372.982,335.135, 360.97,335.135 M 501.76,143.309c0,6.093-3.983,8.172-8.837,4.669l-75.51-54.252c-22.528,16.64-66.447,41.574-109.885,53.586L 307.528,198.4
125
+ l-92.897-47.237c-83.251-13.199-145.623-64.399-145.623-73.974c0-11.018, 82.627-77.148, 184.494-77.148c 16.896,0, 33.065,2.294, 48.609,5.837L 350.956-21.76
126
+ l0,43.878 c 21.688,12.319, 51.251,27.259, 66.447,38.574l 75.407-54.241c 4.905-3.533, 8.899-1.423, 8.899,4.618c0,0-23.020,38.902-23.020,65.096
127
+ C 478.7,102.359, 501.76,143.309, 501.76,143.309 M 166.042,77.896c-12.001,0-21.699,9.841-21.699,22.047c0,12.165, 9.697,21.996, 21.699,21.996
128
+ c 11.981,0, 21.709-9.841, 21.709-21.996C 187.75,87.736, 178.033,77.896, 166.042,77.896" />
129
+ <glyph unicode="&#xe012;" d="M 492.022,108.186C 497.377,106.455, 501.76,109.64, 501.76,115.272l0,35.779 c0,5.632-3.963,12.595-8.796,15.483L 305.756,278.098
130
+ C 300.923,280.975, 296.96,287.949, 296.96,293.571L 296.96,418.56 c0,5.632-1.72,14.51-3.83,19.743c0,0-11.172,27.73-30.72,30.822C 260.321,469.494, 258.202,469.76, 256.072,469.76
131
+ C 256.051,469.76, 256.020,469.76, 256,469.76c-0.010,0-0.020,0-0.031,0c-2.468,0.020-4.905-0.287-7.301-0.737C 247.91,468.89, 247.194,468.705, 246.456,468.531
132
+ c-1.147-0.297-2.263-0.635-3.359-1.044c-16.261-5.427-24.637-29.030-24.637-29.030C 216.576,433.142, 215.040,424.192, 215.040,418.56l0-124.989
133
+ c0-5.632-3.963-12.595-8.796-15.483L 19.036,166.533C 14.203,163.645, 10.24,156.682, 10.24,151.050l0-35.779 c0-5.632, 4.383-8.817, 9.738-7.076l 185.324,60.16
134
+ C 210.657,170.086, 215.040,166.902, 215.040,161.27l0-97.618 c0-5.632-3.686-13.015-8.192-16.394l-24.576-18.452c-4.506-3.379-8.192-10.762-8.192-16.394L 174.080-11.52
135
+ c0-5.632, 4.434-8.97, 9.841-7.414l 62.208,17.869c 5.407,1.556, 14.275,1.556, 19.681,0l 62.269-17.869C 333.486-20.49, 337.92-17.152, 337.92-11.52l0,23.941
136
+ c0,5.632-3.686,13.015-8.192,16.394l-24.576,18.452c-4.495,3.379-8.192,10.762-8.192,16.394l0,97.618 c0,5.632, 4.383,8.817, 9.738,7.076L 492.022,108.186z" />
137
+ <glyph unicode="&#xe013;" d="M 355.144,215.798c-14.725,11.612-36.823,20.89-66.294,27.822L 266.24,248.955l0,96.563 c 1.004-0.44, 2.099-0.768, 3.062-1.249
138
+ C 288.492,334.551, 298.803,316.16, 300.216,295.68l 76.964,0 c-1.403,40.96-16.538,71.25-45.404,92.652C 312.596,402.555, 290.724,411.699, 266.24,416.307L 266.24,469.76 l-71.68,0 l0-51.814
139
+ c-33.147-4.096-59.433-14.766-78.735-32.113c-25.272-22.712-37.898-51.22-37.898-85.545c0-37.612, 12.913-65.26, 38.738-82.944
140
+ c 14.459-10.025, 40.52-19.333, 77.896-27.955l0-104.612 c-13.629,3.758-24.31,9.943-31.836,18.883C 155.464,112.343, 150.6,121.6, 148.122,142.080L 71.68,142.080
141
+ c0-40.96, 14.449-70.349, 43.356-93.143c 20.869-16.445, 47.432-26.44, 79.524-30.771L 194.56-21.76 l 71.68,0 l0,39.25 c 34.13,4.086, 61.686,14.981, 82.555,32.809
142
+ c 27.064,23.142, 40.602,52.224, 40.602,87.235C 389.396,171.684, 377.979,197.765, 355.144,215.798z M 170.68,275.364c-12.442,6.758-18.657,17.019-18.657,30.72
143
+ c0,14.909, 6.308,26.593, 18.924,34.908c 6.656,4.393, 14.582,7.588, 23.613,9.697l0-84.214 C 183.45,269.711, 175.432,272.681, 170.68,275.364z
144
+ M 277.944,86.876c-3.553-1.229-7.516-2.243-11.704-3.133L 266.24,172.8 c 12.339-3.656, 22.077-7.639, 29.164-11.919c 11.182-6.932, 16.783-16.794, 16.783-29.44
145
+ C 312.177,109.773, 300.759,94.853, 277.944,86.876z" />
146
+ <glyph unicode="&#xe016;" d="M 419.84,439.040L 226.068,439.040 c-15.391,20.48-40.612,38.42-69.14,38.42c-46.868,0-84.859-36.618-84.859-83.487c0-46.879, 37.99-82.299, 84.859-82.299
147
+ c 35.645,0, 66.14,24.965, 78.725,55.685l 28.211,0 l 20.449,20.46L 304.753,367.36l 12.749,0 l 20.439,20.46L 358.39,367.36l 12.739,0 l 20.449,20.46L 412.027,367.36L 419.84,367.36 l0-2.877
148
+ l-1.782-0.42l 40.346,39.547L 419.84,439.040z M 129.464,371.354c-13.558,0-24.566,11.008-24.566,24.586s 11.008,24.576, 24.566,24.576
149
+ c 13.578,0, 24.586-10.998, 24.586-24.576S 143.043,371.354, 129.464,371.354zM 440.32,172.8l-5.663,0 l-62.915,113.92C 369.029,291.645, 362.189,295.68, 356.557,295.68L 165.683,295.68 c-5.632,0-12.472-4.035-15.186-8.96L 87.572,172.8L 81.92,172.8
150
+ c-11.264,0-20.48-9.216-20.48-20.48l0-102.4 c0-11.264, 9.216-20.48, 20.48-20.48l 20.48,0 l0-30.72 c0-16.896, 13.824-30.72, 30.72-30.72l 10.24,0 c 16.896,0, 30.72,13.824, 30.72,30.72l0,30.72 l 174.080,0 l0-30.72 c0-16.896, 13.824-30.72, 30.72-30.72l 10.24,0 c 16.896,0, 30.72,13.824, 30.72,30.72l0,30.72
151
+ l 20.48,0 c 11.264,0, 20.48,9.216, 20.48,20.48L 460.8,152.32 C 460.8,163.584, 451.584,172.8, 440.32,172.8z M 117.76,90.88C 103.619,90.88, 92.16,102.339, 92.16,116.48s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6
152
+ S 131.901,90.88, 117.76,90.88z M 138.24,172.8l 41.503,82.995C 182.262,260.844, 188.928,264.96, 194.56,264.96l 133.12,0 c 5.632,0, 12.298-4.116, 14.817-9.165L 384,172.8L 138.24,172.8 z M 404.48,90.88
153
+ c-14.141,0-25.6,11.459-25.6,25.6s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6S 418.621,90.88, 404.48,90.88z" />
154
+ <glyph unicode="&#xe017;" d="M 489.298,358.318c-7.045,5.55-25.938,10.004-40.079,13.322L 430.080,374.2L 430.080,420.465 c0-0.205, 9.339,0.379, 9.8,0.154
155
+ C 449.065,415.959, 462.295,408.32, 462.981,398.080l 36.905,0 c-0.686,20.48-16.241,33.403-30.085,43.663C 460.616,448.553, 450.56,452.188, 430.080,454.39L 430.080,480 l-20.48,0 l0-24.822
156
+ c-20.48-1.966-27.095-7.066-36.342-15.391C 361.165,428.902, 355.779,415.242, 355.779,398.797c0-18.022, 5.151-31.263, 17.531-39.741
157
+ C 380.232,354.253, 389.12,349.788, 409.6,345.651l0-50.125 c-10.24,1.812-10.26,1.352-13.875,5.642C 392.243,305.326, 391.291,316.16, 390.103,316.16L 353.485,316.16
158
+ c0-20.48, 5.54-30.29, 19.405-41.216C 382.884,267.069, 389.12,265.677, 409.6,263.608L 409.6,244.48 l 20.48,0 l0,18.801 c 20.48,1.976, 37.878,7.188, 47.882,15.729
159
+ c 12.984,11.090, 23.603,25.027, 23.603,41.8C 501.555,337.172, 500.244,349.665, 489.298,358.318z M 399.544,386.847
160
+ c-5.96,3.246-8.253,8.161-8.253,14.725c0,7.148, 1.976,12.739, 8.018,16.732C 402.493,420.403, 399.36,421.929, 409.6,422.943l0-40.346
161
+ C 399.36,384.154, 401.797,385.567, 399.544,386.847z M 444.017,296.53C 442.296,295.936, 430.080,295.465, 430.080,295.045l0,42.67 c 20.48-1.761, 18.903-3.656, 22.303-5.714
162
+ c 5.335-3.318, 8.018-8.049, 8.018-14.1C 460.401,307.497, 454.922,300.36, 444.017,296.53zM 394.445,172.8l-5.663,0 l-62.915,113.92C 323.154,291.645, 316.314,295.68, 310.682,295.68L 119.798,295.68 c-5.632,0-12.472-4.035-15.186-8.96L 41.697,172.8L 36.045,172.8
163
+ C 24.771,172.8, 10.24,163.584, 10.24,152.32l0-102.4 c0-11.264, 14.531-20.48, 25.805-20.48L 51.2,29.44 l0-30.72 c0-16.896, 19.149-30.72, 36.045-30.72l 10.24,0 c 16.896,0, 25.395,13.824, 25.395,30.72l0,30.72 l 174.080,0 l0-30.72 c0-16.896, 19.139-30.72, 36.045-30.72
164
+ l 10.24,0 c 16.896,0, 25.395,13.824, 25.395,30.72l0,30.72 l 25.805,0 c 11.264,0, 15.155,9.216, 15.155,20.48L 409.6,152.32 C 409.6,163.584, 405.699,172.8, 394.445,172.8z M 71.885,90.88c-14.141,0-25.6,11.459-25.6,25.6
165
+ S 57.743,142.080, 71.885,142.080s 25.6-11.459, 25.6-25.6S 86.016,90.88, 71.885,90.88z M 92.365,172.8l 41.503,82.995C 136.376,260.844, 143.053,264.96, 148.685,264.96l 133.12,0
166
+ c 5.632,0, 12.298-4.116, 14.817-9.165L 338.125,172.8L 92.365,172.8 z M 358.605,90.88c-14.141,0-25.6,11.459-25.6,25.6s 11.459,25.6, 25.6,25.6s 25.6-11.459, 25.6-25.6
167
+ S 372.736,90.88, 358.605,90.88z" />
168
+ <glyph unicode="&#xe018;" d="M 378.88,469.76c-5.632,0-10.24-4.608-10.24-10.24l0-143.36 c0-5.632-4.608-10.24-10.24-10.24L 153.6,305.92 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,459.52 c0,5.632-4.608,10.24-10.24,10.24L 40.96,469.76 C 35.328,469.76, 30.72,465.152, 30.72,459.52l0-471.040
169
+ c0-5.632, 4.608-10.24, 10.24-10.24l 92.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 143.36,152.32 c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-163.84 c0-5.632, 4.608-10.24, 10.24-10.24l 92.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,459.52
170
+ c0,5.632-4.608,10.24-10.24,10.24L 378.88,469.76 z" />
171
+ <glyph unicode="&#xe019;" d="M 432.466,220.826c 3.553,4.372, 10.834,9.4, 16.169,11.162l 43.971,17.951C 497.644,252.467, 501.76,259.144, 501.76,264.765L 501.76,390.195
172
+ c0,5.632-4.311,11.878-9.574,13.875c0,0-91.986,34.97-153.61,34.97c-57.344,0-136.622-30.239-136.622-30.239
173
+ c-5.263-2.007-14.141-4.209-19.732-4.905L 20.408,386.509C 14.817,385.823, 10.24,380.652, 10.24,375.020l0-85.135 c0-5.632, 4.526-11.090, 10.066-12.124l 161.741-26.102
174
+ c 5.55-0.922, 14.387-3.379, 19.62-5.458l 110.766-28.334c 5.56-0.84, 11.633-5.878, 13.466-11.213l 65.116-188.017
175
+ c 1.843-5.335, 7.721-8.212, 13.056-6.42l 68.844,23.153c 5.335,1.792, 8.202,7.608, 6.359,12.943l-45.199,130.386
176
+ c-1.843,5.335-3.4,9.994-3.471,10.373c0,0,0,0-0.082,0.389C 425.103,211.722, 432.466,220.826, 432.466,220.826z M 353.884,288.502
177
+ c-25.702,0-46.459,20.48-46.459,45.722c0,25.252, 20.756,45.722, 46.459,45.722c 25.62,0, 46.438-20.48, 46.438-45.722
178
+ C 400.323,308.982, 379.505,288.502, 353.884,288.502z" />
179
+ <glyph unicode="&#xe01a;" d="M 183.931,20.49c 3.83-4.127, 3.604-10.66-0.512-14.5l-22.241-20.797c-4.116-3.84-10.619-3.615-14.449,0.522L 17.203,125.307
180
+ c-3.83,4.127-3.594,10.65, 0.522,14.5l 22.272,20.767c 4.116,3.85, 10.619,3.615, 14.449-0.522L 183.931,20.49zM 349.204,283.146c 3.83-4.127, 3.594-10.66-0.522-14.5L 208.701,137.882c-4.116-3.84-10.619-3.615-14.449,0.522l-33.413,36.055
181
+ c-3.83,4.127-3.594,10.66, 0.522,14.5l 139.95,130.765c 4.106,3.84, 10.609,3.615, 14.438-0.522L 349.204,283.146zM 231.557,65.004c 3.83-4.127, 3.594-10.65-0.522-14.5l-22.272-20.787c-4.116-3.85-10.619-3.615-14.449,0.522L 64.86,169.83
182
+ c-3.83,4.127-3.604,10.66, 0.512,14.5l 22.231,20.777c 4.116,3.84, 10.619,3.615, 14.449-0.522L 231.557,65.004zM 447.242,278.139c 3.83-4.127, 3.594-10.66-0.532-14.5l-22.262-20.787c-4.116-3.84-10.619-3.615-14.459,0.512L 280.515,382.925
183
+ c-3.84,4.127-3.604,10.65, 0.512,14.5l 22.323,20.838c 4.106,3.84, 10.609,3.615, 14.438-0.522L 447.242,278.139zM 494.797,322.58c 3.83-4.127, 3.594-10.66-0.522-14.51l-22.221-20.777c-4.106-3.85-10.609-3.615-14.438,0.512L 328.161,427.428
184
+ c-3.83,4.127-3.604,10.66, 0.512,14.51l 22.241,20.818c 4.106,3.85, 10.598,3.625, 14.428-0.512L 494.797,322.58z" />
185
+ <glyph unicode="&#xe01b;" d="M 409.6,49.92A40.96,40.96 180 1 1 491.52,49.920000000000016A40.96,40.96 180 1 1 409.6,49.920000000000016zM 112.64,49.92A40.96,40.96 180 1 1 194.56,49.920000000000016A40.96,40.96 180 1 1 112.64,49.920000000000016zM 481.28,142.080L 161.495,142.080 l 6.83,11.080c 2.929,4.751, 3.789,10.496, 2.386,15.903l-6.666,25.661l 296.786,15.421C 472.084,210.719, 481.28,220.416, 481.28,231.68
186
+ L 481.28,367.36 c0,11.264-9.216,20.48-20.48,20.48L 113.859,387.84 l-4.004,15.391C 107.51,412.262, 99.359,418.56, 90.030,418.56L 20.48,418.56 C 9.175,418.56,0,409.385,0,398.080s 9.175-20.48, 20.48-20.48l 53.719,0 l 54.682-210.381
187
+ l-21.504-34.867c-3.891-6.318-4.065-14.254-0.44-20.726C 110.541,105.144, 117.381,101.12, 124.805,101.12L 481.28,101.12 c 11.305,0, 20.48,9.175, 20.48,20.48S 492.585,142.080, 481.28,142.080z" />
188
+ <glyph unicode="&#xe01c;" d="M 363.356,326.052c-2.54,0-4.956,1.71-4.956,4.209l0,63.283 C 358.4,396.042, 357.028,398.080, 354.478,398.080L 157.512,398.080 C 154.962,398.080, 153.6,396.042, 153.6,393.544
189
+ l0-63.283 C 153.6,327.762, 150.845,326.4, 148.285,326.4L 14.838,326.4 C 12.319,326.4, 10.24,323.666, 10.24,321.198l0-70.349 C 10.24,248.371, 12.319,244.48, 14.838,244.48l 214.897,0
190
+ C 232.284,244.48, 235.52,248.371, 235.52,250.849l0,15.002 C 235.52,268.349, 236.462,275.2, 239.002,275.2l 34.007,0 C 275.548,275.2, 276.48,268.349, 276.48,265.851l0-15.002
191
+ C 276.48,248.371, 279.716,244.48, 282.245,244.48l 214.886,0 C 499.692,244.48, 501.76,248.371, 501.76,250.849l0,70.349 C 501.76,323.676, 499.692,326.4, 497.142,326.4L 363.704,326.4 L 363.356,326.052z
192
+ M 185.272,326.4C 182.733,326.4, 184.32,327.762, 184.32,330.25l0,35.973 C 184.32,368.732, 182.733,367.36, 185.272,367.36l 141.455,0 C 329.267,367.36, 327.68,368.732, 327.68,366.223l0-35.973
193
+ C 327.68,327.762, 329.267,326.4, 326.728,326.4L 185.272,326.4 zM 277.043,175.749c0-2.478-1.495-2.949-4.035-2.949L 239.002,172.8 C 236.462,172.8, 235.52,171.704, 235.52,174.182l0,50.565
194
+ C 235.52,227.226, 232.284,234.24, 229.745,234.24L 14.838,234.24 C 12.319,234.24, 10.24,227.226, 10.24,224.748l0-149.801 C 10.24,72.458, 12.319,70.4, 14.838,70.4l 482.304,0
195
+ C 499.692,70.4, 501.76,72.458, 501.76,74.936L 501.76,224.748 C 501.76,227.226, 499.692,234.24, 497.142,234.24L 282.245,234.24 C 279.716,234.24, 276.48,227.226, 276.48,224.748l0-50.565 L 277.043,175.749z
196
+ " />
197
+ <glyph unicode="&#xe01d;" d="M 402.964,305.92L 106.496,305.92 C 53.555,305.92, 10.24,268.646, 10.24,218.88c0-49.766, 43.315-87.040, 96.256-87.040l 296.468,0 c 52.92,0, 96.236,37.284, 96.236,87.040
198
+ C 499.2,268.646, 455.885,305.92, 402.964,305.92z M 402.995,152.32L 256,152.32 L 256,285.44 l 146.995,0 c 39.035,0, 71.004-29.85, 71.004-66.56S 442.040,152.32, 402.995,152.32z" />
199
+ <glyph unicode="&#xe01e;" d="M 317.44,223.98c-33.884,0-61.399-27.494-61.399-61.42c0-33.956, 27.525-61.44, 61.399-61.44c 33.894,0, 61.42,27.484, 61.42,61.44
200
+ C 378.86,196.475, 351.334,223.98, 317.44,223.98zM 440.33,346.911L 389.734,448.973C 385.649,461.076, 374.19,469.76, 360.663,469.76l-84.388,0 c-13.763,0-25.242-8.929-29.225-21.248L 194.632,346.88L 71.67,346.88
201
+ C 37.796,346.88, 10.24,319.355, 10.24,285.43L 10.24-21.76 l 491.52,0 L 501.76,285.43 C 501.76,319.355, 474.225,346.911, 440.33,346.911z M 102.4,223.98c-16.998,0-30.73,13.742-30.73,30.7
202
+ c0,17.019, 13.742,30.751, 30.73,30.751s 30.71-13.732, 30.71-30.751C 133.11,237.722, 119.398,223.98, 102.4,223.98z M 317.44,39.619
203
+ c-67.84,0-122.89,55.060-122.89,122.941c0,67.85, 55.040,122.87, 122.89,122.87c 67.85,0, 122.89-55.009, 122.89-122.87
204
+ C 440.33,94.679, 385.29,39.619, 317.44,39.619z" />
205
+ <glyph unicode="&#xe01f;" d="M 126.29,254.72L 153.6,254.72 l0-163.84 l 40.96,0 L 194.56,234.24 l 40.96,0 l0-143.36 l 40.96,0 L 276.48,234.24 l 40.96,0 l0-143.36 l 40.96,0 L 358.4,254.72 l 27.3,0 C 393.236,254.72, 399.36,262.257, 399.36,269.046c0,4.106-2.263,8.735-5.683,10.967
206
+ l 0.020,0.532l-0.215,0.379c-0.123,0.072, 1.475,0.266, 1.372,0.338L 266.24,347.505l0,19.374 c 20.48-10.844, 40.458,7.834, 71.68-3.4L 337.92,406.272
207
+ c-31.242,11.223-51.2-7.444-71.68,3.4L 266.24,412.416 C 266.24,415.805, 259.779,418.56, 256,418.56s-10.24-2.755-10.24-6.144l0-64.911 l-128.604-66.109
208
+ c-0.123-0.061, 2.898-0.133, 2.775-0.215L 122.88,281.068l0-0.020 c-10.24-2.232-7.946-7.885-7.946-11.991C 114.924,262.257, 118.753,254.72, 126.29,254.72zM 143.36,80.64L 112.64,49.92L 399.36,49.92L 368.64,80.64 zM 368.64,244.48l0-153.6 l 9.062,0 l 4.004-5.663l 27.3-25.59L 418.662,49.92L 501.76,49.92 L 501.76,244.48 L 368.64,244.48 z M 430.080,121.6l-30.72,0 l0,30.72 l 30.72,0 L 430.080,121.6 z M 430.080,183.040l-30.72,0 l0,30.72 l 30.72,0 L 430.080,183.040 z M 471.040,121.6l-20.48,0 l0,30.72 l 20.48,0 L 471.040,121.6 z
209
+ M 471.040,183.040l-20.48,0 l0,30.72 l 20.48,0 L 471.040,183.040 zM 134.287,90.88L 143.36,90.88 L 143.36,244.48 L 10.24,244.48 l0-194.56 l 83.087,0 l 9.646,8.684l 27.31,26.624L 134.287,90.88z M 61.44,121.6L 40.96,121.6 l0,30.72 l 20.48,0 L 61.44,121.6 L 61.44,121.6z M 61.44,183.040L 40.96,183.040 l0,30.72 l 20.48,0 L 61.44,183.040 L 61.44,183.040z M 112.64,121.6L 81.92,121.6 l0,30.72 l 30.72,0
210
+ L 112.64,121.6 z M 112.64,183.040L 81.92,183.040 l0,30.72 l 30.72,0 L 112.64,183.040 z" />
211
+ <glyph unicode="&#xe020;" d="M 296.95,433.736C 222.218,433.736, 163.84,374.559, 163.84,301.548l0-211.005 L 163.84-11.52 l 51.2,0 L 215.040,90.88 l 163.84,0 l0-102.4 l 51.2,0 l0,102.062 L 430.080,301.548 C 430.080,374.559, 371.712,433.736, 296.95,433.736z
212
+ M 40.96,459.52l 75.407-122.88l 7.864,0 C 129.004,387.84, 163.84,429.865, 215.040,448.84L 215.040,459.52 L 40.96,459.52 z" />
213
+ <glyph unicode="&#xe021;" d="M 501.76,305.92c0,5.632-4.608,10.24-10.24,10.24L 358.4,316.16 c-5.632,0-10.24,4.608-10.24,10.24L 348.16,459.52 c0,5.632-4.608,10.24-10.24,10.24L 174.080,469.76 c-5.632,0-10.24-4.608-10.24-10.24l0-133.12 c0-5.632-4.608-10.24-10.24-10.24L 20.48,316.16
214
+ c-5.632,0-10.24-4.608-10.24-10.24l0-163.84 c0-5.632, 4.608-10.24, 10.24-10.24l 133.12,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-133.12 c0-5.632, 4.608-10.24, 10.24-10.24l 163.84,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 348.16,121.6 c0,5.632, 4.608,10.24, 10.24,10.24l 133.12,0
215
+ c 5.632,0, 10.24,4.608, 10.24,10.24L 501.76,305.92 z" />
216
+ <glyph unicode="&#xe022;" d="M 30.116,398.080c-30.116,0-15.053-7.977,0-20.214L 256,205.947l 225.884,171.387c 15.073,12.237, 30.116,20.746,0,20.746
217
+ L 240.937,398.080 L 30.116,398.080 z M0,357.673l0-253.215 c0-14.899, 15.237-34.058, 27.29-34.058l 457.421,0 c 12.063,0, 27.29,19.159, 27.29,34.058l0,253.215 l-256-195.328
218
+ L0,357.673z" />
219
+ <glyph unicode="&#xe023;" d="M 112.64,60.16c0-5.632, 4.608-10.24, 10.24-10.24l 348.16,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,357.12 c0,5.632-4.608,10.24-10.24,10.24L 122.88,367.36 c-5.632,0-10.24-4.608-10.24-10.24L 112.64,60.16 z M 289.751,319.939
220
+ c 4.28,3.666, 11.254,3.625, 15.493-0.072l 113.787-99.369C 423.27,216.791, 422.134,213.76, 416.502,213.76L 409.6,213.76 c-5.632,0-10.24-4.608-10.24-10.24l0-112.64
221
+ c0-5.632-4.608-10.24-10.24-10.24l-51.2,0 c-5.632,0-10.24,4.608-10.24,10.24l0,81.92 c0,5.632-4.608,10.24-10.24,10.24l-40.96,0 c-5.632,0-10.24-4.608-10.24-10.24l0-81.92 c0-5.632-4.608-10.24-10.24-10.24l-51.2,0 c-5.632,0-10.24,4.608-10.24,10.24
222
+ L 194.56,203.52 c0,5.632-4.608,10.24-10.24,10.24l-8.417,0 c-5.632,0-6.738,2.99-2.458,6.656L 289.751,319.939zM 102.4,418.56C 96.768,418.56, 92.16,423.168, 92.16,428.8L 92.16,459.52 c0,5.632-4.608,10.24-10.24,10.24L 40.96,469.76 C 35.328,469.76, 30.72,465.152, 30.72,459.52l0-471.040 c0-5.632, 4.608-10.24, 10.24-10.24l 40.96,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 92.16,377.6
223
+ c0,5.632, 4.608,10.24, 10.24,10.24l 368.64,0 c 5.632,0, 10.24,4.608, 10.24,10.24L 481.28,408.32 c0,5.632-4.608,10.24-10.24,10.24L 102.4,418.56 z" />
224
+ <glyph unicode="&#xe024;" d="M 281.692,381.911c 6.195-5.673, 12.063-11.028, 16.466-17.756l 2.447-3.738l 4.045,1.925c 11.244,5.376, 18.913,13.978, 26.327,22.292
225
+ c 5.591,6.267, 10.875,12.196, 17.5,16.65l 4.116,2.775l-2.652,4.209c-11.54,18.309-26.593,33.546-44.728,45.302l-3.799,2.468l-2.908-3.482
226
+ c-11.407-13.67-24.033-26.45-37.519-37.98l-2.959-2.54l 1.659-3.533C 265.011,397.169, 273.49,389.417, 281.692,381.911zM 347.546,304.425c 38.492,0, 70.011,15.729, 88.75,44.298l 2.232,3.4l-2.796,2.949c-3.256,3.42-6.369,6.994-9.482,10.568
227
+ c-9.288,10.66-18.903,21.678-32.44,28.989l-4.721,2.55L 386.765,392.325c-15.831-32.973-46.479-39.895-69.396-39.895
228
+ c-40.172,0-88.453,22.415-109.916,51.046l-16.896,22.538l 7.895-27.044C 213.125,348.6, 282.808,304.425, 347.546,304.425zM 214.712,216.023c 15.995,30.433, 16.66,66.068, 1.69,98.376c-14.766,31.887-42.097,54.364-73.093,60.16
229
+ c-6.564,1.229-13.036,1.833-19.241,1.833c-37.642,0-62.28-21.975-86.098-43.213c-8.673-7.731-16.865-15.084-25.61-21.32l-6.113-4.465
230
+ l 6.287-4.311c 2.007-1.3, 7.055-8.97, 11.121-14.807C 36.557,269.742, 47.309,254.72, 58.737,254.72c0,0, 0.010,0, 0.010,0
231
+ c 4.024,0, 7.782,4.772, 20.879,19.497c 5.519,6.195, 11.766,14.070, 15.114,16.722c 14.971,11.889, 35.492,28.17, 57.907,28.17
232
+ c 3.021,0, 6.062-0.297, 9.021-0.891c 10.373-2.079, 16.64-6.881, 19.149-14.694c 5.14-16.005-6.666-40.54-16.794-51.374
233
+ c-5.11-5.478-10.701-9.421-16.63-13.599c-8.499-5.99-17.285-12.196-24.545-23.101l-2.355-3.543l 3.062-2.97
234
+ c 4.424-4.28, 8.817-8.581, 13.21-12.882c 11.366-11.131, 23.122-22.641, 35.185-33.516l 4.045-3.645l 3.4,4.26
235
+ c 7.649,9.595, 15.718,19.804, 23.634,30.239c 2.13-3.164, 4.393-6.4, 6.717-9.718c 17.459-24.965, 37.253-53.258, 24.34-90.235
236
+ c-9.615-27.556-42.086-45.496-78.664-42.865c-43.254,3.031-81.756,39.956-117.729,112.886c-2.243,4.557-4.086,9.667-5.868,14.612
237
+ c-4.168,11.571-8.489,23.532-18.545,30.966l-10.086,7.455l 1.987-12.38c 10.557-65.864, 41.503-129.423, 82.79-170.025
238
+ c 24.975-24.596, 65.956-40.489, 104.397-40.489c 44.411,0, 91.996,23.081, 92.324,87.859c 0.287,60.672-37.181,100.076-67.297,131.738L 214.712,216.023zM 494.971,271.657c-11.93,22.19-56.781,38.369-79.278,33.444c-34.079-7.434-57.969-26.716-79.053-43.735
239
+ c-21.576-17.428-40.223-32.471-65.106-32.471c-7.475,0-15.124,1.331-23.378,4.055l-13.107,4.332l 7.107-11.827
240
+ c 16.323-27.167, 35.379-40.376, 58.255-40.376c 18.586,0.010, 37.612,8.919, 56.463,20.46l 4.229-12.534c 9.574-28.355, 51.251-70.41, 89.19-70.41
241
+ c 0.758,0, 1.516,0.020, 2.273,0.061c 16.558,0.737, 30.382,10.066, 39.987,27.003C 512.236,184.34, 510.013,243.722, 494.971,271.657z M 382.935,222.648
242
+ c 27.976,19.016, 57.364,38.543, 81.439,34.294c 10.476-18.207, 6.195-33.884, 0.625-43.96c-10.629-19.18-33.915-32.584-56.648-32.584
243
+ c-10.711,0-26.081,3.052-38.492,17.572l-8.735,10.209C 368.425,212.797, 375.706,217.743, 382.935,222.648z" />
244
+ <glyph unicode="&#xe025;" d="M 225.28,460.216L 225.28,346.88 l-20.48,0 L 204.8,459.52 c0,5.652-4.588,10.24-10.24,10.24s-10.24-4.588-10.24-10.24l0-112.64 l-20.48,0 L 163.84,459.889 c0,13.179-20.48,12.728-20.48,0.338L 143.36,346.88 l-20.48,0 L 122.88,459.418
245
+ c0,13.957-20.48,13.445-20.48,0.553l0-148.193 c0-21.371, 20.48-35.461, 40.96-35.461L 143.36,8.96 c0-40.96, 61.44-40.96, 61.44,0L 204.8,276.306 c 20.48,0, 40.96,17.019, 40.96,33.044L 245.76,459.889
246
+ C 245.76,472.945, 225.28,472.443, 225.28,460.216zM 317.44,428.8l0-256 l 20.48,0 l0-163.84 c0-40.96, 71.68-40.96, 71.68,0L 409.6,428.8 C 409.6,480, 317.44,480, 317.44,428.8z" />
247
+ <glyph unicode="&#xe026;" d="M 337.029,152.32l-60.508,166.267c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393
248
+ c 2.161,0, 3.973-1.444, 4.454-3.369L 326.339,213.76c 2.734-6.154, 13.978-10.24, 21.371-10.24c 9.882,0, 10.906,19.405, 10.691,20.48l-41.134,106.056
249
+ C 313.692,353.823, 289.69,377.6, 262.298,377.6L 208.691,377.6 c-27.392,0-53.176-23.777-56.75-47.544L 112.65,224c-0.891-2.038,0-20.48, 10.68-20.48
250
+ c 8.305,0, 19.354,2.898, 21.371,10.24l 39.68,108.022c 0.635,1.7, 2.335,2.908, 4.311,2.908c 2.529,0, 4.567-1.966, 4.567-4.383
251
+ c0-0.553-0.092-1.085-0.287-1.567L 134.021,152.32c-0.113-0.492,0-9.738,0-10.24c0-3.543, 8.55-10.24, 12.268-10.24L 184.32,131.84 l0-134.093
252
+ C 184.32-12.902, 193.7-21.76, 204.8-21.76c 11.1,0, 20.48,8.868, 20.48,19.507L 225.28,131.932 c0,2.898, 20.48,2.806, 20.48-0.092l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48c 11.121,0, 20.48,9.841, 20.48,20.48L 286.72,131.84
253
+ l 39.619,0 c 3.707,0, 10.691,6.697, 10.691,10.24C 337.029,142.899, 337.326,151.613, 337.029,152.32zM 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64z" />
254
+ <glyph unicode="&#xe027;" d="M 184.32-1.28c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 225.28,193.28 l 20.48,0 l0-194.56 c0-12.605, 7.854-20.48, 20.48-20.48c 12.626,0, 20.48,7.854, 20.48,20.48L 286.72,326.4 l 10.24,0 l0-120.975
255
+ c0-24.525, 30.781-24.525, 30.72,0L 327.68,329.871 C 327.68,356.966, 308.163,377.6, 276.48,377.6l-81.92,0 c-28.877,0-51.2-17.603-51.2-46.971L 143.36,203.52 c0-20.48, 30.72-20.48, 30.72,0L 174.080,326.4 l 10.24,0 L 184.32-1.28 zM 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64z" />
256
+ <glyph unicode="&#xe028;" d="M 470.303,183.562l-1.116,3.011c-3.502,9.441-7.834,21.176-18.934,27.822c-7.731,4.628-16.722,6.236-24.648,7.649
257
+ c-4.076,0.727-7.936,1.434-11.244,2.437c-0.973,0.287-1.935,0.655-2.908,1.024c-0.154,0.051-0.307,0.092-0.461,0.154
258
+ c-31.826,25.559-96.266,26.255-136.407,62.403C 217.057,339.835, 170.885,391.895, 118.958,469.76L 54.077,417.843c-4.506-3.604-13.107-6.492-13.107-19.466
259
+ c0-6.482, 6.595-7.475, 14.367-5.069l 36.598,11.561L 194.56,262.083c0-25.958,0-53.688,0-77.885c0-18.022-0.297-34.427, 14.991-43.745L 171.008-21.76l 25.958,0
260
+ l 24.392,77.025L 245.76,93.358l0-38.943 L 245.76-21.76 l 30.72,0 L 276.48,106.322 c0,0-0.358,25.958, 25.6,25.958s 25.6-25.958, 25.6-25.958l0-90.839 L 327.68-21.76 l 20.48,0 L 348.16,80.64 l 56.484-102.4l 25.958,0
261
+ C 417.618,19.2, 399.36,15.483, 399.36,54.415l0,25.958 c0,27.218, 30.72,51.917, 30.72,77.875l0,25.938 c0,6.164-0.799,11.622-2.202,16.558
262
+ c 4.526-0.922, 8.684-2.038, 11.848-3.942c 4.905-2.939, 7.619-10.271, 10.24-17.357l 1.188-3.195c 2.017-5.274, 7.926-7.926, 13.21-5.919l 0.010,0.010
263
+ C 469.668,172.37, 472.32,178.278, 470.303,183.562z" />
264
+ <glyph unicode="&#xe029;" d="M 189.235,286.72c 23.859,4.055, 41.554,25.784, 44.247,51.743c 2.734,26.399, 8.899,132.485-30.925,125.737
265
+ C 99.256,446.679, 106.506,272.691, 189.235,286.72zM 325.151,286.72c 82.708-14.029, 89.958,159.959-13.343,177.49c-39.813,6.748-33.659-99.338-30.935-125.737
266
+ C 283.576,312.504, 301.292,290.775, 325.151,286.72zM 146.801,204.749c0,13.804-4.925,26.317-12.861,35.42c-13.056,17.060-54.559,51.558-64.748,42.721C 47.923,264.397, 48.609,218.88, 61.42,185.805
267
+ c 6.584-18.391, 22.487-31.324, 41.073-31.324C 126.956,154.481, 146.801,176.988, 146.801,204.749zM 445.164,282.89c-10.168,8.837-51.671-25.661-64.727-42.721c-7.936-9.103-12.872-21.617-12.872-35.42
268
+ c0-27.761, 19.866-50.268, 44.308-50.268c 18.596,0, 34.509,12.933, 41.093,31.324C 465.746,218.88, 466.452,264.397, 445.164,282.89zM 361.851,126.454c-37.642,18.77-36.475,54.917-45.036,87.9c-6.81,26.307-30.925,45.763-59.628,45.763
269
+ c-28.088,0-51.784-18.647-59.177-44.155c-9.165-31.56-3.645-68.301-44.677-89.262c-33.331-10.865-46.828-26.716-46.828-64.205
270
+ c0-30.454, 26.143-63.058, 59.884-67.113c 37.642-5.673, 67.011,1.741, 90.798,15.299c 23.788-13.558, 53.135-20.961, 90.839-15.299
271
+ c 33.72,4.055, 59.873,36.536, 59.873,67.113C 407.89,100.803, 395.254,115.077, 361.851,126.454z M 317.44,80.64l-39.025,0 l 0.051-40.96l-42.557,0 l 0.061,40.96L 194.56,80.64 l0,40.96
272
+ l 41.421,0 l-0.061,40.96l 42.557,0 l-0.051-40.96L 317.44,121.6 L 317.44,80.64 z" />
273
+ <glyph unicode="&#xe02a;" d="M 219.484,401.265L 194.56,367.36l-58.204,0 c 7.178-20.48, 30.679-39.793, 63.498-33.382c 9.728,0.655, 42.547,5.868, 56.146,2.662
274
+ c 18.104-4.342, 10.557-4.362, 43.018-30.413L 460.8,172.8c 9.912-8.755, 22.589-5.171, 31.365,4.721C 500.941,187.433, 501.432,205.005, 491.52,213.76L 286.72,377.6
275
+ c-12.82,10.291-16.056,24.545-20.48,40.96c-8.602,28.211-40.233,50.842-71.281,50.842C 169.943,469.402, 143.022,447.764, 133.12,428.8l 61.44,0 L 219.484,401.265zM 359.977,152.32L 359.977,152.32l-63.304,109.875C 294.175,266.752, 287.857,275.2, 282.665,275.2L 106.455,275.2 c-5.192,0-11.51-8.448-14.019-13.005L 30.72,152.32L 29.143,152.32
276
+ C 18.749,152.32, 10.24,148.541, 10.24,138.138l0-94.515 C 10.24,33.219, 18.749,29.44, 29.143,29.44L 51.2,29.44 l0-33.075 C 51.2-19.241, 60.805-32, 76.401-32l 9.452,0
277
+ C 101.458-32, 112.64-19.241, 112.64-3.635L 112.64,29.44 l 163.84,0 l0-33.075 c0-15.596, 11.182-28.365, 26.778-28.365l 9.452,0 C 328.315-32, 337.92-19.241, 337.92-3.635L 337.92,29.44 l 22.057,0
278
+ C 370.371,29.44, 378.88,33.219, 378.88,43.622l0,94.515 C 378.88,148.541, 370.371,152.32, 359.977,152.32z M 62.228,81.428c-13.056,0-23.634,10.578-23.634,23.634
279
+ s 10.578,23.634, 23.634,23.634c 13.046,0, 23.634-10.578, 23.634-23.634S 75.284,81.428, 62.228,81.428z M 81.132,152.32l 38.308,80.159
280
+ C 121.764,237.128, 127.928,244.48, 133.12,244.48l 122.88,0 c 5.192,0, 11.346-7.352, 13.681-12.001L 307.988,152.32L 81.132,152.32 z M 326.892,81.428
281
+ c-13.046,0-23.634,10.578-23.634,23.634s 10.578,23.634, 23.634,23.634s 23.634-10.578, 23.634-23.634S 339.937,81.428, 326.892,81.428zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" />
282
+ <glyph unicode="&#xe02b;" d="M 255.99,199.619c-55.357,0-102.39-16.097-133.11-41.329L 122.88,111.36 l 266.24,0 l0,46.93 C 358.4,183.521, 311.357,199.619, 255.99,199.619zM 500.429,223.703L 255.345,336.64L 10.363,223.703L 51.2,205.015l0-28.744 c-10.24-2.12-10.271-7.485-10.271-13.865c0-3.768, 1.249-8.182, 3.625-10.824
283
+ L 30.546,121.6l 49.971,0 l-13.885,30.003c 2.335,2.642, 4.25,6.533, 4.25,10.301C 70.881,168.274, 61.44,174.162, 61.44,176.282l0,23.931 l 51.2-22.999L 112.64,179.251
284
+ c 30.72,26.716, 84.695,43.674, 143.34,43.674C 314.644,222.925, 368.64,205.967, 399.36,179.251l0-2.038 L 500.429,223.703z" />
285
+ <glyph unicode="&#xe02c;" d="M 471.040,336.64L 348.16,336.64 l0,40.714 C 348.16,406.548, 329.308,439.040, 300.145,439.040l-98.222,0 C 172.728,439.040, 153.6,406.548, 153.6,377.354L 153.6,336.64 L 40.96,336.64 c-11.264,0-20.48-9.216-20.48-20.48l0-296.96 c0-11.264, 9.216-20.48, 20.48-20.48
286
+ l 430.080,0 c 11.264,0, 20.48,9.216, 20.48,20.48L 491.52,316.16 C 491.52,327.424, 482.304,336.64, 471.040,336.64z M 307.2,29.44L 194.56,29.44 l0,10.926 c0,0.236, 6.277,0.543, 9.277,0.901s 5.632,0.963, 7.793,1.802
287
+ c 3.84,1.444, 8.141,3.512, 9.708,6.205S 225.28,55.552, 225.28,59.986l0,104.755 c0,4.198-2.54,7.895-4.465,11.069s-5.11,5.734-7.987,7.649
288
+ c-2.161,1.444-3.676,2.816-8.059,4.137S 194.56,189.768, 194.56,190.126l0,13.138 l 83.712,4.68L 276.48,205.251l0-142.92 c0-4.198, 3.236-7.772, 5.038-10.711
289
+ s 5.55-5.13, 8.909-6.574c 2.396-1.075, 4.966-2.038, 7.854-2.877S 307.2,40.735, 307.2,40.366L 307.2,29.44 z M 211.139,272.753
290
+ c0,9.124, 3.512,16.916, 10.527,23.398s 15.391,9.718, 25.108,9.718s 18.063-3.236, 25.016-9.718s 10.445-14.285, 10.445-23.398s-3.512-16.886-10.527-23.306
291
+ s-15.329-9.626-24.934-9.626c-9.718,0-18.094,3.205-25.108,9.626S 211.139,263.629, 211.139,272.753z M 317.44,336.64L 184.32,336.64 l0,40.714 C 184.32,388.28, 195.379,408.32, 206.305,408.32
292
+ l 82.452,0 C 299.663,408.32, 317.44,388.28, 317.44,377.354L 317.44,336.64 z" />
293
+ <glyph unicode="&#xe02d;" d="M 212.132,234.24L 32.348,234.24 c-5.243,0-9.554,3.215-9.554,8.346c0,0.85, 0.154,1.178, 0.328,1.946l 9.574,61.501
294
+ C 33.495,310.374, 37.396,305.92, 42.086,305.92l 160.328,0 c 4.649,0, 8.581,4.219, 9.37-0.123l 9.585-65.526c 0.154-0.788, 0.338,1.27, 0.338,0.389
295
+ C 221.706,235.571, 217.364,234.24, 212.132,234.24z M 204.933,156.733c-10.107,0-18.34,7.997-18.34,17.92c0,9.871, 8.223,17.818, 18.34,17.818
296
+ c 10.056,0, 18.278-7.946, 18.278-17.818C 223.212,164.731, 214.999,156.733, 204.933,156.733z M 39.281,156.733c-10.025,0-18.248,7.997-18.248,17.92
297
+ c0,9.871, 8.212,17.818, 18.248,17.818c 10.168,0, 18.371-7.946, 18.371-17.818C 57.651,164.731, 49.449,156.733, 39.281,156.733z M 61.44,357.12l 112.64,0 l0-30.72 L 61.44,326.4
298
+ C 51.2,326.4, 51.2,357.12, 61.44,357.12z M 232.428,329.441c-3.267,15.79-14.459,22.139-30.095,28.498c-15.606,6.339-52.562,13.926-79.749,13.926
299
+ c-27.3,0-64.051-7.598-79.657-13.926c-15.616-6.359-26.982-12.708-30.249-28.498L0,241.521L0,121.6 l 18.278,0 l0,0c0-51.2, 34.417-51.2, 34.417,0l0,0l 137.636,0 l0,0
300
+ c0-51.2, 34.406-51.2, 34.406,0l0,0L 245.76,121.6 L 245.76,241.521 L 232.428,329.441zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 458.332,120.637c0,0.256-0.276,0.666-0.819,1.485c0,0.236, 0.154,0.41, 0.41,0.563c 0.246,0.154, 0.41,0.276, 0.41,0.563
301
+ c 7.66,3.164, 14.633,7.066, 20.869,11.684c 6.216,4.669, 9.503,11.469, 11.663,20.47C 491.080,156.447, 491.52,158.884, 491.52,162.601L 491.52,348.713
302
+ c0,4.495-0.44,9.155-3.082,13.885c-2.662,4.823-5.519,9.134-9.523,12.964c-3.963,3.789-9.697,7.014-14.633,9.554
303
+ C 460.012,387.308, 450.56,388.475, 450.56,388.751L 450.56,387.84 l 1.382,0 L 318.74,387.84 L 317.44,387.84 L 317.44,388.577 c-10.24-0.471-7.741-1.536-11.284-3.256c-4.915-2.396-10.025-5.448-14.121-9.165
304
+ c-4.096-3.686-8.202-7.875-10.854-12.493C 278.528,358.963, 276.48,354.427, 276.48,349.88l0-188.887 c0-3.174, 1.26-6.492, 2.796-9.943
305
+ c 1.618-3.451, 3.809-6.676, 6.185-9.697c 2.376-3.113, 5.1-5.888, 7.895-8.387c 2.775-2.509, 5.55-4.577, 8.212-6.164
306
+ c 1.28-0.543, 3.656-1.362, 7.004-2.417c 3.256-1.055, 4.813-1.638, 4.567-2.161L 258.642,39.68l 31.805,0 l 39.793,61.44l 109.793,0 l 39.752-61.44L 512,39.68 L 458.332,120.637z
307
+ M 366.152,377.6l 36.465,0 c 8.018,0, 14.592-2.212, 14.592-10.24c0-8.018-6.574-10.24-14.592-10.24l-36.465,0 c-8.028,0-14.592,2.222-14.592,10.24
308
+ C 351.56,375.388, 358.124,377.6, 366.152,377.6z M 460.8,283.894C 460.8,267.776, 447.744,254.72, 431.626,254.72L 326.134,254.72 C 310.016,254.72, 296.96,267.776, 296.96,283.894l0,23.583
309
+ C 296.96,323.584, 310.016,336.64, 326.134,336.64l 105.503,0 C 447.744,336.64, 460.8,323.584, 460.8,307.466L 460.8,283.894 z M 339.21,154.225c-4.106-4.239-9.247-6.349-15.309-6.349
310
+ c-6.113,0-11.090,2.109-14.961,6.349c-3.83,4.229-5.755,9.441-5.755,15.544c0,5.56, 1.997,10.394, 5.99,14.49
311
+ c 3.963,4.116, 8.878,6.195, 14.725,6.195c 6.062,0, 11.203-1.966, 15.309-5.755c 4.106-3.891, 6.164-8.94, 6.164-15.36
312
+ C 345.375,163.502, 343.316,158.454, 339.21,154.225z M 430.295,154.225c-4.106,4.229-6.185,9.441-6.185,15.544c0,6.113, 2.181,11.049, 6.574,14.94
313
+ c 4.393,3.779, 9.492,5.755, 15.34,5.755c 6.052,0, 11.049-2.079, 14.899-6.195c 3.83-4.096, 5.775-8.929, 5.775-14.49
314
+ c0-6.103-2.007-11.305-5.98-15.544c-4.004-4.239-9.021-6.349-15.145-6.349C 439.491,147.866, 434.391,149.975, 430.295,154.225z" />
315
+ <glyph unicode="&#xe02e;" d="M 356.157,411.761L 284.979,411.761 c-12.861-0.041-12.38-19.21,0-19.098l 71.178,0 l0-9.8 L 284.979,382.863 c-12.79,0.113-12.319-19.046,0-19.098l 71.178,0 l0-9.544
316
+ l0-0.471 L 284.979,353.751 c-12.79,0-12.319-19.149,0-19.098l 71.178,0 l0-9.544 L 284.979,325.11 c-12.524-0.092-12.319-19.261,0-19.323l 71.178,0 l0-9.564 L 284.979,296.223
317
+ c-12.524,0.041-12.575-19.098,0-19.098l 71.178,0 l0-9.544 L 284.979,267.581 c-12.524-0.041-12.575-19.2,0-19.108l 71.178,0 l0-9.779 L 284.979,238.694
318
+ c-12.524,0.113-12.575-19.026,0-19.098l 71.178,0 l0-9.523 L 284.979,210.074 c-12.524,0.010-12.319-19.169,0-19.108l 71.178,0 l0-185.948
319
+ c 0.041-28.334, 43.080-27.822, 43.203,0L 399.36,440.166 c-0.123,12.943-10.752,29.307-28.242,29.358L 284.979,469.524 c-12.861-0.010-12.38-19.18,0-19.098l 71.178-0.236
320
+ l0-9.523 L 284.979,440.668 c-12.841,0.061-12.36-19.098,0-19.108l 71.178,0 L 356.157,411.761 L 356.157,411.761zM 280.084,82.094C 280.044,115.169, 245.76,150.743, 204.8,127.703L 204.8,254.208 L 178.309,462.848C 177.756,468.367, 173.076,469.668, 169.933,469.76
321
+ c-3.246-0.092-9.748-1.393-10.455-6.912L 133.12,254.208l0-126.505 c-40.96,23.040-74.138-12.759-74.148-45.353c 0.010-29, 22.333-52.818, 52.541-52.746
322
+ c 30.433-0.072, 52.326,26.624, 52.326,52.746L 163.84,213.76 l 10.24,0 l0-131.41 c0-29.245, 22.651-50.893, 47.821-52.265c-0.42-16.036, 4.813-38.912, 14.664-47.985
323
+ c 11.551-10.65, 25.303,2.97, 19.661,14.060c-5.448,10.322-10.793,16.435-6.451,38.973C 267.919,43.53, 280.044,61.204, 280.084,82.094z
324
+ M 112.681,56.074c-14.295,0.092-25.846,11.684-25.866,26.020c 0.020,14.326, 11.571,25.969, 25.866,26.051c 14.193-0.082, 25.754-11.725, 25.856-26.051
325
+ C 138.435,67.748, 126.874,56.156, 112.681,56.074z M 200.448,82.094c 0.092,14.326, 11.633,25.969, 25.866,26.051
326
+ c 14.254-0.082, 25.815-11.725, 25.856-26.051c-0.041-14.336-11.592-25.928-25.856-26.020C 212.081,56.156, 200.53,67.748, 200.448,82.094z" />
327
+ <glyph unicode="&#xe02f;" d="M 253.112-21.76C 134.943-21.76, 38.799,74.383, 38.799,192.563c0,75.633, 38.666,144.21, 103.444,183.429c 13.885,8.407, 31.928,3.963, 40.325-9.902
328
+ c 8.397-13.865, 3.953-31.918-9.902-40.325c-47.053-28.488-75.141-78.295-75.141-133.202c0-85.801, 69.796-155.597, 155.597-155.597
329
+ c 85.801,0, 155.587,69.796, 155.587,155.597c0,55.808-30.147,107.674-78.715,135.322c-14.1,8.028-19.005,25.948-10.988,40.038
330
+ c 8.028,14.080, 25.948,18.995, 40.038,10.977c 66.867-38.072, 108.39-109.486, 108.39-186.348C 467.425,74.383, 371.302-21.76, 253.112-21.76zM 250.88,195.492c-16.21,0-35.84,13.148-35.84,29.358L 215.040,436.234 c0,16.21, 19.63,29.358, 35.84,29.358c 16.21,0, 35.84-13.148, 35.84-29.358l0-211.384
331
+ C 286.72,208.64, 267.090,195.492, 250.88,195.492z" />
332
+ <glyph unicode="&#xe030;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
333
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
334
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
335
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669z" />
336
+ <glyph unicode="&#xe031;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
337
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
338
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
339
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669zM 122.88,295.68L 286.72,295.68L 286.72,254.72L 122.88,254.72z" />
340
+ <glyph unicode="&#xe032;" d="M 261.192,248.863c-15.483,0-28.068-12.585-28.068-28.058c0-15.473, 12.585-28.058, 28.068-28.058c 15.473,0, 28.068,12.585, 28.068,28.058
341
+ C 289.26,236.278, 276.664,248.863, 261.192,248.863zM 428.278,438.292C 428.278,450.017, 418.775,459.52, 407.060,459.52L 103.148,459.52 C 91.423,459.52, 81.92,450.017, 81.92,438.292l0-428.605 C 81.92-2.028, 91.423-11.52, 103.148-11.52l 303.913,0
342
+ c 11.725,0, 21.217,9.492, 21.217,21.207L 428.278,438.292 z M 261.192,86.63c-73.984,0-134.175,60.18-134.175,134.175c0,73.974, 60.191,134.164, 134.175,134.164
343
+ c 73.974,0, 134.154-60.191, 134.154-134.164C 395.336,146.811, 335.155,86.63, 261.192,86.63z" />
344
+ <glyph unicode="&#xe033;" d="M 423.987,255.867l-25.18,105.124c-4.413,18.34-22.999,29.86-41.441,25.334c-16.22-3.963-24.105-15.196-27.3-23.101
345
+ c-3.779-9.329-20.644-51.599-24.586-60.334c-1.382-3.031-4.301-4.628-4.895-4.895c-3.348-1.485-36.864-15.626-36.864-15.626l0-0.061
346
+ c-6.615-3.103-11.203-9.718-11.203-17.439c0-10.68, 8.745-19.343, 19.528-19.343c 2.324,0, 4.536,0.481, 6.615,1.219
347
+ c0-0.010-0.020-0.041,0-0.072c 0.215,0.092, 44.493,18.493, 44.493,18.493c 6.103,2.847, 9.083,6.451, 12.114,11.704
348
+ c 1.27,2.212, 5.13,11.469, 8.274,19.067l 26.849-112.282C 370.381,121.498, 370.36,9.677, 370.36,9.677c-0.051-17.285, 11.889-31.375, 29.338-31.437
349
+ c 17.469-0.061, 30.095,13.896, 30.208,31.212c0,0, 0.174,195.656, 0.174,205.343C 430.060,224.451, 426.22,247.398, 423.987,255.867zM 287.171,430.643A39.475,39.117 180 1 1 366.121,430.64300000000003A39.475,39.117 180 1 1 287.171,430.64300000000003zM 175.421,100.076l0-43.827 c 5.683,1.044, 10.281,3.645, 13.855,7.813c 3.543,4.168, 5.315,9.042, 5.315,14.653
350
+ c0,5.018-1.485,9.349-4.454,12.995C 187.126,95.314, 182.221,98.099, 175.421,100.076zM 148.347,168.141c-2.662-3.584-4.004-7.557-4.004-11.899c0-3.994, 1.219-7.66, 3.625-11.059c 2.437-3.42, 6.113-6.185, 10.998-8.274
351
+ l0,38.881 l0,0C 154.511,174.295, 150.958,171.735, 148.347,168.141zM 252.488,220.201l 0.041,0 l-61.184,122.747l-0.010-0.113c-4.495,9.298-14.039,15.718-25.139,15.718l-56.392,0
352
+ C 94.413,358.564, 81.92,346.194, 81.92,330.936l0-215.081 c0-0.031,0-0.061,0-0.092L 81.92-21.76 l 173.732,0 L 255.652,206.356 C 255.631,211.313, 254.495,216.003, 252.488,220.201z
353
+ M 209.971,48.486c-8.294-9.288-19.804-14.981-34.519-17.070l0-21.023 l-16.456,0 l0,20.46 c-13.087,1.567-23.685,6.41-31.877,14.49
354
+ c-8.151,8.1-13.363,19.517-15.626,34.273l 29.594,3.164c 1.198-6.001, 3.461-11.172, 6.81-15.534c 3.308-4.342, 7.014-7.485, 11.090-9.431
355
+ l0,47.084 c-14.807,4.198-25.692,10.557-32.584,19.026c-6.932,8.499-10.394,18.811-10.394,30.956c0,12.288, 3.901,22.61, 11.756,30.976
356
+ c 7.823,8.346, 18.227,13.169, 31.232,14.428l0,11.131 l 16.456,0 l0-11.131 c 12.001-1.413, 21.576-5.478, 28.682-12.175c 7.086-6.687, 11.622-15.688, 13.599-26.921
357
+ l-28.682-3.707c-1.751,8.827-6.277,14.838-13.599,17.981l0-43.93 c 18.135-4.884, 30.495-11.192, 37.079-18.934
358
+ c 6.564-7.762, 9.861-17.705, 9.861-29.839C 222.392,69.202, 218.255,57.784, 209.971,48.486z" />
359
+ <glyph unicode="&#xe034;" d="M 475.914,268.421l-0.133,1.034c-0.287,1.444-0.819,2.898-1.3,3.707L 409.6,377.6c0,0-8.274,10.24-10.24,10.24c-30.72,0-245.76,0-276.48,0L 39.731,276.705
360
+ l-0.983-1.024L 38.615,275.2c-0.655-1.034-1.219-2.202-1.72-3.584L 36.557,270.623c-0.492-1.7-0.717-3.174-0.655-5.386
361
+ c 0.072-1.434, 0.328-2.857, 0.788-4.342l 0.389-1.116c 0.522-1.321, 1.167-2.529, 1.925-3.604l 201.021-254.638l 0.41-0.584
362
+ c 1.034-1.331, 2.294-2.509, 3.83-3.584l 1.167-0.727c 1.147-0.717, 2.345-1.29, 4.086-1.925l 1.137-0.379C 252.621-6.164, 254.331-6.4, 256-6.4
363
+ c 1.69,0, 3.338,0.225, 5.56,0.799l 1.362,0.481c 1.331,0.471, 2.529,1.055, 3.973,1.946l 0.901,0.563c 1.546,1.096, 2.785,2.284, 3.471,3.215
364
+ l 201.277,254.904c 0.901,1.167, 1.659,2.478, 2.56,4.803c 0.492,1.29, 0.707,2.54, 0.819,3.287c 0.092,0.522, 0.154,1.055, 0.154,1.321
365
+ l 0.082,1.044C 476.16,266.988, 476.047,268.012, 475.914,268.421z M 367.985,275.2l 28.652,51.845L 425.267,275.2L 367.985,275.2 z M 350.802,244.48l 67.973,0 L 305.48,100.966
366
+ L 350.802,244.48z M 333.988,290.744L 292.608,346.88l 72.397,0 L 333.988,290.744z M 201.441,244.48l 109.148,0 L 256,71.66L 201.441,244.48z M 212.265,275.2L 256,334.551L 299.735,275.2
367
+ L 212.265,275.2 z M 181.463,295.393L 162.499,346.88l 56.904,0 L 181.463,295.393z M 206.541,100.956L 93.235,244.48l 67.983,0 L 206.541,100.956z M 129.69,326.687L 148.664,275.2L 91.75,275.2
368
+ L 129.69,326.687z" />
369
+ <glyph unicode="&#xe035;" d="M-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 440.32,418.56L 440.32,459.52L 71.68,459.52L 71.68,418.56L0,418.56L0-21.76L 40.96-21.76L 40.96,377.6L 71.68,377.6L 71.68,336.64L 440.32,336.64L 440.32,377.6L 471.040,377.6L 471.040-21.76L 512-21.76L 512,418.56 zM 430.612,183.040L 430.612,183.040l-66.816,113.92C 361.144,301.885, 354.478,305.92, 348.989,305.92L 163,305.92 c-5.489,0-12.155-4.035-14.797-8.96L 81.398,183.040
370
+ l0,0C 70.42,183.040, 61.44,173.824, 61.44,162.56l0-102.4 c0-11.264, 8.98-20.48, 19.958-20.48L 102.4,39.68 l0-30.72 c0-16.896, 12.421-30.72, 28.877-30.72l 9.984,0 C 157.716-21.76, 174.080-7.936, 174.080,8.96l0,30.72 l 163.84,0 l0-30.72
371
+ c0-16.896, 16.353-30.72, 32.819-30.72l 9.984,0 c 16.456,0, 28.877,13.824, 28.877,30.72l0,30.72 l 21.012,0 C 441.58,39.68, 450.56,48.896, 450.56,60.16L 450.56,162.56 C 450.56,173.824, 441.58,183.040, 430.612,183.040z
372
+ M 116.316,101.12c-13.773,0-24.945,11.459-24.945,25.6s 11.172,25.6, 24.945,25.6c 13.783,0, 24.945-11.459, 24.945-25.6S 130.099,101.12, 116.316,101.12z M 131.277,183.040
373
+ l 45.425,83.005c 2.458,5.038, 8.96,9.155, 14.438,9.155l 129.71,0 c 5.489,0, 11.991-4.116, 14.438-9.155L 380.723,183.040L 131.277,183.040 z M 395.684,101.12
374
+ c-13.773,0-24.945,11.459-24.945,25.6s 11.172,25.6, 24.945,25.6c 13.783,0, 24.955-11.459, 24.955-25.6S 409.457,101.12, 395.684,101.12z" />
375
+ <glyph unicode="&#xe036;" d="M 192,432.64A42.24,42.24 180 1 1 276.48,432.64A42.24,42.24 180 1 1 192,432.64zM 225.28,377.6l-30.72,0 c-28.877,0-51.2-17.603-51.2-46.971L 143.36,203.52 c0-20.48, 30.72-20.48, 30.72,0L 174.080,326.4 l 10.24,0 l0-327.68 c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 225.28,193.28 L 225.28,377.6 zM 358.4,224l-41.134,106.056C 313.692,353.823, 289.69,377.6, 262.298,377.6L 235.52,377.6 l0-243.538 c 5.12-0.020, 10.24-0.768, 10.24-2.222l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48
376
+ c 11.121,0, 20.48,9.841, 20.48,20.48L 286.72,131.84 l 39.619,0 c 3.707,0, 10.691,6.697, 10.691,10.24c0,0.819, 0.297,9.533,0,10.24l-60.508,166.267
377
+ c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393c 2.161,0, 3.973-1.444, 4.454-3.369L 326.339,213.76
378
+ c 2.734-6.154, 13.978-10.24, 21.371-10.24C 357.591,203.52, 358.615,222.925, 358.4,224z" />
379
+ <glyph unicode="&#xe037;" d="M 286.556,165.335c-23.050,0-41.759-18.944-41.759-42.342c0-23.388, 18.719-42.363, 41.759-42.363c 23.060,0, 41.748,18.975, 41.748,42.363
380
+ C 328.315,146.401, 309.617,165.335, 286.556,165.335z M 286.556,100.577c-12.237,0-22.118,10.025-22.118,22.415c0,12.38, 9.882,22.456, 22.118,22.456
381
+ c 12.196,0, 22.129-10.076, 22.129-22.456C 308.695,110.602, 298.762,100.577, 286.556,100.577zM 459.336,352.061C 444.559,357.161, 349.204,367.36, 286.433,367.36c-62.761,0-163.84-10.332-178.801-14.756C 106.086,352.154, 61.44,339.845, 61.44,291.441L 61.44,162.253
382
+ C 61.44,153.477, 64.727,142.080, 69.581,142.080L 10.24,142.080 l0-20.48 l 224.922,0 c0,30.72, 23.163,52.449, 51.692,52.449c 28.57,0, 51.722-21.729, 51.722-52.449l 125.245,0
383
+ C 484.803,121.6, 501.76,141.015, 501.76,162.253L 501.76,298.312 C 501.76,319.56, 485.786,342.917, 459.336,352.061z M 205.169,250.9c0-4.035-2.877-6.42-6.83-6.42
384
+ l-67.41,0 C 126.945,244.48, 122.88,245.996, 122.88,250.030l0,47.739 C 122.88,301.783, 126.945,305.92, 130.918,305.92l 67.41,0 C 202.281,305.92, 204.8,301.783, 204.8,297.769l0-47.739
385
+ L 205.169,250.9z M 450.56,250.030C 450.56,245.996, 447.386,244.48, 443.392,244.48L 294.236,244.48 C 290.253,244.48, 286.72,245.996, 286.72,250.030l0,47.739
386
+ C 286.72,301.783, 290.253,305.92, 294.236,305.92L 443.392,305.92 c 4.004,0, 7.168-4.137, 7.168-8.151L 450.56,250.030 z" />
387
+ <glyph unicode="&#xe038;" d="M 307.2,398.080l0-337.92 L 61.44,60.16 L 61.44,398.080 L 307.2,398.080 M 348.16,439.040L 20.48,439.040 l0-430.080 l 327.68,0 L 348.16,439.040 L 348.16,439.040zM 92.16,357.12L 276.48,357.12L 276.48,316.16L 92.16,316.16zM 92.16,285.44L 276.48,285.44L 276.48,244.48L 92.16,244.48zM 92.16,213.76L 276.48,213.76L 276.48,172.8L 92.16,172.8zM 92.16,142.080L 276.48,142.080L 276.48,101.12L 92.16,101.12zM 409.6,357.12L 491.52,357.12L 491.52,70.4L 409.6,70.4zM 450.621,469.76C 428.155,469.76, 409.6,451.686, 409.6,429.445L 409.6,387.84 l 81.92,0 L 491.52,429.445 C 491.52,451.686, 472.996,469.76, 450.621,469.76zM 408.965,39.68L 450.345-25.723L 491.52,39.68 z" />
388
+ <glyph unicode="&#xe039;" d="M 484.966,328.96c 0.819-2.97-0.215-6.246-1.946-8.806l-55.194-82.125c-2.048-3.174-6.349-4.915-9.943-4.915c-1.024,0-3.891,0.205-5.007,0.512
389
+ L 368.64,244.48l0-194.56 c0-5.939-4.198-10.24-10.24-10.24L 143.36,39.68 c-6.042,0-10.24,4.301-10.24,10.24L 133.12,244.48 l-39.731-10.957c-4.608-1.434-8.602,0.41-11.162,4.403l-54.784,81.92
390
+ c-1.741,2.662-2.253,5.632-1.434,8.602c 0.717,3.072, 2.867,5.12, 5.632,6.554L 143.36,387.84c 10.24,0, 51.2,0, 51.2,0c 6.042,0, 10.24-4.198, 10.24-10.24c0-21.094, 29.594-36.045, 50.688-36.045
391
+ c 21.094,0, 51.712,14.848, 51.712,36.045c0,5.939, 4.198,10.24, 10.24,10.24c0,0, 40.96,0, 51.2,0l 110.592-51.814C 482.099,334.592, 484.147,332.032, 484.966,328.96z" />
392
+ <glyph unicode="&#xe03a;" d="M 61.44,367.36l0-345.498 C 61.44,6.81, 74.107-11.52, 89.702-11.52l 340.152,0 C 445.409-11.52, 460.8,6.81, 460.8,21.862L 460.8,367.36 L 61.44,367.36 z M 260.71,93.174
393
+ c-60.006,0-108.657,47.043-108.657,105.093c0,58.051, 48.65,105.093, 108.657,105.093s 108.657-47.043, 108.657-105.093
394
+ C 369.367,140.206, 320.717,93.174, 260.71,93.174zM 429.855,469.76L 89.702,469.76 C 74.107,469.76, 61.44,459.182, 61.44,444.109L 61.44,387.84 l 399.36,0 L 460.8,444.109 C 460.8,459.182, 445.409,469.76, 429.855,469.76z M 194.56,408.32L 81.92,408.32 L 81.92,449.28 l 112.64,0 L 194.56,408.32 z M 390.615,411.187
395
+ c-12.79,0-23.122,10.025-23.122,22.405c0,12.36, 10.332,22.385, 23.122,22.385s 23.153-10.025, 23.153-22.385C 413.757,421.222, 403.405,411.187, 390.615,411.187z
396
+ " />
397
+ <glyph unicode="&#xe03b;" d="M 501.76,372.593c 6.185,4.68, 10.24,12.012, 10.24,20.367C 512,407.101, 500.541,418.56, 486.4,418.56S 460.8,407.101, 460.8,392.96c0-8.346, 4.055-15.688, 10.24-20.367L 471.040,213.76 l-92.16,0 l0-81.92 l 102.4,0
398
+ l0,3.041 c 15.002,6.083, 25.6,20.726, 25.6,37.919c0,7.076-1.956,13.64-5.12,19.446L 501.76,372.593 zM 61.44,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 102.4,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 L 30.72,346.88 l0-61.44 l 10.24,0
399
+ C 40.96,285.44, 40.96,305.92, 61.44,305.92zM 204.8,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 245.76,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 l-10.24,0 l0-61.44 l 10.24,0
400
+ C 184.32,285.44, 184.32,305.92, 204.8,305.92zM 389.12,408.32L 389.12,428.8 L 265.011,428.8 c-4.669,20.5-22.927,35.84-44.851,35.84S 179.978,449.3, 175.309,428.8L 51.2,428.8 l0-20.48 L0,408.32 l0-419.84 l 450.56,0 L 450.56,408.32 L 389.12,408.32 z M 163.84,367.36l 122.88,0 l0-143.36 L 163.84,224 L 163.84,367.36 z M 20.48,367.36l 122.88,0 l0-143.36 L 20.48,224
401
+ L 20.48,367.36 z M 389.12,39.68L 51.2,39.68 l0,71.68 l 337.92,0 L 389.12,39.68 z M 430.080,224L 307.2,224 L 307.2,367.36 l 122.88,0 L 430.080,224 zM 348.16,305.92c 10.455,0, 17.715-1.761, 30.72,0c0,0-41.124-27.3-41.124-61.44L 389.12,244.48 c0,0, 0.061,56.873, 30.72,92.16l-10.24,10.24c0,0-20.48-10.24-40.96,0c0,0-20.48,0-40.96-10.24l0,10.24 l-10.24,0 l0-61.44 l 10.24,0
402
+ C 327.68,285.44, 327.68,305.92, 348.16,305.92z" />
403
+ <glyph unicode="&#xe03c;" d="M 443.187,337.705L 255.57,469.76l-42.24-29.778l 0.635-0.492L 48.742,322.038l0,0l0,0L 10.24,295.342l0-62.495 l 39.311,26.491L 49.551-21.76 l 3.973,0 l 42.854,0 l 6.359,0
404
+ l 303.237,0 l 13.23,0 l 39.465,0 l 3.789,0 L 462.459,261.847 L 501.76,232.847l0,62.495 L 443.187,337.705z M 403.456,38.124L 101.99,38.124 L 101.99,297.134 L 256.174,408.125L 403.456,302.131L 403.456,38.124 zM 186.726,267.356c 10.977,0, 20.050,9.042, 20.050,20.347c0,11.284-9.073,20.419-20.050,20.419c-11.11,0-20.101-9.144-20.101-20.419
405
+ C 166.625,276.398, 175.616,267.356, 186.726,267.356zM 159.355,70.676c0-6.277, 4.485-12.196, 10.68-12.196c 6.226,0, 10.588,4.495, 10.588,10.803l0,95.242 l 13.117,0 l0-95.242
406
+ c0-6.298, 3.84-11.5, 10.035-11.5c 6.226,0, 10.742,6.615, 10.742,12.902l-0.502,167.035l 12.472,0 l0-66.529 c0-6.656, 13.107-6.656, 13.107,0l0,65.044
407
+ c0,13.548-10.547,26.778-26.235,26.778l-53.217,0.123c-14.223,0-25.395-11.858-25.395-26.573l0-65.372 c0-6.656, 13.097-6.656, 13.097,0l0,66.529 l 11.653,0
408
+ L 159.355,70.676zM 329.134,267.356c 11.018,0, 20.101,9.042, 20.101,20.347c0,11.284-9.083,20.419-20.101,20.419c-11.049,0-20.142-9.144-20.142-20.419
409
+ C 308.992,276.398, 318.075,267.356, 329.134,267.356zM 301.814,70.676c0-6.277, 5.263-12.196, 11.459-12.196c 6.277,0, 11.54,4.495, 11.54,10.803l0,95.242 l 6.564,0 l0-95.242
410
+ c0-6.298, 6.195-11.5, 12.431-11.5c 6.236,0, 11.94,6.615, 11.94,12.902l 0.696,167.035l 7.711,0 l0-66.529 c0-6.656, 19.651-6.656, 19.651,0l0,65.044
411
+ c0,13.548-11.438,26.778-27.105,26.778l-52.746,0.123c-14.254,0-24.996-11.858-24.996-26.573l0-65.372 c0-6.656, 13.107-6.656, 13.107,0l0,66.529 l 9.841,0
412
+ L 301.814,70.676z" />
413
+ <glyph unicode="&#xe03d;" d="M 476.109,367.36L 36.055,367.36 c-14.152,0-25.733-12.872-25.733-25.6c0-12.728, 11.581-25.59, 25.733-25.59l 6.216,0 l0-51.2 l 428.247,0 l0,51.2 l 5.591,0
414
+ c 14.162,0, 25.733,12.861, 25.733,25.59C 501.842,354.488, 490.271,367.36, 476.109,367.36z M 256.082,290.355c-7.107,0-12.861,5.929-12.861,13.23
415
+ s 5.755,13.23, 12.861,13.23c 7.117,0, 12.861-5.929, 12.861-13.23S 263.199,290.355, 256.082,290.355zM 42.271,162.58l 428.247,0 L 470.518,244.48 L 42.271,244.48 L 42.271,162.58 z M 256.082,217.61c 7.117,0, 12.861-5.919, 12.861-13.22c0-7.311-5.745-13.23-12.861-13.23
416
+ c-7.107,0-12.861,5.919-12.861,13.23C 243.21,211.692, 248.975,217.61, 256.082,217.61zM 42.271,91.955l0-26.47 l0-33.065 c0-7.27, 0.911-13.23, 7.987-13.23l 51.446,0 c 7.076,0, 10.281,5.96, 10.281,13.23l0,37.99 l 288.819,0 l0-37.99
417
+ c0-7.27, 2.58-13.23, 9.646-13.23l 51.456,0 c 7.055,0, 8.602,5.96, 8.602,13.23l0,33.065 l0,26.47 L 470.508,142.080 L 42.271,142.080 L 42.271,91.955 z M 256.082,118.405
418
+ c 7.117,0, 12.861-5.929, 12.861-13.22c0-7.322-5.745-13.22-12.861-13.22c-7.107,0-12.861,5.898-12.861,13.22
419
+ C 243.21,112.466, 248.975,118.405, 256.082,118.405z" />
420
+ <glyph unicode="&#xe03e;" d="M 365.158,177.521c 17.009,28.047, 26.952,60.908, 26.952,96.102c0,102.697-83.098,185.856-185.815,185.897
421
+ C 103.67,459.489, 20.48,376.32, 20.48,273.644c0-102.584, 83.2-185.743, 185.876-185.743c 35.226,0, 68.045,9.953, 96.092,26.962L 428.841-11.52L 491.52,51.19
422
+ L 365.158,177.521z M 206.336,158.669c-63.508,0.154-114.852,51.476-114.964,114.852C 91.494,337.029, 142.848,388.362, 206.336,388.506
423
+ c 63.478-0.164, 114.842-51.487, 114.975-114.985C 321.178,210.217, 269.793,158.822, 206.336,158.669zM 286.72,295.68L 225.28,295.68L 225.28,357.12L 184.32,357.12L 184.32,295.68L 122.88,295.68L 122.88,254.72L 184.32,254.72L 184.32,193.28L 225.28,193.28L 225.28,254.72L 286.72,254.72 z" />
424
+ <glyph unicode="&#xe03f;" d="M 491.52,275.2L 307.2,275.2L 307.2,459.52L 204.8,459.52L 204.8,275.2L 20.48,275.2L 20.48,172.8L 204.8,172.8L 204.8-11.52L 307.2-11.52L 307.2,172.8L 491.52,172.8 z" />
425
+ <glyph unicode="&#xe040;" d="M 348.16,367.36L 348.16,398.449 C 348.16,423.854, 326.564,449.28, 301.169,449.28l-85.432,0 C 190.351,449.28, 163.84,423.854, 163.84,398.449L 163.84,367.36 l-54.395,0 L 51.2,8.96l 411.515,0 l-59.167,358.4L 348.16,367.36 z
426
+ M 194.56,398.449C 194.56,407.962, 206.234,418.56, 215.736,418.56l 85.432,0 C 310.661,418.56, 317.44,407.962, 317.44,398.449L 317.44,367.36 L 194.56,367.36 L 194.56,398.449 z" />
427
+ <glyph unicode="&#xe041;" d="M 259.43,231.199c0,0-49.551-39.864-49.551-72.090c0-14.428, 21.238-28.846, 49.551-28.846c 28.293,0, 49.531,14.418, 49.531,28.846
428
+ C 308.961,192.492, 259.43,231.199, 259.43,231.199zM 440.074,304.067c 2.867,35.103, 13.046,67.328, 30.966,96.86L 402.237,469.76c-21.729-18.719-46.49-29.082-74.547-30.915
429
+ c-25.702-2.324-50.063,2.56-72.97,14.694c-23.572-11.735-47.841-16.64-73.144-14.694c-26.163,2.345-49.787,11.622-70.932,28.068L 41.646,398.111
430
+ c 16.968-29.962, 26.419-61.307, 28.273-94.044c 0.881-15.073-3.42-35.809-13.066-62.638c-5.048-14.868-8.858-27.761-11.469-38.543
431
+ c-2.417-10.701-3.922-19.405-4.413-25.917c-0.358-28.57, 7.66-54.385, 24.095-77.312c 12.841-16.742, 34.017-35.236, 63.427-55.45
432
+ c 32.184-16.384, 57.078-27.013, 74.516-31.56c 4.987-2.335, 9.892-4.567, 14.459-6.717c 4.557-2.171, 9.431-4.301, 14.51-6.625
433
+ c 10.967-6.564, 18.668-13.691, 22.743-21.053c 4.966,7.956, 12.841,14.909, 23.327,21.053c 7.393,3.226, 13.629,6.031, 18.657,8.479
434
+ c 5.007,2.222, 8.755,3.871, 10.916,4.874c 3.727,1.853, 8.632,3.973, 14.531,6.308c 5.949,2.345, 13.332,5.212, 22.118,8.407
435
+ c 16.988,6.011, 29.379,11.704, 37.222,16.845c 28.529,20.214, 49.388,38.4, 62.648,54.682c 17.029,23.020, 25.293,48.937, 24.914,78.080
436
+ c-1.014,13.046-6.533,33.925-16.558,62.362C 442.941,267.039, 438.702,288.543, 440.074,304.067z M 259.43,101.427
437
+ c-62.536,0-120.32,51.651-120.32,115.354c0,43.264, 33.075,84.132, 42.465,100.936l 28.303-43.264l 49.551,72.090l 49.531-72.090l 28.344,43.264
438
+ c 9.359-16.804, 42.465-57.672, 42.465-100.936C 379.771,153.078, 321.976,101.427, 259.43,101.427z" />
439
+ <glyph unicode="&#xe042;" d="M 501.76,250.665L 266.24,362.076L 266.24,408.32L 296.96,408.32L 296.96,428.8L 266.24,428.8L 266.24,469.76L 245.76,469.76L 245.76,428.8L 215.040,428.8L 215.040,408.32L 245.76,408.32L 245.76,362.076L 81.326,284.201L 81.326,284.201L 81.326,284.201L 10.24,250.665L 10.24,234.24L 81.92,234.24L 81.92-21.76L 204.8-21.76L 204.8,131.84L 307.2,131.84L 307.2-21.76L 430.080-21.76L 430.080,234.24L 501.76,234.24 z" />
440
+ <glyph unicode="&#xe043;" d="M 257.577,302.367c 40.479,0, 73.155,32.942, 73.155,73.554c0,40.53-32.666,73.359-73.155,73.359c-40.428,0-73.247-32.84-73.247-73.359
441
+ C 184.33,335.319, 217.16,302.367, 257.577,302.367zM 328.755,285.44c 33.495,0, 47.555-28.611, 47.555-28.611l 108.104-148.941c 4.475-6.646, 7.107-14.776, 7.107-23.552
442
+ c0-23.142-18.719-41.953-41.789-41.953c-5.519,0-10.865,1.198-15.555,3.021L 368.64,63.57L 368.64-1.28 L 143.36-1.28 l0,64.85 l-65.556-18.196
443
+ C 73.196,43.571, 67.891,42.342, 62.351,42.342c-23.050,0-41.861,18.739-41.861,41.882c0,8.765, 2.591,16.763, 7.229,23.429l 108.032,149.176
444
+ c0,0, 14.049,28.611, 47.401,28.611L 328.755,285.44 z M 256.061,43.899L 256.061,43.899l 84.439,28.058l-1.833,0.512c-58.419,17.121-36.024,94.495, 22.252,77.179
445
+ L 368.64,146.903l0,87.255 l-112.527-37.1L 143.36,234.158l0-87.255 l 7.721,2.755c 58.245,17.306, 80.876-60.058, 22.497-77.179l-2.048-0.512L 256.061,43.899
446
+ L 256.061,43.899z" />
447
+ <glyph unicode="&#xe044;" d="M 261.908,388.475c 23.521-1.731, 44.093,15.032, 45.957,37.356c 1.884,22.436-15.667,42.066-39.188,43.796c-23.552,1.71-44.124-14.95-45.947-37.386
448
+ C 220.897,409.815, 238.459,390.226, 261.908,388.475zM 438.098,60.16l-14.213,122.88l-23.060,0 c 0.215,10.24, 0.184,11.377-0.522,17.592c-0.686,6.359-2.703,11.008-5.99,12.472
449
+ c 2.693,2.867, 4.485,6.513, 4.833,10.619c 0.522,6.472-2.509,12.524-7.578,16.128l-58.696,38.584l-43.213,81.367
450
+ c-7.158,10.65-19.282,19.241-33.915,20.47c-11.244,0.778-21.586-2.939-29.952-8.468l-85.75-66.376c-2.826-2.273-4.946-5.263-5.908-8.858
451
+ l-19.978-80.394C 113.981,215.409, 112.64,214.548, 112.64,213.791c0-0.010,0-0.020,0-0.031l-0.164,0 c-3.348,0-6.4-3.195-7.567-7.424
452
+ C 103.782,202.189, 102.4,196.71, 102.4,192.276C 102.4,189.082, 102.4,183.040, 102.4,183.040L 80.138,183.040 L 65.925,60.16l 57.436,0 l-25.18-40.294c-1.638-3.123-3.564-7.537-3.901-11.796
453
+ c-1.239-15.258, 10.639-28.518, 26.563-29.737c 11.377-0.758, 21.166,4.731, 27.116,13.496L 190.454,60.16l 5.56,0 l-0.87,7.547l 11.786,18.964
454
+ c 1.28,2.54, 5.345,8.755, 5.796,11.704l 14.397,62.566l 61.45-64.236l 19.292-96.573c 3.082-11.418, 12.933-20.838, 26.040-21.801
455
+ c 15.944-1.208, 29.901,10.045, 31.171,25.272c 0.113,1.905-0.225,3.338-0.174,5.612L 354.826,60.16l 18.207,0 L 438.098,60.16 z M 112.2,193.382
456
+ c 0.573,4.844, 2.386,7.598, 5.581,7.598c 0.42,0, 0.778,0.010, 1.198,0.020c 3.226-3.901, 8.018-6.574, 13.548-7.025
457
+ c 6.339-0.492, 12.032,2.243, 15.903,6.482c 0.86-0.727, 1.546-1.823, 2.017-3.338c 0.85-2.939, 1.341-6.308, 1.341-9.083
458
+ c0-1.659-0.082-4.997-0.195-4.997l-20.644,0 l-19.046,0 C 111.77,183.040, 111.811,189.624, 112.2,193.382z M 170.885,183.040l-12.134,0
459
+ c 0.256,10.24, 0.184,11.377-0.481,17.592c-0.573,5.325-2.079,9.441-4.465,11.551l 15.145,65.966l 29.87,23.112L 170.885,183.040z M 393.687,183.040L 373.043,183.040
460
+ l-19.077,0 c-0.164,0-0.113,6.584, 0.297,10.342c 0.532,4.844, 2.376,7.598, 5.581,7.598c 4.598,0, 8.765,0.143, 12.462,0.225
461
+ c 3.717,0.133, 8.786,0.317, 15.165,0.317c 2.447,0, 4.106-1.454, 5.028-4.413c 0.881-2.939, 1.352-6.308, 1.352-9.083
462
+ C 393.851,186.378, 393.759,183.040, 393.687,183.040z M 265.216,206.418l 19.251,81.265l 16.189-30.546c 1.28-2.099, 2.796-3.83, 4.792-5.458L 363.274,213.76l-8.735,0
463
+ c-3.348,0-4.577-3.195-5.734-7.424C 347.709,202.189, 348.16,196.71, 348.16,192.276C 348.16,189.082, 348.16,183.040, 348.16,183.040l-25.928,0 l-4.188-36.147L 265.216,206.418z" />
464
+ <glyph unicode="&#xe045;" d="M 471.040,183.040L 471.040-21.76L 317.44-21.76L 317.44,19.2L 184.32,19.2L 184.32-21.76L 40.96-21.76L 40.96,183.040 zM 378.358,220.365c-5.878,25.692-19.139,48.282-40.038,65.546C 318.075,302.735, 294.124,305.92, 266.342,316.16L 266.24,316.16 L 266.24,380.959
465
+ c0,0.287, 2.775,0.512, 5.366,1.444c 3.676,1.28, 7.148,2.755, 11.745,4.352c 4.516,1.526, 8.602,2.806, 12.861,3.707
466
+ c 4.178,0.993, 7.076,1.413, 9.062,1.413c 3.86,0, 8.745-0.614, 14.459-1.864c 5.816-1.413, 12.012-2.939, 18.309-4.669
467
+ c 6.564-1.987, 12.421-3.492, 18.104-4.772c 5.417-1.239, 9.953-1.751, 13.711-1.751C 375.839,378.808, 378.88,379.638, 389.12,381.46L 389.12,455.619
468
+ c-10.24-2.437-12.052-3.779-19.272-3.779c-3.758,0-8.407,0.573-13.834,1.946c-5.663,1.085-11.5,2.775-18.063,4.68
469
+ c-6.298,1.915-12.247,3.359-17.746,4.567c-5.56,1.321-9.175,1.956-13.107,1.956c-13.036,0-30.618-3.082-40.858-8.765L 266.24,469.76 l-20.48,0 l0-153.6 l-0.645,0
470
+ c-27.566-10.24-51.702-14.008-71.926-30.833c-20.5-17.285-33.812-38.41-40.11-64.113c0,0-19.63,2.785-19.63-17.695l 286.413,0
471
+ C 399.862,224, 378.358,220.365, 378.358,220.365z" />
472
+ <glyph unicode="&#xe046;" d="M 483.645,60.16c0,0-74.045,0-166.205,0l0-40.735 L 317.44,19.2 c 40.96,0, 66.877,0, 66.877,0c 28.959,0, 41.513,0, 56.689,0l 44.339,0
473
+ C 499.149,19.2, 501.76,31.232, 501.76,31.232l0,9.933 C 501.76,41.165, 501.637,60.16, 483.645,60.16zM 460.657,68.25C 483.328,68.25, 501.76,86.702, 501.76,109.435c0,22.804-18.432,41.196-41.103,41.196c-22.641,0-41.021-18.401-41.021-41.196
474
+ C 419.635,86.712, 438.016,68.25, 460.657,68.25zM 374.088,70.4c 21.565,0, 38.912,15.196, 38.912,36.731c-0.010,21.494-17.418,32.768-38.82,32.932L 317.44,132.874L 317.44,70.4 L 374.088,70.4 L 374.088,70.4zM 189.676,337.326c 25.18,0, 45.548,20.48, 45.548,45.742C 235.223,408.33, 214.856,428.8, 189.676,428.8c-25.16,0-45.558-20.47-45.558-45.732
475
+ C 144.118,357.806, 164.516,337.326, 189.676,337.326zM 143.165,189.297c-0.113,0.215-0.297,0.338-0.41,0.594l-20.644,48.067L 122.081,142.080l 61.696,0 l 13.476,14.336l-36.547,14.070
476
+ C 152.044,173.742, 145.889,181.115, 143.165,189.297zM 156.242,193.608c 1.997-4.485, 5.693-8.12, 10.342-9.789l 70.42-26.102c 9.011-3.983, 19.538,0.154, 23.491,9.196
477
+ c 3.953,9.103-0.154,19.702-9.175,23.665l-64.973,24.535l-20.070,48.138l 13.087,4.874l 17.009-41.247L 245.76,208.568l0,50.401 l 26.214-15.596l 13.066-65.823
478
+ c 3.205-9.4, 13.353-14.346, 22.712-11.1c 9.267,3.215, 14.193,13.466, 11.008,22.825l-14.643,63.396c-0.963,3.553-3,6.656-5.755,8.98
479
+ c-7.506,8.315-45.466,50.76-48.169,53.596C 246.231,319.222, 237.169,326.4, 220.047,326.4l-61.44,0 c-34.918,0-41.636-35.635-34.499-53.76L 156.242,193.608zM 307.2,131.84L 30.382,131.84 C 20.306,131.84, 10.24,126.157, 10.24,113.654c0-2.898,0-8.202,0-8.202L 10.24,19.2 c0,0, 18.012,0, 23.859,0L 307.2,19.2 L 307.2,131.84 z" />
480
+ <glyph unicode="&#xe047;" d="M 419.84,285.44l-2.785,0 c-0.758,1.311-1.638,2.58-2.724,3.738L 296.12,415.826C 296.643,418.355, 296.96,420.977, 296.96,423.68C 296.96,443.474, 282.378,459.52, 264.376,459.52
481
+ c-6.943,0-30.3,0-37.243,0C 209.142,459.52, 194.56,443.474, 194.56,423.68c0-2.703, 0.328-5.325, 0.84-7.854L 77.189,289.178
482
+ C 76.114,288.020, 75.233,286.751, 74.465,285.44L 20.48,285.44 l0-71.68 l 20.48,0 l0-153.6 c0-28.283, 22.927-51.2, 51.2-51.2l 327.68,0 c 28.283,0, 51.2,22.917, 51.2,51.2L 471.040,213.76 l 20.48,0 l0,71.68 L 419.84,285.44 z M 227.144,387.84
483
+ c 6.943,0, 30.3,0, 37.243,0c 0.573,0, 1.096,0.154, 1.669,0.184L 361.789,285.44L 129.731,285.44 l 95.744,102.584C 226.038,387.994, 226.57,387.84, 227.144,387.84z M 133.12,70.4
484
+ c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 92.16,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 133.12,70.4 z M 225.28,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 184.32,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 225.28,70.4 z
485
+ M 327.68,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 286.72,193.28 c0,11.264, 9.216,20.48, 20.48,20.48s 20.48-9.216, 20.48-20.48L 327.68,70.4 z M 419.84,70.4c0-11.264-9.216-20.48-20.48-20.48s-20.48,9.216-20.48,20.48L 378.88,193.28 c0,11.264, 9.216,20.48, 20.48,20.48
486
+ s 20.48-9.216, 20.48-20.48L 419.84,70.4 z" />
487
+ <glyph unicode="&#xe048;" d="M 292.669,269.629c0-34.499-28.559-34.499-43.95-34.499l-19.19,0 l0,65.219 l 24.115,0 C 267.131,300.349, 292.669,300.349, 292.669,269.629zM 440.084,304.067c 2.847,35.103, 13.015,67.318, 30.956,96.85L 402.237,469.76c-21.74-18.719-46.479-29.082-74.537-30.915
488
+ c-25.692-2.324-50.084,2.56-72.98,14.684c-23.562-11.735-47.831-16.64-73.134-14.684c-26.173,2.345-49.787,11.622-70.943,28.068L 41.646,398.1
489
+ c 16.968-29.952, 26.419-61.307, 28.283-94.034c 0.881-15.073-3.42-35.82-13.066-62.638C 51.814,226.56, 47.995,213.658, 45.394,202.885
490
+ c-2.406-10.701-3.912-19.405-4.413-25.917c-0.358-28.58, 7.66-54.385, 24.095-77.312c 12.841-16.742, 34.017-35.226, 63.427-55.45
491
+ c 32.174-16.384, 57.078-27.023, 74.516-31.549c 4.987-2.345, 9.892-4.588, 14.459-6.717c 4.547-2.191, 9.421-4.311, 14.51-6.625
492
+ c 10.967-6.574, 18.678-13.711, 22.733-21.064c 4.977,7.956, 12.851,14.909, 23.316,21.064c 7.393,3.215, 13.65,6.021, 18.668,8.479
493
+ c 5.018,2.202, 8.755,3.86, 10.926,4.874c 3.717,1.853, 8.602,3.963, 14.51,6.298c 5.97,2.345, 13.332,5.222, 22.129,8.397
494
+ c 16.998,6.031, 29.368,11.715, 37.233,16.855c 28.518,20.224, 49.367,38.4, 62.638,54.671c 17.019,23.030, 25.283,48.947, 24.904,78.090
495
+ c-1.004,13.046-6.523,33.925-16.548,62.372C 442.931,267.039, 438.692,288.543, 440.084,304.067z M 313.62,209.756
496
+ c-16.333-10.691-38.789-10.691-50.514-10.691l-32.205,0 l0-88.125 l-48.425,0 L 182.477,336.998 l 68.741,0 c 31.949,0, 58.665-2.058, 77.22-24.678
497
+ c 11.581-14.397, 13.537-30.751, 13.537-42.373C 341.955,243.62, 331.11,221.399, 313.62,209.756z" />
498
+ <glyph unicode="&#xe049;" d="M 486.451,269.527C 484.076,398.94, 409.385,450.365, 406.323,452.413L 394.752,460.339l-11.633-7.905c-19.343-13.189-39.393-19.886-59.566-19.886
499
+ c-33.475,0-56.156,18.104-57.129,18.883l-13.025,10.506l-12.933-10.527c-0.942-0.768-23.654-18.872-57.108-18.872
500
+ c-20.183,0-40.223,6.687-59.587,19.917l-11.592,7.864l-11.674-7.926C 92.57,446.915, 23.030,395.295, 20.511,270.162
501
+ c-1.004-10.885, 28.908-216.842, 232.97-276.593C 475.392,58.737, 487.578,255.928, 486.451,269.527z M 61.604,267.049l 0.031-2.918
502
+ C 62.044,287.754, 65.341,316.16, 71.731,326.4l 363.407,0 c 6.42-10.24, 9.748-38.717, 10.117-62.505l 0.143,0.102c 0.809-6.595-7.311-192-191.918-229.222
503
+ C 88.207,71.25, 60.877,260.966, 61.604,267.049z" />
504
+ <glyph unicode="&#xe04a;" d="M 20.48,275.2L 491.52,275.2L 491.52,172.8L 20.48,172.8z" />
505
+ <glyph unicode="&#xe04b;" d="M 332.974-12.616L 260.557,203.52L 25.211,203.52L 477.798,457.513 z" />
506
+ <glyph unicode="&#xe04c;" d="M 256,480c-84.828,0-153.6-68.157-153.6-152.228c0-84.081, 153.6-359.782, 153.6-359.782s 153.6,275.702, 153.6,359.782C 409.6,411.843, 340.828,480, 256,480z
507
+ M 255.498,282.245c-26.184,0-47.401,21.043-47.401,46.981c0,25.958, 21.217,46.991, 47.401,46.991c 26.204,0, 47.421-21.033, 47.421-46.991
508
+ C 302.92,303.288, 281.702,282.245, 255.498,282.245z" />
509
+ <glyph unicode="&#xe04d;" d="M 441.958,264.96L 419.84,264.96 l0,88.392 C 419.84,411.494, 361.513,469.76, 303.37,469.76l-97.085,0 C 148.173,469.76, 92.16,411.494, 92.16,353.352L 92.16,264.96 L 67.686,264.96 C 60.754,264.96, 51.2,254.085, 51.2,247.962l0-260.69
510
+ C 51.2-18.852, 60.754-21.76, 67.686-21.76l 374.272,0 c 6.953,0, 18.842,2.908, 18.842,9.032L 460.8,247.962 C 460.8,254.085, 448.911,264.96, 441.958,264.96z M 304.261,19.2l-98.826,0
511
+ l 20.736,102.062c-12.534,8.878-20.736,25.61-20.736,42.035c0,27.064, 22.129,50.115, 49.408,50.115c 27.279,0, 49.418-21.391, 49.418-48.435
512
+ c0-16.435-8.202-35.113-20.716-44.001L 304.261,19.2z M 348.16,264.96L 163.84,264.96 l0,88.392 C 163.84,379.75, 181.176,398.080, 207.268,398.080l 95.119,0 C 328.479,398.080, 348.16,379.75, 348.16,353.352L 348.16,264.96 z" />
513
+ <glyph unicode="&#xe04e;" d="M 439.542,346.88L 389.12,346.88 L 389.12,400.394 C 389.12,438.651, 358.932,469.76, 320.573,469.76L 191.437,469.76 C 153.057,469.76, 122.88,438.651, 122.88,400.394L 122.88,346.88 L 72.448,346.88 C 38.083,346.88, 10.24,320.348, 10.24,286.085
514
+ l0-235.592 C 10.24,16.241, 38.083-11.52, 72.448-11.52l 367.094,0 C 473.897-11.52, 501.76,16.241, 501.76,50.504L 501.76,286.085 C 501.76,320.348, 473.897,346.88, 439.542,346.88z M 163.84,400.394
515
+ C 163.84,414.72, 177.070,428.8, 191.437,428.8l 129.137,0 C 334.899,428.8, 348.16,414.72, 348.16,400.394L 348.16,346.88 L 163.84,346.88 L 163.84,400.394 z M 368.64,121.6l-71.68,0 l0-71.68 l-81.92,0 l0,71.68 l-71.68,0 l0,81.92 l 71.68,0 l0,71.68 l 81.92,0 l0-71.68 l 71.68,0 L 368.64,121.6 z" />
516
+ <glyph unicode="&#xe04f;" d="M 491.745,207.084c-14.295-66.755-63.406-121.59-128.164-143.114c-19.866-6.615-40.448-9.964-61.184-9.964
517
+ c-83.446,0-157.225,53.146-183.603,132.239c-16.333,48.957-12.585,101.335, 10.547,147.497c 23.132,46.152, 62.884,80.558, 111.923,96.87
518
+ c 46.131,15.319, 96.225,12.759, 140.39-7.055l 9.574,18.053C 327.096,481.229, 247.214,490.711, 175.391,466.821C 110.438,445.225, 57.795,399.657, 27.156,338.534
519
+ c-30.638-61.133-35.594-130.519-13.967-195.379C 48.128,38.39, 145.848-32, 256.358-32c 27.464,0, 54.712,4.434, 81.009,13.169
520
+ c 98.028,32.604, 166.564,120.115, 174.612,222.966L 491.745,207.084zM 365.537,330.465L 314.194,426.557L 288.082,319.273L 181.289,298.281L 279.050,242.77L 262.236,132.219L 345.252,207.729L 448.123,158.372L 395.581,261.048L 478.771,341.35 z" />
521
+ <glyph unicode="&#xe050;" d="M 352.645,300.268c 35.82,0, 64.983,28.682, 64.983,64.215C 417.628,400.005, 388.475,428.8, 352.645,428.8c-35.963,0-65.178-28.795-65.178-64.317
522
+ C 287.468,328.95, 316.692,300.268, 352.645,300.268zM 501.76,143.544l0,81.306 L 414.054,274.176c-14.858,7.455-31.375,9.984-47.882,6.502c-6.758-1.382-13.117-3.963-20.265-7.895
523
+ c-0.778-0.215-26.819-11.571-41.953-46.5L 243.558,106.138c0,0-59.505-11.397-84.408-16.148c-1.966-1.3-4.076-2.355-6.093-3.594l-15.411,55.101
524
+ c-6.38,22.405, 17.418,54.886, 18.309,56.207c 15.749,22.784, 20.060,52.797, 11.786,82.524c-7.537,26.88-24.699,49.541-47.043,62.29
525
+ c-17.48,9.82-37.13,12.524-54.968,7.67c-13.855-3.758-26.204-11.817-35.748-23.398c-0.123-0.113-7.383-10.752-7.383-10.752
526
+ c-12.841-22.354-15.8-50.371-8.376-77.394c 7.537-27.136, 24.504-49.705, 46.961-62.28l 5.376-2.816c 0.717-0.051, 37.704-14.961, 44.134-36.352
527
+ c-0.082-0.113, 9.708-35.092, 17.695-63.601c-2.048-0.881-4.014-1.946-6.083-2.765c 0.297-0.215, 0.85-0.553, 1.188-0.788
528
+ c-1.802-2.755-4.966-8.858-4.741-15.104c0-1.987, 0.164-3.973, 0.543-5.898c 3.41-17.664, 20.91-29.46, 38.789-25.866l 114.125,21.955
529
+ c0,0, 9.708,2.918, 13.865,5.847c 5.356,3.758, 9.39,11.643, 9.39,11.643l 29.993,59.628c0,0, 20.675-96.358, 21.074-98.14
530
+ c-0.348-0.266-2.028-2.099-4.762-4.905l 155.679,0 c-2.345,13.681-3.901,22.456-3.901,22.559c0,0.225-4.905,21.617-4.905,21.617
531
+ c 0.164-0.154-13.353,60.027-23.685,107.131c 16.466-9.421, 31.386-17.797, 32.215-18.248C 497.295,151.992, 499.067,148.623, 501.76,143.544z M 109.435,192.963
532
+ c-11.561-3.072-23.91-1.208-35.748,5.315c-16.486,9.216-29.225,26.368-34.683,47.063c-5.816,20.623-3.697,41.748, 5.693,58.030l 5.243,7.557
533
+ c 6.185,7.506, 13.681,12.524, 22.671,15.012c 28.713,7.711, 60.334-15.78, 70.554-52.47C 153.231,236.943, 138.158,200.694, 109.435,192.963z" />
534
+ <glyph unicode="&#xe051;" d="M 30.72,418.56L 481.28,418.56L 481.28,367.36L 30.72,367.36zM 61.44,346.88l0-337.92 l 389.12,0 L 450.56,346.88 L 61.44,346.88 z M 327.68,254.72L 174.080,254.72 l0,30.72 l 153.6,0 L 327.68,254.72 z" />
535
+ <glyph unicode="&#xe052;" d="M 432.282,346.88l-58.102,0 l 58.46,56.054L 374.804,459.52l-81.859,0 l 58.644-56.044L 291.471,346.88l-69.519,0 l 59.781,56.054L 222.679,459.52l-83.261,0 l 58.644-56.044
536
+ L 137.861,346.88L 78.94,346.88 l 59.812,56.054L 79.585,459.52L 20.48,459.52 l0-471.040 l 471.040,0 L 491.52,459.52 l-57.774,0 L 491.52,403.159L 432.282,346.88z M 430.080,49.92L 81.92,49.92 l0,61.44 l 348.16,0 L 430.080,49.92 z M 430.080,162.56L 81.92,162.56 l0,61.44 l 348.16,0 L 430.080,162.56 z" />
537
+ <glyph unicode="&#xe053;" d="M 419.84,336.64l-51.2,0 L 368.64,450.109 C 368.64,460.964, 359.475,469.76, 348.16,469.76s-20.48-8.796-20.48-19.651L 327.68,336.64 L 163.84,336.64 L 163.84,450.109 C 163.84,460.964, 154.675,469.76, 143.35,469.76
538
+ C 132.035,469.76, 122.88,460.964, 122.88,450.109L 122.88,336.64 L 71.68,336.64 c-5.663,0-10.24-8.899-10.24-14.326L 61.44,273.152 c0-58.972, 102.4-127.447, 102.4-222.167L 163.84,19.2 l 40.96,0 l0-40.96 l 81.92,0 l0,40.96 l 40.96,0 l0,31.785
539
+ c0,94.72, 102.4,163.205, 102.4,222.167l0,49.162 C 430.080,327.741, 425.503,336.64, 419.84,336.64 M 234.568,168.827C 235.233,170.977, 233.882,172.8, 231.537,172.8l-39.782,0
540
+ c-2.355,0-3.021,1.331-1.526,3.062c0,0, 81.971,104.028, 83.569,106.035c 1.208,1.905, 2.54,1.239, 2.12-0.952
541
+ c-0.635-2.775-18.135-73.748-18.135-73.748C 256.932,205.107, 258.161,203.52, 260.485,203.52l 39.803,0 c 2.345,0, 3.092-1.577, 1.659-3.359
542
+ c0,0-82.094-106.516-83.569-108.298c-1.485-1.782-2.857-1.239-2.109,1.792C 217.016,96.696, 234.568,168.827, 234.568,168.827" />
543
+ <glyph unicode="&#xe054;" d="M 87.286,164.659c-20.255,0-36.71-16.558-36.71-36.905C 50.575,107.397, 67.041,90.88, 87.286,90.88c 20.296,0, 36.762,16.517, 36.762,36.884
544
+ C 124.047,148.101, 107.592,164.659, 87.286,164.659z M 87.286,108.739c-10.117,0-18.35,8.264-18.35,18.463c0,10.158, 8.233,18.442, 18.35,18.442
545
+ c 10.168,0, 18.401-8.284, 18.401-18.442C 105.697,117.002, 97.464,108.739, 87.286,108.739zM 410.286,164.659c-20.285,0-36.731-16.558-36.731-36.905c0-20.357, 16.435-36.884, 36.731-36.884c 20.275,0, 36.762,16.517, 36.762,36.884
546
+ C 447.048,148.101, 430.572,164.659, 410.286,164.659z M 410.286,108.739c-10.127,0-18.371,8.264-18.371,18.463
547
+ c 0.010,10.158, 8.243,18.442, 18.371,18.442c 10.158,0, 18.401-8.284, 18.401-18.442C 428.687,117.002, 420.454,108.739, 410.286,108.739zM 491.592,336.64L 168.561,336.64 c-5.601,0-10.168-4.567-10.168-10.209l0-92.59 l-20.347,0 l0,56.842 c0,5.652-4.557,10.209-10.179,10.209L 58.563,300.892
548
+ c-12.083,0-22.876-8.929-24.812-21.709l0,0.666 l-10.813-61.307l 0.020-0.215C 15.616,217.078, 10.24,210.698, 10.24,203.213c0-1.096, 0.123-2.222, 0.338-3.277
549
+ L 10.24,200.028l 15.258-68.966l 15.892,0 l0,0.625 c0,24.719, 20.224,44.739, 45.158,44.739c 24.914,0, 45.148-20.019, 45.148-44.739l0-0.625 l 232.714,0 l0,0.625
550
+ c0,24.719, 20.234,44.739, 45.128,44.739c 24.934,0, 45.169-20.019, 45.169-44.739c0-0.205,0-0.42-0.041-0.625l 0.041,0 L 501.76,131.062 L 501.76,326.431
551
+ C 501.76,332.063, 497.213,336.64, 491.592,336.64z M 102.431,284.303l0-50.463 l-61.030,0 l 7.629,42.813c 0.635,5.12, 5.089,8.899, 9.533,8.899l 43.868,0 L 102.431,284.303 z" />
552
+ <glyph unicode="&#xe055;" d="M 256,480c-84.828,0-153.6-68.157-153.6-152.228c0-84.081, 153.6-359.782, 153.6-359.782s 153.6,275.702, 153.6,359.782C 409.6,411.843, 340.828,480, 256,480z
553
+ M 255.498,282.245c-26.184,0-47.401,21.043-47.401,46.981c0,25.958, 21.217,46.991, 47.401,46.991c 26.204,0, 47.421-21.033, 47.421-46.991
554
+ C 302.92,303.288, 281.702,282.245, 255.498,282.245z" />
555
+ <glyph unicode="&#xe056;" d="M 256,469.76C 120.484,469.76, 10.24,359.516, 10.24,224c0-135.506, 110.244-245.76, 245.76-245.76c 135.506,0, 245.76,110.254, 245.76,245.76C 501.76,359.516, 391.506,469.76, 256,469.76z M 286.72,21.76L 286.72,111.36 l-61.44,0
556
+ l0-89.6 C 136.96,35.144, 67.144,104.96, 53.76,193.28L 143.36,193.28 l0,61.44 L 53.76,254.72 C 67.144,343.040, 136.96,412.856, 225.28,426.24L 225.28,336.64 l 61.44,0 L 286.72,426.24
557
+ C 375.040,412.856, 444.856,343.040, 458.24,254.72L 368.64,254.72 l0-61.44 l 89.6,0 C 444.856,104.96, 375.040,35.144, 286.72,21.76z" />
558
+ <glyph unicode="&#xe057;" d="M 256-21.76C 120.484-21.76, 10.24,88.494, 10.24,224C 10.24,359.516, 120.484,469.76, 256,469.76c 135.506,0, 245.76-110.244, 245.76-245.76C 501.76,88.494, 391.506-21.76, 256-21.76z M 256,428.8
559
+ C 143.073,428.8, 51.2,336.927, 51.2,224c0-112.927, 91.873-204.8, 204.8-204.8c 112.927,0, 204.8,91.873, 204.8,204.8C 460.8,336.927, 368.927,428.8, 256,428.8zM 256.461,395.52C 256.461,395.52, 184.32,271.913, 184.32,234.24c0-3.983,0-16.548,0-20.48c0-37.663, 72.356-163.84, 72.356-163.84S 327.68,173.476, 327.68,211.139
560
+ c0,3.963,0,19.22,0,23.163C 327.68,271.974, 256.461,395.52, 256.461,395.52z M 256,183.040c-22.62,0-40.96,18.34-40.96,40.96c0,22.62, 18.34,40.96, 40.96,40.96c 22.62,0, 40.96-18.34, 40.96-40.96
561
+ C 296.96,201.38, 278.62,183.040, 256,183.040z" />
562
+ <glyph unicode="&#xe058;" d="M 254.433,200.776c 36.321,0, 53.156-27.546, 56.689-66.683c 0.829-9.359-0.010-23.009-1.229-38.82C 305.818,42.762, 301.128-21.76, 336.077-21.76
563
+ c 29.594,0, 44.759,56.73, 53.545,121.405c 8.458,64.020-0.522,95.877, 3.912,124.314c 8.407,53.862, 55.419,102.154, 40.899,170.834
564
+ c-8.049,38.103-29.041,56.013-49.807,63.56c-47.862,17.418-78.787-16.148-130.191-16.148c-51.395,0-82.299,33.567-130.181,16.148
565
+ c-20.756-7.537-41.759-25.457-49.828-63.56c-14.49-68.68, 32.512-116.961, 40.95-170.834c 4.393-28.426-4.536-60.293, 3.912-124.314
566
+ C 128.051,34.97, 143.247-21.76, 172.81-21.76c 34.929,0, 30.269,64.522, 26.194,117.033c-1.188,15.821-2.089,29.471-1.239,38.83
567
+ C 201.288,173.23, 218.368,200.776, 254.433,200.776z" />
568
+ <glyph unicode="&#xe059;" d="M 201.38,345.129l-75.069,0 L 126.31,419.133 l 20.47,0 L 146.78,459.52 L 10.24,459.52 l0-40.387 l 20.48,0 l0-114.381 c0-29.737, 24.453-53.832, 54.61-53.832l 116.050,0 l0-20.193 l 40.97,0 L 242.35,365.302 l-40.97,0
569
+ L 201.38,345.129 zM 481.26,176.906l0,114.381 c0,29.727-24.443,53.832-54.569,53.832L 310.62,345.119 l0,20.173 l-40.97,0 l0-134.584 l 40.97,0 l0,20.204 l 75.080,0 l0-74.004 l-20.449,0
570
+ l0-40.387 L 501.76,136.52 l0,40.387 L 481.26,176.906 zM 470.743,25.385c0,20.419-37.253,77.486-37.253,77.486s-37.816-57.068-37.816-77.486c0-20.378, 16.814-36.905, 37.54-36.905
571
+ C 453.929-11.52, 470.743,5.007, 470.743,25.385z" />
572
+ <glyph unicode="&#xe05b;" d="M 94.925,285.44l 40.1,0 l 6.164-184.32L 89.59,101.12 L 94.925,285.44L 94.925,285.44z M 61.44,90.88l 389.12,0 l0-20.48 l 30.72,0 l0-30.72 l 20.48,0 l0-20.48 L 10.24,19.2 l0,20.48 l 20.48,0 l0,30.72 l 30.72,0 L 61.44,90.88 L 61.44,90.88z M 471.040,338.565L 256.020,428.8L 40.96,338.565L 40.96,326.4
573
+ l 430.080,0 L 471.040,338.565 L 471.040,338.565z M 81.92,316.16l 348.16,0 l0-20.48 L 81.92,295.68 L 81.92,316.16 z M 376.177,285.44l 40.079,0 l 6.216-184.32l-51.671,0 L 376.177,285.44z M 282.46,285.44l 40.079,0 l 6.144-184.32l-51.62,0 L 282.46,285.44
574
+ L 282.46,285.44z M 188.723,285.44l 40.090,0 l 6.103-184.32l-51.599,0 L 188.723,285.44z" />
575
+ <glyph unicode="&#xe05a;" d="M 277.668,202.957C 275.313,204.39, 276.48,205.711, 266.24,206.93l0-29.665 c0,0.287, 4.424,0.635, 5.612,1.044
576
+ c 7.598,2.662, 11.407,7.629, 11.407,14.858C 283.259,197.356, 281.385,200.653, 277.668,202.957zM 231.578,251.361c0-4.557, 2.079-7.987, 6.216-10.24c 1.587-0.891, 4.26-1.884, 7.956-2.959l0,28.068
577
+ c-3.011-0.707-5.652-1.772-7.875-3.226C 233.677,260.219, 231.578,256.328, 231.578,251.361zM 256,326.4c-50.903,0-92.16-45.855-92.16-102.4c0-56.535, 41.257-102.4, 92.16-102.4c 50.903,0, 92.16,45.865, 92.16,102.4C 348.16,280.545, 306.903,326.4, 256,326.4z M 295.465,166.103
578
+ C 288.512,160.164, 276.48,156.529, 266.24,155.156L 266.24,142.080 l-20.48,0 l0,13.312 c-10.691,1.454-19.548,3.072-26.501,8.55C 209.613,171.54, 204.8,183.040, 204.8,193.28l 25.477,0
579
+ c 0.829,0, 2.447-8.202, 4.864-11.1c 2.509-2.98, 6.072-3.328, 10.619-4.588l0,34.867 c-12.462,2.877-21.146,5.98-25.969,9.318
580
+ c-8.612,5.888-12.913,15.114-12.913,27.648c0,11.438, 4.209,20.941, 12.636,28.508c 6.431,5.786, 15.196,9.339, 26.245,10.711L 245.76,305.92 l 20.48,0 l0-17.818
581
+ c 10.24-1.526, 17.162-6.277, 23.552-11.018C 299.407,269.947, 306.176,264.96, 306.637,244.48l-25.661,0 c-0.481,10.24-5.622,14.664-12.001,17.9
582
+ C 268.636,262.543, 266.24,264.356, 266.24,264.499l0-32.184 l 9.236-1.782c 9.82-2.314, 18.903-5.407, 23.798-9.267c 7.619-6.021, 10.568-14.715, 10.568-26.081
583
+ C 309.862,183.511, 304.476,173.824, 295.465,166.103zM 440.32,357.12L 71.68,357.12 L0,357.12 l0-71.68 l0-122.88 l0-71.68 l 71.68,0 l 368.64,0 l 71.68,0 l0,71.68 L 512,285.44 l0,71.68 L 440.32,357.12 z M 491.52,159.785c-23.839-6.584-41.841-24.566-48.425-48.425L 68.905,111.36
584
+ c-6.595,23.839-24.576,41.841-48.425,48.425L 20.48,288.215 c 23.849,6.595, 41.83,24.576, 48.425,48.425l 374.426,0 c 6.881-23.112, 25.078-41.308, 48.189-48.189L 491.52,159.785 z
585
+ " />
586
+ <glyph unicode="&#xe05c;" d="M 303.278,480L 71.68,480 l0-512 l 112.64,0 L 184.32,131.84 l 118.958,0 c 127.631,0, 177.091,101.079, 177.091,184.525C 480.369,399.38, 430.909,480, 303.278,480z M 272.425,234.24L 184.32,234.24 L 184.32,387.84 l 88.105,0
587
+ c 52.357,0, 99-11.551, 99-76.667C 371.415,245.658, 324.782,234.24, 272.425,234.24zM-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76z" />
588
+ <glyph unicode="&#xe05d;" d="M 185.344,228.68L 91.095,281.825L 123.853,339.272L 218.122,286.157 zM 373.453,179.651L 214.2,269.353L 197.827,240.599L 357.059,150.886 zM 392.786,168.745L 376.361,140.012L 458.486,93.788L 474.911,122.491 zM 370.668,140.012c-1.26-2.243-4.7-2.775-7.69-1.137l0,0c-2.98,1.679-4.301,4.864-3.031,7.137l 19.2,33.638
589
+ c 1.321,2.284, 4.762,2.836, 7.721,1.137l0,0c 2.939-1.679, 4.27-4.936, 3-7.219L 370.668,140.012zM 491.827,121.59c-3.267,1.802-6.871,2.642-10.353,2.54l-21.002-36.782c 1.69-3.082, 4.209-5.775, 7.526-7.578
590
+ c 9.257-5.243, 20.9-2.222, 25.989,6.676l 5.386,9.523C 504.474,104.929, 501.115,116.347, 491.827,121.59zM 227.236,297.226c-2.468-4.465-8.090-5.96-12.544-3.502l-82.493,46.51c-4.465,2.478-5.97,8.059-3.471,12.524l0,0
591
+ c 2.509,4.383, 8.141,5.949, 12.595,3.42l 82.473-46.449C 228.219,307.2, 229.796,301.609, 227.236,297.226L 227.236,297.226zM 238.797,317.42c-2.54-4.454-8.161-5.96-12.564-3.482l-82.524,46.5c-4.434,2.478-5.99,8.069-3.451,12.462l0,0
592
+ c 2.478,4.454, 8.11,6.001, 12.595,3.492l 82.493-46.459C 239.8,327.424, 241.316,321.823, 238.797,317.42L 238.797,317.42zM 169.083,195.113c-2.54-4.403-8.161-5.898-12.585-3.42l-82.555,46.51c-4.424,2.458-5.97,8.059-3.461,12.524l0,0
593
+ c 2.509,4.321, 8.212,5.949, 12.585,3.42l 82.514-46.51C 170.015,205.169, 171.551,199.567, 169.083,195.113L 169.083,195.113zM 180.613,215.378c-2.509-4.454-8.131-5.949-12.636-3.43L 85.484,258.406c-4.403,2.529-5.97,8.12-3.471,12.524l0,0
594
+ c 2.55,4.444, 8.172,5.949, 12.605,3.43l 82.483-46.459C 181.524,225.382, 183.122,219.771, 180.613,215.378L 180.613,215.378zM 42.179,132.649L 187.628,132.649L 187.628,115.927L 42.179,115.927zM 219.392,97.772c-0.932,5.581-5.755,9.861-11.622,9.861L 22.077,107.633 c-5.857,0-10.711-4.28-11.622-9.861L 10.24,97.772 l0-27.382 l 209.367,0 l0,27.382
595
+ L 219.392,97.772 z" />
596
+ <glyph unicode="&#xe05e;" d="M 419.84,469.76L 92.16,469.76 C 69.632,469.76, 51.2,451.328, 51.2,428.8l0-409.6 c0-22.528, 18.432-40.96, 40.96-40.96l 327.68,0 c 22.528,0, 40.96,18.432, 40.96,40.96L 460.8,428.8 C 460.8,451.328, 442.368,469.76, 419.84,469.76z M 174.080,60.16c0-11.264-9.216-20.48-20.48-20.48l-40.96,0
597
+ c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,60.16 z M 174.080,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
598
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,142.080 z M 174.080,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 174.080,224 z M 296.96,60.16c0-11.264-9.216-20.48-20.48-20.48
599
+ l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,60.16 z M 296.96,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
600
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,142.080 z M 296.96,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 296.96,224 z M 419.84,60.16c0-11.264-9.216-20.48-20.48-20.48
601
+ l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,60.16 z M 419.84,142.080c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0
602
+ c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,142.080 z M 419.84,224c0-11.264-9.216-20.48-20.48-20.48l-40.96,0 c-11.264,0-20.48,9.216-20.48,20.48l0,10.24 c0,11.264, 9.216,20.48, 20.48,20.48l 40.96,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,224 z M 419.84,316.16c0-11.264-9.216-20.48-20.48-20.48
603
+ L 112.64,295.68 c-11.264,0-20.48,9.216-20.48,20.48L 92.16,398.080 c0,11.264, 9.216,20.48, 20.48,20.48l 286.72,0 c 11.264,0, 20.48-9.216, 20.48-20.48L 419.84,316.16 z" />
604
+ <glyph unicode="&#xe05f;" d="M 409.6,285.44l0-40.96 L 112.64,244.48 l0,40.96 L 409.6,285.44 M 419.84,295.68L 102.4,295.68 l0-61.44 l 317.44,0 L 419.84,295.68 L 419.84,295.68zM 261.755,449.628L0,264.96l 61.44,0 l0-36.936 L 61.44,39.68 l 40.96,0 L 102.4,193.28 l 81.92,0 l0-153.6 l 26.931,0 L 460.8,39.68 l0,8.98 L 460.8,228.024 L 460.8,264.96 l 51.2,0 L 261.755,449.628z M 430.080,101.12L 235.52,101.12 l0,92.16 l 194.56,0 L 430.080,101.12 z M 430.080,224L 92.16,224 l0,81.92 l 337.92,0 L 430.080,224
605
+ z" />
606
+ <glyph unicode="&#xe060;" d="M 512-32l-0.154,256.604c0,141.117-114.545,255.447-255.662,255.447c-141.117,0-255.662-114.412-255.662-255.539l 2.058-256.87L 61.44-32.215
607
+ l0,256.717 C 61.44,334.49, 146.043,423.639, 256,423.639c 109.978,0, 194.56-89.16, 194.56-199.148L 450.56-32 L 512-32 zM 339.937,60.918c0,0.276-0.297,0.778-0.942,1.72c0,0.266, 0.164,0.461, 0.492,0.635c 0.266,0.143, 0.451,0.307, 0.451,0.635
608
+ c 8.806,3.635, 16.804,8.090, 23.951,13.414c 7.148,5.345, 11.325,13.169, 13.804,23.511C 377.969,102.031, 378.88,104.817, 378.88,109.066L 378.88,322.601
609
+ c0,5.151-0.911,10.496-3.963,15.933c-3.031,5.53-6.523,10.476-11.162,14.868c-4.495,4.352-9.431,7.383-15.073,10.301
610
+ C 343.050,366.592, 337.787,367.36, 332.595,367.36L 317.44,367.36 L 194.56,367.36 l-14.766,0 c-4.874,0-10.117-0.686-15.77-3.43c-5.642-2.734-10.834-5.908-15.524-10.189
611
+ c-4.7-4.229-8.172-8.858-11.223-14.152C 134.267,334.193, 133.12,329.165, 133.12,323.942l0-216.719 c0-3.615, 0.553-7.455, 2.335-11.366
612
+ c 1.833-3.983, 3.901-7.7, 6.636-11.141c 2.744-3.564, 5.622-6.769, 8.827-9.636c 3.195-2.888, 6.226-5.243, 9.298-7.045
613
+ c 1.485-0.625, 4.127-1.577, 7.956-2.775c 3.779-1.219, 5.519-1.946, 5.233-2.519L 110.889-32l 36.465,0 l 45.65,61.44L 318.976,29.44 l 45.588-61.44l 36.925,0
614
+ L 339.937,60.918z M 204.8,346.88c0,5.632, 4.608,10.24, 10.24,10.24l 81.92,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-10.24 c0-5.632-4.608-10.24-10.24-10.24l-81.92,0 c-5.632,0-10.24,4.608-10.24,10.24L 204.8,346.88 z M 164.495,296.858
615
+ c 1.362,2.888, 2.427,5.509, 4.547,7.977c 2.161,2.437, 4.321,5.939, 7.199,7.465C 179.118,313.836, 181.77,316.16, 184.812,316.16L 194.56,316.16 l 122.88,0 l 9.267,0
616
+ c 2.734,0, 5.448-2.202, 8.202-3.359c 2.744-1.229, 5.243-3.717, 7.547-5.827c 2.273-2.12, 3.174-4.833, 4.588-7.26
617
+ C 348.385,297.339, 348.16,294.328, 348.16,291.594l0-48.374 c0-2.765, 0.133-5.335-1.362-7.936c-1.516-2.662-3.052-4.956-5.509-6.932
618
+ c-2.447-1.935-4.772-2.437-7.506-3.615C 331.039,223.447, 328.52,224, 325.816,224L 185.723,224 c-0.338,0-1.096-0.952-2.304-0.707
619
+ c-1.208,0.328-2.15,0.092-2.765,0.399c-5.151,0.901-8.315,3.369-12.288,7.936C 164.424,236.227, 163.84,240.916, 163.84,246.405l0,41.513
620
+ C 163.84,290.959, 163.144,293.949, 164.495,296.858z M 203.274,99.482c-4.7-4.864-10.588-7.291-17.551-7.291c-6.994,0-12.708,2.427-17.132,7.291
621
+ c-4.424,4.854-6.615,10.834-6.615,17.807c0,6.39, 2.304,11.93, 6.851,16.63c 4.557,4.731, 10.199,7.096, 16.896,7.096
622
+ c 6.963,0, 12.841-2.243, 17.551-6.584c 4.721-4.485, 7.086-10.26, 7.086-17.623C 210.36,110.111, 207.995,104.325, 203.274,99.482z M 307.753,99.482
623
+ c-4.69,4.854-7.055,10.834-7.055,17.807c0,7.025, 2.488,12.667, 7.516,17.152c 5.048,4.342, 10.885,6.584, 17.613,6.584
624
+ c 6.943,0, 12.657-2.365, 17.060-7.096c 4.434-4.7, 6.646-10.24, 6.646-16.63c0-6.984-2.263-12.964-6.871-17.807
625
+ c-4.547-4.864-10.332-7.291-17.336-7.291C 318.331,92.191, 312.494,94.618, 307.753,99.482z" />
626
+ <glyph unicode="&#xe061;" d="M 122.88,469.76L 215.040,469.76L 215.040,398.080L 122.88,398.080zM 314.604,174.623c-8.94,0-17.644,9.124-17.644,18.125L 296.96,377.6 l 145.275,0 l 59.689-254.751L 501.76,107.735L 501.76-5.478 c0-8.704-7.24-16.282-15.862-16.282
627
+ L 348.467-21.76 C 339.937-21.76, 337.92-14.182, 337.92-5.478L 337.92,172.8 l-20.48,0 M 197.437,174.418c 8.868,0, 17.603,8.796, 17.603,17.859L 215.040,377.6 L 69.857,377.6 L 10.097,122.706L 10.24,107.264l0-113.183 C 10.24-14.664, 17.48-21.76, 26.092-21.76l 137.267,0
628
+ C 172.104-21.76, 174.080-14.664, 174.080-5.919L 174.080,172.8 l 20.48,0 M 235.52,377.6L 276.48,377.6L 276.48,203.52L 235.52,203.52zM 296.96,469.76L 399.36,469.76L 399.36,398.080L 296.96,398.080z" />
629
+ <glyph unicode="&#xe062;" d="M 261.673,109.599c 36.874-172.145, 244.931-31.222, 38.298,88.689c 227.738-132.178, 228.28,183.46, 0.461,51.384
630
+ c 227.82,132.065-44.206,289.946-44.257,25.692c 0.051,264.253-272.015,106.496-44.308-25.692c-227.707,132.198-227.973-183.45-0.195-51.364
631
+ c-206.746-119.849, 0.84-260.936, 37.724-88.443L 261.673,109.599z M 228.772,223.969c0,15.217, 12.268,27.525, 27.382,27.525
632
+ c 15.124,0, 27.372-12.308, 27.372-27.525c0-15.196-12.247-27.525-27.372-27.525C 241.050,196.454, 228.772,208.773, 228.772,223.969z" />
633
+ <glyph unicode="&#xe063;" d="M 500.675,324.823L 460.38,8.96L 324.28,8.96 l-40.131,317.44l 166.154,0 l 32.84,113.428L 501.76,434.217l-31.508-109.158L 500.675,324.823zM 264.909,142.080c0,0, 5.089,40.96-65.485,40.96L 87.030,183.040 c-70.472,0-65.485-40.96-65.485-40.96L 264.909,142.080 zM 21.545,49.92c0,0-4.987-40.96, 65.485-40.96l 112.404,0 c 70.574,0, 65.485,40.96, 65.485,40.96L 21.545,49.92 zM 254.351,70.4c 11.551,0, 20.879,11.407, 20.879,25.59c0,14.264-9.329,25.61-20.879,25.61L 31.13,121.6
634
+ C 19.63,121.6, 10.24,110.254, 10.24,95.99C 10.24,81.807, 19.63,70.4, 31.13,70.4L 254.351,70.4 z" />
635
+ <glyph unicode="&#xe064;" d="M-163.84,469.76L-163.84,469.76L-163.84,469.76L-163.84,469.76zM 481.28,387.84L 327.68,387.84 c0,0-10.24-81.92, 10.24-163.84c 8.233-13.722, 28.57-21.115, 51.2-22.989L 389.12,101.12 l-3.41,0 L 348.16,70.4l 112.64,0 l-36.7,30.72L 419.84,101.12 l0,100.639
636
+ c 21.709,2.816, 41.605,10.383, 51.2,22.241C 491.52,295.68, 481.28,387.84, 481.28,387.84z M 471.040,326.4L 337.92,326.4 l0,51.2 l 133.12,0 L 471.040,326.4 zM 220.16,101.12L 163.84,101.12 l0,87.040 L 276.48,357.12L 10.24,357.12 l 112.64-168.96L 122.88,101.12 L 66.56,101.12 C 58.071,101.12, 51.2,94.239, 51.2,85.76S 58.071,70.4, 66.56,70.4l 153.6,0 c 8.489,0, 15.36,6.881, 15.36,15.36
637
+ S 228.649,101.12, 220.16,101.12z" />
638
+ <glyph unicode="&#xe065;" d="M 256,469.76l 72.52-123.965L 471.040,345.764l-71.25-121.754L 471.040,102.216l-142.5-0.020L 256-21.76l-72.53,123.955L 40.96,102.216l 71.25,121.795L 40.96,345.764
639
+ l 142.52,0.031L 256,469.76z M 163.041,223.898L 209.009,142.080l 93.85,0 l 46.090,81.818L 302.868,305.92l-93.706,0 L 163.041,223.898z M 353.679,142.080l 41.38,0 l-20.675,35.359
640
+ L 353.679,142.080z M 116.91,142.080l 41.39,0 l-20.705,35.369L 116.91,142.080z M 235.428,346.88l 41.39,0 l-20.695,35.348L 235.428,346.88z M 374.385,270.582L 395.059,305.92l-41.38,0
641
+ L 374.385,270.582z M 137.595,270.561L 158.29,305.92l-41.39,0 L 137.595,270.561z M 256.123,65.792L 276.818,101.12L 235.418,101.12 L 256.123,65.792z" />
642
+ <glyph unicode="&#xe066;" d="M 467.958,232.755l-80.794,136.12C 383.949,374.856, 376.187,377.6, 369.541,377.6L 296.96,377.6 L 296.96,439.040 c0,11.264-9.216,20.48-20.48,20.48l-51.2,0 c-11.264,0-20.48-9.216-20.48-20.48l0-61.44 l-61.030,0
643
+ c-6.656,0-14.746-2.744-17.961-8.724L 44.698,231.68C 31.375,231.68, 20.48,221.573, 20.48,207.903l0-124.303 C 20.48,69.929, 31.375,60.16, 44.698,60.16L 71.68,60.16 l0-38.707
644
+ C 71.68,0.932, 85.279-11.52, 105.257-11.52l 12.114,0 C 137.349-11.52, 153.6,0.932, 153.6,21.453L 153.6,60.16 l 204.8,0 l0-38.707 c0-20.521, 17.551-32.973, 37.53-32.973l 12.124,0
645
+ C 428.032-11.52, 440.32,0.932, 440.32,21.453L 440.32,60.16 l 28.293,0 C 481.925,60.16, 491.52,69.929, 491.52,83.599L 491.52,207.903 C 491.52,221.573, 481.28,232.755, 467.958,232.755z M 87.091,133.325
646
+ c-16.722,0-30.29,13.906-30.29,31.068c0,17.172, 13.558,31.078, 30.29,31.078s 30.28-13.906, 30.28-31.078
647
+ C 117.371,147.231, 103.823,133.325, 87.091,133.325z M 105.257,234.24l 55.132,96.020C 163.379,336.384, 171.274,336.64, 177.93,336.64l 157.45,0
648
+ c 6.656,0, 14.551-0.256, 17.531-6.38L 408.054,234.24L 105.257,234.24 z M 426.209,133.325c-16.712,0-30.28,13.906-30.28,31.068
649
+ c0,17.172, 13.568,31.078, 30.28,31.078c 16.722,0, 30.29-13.906, 30.29-31.078C 456.499,147.231, 442.931,133.325, 426.209,133.325z" />
650
+ <glyph unicode="&#xe067;" d="M 499.292,395.735C 496.814,406.876, 496.66,408.32, 471.644,408.32l-25.149,0 l-5.028,13.814c-6.636,20.040-28.938,39.137-51.159,44.708
651
+ c-12.861,3.215-58.675,3.779-170.486,3C 79.258,468.859, 65.71,468.060, 51.804,461.804C 20.675,447.816, 3.523,412.549, 12.718,381.491
652
+ c 6.42-21.647, 19.917-37.673, 39.086-46.285c 13.896-6.246, 27.443-6.902, 168.008-7.875c 111.8-0.788, 157.624,0.102, 170.476,3.328
653
+ c 22.292,5.581, 44.534,25.364, 51.231,45.588c 5.048,15.206, 5.274,15.36, 21.76,14.275l 16.64-1.096l 1.106-52.49l 1.096-52.48l-48.773-11.52
654
+ c-26.788-6.339-60.344-14.438-74.547-18.012c-14.193-3.564-48.589-11.93-76.431-18.586l-50.627-12.114l-0.010-26.583
655
+ c-0.010-26.419, 2.304-26.665-13.476-39.854L 204.8,144.527l0-83.149 l0,0L 204.8-21.76 l 34.857,0 L 276.48-21.76 l0,83.139 l0,83.149 l-14.653,13.435
656
+ c-15.626,13.066-15.34,14.019-14.152,34.12l 1.546,20.664l 18.063,4.495c 9.841,2.488, 41.185,10.107, 69.581,16.978
657
+ c 28.396,6.851, 77.148,18.616, 108.288,26.153L 501.76,274.053l0,54.559 C 501.76,358.595, 500.644,389.55, 499.292,395.735z M 253.696,22.927
658
+ c0-8.622-1.628-10.404-10.394-11.315c-11.039-1.126-15.811,4.342-13.455,15.401c 0.922,4.311, 4.721,6.175, 12.585,6.175
659
+ C 252.426,33.178, 253.696,32.010, 253.696,22.927z" />
660
+ <glyph unicode="&#xe068;" d="M 354.724,92.856c0,0.348-0.399,1.065-1.157,2.212c0,0.328, 0.215,0.625, 0.584,0.829c 0.358,0.215, 0.584,0.44, 0.584,0.829
661
+ c 10.762,4.444, 20.541,9.943, 29.297,16.425c 8.745,6.554, 14.602,16.118, 17.623,28.764c 0.317,1.495, 1.116,4.905, 2.202,10.117L 403.855,413.368
662
+ c0,6.308-1.884,12.851-5.601,19.507c-3.717,6.769-8.356,12.82-13.978,18.196c-5.56,5.325-11.756,9.841-18.678,13.425
663
+ C 358.676,468.019, 352.082,469.76, 345.743,469.76L 158.71,469.76 c-5.97,0-12.411-1.638-19.302-4.987c-6.912-3.359-13.251-7.649-18.985-12.872
664
+ c-5.755-5.171-10.516-11.059-14.234-17.541c-3.727-6.605-5.601-12.974-5.601-19.354l0-265.226 c0-4.465, 1.178-9.124, 3.348-13.957
665
+ c 2.253-4.854, 5.038-9.39, 8.376-13.629c 3.338-4.362, 7.014-8.264, 10.926-11.776s 7.711-6.42, 11.448-8.643
666
+ c 1.802-0.758, 5.11-1.925, 9.8-3.41c 4.588-1.475, 6.738-2.57, 6.39-3.287L 74.322-21.105l 44.657,0 l 55.88,80.988l 154.163,0 l 55.818-80.988L 430.080-21.105
667
+ L 354.724,92.856z M 207.811,447.447c0,1.874, 0.891,3.789, 2.796,5.888c 1.833,2.038, 3.686,3.021, 5.581,3.021l 71.496,0
668
+ c 0.717,0, 2.263-0.717, 4.485-2.181c 2.202-1.495, 3.318-2.98, 3.318-4.465l0-27.361 c0-1.874-0.942-3.594-2.775-5.018
669
+ c-1.884-1.536-3.584-2.314-5.018-2.314l-72.038,0 c-1.167,0.778-1.874,1.331-2.273,1.772c-1.075,0.717-2.324,1.7-3.615,3.082
670
+ c-1.311,1.249-1.956,2.621-1.956,4.106L 207.811,447.447 z M 135.752,370.934c0,3.717, 0.881,7.363, 2.529,10.916c 1.659,3.533, 3.82,6.758, 6.42,9.779
671
+ c 2.621,2.99, 5.693,5.335, 9.196,7.209c 3.564,1.884, 7.219,2.806, 10.936,2.806l 173.701,0 c 3.297,0, 6.656-0.778, 10.004-2.191
672
+ c 3.359-1.495, 6.42-3.584, 9.236-6.164C 360.581,390.707, 362.783,387.84, 364.483,384.87c 1.659-2.908, 2.478-6.103, 2.478-9.452l0-59.218
673
+ c0-3.359-0.901-6.533-2.765-9.728c-1.864-3.246-4.28-6.052-7.26-8.468c-3.021-2.376-6.124-4.342-9.503-5.775
674
+ c-3.338-1.587-6.697-2.253-10.025-2.253L 165.949,289.976 c-0.41,0-1.341,0.174-2.826,0.502c-1.475,0.389-2.621,0.758-3.369,1.157
675
+ c-6.298,1.085-11.868,4.454-16.722,10.056c-4.854,5.591-7.281,11.715-7.281,18.401L 135.752,370.934 z M 187.453,140.268
676
+ c-5.765-5.949-12.984-8.919-21.504-8.919c-8.571,0-15.565,2.97-20.992,8.919c-5.386,5.939-8.079,13.251-8.079,21.821
677
+ c0,7.813, 2.806,14.582, 8.407,20.337c 5.571,5.786, 12.462,8.714, 20.664,8.714c 8.52,0, 15.729-2.765, 21.504-8.079
678
+ c 5.775-5.458, 8.653-12.554, 8.653-21.555C 196.106,153.303, 193.229,146.207, 187.453,140.268z M 315.341,140.268
679
+ c-5.755,5.939-8.684,13.251-8.684,21.821c0,8.581, 3.062,15.514, 9.216,20.972c 6.164,5.325, 13.322,8.079, 21.545,8.079
680
+ c 8.499,0, 15.524-2.918, 20.92-8.714c 5.376-5.755, 8.12-12.534, 8.12-20.337c0-8.571-2.816-15.882-8.397-21.821
681
+ c-5.622-5.949-12.657-8.919-21.258-8.919C 328.264,131.348, 321.096,134.318, 315.341,140.268z" />
682
+ <glyph unicode="&#xe069;" d="M 256,260.116c 28.713,0, 52.818-19.456, 59.628-45.763c 8.561-32.983, 7.404-69.13, 45.036-87.9c 33.403-11.366, 46.039-25.651, 46.039-63.949
683
+ c0-30.566-26.153-63.058-59.873-67.113c-37.704-5.663-67.052,1.741-90.839,15.299c-23.788-13.558-53.146-20.972-90.798-15.299
684
+ c-33.741,4.055-59.884,36.659-59.884,67.113c0,37.478, 13.486,53.34, 46.828,64.205c 41.032,20.961, 35.523,57.702, 44.677,89.262
685
+ C 204.216,241.469, 227.912,260.116, 256,260.116L 256,260.116z M 443.976,282.89c-10.168,8.837-51.671-25.661-64.727-42.721
686
+ c-7.936-9.103-12.872-21.617-12.872-35.42c0-27.761, 19.866-50.268, 44.308-50.268c 18.596,0, 34.509,12.933, 41.093,31.324
687
+ C 464.568,218.88, 465.275,264.397, 443.976,282.89L 443.976,282.89z M 68.004,282.89C 46.735,264.397, 47.421,218.88, 60.232,185.805
688
+ c 6.584-18.391, 22.487-31.324, 41.073-31.324c 24.463,0, 44.308,22.508, 44.308,50.268c0,13.804-4.925,26.317-12.861,35.42
689
+ C 119.685,257.229, 78.193,291.727, 68.004,282.89L 68.004,282.89z M 310.63,464.21c 103.301-17.531, 96.051-191.508, 13.343-177.49
690
+ c-23.859,4.055-41.574,25.784-44.268,51.743C 276.972,364.861, 270.817,470.948, 310.63,464.21L 310.63,464.21z M 201.37,464.21
691
+ c 39.823,6.748, 33.659-99.338, 30.925-125.737c-2.693-25.969-20.388-47.688-44.247-51.743C 105.318,272.691, 98.079,446.679, 201.37,464.21z" />
692
+ <glyph unicode="&#xe06a;" d="M 461.844,376.781c 5.622,5.622, 13.537,11.735, 21.617,19.108l 7.465,6.257l-20.347,22.835L 463.933,418.765
693
+ c-28.119-25.549-45.036-40.991-53.299-72.643c-8.202-31.468-8.53-63.324-7.67-93.102c 0.901-30.7, 2.058-50.954, 10.639-73.544l 3.236-8.325
694
+ c 8.233-20.716, 20.695-52.009, 20.695-92.262c0-48.63-19.702-73.298-58.552-73.298c-35.348,0-54.415,23.593-56.648,70.205
695
+ c-1.014,20.654, 4.782,46.152, 10.875,73.093c 5.151,22.743, 10.455,46.275, 13.066,71.25c 2.888,27.535-0.727,47.217-11.305,59.034
696
+ C 321.393,294.339, 300.493,295.68, 282.081,295.68L 276.48,295.68 L 276.48,437.617 C 276.48,449.905, 267.561,459.52, 255.345,459.52L 43.981,459.52 C 31.785,459.52, 20.48,449.905, 20.48,437.617L 20.48-11.52 l 256,0 L 276.48,264.96 l 5.612,0
697
+ c 12.595,0, 25.641-1.413, 30.075-6.359c 2.376-2.662, 6.021-11.284, 3.615-34.54c-2.427-23.183-7.567-46.111-12.524-67.953
698
+ c-6.564-29.071-12.79-56.719-11.561-81.644c 3.021-63.273, 34.857-99.635, 87.286-99.635c 55.88,0, 89.242,38.892, 89.242,104.12
699
+ c0,46.172-14.285,82.145-22.856,103.7l-3.092,7.854c-6.164,16.271-7.547,31.355-8.397,57.672c 9.861,0.225, 21.801,0.461, 27.167,0.461
700
+ c 12.278,0, 18.452,7.199, 21.084,19.671c 1.536,7.27-0.84,16.804-0.84,34.109l0,4.588 C 481.28,352.748, 474.286,365.814, 461.844,376.781z M 245.76,285.44L 51.2,285.44 L 51.2,418.56 l 194.56,0
701
+ L 245.76,285.44 z M 450.56,302.377c0-8.94, 2.355-17.49, 2.058-22.927c-6.124-0.092-13.169-0.256-20.337-0.42c 0.266,19.753, 2.458,39.864, 7.506,59.228
702
+ c 1.372,5.161, 0.963,9.708, 3.031,13.947C 448.276,346.952, 450.56,339.077, 450.56,306.985L 450.56,302.377 z" />
703
+ <glyph unicode="&#xe06b;" d="M 258.478,458.609L 10.24,244.48l 61.44,0 l0-256 l 368.64,0 L 440.32,244.48 l 61.44,0 L 258.478,458.609z M 348.16,172.8l-71.68,0 l0-123.781 L 276.009,49.92l-48.896,0 L 225.28,49.019L 225.28,172.8 l-61.44,0 l0,40.96 l 61.44,0 l0,92.16 l 51.2,0 l0-92.16 l 71.68,0 L 348.16,172.8 z" />
704
+ <glyph unicode="&#xe06c;" d="M 256,469.76C 154.235,469.76, 71.68,388.772, 71.68,288.881L 71.68-21.76 l 368.64,0 L 440.32,288.881 C 440.32,388.772, 357.827,469.76, 256,469.76z" />
705
+ <glyph unicode="&#xe06d;" d="M 323.277,171.192c0,0-19.22,48.056-37.868,93.942c0,0-6.246,27.576-1.362,64.174c0,0, 13.271,55.941, 5.888,82.391
706
+ c0,0-11.336,22.661-34.888,24.238c0,0-32.502-2.294-38.574-33.915c0,0-1.587-18.227, 3.461-39.26c0,0, 18.196-69.601-1.761-115.026
707
+ c0,0-27.843-58.173-30.054-71.496c0,0-10.424-56.996-0.164-98.97c0,0, 21.545-71.813, 37.315-95.601c0,0, 31.99-8.161, 59.433,0.727
708
+ c0,0, 32.901,53.268, 39.475,101.407C 324.198,83.804, 332.411,134.666, 323.277,171.192zM 425.769,205.025c0,0-19.21,48.067-37.939,93.932c0,0-6.236,27.587-1.372,64.123c0,0, 13.292,55.941, 5.888,82.452
709
+ c0,0-11.284,22.661-34.857,24.218c0,0-32.512-2.284-38.574-33.894c0,0-1.597-18.237, 3.512-39.27c0,0, 18.207-69.663-1.812-115.016
710
+ c0,0-4.321-9.124-9.708-20.818c 17.48-42.957, 34.273-84.92, 34.273-84.92l 0.266-0.727l 0.174-0.717c 9.605-38.205, 1.434-89.569, 1.137-91.474
711
+ c-3.113-22.876-11.735-46.264-20.244-65.331c 0.379-0.686, 0.85-1.475, 1.26-2.079c0,0, 31.959-8.172, 59.433,0.778
712
+ c0,0, 32.881,53.197, 39.465,101.366C 426.67,117.658, 434.913,168.509, 425.769,205.025zM 196.864,252.099c 1.085,2.386, 1.987,5.018, 2.836,7.598c-4.997,12.411-10.445,25.743-15.821,39.035c0,0-6.308,27.648-1.372,64.174
713
+ c0,0, 13.281,55.89, 5.908,82.401c0,0-11.336,22.671-34.898,24.228c0,0-32.532-2.345-38.564-33.833c0,0-1.577-18.309, 3.523-39.281
714
+ c0,0, 18.207-69.642-1.812-115.067c0,0-27.843-58.184-30.065-71.496c0,0-10.435-57.006-0.164-98.97c0,0, 21.545-71.823, 37.304-95.549
715
+ c0,0, 32-8.233, 59.433,0.737c0,0, 0.635,0.993, 1.71,2.847c-10.035,26.399-18.248,53.576-18.872,55.767c-10.67,43.745-0.399,101.079,0,103.27
716
+ C 168.325,192.133, 192.215,242.473, 196.864,252.099z" />
717
+ <glyph unicode="&#xe06e;" d="M 83.446,315.525l 62.054,0 l-0.543-36.608l-61.512-55.357L 83.446,315.525 L 83.446,315.525zM 255.048,335.79L 10.24,119.869L 36.045,90.88l 220.006,194.089L 476.017,90.88L 501.76,119.869L 256.993,335.79L 256,336.64L 255.048,335.79z" />
718
+ <glyph unicode="&#xe06f;" d="M 359.434,372.951c 19.241,0, 34.806,16.005, 34.806,35.789c0,19.661-15.575,35.676-34.806,35.676c-19.098,0-34.683-16.005-34.683-35.676
719
+ C 324.751,388.956, 340.326,372.951, 359.434,372.951zM 385.3,364.943l-50.698,0 l-86.405,88.893c-6.748,7.301-17.961,7.649-25.068,0.594c-7.096-6.943-7.444-18.483-0.676-25.784
720
+ l 90.296-93.010l0-308.244 c0-11.182, 8.704-20.122, 19.456-20.122c 10.875,0, 19.569,8.94, 19.569,20.122L 351.775,194.58 l 15.79,0 l 0.123-167.199
721
+ c0-11.182, 8.806-20.122, 19.558-20.122c 10.783,0, 19.466,8.94, 19.466,20.122L 406.6,335.616l 90.307,93.010c 6.748,7.301, 6.4,18.842-0.696,25.784
722
+ c-7.086,7.055-18.309,6.717-25.068-0.594L 385.3,364.943zM 201.605,228.956c-5.263,5.54-12.483,8.827-20.48,8.827l-72.694,0 c-8.008,0-15.217-3.297-20.367-8.827l-72.919-75.008
723
+ c-6.748-7.301-6.513-18.831, 0.584-25.784c 7.086-6.943, 18.432-6.707, 25.068,0.594l 56.535,58.163l0-77.701 L 33.925,109.22
724
+ c-11.663,0-21.074-9.646-21.074-21.668c0-6.236, 2.294-11.776, 6.42-15.78l 71.414-73.462c 6.298-9.544, 18.657-12.605, 28.508-6.707
725
+ c 10.404,6.113, 13.855,19.651, 7.895,30.239l-40.745,41.81l 0.799-0.113l 116.972,0 l-40.858-41.8c-5.837-10.598-2.406-24.136, 7.885-30.249
726
+ c 9.851-5.898, 22.333-2.847, 28.631,6.697l 71.414,73.462c 4.106,4.014, 6.41,9.554, 6.41,15.78c0,12.022-9.39,21.658-21.053,21.658l-63.304,0
727
+ l0,76.892 l 55.511-57.334c 6.758-7.311, 17.961-7.547, 25.057-0.594c 7.096,6.943, 7.342,18.483, 0.584,25.774L 201.605,228.956zM 145.531,245.443c 19.108,0, 34.56,15.995, 34.56,35.676c0,19.784-15.452,35.676-34.56,35.676c-19.128,0-34.703-15.892-34.703-35.676
728
+ C 110.828,261.437, 126.413,245.443, 145.531,245.443z" />
729
+ <glyph unicode="&#xe070;" d="M 117.371,469.76c-13.957,0-25.211-11.54-25.211-25.866l0-25.866 l0-25.876 l0-155.208 l0-232.817
730
+ c0-12.923, 12.605-25.876, 25.211-25.876c 12.595,0, 25.201,12.964, 25.201,25.876l0,265.155 c 8.612,3.758, 16.988,6.472, 25.211,6.472
731
+ c 50.412,0, 124.774-64.686, 176.445-64.686c 22.026,0, 53.565,8.919, 75.612,25.876l0,181.084 c-25.006-19.241-50.34-38.81-75.612-38.81
732
+ c-50.412,0-125.86,64.676-176.445,64.676c-8.499,0-16.794-1.556-25.211-3.236l0,3.236 C 142.572,458.22, 131.318,469.76, 117.371,469.76z" />
733
+ <glyph unicode="&#xe071;" d="M 79.288,256.768l 35.686,0 l0-229.376 l 53.545,0 L 168.52,224 l 53.545,0 l0-196.608 l 53.535,0 L 275.599,224 l 53.555,0 l0-196.608 l 53.545,0 L 382.7,256.768 l 35.676,0 c 9.861,0, 17.859,7.332, 17.859,16.384
734
+ c0,5.468-2.949,10.281-7.444,13.251l 0.031,0.031l-0.266,0.154c-0.154,0.102-0.317,0.184-0.461,0.276l-170.342,88.156L 257.751,400.845
735
+ c 31.457-14.459, 57.354,10.445, 98.15-4.526L 355.901,453.366 c-40.817,14.971-66.703-9.912-98.15,4.536L 257.751,461.568 c0,4.536-3.983,8.192-8.919,8.192
736
+ S 239.923,466.104, 239.923,461.568l0-86.548 L 69.581,286.884c-0.154-0.092-0.307-0.195-0.461-0.276l-0.256-0.174l0-0.031
737
+ c-4.475-2.97-7.414-7.793-7.414-13.251C 61.44,264.1, 69.437,256.768, 79.288,256.768zM 97.126,10.998L 61.44-21.76L 436.244-21.76L 400.538,10.998 z" />
738
+ <glyph unicode="&#xe072;" d="M 421.499,224L 93.614,224 c-9.554,0-17.418,8.212-17.418,17.551c0,1.556, 0.287,3.318, 0.604,4.731l 17.449,121.846
739
+ C 95.734,376.044, 102.861,377.6, 111.391,377.6l 292.383,0 c 8.468,0, 15.657-1.423, 17.121-9.308l 17.449-124.068c 0.266-1.444, 0.614-2.294, 0.614-3.85
740
+ C 438.948,231.035, 431.043,224, 421.499,224z M 408.381,87.347c-18.463,0-33.434,14.531-33.434,32.645c0,17.992, 14.971,32.502, 33.434,32.502
741
+ c 18.34,0, 33.341-14.51, 33.341-32.502C 441.723,101.878, 426.721,87.347, 408.381,87.347z M 106.291,87.347c-18.33,0-33.311,14.531-33.311,32.645
742
+ c0,17.992, 14.981,32.502, 33.311,32.502c 18.514,0, 33.464-14.51, 33.464-32.502C 139.756,101.878, 124.805,87.347, 106.291,87.347z M 163.84,449.28l 204.8,0 l0-30.72 L 163.84,418.56
743
+ C 143.36,418.56, 143.36,449.28, 163.84,449.28z M 452.628,402.278c-5.98,28.805-23.45,40.407-51.948,51.999c-28.447,11.551-94.372,25.395-143.954,25.395
744
+ c-49.797,0-116.060-13.855-144.538-25.395C 83.702,442.675, 66.519,431.084, 60.59,402.278L 40.96,241.93L 40.96,19.2 l 30.72,0 l0-20.48 c0-40.96, 51.2-40.96, 51.2,0l0,20.48 l 256,0 l0-20.48 c0-40.96, 61.44-40.96, 61.44,0l0,20.48 l 30.72,0
745
+ L 471.040,241.93 L 452.628,402.278z" />
746
+ <glyph unicode="&#xe073;" d="M 175.104,213.76l 152.269,0 l-50.104,133.12l-51.948,0 L 175.104,213.76z M 92.16,346.88L 92.16,387.84 l 327.68,0 l0-40.96 l-80.599,0 l 50.227-133.12L 512,213.76 l0-40.96 L 408.197,172.8 l 58.665-143.36l-56.924,0 l-58.655,143.36L 161.608,172.8
747
+ L 103.219,29.44L 46.285,29.44 l 58.337,143.36L0,172.8 l0,40.96 l 123.31,0 l 50.186,133.12L 92.16,346.88 z" />
748
+ <glyph unicode="&#xe074;" d="M 471.040,152.32l0-81.92 l 40.96,0 L 512,193.28 L 40.96,193.28 L 40.96,360.602 c0,11.5-8.899,20.91-20.48,20.91l0,0c-11.54,0-20.48-9.4-20.48-20.91L0,70.4 l 40.96,0 l0,81.92 L 471.040,152.32 zM 105.779,276.716c 20.9,0, 37.755,16.927, 37.755,37.827c0,20.756-16.855,37.632-37.755,37.632c-20.869,0-37.714-16.865-37.714-37.632
749
+ C 68.065,293.652, 84.91,276.716, 105.779,276.716zM 512,224l-0.143,49.879c-0.133,16.445-13.926,26.808-30.095,28.764L 185.242,331.653c-0.532,0.143-1.71,0.092-2.202,0.092
750
+ c-10.301,0-19.2-8.54-19.2-18.79L 163.84,254.72 L 87.521,254.72 c-10.353,0-18.698-5.12-18.698-15.35C 68.823,228.977, 77.169,224, 87.521,224L 512,224 z" />
751
+ <glyph unicode="&#xe075;" d="M 61.44-6.4c0-12.626, 7.864-20.48, 20.48-20.48c 12.646,0, 20.48,7.854, 20.48,20.48L 102.4,183.040 l 20.48,0 l0-189.44 c0-12.605, 7.854-20.48, 20.48-20.48c 12.626,0, 20.48,7.854, 20.48,20.48L 163.84,316.16 l 10.24,0 l0-115.855
752
+ c0-24.525, 30.781-24.525, 30.72,0L 204.8,324.751 C 204.8,351.846, 185.283,367.36, 153.6,367.36L 71.68,367.36 c-28.877,0-51.2-12.483-51.2-41.851L 20.48,193.28 c0-20.48, 30.72-20.48, 30.72,0L 51.2,316.16 l 10.24,0 L 61.44-6.4 zM 470.149,147.2l-60.508,166.267c-0.225,0.522-0.348,1.106-0.348,1.71c0,2.427, 2.038,4.393, 4.577,4.393
753
+ c 2.161,0, 3.973-1.444, 4.454-3.369L 459.459,208.64c 2.734-6.154, 13.978-10.24, 21.371-10.24c 9.882,0, 10.906,19.405, 10.691,20.48l-41.134,103.496
754
+ C 446.812,346.143, 422.81,367.36, 395.418,367.36L 341.811,367.36 c-27.392,0-53.166-21.217-56.75-44.984l-39.291-104.776c-0.891-2.038,0-19.845, 10.691-19.845
755
+ c 8.305,0, 19.354,3.215, 21.361,10.557l 39.68,108.175c 0.635,1.7, 2.345,2.99, 4.321,2.99c 2.519,0, 4.557-1.925, 4.557-4.342
756
+ c0-0.553-0.092-1.065-0.276-1.546l-58.962-166.41c-0.123-0.492,0-12.288,0-12.79c0-3.543, 8.561-12.8, 12.268-12.8L 317.44,121.59 l0-128.973
757
+ c0-10.65, 9.38-19.507, 20.48-19.507s 20.48,8.868, 20.48,19.507L 358.4,126.812 c0,2.898, 20.48,2.806, 20.48-0.092l0-133.12 c0-10.65, 9.39-20.48, 20.48-20.48c 11.121,0, 20.48,9.841, 20.48,20.48L 419.84,121.6 l 39.619,0
758
+ c 3.707,0, 10.691,9.257, 10.691,12.8C 470.149,135.219, 470.446,146.493, 470.149,147.2zM 69.12,427.52A42.24,42.24 180 1 1 153.6,427.52A42.24,42.24 180 1 1 69.12,427.52zM 325.12,427.52A42.24,42.24 180 1 1 409.6,427.52A42.24,42.24 180 1 1 325.12,427.52z" />
759
+ <glyph unicode="&#xe076;" d="M 10.24,224A245.76,245.76 180 1 1 501.76,224A245.76,245.76 180 1 1 10.24,224z" />
760
+ <glyph unicode="&#xe077;" d="M 501.76,60.16c0-45.056-36.864-81.92-81.92-81.92L 92.16-21.76 c-45.056,0-81.92,36.864-81.92,81.92L 10.24,387.84 c0,45.056, 36.864,81.92, 81.92,81.92l 327.68,0 c 45.056,0, 81.92-36.864, 81.92-81.92L 501.76,60.16 z" />
761
+ <glyph unicode="&#xe078;" d="M 10.24,469.76L 501.76,469.76L 501.76-21.76L 10.24-21.76z" />
762
+ <glyph unicode="&#xe014;" d="M 419.84,70.4L 419.84,418.56 c0,22.528-18.432,40.96-40.96,40.96L 133.12,459.52 c-22.528,0-40.96-18.432-40.96-40.96l0-389.12 c0-22.528, 18.432-40.96, 40.96-40.96l 245.76,0 c 19.026,0, 40.96,0, 40.96,20.48c0,4.26,0,0,0,10.24L 143.36,19.2 c-11.264,0-20.48,9.216-20.48,20.48
763
+ l0,30.72 L 419.84,70.4 z M 143.36,377.6c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0 c 5.632,0, 10.24-4.608, 10.24-10.24l0-20.48 c0-5.632-4.608-10.24-10.24-10.24L 153.6,346.88 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,377.6 z M 143.36,295.68c0,5.632, 4.608,10.24, 10.24,10.24l 204.8,0
764
+ c 5.632,0, 10.24-4.608, 10.24-10.24l0-20.48 c0-5.632-4.608-10.24-10.24-10.24L 153.6,264.96 c-5.632,0-10.24,4.608-10.24,10.24L 143.36,295.68 z" />
765
+ <glyph unicode="&#xe015;" d="M 378.88,408.32l-40.96,0 L 133.12,408.32 L 92.16,408.32 l0-40.96 l0-102.4 l0-133.12 c0-22.528, 18.432-40.96, 40.96-40.96l 204.8,0 c 22.528,0, 40.96,18.432, 40.96,40.96l0,51.2 c 62.218,0, 112.64,50.432, 112.64,112.64S 441.098,408.32, 378.88,408.32z M 378.88,234.24l0,30.72 l0,92.16
766
+ c 33.935,0, 61.44-27.505, 61.44-61.44C 440.32,261.755, 412.815,234.24, 378.88,234.24zM 20.48,70.4l0-23.562 C 20.48,27.423, 41.667,19.2, 67.584,19.2L 444.416,19.2 c 25.907,0, 47.104,8.223, 47.104,27.638L 491.52,70.4 L 20.48,70.4 z" />
767
+ <glyph unicode="&#xe079;" d="M 171.858,387.84c 22.723,0, 40.96,18.483, 40.96,40.96c0,22.723-18.237,40.96-40.96,40.96c-22.589,0-40.96-18.248-40.96-40.96C 130.898,406.323, 149.268,387.84, 171.858,387.84zM 200.776,12.288c-69.755,0-126.321,57.354-126.321,128.379c0,38.881, 17.295,73.574, 44.278,97.167l-2.243,40.161
768
+ C 71.311,249.303, 40.96,198.83, 40.96,140.667C 40.96,51.046, 112.466-21.76, 200.776-21.76C 265.759-21.76, 323.195,24.023, 348.16,80.64l-24.33,33.505
769
+ C 311.808,56.136, 261.468,12.288, 200.776,12.288zM 450.56,90.88l-20.48,0 l-81.92,112.64c-4.434,7.793-20.48,30.72-40.96,30.72l-92.16,0 l0,40.96 l 81.92,0 c 10.609,0, 22.057,4.516, 22.057,15.421
770
+ C 319.017,301.445, 307.866,305.92, 296.96,305.92l-81.92,0 l0,40.96 c-1.505,22.712-20.48,30.72-40.858,30.249C 153.6,376.658, 143.36,367.36, 143.36,346.88l0-143.36 c 1.946-22.999, 18.504-30.72, 40.96-30.72l 122.88,0 l 71.68-92.16
771
+ c 4.618-7.639, 20.48-30.72, 20.48-30.72l 51.2,0 c 10.568,0, 20.48,9.605, 20.48,20.48C 471.040,81.224, 461.455,90.88, 450.56,90.88z" />
772
+ <glyph unicode="&#xe07a;" d="M 174.080,264.96l 27.464,0 C 209.777,264.96, 215.040,277.064, 215.040,285.235l0,86.467 C 215.040,379.884, 209.777,377.6, 201.544,377.6L 174.080,377.6 L 174.080,264.96 zM 174.080,101.12l 27.464,0 C 209.777,101.12, 215.040,91.617, 215.040,83.425l0-86.446 c0-8.131-5.263-18.739-13.496-18.739L 174.080-21.76 L 174.080,101.12 zM 137.83,183.040c-0.236,79.022, 14.623,81.92, 23.091,81.92C 161.853,264.96, 163.84,264.96, 163.84,264.96L 163.84,377.6 c0,0-2.683,0-3.502,0C 145.254,377.6, 71.68,352.809, 71.68,177.93
773
+ C 71.68,3.041, 145.254-21.76, 160.338-21.76C 161.157-21.76, 163.84-21.76, 163.84-21.76L 163.84,101.12 c0,0-1.987,0-2.918,0C 152.453,101.12, 138.056,104.059, 137.83,183.040zM 237.527,353.239c 4.987-5.97, 7.649-13.517, 7.649-21.289c0-7.772-2.662-15.319-7.649-21.299l 16.353-13.455
774
+ c 7.997,9.748, 12.431,22.098, 12.431,34.755c0,12.646-4.434,25.016-12.431,34.755L 237.527,353.239zM 290.099,258.376c 17.859,19.558, 27.73,44.913, 27.73,71.434c0,26.399-9.748,51.753-27.617,71.25l-15.903-13.865
775
+ c 14.387-15.667, 22.395-36.024, 22.395-57.385c0-21.412-7.997-41.841-22.63-57.569L 290.099,258.376zM 326.287,219.556c 27.74,29.297, 43.059,67.707, 43.059,108.042c0,40.212-15.186,78.51-42.701,107.807l-15.667-14.275
776
+ c 23.9-25.364, 37.14-58.614, 37.14-93.542c0-35.052-13.24-68.352-37.376-93.768L 326.287,219.556zM 362.619,180.726c 37.478,39.117, 58.143,90.522, 58.143,144.722c0,54.016-20.521,105.267-57.805,144.312l-15.299-14.623
777
+ c 33.526-35.103, 51.978-81.172, 51.978-129.69c0-48.742-18.565-94.935-52.326-130.017L 362.619,180.726z" />
778
+ <glyph unicode="&#xe07b;" d="M 367.411,44.155c-3.318-4.506-4.874-5.458-9.021-11.274c-6.902-8.909, 1.894-22.436, 6.277-20.306
779
+ c 5.11,1.915, 8.428,12.114, 14.008,15.442c 2.857,1.536, 10.455,12.698, 17.572,20.285c 5.233,5.949, 9.032,8.561, 14.008,14.725
780
+ c 8.428,10.455, 10.209,18.401, 17.572,29.563c 4.516,5.816, 7.731,7.598, 11.878,14.725c 21.965,41.554, 15.544,60.18, 36.567,89.856
781
+ c 6.4,8.776, 13.64,10.916, 23.849,16.138c 9.503,69.222-21.965,107.919-21.719,108.042c-26.481-15.432-40.724-21.729-68.147-20.296
782
+ c-10.322,0.113-15.79,4.506-25.989,3.564c-9.513-0.358-14.356-3.912-23.869-7.127c-14.592-4.506-22.548-8.54-37.857-13.292
783
+ c-9.738-2.734-15.913-2.847-26.010-6.287c-8.663-3.686-4.506-0.717-10.557-7.721c-7.844-8.673-5.939-15.432-13.302-30.28
784
+ c-9.144-19.466-8.069-22.077-2.847-24.453c-3.441-9.964-4.27-16.62-3.441-27.423c 0.952-8.192-2.499-13.885, 6.287-20.419
785
+ c 11.991-8.899, 37.161-29.798, 43.571-30.147c 9.615,0.348, 37.632-0.717, 51.866,9.144c 3.205,2.007, 4.157,4.045, 1.434-3.564
786
+ c-0.594-0.963-35.502-28.14-39.291-28.017c-44.401-1.434-29.563-3.922-32.287-2.857c-2.263,0-23.634,26.132-36.567,16.865
787
+ c-4.874-2.97-7.127-5.816-9.021-11.172c 1.659-3.441, 9.492-8.888, 16.742-13.414c 10.455-6.646, 11.397-13.65, 21.842-16.138
788
+ c 12.708-2.857, 26.235-0.952, 34.314-2.028c 3.092-0.829, 31.099,7.373, 48.548,16.742c 16.159,8.315-22.19-16.015-31.57-28.006
789
+ c-28.262-8.899-20.296-9.257-33.72-11.991c-12.462-2.847-11.868-2.13-20.419-4.874c-8.776-2.13-16.015-14.131-7.711-20.419
790
+ c 4.987-4.147, 20.541,1.669, 35.85,2.13c 6.769,0.123, 34.417,12.831, 40.724,16.159c 15.667,8.417, 27.187,20.060, 36.454,26.706
791
+ C 406.221,91.638, 378.921,58.163, 367.411,44.155L 367.411,44.155z M 281.815,214.753c 9.38-7.475, 14.131-29.798, 14.008-29.563
792
+ c 17.213-5.458, 28.129-16.855, 28.129-16.855c 26.481,14.725, 27.085,8.079, 38.595,16.855c 9.503,6.533, 9.032,8.55, 14.008,25.989
793
+ c 4.628,14.141-11.756,12.831-25.293,38.595c-23.501-8.899-36.198-4.874-44.155-4.157C 303.544,246.088, 304.128,231.731, 281.815,214.753L 281.815,214.753
794
+ zM 144.22,397.926c 3.328,4.751, 4.864,5.704, 9.144,11.284c 6.646,9.144-2.017,22.671-6.298,21.012
795
+ c-5.222-2.376-8.54-12.585-14.838-16.148c-2.263-1.3-9.851-12.462-16.855-20.306c-5.222-5.704-9.021-8.315-14.008-14.838
796
+ c-8.54-10.086-10.209-18.043-17.572-28.733c-4.506-6.4-7.834-8.069-11.878-15.432c-21.955-41.318-15.667-59.945-36.567-89.16
797
+ c-6.4-9.38-13.65-11.397-23.859-16.855c-9.492-69.1, 21.852-107.684, 21.729-107.448c 26.47,15.094, 40.602,21.381, 68.147,20.429
798
+ c 10.322-0.604, 15.79-4.987, 25.999-4.27c 9.503,0.594, 14.367,4.147, 23.859,7.004c 14.602,4.864, 22.559,8.899, 37.161,13.414
799
+ c 10.445,2.97, 16.62,3.092, 26.706,7.014c 8.673,3.195, 4.516,0.225, 10.568,7.014c 7.711,8.899, 5.939,15.657, 12.585,30.136
800
+ c 9.851,19.845, 8.786,22.436, 3.564,24.576c 3.328,10.209, 4.27,16.742, 3.441,27.423c-1.065,8.315, 2.499,14.131-6.287,20.296
801
+ c-11.991,9.267-37.161,30.157-43.448,30.28c-9.738-0.123-37.755,0.952-51.999-8.428c-3.205-2.488-4.157-4.506-1.423,2.734
802
+ c 0.594,1.3, 35.502,28.488, 39.291,28.846c 44.401,0.952, 29.563,3.441, 32.297,2.13c 2.253,0.236, 23.624-25.876, 36.567-16.855
803
+ c 4.741,3.195, 7.117,6.052, 9.144,11.151c-1.782,3.676-9.615,9.155-16.855,13.302c-10.445,6.994-11.51,13.998-21.842,16.261
804
+ c-12.708,3.082-26.358,1.188-34.314,2.734c-3.082,0.358-31.109-7.844-48.435-16.855c-16.384-8.673, 22.088,15.667, 31.57,28.129
805
+ c 28.14,8.438, 20.070,8.786, 33.72,11.878c 12.349,2.499, 11.756,1.782, 20.306,4.27c 8.663,2.376, 16.015,14.254, 7.711,21.012
806
+ c-5.1,3.799-20.531-2.017-35.727-2.13c-6.881-0.471-34.55-13.179-40.837-16.742c-15.667-8.192-27.187-19.825-36.444-25.999
807
+ C 105.277,350.679, 132.7,384.041, 144.22,397.926L 144.22,397.926z M 229.816,227.338c-9.38,7.711-14.131,30.024-14.008,30.147
808
+ c-17.213,5.11-28.14,16.507-28.14,16.148c-26.47-14.367-27.177-7.721-38.584-16.148c-9.615-6.892-9.021-9.021-14.008-25.887
809
+ c-4.639-14.725, 11.633-13.292, 25.283-38.697c 23.511,8.561, 36.219,4.516, 44.165,3.574C 208.087,196.229, 207.493,210.596, 229.816,227.338
810
+ L 229.816,227.338z" />
811
+ <glyph unicode="&#xe07c;" d="M 226.632,436.357c 0.225,21.053-17.080,38.482-38.185,38.257c-21.565,0.225-38.994-17.203-38.881-38.257
812
+ c-0.113-21.555, 17.316-38.82, 38.881-38.871C 209.541,397.537, 226.857,414.802, 226.632,436.357L 226.632,436.357zM 337.654,225.106L 214.139,374.948c-6.42,9.523-42.209,13.527-57.344,1.372L 96.696,266.967l 14.787-92.436
813
+ c 15.032-24.136, 44.851,0.287, 36.475,13.476l-10.086,65.485L 163.84,305.92l0-122.88 l-61.44-163.84c-10.67-35.779, 40.643-54.938, 51.2-20.48l 71.68,184.32l0,92.16 l-30.075,41.595
814
+ c-1.495,1.782-1.27,4.475, 0.573,6.021c 1.833,1.495, 4.475,1.26, 5.97-0.512l 102.748-121.508
815
+ C 321.034,178.196, 354.171,202.23, 337.654,225.106zM 290.396,17.254l-60.672,150.968L 204.8,101.12l 35.604-104.131C 254.73-36.547, 305.080-16.927, 290.396,17.254zM 451.297-17.388c 0.123-0.123, 0.225-0.287, 0.225-0.348c 2.406-2.867, 6.656-3.154, 9.523-0.799
816
+ c 2.519,2.181, 2.99,6.021, 1.26,8.765L 347.965,188.754c-0.123,0.123-0.225,0.236-0.338,0.399c-2.304,2.765-6.543,3.164-9.411,0.748
817
+ c-2.519-2.181-2.755-5.847-1.137-8.765L 451.297-17.388z" />
818
+ <glyph unicode="&#xe07d;" d="M 130.949,124.621c-63.539,0-112.486,35.717-112.486,102.246c0,67.318, 47.36,106.035, 112.486,106.035c 65.106,0, 112.476-38.728, 112.476-106.035
819
+ C 243.415,160.338, 194.478,124.621, 130.949,124.621z M 130.949,177.244c 22.948,0, 34.253,19.558, 34.253,49.234c0,23.347-4.864,53.811-34.253,53.811
820
+ c-29.399,0-34.263-30.464-34.263-53.811C 96.686,196.803, 107.991,177.244, 130.949,177.244zM 410.276,254.72c-0.338,10.24-3.389,14.111-8.253,18.975c-4.864,5.263-11.643,7.25-20.357,7.25c-29.266,0-34.13-30.792-34.13-54.139
821
+ c0-29.676, 11.305-50.924, 34.13-50.924c 20.357,0, 28.273,17.398, 30.525,27.638l 79.022,0 c-6.779-61.44-54.938-80.425-109.548-80.425
822
+ c-63.519,0-112.364,36.485-112.364,103.014c0,67.318, 47.37,107.745, 112.364,107.745c 52.695,0, 102.318-27.935, 107.96-79.135L 410.276,254.72 z" />
823
+ <glyph unicode="&#xe07e;" d="M 159.734,244.48c-0.338,10.24-3.277,17.725-8.253,22.589c-4.864,5.253-11.643,9.062-20.234,9.062c-29.399,0-34.253-29.891-34.253-53.238
824
+ c0-29.665, 11.305-48.978, 34.253-48.978c 20.234,0, 28.15,9.134, 30.403,29.614l 79.022,0 c-6.779-61.44-54.938-81.94-109.425-81.94
825
+ c-63.539,0-112.486,35.738-112.486,102.267c0,67.318, 47.36,103.741, 112.486,103.741c 52.562,0, 102.308-21.678, 107.848-83.118L 159.734,244.48 zM 410.583,244.48c-0.338,10.24-3.389,17.725-8.253,22.589c-4.864,5.253-11.643,9.062-20.357,9.062c-29.266,0-34.13-29.891-34.13-53.238
826
+ c0-29.665, 11.305-48.978, 34.13-48.978c 20.357,0, 28.273,9.134, 30.525,29.614L 491.52,203.53 c-6.779-61.44-54.938-81.94-109.548-81.94
827
+ c-63.529,0-112.364,35.738-112.364,102.267c0,67.318, 47.37,103.741, 112.364,103.741c 52.695,0, 102.308-21.678, 107.971-83.118L 410.583,244.48 z" />
828
+ <glyph unicode="&#xe07f;" d="M 40.96,70.4l 50.115,0 c 18.821,0, 31.611-6.697, 31.611-25.231c0-9.708-4.823-16.835-13.394-20.992c 12.063-3.441, 18.217-13.906, 18.217-26.286
829
+ c0-20.142-17.132-29.891-35.113-29.891L 40.96-32 L 40.96,70.4 z M 61.44,29.44l 26.86,0 c 7.598,0, 13.261,2.12, 13.261,10.455C 101.56,49.357, 94.321,49.92, 86.61,49.92L 61.44,49.92 L 61.44,29.44 z M 61.44-11.52
830
+ l 28.068,0 c 8.684,0, 16.169,4.495, 16.169,14.817c0,10.117-6.4,15.903-15.688,15.903L 61.44,19.2 L 61.44-11.52 zM 143.36,39.68l 20.48,0 l0-10.24 l 0.225,0 c 3.625,10.24, 14.94,14.828, 24.596,14.828c 1.331,0, 5.898-0.788, 5.898-1.208l0-18.35 c-10.24,0.43-6.789,0.666-9.083,0.666
831
+ c-14.479,0-21.637-10.383-21.637-23.050L 163.84-32 l-20.48,0 L 143.36,39.68 zM 203.049,19.2c 1.085,20.48, 16.64,24.33, 32.686,24.33c 14.356,0, 30.505-2.949, 30.505-20.204l0-37.407 c0-6.513, 2.796-17.92, 4.618-17.92l-19.907,0
832
+ c-0.727,0-1.331,5.55-1.454,7.905c-6.277-6.523-15.442-8.387-24.125-8.387c-13.64,0-24.494,7.055-24.494,21.78
833
+ c0,16.302, 12.175,20.152, 24.494,21.965c 12.073,1.69, 23.286,1.444, 23.286,9.482c0,8.499-5.786,9.554-12.79,9.554
834
+ c-7.475,0-12.308-0.85-13.025-11.090L 203.049,19.21 z M 245.76,5.1c0-2.888-8.796-3.011-14.961-4.147c-6.154-1.27-10.988-3.318-10.988-10.568
835
+ c0-7.352, 4.71-9.165, 11.1-9.165c 15.442,0, 14.838,12.237, 14.838,16.527L 245.75,5.1 zM 308.879,52.951L 289.075,52.951 l0,16.23 l 19.804,0 L 308.879,52.951 z M 286.72,39.68l 20.48,0 l0-71.68 l-20.48,0 L 286.72,39.68 zM 327.68,70.4l 20.48,0 l0-102.4 l-20.48,0 L 327.68,70.4 zM 368.64,70.4l 20.48,0 l0-102.4 l-20.48,0 L 368.64,70.4 zM 426.998-1.28c 0.614-10.24, 6.625-18.842, 17.623-18.842c 7.967,0, 14.356,8.602, 15.565,8.602l 17.367,0 c-5.54-10.24-17.367-22.344-33.536-22.344
836
+ c-22.671,0-36.68,16.486-36.68,38.769c0,21.524, 14.848,37.233, 36.68,37.233c 24.381,0, 36.209-22.938, 34.867-43.418L 426.998-1.28 z M 459.1,8.96
837
+ c-1.812,10.24-6.031,15.258-15.688,15.258c-12.554,0-16.169-5.018-16.415-15.258L 459.1,8.96 zM 112.64,147.2A35.84,35.84 180 1 1 184.32,147.2A35.84,35.84 180 1 1 112.64,147.2zM 112.64,290.56A35.84,35.84 180 1 1 184.32,290.56A35.84,35.84 180 1 1 112.64,290.56zM 112.64,433.92A35.84,35.84 180 1 1 184.32,433.92A35.84,35.84 180 1 1 112.64,433.92zM 327.68,147.2A35.84,35.84 180 1 1 399.36,147.2A35.84,35.84 180 1 1 327.68,147.2zM 327.68,290.56A35.84,35.84 180 1 1 399.36,290.56A35.84,35.84 180 1 1 327.68,290.56zM 327.68,433.92A35.84,35.84 180 1 1 399.36,433.92A35.84,35.84 180 1 1 327.68,433.92z" />
838
+ <glyph unicode="&#xe080;" d="M 263.946,275.2L 256,275.2 l0-92.16 l 7.946,0 c 24.402,0, 44.042,21.75, 44.042,46.152C 307.988,253.46, 288.348,275.2, 263.946,275.2zM 409.6,408.32L 102.4,408.32 C 46.080,408.32,0,362.24,0,305.92l0-143.36 c0-56.32, 46.080-102.4, 102.4-102.4l 307.2,0 c 56.32,0, 102.4,46.080, 102.4,102.4L 512,305.92 C 512,362.24, 465.92,408.32, 409.6,408.32z M 204.8,152.32l-40.96,0 l0,20.48 l-60.314,0
839
+ l-14.019-20.48L 36.321,152.32 l 118.876,163.84L 204.8,316.16 L 204.8,152.32 z M 276.48,152.32l-10.24,0 l-51.2,0 L 215.040,316.16 l 53.289,0 l 0.502,0 c 45.67,0, 81.91-37.14, 81.91-82.944C 350.74,187.535, 322.161,152.32, 276.48,152.32z
840
+ M 366.182,152.32l-8.878,0 l-5.263,0 c 18.268,20.48, 28.662,48.886, 28.662,77.793c0,32.532-13.148,65.567-36.168,86.047l 5.14,0 l 10.015,0 l 5.263,0
841
+ c 20.511-30.72, 32.031-54.139, 32.031-86.047c0-28.396-9.011-57.313-25.539-77.793L 366.182,152.32 z M 407.972,152.32l-9.001,0 l-5.263,0
842
+ c 18.391,20.48, 28.785,48.886, 28.785,77.793c0,32.532-13.271,65.567-36.291,86.047l 5.263,0 l 9.892,0 l 5.243,0 c 20.531-30.72, 32.174-54.139, 32.174-86.047
843
+ c0-28.396-9.144-57.313-25.661-77.793L 407.972,152.32 z M 454.902,152.32L 449.638,152.32 l-9.001,0 l-5.263,0 c 18.391,20.48, 28.785,48.886, 28.785,77.793
844
+ c0,32.532-13.271,65.567-36.291,86.047l 5.263,0 l 9.892,0 l 5.243,0 c 20.531-30.72, 32.174-54.139, 32.174-86.047C 480.43,201.708, 471.286,172.8, 454.902,152.32zM 163.84,203.52L 163.84,263.967L 126.3,203.52 zM 253.809,231.188M 253.809,231.188M 253.809,231.188" />
845
+ <glyph unicode="&#xe081;" d="M 456.796,469.76l-29.143,0 l-99.246-108.81c 10.435-5.396, 20.060-13.097, 28.621-21.248c 14.131-13.414, 22.6-30.208, 29.020-48.292L 501.76,406.999L 501.76,469.76
846
+ C 465.121,469.76, 478.73,469.76, 456.796,469.76zM 10.24-21.76l 92.948,0 l 138.721,150.497l-82.872,55.214L 10.24,27.761l0-2.314 C 10.24,2.099, 10.24,7.496, 10.24-21.76zM 253.952,224.809M 253.952,224.809M 253.952,224.809M 246.415,326.4l 9.892,0 c 55.296,0, 87.081-53.975, 87.296-89.631c-0.215-6.943-1.935-13.507-9.789-13.353
847
+ c-16.568-0.154-10.66,27.556-24.361,50.207C 303.002,284.805, 282.235,305.92, 258.57,305.92l-8.714,0 c-12.698,0-36.577-8.448-52.603-32.604
848
+ c-20.060-29.102-6.881-51.067-23.726-50.964c-2.58-0.113-10.004,1.505-9.892,13.568C 164.393,290.673, 214.579,326.4, 246.415,326.4L 246.415,326.4zM 253.952,19.2c 20.756,0, 32.768,23.112, 32.768,37.571l0,30.126 c0,61.532, 66.601,85.832, 66.376,147.476c 0.215,57.764-50.944,101.325-100.209,101.222
849
+ c-40.878,0.102-68.27-26.255-78.807-39.905c-31.631-39.107-13.189-76.38-35.553-76.38c-6.349,0-12.462,3.604-12.564,16.241
850
+ c-0.983,61.204, 49.551,125.972, 129.096,126.075c 64.164-0.113, 126.566-51.21, 126.566-129.577c0-72.612-64.205-87.839-64.205-151.511l0-27.218
851
+ c0-28.017-24.361-60.017-65.341-60.191c-1.495,0.44-2.888,0.973-4.823,1.188c-7.526,2.253-12.636,9.032-10.803,16.773
852
+ C 238.623,17.818, 245.023,19.2, 253.42,19.2L 253.952,19.2 L 253.952,19.2z" />
853
+ <glyph unicode="&#xe082;" d="M 358.492,218.45c-3.348,13.24-20.204,23.695-32.87,17.572L 276.48,213.76l0,87.9 l 86.354,135.608c 6.267,9.902, 3.85,23.030-6.236,29.379
854
+ c-9.964,6.236-22.938,3.338-28.539-6.349L 255.693,345.047l-43.633-0.113c-2.796,0-5.571-0.451-8.376-1.556l-75.428-29.379L 89.395,372.521
855
+ C 83.005,382.31, 69.796,385.208, 59.832,378.87s-12.872-19.579-6.482-29.481l 48.497-72.98c 5.489-8.458, 17.019-12.237, 26.757-8.233L 184.32,289.649L 184.32,193.28
856
+ l-75.745-167.803c-5.714-12.81, 0.553-26.88, 13.885-34.345c 13.332-7.465, 28.682-3.113, 34.222,9.677l 60.938,139.080
857
+ c 5.366-1.556, 11.192-2.243, 17.132-2.243c 5.489,0, 10.865,1.004, 15.677,2.785l 68.413,31.826l 14.991-59.976
858
+ c 3.338-13.343, 16.957-21.473, 30.413-18.135c 13.435,3.338, 21.484,16.814, 18.125,30.157L 358.492,218.45zM 296.96,253.819l0-15.903 C 399.36,289.3, 439.071,465.306, 439.071,480l-14.326,0 C 419.369,443.29, 378.88,296.438, 296.96,253.819zM 224.338,352.717c 20.951,0, 37.97,16.794, 37.97,37.601c0,20.797-17.019,37.724-37.97,37.724c-20.951,0-37.97-16.916-37.97-37.724
859
+ C 186.368,369.51, 203.387,352.717, 224.338,352.717zM 256-32L 276.48-32L 276.48,137.656L 256,121.6 z" />
860
+ <glyph unicode="&#xe083;" d="M 59.484,232.090c-10.353,0-18.821-8.468-18.821-18.79c0-10.312, 8.479-18.637, 18.821-18.637c 10.342,0, 18.698,8.325, 18.698,18.637
861
+ C 78.182,223.621, 69.827,232.090, 59.484,232.090zM 320.481,388.342c 22.436,0, 40.755,18.135, 40.755,40.643c0,22.508-18.319,40.776-40.755,40.776c-22.559,0-40.888-18.268-40.888-40.776
862
+ C 279.593,406.477, 297.923,388.342, 320.481,388.342zM 495.903,25.723l-66.324,78.090c0,0-20.716,120.566-20.716,120.822c0,0.113-3.103,13.67-3.103,13.67
863
+ c 0.123-0.133-8.335,38.031-14.817,67.86c 10.342-5.96, 19.681-11.305, 20.183-11.561c 0.502-1.106, 35.144-66.867, 35.144-66.867
864
+ c 2.642-4.864, 7.025-8.468, 12.237-10.066c 5.356-1.618, 10.977-1.126, 15.841,1.495c 4.864,2.478, 8.479,6.83, 10.076,12.175
865
+ c 1.782,5.212, 1.239,10.824-1.382,15.657L 445.061,319.232c0,0-1.516,2.611-3.502,4.588c-2.744,2.734-8.755,6.093-8.755,6.093l-73.779,41.902
866
+ c-9.359,4.721-19.702,6.328-30.065,4.096c-4.26-0.87-8.223-2.488-12.698-4.977c-0.522-0.113-16.855-7.322-26.317-29.471l-37.888-76.073
867
+ c0,0-57.733-11.182-59.73-11.561c-0.492-0.123-1.014-0.246-1.372-0.492l-53.924,38.042c-12.093,8.448-13.578,33.812-13.722,34.806
868
+ c-1.485,17.398-11.469,33.812-27.423,45.128C 81.439,381.501, 63.969,385.843, 48.005,383.252c-12.472-2.12-23.060-8.581-29.798-18.043
869
+ C 12.984,357.878, 10.24,349.051, 10.24,339.61c0-0.133, 0.748-8.223, 0.748-8.223c 2.755-16.015, 12.595-30.935, 27.064-41.257
870
+ c 14.582-10.312, 31.918-14.674, 47.872-11.94l 3.748,0.748c 0.369,0.246, 24.31,7.598, 36.024-0.379c0-0.113, 40.325-28.457, 51.057-36.045
871
+ c-1.116-1.741-3.113-5.581-2.99-9.574c0-1.249, 0.133-2.478, 0.379-3.717c 2.12-11.203, 13.076-18.657, 24.31-16.425l 71.547,13.937
872
+ c0,0, 6.124,1.864, 8.745,3.738c 3.379,2.355, 5.857,7.322, 5.857,7.322l 18.821,37.796c0,0, 12.984-61.030, 13.199-62.147
873
+ c-1.485-1.495-58.696-62.034-58.696-62.034l-2.202-1.249C 250.081,145.080, 245.76,138.373, 245.76,131.267l0-128.266 C 245.76-10.701, 257.71-21.76, 271.421-21.76
874
+ C 285.020-21.76, 296.96-10.701, 296.96,3c0,0,0,105.39,0,107.141c 10.24,5.458, 49.603,51.569, 61.317,63.785c 1.26-7.209, 12.82-72.253, 12.82-72.253
875
+ c 1.004-5.724, 3.881-10.936, 7.997-15.145c0-0.143, 78.838-92.887, 78.838-92.887c 4.383-4.936, 10.373-8.069, 16.968-8.684
876
+ c 6.615-0.502, 12.995,1.597, 18.115,5.816c 5.724,4.864, 8.735,11.95, 8.735,18.924C 501.75,15.401, 499.896,21.002, 495.903,25.723z
877
+ M 102.625,305.418c-4.362-6.093-11.090-10.066-19.446-11.561c-11.725-1.976-24.822,1.372-35.779,9.329c-11.090,7.844-18.586,19.016-20.572,30.7
878
+ L 26.317,339.732c0,6.093, 1.628,11.551, 4.997,16.282c 10.844,15.155, 35.645,16.148, 55.337,2.232C 106.24,344.32, 113.469,320.584, 102.625,305.418z" />
879
+ <glyph unicode="&#xe084;" d="M 182.6-7.485A13.885,14.275 180 1 1 210.371-7.485000000000014A13.885,14.275 180 1 1 182.6-7.485000000000014zM 308.716-21.494c 7.66,0, 13.865,6.451, 13.865,14.449c0,7.905-6.195,14.326-13.865,14.326c-7.68,0-13.875-6.42-13.875-14.326
880
+ C 294.84-15.043, 301.036-21.494, 308.716-21.494zM 284.764,393.943c 20.357,0, 36.905,17.029, 36.905,37.97C 321.659,452.844, 305.121,469.76, 284.764,469.76c-20.347,0-36.905-16.916-36.905-37.847
881
+ C 247.859,410.972, 264.417,393.943, 284.764,393.943zM 84.644,62.228C 82.903,58.87, 81.92,55.060, 81.92,50.934c0-13.332, 10.568-24.207, 23.624-24.207c 9.37,0, 17.418,5.601, 21.228,13.67
882
+ l 80.497,142.336l-33.423,34.386L 84.644,62.228zM 259.062,68.618c-3.799-8.069-11.858-13.681-21.217-13.681c-12.954,0-23.501,10.875-23.501,24.207c0,4.137, 0.973,7.936, 2.724,11.305
883
+ l 35.052,63.375l-68.362,69.898c-26.235,27.095-7.506,56.433-7.506,56.433l 36.792,66.857l-97.587-0.113c-10.772,0-19.374,9.554-19.374,20.531
884
+ C 96.072,378.296, 104.673,387.84, 115.446,387.84l 295.352,0 C 421.478,387.84, 430.080,378.276, 430.080,367.309C 430.080,356.332, 421.478,346.88, 410.798,346.88L 298.138,346.88 l-53.76-96.85l 54.743-55.654
885
+ c 19.18-18.934, 6.758-40.202, 6.758-40.202L 259.062,68.618zM 348.16,29.44c0-5.663-4.577-10.24-10.24-10.24L 163.84,19.2 c-5.652,0-10.24,4.577-10.24,10.24l0,0c0,5.663, 4.588,10.24, 10.24,10.24l 174.080,0 C 343.583,39.68, 348.16,35.103, 348.16,29.44L 348.16,29.44z" />
886
+ <glyph unicode="&#xe085;" d="M 73.789,161.116c 29.542,0, 53.443,24.566, 53.443,54.968c0,30.239-23.9,54.815-53.443,54.815C 44.37,270.899, 20.48,246.323, 20.48,216.084
887
+ C 20.48,185.692, 44.37,161.116, 73.789,161.116zM 373.105,66.744c 2.488,1.761, 5.775,1.229, 7.588-1.198l 9.882-14.049c 1.679-2.437, 1.167-5.939-1.188-7.844l-72.499-54.139
888
+ c-2.345-1.761-5.755-1.208-7.608,1.208l-9.851,14.049c-1.69,2.437-1.157,5.929, 1.188,7.823L 373.105,66.744zM 291.154,136.55L 262.4,188.396L 247.306,177.060L 276.060,124.938 zM 224.072,257.659L 112.251,459.52L 90.86,459.377L 208.845,246.18 zM 329.349,150.856C 335.667,155.576, 350.126,162.56, 358.4,162.56l 102.4,0 c 20.214,0, 30.72-20.337, 30.72-41.001C 491.52,100.772, 481.014,90.88, 460.8,90.88l-92.16,0 l-110.961-87.060
889
+ c-38.994-28.867-62.628,2.847-62.628,2.847l-86.866,89.385c-14.572,17.951-11.418,52.111, 6.052,67.236l 120.207,88.033
890
+ c 11.94,10.24, 29.665,8.632, 39.782-3.512c 9.994-12.288, 8.417-30.659-3.543-40.919l-76.954-57.928l 55.286-56.156L 329.349,150.856z" />
891
+ <glyph unicode="&#xe086;" d="M 360.233,469.76c-23.101,0-41.851-19.036-41.851-42.383c0-23.439, 18.749-42.363, 41.851-42.363c 23.235,0, 42.056,18.924, 42.056,42.363
892
+ C 402.289,450.724, 383.457,469.76, 360.233,469.76zM 43.387,177.51c-3.625,5.898-11.244,7.69-17.039,4.045c-5.847-3.676-7.608-11.356-3.973-17.265
893
+ c 3.645-5.786, 11.233-7.567, 17.162-3.983C 45.261,164.004, 47.012,171.674, 43.387,177.51zM 52.009,142.94c-3.625,5.786-11.244,7.578-17.152,3.901c-5.734-3.604-7.485-11.336-3.86-17.121
894
+ c 3.635-5.99, 11.254-7.69, 16.978-4.045C 53.821,129.362, 55.593,137.052, 52.009,142.94zM 60.58,108.257c-3.574,5.96-11.346,7.68-17.091,4.004c-5.908-3.645-7.608-11.315-3.963-17.265
895
+ c 3.574-5.775, 11.336-7.537, 17.080-3.891C 62.464,94.74, 64.215,102.482, 60.58,108.257zM 69.1,73.687c-3.625,5.786-11.244,7.567-16.968,4.055c-5.919-3.789-7.619-11.459-4.045-17.306
896
+ c 3.635-5.898, 11.254-7.68, 17.152-4.004C 70.973,60.109, 72.735,67.799, 69.1,73.687zM 270.51,3.226c-6.584-2.212-10.23-9.226-8.12-15.841c 2.171-6.646, 9.155-10.189, 15.636-8.141
897
+ c 6.523,2.14, 10.148,9.175, 8.11,15.708C 284.017,1.567, 277.033,5.171, 270.51,3.226zM 305.777,2.918c-6.554-1.997-10.107-9.124-8.018-15.636c 2.109-6.656, 9.134-10.322, 15.626-8.182
898
+ c 6.461,2.089, 10.086,9.206, 7.997,15.749C 319.232,1.382, 312.381,5.059, 305.777,2.918zM 341.258,2.806c-6.636-2.109-10.281-9.124-8.11-15.77c 2.089-6.523, 9.083-10.189, 15.626-8.059
899
+ c 6.472,1.997, 10.076,9.083, 7.916,15.739C 354.724,1.26, 347.72,4.956, 341.258,2.806zM 376.474,2.662c-6.461-2.14-10.097-9.175-8.018-15.729c 2.161-6.595, 9.165-10.189, 15.626-8.1
900
+ c 6.513,2.15, 10.076,9.083, 8.018,15.677C 389.99,1.157, 382.966,4.71, 376.474,2.662zM 460.78,305.92l-73.277,0 l-36.239,59.259c-6.257,13.384-19.364,22.589-34.847,23.214c-3.021,0.154-5.755-0.297-8.53-0.911l-184.197-43.756
901
+ c-11.141-2.632-18.125-13.793-15.462-25.139c 2.499-11.244, 13.466-18.196, 24.596-15.657l 122.993,22.405L 162.335,162.56L 94.31,162.56 L 94.208,162.56 L 62.341,162.56 l 22.139-80.824
902
+ c 0.748-2.621, 0.748,0.266, 1.608-1.116c 3.113-5.14, 9.769-5.028, 14.746-1.894c 2.724,1.608, 4.495,5.304, 4.997,8.233l 13.24,41.155
903
+ l 0.502,1.884c0,0, 61.153,0.358, 61.614,0.358c 12.268,0, 22.774,3.43, 29.010,13.824l 28.344,47.442l 63.089-64.748L 274.893,19.2c0,0, 92.211,0, 92.6,0
904
+ c 5.96,0, 10.844,6.236, 10.844,12.175c0,4.7-2.877,8.612-6.451,10.609l-39.977,22.692l 19.19,76.544c0,0, 4.762,16.271-10.332,31.171
905
+ l-51.61,52.255c0,0, 27.576,45.793, 45.251,75.213L 358.4,264.96c 10.24,0, 11.612,0, 15.79,0l 86.211,0 c 11.5,0, 20.767,8.94, 20.879,20.408
906
+ C 481.382,296.98, 472.136,305.92, 460.78,305.92z" />
907
+ <glyph unicode="&#xe087;" d="M 295.465,185.784c 13.281-4.495, 27.72,2.253, 32.358,15.227c 4.618,12.943-2.427,27.013-15.718,31.519
908
+ c-13.302,4.506-27.74-2.365-32.358-15.309C 275.231,204.329, 282.173,190.157, 295.465,185.784zM 503.828,347.116c0,0-85.975,10.076-264.53,10.076C 107.592,357.192,0,347.116,0,347.116s 44.616-19.139, 36.874-78.469
909
+ c0,0, 64.020,7.434, 90.839-45.978l 120.248,35.523l-7.864-78.152L 189.235,167.885c-4.506-1.014-8.315-3.154-11.428-5.847L 66.222,57.108
910
+ c-6.584-6.072-6.697-16.323-0.338-22.61c 6.236-6.431, 16.753-6.656, 23.224-0.573l 83.958,78.787l 102.861,24.535l-0.696-0.215l 17.101,4.28
911
+ l 15.718-17.459c 2.427-2.58, 5.888-4.157, 9.595-4.157l 55.357-0.215c 6.943,0, 12.708,5.509, 12.708,12.38l0,0
912
+ c0,5.97-4.27,10.578-9.933,11.94l-41.257,139.889l 171.848,50.708C 514.58,337.9, 513.884,346.051, 503.828,347.116z M 363.418,144.364
913
+ c-12.595,0-33.638,0.113-39.987,0.113c-6.011,6.636-29.829,32.87-29.829,32.87c-0.338,0.451-0.922,0.563-1.27,0.901
914
+ c-6.011,6.861-15.596,10.455-25.18,8.223l-14.92-3.615l 7.977,78.94l 62.976,18.565L 363.418,144.364z" />
915
+ <glyph unicode="&#xe088;" d="M 65.864,259.328c-2.222-4.557-3.84-9.605-4.69-15.032c-0.379-2.693-0.625-5.417-0.625-8.12l 1.976-124.16L 19.466,19.61
916
+ c-1.485-2.724-2.591-5.898-3.082-9.236c-2.355-15.278, 8.161-29.45, 23.501-31.795c 11.878-1.843, 23.255,4.188, 28.703,14.193l 47.37,101.007
917
+ c 0.983,2.345, 1.864,4.813, 2.222,7.516c 0.133,1.229, 0.256,2.591, 0.256,3.809l-0.369,76.759l 72.796-31.662l 11.756-75.018
918
+ c 2.345-10.967, 11.377-19.732, 23.132-21.565c 15.34-2.212, 29.563,8.264, 31.928,23.398c 0.358,2.591, 0.358,5.181, 0.113,7.639l-14.346,90.563
919
+ c-1.731,8.745-7.537,16.261-15.708,20.091l-65.065,28.795l 41.431,71.823l 20.552-25.999c 2.099-2.335, 4.823-4.311, 7.905-5.54l 78.316-22.784
920
+ c 10.404-2.222, 21.043,3.185, 25.108,13.169c 4.577,11.336-0.85,24.146-12.114,28.703c-0.379,0.123-0.748,0.246-1.116,0.369l-68.045,19.958
921
+ l-51.22,61.225c-7.67,8.131-17.94,13.916-29.809,15.78c-20.787,3.072-40.52-6.779-50.913-23.532L 65.864,259.328zM 290.519,81.316l-4.946-37.202l-134.717-32.635L 152.156-11.52l 328.561,0 C 492.36-11.52, 501.76-2.181, 501.76,9.4L 501.391,450.427l-45.015,10.465
922
+ l-25.866-115.948l-43.244-18.104l-38.349-106.916l 36.434-81.807l-10.26-31.406L 290.519,81.316zM 199.045,386.232c 23.132,0, 41.933,18.719, 41.933,41.759C 240.968,451.021, 222.177,469.76, 199.045,469.76s-41.943-18.739-41.943-41.769
923
+ C 157.092,404.951, 175.903,386.232, 199.045,386.232zM 115.599,379.699c 3.215,5.663, 1.352,13.056-4.454,16.261L 90.849,407.788C 85.043,410.993, 77.732,409.139, 74.394,403.354L 11.807,295.793
924
+ c-3.215-5.663-1.362-12.933, 4.444-16.261l 20.419-11.715c 5.683-3.318, 12.995-1.352, 16.323,4.321L 115.599,379.699z" />
925
+ <glyph unicode="&#xe089;" d="M 300.38,340.644c 19.425,0, 35.236,17.285, 35.236,38.543c0,21.268-15.811,38.554-35.236,38.554c-19.456,0-35.277-17.285-35.277-38.554
926
+ C 265.103,357.929, 280.924,340.644, 300.38,340.644zM 398.141,4.024L 348.16,172.8L 348.16,305.92 c0,18.084-20.541,20.48-20.541,20.48l-53.146,0 l-14.049,0 c0,0-8.837-5.069-14.664-10.24l-33.065-15.155l-40.837,45.404
927
+ c-6.656,8.643-18.401,10.25-26.307,2.98c-8.008-7.27-8.417-20.285-1.772-29.041l 52.060-56.883c 3.553-4.106, 8.428-6.84, 13.937-6.84
928
+ c 4.055,0-1.966,1.444, 1.167,3.779L 245.76,275.2l0-102.4 l-53.002-168.448c-3.85-15.237, 9.339-30.925, 23.357-35.021c 13.947-4.086, 30.751,4.997, 34.499,20.244
929
+ l 47.073,151.347l 47.329-151.695c 3.717-15.34, 19.405-24.33, 33.341-20.234C 392.294-26.931, 401.961-11.223, 398.141,4.024zM 134.523,301.066c 1.761-1.987, 4.782-2.038, 6.656,0l 0.625,0.573c 1.782,2.058, 1.884,5.345,0,7.332l-10.189,11.428
930
+ c-1.884,2.048-4.905,2.048-6.779,0.051l-0.512-0.625c-1.864-2.048-1.976-5.294-0.102-7.281L 134.523,301.066zM 232.018,430.469l-60.16-71.127l 7.301-8.131l 67.123,63.283l 44.626,44.974c 1.782,2.161, 2.908,4.997, 2.908,8.079
931
+ c0,6.82-4.997,12.39-11.131,12.452c-3.011,0.051-5.612-1.198-7.68-3.133L 232.018,430.469z" />
932
+ <glyph unicode="&#xe08a;" d="M 193.075,371.487c 22.958,0, 41.38,18.985, 41.38,42.373c0,23.398-18.422,42.383-41.38,42.383c-22.784,0-41.39-18.985-41.39-42.383
933
+ C 151.685,390.472, 170.291,371.487, 193.075,371.487zM 204.8,357.12L 81.92,357.12 c-20.48,0-20.48-30.72,0-30.72l 122.88,0 C 225.28,326.4, 225.28,357.12, 204.8,357.12zM 399.36,344.279c0,46.971-16.435,91.843-46.387,127.201C 353.106,471.603, 345.416,480, 345.416,480l-116.531-119.276l-1.987-1.966
934
+ c 0.358-0.532, 0.881-0.891, 1.106-1.495c 1.792-3.267, 2.785-6.902, 3.195-10.527c 0.123-1.495,0-3.041-0.174-4.588
935
+ c-0.225-3.154-0.819-6.246-2.14-9.175l-0.123-0.297c-0.287-0.532-0.41-1.188-0.748-1.782c-0.225-0.42-0.471-1.147-0.758-1.495
936
+ C 222.136,321.352, 213.371,316.16, 202.721,316.16L 133.12,316.16 l0-154.47 c0-0.123,0-9.236,0-9.37l-22.395-155.986c-2.447-12.851, 7.342-25.354, 19.896-27.853
937
+ C 143.176-34.15, 161.28-24.504, 163.84-11.52l 20.48,174.080l 10.24,0 l 34.714-175.391c 2.56-12.984, 20.5-21.32, 33.167-18.688c 12.452,2.499, 19.395,15.002, 16.947,27.853
938
+ L 245.76,162.877L 245.76,302.264 l 95.498-93.542c0,0, 9.759,8.448, 9.759,8.561C 380.826,252.611, 399.36,297.492, 399.36,344.279z M 378.255,326.4
939
+ c-3.42-30.72-21.32-67.871-43.756-95.048C 313.764,252.518, 266.24,292.383, 245.76,318.505L 245.76,326.4 L 378.255,326.4 z M 378.255,357.12L 244.756,357.12
940
+ c 24.525,30.72, 70.38,72.018, 93.88,96C 361.175,425.984, 374.958,398.080, 378.255,357.12z" />
941
+ <glyph unicode="&#xe08b;" d="M 491.52-21.76c-10.199,0-20.173,2.324-28.979,6.236c-9.042,4.157-19.231,6.584-29.901,6.584
942
+ c-10.557,0-20.756-2.417-29.798-6.584C 393.943-19.436, 384.072-21.76, 373.76-21.76c-10.301,0-20.173,2.324-28.989,6.236
943
+ c-9.042,4.157-19.241,6.584-29.911,6.584c-10.547,0-20.746-2.417-29.85-6.584C 276.214-19.436, 266.312-21.76, 255.99-21.76
944
+ c-10.26,0-20.183,2.324-28.969,6.236c-9.103,4.157-19.241,6.584-29.901,6.584c-10.619,0-20.756-2.417-29.85-6.584
945
+ C 158.413-19.436, 148.552-21.76, 138.24-21.76c-10.332,0-20.183,2.324-29.020,6.236c-9.021,4.157-19.241,6.584-29.86,6.584
946
+ c-10.67,0-20.828-2.417-29.85-6.584C 40.663-19.436, 30.802-21.76, 20.48-21.76l0,42.803 c 10.322,0, 20.183,2.324, 29.020,6.236
947
+ c 9.021,4.055, 19.19,6.482, 29.85,6.482c 10.619,0, 20.828-2.417, 29.86-6.482c 8.847-3.922, 18.698-6.236, 29.020-6.236
948
+ c 10.322,0, 20.173,2.324, 29.020,6.236c 9.093,4.055, 19.231,6.482, 29.85,6.482c 10.67,0, 20.808-2.417, 29.901-6.482
949
+ c 8.786-3.922, 18.708-6.236, 28.969-6.236c 10.322,0, 20.224,2.324, 29.020,6.236c 9.103,4.055, 19.302,6.482, 29.85,6.482
950
+ c 10.67,0, 20.869-2.417, 29.911-6.482c 8.817-3.922, 18.688-6.236, 28.989-6.236c 10.312,0, 20.183,2.324, 29.082,6.236
951
+ c 9.042,4.055, 19.241,6.482, 29.798,6.482c 10.67,0, 20.859-2.417, 29.901-6.482c 8.806-3.922, 18.78-6.236, 28.979-6.236L 491.5-21.76 zM 71.035,225.915c 15.77,0, 28.559,12.575, 28.559,28.047c0,15.452-12.79,28.037-28.559,28.037
952
+ c-15.729,0-28.508-12.585-28.508-28.037C 42.527,238.479, 55.306,225.915, 71.035,225.915zM 196.465,101.12l-81.633,0 c-12.012,0-22.446,5.765-27.146,15.954l-30.198,67.113c-0.584,2.304-0.881,4.291-0.881,6.728
953
+ c0,16.261, 13.373,29.266, 29.86,29.266l 66.314,0.041l 45.507,20.275c 0.707,0.451, 2.57,0.891, 4.577,0.891c 7.793,0, 14.193-6.359, 14.193-13.978
954
+ c0-4.741-2.468-9.011-6.103-11.551l-49.49-20.808C 158.177,192.522, 151.962,193.28, 151.962,193.28l-29.798,0 l 24.986-61.44l 55.183,0 l0,0
955
+ c 5.448,0, 9.267,0.461, 12.595-2.417l 54.088-49.418l0,0c 7.557-6.902, 7.967-17.981, 0.932-25.477c-7.086-7.383-18.944-6.298-26.511,0.625l0,0
956
+ L 196.465,101.12zM 450.836,190.362c 1.044-1.741, 3.604-2.417, 5.98-2.417c 4.536,0, 8.315,3.697, 8.315,8.305
957
+ c0,2.202-1.075,4.157-2.12,6.021c-51.016,95.775-188.744,67.277-205.629,61.041c-2.806-1.044-4.454-4.157-4.454-7.281
958
+ c0-4.485, 3.748-8.192, 8.315-8.192c 1.413,0, 2.109,0.123, 3.338,0.461C 399.677,278.19, 443.668,202.476, 450.836,190.362z M 474.296,181.699
959
+ L 301.548,74.496L 144.271,469.76C 285.010,451.41, 463.954,343.849, 474.296,181.699z" />
960
+ <glyph unicode="&#xe08c;" d="M 10.24,428.8L 88.238,347.976L 118.211,375.255L 91.075,428.554 zM 361.841,202.414c 14.735-4.116, 30.597,4.342, 34.775,19.548c 4.045,14.93-4.557,30.628-19.436,34.867l-11.54,3.226
961
+ l-14.981-54.292L 361.841,202.414zM 352.758,263.547l-93.338,26.655c-6.144,1.618-12.339-2.13-14.070-8.346l-8.724-31.631
962
+ c-1.71-6.226, 1.597-12.575, 7.864-14.449l 93.409-26.409L 352.758,263.547zM 367.483,173.629c-7.117,6.851-15.964,12.329-26.255,15.196l-113.183,32.123l0,0l-69.53,125.030
963
+ c-3.686,6.472-9.585,11.581-17.203,13.701c-15.237,4.352-31.089-4.731-35.256-20.173c-2.089-7.352-1.106-14.817, 2.212-21.166l 86.979-154.665
964
+ c0,0, 7.127-11.581, 25.057-17.572l 158.126-44.964l 73.339-75.459c 2.458-2.611, 5.663-4.598, 9.462-5.734c 11.059-3.113, 22.6,3.625, 25.805,14.715
965
+ c 2.099,7.834-0.358,16.056-5.898,21.166L 367.483,173.629zM 451.901,142.367l 16.435-21.791L 501.76,157.573l-28.242,15.954c 2.683,20.050-9.605,39.465-29.256,45.066
966
+ c-21.617,6.113-44.104-6.595-50.104-28.518c-6.164-22.047, 6.502-44.698, 28.119-50.811C 432.599,136.284, 443.044,137.902, 451.901,142.367z" />
967
+ <glyph unicode="&#xe08d;" d="M 481.28-21.76c-9.748,0-19.292,2.253-27.699,6.113c-8.632,4.065-18.381,6.451-28.611,6.451
968
+ c-10.097,0-19.845-2.376-28.477-6.451C 387.953-19.507, 378.511-21.76, 368.66-21.76c-9.769,0-19.292,2.253-27.73,6.113
969
+ c-8.612,4.065-18.381,6.451-28.59,6.451c-10.107,0-19.855-2.376-28.518-6.451C 275.343-19.507, 265.861-21.76, 256.051-21.76
970
+ c-9.871,0-19.292,2.253-27.771,6.113c-8.632,4.065-18.401,6.451-28.539,6.451c-10.209,0-19.978-2.376-28.611-6.451
971
+ C 162.703-19.507, 153.231-21.76, 143.35-21.76c-9.81,0-19.292,2.253-27.75,6.113c-8.643,4.065-18.401,6.451-28.559,6.451
972
+ c-10.158,0-19.917-2.376-28.559-6.451C 50.012-19.507, 40.591-21.76, 30.72-21.76l0,42.004 c 9.871,0, 19.292,2.253, 27.761,6.113
973
+ c 8.643,3.963, 18.401,6.339, 28.559,6.339c 10.148,0, 19.907-2.376, 28.559-6.339c 8.468-3.86, 17.94-6.113, 27.75-6.113
974
+ c 9.882,0, 19.354,2.253, 27.771,6.113c 8.632,3.963, 18.401,6.339, 28.611,6.339c 10.138,0, 19.907-2.376, 28.539-6.339
975
+ c 8.489-3.86, 17.9-6.113, 27.771-6.113c 9.81,0, 19.292,2.253, 27.771,6.113c 8.663,3.963, 18.412,6.339, 28.518,6.339
976
+ c 10.209,0, 19.978-2.376, 28.59-6.339c 8.438-3.86, 17.961-6.113, 27.73-6.113c 9.851,0, 19.292,2.253, 27.832,6.113
977
+ c 8.632,3.963, 18.381,6.339, 28.477,6.339c 10.23,0, 19.978-2.376, 28.611-6.339c 8.407-3.86, 17.951-6.113, 27.699-6.113L 481.27-21.76 zM 296.96,469.76L 296.96,152.32L 43.899,152.32 zM 327.68,396.861C 327.68,361.421, 489.953,264.96, 478.136,152.32L 327.68,152.32 L 327.68,396.861 L 327.68,396.861zM 445.716,131.84l-69.99,0 L 102.4,131.84 l0-63.488 c 10.24-1.024, 8.663-2.161, 12.155-3.86c 8.468-3.738, 18.473-5.99, 28.283-5.99
978
+ c 9.882,0, 19.62,2.253, 28.037,5.99c 8.632,4.076, 18.534,6.451, 28.744,6.451c 10.138,0, 19.968-2.365, 28.6-6.451
979
+ c 8.489-3.738, 17.93-5.99, 27.802-5.99c 9.81,0, 19.302,2.253, 27.781,5.99c 8.663,4.076, 18.422,6.451, 28.529,6.451
980
+ c 10.209,0, 19.988-2.365, 28.6-6.451c 8.438-3.738, 17.961-5.99, 27.73-5.99c 1.915,0, 3.686,0.451, 5.489,0.676
981
+ c 0.225,0, 0.225-0.225, 0.461-0.225c 1.219,0, 2.12,0.563, 3.359,0.563c 2.243,0.338, 4.475,0.573, 6.728,1.126
982
+ c 20.173,4.188, 33.219,20.541, 33.219,20.541L 457.185,131.84L 445.716,131.84 z" />
983
+ <glyph unicode="&#xe08e;" d="M 257.198,374.17c-15.104,0-27.556,12.513-27.556,27.853c0,15.442, 12.452,27.843, 27.556,27.843
984
+ c 15.37,0, 27.699-12.401, 27.699-27.843C 284.897,386.683, 272.568,374.17, 257.198,374.17z M 480.799,130.396l-14.756,92.436
985
+ c-1.679,8.643-9.196,15.217-18.135,15.217c-5.437,0-10.281-2.314-13.793-6.093l-67.983-64.102c-1.065-0.973-2.161-2.058-3.144-3.41
986
+ c-6.39-8.745-4.567-21.156, 4.137-27.73c 1.659-1.198, 3.502-2.058, 5.315-2.796l 17.029-5.724C 373.064,81.51, 325.816,39.281, 276.48,29.44L 276.48,336.64
987
+ c 24.177,10.342, 48.077,37.396, 48.077,65.382C 324.557,439.48, 294.431,469.76, 257.198,469.76c-37.1,0-67.338-30.28-67.338-67.738
988
+ c0-27.986, 21.586-55.040, 45.65-65.382l0-307.2 c-50.422,9.124-96.317,51.2-113.132,98.765l 17.183,5.724c 1.812,0.737, 3.615,1.597, 5.315,2.796
989
+ c 8.694,6.574, 10.629,18.985, 4.116,27.73c-0.983,1.352-1.935,2.437-3.154,3.41l-67.973,64.102c-3.389,3.779-8.346,6.093-13.67,6.093
990
+ c-9.062,0-16.691-6.574-18.258-15.217l-14.756-92.436C 30.843,128.942, 30.72,127.365, 30.72,125.768c0-10.916, 8.827-19.825, 19.722-19.825
991
+ c 2.048,0, 3.983,0.256, 5.796,0.87l 15.964,5.222C 97.597,34.437, 170.25-21.76, 256-21.76c 85.74,0, 158.423,56.197, 183.818,133.919l 15.974-5.335
992
+ c 1.792-0.614, 3.758-0.87, 5.786-0.87c 10.885,0, 19.712,8.899, 19.712,19.825C 481.28,127.365, 481.167,128.942, 480.799,130.396z" />
993
+ <glyph unicode="&#xe08f;" d="M 178.555,348.058c 25.231,0, 45.568,20.408, 45.568,45.527C 224.123,418.693, 203.776,439.040, 178.555,439.040
994
+ c-25.18,0-45.578-20.347-45.578-45.455C 132.966,368.466, 153.375,348.058, 178.555,348.058zM 10.24,99.41c 10.24,0, 20.982,2.458, 30.177,6.584c 9.441,4.362, 20.142,6.922, 31.212,6.922c 11.080,0, 21.76-2.56, 31.15-6.922
995
+ c 9.257-4.116, 19.589-6.523, 30.362-6.523c 10.721,0, 21.043,2.396, 30.249,6.523c 9.38,4.362, 20.050,6.922, 31.191,6.922
996
+ c 11.069,0, 21.668-2.56, 31.171-6.922c 9.155-4.116, 19.528-6.523, 30.249-6.523c 10.721,0, 21.094,2.396, 30.239,6.523
997
+ c 9.503,4.362, 20.122,6.922, 31.242,6.922c 11.080,0, 21.678-2.56, 31.119-6.922c 9.257-4.116, 19.589-6.523, 30.321-6.523
998
+ c 10.752,0, 21.043,2.396, 30.3,6.523c 9.38,4.362, 20.040,6.922, 31.109,6.922c 9.503,0, 18.719-1.812, 27.034-5.059
999
+ c 13.537,14.756, 21.934,34.406, 21.934,55.921c0,45.814-37.181,82.903-83.046,82.903l-9.308-0.993c-10.209-41.339-51.651-43.080-51.651-43.080
1000
+ L 155.648,202.66l-15.852,9.308l 38.226,64l 41.851-24.125c 25.057-16.21, 38.103,6.513, 38.103,6.513l 41.964,68.26
1001
+ c 18.237,29.655-20.449,53.432-38.574,23.665l-29.379-47.841l-69.816,38.543c-48.384,26.921-68.884-17.674-68.884-17.674l-54.835-93.716
1002
+ c-9.329-19.476-1.065-27.843-1.065-27.843L 10.24,201.789L 10.24,99.41 zM 501.76,8.96c-10.732,0-21.043,2.376-30.188,6.513c-9.492,4.362-20.111,6.912-31.242,6.912
1003
+ c-11.069,0-21.729-2.55-31.109-6.912C 399.964,11.336, 389.673,8.96, 378.921,8.96c-10.732,0-21.064,2.376-30.321,6.513
1004
+ c-9.441,4.362-20.040,6.912-31.119,6.912c-11.121,0-21.74-2.55-31.242-6.912C 277.094,11.336, 266.721,8.96, 256,8.96
1005
+ c-10.711,0-21.094,2.376-30.249,6.513c-9.503,4.362-20.101,6.912-31.171,6.912c-11.131,0-21.801-2.55-31.181-6.912
1006
+ C 154.194,11.336, 143.872,8.96, 133.151,8.96c-10.783,0-21.105,2.376-30.362,6.513c-9.39,4.362-20.050,6.912-31.13,6.912
1007
+ c-11.069,0-21.74-2.55-31.171-6.912C 31.283,11.336, 20.961,8.96, 10.24,8.96l0,45.23 c 10.721,0, 21.043,2.437, 30.249,6.574
1008
+ c 9.441,4.352, 20.101,6.912, 31.171,6.912c 11.080,0, 21.75-2.56, 31.13-6.912c 9.257-4.127, 19.579-6.574, 30.362-6.574
1009
+ c 10.721,0, 21.043,2.437, 30.249,6.574c 9.38,4.352, 20.050,6.912, 31.181,6.912c 11.069,0, 21.668-2.56, 31.171-6.912
1010
+ c 9.155-4.127, 19.528-6.574, 30.249-6.574c 10.721,0, 21.094,2.437, 30.239,6.574c 9.503,4.352, 20.122,6.912, 31.242,6.912
1011
+ c 11.080,0, 21.678-2.56, 31.119-6.912c 9.257-4.127, 19.589-6.574, 30.321-6.574c 10.752,0, 21.043,2.437, 30.3,6.574
1012
+ c 9.38,4.352, 20.040,6.912, 31.109,6.912c 11.131,0, 21.75-2.56, 31.242-6.912c 9.155-4.127, 19.456-6.574, 30.188-6.574L 501.76,8.96 z" />
1013
+ <glyph unicode="&#xe090;" d="M 491.52,60.16c-10.24,0-18.985,2.314-27.996,6.298c-9.38,4.209-18.964,6.676-29.932,6.676
1014
+ c-10.916,0-21.012-2.468-30.249-6.676C 394.209,62.474, 384.307,60.16, 373.678,60.16c-10.568,0-20.654,2.314-29.778,6.298
1015
+ c-9.308,4.209-19.712,6.676-30.628,6.676c-10.957,0-21.412-2.468-30.792-6.676c-9.011-3.994-19.22-6.298-29.798-6.298
1016
+ c-10.578,0-20.787,2.314-29.819,6.298c-9.37,4.209-19.825,6.676-30.74,6.676c-10.977,0-21.494-2.468-30.74-6.676
1017
+ C 152.3,62.474, 142.131,60.16, 131.553,60.16c-10.629,0-20.797,2.314-29.932,6.298c-9.257,4.209-19.773,6.676-30.689,6.676
1018
+ c-10.916,0-21.494-2.468-30.802-6.676C 31.037,62.474, 20.48,60.16, 10.24,60.16l0,43.725 c 10.24,0, 20.797,2.355, 29.88,6.359c 9.318,4.198, 19.855,6.676, 30.771,6.676
1019
+ c 10.916,0, 21.453-2.478, 30.71-6.676c 9.144-4.004, 19.313-6.359, 29.942-6.359c 10.588,0, 20.746,2.355, 29.829,6.359
1020
+ c 9.247,4.198, 19.773,6.676, 30.751,6.676c 10.916,0, 21.371-2.478, 30.74-6.676c 9.021-4.004, 19.251-6.359, 29.829-6.359
1021
+ c 10.578,0, 20.808,2.355, 29.819,6.359c 9.38,4.198, 19.845,6.676, 30.812,6.676c 10.916,0, 21.381-2.478, 30.689-6.676
1022
+ c 9.134-4.004, 19.323-6.359, 29.891-6.359c 10.629,0, 20.746,2.355, 29.88,6.359c 9.236,4.198, 19.773,6.676, 30.689,6.676
1023
+ c 10.967,0, 19.671-2.478, 29.051-6.676C 472.535,106.24, 481.28,103.885, 491.52,103.885L 491.52,60.16 zM 10.527,244.48l-0.174-101.478c 10.578,0, 20.746,3.185, 29.829,7.178c 9.318,4.219, 19.835,7.137, 30.74,7.137
1024
+ c 10.916,0, 21.432-2.243, 30.689-6.461c 9.144-4.004, 19.302-6.185, 29.932-6.185c 10.588,0, 20.746,2.345, 29.829,6.339
1025
+ c 9.247,4.219, 19.773,6.717, 30.74,6.717c 10.916,0, 21.371-2.447, 30.74-6.666c 9.021-4.004, 19.251-6.287, 29.829-6.287
1026
+ c 10.578,0, 20.808,2.304, 29.819,6.298c 9.38,4.219, 19.845,6.687, 30.812,6.687c 10.916,0, 21.381-2.468, 30.689-6.687
1027
+ c 9.134-4.004, 19.323-6.287, 29.891-6.287c 2.99,0, 5.857,0.625, 8.786,0.952c 5.335,1.116, 10.742,1.628, 15.923,3.645
1028
+ c 0.113,0.051, 0.236,0.113, 0.348,0.174c 38.502,15.278, 71.711,51.313, 92.447,79.524L 501.76,244.48L 10.527,244.48 zM 284.713,357.12l 71.035,0 l 0.635,0 l 0.461,0 c 0.809,0, 19.476,2.877, 25.743-10.783L 409.692,285.44c-13.036,0-45.046,0-92.396,0
1029
+ L 284.713,357.12z M 92.16,291.768C 92.16,286.996, 88.228,285.44, 83.405,285.44L 43.745,285.44 C 38.912,285.44, 30.72,286.996, 30.72,291.768l0,58.665 C 30.72,355.144, 38.912,357.12, 43.745,357.12l 39.649,0
1030
+ C 88.228,357.12, 92.16,355.144, 92.16,350.433L 92.16,291.768 z M 256,291.768C 256,286.996, 251.72,285.44, 246.835,285.44l-39.598,0 C 202.353,285.44, 194.56,286.996, 194.56,291.768l0,58.665
1031
+ C 194.56,355.144, 202.353,357.12, 207.237,357.12l 39.598,0 C 251.72,357.12, 256,355.144, 256,350.433L 256,291.768 z M 174.080,291.768C 174.080,286.996, 169.82,285.44, 164.946,285.44l-39.363,0
1032
+ C 120.689,285.44, 112.64,286.996, 112.64,291.768l0,58.665 C 112.64,355.144, 120.689,357.12, 125.583,357.12l 39.363,0 C 169.82,357.12, 174.080,355.144, 174.080,350.433L 174.080,291.768 z M 394.701,364.237
1033
+ C 382.915,389.857, 351.017,387.84, 351.017,387.84L 10.291,387.84 L 10.24,264.96l 427.162,0 L 394.701,364.237z" />
1034
+ <glyph unicode="&#xe091;" d="M 87.040,407.378l 97.946-27.023L 239.35,418.56l 18.913-4.659l-53.852-38.318l 296.806-82.463l-21.719-80.712l-297.912,82.237
1035
+ C 66.171,329.452, 87.214,407.378, 87.214,407.378M 347.72,200.878c-0.358,6.738-1.638,13.158-3.84,19.22l 135.997-37.857l-4.362-16.783L 347.72,200.878zM 224.164,234.998c 3.666,5.335, 8.008,10.148, 12.943,14.316L 10.24,311.982l0-18.053 L 224.164,234.998zM 280.34,175.237c 12.196,0, 22.098,9.923, 22.098,22.118c0,12.237-9.902,22.139-22.098,22.139
1036
+ c-12.237,0-22.129-9.902-22.129-22.139C 258.212,185.16, 268.104,175.237, 280.34,175.237z M 501.76,39.68c-10.762,0-21.002,2.437-30.136,6.636
1037
+ c-9.503,4.301-20.101,6.881-31.201,6.881c-11.059,0-21.719-2.58-31.078-6.881C 400.077,42.117, 389.857,39.68, 379.085,39.68
1038
+ c-10.762,0-21.023,2.437-30.259,6.636c-9.421,4.301-19.999,6.881-31.078,6.881c-11.121,0-21.699-2.58-31.181-6.881
1039
+ C 277.422,42.117, 267.059,39.68, 256.348,39.68c-10.701,0-21.002,2.437-30.198,6.636c-9.482,4.301-20.142,6.881-31.191,6.881
1040
+ c-11.059,0-21.709-2.58-31.078-6.881C 154.685,42.117, 144.333,39.68, 133.612,39.68c-10.701,0-21.002,2.437-30.259,6.636
1041
+ c-9.38,4.301-20.029,6.881-31.089,6.881c-11.049,0-21.699-2.58-31.13-6.881C 31.949,42.117, 21.586,39.68, 10.936,39.68L 10.24,219.955l 248.084-68.465
1042
+ c-17.101,8.264-28.979,25.6-28.979,45.865c0,28.201, 22.804,51.026, 50.985,51.026c 28.099,0, 50.964-22.825, 50.964-51.026c0-28.18-22.856-50.995-50.964-50.995
1043
+ c-1.7,0-3.379,0.338-5.018,0.481l 226.079-62.341L 501.76,39.68z" />
1044
+ <glyph unicode="&#xe092;" d="M 501.76,70.4c-10.762,0-21.012,2.376-30.228,6.564c-9.39,4.239-20.029,6.799-31.15,6.799c-11.172,0-21.821-2.58-31.222-6.799
1045
+ C 399.954,72.776, 389.693,70.4, 378.921,70.4c-10.752,0-21.053,2.376-30.208,6.564c-9.554,4.239-20.214,6.799-31.212,6.799
1046
+ c-11.131,0-21.791-2.58-31.222-6.799C 277.115,72.776, 266.701,70.4, 256.041,70.4c-10.772,0-21.023,2.376-30.31,6.564
1047
+ c-9.431,4.239-20.050,6.799-31.089,6.799c-11.131,0-21.78-2.58-31.212-6.799C 154.266,72.776, 143.852,70.4, 133.079,70.4
1048
+ c-10.609,0-21.023,2.376-30.188,6.564C 93.46,81.203, 82.801,83.763, 71.68,83.763c-11.049,0-21.647-2.58-31.099-6.799
1049
+ C 31.273,72.776, 21.012,70.4, 10.24,70.4l0,45.015 c 10.762,0, 21.023,2.437, 30.341,6.461C 50.033,126.218, 60.631,128.778, 71.68,128.778
1050
+ c 11.121,0, 21.78-2.56, 31.212-6.902c 9.165-4.024, 19.579-6.461, 30.188-6.461c 10.762,0, 21.187,2.437, 30.351,6.461
1051
+ c 9.421,4.342, 20.081,6.902, 31.212,6.902c 11.039,0, 21.647-2.56, 31.089-6.902c 9.288-4.024, 19.538-6.461, 30.31-6.461
1052
+ c 10.66,0, 21.064,2.437, 30.239,6.461c 9.431,4.342, 20.091,6.902, 31.222,6.902c 10.988,0, 21.637-2.56, 31.212-6.902
1053
+ c 9.165-4.024, 19.456-6.461, 30.208-6.461c 10.772,0, 21.033,2.437, 30.239,6.461c 9.4,4.342, 20.050,6.902, 31.222,6.902
1054
+ c 11.121,0, 21.76-2.56, 31.15-6.902c 9.216-4.024, 19.466-6.461, 30.228-6.461L 501.76,70.4 zM 430.572,197.745c 32.276,0, 58.47,26.112, 58.47,58.143c0,32.061-26.194,58.040-58.47,58.040c-32.328,0-58.491-25.989-58.491-58.040
1055
+ C 372.081,223.857, 395.919,197.745, 430.572,197.745zM 90.020,165.059c 4.536-1.075, 8.817-2.642, 12.882-4.465c 9.165-4.116, 19.579-6.564, 30.198-6.564c 10.752,0, 21.187,2.437, 30.341,6.564
1056
+ c 9.431,4.239, 20.081,6.922, 31.212,6.922c 11.039,0, 21.668-2.683, 31.089-6.922c 9.277-4.116, 19.538-6.564, 30.31-6.564
1057
+ c 10.65,0, 21.074,2.437, 30.228,6.564c 9.441,4.239, 20.091,6.922, 31.222,6.922c 10.998,0, 21.658-2.683, 31.212-6.922
1058
+ c 9.175-4.116, 19.456-6.564, 30.228-6.564c 7.834,0, 15.38,1.321, 22.497,3.543l-97.536,174.653l 113.449,20.552
1059
+ c 16.65,3.154, 28.733,16.138, 28.733,32.758c0,18.33-15.022,33.024-33.403,33.024c-1.321,0-2.55,0-3.789-0.113L 233.646,386.785
1060
+ c-12.298-2.796-28.59-20.675-19.313-42.609c 0.512-1.208, 0.973-2.335, 1.495-3.533l 45.732-81.951L 90.020,165.059z" />
1061
+ <glyph unicode="&#xe093;" d="M 491.52-21.76c-10.301,0-20.183,2.355-28.979,6.369c-9.144,4.25-19.343,6.728-29.901,6.728c-10.66,0-20.879-2.478-29.901-6.728
1062
+ C 393.943-19.405, 383.959-21.76, 373.77-21.76c-10.332,0-20.285,2.355-29.092,6.369c-9.042,4.25-19.241,6.728-29.901,6.728
1063
+ c-10.557,0-20.767-2.478-29.798-6.728C 276.193-19.405, 266.22-21.76, 255.898-21.76c-10.322,0-20.173,2.355-28.969,6.369
1064
+ c-9.042,4.25-19.21,6.728-29.88,6.728c-10.557,0-20.777-2.478-29.911-6.728C 158.341-19.405, 148.5-21.76, 138.23-21.76
1065
+ c-10.322,0-20.173,2.355-28.969,6.369c-9.021,4.25-19.241,6.728-29.901,6.728c-10.557,0-20.756-2.478-29.901-6.728C 40.653-19.405, 30.802-21.76, 20.48-21.76
1066
+ l0,43.786 c 10.322,0, 20.173,2.365, 28.969,6.4c 9.155,4.106, 19.343,6.595, 29.901,6.595c 10.67,0, 20.879-2.478, 29.901-6.595
1067
+ c 8.796-4.035, 18.647-6.4, 28.969-6.4c 10.271,0, 20.111,2.365, 28.918,6.4c 9.134,4.106, 19.354,6.595, 29.911,6.595
1068
+ c 10.67,0, 20.838-2.478, 29.88-6.595c 8.796-4.035, 18.647-6.4, 28.969-6.4c 10.312,0, 20.285,2.365, 29.082,6.4
1069
+ c 9.032,4.106, 19.241,6.595, 29.798,6.595c 10.66,0, 20.859-2.478, 29.901-6.595c 8.796-4.035, 18.76-6.4, 29.092-6.4
1070
+ c 10.189,0, 20.173,2.365, 28.969,6.4c 9.021,4.106, 19.241,6.595, 29.901,6.595c 10.557,0, 20.756-2.478, 29.901-6.595
1071
+ c 8.796-4.035, 18.678-6.4, 28.979-6.4L 491.52-21.76 zM 301.281,68.659c 4.465,0.942, 8.919,1.413, 13.496,1.413c 10.66,0, 20.859-2.468, 29.901-6.595c 8.796-4.035, 18.76-6.39, 29.092-6.39
1072
+ c 10.189,0, 20.173,2.355, 28.969,6.39c 6.216,2.806, 12.902,5.069, 20.060,6.011C 418.918,186.972, 297.175,291.789, 291.441,297.216
1073
+ c-5.98,5.437-11.5,17.347-7.619,31.406l 29.071,96.799c 5.171,15.002, 2.591,35.062-4.557,41.083c-4.106,3.308-12.79,5.673-18.668-1.065
1074
+ l-78.664-89.825c-17.244-18.422-2.806-38.134-3.154-38.021c-26.757,9.687-58.173,3.195-77.23-4.71l-64.983-33.188
1075
+ c-6.451-2.714-9.257-10.967-5.857-16.517c 10.793-17.367, 46.561-17.48, 121.088-9.329C 301.281,286.843, 301.404,92.621, 301.281,68.659z" />
1076
+ <glyph unicode="&#xe094;" d="M 303.196,35.195c 3.523,0.594, 7.045,0.809, 10.68,0.809c 10.977,0, 21.504-2.499, 30.843-6.84c 9.083-3.953, 19.241-6.349, 29.88-6.349
1077
+ s 20.941,2.396, 30.024,6.349c 9.298,4.342, 19.825,6.84, 30.72,6.84c 11.018,0, 19.292-2.499, 28.59-6.84c 9.083-3.953, 17.347-6.349, 27.587-6.349L 491.52-21.76
1078
+ c-10.24,0-18.514,2.396-27.587,6.513c-9.298,4.157-18.708,6.717-29.727,6.717c-10.895,0-20.849-2.56-30.147-6.717
1079
+ C 394.967-19.364, 384.963-21.76, 374.323-21.76s-20.664,2.396-29.737,6.513c-9.339,4.157-19.794,6.717-30.771,6.717
1080
+ c-10.895,0-21.412-2.56-30.853-6.717C 273.889-19.364, 263.731-21.76, 253.092-21.76c-10.65,0-20.808,2.396-29.88,6.513
1081
+ c-9.298,4.157-19.794,6.717-30.802,6.717c-11.018,0-21.545-2.56-30.863-6.717C 152.484-19.364, 142.305-21.76, 131.727-21.76
1082
+ c-10.65,0-20.818,2.396-29.88,6.513c-9.441,4.157-19.978,6.717-30.863,6.717c-11.008,0-21.545-2.56-30.843-6.717
1083
+ C 31.058-19.364, 20.89-21.76, 10.24-21.76l0,44.575 c 10.65,0, 20.818,2.396, 29.901,6.349c 9.298,4.342, 19.835,6.84, 30.843,6.84
1084
+ c 10.885,0, 21.412-2.499, 30.863-6.84c 9.062-3.953, 19.241-6.349, 29.88-6.349c 10.578,0, 20.756,2.396, 29.819,6.349
1085
+ c 5.345,2.396, 10.895,4.342, 16.701,5.396l 283.116,50.104c 9.175,2.161, 21.658,8.509, 25.999,19.446c 0.86,2.079, 3.86,2.673, 6.4,2.56
1086
+ C 498.381,106.404, 501.76,102.451, 501.76,97.874c0-7.209-5.581-27.392-36.516-33.628L 303.196,35.195zM 57.549,388.444c 22.62,0, 41.021,18.258, 41.021,40.724C 98.57,451.625, 80.169,469.76, 57.549,469.76C 34.939,469.76, 16.66,451.625, 16.66,429.169
1087
+ C 16.66,406.692, 34.939,388.444, 57.549,388.444zM 176.66,59.802c 2.068-9.021, 13.076-17.664, 24.576-17.664l-0.133-0.123c 14.367,0, 26.112,11.54, 26.112,25.938l-0.481,4.219l-31.191,132.956
1088
+ c-2.662,8.53-10.783,16.589-19.128,19.958l0,0l-45.906,27.382l-20.931,89.6l 129.004,0.236c 10.537,0, 19.016,7.117, 19.016,17.582
1089
+ c0,10.445-8.479,17.705-19.016,17.705L 52.337,377.59 c-18.606,0-27.218-11.94-25.027-23.47l 26.378-118.159c 2.068-11.172, 9.431-20.224, 19.374-25.16
1090
+ l 0.594-0.072l 76.78-44.739L 176.66,59.802zM 266.24,357.12L 501.76,357.12L 501.76,346.88L 266.24,346.88z" />
1091
+ <glyph unicode="&#xe095;" d="M 96.42,116.838c 137.411-58.092, 241.777-91.965, 388.782-138.537c 3.011-0.461, 5.786,1.628, 6.246,4.772
1092
+ c 0.461,3.021-1.608,5.939-4.628,6.523C 255.263,62.822, 73.492,143.964, 32.020,162.826c-4.291,1.731-9.277-0.236-10.885-4.444
1093
+ c-1.741-4.311, 0.113-8.96, 4.28-10.588c 10.312-4.649, 20.5-9.185, 30.351-13.496l-32.666-25.027c-3.707-5.468-2.089-12.462, 3.359-16.179
1094
+ c 4.055-2.796, 9.851-2.447, 13.783,0.123L 96.42,116.838zM 475.689,263.465l-106.957,98.734c 0.799-0.051, 1.556-0.236, 2.365-0.236c 21.658,0, 39.148,17.695, 39.148,39.465
1095
+ S 392.755,440.883, 371.098,440.883c-21.78,0-39.27-17.695-39.27-39.465c0-8.315, 2.591-16.015, 6.963-22.395l-72.52,25.999l-39.158,56.924
1096
+ c-3.011,4.198-7.649,6.994-13.066,7.69c-10.189,1.157-19.579-6.287-20.726-16.65c-0.461-4.311, 0.584-8.499, 2.662-11.991l 39.926-58.204
1097
+ c 1.853-2.324, 4.178-4.301, 6.953-5.591l 46.336-18.278l-76.073-39.117c-10.65-6.052-18.186-16.763-20.265-29.225l 0.348-69.97l-70.369-31.887
1098
+ c-7.875-3.84-13.548-11.756-13.896-21.197c-0.573-13.507, 9.851-24.791, 23.286-25.385c 4.168-0.215, 8.223,0.696, 11.704,2.458l 86.098,39.096
1099
+ c 6.144,3.267, 10.772,9.196, 12.278,16.425l-0.113,43.54l 59.761-53.791l-11.008-91.607c0-0.584-0.113-1.157-0.113-1.751
1100
+ c-0.584-13.496, 9.861-24.914, 23.286-25.498c 12.616-0.461, 23.388,8.735, 25.129,21.187l 12.861,104.55c0,0.461, 0.113,0.922, 0.113,1.403
1101
+ c 0.225,7.332-2.652,13.967-7.526,18.616l-55.357,49.48l 83.405,41.216l 77.384-71.598c 3.471-3.379, 8.223-5.468, 13.322-5.468
1102
+ c 10.424,0.113, 18.76,8.612, 18.657,18.975C 482.079,254.966, 479.519,259.973, 475.689,263.465z" />
1103
+ <glyph unicode="&#xe096;" d="M 220.088,398.070l-5.55-9.933C 210.913,380.785, 203.418,377.6, 194.847,377.6l-13.046,0 c 7.485-10.24, 19.466-18.627, 33.352-18.627
1104
+ c 22.712,0, 40.847,17.162, 40.847,39.813L 256,398.080 l-33.976,0 C 221.174,398.080, 220.324,398.92, 220.088,398.070zM 194.847,387.84c 4.475,0, 8.448,1.556, 10.271,5.407l 5.427,9.708C 212.603,407.409, 216.955,408.32, 222.024,408.32l 42.527,0
1105
+ c-5.56,20.48-25.487,39.404-49.060,39.404c-27.904,0-50.493-20.664-50.493-48.62c0-4.465, 0.481-11.264, 1.69-11.264L 194.847,387.84 zM 334.684,162.56c 37.878,0, 136.817,11.602, 164.055,37.642c-12.257,37.642-60.58,40.653-104.919,21.484c-7.619-3.297-17.756-5.734-29.358-7.905
1106
+ l-9.062,35.082c 7.24,3.738, 12.022,11.397, 11.581,20.009c-0.461,11.756-10.322,20.941-22.077,20.46l-6.656,25.692
1107
+ c 6.543,4.936, 9.984,13.261, 8.038,21.75c-2.662,11.51-14.080,18.801-25.62,16.21c0,0-93.809-0.84-123.228-8.735
1108
+ c-29.358-7.895-39.26-57.231-39.26-57.231L 132.383,203.52L 10.24,203.52 l0-40.96 L 334.684,162.56 z M 250.358,307.927l 72.786,3l 5.796-22.292
1109
+ c-19.681-0.963-54.661-2.775-85.893-4.516L 250.358,307.927z M 230.062,241.408l 109.814,4.936l 9.124-34.949
1110
+ c-44.82-6.441-102.932-7.363-130.417-7.475L 230.062,241.408zM 435.261,115.364c0,0, 66.499,0.84, 66.499,65.741c0,2.601-0.256,4.557-0.481,6.963C 459.776,158.075, 348.877,152.32, 334.858,152.32L 10.24,152.32 l0-50.217
1111
+ c 7.854,0, 15.954,1.823, 23.071,4.936c 11.725,5.417, 24.771,8.315, 37.581,8.315c 12.8,0, 25.733-2.898, 37.202-8.202
1112
+ c 7.608-3.379, 15.462-5.059, 23.439-5.059c 8.1,0, 15.944,1.679, 23.194,4.936c 11.837,5.417, 24.76,8.315, 37.571,8.315
1113
+ c 12.923,0, 25.61-2.775, 37.335-8.202c 7.363-3.379, 15.452-5.059, 23.439-5.059c 7.967,0, 15.821,1.679, 23.183,4.936
1114
+ c 11.725,5.417, 24.781,8.315, 37.458,8.315c 13.036,0, 25.62-2.775, 37.325-8.202c 7.496-3.379, 15.575-5.059, 23.439-5.059
1115
+ c 0.983,0, 1.884,0.123, 2.836,0.123l 9.677-37.1c-4.178-0.717-8.335-1.219-12.636-1.219c-10.619,0-20.9,2.304-29.962,6.4
1116
+ c-9.298,4.342-19.804,6.861-30.802,6.861c-10.977,0-21.504-2.519-30.802-6.861c-9.062-4.096-19.22-6.4-29.85-6.4s-20.9,2.304-29.962,6.4
1117
+ c-9.298,4.342-19.804,6.861-30.802,6.861c-10.998,0-21.504-2.519-30.802-6.861c-9.062-4.096-19.21-6.4-29.839-6.4
1118
+ c-10.506,0-20.777,2.304-29.839,6.4c-9.308,4.342-19.814,6.861-30.802,6.861c-10.875,0-21.391-2.519-30.689-6.861
1119
+ C 31.027,66.202, 20.869,63.898, 10.24,63.898L 10.24,19.2 c 10.629,0, 20.787,2.284, 29.962,6.38c 9.298,4.342, 19.814,6.881, 30.689,6.881
1120
+ c 10.988,0, 21.494-2.54, 30.802-6.881c 9.062-4.096, 19.333-6.38, 29.839-6.38c 10.629,0, 20.777,2.284, 29.839,6.38
1121
+ c 9.298,4.342, 19.814,6.881, 30.802,6.881c 11.008,0, 21.504-2.54, 30.802-6.881c 9.062-4.096, 19.333-6.38, 29.962-6.38s 20.787,2.284, 29.85,6.38
1122
+ c 9.298,4.342, 19.825,6.881, 30.802,6.881c 10.998,0, 21.504-2.54, 30.802-6.881c 9.062-4.096, 19.343-6.38, 29.962-6.38
1123
+ c 10.496,0, 20.797,2.284, 29.839,6.38c 9.318,4.342, 19.825,6.881, 30.822,6.881c 10.977,0, 19.374-2.54, 28.672-6.881C 472.75,21.484, 481.28,19.2, 491.52,19.2
1124
+ l0,44.698 c-10.24,0-18.77,2.304-27.832,6.4c-9.298,4.342-18.749,6.861-29.727,6.861c-10.998,0-20.972-2.519-30.29-6.861
1125
+ c-0.717-0.317-1.178-0.543-1.925-0.84l-9.165,35.656c 1.7,0.604, 3.4,1.198, 5.018,1.925C 409.334,112.456, 422.461,115.364, 435.261,115.364z
1126
+ " />
1127
+ <glyph unicode="&#xe097;" d="M 424.407,164.403c-10.209,0-19.958-2.437-28.6-6.636c-8.54-3.84-17.951-6.164-27.832-6.164c-9.851,0-19.272,2.324-27.802,6.164
1128
+ c-8.653,4.198-18.401,6.636-28.6,6.636c-10.097,0-19.855-2.437-28.611-6.636c-8.428-3.84-17.828-6.164-27.699-6.164
1129
+ c-9.882,0-19.415,2.324-27.853,6.164c-8.643,4.198-18.391,6.636-28.611,6.636c-10.199,0-19.948-2.437-28.59-6.636
1130
+ c-8.53-3.84-17.94-6.164-27.761-6.164c-9.871,0-19.292,2.324-27.822,6.164c-8.632,4.198-18.278,6.636-28.477,6.636
1131
+ c-10.22,0-19.476-2.437-28.129-6.636C 49.51,153.917, 40.96,151.603, 30.72,151.603l0-43.131 c 10.24,0, 18.79,2.345, 27.32,6.175
1132
+ c 8.643,4.188, 18.156,6.625, 28.375,6.625c 10.199,0, 19.722-2.437, 28.355-6.625c 7.188-3.256, 15.084-5.1, 23.276-5.704l-34.57-35.666
1133
+ c-10.998,7.076-25.6,5.806-35.133-4.086l-39.598-41.021c-10.998-11.397-11.008-29.86,0-41.37c 11.1-11.397, 28.938-11.397, 39.916,0l 39.608,41.011
1134
+ c 8.98,9.329, 10.537,23.255, 4.925,34.304l 47.616,49.275c 3.256,1.065, 6.39,1.864, 9.421,3.256c 8.643,4.188, 18.401,6.625, 28.59,6.625
1135
+ c 10.22,0, 19.968-2.437, 28.611-6.625c 8.438-3.83, 17.971-6.175, 27.853-6.175c 9.871,0, 19.261,2.345, 27.699,6.175
1136
+ c 8.745,4.188, 18.514,6.625, 28.611,6.625c 10.199,0, 19.948-2.437, 28.6-6.625c 8.53-3.83, 17.951-6.175, 27.802-6.175
1137
+ c 9.882,0, 19.292,2.345, 27.832,6.175c 8.643,4.188, 18.391,6.625, 28.6,6.625c 10.189,0, 20.081-2.437, 28.826-6.625
1138
+ C 461.65,110.807, 471.040,108.472, 481.28,108.472L 481.28,151.603 c-10.24,0-19.63,2.324-28.037,6.164C 444.488,161.956, 434.596,164.403, 424.407,164.403zM 443.587,375.306l 39.598,41.032c 11.1,11.5, 11.1,29.993,0,41.39c-10.998,11.5-28.948,11.5-39.936,0L 403.661,416.696
1139
+ c-9.544-9.882-10.762-24.996-3.809-36.27l-49.244-51.098l-97.812,37.55c-2.57,1.516-5.274,2.785-8.294,3.727
1140
+ c-21.34,6.615-43.889-5.929-50.289-28.027l-30.054-104.704C 163.768,236.657, 163.666,234.24, 163.553,234.24L 30.72,234.24 l0-55.368 c 10.24,0, 14.367,1.751, 20.992,4.762
1141
+ c 10.875,5.233, 22.774,8.028, 34.673,8.028c 11.878,0, 23.777-2.796, 34.437-7.926c 7.055-3.246, 14.295-4.864, 21.699-4.864
1142
+ c 7.465,0, 14.715,1.608, 21.453,4.762c 10.988,5.233, 22.989,8.028, 34.857,8.028c 12.012,0, 23.777-2.673, 34.683-7.926
1143
+ c 6.84-3.246, 14.356-4.864, 21.76-4.864c 7.414,0, 14.674,1.608, 21.514,4.762c 10.885,5.233, 22.999,8.028, 34.785,8.028
1144
+ c 12.104,0, 23.777-2.673, 34.642-7.926c 6.963-3.246, 14.49-4.864, 21.76-4.864c 7.424,0, 14.817,1.608, 21.545,4.762
1145
+ c 10.885,5.233, 22.999,8.028, 34.888,8.028c 1.997,0, 10.189-0.645, 18.289,4.925c 14.346,6.502, 19.743,10.22, 32.287,18.186
1146
+ C 485.325,221.338, 493.496,234.24, 471.040,234.24c-10.24,0-194.56,0-194.56,0l 60.099,59.412l 7.629-3.011c 9.646-3.604, 20.408,1.505, 24.003,11.51
1147
+ c 2.468,7.076, 0.573,14.756-4.147,19.866l 46.438,48.302C 421.151,364.493, 434.596,366.019, 443.587,375.306z M 259.41,234.24l-11.991,0 l 24.218,83.958
1148
+ l 50.033-19.343L 259.41,234.24zM 259.082,419.451l-5.161-10.404C 250.552,401.971, 243.61,398.080, 235.633,398.080l-12.134,0 c 6.973-10.24, 20.367-16.712, 33.26-16.712
1149
+ C 277.842,381.368, 296.96,399.196, 296.96,421.059L 296.96,418.56 l-36.076,0 C 260.096,418.56, 259.308,420.27, 259.082,419.451zM 235.633,408.32c 4.157,0, 7.864,2.591, 9.544,6.298l 5.048,9.185C 252.129,428.114, 256.164,428.8, 260.884,428.8l 39.465,0
1150
+ c-5.171,20.48-23.665,38.728-45.527,38.728c-25.938,0-46.92-20.664-46.92-47.616c0-4.301, 0.451-11.592, 1.577-11.592L 235.633,408.32 z" />
1151
+ <glyph unicode="&#xe099;" d="M 168.755,358.267c 21.832,2.632, 37.325,22.845, 34.744,45.087c-2.58,22.252-22.415,38.031-44.247,35.41
1152
+ c-21.832-2.775-37.263-22.845-34.683-45.087C 127.273,371.415, 146.924,355.635, 168.755,358.267zM 495.841,167.168c-2.109,1.075-164.321,85.023-164.321,85.023l-41.185,54.057l-2.55,0.604C 282.163,312.105, 276.48,311.624, 266.24,305.889l0-0.123
1153
+ c0-4.301-2.273-10.639, 0.563-15.79l 31.539-40.172l 0.625-0.369l-25.088-59.187l-67.092,17.111l-2.867,24.525l 55.286,6.799
1154
+ c 2.468,0.113, 5.059,0.84, 7.404,2.15c 9.165,4.895, 12.687,16.507, 7.875,25.825c-3.758,7.178-11.264,11.008-18.657,10.168l-56.31-6.932
1155
+ l-5.048,42.568c-2.693,22.129-22.538,38.031-44.247,35.4c-21.76-2.755-37.376-22.979-34.796-45.21l 11.735-98.417
1156
+ c 1.413-12.564, 8.745-23.439, 18.483-29.778l-88.443-10.762l-27.576-69.591c 1.055,0.471, 2.222,0.594, 3.164,1.065
1157
+ c 11.387,5.386, 24.064,8.264, 36.506,8.264c 12.442,0, 24.996-2.867, 36.27-8.131c 7.158-3.338, 15.022-5.018, 22.651-5.018
1158
+ c 7.69,0, 15.432,1.679, 22.477,4.895c 11.387,5.386, 23.941,8.264, 36.506,8.264c 12.442,0, 24.965-2.867, 36.127-8.131
1159
+ c 7.27-3.338, 15.135-5.018, 22.774-5.018c 7.741,0, 15.37,1.679, 22.528,4.895c 11.387,5.386, 24.074,8.264, 36.506,8.264s 24.996-2.867, 36.147-8.131
1160
+ c 2.703-1.188, 5.642-2.028, 8.571-2.867c 45.189,12.104, 125.235,35.4, 146.821,55.132C 502.999,153.303, 504.187,162.99, 495.841,167.168zM 10.24,8.96c 10.332,0, 20.306,2.386, 29.112,6.451c 9.032,4.311, 19.251,6.81, 29.932,6.81s 20.777-2.499, 29.932-6.81
1161
+ C 108.012,11.346, 117.873,8.96, 128.205,8.96c 10.271,0, 20.132,2.386, 29.051,6.451c 9.032,4.311, 19.241,6.81, 29.932,6.81
1162
+ c 10.568,0, 20.777-2.499, 29.901-6.81c 8.806-4.055, 18.668-6.451, 29-6.451c 10.322,0, 20.183,2.386, 29.102,6.451
1163
+ c 9.052,4.311, 19.251,6.81, 29.942,6.81c 10.557,0, 20.777-2.499, 29.809-6.81C 343.849,11.346, 353.71,8.96, 364.032,8.96
1164
+ c 10.342,0, 20.193,2.386, 29,6.451c 9.165,4.311, 19.374,6.81, 29.932,6.81c 10.67,0, 20.541-2.499, 29.563-6.81C 461.332,11.346, 471.040,8.96, 481.28,8.96
1165
+ l0,44.37 c-10.24,0-19.948,2.365-28.764,6.441c-9.021,4.321-19.067,6.707-29.737,6.707c-10.557,0-20.685-2.386-29.839-6.707
1166
+ c-8.806-4.065-18.616-6.441-28.959-6.441c-10.322,0-20.152,2.365-29.071,6.441c-9.032,4.321-19.241,6.707-29.798,6.707
1167
+ c-10.691,0-20.89-2.386-29.942-6.707c-8.919-4.065-18.77-6.441-29.092-6.441c-10.332,0-20.183,2.365-28.989,6.441
1168
+ c-9.124,4.321-19.333,6.707-29.901,6.707c-10.68,0-20.9-2.386-29.932-6.707c-8.919-4.065-18.78-6.441-29.051-6.441
1169
+ c-10.332,0-20.193,2.365-28.989,6.441c-9.155,4.321-19.251,6.707-29.932,6.707s-20.9-2.386-29.932-6.707
1170
+ C 30.546,55.695, 20.572,53.33, 10.24,53.33L 10.24,8.96 z" />
1171
+ <glyph unicode="&#xe09a;" d="M 256.778,402.627c 18.156,0, 32.799,14.602, 32.799,32.707c0,17.971-14.643,32.696-32.799,32.696s-32.799-14.725-32.799-32.696
1172
+ C 223.98,417.239, 238.623,402.627, 256.778,402.627zM 462.479,27.761c-9.042,4.198-19.22,6.646-29.88,6.646c-10.537,0-20.716-2.447-29.88-6.646
1173
+ c-8.776-3.86-18.616-6.195-28.918-6.195s-20.265,2.345-29.061,6.195c-9.021,4.198-19.2,6.646-29.86,6.646s-20.859-2.447-29.88-6.646
1174
+ c-8.899-3.86-18.739-6.195-29.041-6.195c-10.312,0-20.152,2.345-29.051,6.195c-9.021,4.198-19.21,6.646-29.87,6.646
1175
+ c-10.537,0-20.726-2.447-29.87-6.646c-8.786-3.86-18.596-6.195-28.846-6.195c-10.301,0-20.265,2.345-29.051,6.195
1176
+ c-9.021,4.198-19.21,6.646-29.87,6.646c-10.66,0-20.849-2.447-29.87-6.646C 40.632,23.9, 30.792,21.555, 20.48,21.555L 20.48-21.76
1177
+ c 10.312,0, 20.152,2.222, 29.051,6.195c 9.021,4.198, 19.21,6.646, 29.87,6.646c 10.66,0, 20.849-2.447, 29.87-6.646
1178
+ C 118.047-19.538, 128.020-21.76, 138.322-21.76c 10.25,0, 20.060,2.222, 28.846,6.195c 9.144,4.198, 19.323,6.646, 29.87,6.646
1179
+ c 10.66,0, 20.849-2.447, 29.87-6.646C 235.807-19.538, 245.647-21.76, 255.959-21.76c 10.301,0, 20.142,2.222, 29.041,6.195
1180
+ c 9.021,4.198, 19.22,6.646, 29.88,6.646s 20.838-2.447, 29.86-6.646C 353.536-19.538, 363.5-21.76, 373.801-21.76s 20.142,2.222, 28.918,6.195
1181
+ c 9.165,4.198, 19.343,6.646, 29.88,6.646c 10.66,0, 20.838-2.447, 29.88-6.646C 471.357-19.538, 481.219-21.76, 491.52-21.76l0,43.315
1182
+ C 481.219,21.555, 471.357,23.9, 462.479,27.761zM 465.183,469.32c-2.355,0.932-5.919,0.358-7.803-1.403L 337.398,347.126C 335.524,347.945, 333.036,346.88, 330.803,346.88c0,0-35.144,0-45.322,0
1183
+ c-7.741,10.24-48.732,50.237-48.732,50.237c-2.099,2.109-4.803,4.045-7.496,4.741c-9.37,8.182-23.542,8.448-32.563-0.543l-70.124-70.349
1184
+ C 123.873,328.284, 122.88,324.741, 122.88,320.768L 122.88,275.2 L 20.48,275.2 l0-20.48 l 102.4,0 l0-117.996 c0-14.602, 10.936-26.399, 25.528-26.399c 14.5,0, 25.672,11.796, 25.672,26.399L 174.080,254.72 l 71.68,0 l0-153.6 L 20.48,101.12 l0-30.72
1185
+ l 245.76,0 L 266.24,254.72 l 30.72,0 l0,20.48 L 174.080,275.2 l0,8.438 l 66.304,65.853l 27.064-27.761C 270.356,318.7, 274.575,316.16, 278.917,316.16l 51.876,0 C 339.722,316.16, 348.16,317.522, 348.16,326.4
1186
+ c0,2.109, 0.676,8.366,0,10.24c 28.344,28.262, 102.4,97.761, 112.64,111.892C 460.8,420.618, 460.8,70.4, 460.8,70.4l 10.24,0 L 471.040,463.483 C 471.040,466.053, 467.517,468.265, 465.183,469.32z" />
1187
+ <glyph unicode="&#xe09b;" d="M 24.832,135.793L 24.832,135.793c-0.338,0.379-0.461,0.727-0.461,1.219c0,0.993, 0.696,1.833, 1.731,1.833l 49.787-0.133
1188
+ c 2.529,0, 4.485,2.079, 4.485,4.649c0,1.956-0.922,3.308-2.765,4.403l-45.199,22.856c-0.799,0.604-1.382,1.577-1.382,2.693
1189
+ c0,0.86, 0.348,1.72, 0.809,2.212l0,0c0,0, 118.62,111.473, 381.010,3.4l 72.1,37.417c 0.686,0.379, 1.505,0.625, 2.417,0.625
1190
+ c 2.98,0, 5.53-2.703, 5.53-5.878c0-1.219-0.348-2.202-0.819-3.041l-42.537-56.228l 42.537-56.248c 0.471-0.85, 0.819-1.946, 0.819-3.041
1191
+ c0-3.297-2.55-5.99-5.53-5.99c-0.911,0-1.731,0.246-2.417,0.604l-72.1,37.53C 412.856,124.662, 161.966,18.565, 24.832,135.793z
1192
+ M 104.868,158.761c 9.544,0, 17.080,8.090, 17.080,18.145c0,10.23-7.537,18.278-17.080,18.278c-9.421,0-16.957-8.049-16.957-18.278
1193
+ C 87.91,166.851, 95.447,158.761, 104.868,158.761zM 327.68,346.88l0-61.44 l 145.101,0 C 488.755,285.44, 501.76,299.172, 501.76,316.16c0,17.121-13.005,30.72-28.979,30.72L 327.68,346.88 zM 60.375,302.643l 13.23,5.868l 8.274-15.043l0,0l 13.343,10.271l 9.544-14.182l 12.769,11.008l 10.353-13.455l 12.073,11.735l 10.977-12.82
1194
+ l 11.622,12.339l 11.612-12.339l 11.612,12.339l 11.5-12.339l 11.622,12.339l 11.571-12.339l 11.622,12.339l 11.612-12.339l 11.5,12.339l 11.622-12.339
1195
+ l 11.622,12.339l 11.612-12.339l 13.588,12.339L 317.44,286.013L 317.44,346.88 L 10.24,346.88 l0-0.369 C 20.48,328.796, 41.175,313.754, 60.375,302.643z" />
1196
+ <glyph unicode="&#xe09c;" d="M 481.28-11.53c-9.861,0-19.302,2.243-27.709,6.042c-8.653,4.024-18.422,6.359-28.6,6.359c-10.189,0-19.855-2.345-28.611-6.359
1197
+ c-8.397-3.799-17.807-6.042-27.709-6.042c-9.861,0-19.302,2.243-27.72,6.042c-8.745,4.024-18.381,6.359-28.611,6.359
1198
+ c-10.199,0-19.948-2.345-28.611-6.359c-8.387-3.799-17.828-6.042-27.689-6.042c-9.892,0-19.313,2.243-27.832,6.042
1199
+ c-8.643,4.024-18.371,6.359-28.477,6.359c-10.199,0-19.968-2.345-28.59-6.359c-8.417-3.799-17.848-6.042-27.668-6.042
1200
+ c-9.861,0-19.282,2.243-27.822,6.042c-8.632,4.024-18.391,6.359-28.488,6.359c-10.22,0-19.968-2.345-28.611-6.359
1201
+ c-8.417-3.799-17.951-6.042-27.822-6.042L 30.71,29.952 c 9.861,0, 19.405,2.243, 27.822,6.042c 8.643,3.901, 18.401,6.257, 28.611,6.257
1202
+ c 10.086,0, 19.845-2.355, 28.488-6.257c 8.54-3.799, 17.961-6.042, 27.822-6.042c 9.82,0, 19.241,2.243, 27.668,6.042
1203
+ c 8.632,3.901, 18.391,6.257, 28.59,6.257c 10.097,0, 19.835-2.355, 28.477-6.257c 8.52-3.799, 17.94-6.042, 27.832-6.042
1204
+ c 9.861,0, 19.292,2.243, 27.689,6.042c 8.663,3.901, 18.412,6.257, 28.611,6.257c 10.23,0, 19.855-2.355, 28.611-6.257
1205
+ c 8.417-3.799, 17.859-6.042, 27.72-6.042c 9.902,0, 19.313,2.243, 27.709,6.042c 8.745,3.901, 18.422,6.257, 28.611,6.257
1206
+ c 10.179,0, 19.948-2.355, 28.6-6.257c 8.407-3.799, 17.848-6.042, 27.709-6.042L 481.28-11.53 zM 158.218,191.826c 20.982,0, 38.021,16.988, 38.021,37.908c0,20.91-17.039,37.796-38.021,37.796c-20.931,0-37.97-16.886-37.97-37.796
1207
+ C 120.248,208.824, 137.288,191.826, 158.218,191.826zM 163.604,60.805c-5.949-10.179-19.077-13.65-29.225-7.619c-10.199,5.919-13.681,19.016-7.741,29.204l 88.125,151.255
1208
+ c 3.215,5.704, 7.936,10.404, 13.537,13.527l 113.316,68.424l 76.954,130.57l0,0c 7.301,12.749, 23.552,17.101, 36.362,9.841
1209
+ c 12.657-7.383, 17.039-23.593, 9.728-36.229l0,0l-92.201-156.396c-3.144-5.714-7.854-10.404-13.568-13.527l-133.724-82.852L 163.604,60.805z" />
1210
+ <glyph unicode="&#xe09d;" d="M 512,70.4c-10.24,0-20.552,2.417-29.45,6.523c-9.144,4.342-19.466,6.902-30.147,6.902c-10.824,0-21.125-2.56-30.29-6.902
1211
+ c-9.011-4.096-18.985-6.523-29.44-6.523c-10.322,0-20.429,2.417-29.317,6.523c-9.165,4.342-19.476,6.902-30.269,6.902
1212
+ c-10.701,0-21.033-2.56-30.157-6.902C 293.888,72.817, 283.914,70.4, 273.469,70.4c-10.445,0-20.429,2.417-29.327,6.523
1213
+ c-9.144,4.342-19.476,6.902-30.249,6.902c-10.813,0-21.012-2.56-30.167-6.902C 174.715,72.817, 164.751,70.4, 154.296,70.4
1214
+ c-10.455,0-20.357,2.417-29.266,6.523c-9.257,4.342-19.476,6.902-30.28,6.902c-10.803,0-18.104-2.56-27.372-6.902C 58.481,72.817, 51.2,70.4, 40.96,70.4
1215
+ l0,44.831 c 10.24,0, 17.521,2.417, 26.419,6.523c 9.257,4.229, 18.022,6.789, 28.826,6.789c 10.803,0, 20.285-2.56, 29.553-6.789
1216
+ c 8.909-4.096, 18.452-6.523, 28.908-6.523c 10.455,0, 20.234,2.417, 29.256,6.523c 9.155,4.229, 19.261,6.789, 30.075,6.789
1217
+ c 10.772,0, 21.053-2.56, 30.198-6.789c 8.899-4.096, 18.852-6.523, 29.297-6.523c 10.445,0, 20.408,2.417, 29.44,6.523
1218
+ c 9.134,4.229, 19.446,6.789, 30.147,6.789c 10.793,0, 21.115-2.56, 30.269-6.789c 8.888-4.096, 18.995-6.523, 29.317-6.523
1219
+ c 10.455,0, 20.429,2.417, 29.44,6.523c 9.165,4.229, 19.466,6.789, 30.29,6.789c 10.68,0, 21.012-2.56, 30.147-6.789
1220
+ c 8.899-4.096, 19.21-6.523, 29.45-6.523L 511.99,70.4 zM 392.069,257.649l 86.692-6.892l-6.543,45.087L 408.576,300.421c-17.203,0.85-14.725-16.681-14.725-16.681L 392.069,257.649zM 231.311,267.919c 15.923,0, 28.744,13.046, 28.744,29.235c0,16.2-12.81,29.235-28.744,29.235c-15.903,0-28.692-13.046-28.692-29.235
1221
+ C 202.619,280.965, 215.409,267.919, 231.311,267.919zM 53.914,155.228c 3.676,1.085, 7.25,2.529, 10.568,4.106c 9.267,4.342, 19.476,6.892, 30.28,6.892c 10.803,0, 21.023-2.55, 30.28-6.892
1222
+ c 8.909-4.106, 18.811-6.523, 29.266-6.523c 10.455,0, 20.419,2.406, 29.44,6.523c 9.155,4.342, 19.354,6.892, 30.167,6.892
1223
+ c 10.772,0, 21.105-2.55, 30.249-6.892c 8.899-4.106, 18.883-6.523, 29.327-6.523c 10.445,0, 20.419,2.406, 29.45,6.523
1224
+ c 9.134,4.342, 19.456,6.892, 30.157,6.892c 10.793,0, 21.115-2.55, 30.269-6.892c 8.888-4.106, 18.995-6.523, 29.317-6.523
1225
+ c 10.455,0, 20.429,2.406, 29.44,6.523c 9.165,4.342, 19.466,6.892, 30.29,6.892c 10.68,0, 21.012-2.55, 30.147-6.892
1226
+ c 8.899-4.106, 18.883-6.523, 29.338-6.523l-9.748,79.944L 141.824,263.455l 54.385,55.828l-23.869,2.171l-54.313-55.951L 0.010,275.415
1227
+ C-0.707,234.455, 44.165,166.349, 53.914,155.228L 53.914,155.228z" />
1228
+ <glyph unicode="&#xe098;" d="M 299.121,141.967c 11.141,0, 20.070,8.878, 20.070,19.855c0,10.906-8.929,19.855-20.070,19.855s-20.193-8.95-20.193-19.855
1229
+ C 278.927,150.845, 287.98,141.967, 299.121,141.967z M 501.76-1.178c-122.88-1.761-245.647,20.746-341.115,96.389l0,0
1230
+ c-0.614,0.532-1.628,1.26-1.628,2.099c0,1.812, 1.075,3.195, 2.796,3.195l 93.921-0.123c 4.526,0, 8.212,3.676, 8.212,8.202
1231
+ c0,3.379-1.618,5.745-5.284,7.547l-85.115,40.069c-1.577,0.973-2.703,2.652-2.703,4.721c0,1.444, 2.161,2.826, 3.144,3.86l0,0
1232
+ c0,0, 102.492,90.317, 327.772,88.34L 501.76-1.178 zM 453.161,449.27c-73.667-0.819-145.828-31.805-226.755-97.26c-3,0.819-9.667,2.56-9.667,2.56
1233
+ c-12.851,0-23.327-10.25-23.327-22.897c0,0, 0.911-4.28, 1.464-6.912c-2.427-2.294-65.382-60.498-65.382-60.498l-55.613-51.681
1234
+ c-5.233-4.7-11.96-7.045-19.036-6.748C 47.821,206.182, 41.37,209.203, 36.68,214.262c-4.557,5.018-6.799,11.244-6.799,17.5
1235
+ c0,7.066, 2.877,14.121, 8.53,19.2c0,0, 4.198,2.304, 7.383,4.096c 0.676-4.69, 2.632-19.046, 2.632-19.046l 45.353,56.965l-50.033-16.814
1236
+ c-13.189-4.475-18.606-11.028-18.811-11.295c-18.34-16.312-19.773-45.036-2.826-63.508c 17.050-18.524, 46.162-19.845, 64.911-3.062l 0.481,0.604
1237
+ l 52.726,49.469c0,0, 65.055,60.713, 67.205,62.72c 3.123-0.829, 9.308-2.365, 9.308-2.365c 12.79,0, 23.194,10.281, 23.194,22.968
1238
+ c0,0-0.625,3.348-1.106,5.765c 78.295,63.488, 146.77,93.604, 215.316,94.382c 14.080,0.154, 25.334-1.69, 43.817-5.581L 501.76,425.421L 501.76,443.505
1239
+ l-2.447,0.512C 480.215,448.031, 467.681,449.444, 453.161,449.27z" />
1240
+ <glyph unicode="&#xe09e;" d="M 337.224,411.443A37.714,37.837 180 1 1 412.652,411.443A37.714,37.837 180 1 1 337.224,411.443zM 135.782,47.852L 10.24,174.141l 0.051-22.057l 116.849-117.627c 13.425-14.592, 36.424,2.284, 36.424,2.284l-11.028,11.848
1241
+ c0,0-10.865-7.148-16.486-1.065L 135.782,47.852zM 10.24,285.44L 143.36,285.44L 143.36,275.2L 10.24,275.2zM 487.117,321.341L 501.76,314.409L 355.891,19.2L 339.743,19.2 zM 245.053,345.508l-58.706-67.973c-3.451-4.301-8.745-6.984-14.653-6.984c-10.527,0-18.985,8.54-18.985,19.046
1242
+ c0,5.693, 2.447,10.772, 6.4,14.244l 63.273,73.114c 3.502,4.188, 8.745,6.871, 14.643,6.871l 91.628,0.051c 6.738,0, 12.759-2.744, 17.213-6.984
1243
+ l 58.419-58.593l 48.404,48.425c 3.4,2.898, 7.813,4.639, 12.585,4.639c 10.865,0, 19.61-8.827, 19.61-19.661c0-4.741-1.618-9.042-4.403-12.452
1244
+ l-58.368-58.982c-17.705-17.766-31.98-2.683-31.98-2.683l-35.799,36.076l-55.982-64.901l 51.292-51.436c0,0, 10.803-10.056, 4.628-30.106l-28.744-128.471
1245
+ C 323.246,27.576, 313.385,19.2, 301.64,19.2c-13.466,0-24.402,10.936-24.402,24.463c0,2.13, 0.215,4.188, 0.788,6.154l 23.613,105.441l-58.255,56.76
1246
+ l-50.125-56.023c0,0-8.131-10.056-29.635-9.277l-101.642-0.174c-11.366-0.215-21.668,7.608-24.228,19.108c-3.011,13.179, 5.12,26.143, 18.268,29.041
1247
+ c 2.058,0.461, 4.116,0.676, 6.124,0.563l 87.45-0.215l 129.28,150.303L 245.053,345.508zM 469.248,17.48C 469.217,7.578, 461.015-1.28, 451.174-1.28L 153.6-1.28 l0-10.24 l 297.533,0 c 16.558-0.092, 30.065,12.687, 30.147,29.327
1248
+ L 469.248,17.48z" />
1249
+ <glyph unicode="&#xe09f;" d="M 452.301,289.106c 21.688,0, 39.219,17.736, 39.219,39.567c0,21.811-17.531,39.444-39.219,39.444
1250
+ c-21.586,0-39.158-17.623-39.158-39.444C 413.143,306.852, 430.715,289.106, 452.301,289.106zM 441.252,18.381L 28.57,262.738L 20.48,248.791l 412.498-244.419c 18.913-11.315, 43.325-5.14, 54.6,13.998l-13.691,8.305
1251
+ C 467.159,15.237, 452.475,11.602, 441.252,18.381zM 480.932,201.82l-70.185,41.308l-8.1,105.841c-1.208,12.667-8.038,24.033-17.981,31.037l-101.079,60.334
1252
+ c-23.839,16.169-56.064,9.81-72.141-14.356c-8.847-13.189-11.284-29.87-6.943-43.407l 27.423-90.563l-82.729-26.604
1253
+ c-10.353-4.198-18.35-13.998-19.732-26.020c-2.14-17.623, 10.875-29.297, 28.406-31.375c 3.994-0.481, 6.646,0.676, 10.353,1.618l 112.927,37.693
1254
+ c 8.284,3.031, 17.336,11.325, 18.217,18.555c 0.645,5.253, 2.314,9.687, 1.219,12.841l-17.183,61.962l 67.912-40.735l 8.212-59.402
1255
+ c 0.707-10.383, 5.396-17.848, 13.322-22.282l 88.75-52.275c 9.708-5.376, 21.975-1.761, 27.29,8.161C 494.295,183.982, 490.639,196.465, 480.932,201.82
1256
+ z" />
1257
+ <glyph unicode="&#xe0a0;" d="M 211.855,353.096c 20.275,0, 36.669,16.886, 36.669,37.908C 248.525,411.802, 232.131,428.8, 211.855,428.8
1258
+ C 191.57,428.8, 175.104,411.802, 175.104,391.004C 175.104,369.981, 191.57,353.096, 211.855,353.096zM 255.037,49.92l 174.684,0 c0,0, 11.295-2.048, 33.751,16.507L 501.76,95.242l0-33.997 l-39.055-30.085c0,0-11.602-9.718-31.15-11.96
1259
+ L 240.394,19.2 L 255.037,49.92zM 11.704,19.2L 186.47,19.2L 201.001,49.92L 199.598,49.92L 24.832,49.92L 10.24,19.2 zM 230.308,305.736c0,21.627-18.104,39.199-38.339,39.199c-20.265,0-38.369-17.572-38.369-39.199l0-95.836
1260
+ C 153.6,197.765, 162.468,183.040, 170.639,183.040L 88.535,183.040 l-44.39-87.89c-0.973-1.956-1.403-6.134-1.403-8.448C 42.732,78.838, 54.077,70.4, 61.44,70.4l 296.96,0
1261
+ c0,0, 13.404-1.178, 32.993,15.258l 78.592,62.228L 440.32,203.52c0,0-6.717,13.527-31.816,17.592l-59.331,10.701l-31.826,56.791l-1.362,0.594
1262
+ C 311.327,294.861, 307.2,295.455, 296.96,290.601l0-0.123 c0-3.697-5.233-9.708-3.164-15.022L 317.44,233.359l0-0.338 l-31.099-53.76L 225.28,203.561L 225.28,224 l 52.111,0
1263
+ c 2.294,0, 4.669,1.925, 6.932,2.959c 9.001,3.564, 13.435,15.155, 9.964,24.648c-2.57,7.404-9.103,12.216-15.903,12.329l-48.179,0.328
1264
+ L 230.308,305.736" />
1265
+ <glyph unicode="&#xe0a1;" d="M 355.144,402.647A39.342,38.717 180 1 1 433.828,402.647A39.342,38.717 180 1 1 355.144,402.647zM 485.13,256.932l-110.838,100.27c-3.717,3.533-7.997,6.4-12.769,8.458l-86.354,30.249l-39.229,55.972
1266
+ c-3.011,3.983-7.639,6.83-13.087,7.526c-10.332,1.137-19.61-6.164-20.9-16.333c-0.461-4.332, 0.584-8.448, 2.785-11.868l 40.018-56.986
1267
+ c 1.853-2.386, 4.178-4.219, 6.963-5.478l 46.438-18.043l-76.36-38.369c-10.568-6.052-18.217-16.445-20.306-28.785l 0.461-68.639l-70.502-31.293
1268
+ c-8.008-3.645-13.701-11.53-14.060-20.767c-0.236-5.468, 1.485-10.527, 4.434-14.694l-38.021,14.234c-7.137,2.693-12.708,8.387-15.135,15.636
1269
+ c-4.352,12.749-18.401,19.599-31.345,15.299c-12.943-4.28-19.896-18.094-15.555-30.843c 7.199-21.043, 23.45-37.683, 44.452-45.548L 396.452-6.605
1270
+ c 21.125-7.956, 44.472-6.185, 63.836,4.823c 11.848,6.687, 15.903,21.535, 9.175,33.178c-6.851,11.663-21.944,15.647-33.761,8.98
1271
+ c-6.502-3.707-14.531-4.311-21.719-1.567l-81.879,30.648c 8.509,2.877, 14.971,10.291, 16.2,19.374l 12.892,102.666
1272
+ c 0.102,0.461, 0.102,0.922, 0.102,1.382c 0.358,7.188-2.56,13.814-7.557,18.371l-55.46,48.425l 83.569,40.53l 77.629-70.328
1273
+ c 3.502-3.318, 8.141-5.376, 13.353-5.376c 10.455,0.113, 18.811,8.458, 18.698,18.729C 491.52,248.719, 488.95,253.635, 485.13,256.932z M 310.917,184.893
1274
+ l-11.039-90.122c0-0.44-0.102-1.024-0.102-1.577c-0.205-4.68, 1.004-9.052, 3.195-12.82l-155.576,58.225
1275
+ c 1.761,0.43, 3.492,0.983, 5.069,1.761l 86.374,38.39c 6.154,3.287, 10.793,9.103, 12.308,16.087l-0.225,42.691L 310.917,184.893z" />
1276
+ <glyph unicode="&#xe0a2;" d="M 235.52-8.335l0,64.942 l-34.376-20.398L 184.32,46.797l0,22.825 l 51.2,30.577l0,42.68 l-40.96-25.098l0,45.22 l-40.96-21.443l0-61.338 l-16.927-12.595L 122.88,79.002
1277
+ l0,41.083 L 65.802,88.115L 40.96,98.345l0,25.897 l 58.214,32.461L 61.44,175.36l0,23.757 l 21.74,11.54l 53.391-31.416l 36.987,21.34l-0.84,0.666l-37.53,21.74
1278
+ l 36.536,22.815l-36.628,21.33L 81.715,235.878L 61.44,245.801l0,23.624 l 36.27,20.255L 40.96,320.942l0,25.897 l 23.767,11.407L 122.88,325.509l0,41.738 l 15.206,11.54
1279
+ l 19.896-12.083l-0.573-62.515l 37.612-21.729l 0.338,44.145L 235.52,305.111l0,42.67 l-51.2,30.597L 184.32,401.050 l 16.824,10.752L 235.52,391.404L 235.52,456.202 L 255.939,469.76L 276.48,456.202
1280
+ l0-64.799 l 39.997,20.797L 337.92,399.718l0-20.398 l-61.44-31.539l0-42.67 l 40.96,23.214l0-46.428 l 40.96,21.34l0,66.806 l 14.899,8.868L 389.12,370.053l0-42.67 l 59.822,31.539L 471.040,346.45
1281
+ l0-24.156 l-56.269-32.461L 450.56,269.824l0-23.081 l-18.739-10.199l-54.548,32.338l-37.673-24.023l 36.342-22.815l-37.468-21.729l 38.625-20.398l 55.183,30.577
1282
+ L 450.56,198.042l0-22.016 l-33.997-19.323l 54.477-32.461l0-25.498 l-25.825-10.619L 389.12,118.723l0-40.499 l-15.565-10.742L 358.4,78.223l0,61.46 l-40.96,22.661l0-42.68 l-40.96,23.224
1283
+ l0-42.68 l 51.2-30.577l0-24.156 l-16.865-9.257L 276.48,56.596l0-64.942 L 255.939-21.76L 235.52-8.335z M 220.508,223.058L 239.821,193.28l 35.983,0 l 16.517,29.778L 274.872,254.72
1284
+ l-35.983,0 L 220.508,223.058z" />
1285
+ <glyph unicode="&#xe0a3;" d="M 354.478,390.554c 21.647,0, 39.127,17.756, 39.127,39.608C 393.605,452.004, 376.125,469.76, 354.478,469.76c-21.668,0-39.281-17.756-39.281-39.608
1286
+ C 315.197,408.31, 332.81,390.554, 354.478,390.554zM 459.745,239.483c-6.83-15.882-21.412-11.11-21.412-11.11l-61.399,23.378c-6.154,2.222-10.885,7.363-12.524,13.67l-13.885,40.888
1287
+ l-21.668-60.17l 63.713-67.41C 400.548,164.577, 399.36,154.194, 399.36,154.194l0-93 l0,0c0,0, 41.605-18.575, 41.605-41.472
1288
+ c0-22.907-18.166-41.482-40.868-41.482c-3.236,0-6.257,0.348-9.38,1.167L 256,9.656l0,20.101 l 102.4,22.671l0,84.695 l-68.803,68.588l-10.783-71.864
1289
+ c-1.72-9.124-8.387-17.644-12.114-21.852l-47.309-55.255c-0.686,0.594-1.649,0.594-2.57,0.471l 2.509-0.471
1290
+ c 12.247-9.697, 18.616-25.928, 14.797-42.179c-5.181-22.313-27.433-36.096-49.449-30.843c-3.236,0.809-6.246,1.874-9.144,3.267L 51.2,47.995
1291
+ l 4.639,19.517l 114.022-1.638l 54.211,63.191L 240.845,253.389l 35.195,94.054l-48.722-28.273L 198.246,261.683c-8.806-18.227-24.668-8.643-24.668-8.643
1292
+ c-14.367,8.294-8.806,22.313-8.806,22.313l 29.768,60.754c 7.997,15.421, 14.367,17.756, 14.367,17.756l 69.571,38.441
1293
+ c 15.165,10.516, 32.778,2.335, 32.778,2.335l 40.069-15.309c 20.040-7.25, 20.859-18.575, 20.859-18.575l 24.791-80.036l 53.391-19.036
1294
+ C 450.365,261.683, 464.732,255.488, 459.745,239.483z M 397.199-2.949c 1.065-0.123, 2.089-0.236, 3.144-0.236c 12.513,0, 22.211,10.281, 22.211,22.907
1295
+ c0,12.605-12.954,22.886-23.194,22.886l0-4.792 c0-12.032-9.216-21.842-21.176-21.842c-10.527,0-18.637,7.711-20.582,17.756l-62.925-14.019L 397.199-2.949
1296
+ z M 185.969,2.775c 0.932-0.471, 1.853-0.686, 2.888-0.942c 12.278-2.908, 24.443,4.69, 27.341,16.947c 2.191,9.349-1.628,18.698-8.929,23.951
1297
+ l-9.267-10.875c-7.875-9.103-21.545-10.148-30.577-2.212c-5.325,4.68-7.404,11.315-7.055,17.869l-68.977,1.178L 185.969,2.775z" />
1298
+ <glyph unicode="&#xe0a4;" d="M 440.044,137.124c 25.774,0, 46.725,21.699, 46.725,48.517c0,26.675-20.961,48.271-46.725,48.271
1299
+ c-25.897,0-46.746-21.586-46.746-48.271C 393.288,158.822, 414.136,137.124, 440.044,137.124zM 475.904,28.918c 2.099-0.737, 3.092-1.096, 5.427-1.096c 11.96,0, 21.053,10.056, 21.053,22.436
1300
+ c0,9.339-5.908,17.459-13.783,20.736l-64.819,26.081l-47.155,86.62c0,0-3.912,9.564-17.5,14.797L 204.698,262.543l-91.761,160.973
1301
+ C 107.602,432.732, 97.812,439.040, 86.569,439.040C 69.581,439.040, 55.869,424.735, 55.869,407.142c0-5.581, 1.413-10.803, 3.871-15.411l 113.92-200.028L 101.437,221.542
1302
+ l-18.156-12.206L 371.845,90.88l-0.123,0 l 11.827-18.504c0,0, 4.68-9.964, 18.637-15.657l 35.84-14.213c-23.316-24.136-56.003-13.609-56.003-13.609
1303
+ L 29.686,175.503L 10.24,163.533l 370.422-150.641C 423.424-3.246, 460.8,35.461, 460.8,35.461l0-0.123 L 475.904,28.918z" />
1304
+ <glyph unicode="&#xe0a5;" d="M 346.685,392.131c 21.289,0, 38.39,17.316, 38.39,38.758S 367.985,469.76, 346.685,469.76c-21.197,0-38.318-17.428-38.318-38.871
1305
+ S 325.489,392.131, 346.685,392.131zM 183.849,234.721l 138.004,90.235c 18.022,11.571, 23.47,35.656, 12.022,53.883c-11.315,18.237-35.236,23.736-53.268,12.155l-101.745-66.488
1306
+ c-5.775-3.789-10.312-8.724-13.251-14.449L 59.689,98.857c-6.236-12.503-1.352-27.638, 10.885-33.946c 12.237-6.287, 27.31-1.372, 33.536,11.018
1307
+ L 183.849,234.721zM 452.649,249.508c 18.248,11.581, 23.921,35.881, 12.462,54.354l-13.384-8.253c 6.912-11.121, 3.523-25.682-7.465-32.563L 20.48-8.335L 28.867-21.76
1308
+ L 452.649,249.508z" />
1309
+ <glyph unicode="&#xe0a6;" d="M 446.802,379.617C 471.552,379.617, 491.52,399.841, 491.52,424.694C 491.52,449.597, 471.552,469.76, 446.802,469.76c-24.617,0-44.585-20.163-44.585-45.066
1310
+ C 402.207,399.841, 422.185,379.617, 446.802,379.617zM 317.44-11.52l 122.88,0 c0,0, 10.24,1.055, 10.24,10.24l0,10.24 l 10.24,0 c0,0, 4.209-27.74-19.016-30.72L 317.44-21.76 L 317.44-11.52 zM 30.72,80.64l 81.92-81.92c0,0, 6.748-2.54, 13.22,3.932l 6.472,6.523L 143.36-1.28c0,0-18.381-26.829-36.905-12.36L 20.48,73.196L 30.72,80.64zM 347.187,113.9l 0.143-81.592c0-15.34, 10.813-27.761, 26.010-27.761c 13.937,0, 26.020,16.23, 26.020,27.761L 399.36,145.848
1311
+ c0,7.905-1.782,15.084-7.045,20.142l-65.331,66.437l 87.921,88.371c 16.456,20.726, 7.967,45.578, 7.967,45.578
1312
+ c-9.042,27.566-39.956,28.518-39.956,28.518L 157.338,394.957c-11.991,0-21.77-9.82-21.77-21.985c0-12.237, 9.81-21.996, 21.811-21.996
1313
+ l 155.771-0.246l-65.556-65.925c-9.411-9.697-14.182-20.603-14.182-34.857c0-13.691, 5.396-25.928, 14.449-34.867L 347.187,113.9zM 233.902,202.639c-2.13,2.028-4.024,4.239-5.765,6.595L 97.966,77.568c-9.851-7.987-13.056-22.057-7.148-33.782
1314
+ c 6.779-13.435, 23.173-18.77, 36.475-11.858c 1.823,0.963, 3.461,2.099, 5.028,3.359L 265.933,170.373L 233.902,202.639z" />
1315
+ <glyph unicode="&#xe0a7;" d="M 501.76-5.325c-112.64-1.649-234.496,20.398-327.619,94.72l0,0c-0.481,0.594, 0.758,1.178, 0.758,2.14c0,1.649, 2.232,3.072, 4.014,3.072
1316
+ l 91.965-0.123c 4.536,0, 8.325,3.564, 8.325,8.069c0,3.308-1.464,5.571-4.905,7.352l-82.831,39.352c-1.669,0.952-2.591,2.611-2.591,4.618
1317
+ c0,1.546-2.58,2.847-1.628,3.799l0,0c0,0, 99.461,88.781, 314.501,86.764L 501.75-5.325 z M 313.743,135.281c 10.865,0, 19.681,8.765, 19.681,19.538
1318
+ c0,10.803-8.817,19.456-19.681,19.456c-10.742,0-19.558-8.663-19.558-19.456C 294.185,144.046, 303.002,135.281, 313.743,135.281zM 10.24,459.52L 102.4,459.52L 102.4,387.84L 10.24,387.84zM 194.56,459.52L 501.76,459.52L 501.76,387.84L 194.56,387.84zM 143.36,352c-10.24-2.488-13.302-9.841-13.302-18.36c0-8.54, 3.062-15.892, 13.302-18.616l0-120.32 c0-15.524-14.766-27.965-30.392-27.965
1319
+ c-15.503,0-29.184,12.452-29.184,27.965c0,3.789, 0.133,7.465, 1.567,10.793l 0.901-0.952l 9.759-9.021l-6.277,54.897l-16.138-36.997
1320
+ c-4.884-11.377-3.717-18.719-3.717-18.719c0-22.405, 19.282-40.663, 41.82-40.663c 22.661,0, 41.882,18.258, 41.882,40.663L 153.58,315.259
1321
+ c 10.24,2.734, 13.117,9.953, 13.117,18.381c0,8.53-2.877,15.882-13.117,18.596L 153.58,459.52 l-10.24,0 L 143.34,352 z" />
1322
+ <glyph unicode="&#xe0a8;" d="M 436.214,99.379c 18.831,6.164, 28.969,26.184, 22.774,44.861l-13.65-4.362c 3.727-11.192-2.478-23.265-13.64-26.962L 72.991-8.335
1323
+ L 77.609-21.76L 436.214,99.379zM 105.912,308.91c 19.681,5.704, 30.945,26.286, 25.201,45.865c-5.755,19.569-26.44,30.761-46.182,25.057
1324
+ c-19.732-5.704-31.119-26.286-25.252-45.865C 65.434,314.388, 86.067,303.196, 105.912,308.91zM 90.685,257.679c-19.63,37.13, 36.7,67.215, 57.446,31.201l 40.448-76.298l 77.015,21.719c 12.739,3.584, 30.341-10.189, 30.341-26.399
1325
+ l 0.43-108.739c 0.123-26.952-40.243-27.064-40.243,0.215c-0.123,25.293-0.788,79.196-0.788,79.196l-80.364-23.931
1326
+ c-17.592-5.038-32.143,3.676-39.014,16.548L 90.685,257.679zM 215.040,240.445L 215.040,469.76L 194.56,469.76L 194.56,236.083 zM 53.699,208.118c-11.049,21.586, 17.48,35.901, 28.529,14.316l 34.785-67.564c 7.557-13.978, 22.333-23.501, 39.363-23.501
1327
+ c 5.294,0, 10.25,1.352, 15.104,2.355l 43.827,12.739c 23.235,6.943, 32.246-23.47, 8.806-30.321l-46.1-13.292
1328
+ c-6.871-2.13-14.316-3.236-21.985-3.236c-29.655,0-55.306,16.66-67.932,41.042L 53.699,208.118z" />
1329
+ <glyph unicode="&#xe0a9;" d="M 204.001,387.062c-20.173,0-36.506-16.138-36.506-36.045c0-20.009, 16.333-36.137, 36.506-36.137c 20.070,0, 36.403,16.138, 36.403,36.137
1330
+ C 240.404,370.924, 224.082,387.062, 204.001,387.062zM 388.844,315.761c-1.311,7.741-7.721,12.165-8.038,12.493L 166.513,469.76L 146.637,440.904c-3.697-5.755-2.109-13.261, 3.553-17.029
1331
+ c 5.734-3.758, 13.24-2.202, 16.988,3.543l 11.581,16.691l 174.029-115.087l-142.602-25.764c-10.025-1.659-17.316-11.827-15.114-21.668l 30.996-120.289
1332
+ l-100.28-150.794c-6.011-10.281-2.376-23.552, 7.997-29.399c 10.465-5.97, 23.798-2.335, 29.747,7.956c0,0, 104.663,157.747, 105.103,158.751
1333
+ c0,0, 5.407-21.893, 5.407-22.006L 258.263,7.424c-1.976-11.725, 6.072-22.774, 17.869-24.76c 11.909-1.997, 23.163,5.97, 25.16,17.684
1334
+ l 16.189,121.733c 0.451,3.103-0.102,9.943-0.87,12.933L 280.883,277.504l 93.071,16.804C 383.877,296.079, 390.615,305.695, 388.844,315.761z" />
1335
+ <glyph unicode="&#xe0aa;" d="M 201.513,393.452c 18.975,0, 34.284,14.776, 34.284,32.973C 235.796,444.744, 220.488,459.52, 201.513,459.52
1336
+ c-18.842,0-34.15-14.776-34.15-33.096C 167.363,408.228, 182.671,393.452, 201.513,393.452zM 455.803,298.26l-36.25,6.697l-21.094-40.479c 3.41-0.788, 6.932-1.137, 10.588-1.137
1337
+ C 431.555,263.352, 450.396,278.129, 455.803,298.26z M 10.24,229.919C 10.24,256.748, 32.737,275.2, 60.539,275.2L 163.84,275.2 l0,76.964 c0,18.309, 16.886,33.085, 35.85,33.085
1338
+ S 235.52,370.473, 235.52,352.164l0-11.366 l 50.371-12.513c 8.817-1.925, 14.397-10.455, 12.411-18.985c-1.997-8.653-10.732-13.988-19.671-12.063L 235.52,307.016L 235.52,275.2
1339
+ l 50.575,0 L 425.318,415.98l-4.137-35.318l 68.547-43.592c 11.325-6.257, 15.442-20.142, 8.97-31.048c-5.079-8.765-15.206-12.872-24.75-11.162
1340
+ l-5.53,1.075c-6.605-25.815-30.761-44.78-59.372-44.78c-5.642,0-12.585,0.809-17.766,2.171L 337.92,150.876l0-140.575
1341
+ C 337.92-1.751, 329.861-11.52, 317.379-11.52C 304.876-11.52, 296.96-1.751, 296.96,10.312L 296.96,152.32 L 180.797,152.32 l-20.5-33.024l 42.885-98.284
1342
+ c 6.236-10.557, 2.355-23.665-8.468-29.573c-10.967-6.031-25.262-2.171-31.508,8.407L 112.64,113.797L 112.64,150.067 l-20.48-34.007l0-105.748
1343
+ C 92.16-1.751, 79.084-11.52, 66.601-11.52C 54.118-11.52, 40.96-1.751, 40.96,10.312L 40.96,132.465 l 20.48,28.334l0,95.846 L 40.96,229.12L 40.96,152.32 L 10.24,152.32 L 10.24,229.919 z" />
1344
+ <glyph unicode="&#xe0ab;" d="M 281.487,408.32c-6.257,20.48-28.18,40.714-54.077,40.714c-30.925,0-55.931-25.754-55.931-55.634
1345
+ c0-5.028, 0.604-5.56, 1.935-15.8l 22.405,0 c 1.659,0, 3.441-4.086, 3.441-4.086c 6.748-9.421, 18.033-14.623, 30.751-14.623
1346
+ c 20.695,0, 37.519,16.466, 37.519,36.485C 267.54,399.985, 268.769,408.32, 266.752,408.32L 281.487,408.32 zM 279.941,86.282c-5.857-5.775-13.988-10.168-23.132-10.168l-0.041,117.545l 84.081,23.337l 21.105-40.151
1347
+ L 279.941,86.282zM 209.336,353.71c-5.55,6.001-13.568,10.476-22.6,10.476c-9.554,0-18.135-3.901-23.624-10.65l-66.724-98.417
1348
+ c-2.714-4.383-4.27-9.421-4.27-14.889c0-10.168, 5.069-18.995, 13.148-24.259L 194.56,167.956l0-81.787 c0-11.561, 8.54-20.982, 20.48-20.982
1349
+ c 11.909,0, 20.48,9.421, 20.48,20.982l0,102.134 c0,0, 4.229,16.282-14.858,25.149l-55.142,28.273l 41.011,60.047l 21.76-32.758
1350
+ c 4.321-6.636, 10.24-9.206, 15.585-9.103l 55.429-1.26c 22.569,0, 22.61,26.788, 0.041,26.788l-44.923,0 L 209.336,353.71zM 454.666,221.184c 0.901-0.86, 1.403-1.935, 1.403-3.328c0-2.57-2.232-4.721-4.874-4.721
1351
+ c-0.727,0-1.188,0-1.782,0.225c-9.585,3.963-15.667,6.4-26.778,6.4c-7.363,0-16.486-2.437-27.013-10.691l-9.718,18.606
1352
+ c 12.155,3.553, 22.129,6.646, 32.594,6.646C 435.067,234.332, 443.771,231.014, 454.666,221.184zM 82.401,206.807l 93.952-50.094l 0.215-20.122L 69.274,193.751c-7.741,3.86-18.196,6.113-25.61,6.113
1353
+ c-11.069,0-17.203-2.447-26.726-6.41c-0.614-0.215-1.116-0.215-1.761-0.215c-2.673,0-4.936,2.15-4.936,4.71
1354
+ c0,1.393, 0.543,2.458, 1.434,3.318c 10.895,9.841, 21.975,13.148, 38.574,13.148C 58.767,214.405, 69.11,213.453, 82.401,206.807zM 91.136,22.487c 30.607,0, 55.398,23.962, 55.398,53.617c0,29.655-24.781,53.637-55.398,53.637
1355
+ c-30.597,0-55.388-23.992-55.388-53.637C 35.748,46.449, 60.539,22.487, 91.136,22.487z M 11.182,76.114c0,42.711, 35.799,77.414, 79.954,77.414
1356
+ c 44.206,0, 80.005-34.703, 80.005-77.414S 135.342-1.28, 91.136-1.28C 46.971-1.28, 11.182,33.403, 11.182,76.114zM 421.786,22.487c 30.607,0, 55.47,23.962, 55.47,53.617c0,29.655-24.863,53.637-55.47,53.637
1357
+ c-30.566,0-55.368-23.992-55.368-53.637C 366.418,46.449, 391.219,22.487, 421.786,22.487z M 341.852,76.114c0,42.711, 35.738,77.414, 79.944,77.414
1358
+ c 44.155,0, 79.974-34.703, 79.974-77.414S 465.951-1.28, 421.786-1.28C 377.59-1.28, 341.852,33.403, 341.852,76.114zM 404.163,164.536l-38.84,75.059C 360.223,248.586, 350.3,254.72, 338.934,254.72l-25.405,0 c-4.905,0-8.96-3.881-8.96-8.704
1359
+ c0-4.803, 4.055-8.632, 8.96-8.632l 25.405,0.143c 4.26,0, 9.021-2.785, 10.824-6.861l 36.598-72.131L 404.163,164.536z" />
1360
+ <glyph unicode="&#xe0ac;" d="M 246.477,385.464c 21.012,0, 37.98,16.63, 37.98,37.089C 284.457,443.003, 267.489,459.52, 246.477,459.52
1361
+ c-21.023,0-38.113-16.517-38.113-36.977C 208.364,402.084, 225.454,385.464, 246.477,385.464zM 182.19,379.331c 1.454,5.693-2.253,11.377-7.987,12.8l-31.693,7.444c-5.96,1.311-11.796-2.089-13.158-7.762
1362
+ l-26.634-107.315c-1.464-5.693, 2.13-11.377, 7.977-12.8l 31.805-7.444c 5.734-1.423, 11.694,2.079, 13.036,7.772L 182.19,379.331zM 328.458-2.335c0-0.215-0.113-0.44-0.113-0.543c0-4.7, 3.932-8.54, 8.755-8.54
1363
+ c 4.383,0, 8.090,3.277, 8.663,7.444L 409.6,333.056c0,0.215,0,0.44,0,0.655c0,4.598-3.82,8.428-8.653,8.428
1364
+ c-4.383,0-7.762-3.287-8.653-7.444L 328.458-2.335zM 116.091,19.763c-0.338-1.751-0.44-3.492-0.44-5.253c0-14.438, 11.919-26.030, 26.747-26.030
1365
+ c 12.145,0, 22.364,7.875, 25.62,18.586l 45.967,185.211l 43.827-184.105C 260.628-3.205, 271.196-11.52, 283.668-11.52c 14.838,0, 26.747,11.592, 26.747,26.030
1366
+ c0,1.976-0.225,3.83-0.573,5.693l-60.119,244.603l 5.059,21.555l 3.942-16.957c 3.594-11.049, 13.926-12.145, 13.926-12.145l 61.932-15.319
1367
+ c 1.239-0.215, 2.468-0.328, 3.717-0.328c 10.107,0, 18.319,7.875, 18.319,17.715c0,8.417-5.96,15.534-14.060,17.388l-53.596,13.128
1368
+ l-14.725,58.194c-6.973,32.492-38.881,31.724-38.881,31.724c-31.017,0.768-38.779-30.945-38.779-30.945L 116.091,19.763z" />
1369
+ <glyph unicode="&#xe0ad;" d="M 51.2,428.8L 225.28,428.8L 225.28,408.32L 204.8,408.32L 204.8,393.943L 51.2,380.283 zM 297.37,379.095c 22.098,0, 39.946,17.94, 39.946,40.151C 337.316,441.467, 319.468,459.52, 297.37,459.52c-22.088,0-40.049-18.053-40.049-40.274
1370
+ C 257.321,397.036, 275.282,379.095, 297.37,379.095zM 327.629,381.358c 11.448,11.407, 29.88,11.407, 41.359,0l 86.497-86.845C 458.793,291.185, 460.8,286.546, 460.8,281.559l0-260.659
1371
+ C 460.8,2.959, 448.041-11.52, 430.213-11.52C 412.355-11.52, 399.36,2.959, 399.36,20.9l0,215.040 l-82.258,81.132l-33.075-32.43
1372
+ c-3.656-4.393-9.503-7.25-15.78-7.25c-5.775,0-11.192,2.499-14.858,6.533l-55.665,55.951c-7.086,8.438-6.564,21.268, 1.833,28.396
1373
+ c 8.387,7.127, 20.89,5.939, 28.006-2.499l 42.168-42.65L 327.629,381.358zM 159.437,368.998c-0.829,3.922-4.26,6.769-8.274,6.769c-4.137,0-5.714-2.97-6.42-7.004L 133.12,291.185L 133.12-11.52 l 112.64,0 l0,40.96 l-72.253,0
1374
+ l-0.471,259.891L 159.437,368.998z" />
1375
+ <glyph unicode="&#xe0ae;" d="M 244.183,383.242c 20.613,0.543, 36.844,18.084, 36.311,39.014C 279.951,443.453, 262.871,459.899, 242.258,459.52
1376
+ c-20.511-0.553-36.741-18.084-36.311-39.117C 206.479,399.36, 223.672,382.7, 244.183,383.242zM 370.739,256.87l-54.569,30.484l-45.189,71.854c-7.25,9.236-18.575,16.067-31.498,15.903
1377
+ c-9.718-0.328-18.268-4.803-25.108-10.813l-68.065-69.55c-2.243-2.406-3.789-5.458-4.321-8.796l-8.714-76.605
1378
+ c-0.102-0.829-0.102-1.526-0.154-2.355c 0.266-9.503, 8.008-16.876, 17.295-16.712c 8.714,0.215, 15.38,7.762, 16.343,16.056l 7.168,65.741
1379
+ l 23.706,24.095l-21.197-184.238l-39.311-86.927c-1.178-3.062-2.406-7.332-2.304-11.356c 0.379-14.203, 11.971-25.457, 25.907-25.139
1380
+ c 9.871,0.276, 17.9,6.349, 22.221,14.971l 42.107,93.819c 0.85,2.509, 3.84,8.632, 3.942,11.407l 4.915,45.404l 43.366-147.681
1381
+ c 3.727-10.322, 13.24-18.135, 24.668-17.807c 13.885,0.379, 24.996,12.145, 24.678,26.399c-0.113,1.864-0.655,3.052-0.748,5.192l-60.252,204.78
1382
+ l 7.69,66.55l 16.988-26.88c 1.167-1.751, 2.775-3.389, 4.588-4.526l 59.607-33.382c 2.877-0.932, 5.13-1.7, 7.782-1.7
1383
+ c 9.421,0.266, 16.783,8.192, 16.579,17.756C 378.665,248.668, 375.439,254.024, 370.739,256.87z" />
1384
+ <glyph unicode="&#xe0af;" d="M 115.743,38.185c 42.895,0, 77.67,35.686, 77.67,79.606c0,44.052-34.775,79.749-77.67,79.749
1385
+ c-42.793,0-77.599-35.697-77.599-79.749C 38.144,73.871, 72.95,38.185, 115.743,38.185z M 20.48,117.791c0,54.026, 42.742,97.751, 95.263,97.751
1386
+ c 52.675,0, 95.334-43.725, 95.334-97.751c0-54.006-42.66-97.608-95.334-97.608C 63.222,20.183, 20.48,63.785, 20.48,117.791zM 396.298,37.212c 42.742,0, 77.558,35.686, 77.558,79.626c0,44.022-34.816,79.708-77.558,79.708
1387
+ c-42.916,0-77.742-35.686-77.742-79.708C 318.556,72.899, 353.382,37.212, 396.298,37.212z M 300.902,116.838c0,54.006, 42.742,97.72, 95.396,97.72
1388
+ c 52.48,0, 95.222-43.715, 95.222-97.72C 491.52,62.915, 448.778,19.2, 396.298,19.2C 343.644,19.2, 300.902,62.915, 300.902,116.838zM 301.199,355.369c 19.784,0, 35.86,16.384, 35.86,36.659C 337.060,412.314, 320.983,428.8, 301.199,428.8s-35.85-16.486-35.85-36.772
1389
+ C 265.349,371.743, 281.416,355.369, 301.199,355.369zM 302.705,264.96c-5.202,0-10.803,3.113-14.92,9.841l-23.276,37.622l-48.026-48.66l 44.493-23.9
1390
+ c 18.319-8.991, 15.514-25.395, 15.514-25.395l0-103.383 c0-11.725-9.052-21.258-20.48-21.258c-11.428,0-20.48,9.544-20.48,21.258l0,82.76 l-77.353,43.94
1391
+ c-9.206,5.315-15.503,15.401-15.503,26.89c0,7.926, 2.826,15.196, 7.69,20.613l 75.756,77.783c 9.4,10.957, 22.518,9.216, 22.518,9.216
1392
+ c 15.872,0, 24.228-14.213, 24.228-14.213l 37.693-63.242L 368.64,294.943c 20.48,0, 20.48-29.983,0-29.983L 302.705,264.96 z" />
1393
+ <glyph unicode="&#x20;" horiz-adv-x="256" />
1394
+ </font></defs></svg>
includes/map-icons/fonts/map-icons.ttf ADDED
Binary file
includes/map-icons/fonts/map-icons.woff ADDED
Binary file
includes/map-icons/js/map-icons-ie7.js ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */
2
+
3
+ window.onload = function() {
4
+ function addIcon(el, entity) {
5
+ var html = el.innerHTML;
6
+ el.innerHTML = '<span style="font-family: \'map-icons\'">' + entity + '</span>' + html;
7
+ }
8
+ var icons = {
9
+ 'map-icon-map-pin' : '&#xe000;',
10
+ 'map-icon-expand' : '&#xe001;',
11
+ 'map-icon-fullscreen' : '&#xe002;',
12
+ 'map-icon-square-pin' : '&#xe003;',
13
+ 'map-icon-route-pin' : '&#xe004;',
14
+ 'map-icon-sheild' : '&#xe005;',
15
+ 'map-icon-liquor_store' : '&#xe006;',
16
+ 'map-icon-bicycle_store' : '&#xe007;',
17
+ 'map-icon-hardware_store' : '&#xe008;',
18
+ 'map-icon-insurance_agency' : '&#xe009;',
19
+ 'map-icon-lawyer' : '&#xe00a;',
20
+ 'map-icon-real_estate_agency' : '&#xe00b;',
21
+ 'map-icon-art_gallery' : '&#xe00c;',
22
+ 'map-icon-campground' : '&#xe00d;',
23
+ 'map-icon-bakery' : '&#xe00e;',
24
+ 'map-icon-bar' : '&#xe00f;',
25
+ 'map-icon-amusement_park' : '&#xe010;',
26
+ 'map-icon-aquarium' : '&#xe011;',
27
+ 'map-icon-airport' : '&#xe012;',
28
+ 'map-icon-bank' : '&#xe013;',
29
+ 'map-icon-car_rental' : '&#xe016;',
30
+ 'map-icon-car_dealer' : '&#xe017;',
31
+ 'map-icon-hospital' : '&#xe018;',
32
+ 'map-icon-hair_care' : '&#xe019;',
33
+ 'map-icon-gym' : '&#xe01a;',
34
+ 'map-icon-grocery_or_supermarket' : '&#xe01b;',
35
+ 'map-icon-general_contractor' : '&#xe01c;',
36
+ 'map-icon-pharmacy' : '&#xe01d;',
37
+ 'map-icon-point_of_interest' : '&#xe01e;',
38
+ 'map-icon-political' : '&#xe01f;',
39
+ 'map-icon-post_box' : '&#xe020;',
40
+ 'map-icon-health' : '&#xe021;',
41
+ 'map-icon-post_office' : '&#xe022;',
42
+ 'map-icon-real_estate_agency-copy' : '&#xe023;',
43
+ 'map-icon-hindu_temple' : '&#xe024;',
44
+ 'map-icon-restaurant' : '&#xe025;',
45
+ 'map-icon-female' : '&#xe026;',
46
+ 'map-icon-male' : '&#xe027;',
47
+ 'map-icon-zoo' : '&#xe028;',
48
+ 'map-icon-veterinary_care' : '&#xe029;',
49
+ 'map-icon-car_repair' : '&#xe02a;',
50
+ 'map-icon-university' : '&#xe02b;',
51
+ 'map-icon-travel_agency' : '&#xe02c;',
52
+ 'map-icon-transit_station' : '&#xe02d;',
53
+ 'map-icon-beauty_salon' : '&#xe02e;',
54
+ 'map-icon-electronics_store' : '&#xe02f;',
55
+ 'map-icon-search' : '&#xe030;',
56
+ 'map-icon-zoom-out-alt' : '&#xe031;',
57
+ 'map-icon-movie_rental' : '&#xe032;',
58
+ 'map-icon-atm' : '&#xe033;',
59
+ 'map-icon-jewelry_store' : '&#xe034;',
60
+ 'map-icon-car_wash' : '&#xe035;',
61
+ 'map-icon-unisex' : '&#xe036;',
62
+ 'map-icon-rv_park' : '&#xe037;',
63
+ 'map-icon-school' : '&#xe038;',
64
+ 'map-icon-clothing_store' : '&#xe039;',
65
+ 'map-icon-laundry' : '&#xe03a;',
66
+ 'map-icon-casino' : '&#xe03b;',
67
+ 'map-icon-place_of_worship' : '&#xe03c;',
68
+ 'map-icon-furniture_store' : '&#xe03d;',
69
+ 'map-icon-zoom-in-alt' : '&#xe03e;',
70
+ 'map-icon-zoom-in' : '&#xe03f;',
71
+ 'map-icon-department_store' : '&#xe040;',
72
+ 'map-icon-fire_station' : '&#xe041;',
73
+ 'map-icon-church' : '&#xe042;',
74
+ 'map-icon-library' : '&#xe043;',
75
+ 'map-icon-shopping_mall' : '&#xe044;',
76
+ 'map-icon-local_government' : '&#xe045;',
77
+ 'map-icon-spa' : '&#xe046;',
78
+ 'map-icon-convenience_store' : '&#xe047;',
79
+ 'map-icon-police' : '&#xe048;',
80
+ 'map-icon-route' : '&#xe049;',
81
+ 'map-icon-zoom-out' : '&#xe04a;',
82
+ 'map-icon-location-arrow' : '&#xe04b;',
83
+ 'map-icon-postal_code' : '&#xe04c;',
84
+ 'map-icon-locksmith' : '&#xe04d;',
85
+ 'map-icon-doctor' : '&#xe04e;',
86
+ 'map-icon-mosque' : '&#xe04f;',
87
+ 'map-icon-stadium' : '&#xe050;',
88
+ 'map-icon-storage' : '&#xe051;',
89
+ 'map-icon-movie_theater' : '&#xe052;',
90
+ 'map-icon-electrician' : '&#xe053;',
91
+ 'map-icon-moving_company' : '&#xe054;',
92
+ 'map-icon-postal_code_prefix' : '&#xe055;',
93
+ 'map-icon-crosshairs' : '&#xe056;',
94
+ 'map-icon-compass' : '&#xe057;',
95
+ 'map-icon-dentist' : '&#xe058;',
96
+ 'map-icon-plumber' : '&#xe059;',
97
+ 'map-icon-museum' : '&#xe05b;',
98
+ 'map-icon-finance' : '&#xe05a;',
99
+ 'map-icon-parking' : '&#xe05c;',
100
+ 'map-icon-courthouse' : '&#xe05d;',
101
+ 'map-icon-accounting' : '&#xe05e;',
102
+ 'map-icon-store' : '&#xe05f;',
103
+ 'map-icon-subway_station' : '&#xe060;',
104
+ 'map-icon-natural_feature' : '&#xe061;',
105
+ 'map-icon-florist' : '&#xe062;',
106
+ 'map-icon-food' : '&#xe063;',
107
+ 'map-icon-night_club' : '&#xe064;',
108
+ 'map-icon-synagogue' : '&#xe065;',
109
+ 'map-icon-taxi_stand' : '&#xe066;',
110
+ 'map-icon-painter' : '&#xe067;',
111
+ 'map-icon-train_station' : '&#xe068;',
112
+ 'map-icon-pet_store' : '&#xe069;',
113
+ 'map-icon-gas_station' : '&#xe06a;',
114
+ 'map-icon-funeral_home' : '&#xe06b;',
115
+ 'map-icon-cemetery' : '&#xe06c;',
116
+ 'map-icon-bowling_alley' : '&#xe06d;',
117
+ 'map-icon-roofing_contractor' : '&#xe06e;',
118
+ 'map-icon-physiotherapist' : '&#xe06f;',
119
+ 'map-icon-embassy' : '&#xe070;',
120
+ 'map-icon-city_hall' : '&#xe071;',
121
+ 'map-icon-bus_station' : '&#xe072;',
122
+ 'map-icon-park' : '&#xe073;',
123
+ 'map-icon-lodging' : '&#xe074;',
124
+ 'map-icon-toilet' : '&#xe075;',
125
+ 'map-icon-circle' : '&#xe076;',
126
+ 'map-icon-square-rounded' : '&#xe077;',
127
+ 'map-icon-square' : '&#xe078;',
128
+ 'map-icon-book_store' : '&#xe014;',
129
+ 'map-icon-cafe' : '&#xe015;',
130
+ 'map-icon-wheelchair' : '&#xe079;',
131
+ 'map-icon-volume-control-telephone' : '&#xe07a;',
132
+ 'map-icon-sign-language' : '&#xe07b;',
133
+ 'map-icon-low-vision-access' : '&#xe07c;',
134
+ 'map-icon-open-captioning' : '&#xe07d;',
135
+ 'map-icon-closed-captioning' : '&#xe07e;',
136
+ 'map-icon-braille' : '&#xe07f;',
137
+ 'map-icon-audio-description' : '&#xe080;',
138
+ 'map-icon-assistive-listening-system' : '&#xe081;',
139
+ 'map-icon-abseiling' : '&#xe082;',
140
+ 'map-icon-tennis' : '&#xe083;',
141
+ 'map-icon-skateboarding' : '&#xe084;',
142
+ 'map-icon-playground' : '&#xe085;',
143
+ 'map-icon-inline-skating' : '&#xe086;',
144
+ 'map-icon-hang-gliding' : '&#xe087;',
145
+ 'map-icon-climbing' : '&#xe088;',
146
+ 'map-icon-baseball' : '&#xe089;',
147
+ 'map-icon-archery' : '&#xe08a;',
148
+ 'map-icon-wind-surfing' : '&#xe08b;',
149
+ 'map-icon-scuba-diving' : '&#xe08c;',
150
+ 'map-icon-sailing' : '&#xe08d;',
151
+ 'map-icon-marina' : '&#xe08e;',
152
+ 'map-icon-canoe' : '&#xe08f;',
153
+ 'map-icon-boat-tour' : '&#xe090;',
154
+ 'map-icon-boat-ramp' : '&#xe091;',
155
+ 'map-icon-swimming' : '&#xe092;',
156
+ 'map-icon-whale-watching' : '&#xe093;',
157
+ 'map-icon-waterskiing' : '&#xe094;',
158
+ 'map-icon-surfing' : '&#xe095;',
159
+ 'map-icon-rafting' : '&#xe096;',
160
+ 'map-icon-kayaking' : '&#xe097;',
161
+ 'map-icon-jet-skiing' : '&#xe099;',
162
+ 'map-icon-fishing-pier' : '&#xe09a;',
163
+ 'map-icon-fish-cleaning' : '&#xe09b;',
164
+ 'map-icon-diving' : '&#xe09c;',
165
+ 'map-icon-boating' : '&#xe09d;',
166
+ 'map-icon-fishing' : '&#xe098;',
167
+ 'map-icon-cross-country-skiing' : '&#xe09e;',
168
+ 'map-icon-skiing' : '&#xe09f;',
169
+ 'map-icon-snowmobile' : '&#xe0a0;',
170
+ 'map-icon-snowboarding' : '&#xe0a1;',
171
+ 'map-icon-snow' : '&#xe0a2;',
172
+ 'map-icon-snow-shoeing' : '&#xe0a3;',
173
+ 'map-icon-sledding' : '&#xe0a4;',
174
+ 'map-icon-ski-jumping' : '&#xe0a5;',
175
+ 'map-icon-ice-skating' : '&#xe0a6;',
176
+ 'map-icon-ice-fishing' : '&#xe0a7;',
177
+ 'map-icon-chairlift' : '&#xe0a8;',
178
+ 'map-icon-golf' : '&#xe0a9;',
179
+ 'map-icon-horse-riding' : '&#xe0aa;',
180
+ 'map-icon-motobike-trail' : '&#xe0ab;',
181
+ 'map-icon-trail-walking' : '&#xe0ac;',
182
+ 'map-icon-viewing' : '&#xe0ad;',
183
+ 'map-icon-walking' : '&#xe0ae;',
184
+ 'map-icon-bicycling' : '&#xe0af;'
185
+ },
186
+ els = document.getElementsByTagName('*'),
187
+ i, attr, c, el;
188
+ for (i = 0; ; i += 1) {
189
+ el = els[i];
190
+ if(!el) {
191
+ break;
192
+ }
193
+ attr = el.getAttribute('data-icon');
194
+ if (attr) {
195
+ addIcon(el, attr);
196
+ }
197
+ c = el.className;
198
+ c = c.match(/map-icon-[^\s'"]+/);
199
+ if (c && icons[c[0]]) {
200
+ addIcon(el, icons[c[0]]);
201
+ }
202
+ }
203
+ };
includes/map-icons/js/map-icons.js ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Map Icons created by Scott de Jonge
3
+ *
4
+ * @version 2.1
5
+ * @url http://map-icons.com
6
+ *
7
+ */
8
+
9
+ // Define Marker Shapes
10
+ var MAP_PIN = 'M0-165c-27.618 0-50 21.966-50 49.054C-50-88.849 0 0 0 0s50-88.849 50-115.946C50-143.034 27.605-165 0-165z';
11
+ var SQUARE_PIN = 'M 50 -119.876 -50 -119.876 -50 -19.876 -13.232 -19.876 0.199 0 13.63 -19.876 50 -19.876 Z';
12
+ var SHEILD = 'M42.8-72.919c0.663-7.855 3.029-15.066 7.2-21.675L34.002-110c-5.054 4.189-10.81 6.509-17.332 6.919 c-5.976 0.52-11.642-0.574-16.971-3.287c-5.478 2.626-11.121 3.723-17.002 3.287c-6.086-0.523-11.577-2.602-16.495-6.281 l-16.041 15.398c3.945 6.704 6.143 13.72 6.574 21.045c0.205 3.373-0.795 8.016-3.038 14.018c-1.175 3.327-2.061 6.213-2.667 8.627 c-0.562 2.394-0.911 4.34-1.027 5.801c-0.082 6.396 1.78 12.168 5.602 17.302c2.986 3.745 7.911 7.886 14.748 12.41 c7.482 3.665 13.272 6.045 17.326 7.06c1.163 0.521 2.301 1.025 3.363 1.506C-7.9-5.708-6.766-5.232-5.586-4.713 C-3.034-3.242-1.243-1.646-0.301 0C0.858-1.782 2.69-3.338 5.122-4.713c1.717-0.723 3.173-1.346 4.341-1.896 c1.167-0.494 2.037-0.865 2.54-1.09c0.866-0.414 2.002-0.888 3.376-1.41c1.386-0.527 3.101-1.168 5.144-1.882 c3.951-1.348 6.83-2.62 8.655-3.77c6.634-4.524 11.48-8.595 14.566-12.235c3.958-5.152 5.879-10.953 5.79-17.475 c-0.232-2.922-1.52-7.594-3.85-13.959C43.463-64.631 42.479-69.445 42.8-72.919z';
13
+ var ROUTE = 'M49.986-58.919c-0.51-27.631-16.538-38.612-17.195-39.049l-2.479-1.692l-2.5 1.689c-4.147 2.817-8.449 4.247-12.783 4.247 c-7.178 0-12.051-3.864-12.256-4.032L-0.023-100l-2.776 2.248c-0.203 0.165-5.074 4.028-12.253 4.028 c-4.331 0-8.63-1.429-12.788-4.253l-2.486-1.678l-2.504 1.692c-1.702 1.17-16.624 12.192-17.165 38.907 C-50.211-56.731-43.792-12.754-0.003 0C47.609-13.912 50.23-56.018 49.986-58.919z';
14
+ var ROUNDED = 'M50-80c0-11-9-20-20-20h-60c-11 0-20 9-20 20v60c0 11 9 20 20 20h60c11 0 20-9 20-20V-80z';
15
+
16
+ // Function to do the inheritance properly
17
+ // Inspired by: http://stackoverflow.com/questions/9812783/cannot-inherit-google-maps-map-v3-in-my-custom-class-javascript
18
+ var inherits = function(childCtor, parentCtor) {
19
+ /** @constructor */
20
+ function tempCtor() {};
21
+ tempCtor.prototype = parentCtor.prototype;
22
+ childCtor.superClass_ = parentCtor.prototype;
23
+ childCtor.prototype = new tempCtor();
24
+ childCtor.prototype.constructor = childCtor;
25
+ };
26
+
27
+ function Marker(options){
28
+ google.maps.Marker.apply(this, arguments);
29
+ if (options.label) {
30
+ this.MarkerLabel = new MarkerLabel({
31
+ map: this.map,
32
+ marker: this,
33
+ text: options.label
34
+ });
35
+ this.MarkerLabel.bindTo('position', this, 'position');
36
+ }
37
+ }
38
+
39
+ // Apply the inheritance
40
+ inherits(Marker, google.maps.Marker);
41
+
42
+ // Custom Marker SetMap
43
+ Marker.prototype.setMap = function() {
44
+ google.maps.Marker.prototype.setMap.apply(this, arguments);
45
+ (this.MarkerLabel) && this.MarkerLabel.setMap.apply(this.MarkerLabel, arguments);
46
+ };
47
+
48
+ // Marker Label Overlay
49
+ var MarkerLabel = function(options) {
50
+ var self = this;
51
+ this.setValues(options);
52
+
53
+ // Create the label container
54
+ this.div = document.createElement('div');
55
+ this.div.className = 'marker-label';
56
+ var span = document.createElement('span');
57
+ span.className = "marker-icon";
58
+ this.div.appendChild(span);
59
+
60
+ // Trigger the marker click handler if clicking on the label
61
+ google.maps.event.addDomListener(this.div, 'click', function(e){
62
+ (e.stopPropagation) && e.stopPropagation();
63
+ google.maps.event.trigger(self.marker, 'click');
64
+ });
65
+ };
66
+
67
+ // Create MarkerLabel Object
68
+ MarkerLabel.prototype = new google.maps.OverlayView;
69
+
70
+ // Marker Label onAdd
71
+ MarkerLabel.prototype.onAdd = function() {
72
+ var pane = this.getPanes().overlayImage.appendChild(this.div);
73
+ var self = this;
74
+ this.listeners = [
75
+ google.maps.event.addListener(this, 'position_changed', function() { self.draw(); }),
76
+ google.maps.event.addListener(this, 'text_changed', function() { self.draw(); }),
77
+ google.maps.event.addListener(this, 'zindex_changed', function() { self.draw(); })
78
+ ];
79
+ };
80
+
81
+ // Marker Label onRemove
82
+ MarkerLabel.prototype.onRemove = function() {
83
+ this.div.parentNode.removeChild(this.div);
84
+ for (var i = 0, I = this.listeners.length; i < I; ++i) {
85
+ google.maps.event.removeListener(this.listeners[i]);
86
+ }
87
+ };
88
+
89
+ // Implement draw
90
+ MarkerLabel.prototype.draw = function() {
91
+ var projection = this.getProjection();
92
+ var position = projection.fromLatLngToDivPixel(this.get('position'));
93
+ var div = this.div;
94
+ div.style.left = position.x + 'px';
95
+ div.style.top = position.y + 'px';
96
+ div.style.display = 'block';
97
+ div.style.zIndex = this.get('zIndex'); //ALLOW LABEL TO OVERLAY MARKER
98
+ this.div.innerHTML = this.get('text').toString();
99
+ };
includes/map-icons/js/map-icons.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /**
2
+ * Map Icons created by Scott de Jonge
3
+ *
4
+ * @version 2.1
5
+ * @url http://map-icons.com
6
+ *
7
+ */var Marker=function(e){google.maps.Marker.apply(this,arguments);if(e.label){this.MarkerLabel=new MarkerLabel({map:this.map,marker:this,text:e.label});this.MarkerLabel.bindTo("position",this,"position")}},MAP_PIN="M0-165c-27.618 0-50 21.966-50 49.054C-50-88.849 0 0 0 0s50-88.849 50-115.946C50-143.034 27.605-165 0-165z",SQUARE_PIN="M 50 -119.876 -50 -119.876 -50 -19.876 -13.232 -19.876 0.199 0 13.63 -19.876 50 -19.876 Z",SHEILD="M42.8-72.919c0.663-7.855 3.029-15.066 7.2-21.675L34.002-110c-5.054 4.189-10.81 6.509-17.332 6.919 c-5.976 0.52-11.642-0.574-16.971-3.287c-5.478 2.626-11.121 3.723-17.002 3.287c-6.086-0.523-11.577-2.602-16.495-6.281 l-16.041 15.398c3.945 6.704 6.143 13.72 6.574 21.045c0.205 3.373-0.795 8.016-3.038 14.018c-1.175 3.327-2.061 6.213-2.667 8.627 c-0.562 2.394-0.911 4.34-1.027 5.801c-0.082 6.396 1.78 12.168 5.602 17.302c2.986 3.745 7.911 7.886 14.748 12.41 c7.482 3.665 13.272 6.045 17.326 7.06c1.163 0.521 2.301 1.025 3.363 1.506C-7.9-5.708-6.766-5.232-5.586-4.713 C-3.034-3.242-1.243-1.646-0.301 0C0.858-1.782 2.69-3.338 5.122-4.713c1.717-0.723 3.173-1.346 4.341-1.896 c1.167-0.494 2.037-0.865 2.54-1.09c0.866-0.414 2.002-0.888 3.376-1.41c1.386-0.527 3.101-1.168 5.144-1.882 c3.951-1.348 6.83-2.62 8.655-3.77c6.634-4.524 11.48-8.595 14.566-12.235c3.958-5.152 5.879-10.953 5.79-17.475 c-0.232-2.922-1.52-7.594-3.85-13.959C43.463-64.631 42.479-69.445 42.8-72.919z",ROUTE="M49.986-58.919c-0.51-27.631-16.538-38.612-17.195-39.049l-2.479-1.692l-2.5 1.689c-4.147 2.817-8.449 4.247-12.783 4.247 c-7.178 0-12.051-3.864-12.256-4.032L-0.023-100l-2.776 2.248c-0.203 0.165-5.074 4.028-12.253 4.028 c-4.331 0-8.63-1.429-12.788-4.253l-2.486-1.678l-2.504 1.692c-1.702 1.17-16.624 12.192-17.165 38.907 C-50.211-56.731-43.792-12.754-0.003 0C47.609-13.912 50.23-56.018 49.986-58.919z",ROUNDED="M50-80c0-11-9-20-20-20h-60c-11 0-20 9-20 20v60c0 11 9 20 20 20h60c11 0 20-9 20-20V-80z";Marker.prototype=new google.maps.Marker;Marker.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments);this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var MarkerLabel=function(e){var t=this;this.setValues(e);this.div=document.createElement("div");this.div.className="marker-label";var n=document.createElement("span");n.className="marker-icon";this.div.appendChild(n);google.maps.event.addDomListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation();google.maps.event.trigger(t.marker,"click")})};MarkerLabel.prototype=new google.maps.OverlayView;MarkerLabel.prototype.onAdd=function(){var e=this.getPanes().overlayImage.appendChild(this.div),t=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){t.draw()}),google.maps.event.addListener(this,"text_changed",function(){t.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){t.draw()})]};MarkerLabel.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e<t;++e)google.maps.event.removeListener(this.listeners[e])};MarkerLabel.prototype.draw=function(){var e=this.getProjection(),t=e.fromLatLngToDivPixel(this.get("position")),n=this.div;n.style.left=t.x+"px";n.style.top=t.y+"px";n.style.display="block";n.style.zIndex=this.get("zIndex");this.div.innerHTML=this.get("text").toString()};
includes/metabox/example-functions.php ADDED
@@ -0,0 +1,413 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Include and setup custom metaboxes and fields.
4
+ *
5
+ * @category YourThemeOrPlugin
6
+ * @package Metaboxes
7
+ * @license http://www.opensource.org/licenses/gpl-license.php GPL v2.0 (or later)
8
+ * @link https://github.com/webdevstudios/Custom-Metaboxes-and-Fields-for-WordPress
9
+ */
10
+
11
+ add_filter( 'cmb_meta_boxes', 'cmb_sample_metaboxes' );
12
+ /**
13
+ * Define the metabox and field configurations.
14
+ *
15
+ * @param array $meta_boxes
16
+ * @return array
17
+ */
18
+ function cmb_sample_metaboxes( array $meta_boxes ) {
19
+
20
+ // Start with an underscore to hide fields from custom fields list
21
+ $prefix = '_cmb_';
22
+
23
+ /**
24
+ * Sample metabox to demonstrate each field type included
25
+ */
26
+ $meta_boxes['test_metabox'] = array(
27
+ 'id' => 'test_metabox',
28
+ 'title' => __( 'Test Metabox', 'cmb' ),
29
+ 'pages' => array( 'page', ), // Post type
30
+ 'context' => 'normal',
31
+ 'priority' => 'high',
32
+ 'show_names' => true, // Show field names on the left
33
+ // 'cmb_styles' => true, // Enqueue the CMB stylesheet on the frontend
34
+ 'fields' => array(
35
+ array(
36
+ 'name' => __( 'Test Text', 'cmb' ),
37
+ 'desc' => __( 'field description (optional)', 'cmb' ),
38
+ 'id' => $prefix . 'test_text',
39
+ 'type' => 'text',
40
+ // 'sanitization_cb' => 'my_custom_sanitization', // custom sanitization callback parameter
41
+ // 'escape_cb' => 'my_custom_escaping', // custom escaping callback parameter
42
+ // 'on_front' => false, // Optionally designate a field to wp-admin only
43
+ // 'repeatable' => true,
44
+ ),
45
+ array(
46
+ 'name' => __( 'Test Text Small', 'cmb' ),
47
+ 'desc' => __( 'field description (optional)', 'cmb' ),
48
+ 'id' => $prefix . 'test_textsmall',
49
+ 'type' => 'text_small',
50
+ // 'repeatable' => true,
51
+ ),
52
+ array(
53
+ 'name' => __( 'Test Text Medium', 'cmb' ),
54
+ 'desc' => __( 'field description (optional)', 'cmb' ),
55
+ 'id' => $prefix . 'test_textmedium',
56
+ 'type' => 'text_medium',
57
+ // 'repeatable' => true,
58
+ ),
59
+ array(
60
+ 'name' => __( 'Website URL', 'cmb' ),
61
+ 'desc' => __( 'field description (optional)', 'cmb' ),
62
+ 'id' => $prefix . 'url',
63
+ 'type' => 'text_url',
64
+ // 'protocols' => array('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet'), // Array of allowed protocols
65
+ // 'repeatable' => true,
66
+ ),
67
+ array(
68
+ 'name' => __( 'Test Text Email', 'cmb' ),
69
+ 'desc' => __( 'field description (optional)', 'cmb' ),
70
+ 'id' => $prefix . 'email',
71
+ 'type' => 'text_email',
72
+ // 'repeatable' => true,
73
+ ),
74
+ array(
75
+ 'name' => __( 'Test Time', 'cmb' ),
76
+ 'desc' => __( 'field description (optional)', 'cmb' ),
77
+ 'id' => $prefix . 'test_time',
78
+ 'type' => 'text_time',
79
+ ),
80
+ array(
81
+ 'name' => __( 'Time zone', 'cmb' ),
82
+ 'desc' => __( 'Time zone', 'cmb' ),
83
+ 'id' => $prefix . 'timezone',
84
+ 'type' => 'select_timezone',
85
+ ),
86
+ array(
87
+ 'name' => __( 'Test Date Picker', 'cmb' ),
88
+ 'desc' => __( 'field description (optional)', 'cmb' ),
89
+ 'id' => $prefix . 'test_textdate',
90
+ 'type' => 'text_date',
91
+ ),
92
+ array(
93
+ 'name' => __( 'Test Date Picker (UNIX timestamp)', 'cmb' ),
94
+ 'desc' => __( 'field description (optional)', 'cmb' ),
95
+ 'id' => $prefix . 'test_textdate_timestamp',
96
+ 'type' => 'text_date_timestamp',
97
+ // 'timezone_meta_key' => $prefix . 'timezone', // Optionally make this field honor the timezone selected in the select_timezone specified above
98
+ ),
99
+ array(
100
+ 'name' => __( 'Test Date/Time Picker Combo (UNIX timestamp)', 'cmb' ),
101
+ 'desc' => __( 'field description (optional)', 'cmb' ),
102
+ 'id' => $prefix . 'test_datetime_timestamp',
103
+ 'type' => 'text_datetime_timestamp',
104
+ ),
105
+ // This text_datetime_timestamp_timezone field type
106
+ // is only compatible with PHP versions 5.3 or above.
107
+ // Feel free to uncomment and use if your server meets the requirement
108
+ // array(
109
+ // 'name' => __( 'Test Date/Time Picker/Time zone Combo (serialized DateTime object)', 'cmb' ),
110
+ // 'desc' => __( 'field description (optional)', 'cmb' ),
111
+ // 'id' => $prefix . 'test_datetime_timestamp_timezone',
112
+ // 'type' => 'text_datetime_timestamp_timezone',
113
+ // ),
114
+ array(
115
+ 'name' => __( 'Test Money', 'cmb' ),
116
+ 'desc' => __( 'field description (optional)', 'cmb' ),
117
+ 'id' => $prefix . 'test_textmoney',
118
+ 'type' => 'text_money',
119
+ // 'before' => '£', // override '$' symbol if needed
120
+ // 'repeatable' => true,
121
+ ),
122
+ array(
123
+ 'name' => __( 'Test Color Picker', 'cmb' ),
124
+ 'desc' => __( 'field description (optional)', 'cmb' ),
125
+ 'id' => $prefix . 'test_colorpicker',
126
+ 'type' => 'colorpicker',
127
+ 'default' => '#ffffff'
128
+ ),
129
+ array(
130
+ 'name' => __( 'Test Text Area', 'cmb' ),
131
+ 'desc' => __( 'field description (optional)', 'cmb' ),
132
+ 'id' => $prefix . 'test_textarea',
133
+ 'type' => 'textarea',
134
+ ),
135
+ array(
136
+ 'name' => __( 'Test Text Area Small', 'cmb' ),
137
+ 'desc' => __( 'field description (optional)', 'cmb' ),
138
+ 'id' => $prefix . 'test_textareasmall',
139
+ 'type' => 'textarea_small',
140
+ ),
141
+ array(
142
+ 'name' => __( 'Test Text Area for Code', 'cmb' ),
143
+ 'desc' => __( 'field description (optional)', 'cmb' ),
144
+ 'id' => $prefix . 'test_textarea_code',
145
+ 'type' => 'textarea_code',
146
+ ),
147
+ array(
148
+ 'name' => __( 'Test Title Weeeee', 'cmb' ),
149
+ 'desc' => __( 'This is a title description', 'cmb' ),
150
+ 'id' => $prefix . 'test_title',
151
+ 'type' => 'title',
152
+ ),
153
+ array(
154
+ 'name' => __( 'Test Select', 'cmb' ),
155
+ 'desc' => __( 'field description (optional)', 'cmb' ),
156
+ 'id' => $prefix . 'test_select',
157
+ 'type' => 'select',
158
+ 'options' => array(
159
+ 'standard' => __( 'Option One', 'cmb' ),
160
+ 'custom' => __( 'Option Two', 'cmb' ),
161
+ 'none' => __( 'Option Three', 'cmb' ),
162
+ ),
163
+ ),
164
+ array(
165
+ 'name' => __( 'Test Radio inline', 'cmb' ),
166
+ 'desc' => __( 'field description (optional)', 'cmb' ),
167
+ 'id' => $prefix . 'test_radio_inline',
168
+ 'type' => 'radio_inline',
169
+ 'options' => array(
170
+ 'standard' => __( 'Option One', 'cmb' ),
171
+ 'custom' => __( 'Option Two', 'cmb' ),
172
+ 'none' => __( 'Option Three', 'cmb' ),
173
+ ),
174
+ ),
175
+ array(
176
+ 'name' => __( 'Test Radio', 'cmb' ),
177
+ 'desc' => __( 'field description (optional)', 'cmb' ),
178
+ 'id' => $prefix . 'test_radio',
179
+ 'type' => 'radio',
180
+ 'options' => array(
181
+ 'option1' => __( 'Option One', 'cmb' ),
182
+ 'option2' => __( 'Option Two', 'cmb' ),
183
+ 'option3' => __( 'Option Three', 'cmb' ),
184
+ ),
185
+ ),
186
+ array(
187
+ 'name' => __( 'Test Taxonomy Radio', 'cmb' ),
188
+ 'desc' => __( 'field description (optional)', 'cmb' ),
189
+ 'id' => $prefix . 'text_taxonomy_radio',
190
+ 'type' => 'taxonomy_radio',
191
+ 'taxonomy' => 'category', // Taxonomy Slug
192
+ // 'inline' => true, // Toggles display to inline
193
+ ),
194
+ array(
195
+ 'name' => __( 'Test Taxonomy Select', 'cmb' ),
196
+ 'desc' => __( 'field description (optional)', 'cmb' ),
197
+ 'id' => $prefix . 'text_taxonomy_select',
198
+ 'type' => 'taxonomy_select',
199
+ 'taxonomy' => 'category', // Taxonomy Slug
200
+ ),
201
+ array(
202
+ 'name' => __( 'Test Taxonomy Multi Checkbox', 'cmb' ),
203
+ 'desc' => __( 'field description (optional)', 'cmb' ),
204
+ 'id' => $prefix . 'test_multitaxonomy',
205
+ 'type' => 'taxonomy_multicheck',
206
+ 'taxonomy' => 'post_tag', // Taxonomy Slug
207
+ // 'inline' => true, // Toggles display to inline
208
+ ),
209
+ array(
210
+ 'name' => __( 'Test Checkbox', 'cmb' ),
211
+ 'desc' => __( 'field description (optional)', 'cmb' ),
212
+ 'id' => $prefix . 'test_checkbox',
213
+ 'type' => 'checkbox',
214
+ ),
215
+ array(
216
+ 'name' => __( 'Test Multi Checkbox', 'cmb' ),
217
+ 'desc' => __( 'field description (optional)', 'cmb' ),
218
+ 'id' => $prefix . 'test_multicheckbox',
219
+ 'type' => 'multicheck',
220
+ 'options' => array(
221
+ 'check1' => __( 'Check One', 'cmb' ),
222
+ 'check2' => __( 'Check Two', 'cmb' ),
223
+ 'check3' => __( 'Check Three', 'cmb' ),
224
+ ),
225
+ // 'inline' => true, // Toggles display to inline
226
+ ),
227
+ array(
228
+ 'name' => __( 'Test wysiwyg', 'cmb' ),
229
+ 'desc' => __( 'field description (optional)', 'cmb' ),
230
+ 'id' => $prefix . 'test_wysiwyg',
231
+ 'type' => 'wysiwyg',
232
+ 'options' => array( 'textarea_rows' => 5, ),
233
+ ),
234
+ array(
235
+ 'name' => __( 'Test Image', 'cmb' ),
236
+ 'desc' => __( 'Upload an image or enter a URL.', 'cmb' ),
237
+ 'id' => $prefix . 'test_image',
238
+ 'type' => 'file',
239
+ ),
240
+ array(
241
+ 'name' => __( 'Multiple Files', 'cmb' ),
242
+ 'desc' => __( 'Upload or add multiple images/attachments.', 'cmb' ),
243
+ 'id' => $prefix . 'test_file_list',
244
+ 'type' => 'file_list',
245
+ 'preview_size' => array( 100, 100 ), // Default: array( 50, 50 )
246
+ ),
247
+ array(
248
+ 'name' => __( 'oEmbed', 'cmb' ),
249
+ 'desc' => __( 'Enter a youtube, twitter, or instagram URL. Supports services listed at <a href="http://codex.wordpress.org/Embeds">http://codex.wordpress.org/Embeds</a>.', 'cmb' ),
250
+ 'id' => $prefix . 'test_embed',
251
+ 'type' => 'oembed',
252
+ ),
253
+ ),
254
+ );
255
+
256
+ /**
257
+ * Metabox to be displayed on a single page ID
258
+ */
259
+ $meta_boxes['about_page_metabox'] = array(
260
+ 'id' => 'about_page_metabox',
261
+ 'title' => __( 'About Page Metabox', 'cmb' ),
262
+ 'pages' => array( 'page', ), // Post type
263
+ 'context' => 'normal',
264
+ 'priority' => 'high',
265
+ 'show_names' => true, // Show field names on the left
266
+ 'show_on' => array( 'key' => 'id', 'value' => array( 2, ), ), // Specific post IDs to display this metabox
267
+ 'fields' => array(
268
+ array(
269
+ 'name' => __( 'Test Text', 'cmb' ),
270
+ 'desc' => __( 'field description (optional)', 'cmb' ),
271
+ 'id' => $prefix . 'test_text',
272
+ 'type' => 'text',
273
+ ),
274
+ )
275
+ );
276
+
277
+ /**
278
+ * Repeatable Field Groups
279
+ */
280
+ $meta_boxes['field_group'] = array(
281
+ 'id' => 'field_group',
282
+ 'title' => __( 'Repeating Field Group', 'cmb' ),
283
+ 'pages' => array( 'page', ),
284
+ 'fields' => array(
285
+ array(
286
+ 'id' => $prefix . 'repeat_group',
287
+ 'type' => 'group',
288
+ 'description' => __( 'Generates reusable form entries', 'cmb' ),
289
+ 'options' => array(
290
+ 'add_button' => __( 'Add Another Entry', 'cmb' ),
291
+ 'remove_button' => __( 'Remove Entry', 'cmb' ),
292
+ 'sortable' => true, // beta
293
+ ),
294
+ // Fields array works the same, except id's only need to be unique for this group. Prefix is not needed.
295
+ 'fields' => array(
296
+ array(
297
+ 'name' => 'Entry Title',
298
+ 'id' => 'title',
299
+ 'type' => 'text',
300
+ // 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
301
+ ),
302
+ array(
303
+ 'name' => 'Description',
304
+ 'description' => 'Write a short description for this entry',
305
+ 'id' => 'description',
306
+ 'type' => 'textarea_small',
307
+ ),
308
+ array(
309
+ 'name' => 'Entry Image',
310
+ 'id' => 'image',
311
+ 'type' => 'file',
312
+ ),
313
+ array(
314
+ 'name' => 'Image Caption',
315
+ 'id' => 'image_caption',
316
+ 'type' => 'text',
317
+ ),
318
+ ),
319
+ ),
320
+ ),
321
+ );
322
+
323
+ /**
324
+ * Metabox for the user profile screen
325
+ */
326
+ $meta_boxes['user_edit'] = array(
327
+ 'id' => 'user_edit',
328
+ 'title' => __( 'User Profile Metabox', 'cmb' ),
329
+ 'pages' => array( 'user' ), // Tells CMB to use user_meta vs post_meta
330
+ 'show_names' => true,
331
+ 'cmb_styles' => false, // Show cmb bundled styles.. not needed on user profile page
332
+ 'fields' => array(
333
+ array(
334
+ 'name' => __( 'Extra Info', 'cmb' ),
335
+ 'desc' => __( 'field description (optional)', 'cmb' ),
336
+ 'id' => $prefix . 'exta_info',
337
+ 'type' => 'title',
338
+ 'on_front' => false,
339
+ ),
340
+ array(
341
+ 'name' => __( 'Avatar', 'cmb' ),
342
+ 'desc' => __( 'field description (optional)', 'cmb' ),
343
+ 'id' => $prefix . 'avatar',
344
+ 'type' => 'file',
345
+ 'save_id' => true,
346
+ ),
347
+ array(
348
+ 'name' => __( 'Facebook URL', 'cmb' ),
349
+ 'desc' => __( 'field description (optional)', 'cmb' ),
350
+ 'id' => $prefix . 'facebookurl',
351
+ 'type' => 'text_url',
352
+ ),
353
+ array(
354
+ 'name' => __( 'Twitter URL', 'cmb' ),
355
+ 'desc' => __( 'field description (optional)', 'cmb' ),
356
+ 'id' => $prefix . 'twitterurl',
357
+ 'type' => 'text_url',
358
+ ),
359
+ array(
360
+ 'name' => __( 'Google+ URL', 'cmb' ),
361
+ 'desc' => __( 'field description (optional)', 'cmb' ),
362
+ 'id' => $prefix . 'googleplusurl',
363
+ 'type' => 'text_url',
364
+ ),
365
+ array(
366
+ 'name' => __( 'Linkedin URL', 'cmb' ),
367
+ 'desc' => __( 'field description (optional)', 'cmb' ),
368
+ 'id' => $prefix . 'linkedinurl',
369
+ 'type' => 'text_url',
370
+ ),
371
+ array(
372
+ 'name' => __( 'User Field', 'cmb' ),
373
+ 'desc' => __( 'field description (optional)', 'cmb' ),
374
+ 'id' => $prefix . 'user_text_field',
375
+ 'type' => 'text',
376
+ ),
377
+ )
378
+ );
379
+
380
+ /**
381
+ * Metabox for an options page. Will not be added automatically, but needs to be called with
382
+ * the `cmb_metabox_form` helper function. See wiki for more info.
383
+ */
384
+ $meta_boxes['options_page'] = array(
385
+ 'id' => 'options_page',
386
+ 'title' => __( 'Theme Options Metabox', 'cmb' ),
387
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $prefix . 'theme_options', ), ),
388
+ 'fields' => array(
389
+ array(
390
+ 'name' => __( 'Site Background Color', 'cmb' ),
391
+ 'desc' => __( 'field description (optional)', 'cmb' ),
392
+ 'id' => $prefix . 'bg_color',
393
+ 'type' => 'colorpicker',
394
+ 'default' => '#ffffff'
395
+ ),
396
+ )
397
+ );
398
+
399
+ // Add other metaboxes as needed
400
+
401
+ return $meta_boxes;
402
+ }
403
+
404
+ add_action( 'init', 'cmb_initialize_cmb_meta_boxes', 9999 );
405
+ /**
406
+ * Initialize the metabox class.
407
+ */
408
+ function cmb_initialize_cmb_meta_boxes() {
409
+
410
+ if ( ! class_exists( 'cmb_Meta_Box' ) )
411
+ require_once 'init.php';
412
+
413
+ }
includes/metabox/helpers/cmb_Meta_Box_Sanitize.php ADDED
@@ -0,0 +1,346 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * CMB field validation
5
+ * @since 0.0.4
6
+ */
7
+ class cmb_Meta_Box_Sanitize {
8
+
9
+ /**
10
+ * A CMB field object
11
+ * @var cmb_Meta_Box_field object
12
+ */
13
+ public $field;
14
+
15
+ /**
16
+ * Field's $_POST value
17
+ * @var mixed
18
+ */
19
+ public $value;
20
+
21
+ /**
22
+ * Setup our class vars
23
+ * @since 1.1.0
24
+ * @param object $field A CMB field object
25
+ * @param mixed $value Field value
26
+ */
27
+ public function __construct( $field, $value ) {
28
+ $this->field = $field;
29
+ $this->value = $value;
30
+ $this->object_id = cmb_Meta_Box::get_object_id();
31
+ $this->object_type = cmb_Meta_Box::get_object_type();
32
+ }
33
+
34
+ /**
35
+ * Catchall method if field's 'sanitization_cb' is NOT defined, or field type does not have a corresponding validation method
36
+ * @since 1.0.0
37
+ * @param string $name Non-existent method name
38
+ * @param array $arguments All arguments passed to the method
39
+ */
40
+ public function __call( $name, $arguments ) {
41
+ list( $value ) = $arguments;
42
+ return $this->default_sanitization( $value );
43
+ }
44
+
45
+ /**
46
+ * Default fallback sanitization method. Applies filters.
47
+ * @since 1.0.2
48
+ * @param mixed $value Meta value
49
+ */
50
+ public function default_sanitization( $value ) {
51
+
52
+ // Allow field type validation via filter
53
+ $updated = apply_filters( 'cmb_validate_'. $this->field->type(), null, $value, $this->object_id, $this->field->args(), $this );
54
+
55
+ if ( null !== $updated )
56
+ return $updated;
57
+
58
+ switch ( $this->field->type() ) {
59
+ case 'wysiwyg':
60
+ // $value = wp_kses( $value );
61
+ // break;
62
+ case 'textarea_small':
63
+ return $this->textarea( $value );
64
+ case 'taxonomy_select':
65
+ case 'taxonomy_radio':
66
+ case 'taxonomy_multicheck':
67
+ if ( $this->field->args( 'taxonomy' ) ) {
68
+ return wp_set_object_terms( $this->object_id, $value, $this->field->args( 'taxonomy' ) );
69
+ }
70
+ case 'multicheck':
71
+ case 'file_list':
72
+ case 'oembed':
73
+ // no filtering
74
+ return $value;
75
+ default:
76
+ // Handle repeatable fields array
77
+ // We'll fallback to 'sanitize_text_field'
78
+ return is_array( $value ) ? array_map( 'sanitize_text_field', $value ) : call_user_func( 'sanitize_text_field', $value );
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Simple checkbox validation
84
+ * @since 1.0.1
85
+ * @param mixed $val 'on' or false
86
+ * @return mixed 'on' or false
87
+ */
88
+ public function checkbox( $value ) {
89
+ return $value === 'on' ? 'on' : false;
90
+ }
91
+
92
+ /**
93
+ * Validate url in a meta value
94
+ * @since 1.0.1
95
+ * @param string $value Meta value
96
+ * @return string Empty string or escaped url
97
+ */
98
+ public function text_url( $value ) {
99
+ $protocols = $this->field->args( 'protocols' );
100
+ // for repeatable
101
+ if ( is_array( $value ) ) {
102
+ foreach ( $value as $key => $val ) {
103
+ $value[ $key ] = $val ? esc_url_raw( $val, $protocols ) : $this->field->args( 'default' );
104
+ }
105
+ } else {
106
+ $value = $value ? esc_url_raw( $value, $protocols ) : $this->field->args( 'default' );
107
+ }
108
+
109
+ return $value;
110
+ }
111
+
112
+ public function colorpicker( $value ) {
113
+ // for repeatable
114
+ if ( is_array( $value ) ) {
115
+ $check = $value;
116
+ $value = array();
117
+ foreach ( $check as $key => $val ) {
118
+ if ( $val && '#' != $val ) {
119
+ $value[ $key ] = esc_attr( $val );
120
+ }
121
+ }
122
+ } else {
123
+ $value = ! $value || '#' == $value ? '' : esc_attr( $value );
124
+ }
125
+ return $value;
126
+ }
127
+
128
+ /**
129
+ * Validate email in a meta value
130
+ * @since 1.0.1
131
+ * @param string $value Meta value
132
+ * @return string Empty string or validated email
133
+ */
134
+ public function text_email( $value ) {
135
+ // for repeatable
136
+ if ( is_array( $value ) ) {
137
+ foreach ( $value as $key => $val ) {
138
+ $val = trim( $val );
139
+ $value[ $key ] = is_email( $val ) ? $val : '';
140
+ }
141
+ } else {
142
+ $value = trim( $value );
143
+ $value = is_email( $value ) ? $value : '';
144
+ }
145
+
146
+ return $value;
147
+ }
148
+
149
+ /**
150
+ * Validate money in a meta value
151
+ * @since 1.0.1
152
+ * @param string $value Meta value
153
+ * @return string Empty string or validated money value
154
+ */
155
+ public function text_money( $value ) {
156
+
157
+ global $wp_locale;
158
+
159
+ $search = array( $wp_locale->number_format['thousands_sep'], $wp_locale->number_format['decimal_point'] );
160
+ $replace = array( '', '.' );
161
+
162
+ // for repeatable
163
+ if ( is_array( $value ) ) {
164
+ foreach ( $value as $key => $val ) {
165
+ $value[ $key ] = number_format_i18n( (float) str_ireplace( $search, $replace, $val ), 2 );
166
+ }
167
+ } else {
168
+ $value = number_format_i18n( (float) str_ireplace( $search, $replace, $value ), 2 );
169
+ }
170
+
171
+ return $value;
172
+ }
173
+
174
+ /**
175
+ * Converts text date to timestamp
176
+ * @since 1.0.2
177
+ * @param string $value Meta value
178
+ * @return string Timestring
179
+ */
180
+ public function text_date_timestamp( $value ) {
181
+ return is_array( $value ) ? array_map( 'strtotime', $value ) : strtotime( $value );
182
+ }
183
+
184
+ /**
185
+ * Datetime to timestamp
186
+ * @since 1.0.1
187
+ * @param string $value Meta value
188
+ * @return string Timestring
189
+ */
190
+ public function text_datetime_timestamp( $value, $repeat = false ) {
191
+
192
+ $test = is_array( $value ) ? array_filter( $value ) : '';
193
+ if ( empty( $test ) )
194
+ return '';
195
+
196
+ if ( $repeat_value = $this->_check_repeat( $value, __FUNCTION__, $repeat ) )
197
+ return $repeat_value;
198
+
199
+ $value = strtotime( $value['date'] .' '. $value['time'] );
200
+
201
+ if ( $tz_offset = $this->field->field_timezone_offset() )
202
+ $value += $tz_offset;
203
+
204
+ return $value;
205
+ }
206
+
207
+ /**
208
+ * Datetime to imestamp with timezone
209
+ * @since 1.0.1
210
+ * @param string $value Meta value
211
+ * @return string Timestring
212
+ */
213
+ public function text_datetime_timestamp_timezone( $value, $repeat = false ) {
214
+
215
+ $test = is_array( $value ) ? array_filter( $value ) : '';
216
+ if ( empty( $test ) )
217
+ return '';
218
+
219
+ if ( $repeat_value = $this->_check_repeat( $value, __FUNCTION__, $repeat ) )
220
+ return $repeat_value;
221
+
222
+ $tzstring = null;
223
+
224
+ if ( is_array( $value ) && array_key_exists( 'timezone', $value ) )
225
+ $tzstring = $value['timezone'];
226
+
227
+ if ( empty( $tzstring ) )
228
+ $tzstring = cmb_Meta_Box::timezone_string();
229
+
230
+ $offset = cmb_Meta_Box::timezone_offset( $tzstring, true );
231
+
232
+ if ( substr( $tzstring, 0, 3 ) === 'UTC' )
233
+ $tzstring = timezone_name_from_abbr( '', $offset, 0 );
234
+
235
+ $value = new DateTime( $value['date'] .' '. $value['time'], new DateTimeZone( $tzstring ) );
236
+ $value = serialize( $value );
237
+
238
+ return $value;
239
+ }
240
+
241
+ /**
242
+ * Sanitize textareas and wysiwyg fields
243
+ * @since 1.0.1
244
+ * @param string $value Meta value
245
+ * @return string Sanitized data
246
+ */
247
+ public function textarea( $value ) {
248
+ return is_array( $value ) ? array_map( 'wp_kses_post', $value ) : wp_kses_post( $value );
249
+ }
250
+
251
+ /**
252
+ * Sanitize code textareas
253
+ * @since 1.0.2
254
+ * @param string $value Meta value
255
+ * @return string Sanitized data
256
+ */
257
+ public function textarea_code( $value, $repeat = false ) {
258
+ if ( $repeat_value = $this->_check_repeat( $value, __FUNCTION__, $repeat ) )
259
+ return $repeat_value;
260
+
261
+ return htmlspecialchars_decode( stripslashes( $value ) );
262
+ }
263
+
264
+ /**
265
+ * Peforms saving of `file` attachement's ID
266
+ * @since 1.1.0
267
+ * @param string $value File url
268
+ */
269
+ public function _save_file_id( $value ) {
270
+ $group = $this->field->group;
271
+ $args = $this->field->args();
272
+ $args['id'] = $args['_id'] . '_id';
273
+
274
+ unset( $args['_id'], $args['_name'] );
275
+ // And get new field object
276
+ $field = new cmb_Meta_Box_field( $args, $group );
277
+ $id_key = $field->_id();
278
+ $id_val_old = $field->escaped_value( 'absint' );
279
+
280
+ if ( $group ) {
281
+ // Check group $_POST data
282
+ $i = $group->index;
283
+ $base_id = $group->_id();
284
+ $id_val = isset( $_POST[ $base_id ][ $i ][ $id_key ] ) ? absint( $_POST[ $base_id ][ $i ][ $id_key ] ) : 0;
285
+
286
+ } else {
287
+ // Check standard $_POST data
288
+ $id_val = isset( $_POST[ $field->id() ] ) ? $_POST[ $field->id() ] : null;
289
+
290
+ }
291
+
292
+ // If there is no ID saved yet, try to get it from the url
293
+ if ( $value && ! $id_val ) {
294
+ $id_val = cmb_Meta_Box::image_id_from_url( $value );
295
+ }
296
+
297
+ if ( $group ) {
298
+ return array(
299
+ 'attach_id' => $id_val,
300
+ 'field_id' => $id_key
301
+ );
302
+ }
303
+
304
+ if ( $id_val && $id_val != $id_val_old ) {
305
+ return $field->update_data( $id_val );
306
+ } elseif ( empty( $id_val ) && $id_val_old ) {
307
+ return $field->remove_data( $old );
308
+ }
309
+ }
310
+
311
+ /**
312
+ * Handles saving of attachment post ID and sanitizing file url
313
+ * @since 1.1.0
314
+ * @param string $value File url
315
+ * @return string Sanitized url
316
+ */
317
+ public function file( $value ) {
318
+ // If NOT specified to NOT save the file ID
319
+ if ( $this->field->args( 'save_id' ) ) {
320
+ $id_value = $this->_save_file_id( $value );
321
+ }
322
+ $clean = $this->text_url( $value );
323
+
324
+ // Return an array with url/id if saving a group field
325
+ return $this->field->group ? array_merge( array( 'url' => $clean), $id_value ) : $clean;
326
+ }
327
+
328
+ /**
329
+ * If repeating, loop through and re-apply sanitization method
330
+ * @since 1.1.0
331
+ * @param mixed $value Meta value
332
+ * @param string $method Class method
333
+ * @param bool $repeat Whether repeating or not
334
+ * @return mixed Sanitized value
335
+ */
336
+ public function _check_repeat( $value, $method, $repeat ) {
337
+ if ( $repeat || ! $this->field->args( 'repeatable' ) )
338
+ return;
339
+ $new_value = array();
340
+ foreach ( $value as $iterator => $val ) {
341
+ $new_value[] = $this->$method( $val, true );
342
+ }
343
+ return $new_value;
344
+ }
345
+
346
+ }
includes/metabox/helpers/cmb_Meta_Box_Show_Filters.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Show On Filters
5
+ * Use the 'cmb_show_on' filter to further refine the conditions under which a metabox is displayed.
6
+ * Below you can limit it by ID and page template
7
+ *
8
+ * All methods in this class are automatically filtered
9
+ *
10
+ * @since 1.0.0
11
+ */
12
+ class cmb_Meta_Box_Show_Filters {
13
+
14
+ /**
15
+ * Add metaboxes for an specific ID
16
+ * @since 1.0.0
17
+ * @param bool $display To display or not
18
+ * @param array $meta_box Metabox config array
19
+ * @return bool Whether to display this metabox on the current page.
20
+ */
21
+ public static function check_id( $display, $meta_box ) {
22
+
23
+ if ( ! isset( $meta_box['show_on']['key'] ) || 'id' !== $meta_box['show_on']['key'] )
24
+ return $display;
25
+
26
+ $object_id = is_admin() ? cmb_Meta_Box::get_object_id() : @get_the_id();
27
+
28
+ if ( ! $object_id )
29
+ return false;
30
+
31
+ // If current page id is in the included array, display the metabox
32
+ return in_array( $object_id, (array) $meta_box['show_on']['value'] );
33
+ }
34
+
35
+ /**
36
+ * Add metaboxes for an specific Page Template
37
+ * @since 1.0.0
38
+ * @param bool $display To display or not
39
+ * @param array $meta_box Metabox config array
40
+ * @return bool Whether to display this metabox on the current page.
41
+ */
42
+ public static function check_page_template( $display, $meta_box ) {
43
+
44
+ if ( ! isset( $meta_box['show_on']['key'] ) || 'page-template' !== $meta_box['show_on']['key'] )
45
+ return $display;
46
+
47
+ $object_id = cmb_Meta_Box::get_object_id();
48
+
49
+ if ( ! $object_id || cmb_Meta_Box::get_object_type() !== 'post' )
50
+ return false;
51
+
52
+ // Get current template
53
+ $current_template = get_post_meta( $object_id, '_wp_page_template', true );
54
+
55
+ // See if there's a match
56
+ if ( $current_template && in_array( $current_template, (array) $meta_box['show_on']['value'] ) )
57
+ return true;
58
+
59
+ return false;
60
+ }
61
+
62
+ /**
63
+ * Only show options-page metaboxes on their options page (but only enforce on the admin side)
64
+ * @since 1.0.0
65
+ * @param bool $display To display or not
66
+ * @param array $meta_box Metabox config array
67
+ * @return bool Whether to display this metabox on the current page.
68
+ */
69
+ public static function check_admin_page( $display, $meta_box ) {
70
+
71
+ // check if this is a 'options-page' metabox
72
+ if ( ! isset( $meta_box['show_on']['key'] ) || 'options-page' !== $meta_box['show_on']['key'] )
73
+ return $display;
74
+
75
+ // Enforce 'show_on' filter in the admin
76
+ if ( is_admin() ) {
77
+
78
+ // If there is no 'page' query var, our filter isn't applicable
79
+ if ( ! isset( $_GET['page'] ) )
80
+ return $display;
81
+
82
+ if ( ! isset( $meta_box['show_on']['value'] ) )
83
+ return false;
84
+
85
+ $pages = $meta_box['show_on']['value'];
86
+
87
+ if ( is_array( $pages ) ) {
88
+ foreach ( $pages as $page ) {
89
+ if ( $_GET['page'] == $page )
90
+ return true;
91
+ }
92
+ } else {
93
+ if ( $_GET['page'] == $pages )
94
+ return true;
95
+ }
96
+
97
+ return false;
98
+
99
+ }
100
+
101
+ // Allow options-page metaboxes to be displayed anywhere on the front-end
102
+ return true;
103
+ }
104
+
105
+ }
includes/metabox/helpers/cmb_Meta_Box_ajax.php ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * CMB ajax methods
5
+ * (i.e. a lot of work to get oEmbeds to work with non-post objects)
6
+ *
7
+ * @since 0.9.5
8
+ */
9
+ class cmb_Meta_Box_ajax {
10
+
11
+ // A single instance of this class.
12
+ public static $instance = null;
13
+ // Whether to hijack the oembed cache system
14
+ public static $hijack = false;
15
+ public static $object_id = 0;
16
+ public static $embed_args = array();
17
+ public static $object_type = 'post';
18
+
19
+ /**
20
+ * Creates or returns an instance of this class.
21
+ * @since 0.1.0
22
+ * @return cmb_Meta_Box_ajax A single instance of this class.
23
+ */
24
+ public static function get() {
25
+ if ( self::$instance === null )
26
+ self::$instance = new self();
27
+
28
+ return self::$instance;
29
+ }
30
+
31
+ /**
32
+ * Handles our oEmbed ajax request
33
+ * @since 0.9.5
34
+ * @return object oEmbed embed code | fallback | error message
35
+ */
36
+ public function oembed_handler() {
37
+
38
+ // verify our nonce
39
+ if ( ! ( isset( $_REQUEST['cmb_ajax_nonce'], $_REQUEST['oembed_url'] ) && wp_verify_nonce( $_REQUEST['cmb_ajax_nonce'], 'ajax_nonce' ) ) )
40
+ die();
41
+
42
+ // sanitize our search string
43
+ $oembed_string = sanitize_text_field( $_REQUEST['oembed_url'] );
44
+
45
+ // send back error if empty
46
+ if ( empty( $oembed_string ) )
47
+ self::send_result( '<p class="ui-state-error-text">'. __( 'Please Try Again', 'cmb' ) .'</p>', false );
48
+
49
+ // Set width of embed
50
+ $embed_width = isset( $_REQUEST['oembed_width'] ) && intval( $_REQUEST['oembed_width'] ) < 640 ? intval( $_REQUEST['oembed_width'] ) : '640';
51
+
52
+ // set url
53
+ $oembed_url = esc_url( $oembed_string );
54
+ // set args
55
+ $embed_args = array( 'width' => $embed_width );
56
+
57
+ // Get embed code (or fallback link)
58
+ $html = self::get_oembed( $oembed_url, $_REQUEST['object_id'], array(
59
+ 'object_type' => isset( $_REQUEST['object_type'] ) ? $_REQUEST['object_type'] : 'post',
60
+ 'oembed_args' => $embed_args,
61
+ 'field_id' => $_REQUEST['field_id'],
62
+ ) );
63
+
64
+ self::send_result( $html );
65
+
66
+ }
67
+
68
+ /**
69
+ * Retrieves oEmbed from url/object ID
70
+ * @since 0.9.5
71
+ * @param string $url URL to retrieve oEmbed
72
+ * @param int $object_id Object ID
73
+ * @param array $args Arguments for method
74
+ * @return string html markup with embed or fallback
75
+ */
76
+ public static function get_oembed( $url, $object_id, $args = array() ) {
77
+ global $wp_embed;
78
+
79
+ $oembed_url = esc_url( $url );
80
+
81
+ // Sanitize object_id
82
+ self::$object_id = is_numeric( $object_id ) ? absint( $object_id ) : sanitize_text_field( $object_id );
83
+
84
+ $args = wp_parse_args( $args, array(
85
+ 'object_type' => 'post',
86
+ 'oembed_args' => self::$embed_args,
87
+ 'field_id' => false,
88
+ 'cache_key' => false,
89
+ ) );
90
+
91
+ self::$embed_args =& $args;
92
+
93
+ // set the post_ID so oEmbed won't fail
94
+ // wp-includes/class-wp-embed.php, WP_Embed::shortcode(), line 162
95
+ $wp_embed->post_ID = self::$object_id;
96
+
97
+ // Special scenario if NOT a post object
98
+ if ( isset( $args['object_type'] ) && $args['object_type'] != 'post' ) {
99
+
100
+ if ( 'options-page' == $args['object_type'] ) {
101
+ // bogus id to pass some numeric checks
102
+ // Issue with a VERY large WP install?
103
+ $wp_embed->post_ID = 1987645321;
104
+ // Use our own cache key to correspond to this field (vs one cache key per url)
105
+ $args['cache_key'] = $args['field_id'] .'_cache';
106
+ }
107
+ // Ok, we need to hijack the oembed cache system
108
+ self::$hijack = true;
109
+ self::$object_type = $args['object_type'];
110
+
111
+ // Gets ombed cache from our object's meta (vs postmeta)
112
+ add_filter( 'get_post_metadata', array( 'cmb_Meta_Box_ajax', 'hijack_oembed_cache_get' ), 10, 3 );
113
+ // Sets ombed cache in our object's meta (vs postmeta)
114
+ add_filter( 'update_post_metadata', array( 'cmb_Meta_Box_ajax', 'hijack_oembed_cache_set' ), 10, 4 );
115
+
116
+ }
117
+
118
+ $embed_args = '';
119
+ foreach ( $args['oembed_args'] as $key => $val ) {
120
+ $embed_args .= " $key=\"$val\"";
121
+ }
122
+
123
+ // ping WordPress for an embed
124
+ $check_embed = $wp_embed->run_shortcode( '[embed'. $embed_args .']'. $oembed_url .'[/embed]' );
125
+
126
+ // fallback that WordPress creates when no oEmbed was found
127
+ $fallback = $wp_embed->maybe_make_link( $oembed_url );
128
+
129
+ // Send back our embed
130
+ if ( $check_embed && $check_embed != $fallback )
131
+ return '<div class="embed_status">'. $check_embed .'<p class="cmb_remove_wrapper"><a href="#" class="cmb_remove_file_button" rel="'. $args['field_id'] .'">'. __( 'Remove Embed', 'cmb' ) .'</a></p></div>';
132
+
133
+ // Otherwise, send back error info that no oEmbeds were found
134
+ return '<p class="ui-state-error-text">'. sprintf( __( 'No oEmbed Results Found for %s. View more info at', 'cmb' ), $fallback ) .' <a href="http://codex.wordpress.org/Embeds" target="_blank">codex.wordpress.org/Embeds</a>.</p>';
135
+
136
+ }
137
+
138
+ /**
139
+ * Hijacks retrieving of cached oEmbed.
140
+ * Returns cached data from relevant object metadata (vs postmeta)
141
+ *
142
+ * @since 0.9.5
143
+ * @param boolean $check Whether to retrieve postmeta or override
144
+ * @param int $object_id Object ID
145
+ * @param string $meta_key Object metakey
146
+ * @return mixed Object's oEmbed cached data
147
+ */
148
+ public static function hijack_oembed_cache_get( $check, $object_id, $meta_key ) {
149
+
150
+ if ( ! self::$hijack || ( self::$object_id != $object_id && 1987645321 !== $object_id ) )
151
+ return $check;
152
+
153
+ // get cached data
154
+ $data = 'options-page' === self::$object_type
155
+ ? cmb_Meta_Box::get_option( self::$object_id, self::$embed_args['cache_key'] )
156
+ : get_metadata( self::$object_type, self::$object_id, $meta_key, true );
157
+
158
+ return $data;
159
+ }
160
+
161
+ /**
162
+ * Hijacks saving of cached oEmbed.
163
+ * Saves cached data to relevant object metadata (vs postmeta)
164
+ *
165
+ * @since 0.9.5
166
+ * @param boolean $check Whether to continue setting postmeta
167
+ * @param int $object_id Object ID to get postmeta from
168
+ * @param string $meta_key Postmeta's key
169
+ * @param mixed $meta_value Value of the postmeta to be saved
170
+ * @return boolean Whether to continue setting
171
+ */
172
+ public static function hijack_oembed_cache_set( $check, $object_id, $meta_key, $meta_value ) {
173
+ if ( ! self::$hijack || ( self::$object_id != $object_id && 1987645321 !== $object_id ) )
174
+ return $check;
175
+
176
+ // Cache the result to our metadata
177
+ if ( 'options-page' === self::$object_type ) {
178
+ // Set the option
179
+ cmb_Meta_Box::update_option( self::$object_id, self::$embed_args['cache_key'], $meta_value, array( 'type' => 'oembed' ) );
180
+ // Save the option
181
+ cmb_Meta_Box::save_option( self::$object_id );
182
+ } else {
183
+ update_metadata( self::$object_type, self::$object_id, $meta_key, $meta_value );
184
+ }
185
+
186
+ // Anything other than `null` to cancel saving to postmeta
187
+ return true;
188
+ }
189
+
190
+ /**
191
+ * Helper to send json encoded response to ajax
192
+ * @since 0.9.5
193
+ * @param string $data Data to be shown via ajax
194
+ * @param boolean $success Success or fail
195
+ */
196
+ public static function send_result( $data, $success = true ) {
197
+ $found = $success ? 'found' : 'not found';
198
+ // send back our encoded data
199
+ echo json_encode( array( 'result' => $data, 'id' => $found ) );
200
+ die();
201
+ }
202
+
203
+ }
includes/metabox/helpers/cmb_Meta_Box_field.php ADDED
@@ -0,0 +1,478 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * CMB field class
5
+ * @since 1.1.0
6
+ */
7
+ class cmb_Meta_Box_field {
8
+
9
+ /**
10
+ * Metabox object id
11
+ * @var mixed
12
+ * @since 1.1.0
13
+ */
14
+ public $object_id;
15
+
16
+ /**
17
+ * Metabox object type
18
+ * @var mixed
19
+ * @since 1.1.0
20
+ */
21
+ public $object_type;
22
+
23
+ /**
24
+ * Field arguments
25
+ * @var mixed
26
+ * @since 1.1.0
27
+ */
28
+ public $args;
29
+
30
+ /**
31
+ * Field group object
32
+ * @var mixed
33
+ * @since 1.1.0
34
+ */
35
+ public $group;
36
+
37
+ /**
38
+ * Field meta value
39
+ * @var mixed
40
+ * @since 1.1.0
41
+ */
42
+ public $value;
43
+
44
+ /**
45
+ * Constructs our field object
46
+ * @since 1.1.0
47
+ * @param array $field_args Field arguments
48
+ * @param array $group_field (optional) Group field object
49
+ */
50
+ public function __construct( $field_args, $group_field = null ) {
51
+ $this->object_id = cmb_Meta_Box::get_object_id();
52
+ $this->object_type = cmb_Meta_Box::get_object_type();
53
+ $this->group = ! empty( $group_field ) ? $group_field : false;
54
+ $this->args = $this->_set_field_defaults( $field_args );
55
+
56
+ // Allow an override for the field's value
57
+ // (assuming no one would want to save 'cmb_no_override_val' as a value)
58
+ $this->value = apply_filters( 'cmb_override_meta_value', 'cmb_no_override_val', $this->object_id, $this->args(), $this->object_type, $this );
59
+
60
+ // If no override, get our meta
61
+ $this->value = 'cmb_no_override_val' === $this->value
62
+ ? $this->get_data()
63
+ : $this->value;
64
+ }
65
+
66
+ /**
67
+ * Non-existent methods fallback to checking for field arguments of the same name
68
+ * @since 1.1.0
69
+ * @param string $name Method name
70
+ * @param array $arguments Array of passed-in arguments
71
+ * @return mixed Value of field argument
72
+ */
73
+ public function __call( $name, $arguments ) {
74
+ $key = isset( $arguments[0] ) ? $arguments[0] : false;
75
+ return $this->args( $name, $key );
76
+ }
77
+
78
+ /**
79
+ * Retrieves the field id
80
+ * @since 1.1.0
81
+ * @param boolean $raw Whether to retrieve pre-modidifed id
82
+ * @return string Field id
83
+ */
84
+ public function id( $raw = false ) {
85
+ $id = $raw ? '_id' : 'id';
86
+ return $this->args( $id );
87
+ }
88
+
89
+ /**
90
+ * Get a field argument
91
+ * @since 1.1.0
92
+ * @param string $key Argument to check
93
+ * @param string $key Sub argument to check
94
+ * @return mixed Argument value or false if non-existent
95
+ */
96
+ public function args( $key = '', $_key = '' ) {
97
+ $vars = $this->_data( 'args', $key );
98
+ if ( $_key ) {
99
+ return isset( $vars[ $_key ] ) ? $vars[ $_key ] : false;
100
+ }
101
+ return $vars;
102
+ }
103
+
104
+ /**
105
+ * Get Field's value
106
+ * @since 1.1.0
107
+ * @param string $key If value is an array, is used to get array key->value
108
+ * @return mixed Field value or false if non-existent
109
+ */
110
+ public function value( $key = '' ) {
111
+ return $this->_data( 'value', $key );
112
+ }
113
+
114
+ /**
115
+ * Retrieve a portion of a field property
116
+ * @since 1.1.0
117
+ * @param string $var Field property to check
118
+ * @param string $key Field property array key to check
119
+ * @return mixed Queried property value or false
120
+ */
121
+ public function _data( $var, $key = '' ) {
122
+ $vars = $this->$var;
123
+ if ( $key ) {
124
+ return isset( $vars[ $key ] ) ? $vars[ $key ] : false;
125
+ }
126
+ return $vars;
127
+ }
128
+
129
+ /**
130
+ * Retrieves metadata/option data
131
+ * @since 1.0.1
132
+ * @param string $field_id Meta key/Option array key
133
+ * @return mixed Meta/Option value
134
+ */
135
+ public function get_data( $field_id = '', $args = array() ) {
136
+ if ( $field_id ) {
137
+ $args['field_id'] = $field_id;
138
+ } else if ( $this->group ) {
139
+ $args['field_id'] = $this->group->id();
140
+ }
141
+ extract( $this->data_args( $args ) );
142
+
143
+ $data = 'options-page' === $type
144
+ ? cmb_Meta_Box::get_option( $id, $field_id )
145
+ : get_metadata( $type, $id, $field_id, ( $single || $repeat ) /* If multicheck this can be multiple values */ );
146
+
147
+ if ( $this->group && $data ) {
148
+ $data = isset( $data[ $this->group->args( 'count' ) ][ $this->args( '_id' ) ] )
149
+ ? $data[ $this->group->args( 'count' ) ][ $this->args( '_id' ) ]
150
+ : false;
151
+ }
152
+ return $data;
153
+ }
154
+
155
+ /**
156
+ * Updates metadata/option data
157
+ * @since 1.0.1
158
+ * @param mixed $value Value to update data with
159
+ * @param bool $single Whether data is an array (add_metadata)
160
+ */
161
+ public function update_data( $new_value, $single = true ) {
162
+ extract( $this->data_args( array( 'new_value' => $new_value, 'single' => $single ) ) );
163
+
164
+ $new_value = $repeat ? array_values( $new_value ) : $new_value;
165
+
166
+ if ( 'options-page' === $type )
167
+ return cmb_Meta_Box::update_option( $id, $field_id, $new_value, $single );
168
+
169
+ if ( ! $single )
170
+ return add_metadata( $type, $id, $field_id, $new_value, false );
171
+
172
+ return update_metadata( $type, $id, $field_id, $new_value );
173
+ }
174
+
175
+ /**
176
+ * Removes/updates metadata/option data
177
+ * @since 1.0.1
178
+ * @param string $old Old value
179
+ */
180
+ public function remove_data( $old = '' ) {
181
+ extract( $this->data_args() );
182
+
183
+ return 'options-page' === $type
184
+ ? cmb_Meta_Box::remove_option( $id, $field_id )
185
+ : delete_metadata( $type, $id, $field_id, $old );
186
+ }
187
+
188
+ /**
189
+ * data variables for get/set data methods
190
+ * @since 1.1.0
191
+ * @param array $args Override arguments
192
+ * @return array Updated arguments
193
+ */
194
+ public function data_args( $args = array() ) {
195
+ $args = wp_parse_args( $args, array(
196
+ 'type' => $this->object_type,
197
+ 'id' => $this->object_id,
198
+ 'field_id' => $this->id( true ),
199
+ 'repeat' => $this->args( 'repeatable' ),
200
+ 'single' => ! $this->args( 'multiple' ),
201
+ ) );
202
+ return $args;
203
+ }
204
+
205
+ /**
206
+ * Checks if field has a registered validation callback
207
+ * @since 1.0.1
208
+ * @param mixed $meta_value Meta value
209
+ * @return mixed Possibly validated meta value
210
+ */
211
+ public function sanitization_cb( $meta_value ) {
212
+ if ( empty( $meta_value ) )
213
+ return $meta_value;
214
+
215
+ // Check if the field has a registered validation callback
216
+ $cb = $this->maybe_callback( 'sanitization_cb' );
217
+ if ( false === $cb ) {
218
+ // If requestion NO validation, return meta value
219
+ return $meta_value;
220
+ } elseif ( $cb ) {
221
+ // Ok, callback is good, let's run it.
222
+ return call_user_func( $cb, $meta_value, $this->args(), $this );
223
+ }
224
+
225
+ $clean = new cmb_Meta_Box_Sanitize( $this, $meta_value );
226
+ // Validation via 'cmb_Meta_Box_Sanitize' (with fallback filter)
227
+ return $clean->{$this->type()}( $meta_value );
228
+ }
229
+
230
+ /**
231
+ * Checks if field has a callback value
232
+ * @since 1.0.1
233
+ * @param string $cb Callback string
234
+ * @return mixed NULL, false for NO validation, or $cb string if it exists.
235
+ */
236
+ public function maybe_callback( $cb ) {
237
+ $field_args = $this->args();
238
+ if ( ! isset( $field_args[ $cb ] ) )
239
+ return;
240
+
241
+ // Check if metabox is requesting NO validation
242
+ $cb = false !== $field_args[ $cb ] && 'false' !== $field_args[ $cb ] ? $field_args[ $cb ] : false;
243
+
244
+ // If requestion NO validation, return false
245
+ if ( ! $cb )
246
+ return false;
247
+
248
+ if ( is_callable( $cb ) )
249
+ return $cb;
250
+ }
251
+
252
+ /**
253
+ * Determine if current type is excempt from escaping
254
+ * @since 1.1.0
255
+ * @return bool True if exempt
256
+ */
257
+ public function escaping_exception() {
258
+ // These types cannot be escaped
259
+ return in_array( $this->type(), array(
260
+ 'file_list',
261
+ 'multicheck',
262
+ 'text_datetime_timestamp_timezone',
263
+ ) );
264
+ }
265
+
266
+ /**
267
+ * Determine if current type cannot be repeatable
268
+ * @since 1.1.0
269
+ * @param string $type Field type to check
270
+ * @return bool True if type cannot be repeatable
271
+ */
272
+ public function repeatable_exception( $type ) {
273
+ // These types cannot be escaped
274
+ return in_array( $type, array(
275
+ 'file', // Use file_list
276
+ 'radio',
277
+ 'title',
278
+ 'group',
279
+ // @todo Ajax load wp_editor: http://wordpress.stackexchange.com/questions/51776/how-to-load-wp-editor-through-ajax-jquery
280
+ 'wysiwyg',
281
+ 'checkbox',
282
+ 'radio_inline',
283
+ 'taxonomy_radio',
284
+ 'taxonomy_select',
285
+ 'taxonomy_multicheck',
286
+ ) );
287
+ }
288
+
289
+ /**
290
+ * Escape the value before output. Defaults to 'esc_attr()'
291
+ * @since 1.0.1
292
+ * @param mixed $meta_value Meta value
293
+ * @param mixed $func Escaping function (if not esc_attr())
294
+ * @return mixed Final value
295
+ */
296
+ public function escaped_value( $func = 'esc_attr', $meta_value = '' ) {
297
+
298
+ if ( isset( $this->escaped_value ) )
299
+ return $this->escaped_value;
300
+
301
+ $meta_value = $meta_value ? $meta_value : $this->value();
302
+ // Check if the field has a registered escaping callback
303
+ $cb = $this->maybe_callback( 'escape_cb' );
304
+ if ( false === $cb || $this->escaping_exception() ) {
305
+ // If requesting NO escaping, return meta value
306
+ return ! empty( $meta_value ) ? $meta_value : $this->args( 'default' );
307
+ } elseif ( $cb ) {
308
+ // Ok, callback is good, let's run it.
309
+ return call_user_func( $cb, $meta_value, $this->args(), $this );
310
+ }
311
+
312
+ // Or custom escaping filter can be used
313
+ $esc = apply_filters( 'cmb_types_esc_'. $this->type(), null, $meta_value, $this->args(), $this );
314
+ if ( null !== $esc ) {
315
+ return $esc;
316
+ }
317
+
318
+ // escaping function passed in?
319
+ $func = $func ? $func : 'esc_attr';
320
+ $meta_value = ! empty( $meta_value ) ? $meta_value : $this->args( 'default' );
321
+
322
+ if ( is_array( $meta_value ) ) {
323
+ foreach ( $meta_value as $key => $value ) {
324
+ $meta_value[ $key ] = call_user_func( $func, $value );
325
+ }
326
+ } else {
327
+ $meta_value = call_user_func( $func, $meta_value );
328
+ }
329
+
330
+ $this->escaped_value = $meta_value;
331
+ return $this->escaped_value;
332
+ }
333
+
334
+ /**
335
+ * Offset a time value based on timezone
336
+ * @since 1.0.0
337
+ * @return string Offset time string
338
+ */
339
+ public function field_timezone_offset() {
340
+ return cmb_Meta_Box::timezone_offset( $this->field_timezone() );
341
+ }
342
+
343
+ /**
344
+ * Return timezone string
345
+ * @since 1.0.0
346
+ * @return string Timezone string
347
+ */
348
+ public function field_timezone() {
349
+
350
+ // Is timezone arg set?
351
+ if ( $this->args( 'timezone' ) ) {
352
+ return $this->args( 'timezone' ) ;
353
+ }
354
+ // Is there another meta key with a timezone stored as its value we should use?
355
+ else if ( $this->args( 'timezone_meta_key' ) ) {
356
+ return $this->get_data( $this->args( 'timezone_meta_key' ) );
357
+ }
358
+
359
+ return false;
360
+ }
361
+
362
+ /**
363
+ * Render a field row
364
+ * @since 1.0.0
365
+ */
366
+ public function render_field() {
367
+
368
+ // If field is requesting to not be shown on the front-end
369
+ if ( ! is_admin() && ! $this->args( 'on_front' ) )
370
+ return;
371
+
372
+ $classes = 'cmb-type-'. sanitize_html_class( $this->type() );
373
+ $classes .= ' cmb_id_'. sanitize_html_class( $this->id() );
374
+ $classes .= $this->args( 'repeatable' ) ? ' cmb-repeat' : '';
375
+ // 'inline' flag, or _inline in the field type, set to true
376
+ $classes .= $this->args( 'inline' ) ? ' cmb-inline' : '';
377
+ $is_side = 'side' === $this->args( 'context' );
378
+
379
+ printf( "<tr class=\"%s\">\n", $classes );
380
+
381
+ if ( 'title' == $this->type() || ! $this->args( 'show_names' ) || $is_side ) {
382
+ echo "\t<td colspan=\"2\">\n";
383
+
384
+ if ( ! $this->args( 'show_names' ) || $is_side ) {
385
+ $style = ! $is_side || 'title' == $this->type() ? ' style="display:none;"' : '';
386
+ printf( "\n<label%s for=\"%s\">%s</label>\n", $style, $this->id(), $this->args( 'name' ) );
387
+ }
388
+ } else {
389
+
390
+ $style = 'post' == $this->object_type ? ' style="width:18%"' : '';
391
+ // $tag = 'side' !== $this->args( 'context' ) ? 'th' : 'p';
392
+ $tag = 'th';
393
+ printf( '<%1$s%2$s><label for="%3$s">%4$s</label></%1$s>', $tag, $style, $this->id(), $this->args( 'name' ) );
394
+
395
+ echo "\n\t<td>\n";
396
+ }
397
+
398
+ echo $this->args( 'before' );
399
+
400
+ if ( isset( $_GET['jtdebug'] ) ) {
401
+ $val = $this->value();
402
+ if ( is_array( $val ) )
403
+ echo '<xmp>$val: '. print_r( $val, true ) .'</xmp>';
404
+ else
405
+ echo '<p>$val: '. $val .'</p>';
406
+ }
407
+ $this_type = new cmb_Meta_Box_types( $this );
408
+ $this_type->render();
409
+
410
+ echo $this->args( 'after' );
411
+
412
+ echo "\n\t</td>\n</tr>";
413
+ }
414
+
415
+ /**
416
+ * Fills in empty field parameters with defaults
417
+ * @since 1.1.0
418
+ * @param array $args Metabox field config array
419
+ */
420
+ public function _set_field_defaults( $args ) {
421
+
422
+ // Set up blank or default values for empty ones
423
+ if ( ! isset( $args['name'] ) ) $args['name'] = '';
424
+ if ( ! isset( $args['desc'] ) ) $args['desc'] = '';
425
+ if ( ! isset( $args['before'] ) ) $args['before'] = '';
426
+ if ( ! isset( $args['after'] ) ) $args['after'] = '';
427
+ if ( ! isset( $args['protocols'] ) ) $args['protocols'] = null;
428
+ if ( ! isset( $args['description'] ) ) {
429
+ $args['description'] = isset( $args['desc'] ) ? $args['desc'] : '';
430
+ }
431
+ if ( ! isset( $args['default'] ) ) {
432
+ // Phase out 'std', and use 'default' instead
433
+ $args['default'] = isset( $args['std'] ) ? $args['std'] : '';
434
+ }
435
+ if ( ! isset( $args['preview_size'] ) ) $args['preview_size'] = array( 50, 50 );
436
+ // Allow a filter override of the default value
437
+ $args['default'] = apply_filters( 'cmb_default_filter', $args['default'], $args, $this->object_type, $this->object_type );
438
+ $args['allow'] = 'file' == $args['type'] && ! isset( $args['allow'] ) ? array( 'url', 'attachment' ) : array();
439
+ $args['save_id'] = 'file' == $args['type'] && ! ( isset( $args['save_id'] ) && ! $args['save_id'] );
440
+ // $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : ( 'multicheck' == $args['type'] ? true : false );
441
+ $args['multiple'] = isset( $args['multiple'] ) ? $args['multiple'] : false;
442
+ $args['repeatable'] = isset( $args['repeatable'] ) && $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
443
+ $args['inline'] = isset( $args['inline'] ) && $args['inline'] || false !== stripos( $args['type'], '_inline' );
444
+ $args['on_front'] = ! ( isset( $args['on_front'] ) && ! $args['on_front'] );
445
+ $args['attributes'] = isset( $args['attributes'] ) && is_array( $args['attributes'] ) ? $args['attributes'] : array();
446
+ $args['options'] = isset( $args['options'] ) && is_array( $args['options'] ) ? $args['options'] : array();
447
+
448
+ $args['options'] = 'group' == $args['type'] ? wp_parse_args( $args['options'], array(
449
+ 'add_button' => __( 'Add Group', 'cmb' ),
450
+ 'remove_button' => __( 'Remove Group', 'cmb' ),
451
+ ) ) : $args['options'];
452
+
453
+ $args['_id'] = $args['id'];
454
+ $args['_name'] = $args['id'];
455
+
456
+ if ( $this->group ) {
457
+ $args['id'] = $this->group->args( 'id' ) .'_'. $this->group->args( 'count' ) .'_'. $args['id'];
458
+ $args['_name'] = $this->group->args( 'id' ) .'['. $this->group->args( 'count' ) .']['. $args['_name'] .']';
459
+ }
460
+
461
+ if ( 'wysiwyg' == $args['type'] ) {
462
+ $args['id'] = strtolower( str_ireplace( array( '-', '_' ), 'zx', $args['id'] ) ) . 'wpeditor';
463
+ $args['options']['textarea_name'] = $args['_name'];
464
+ }
465
+
466
+ return $args;
467
+ }
468
+
469
+ /**
470
+ * Updates attributes array values unless they exist from the field config array
471
+ * @since 1.1.0
472
+ * @param array $attrs Array of attributes to update
473
+ */
474
+ public function maybe_set_attributes( $attrs = array() ) {
475
+ return wp_parse_args( $this->args['attributes'], $attrs );
476
+ }
477
+
478
+ }
includes/metabox/helpers/cmb_Meta_Box_types.php ADDED
@@ -0,0 +1,791 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * CMB field types
5
+ *
6
+ * @todo test taxonomy methods with non-post objects
7
+ * @todo test all methods with non-post objects
8
+ *
9
+ * @since 1.0.0
10
+ */
11
+ class cmb_Meta_Box_types {
12
+
13
+ /**
14
+ * An iterator value for repeatable fields
15
+ * @var integer
16
+ * @since 1.0.0
17
+ */
18
+ public $iterator = 0;
19
+
20
+ /**
21
+ * Current field
22
+ * @var array
23
+ * @since 1.0.0
24
+ */
25
+ public $field;
26
+
27
+ public function __construct( $field ) {
28
+ $this->field = $field;
29
+ }
30
+
31
+ /**
32
+ * Default fallback. Allows rendering fields via "cmb_render_$name" hook
33
+ * @since 1.0.0
34
+ * @param string $name Non-existent method name
35
+ * @param array $arguments All arguments passed to the method
36
+ */
37
+ public function __call( $name, $arguments ) {
38
+ // When a non-registered field is called, send it through an action.
39
+ do_action( "cmb_render_$name", $this->field->args(), $this->field->escaped_value(), $this->field->object_id, $this->field->object_type, $this );
40
+ }
41
+
42
+ /**
43
+ * Render a field (and handle repeatable)
44
+ * @since 1.1.0
45
+ */
46
+ public function render() {
47
+ if ( $this->field->args( 'repeatable' ) ) {
48
+ $this->render_repeatable_field();
49
+ } else {
50
+ $this->_render();
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Render a field type
56
+ * @since 1.1.0
57
+ */
58
+ protected function _render() {
59
+ echo $this->{$this->field->type()}();
60
+ }
61
+
62
+ /**
63
+ * Checks if we can get a post object, and if so, uses `get_the_terms` which utilizes caching
64
+ * @since 1.0.2
65
+ * @return mixed Array of terms on success
66
+ */
67
+ public function get_object_terms() {
68
+ $object_id = $this->field->object_id;
69
+ $taxonomy = $this->field->args( 'taxonomy' );
70
+
71
+ if ( ! $post = get_post( $object_id ) ) {
72
+
73
+ $cache_key = 'cmb-cache-'. $taxonomy .'-'. $object_id;
74
+
75
+ // Check cache
76
+ $cached = $test = get_transient( $cache_key );
77
+ if ( $cached )
78
+ return $cached;
79
+
80
+ $cached = wp_get_object_terms( $object_id, $taxonomy );
81
+ // Do our own (minimal) caching. Long enough for a page-load.
82
+ $set = set_transient( $cache_key, $cached, 60 );
83
+ return $cached;
84
+ }
85
+
86
+ // WP caches internally so it's better to use
87
+ return get_the_terms( $post, $taxonomy );
88
+
89
+ }
90
+
91
+ /**
92
+ * Determine a file's extension
93
+ * @since 1.0.0
94
+ * @param string $file File url
95
+ * @return string|false File extension or false
96
+ */
97
+ public function get_file_ext( $file ) {
98
+ $parsed = @parse_url( $file, PHP_URL_PATH );
99
+ return $parsed ? strtolower( pathinfo( $parsed, PATHINFO_EXTENSION ) ) : false;
100
+ }
101
+
102
+ /**
103
+ * Determines if a file has a valid image extension
104
+ * @since 1.0.0
105
+ * @param string $file File url
106
+ * @return bool Whether file has a valid image extension
107
+ */
108
+ public function is_valid_img_ext( $file ) {
109
+ $file_ext = $this->get_file_ext( $file );
110
+
111
+ $this->valid = empty( $this->valid )
112
+ ? (array) apply_filters( 'cmb_valid_img_types', array( 'jpg', 'jpeg', 'png', 'gif', 'ico', 'icon' ) )
113
+ : $this->valid;
114
+
115
+ return ( $file_ext && in_array( $file_ext, $this->valid ) );
116
+ }
117
+
118
+ /**
119
+ * Handles parsing and filtering attributes while preserving any passed in via field config.
120
+ * @since 1.1.0
121
+ * @param array $args Override arguments
122
+ * @param string $element Element for filter
123
+ * @param array $defaults Default arguments
124
+ * @return array Parsed and filtered arguments
125
+ */
126
+ public function parse_args( $args, $element, $defaults ) {
127
+ return wp_parse_args( apply_filters( "cmb_{$element}_attributes", $this->field->maybe_set_attributes( $args ), $this->field, $this ), $defaults );
128
+ }
129
+
130
+ /**
131
+ * Combines attributes into a string for a form element
132
+ * @since 1.1.0
133
+ * @param array $attrs Attributes to concatenate
134
+ * @param array $attr_exclude Attributes that should NOT be concatenated
135
+ * @return string String of attributes for form element
136
+ */
137
+ public function concat_attrs( $attrs, $attr_exclude = array() ) {
138
+ $attributes = '';
139
+ foreach ( $attrs as $attr => $val ) {
140
+ if ( ! in_array( $attr, (array) $attr_exclude, true ) )
141
+ $attributes .= sprintf( ' %s="%s"', $attr, $val );
142
+ }
143
+ return $attributes;
144
+ }
145
+
146
+ /**
147
+ * Generates html for an option element
148
+ * @since 1.1.0
149
+ * @param string $opt_label Option label
150
+ * @param string $opt_value Option value
151
+ * @param mixed $selected Selected attribute if option is selected
152
+ * @return string Generated option element html
153
+ */
154
+ public function option( $opt_label, $opt_value, $selected ) {
155
+ return sprintf( "\t".'<option value="%s" %s>%s</option>', $opt_value, selected( $selected, true, false ), $opt_label )."\n";
156
+ }
157
+
158
+ /**
159
+ * Generates options html
160
+ * @since 1.1.0
161
+ * @param array $args Optional arguments
162
+ * @param string $method Method to generate individual option item
163
+ * @return string Concatenated html options
164
+ */
165
+ public function concat_options( $args = array(), $method = 'list_input' ) {
166
+
167
+ $options = (array) $this->field->args( 'options' );
168
+ $saved_value = $this->field->escaped_value();
169
+ $value = $saved_value ? $saved_value : $this->field->args( 'default' );
170
+
171
+ $_options = ''; $i = 1;
172
+ foreach ( $options as $option_key => $option ) {
173
+
174
+ // Check for the "old" way
175
+ $opt_label = is_array( $option ) && array_key_exists( 'name', $option ) ? $option['name'] : $option;
176
+ $opt_value = is_array( $option ) && array_key_exists( 'value', $option ) ? $option['value'] : $option_key;
177
+ // Check if this option is the value of the input
178
+ $is_current = $value == $opt_value;
179
+
180
+ if ( ! empty( $args ) ) {
181
+ // Clone args & modify for just this item
182
+ $this_args = $args;
183
+ $this_args['value'] = $opt_value;
184
+ $this_args['label'] = $opt_label;
185
+ if ( $is_current )
186
+ $this_args['checked'] = 'checked';
187
+
188
+ $_options .= $this->$method( $this_args, $i );
189
+ } else {
190
+ $_options .= $this->option( $opt_label, $opt_value, $is_current );
191
+ }
192
+ $i++;
193
+ }
194
+ return $_options;
195
+ }
196
+
197
+ /**
198
+ * Generates html for list item with input
199
+ * @since 1.1.0
200
+ * @param array $args Override arguments
201
+ * @param int $i Iterator value
202
+ * @return string Gnerated list item html
203
+ */
204
+ public function list_input( $args = array(), $i ) {
205
+ $args = $this->parse_args( $args, 'list_input', array(
206
+ 'type' => 'radio',
207
+ 'class' => 'cmb_option',
208
+ 'name' => $this->_name(),
209
+ 'id' => $this->_id( $i ),
210
+ 'value' => $this->field->escaped_value(),
211
+ 'label' => '',
212
+ ) );
213
+
214
+ return sprintf( "\t".'<li><input%s/> <label for="%s">%s</label></li>'."\n", $this->concat_attrs( $args, 'label' ), $args['id'], $args['label'] );
215
+ }
216
+
217
+ /**
218
+ * Generates html for list item with checkbox input
219
+ * @since 1.1.0
220
+ * @param array $args Override arguments
221
+ * @param int $i Iterator value
222
+ * @return string Gnerated list item html
223
+ */
224
+ public function list_input_checkbox( $args, $i ) {
225
+ unset( $args['selected'] );
226
+ $saved_value = $this->field->escaped_value();
227
+ if ( is_array( $saved_value ) && in_array( $args['value'], $saved_value ) ) {
228
+ $args['checked'] = 'checked';
229
+ }
230
+ return $this->list_input( $args, $i );
231
+ }
232
+
233
+ /**
234
+ * Generates repeatable field table markup
235
+ * @since 1.0.0
236
+ */
237
+ public function render_repeatable_field() {
238
+ $table_id = $this->field->id() .'_repeat';
239
+
240
+ $this->_desc( true, true );
241
+ ?>
242
+
243
+ <table id="<?php echo $table_id; ?>" class="cmb-repeat-table">
244
+ <tbody>
245
+ <?php $this->repeatable_rows(); ?>
246
+ </tbody>
247
+ </table>
248
+ <p class="add-row">
249
+ <a data-selector="<?php echo $table_id; ?>" class="add-row-button button" href="#"><?php _e( 'Add Row', 'cmb' ); ?></a>
250
+ </p>
251
+
252
+ <?php
253
+ // reset iterator
254
+ $this->iterator = 0;
255
+ }
256
+
257
+ /**
258
+ * Generates repeatable field rows
259
+ * @since 1.1.0
260
+ */
261
+ public function repeatable_rows() {
262
+ $meta_value = $this->field->escaped_value();
263
+ // check for default content
264
+ $default = $this->field->args( 'default' );
265
+
266
+ // check for saved data
267
+ if ( ! empty( $meta_value ) ) {
268
+ $meta_value = is_array( $meta_value ) ? array_filter( $meta_value ) : $meta_value;
269
+ $meta_value = ! empty( $meta_value ) ? $meta_value : $default;
270
+ } else {
271
+ $meta_value = $default;
272
+ }
273
+
274
+ // Loop value array and add a row
275
+ if ( ! empty( $meta_value ) ) {
276
+ foreach ( (array) $meta_value as $val ) {
277
+ $this->field->escaped_value = $val;
278
+ $this->repeat_row();
279
+ $this->iterator++;
280
+ }
281
+ } else {
282
+ // Otherwise add one row
283
+ $this->repeat_row();
284
+ }
285
+
286
+ // Then add an empty row
287
+ $this->field->escaped_value = '';
288
+ $this->iterator = $this->iterator ? $this->iterator : 1;
289
+ $this->repeat_row( 'empty-row' );
290
+ }
291
+
292
+ /**
293
+ * Generates a repeatable row's markup
294
+ * @since 1.1.0
295
+ * @param string $class Repeatable table row's class
296
+ */
297
+ protected function repeat_row( $class = 'repeat-row' ) {
298
+ ?>
299
+
300
+ <tr class="<?php echo $class; ?>">
301
+ <td>
302
+ <?php $this->_render(); ?>
303
+ </td>
304
+ <td class="remove-row">
305
+ <a class="button remove-row-button" href="#"><?php _e( 'Remove', 'cmb' ); ?></a>
306
+ </td>
307
+ </tr>
308
+
309
+ <?php
310
+ }
311
+
312
+ /**
313
+ * Generates description markup
314
+ * @since 1.0.0
315
+ * @param boolean $paragraph Paragraph tag or span
316
+ * @param boolean $echo Whether to echo description or only return it
317
+ * @return string Field's description markup
318
+ */
319
+ public function _desc( $paragraph = false, $echo = false ) {
320
+ // Prevent description from printing multiple times for repeatable fields
321
+ if ( $this->field->args( 'repeatable' ) || $this->iterator > 0 ) {
322
+ return '';
323
+ }
324
+ $tag = $paragraph ? 'p' : 'span';
325
+ $desc = "\n<$tag class=\"cmb_metabox_description\">{$this->field->args( 'description' )}</$tag>\n";
326
+ if ( $echo )
327
+ echo $desc;
328
+ return $desc;
329
+ }
330
+
331
+ /**
332
+ * Generate field name attribute
333
+ * @since 1.1.0
334
+ * @param string $suffix For multi-part fields
335
+ * @return string Name attribute
336
+ */
337
+ public function _name( $suffix = '' ) {
338
+ return $this->field->args( '_name' ) . ( $this->field->args( 'repeatable' ) ? '['. $this->iterator .']' : '' ) . $suffix;
339
+ }
340
+
341
+ /**
342
+ * Generate field id attribute
343
+ * @since 1.1.0
344
+ * @param string $suffix For multi-part fields
345
+ * @return string Id attribute
346
+ */
347
+ public function _id( $suffix = '' ) {
348
+ return $this->field->id() . $suffix . ( $this->field->args( 'repeatable' ) ? '_'. $this->iterator .'" data-iterator="'. $this->iterator : '' );
349
+ }
350
+
351
+ /**
352
+ * Handles outputting an 'input' element
353
+ * @since 1.1.0
354
+ * @param array $args Override arguments
355
+ * @return string Form input element
356
+ */
357
+ public function input( $args = array() ) {
358
+ $args = $this->parse_args( $args, 'input', array(
359
+ 'type' => 'text',
360
+ 'class' => 'regular-text',
361
+ 'name' => $this->_name(),
362
+ 'id' => $this->_id(),
363
+ 'value' => $this->field->escaped_value(),
364
+ 'desc' => $this->_desc( true ),
365
+ ) );
366
+
367
+ return sprintf( '<input%s/>%s', $this->concat_attrs( $args, 'desc' ), $args['desc'] );
368
+ }
369
+
370
+ /**
371
+ * Handles outputting an 'textarea' element
372
+ * @since 1.1.0
373
+ * @param array $args Override arguments
374
+ * @return string Form textarea element
375
+ */
376
+ public function textarea( $args = array() ) {
377
+ $args = $this->parse_args( $args, 'textarea', array(
378
+ 'class' => 'cmb_textarea',
379
+ 'name' => $this->_name(),
380
+ 'id' => $this->_id(),
381
+ 'cols' => 60,
382
+ 'rows' => 10,
383
+ 'value' => $this->field->escaped_value( 'esc_textarea' ),
384
+ 'desc' => $this->_desc( true ),
385
+ ) );
386
+ return sprintf( '<textarea%s>%s</textarea>%s', $this->concat_attrs( $args, array( 'desc', 'value' ) ), $args['value'], $args['desc'] );
387
+ }
388
+
389
+ /**
390
+ * Begin Field Types
391
+ */
392
+
393
+ public function text() {
394
+ return $this->input();
395
+ }
396
+
397
+ public function text_small() {
398
+ return $this->input( array( 'class' => 'cmb_text_small', 'desc' => $this->_desc() ) );
399
+ }
400
+
401
+ public function text_medium() {
402
+ return $this->input( array( 'class' => 'cmb_text_medium', 'desc' => $this->_desc() ) );
403
+ }
404
+
405
+ public function text_email() {
406
+ return $this->input( array( 'class' => 'cmb_text_email cmb_text_medium', 'type' => 'email' ) );
407
+ }
408
+
409
+ public function text_url() {
410
+ return $this->input( array( 'class' => 'cmb_text_url cmb_text_medium regular-text', 'value' => $this->field->escaped_value( 'esc_url' ) ) );
411
+ }
412
+
413
+ public function text_date() {
414
+ return $this->input( array( 'class' => 'cmb_text_small cmb_datepicker', 'desc' => $this->_desc() ) );
415
+ }
416
+
417
+ public function text_time() {
418
+ return $this->input( array( 'class' => 'cmb_timepicker text_time', 'desc' => $this->_desc() ) );
419
+ }
420
+
421
+ public function text_money() {
422
+ return ( ! $this->field->args( 'before' ) ? '$ ' : ' ' ) . $this->input( array( 'class' => 'cmb_text_money', 'desc' => $this->_desc() ) );
423
+ }
424
+
425
+ public function textarea_small() {
426
+ return $this->textarea( array( 'class' => 'cmb_textarea_small', 'rows' => 4 ) );
427
+ }
428
+
429
+ public function textarea_code() {
430
+ return sprintf( '<pre>%s</pre>', $this->textarea( array( 'class' => 'cmb_textarea_code' ) ) );
431
+ }
432
+
433
+ public function wysiwyg( $args = array() ) {
434
+ extract( $this->parse_args( $args, 'input', array(
435
+ 'id' => $this->_id(),
436
+ 'value' => stripslashes( html_entity_decode( $this->field->escaped_value( 'esc_html' ) ) ),
437
+ 'desc' => $this->_desc( true ),
438
+ 'options' => $this->field->args( 'options' ),
439
+ ) ) );
440
+
441
+ wp_editor( $value, $id, $options );
442
+ echo $desc;
443
+ }
444
+
445
+ public function text_date_timestamp() {
446
+ $meta_value = $this->field->escaped_value();
447
+ $value = ! empty( $meta_value ) ? date( 'm\/d\/Y', $meta_value ) : '';
448
+ return $this->input( array( 'class' => 'cmb_text_small cmb_datepicker', 'value' => $value ) );
449
+ }
450
+
451
+ public function text_datetime_timestamp( $meta_value = '' ) {
452
+ $desc = '';
453
+ if ( ! $meta_value ) {
454
+ $meta_value = $this->field->escaped_value();
455
+ // This will be used if there is a select_timezone set for this field
456
+ $tz_offset = $this->field->field_timezone_offset();
457
+ if ( ! empty( $tz_offset ) ) {
458
+ $meta_value -= $tz_offset;
459
+ }
460
+ $desc = $this->_desc();
461
+ }
462
+
463
+ $inputs = array(
464
+ $this->input( array(
465
+ 'class' => 'cmb_text_small cmb_datepicker',
466
+ 'name' => $this->_name( '[date]' ),
467
+ 'id' => $this->_id( '_date' ),
468
+ 'value' => ! empty( $meta_value ) ? date( 'm\/d\/Y', $meta_value ) : '',
469
+ 'desc' => '',
470
+ ) ),
471
+ $this->input( array(
472
+ 'class' => 'cmb_timepicker text_time',
473
+ 'name' => $this->_name( '[time]' ),
474
+ 'id' => $this->_id( '_time' ),
475
+ 'value' => ! empty( $meta_value ) ? date( 'h:i A', $meta_value ) : '',
476
+ 'desc' => $desc,
477
+ ) )
478
+ );
479
+
480
+ return implode( "\n", $inputs );
481
+ }
482
+
483
+ public function text_datetime_timestamp_timezone() {
484
+ $meta_value = $this->field->escaped_value();
485
+ $datetime = unserialize( $meta_value );
486
+ $meta_value = $tzstring = false;
487
+
488
+ if ( $datetime && $datetime instanceof DateTime ) {
489
+ $tz = $datetime->getTimezone();
490
+ $tzstring = $tz->getName();
491
+ $meta_value = $datetime->getTimestamp() + $tz->getOffset( new DateTime( 'NOW' ) );
492
+ }
493
+
494
+ $inputs = $this->text_datetime_timestamp( $meta_value );
495
+ $inputs .= '<select name="'. $this->_name( '[timezone]' ) .'" id="'. $this->_id( '_timezone' ) .'">';
496
+ $inputs .= wp_timezone_choice( $tzstring );
497
+ $inputs .= '</select>'. $this->_desc();
498
+
499
+ return $inputs;
500
+ }
501
+
502
+ public function select_timezone() {
503
+ $this->field->args['default'] = $this->field->args( 'default' )
504
+ ? $this->field->args( 'default' )
505
+ : cmb_Meta_Box::timezone_string();
506
+
507
+ $meta_value = $this->field->escaped_value();
508
+
509
+ return '<select name="'. $this->_name() .'" id="'. $this->_id() .'">'. wp_timezone_choice( $meta_value ) .'</select>';
510
+ }
511
+
512
+ public function colorpicker() {
513
+ $meta_value = $this->field->escaped_value();
514
+ $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
515
+ if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) // Value is just 123abc, so prepend #.
516
+ $meta_value = '#' . $meta_value;
517
+ elseif ( ! preg_match( '/^#' . $hex_color . '/i', $meta_value ) ) // Value doesn't match #123abc, so sanitize to just #.
518
+ $meta_value = "#";
519
+
520
+ return $this->input( array( 'class' => 'cmb_colorpicker cmb_text_small', 'value' => $meta_value ) );
521
+ }
522
+
523
+ public function title() {
524
+ extract( $this->parse_args( array(), 'title', array(
525
+ 'tag' => $this->field->object_type == 'post' ? 'h5' : 'h3',
526
+ 'class' => 'cmb_metabox_title',
527
+ 'name' => $this->field->args( 'name' ),
528
+ 'desc' => $this->_desc( true ),
529
+ ) ) );
530
+
531
+ return sprintf( '<%1$s class="%2$s">%3$s</%1$s>%4$s', $tag, $class, $name, $desc );
532
+ }
533
+
534
+ public function select( $args = array() ) {
535
+ $args = $this->parse_args( $args, 'select', array(
536
+ 'class' => 'cmb_select',
537
+ 'name' => $this->_name(),
538
+ 'id' => $this->_id(),
539
+ 'desc' => $this->_desc( true ),
540
+ 'options' => $this->concat_options(),
541
+ ) );
542
+
543
+ $attrs = $this->concat_attrs( $args, array( 'desc', 'options' ) );
544
+ return sprintf( '<select%s>%s</select>%s', $attrs, $args['options'], $args['desc'] );
545
+ }
546
+
547
+ public function taxonomy_select() {
548
+
549
+ $names = $this->get_object_terms();
550
+ $saved_term = is_wp_error( $names ) || empty( $names ) ? $this->field->args( 'default' ) : $names[0]->slug;
551
+ $terms = get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0' );
552
+ $options = '';
553
+
554
+ foreach ( $terms as $term ) {
555
+ $selected = $saved_term == $term->slug;
556
+ $options .= $this->option( $term->name, $term->slug, $selected );
557
+ }
558
+
559
+ return $this->select( array( 'options' => $options ) );
560
+ }
561
+
562
+ public function radio( $args = array(), $type = 'radio' ) {
563
+ extract( $this->parse_args( $args, $type, array(
564
+ 'class' => 'cmb_radio_list cmb_list',
565
+ 'options' => $this->concat_options( array( 'label' => 'test' ) ),
566
+ 'desc' => $this->_desc( true ),
567
+ ) ) );
568
+
569
+ return sprintf( '<ul class="%s">%s</ul>%s', $class, $options, $desc );
570
+ }
571
+
572
+ public function radio_inline() {
573
+ return $this->radio( array(), 'radio_inline' );
574
+ }
575
+
576
+ public function multicheck( $type = 'checkbox' ) {
577
+ return $this->radio( array( 'class' => 'cmb_checkbox_list cmb_list', 'options' => $this->concat_options( array( 'type' => 'checkbox', 'name' => $this->_name() .'[]' ), 'list_input_checkbox' ) ), $type );
578
+ }
579
+
580
+ public function multicheck_inline() {
581
+ $this->multicheck( 'multicheck_inline' );
582
+ }
583
+
584
+ public function checkbox() {
585
+ $meta_value = $this->field->escaped_value();
586
+ $args = array( 'type' => 'checkbox', 'class' => 'cmb_option cmb_list', 'value' => 'on', 'desc' => '' );
587
+ if ( ! empty( $meta_value ) ) {
588
+ $args['checked'] = 'checked';
589
+ }
590
+ return sprintf( '%s <label for="%s">%s</label>', $this->input( $args ), $this->_id(), $this->_desc() );
591
+ }
592
+
593
+ public function taxonomy_radio() {
594
+ $names = $this->get_object_terms();
595
+ $saved_term = is_wp_error( $names ) || empty( $names ) ? $this->field->args( 'default' ) : $names[0]->slug;
596
+ $terms = get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0' );
597
+ $options = ''; $i = 1;
598
+
599
+ if ( ! $terms ) {
600
+ $options .= '<li><label>'. __( 'No terms', 'cmb' ) .'</label></li>';
601
+ } else {
602
+ foreach ( $terms as $term ) {
603
+ $args = array(
604
+ 'value' => $term->slug,
605
+ 'label' => $term->name,
606
+ );
607
+
608
+ if ( $saved_term == $term->slug ) {
609
+ $args['checked'] = 'checked';
610
+ }
611
+ $options .= $this->list_input( $args, $i );
612
+ $i++;
613
+ }
614
+ }
615
+
616
+ return $this->radio( array( 'options' => $options ), 'taxonomy_radio' );
617
+ }
618
+
619
+ public function taxonomy_radio_inline() {
620
+ $this->taxonomy_radio();
621
+ }
622
+
623
+ public function taxonomy_multicheck() {
624
+
625
+ $names = $this->get_object_terms();
626
+ $saved_terms = is_wp_error( $names ) || empty( $names )
627
+ ? $this->field->args( 'default' )
628
+ : wp_list_pluck( $names, 'slug' );
629
+ $terms = get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0' );
630
+ $name = $this->_name() .'[]';
631
+ $options = ''; $i = 1;
632
+
633
+ if ( ! $terms ) {
634
+ $options .= '<li><label>'. __( 'No terms', 'cmb' ) .'</label></li>';
635
+ } else {
636
+
637
+ foreach ( $terms as $term ) {
638
+ $args = array(
639
+ 'value' => $term->slug,
640
+ 'label' => $term->name,
641
+ 'type' => 'checkbox',
642
+ 'name' => $name,
643
+ );
644
+
645
+ if ( in_array( $term->slug, $saved_terms ) ) {
646
+ $args['checked'] = 'checked';
647
+ }
648
+ $options .= $this->list_input( $args, $i );
649
+ $i++;
650
+ }
651
+ }
652
+
653
+ return $this->radio( array( 'class' => 'cmb_checkbox_list cmb_list', 'options' => $options ), 'taxonomy_multicheck' );
654
+ }
655
+
656
+ public function taxonomy_multicheck_inline() {
657
+ $this->taxonomy_multicheck();
658
+ }
659
+
660
+ public function file_list() {
661
+ $meta_value = $this->field->escaped_value();
662
+
663
+ $name = $this->_name();
664
+
665
+ echo $this->input( array(
666
+ 'type' => 'hidden',
667
+ 'class' => 'cmb_upload_file cmb_upload_list',
668
+ 'size' => 45, 'desc' => '', 'value' => '',
669
+ ) ),
670
+ $this->input( array(
671
+ 'type' => 'button',
672
+ 'class' => 'cmb_upload_button button cmb_upload_list',
673
+ 'value' => __( 'Add or Upload File', 'cmb' ),
674
+ 'name' => '', 'id' => '',
675
+ ) );
676
+
677
+ echo '<ul id="', $this->_id( '_status' ) ,'" class="cmb_media_status attach_list">';
678
+
679
+ if ( $meta_value && is_array( $meta_value ) ) {
680
+
681
+ foreach ( $meta_value as $id => $fullurl ) {
682
+ $id_input = $this->input( array(
683
+ 'type' => 'hidden',
684
+ 'value' => $fullurl,
685
+ 'name' => $name .'['. $id .']',
686
+ 'id' => 'filelist-'. $id,
687
+ 'desc' => '', 'class' => '',
688
+ ) );
689
+
690
+ if ( $this->is_valid_img_ext( $fullurl ) ) {
691
+ echo
692
+ '<li class="img_status">',
693
+ wp_get_attachment_image( $id, $this->field->args( 'preview_size' ) ),
694
+ '<p class="cmb_remove_wrapper"><a href="#" class="cmb_remove_file_button">'. __( 'Remove Image', 'cmb' ) .'</a></p>
695
+ '. $id_input .'
696
+ </li>';
697
+
698
+ } else {
699
+ $parts = explode( '/', $fullurl );
700
+ for ( $i = 0; $i < count( $parts ); ++$i ) {
701
+ $title = $parts[$i];
702
+ }
703
+ echo
704
+ '<li>',
705
+ __( 'File:', 'cmb' ), ' <strong>', $title, '</strong>&nbsp;&nbsp;&nbsp; (<a href="', $fullurl, '" target="_blank" rel="external">'. __( 'Download', 'cmb' ) .'</a> / <a href="#" class="cmb_remove_file_button">'. __( 'Remove', 'cmb' ) .'</a>)
706
+ '. $id_input .'
707
+ </li>';
708
+ }
709
+ }
710
+ }
711
+
712
+ echo '</ul>';
713
+ }
714
+
715
+ public function file() {
716
+ $meta_value = $this->field->escaped_value();
717
+ $allow = $this->field->args( 'allow' );
718
+ $input_type = ( 'url' == $allow || ( is_array( $allow ) && in_array( 'url', $allow ) ) )
719
+ ? 'text' : 'hidden';
720
+
721
+ echo $this->input( array(
722
+ 'type' => $input_type,
723
+ 'class' => 'cmb_upload_file',
724
+ 'size' => 45,
725
+ 'desc' => '',
726
+ ) ),
727
+ '<input class="cmb_upload_button button" type="button" value="'. __( 'Add or Upload File', 'cmb' ) .'" />';
728
+
729
+ // Reset field args for attachment ID
730
+ $args = $this->field->args();
731
+ $args['id'] = $args['_id'] . '_id';
732
+ unset( $args['_id'], $args['_name'] );
733
+
734
+ // And get new field object
735
+ $this->field = new cmb_Meta_Box_field( $args, $this->field->group );
736
+
737
+ // Get ID value
738
+ $_id_value = $this->field->escaped_value( 'absint' );
739
+
740
+ // If there is no ID saved yet, try to get it from the url
741
+ if ( $meta_value && ! $_id_value ) {
742
+ $_id_value = cmb_Meta_Box::image_id_from_url( esc_url_raw( $meta_value ) );
743
+ }
744
+
745
+ echo $this->input( array(
746
+ 'type' => 'hidden',
747
+ 'class' => 'cmb_upload_file_id',
748
+ 'value' => $_id_value,
749
+ 'desc' => '',
750
+ ) ),
751
+ '<div id="', $this->_id( '_status' ) ,'" class="cmb_media_status">';
752
+ if ( ! empty( $meta_value ) ) {
753
+
754
+ if ( $this->is_valid_img_ext( $meta_value ) ) {
755
+ echo '<div class="img_status">';
756
+ echo '<img style="max-width: 350px; width: 100%; height: auto;" src="', $meta_value, '" alt="" />';
757
+ echo '<p class="cmb_remove_wrapper"><a href="#" class="cmb_remove_file_button" rel="', $this->field->id(), '">'. __( 'Remove Image', 'cmb' ) .'</a></p>';
758
+ echo '</div>';
759
+ } else {
760
+ // $file_ext = $this->get_file_ext( $meta_value );
761
+ $parts = explode( '/', $meta_value );
762
+ for ( $i = 0; $i < count( $parts ); ++$i ) {
763
+ $title = $parts[$i];
764
+ }
765
+ echo __( 'File:', 'cmb' ), ' <strong>', $title, '</strong>&nbsp;&nbsp;&nbsp; (<a href="', $meta_value, '" target="_blank" rel="external">'. __( 'Download', 'cmb' ) .'</a> / <a href="#" class="cmb_remove_file_button" rel="', $this->field->id(), '">'. __( 'Remove', 'cmb' ) .'</a>)';
766
+ }
767
+ }
768
+ echo '</div>';
769
+ }
770
+
771
+ public function oembed() {
772
+ echo $this->input( array(
773
+ 'class' => 'cmb_oembed regular-text',
774
+ 'data-objectid' => $this->field->object_id,
775
+ 'data-objecttype' => $this->field->object_type
776
+ ) ),
777
+ '<p class="cmb-spinner spinner" style="display:none;"><img src="'. admin_url( '/images/wpspin_light.gif' ) .'" alt="spinner"/></p>',
778
+ '<div id="',$this->_id( '_status' ) ,'" class="cmb_media_status ui-helper-clearfix embed_wrap">';
779
+
780
+ if ( $meta_value = $this->field->escaped_value() ) {
781
+ echo cmb_Meta_Box_ajax::get_oembed( $meta_value, $this->field->object_id, array(
782
+ 'object_type' => $this->field->object_type,
783
+ 'oembed_args' => array( 'width' => '640' ),
784
+ 'field_id' => $this->_id(),
785
+ ) );
786
+ }
787
+
788
+ echo '</div>';
789
+ }
790
+
791
+ }
includes/metabox/images/ico-delete.png ADDED
Binary file
includes/metabox/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
includes/metabox/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
includes/metabox/images/ui-bg_glass_55_fbf9ee_1x400.png ADDED
Binary file
includes/metabox/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
includes/metabox/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
includes/metabox/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
includes/metabox/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
includes/metabox/images/ui-bg_highlight-soft_75_cccccc_1x100.png ADDED
Binary file
includes/metabox/images/ui-icons_222222_256x240.png ADDED
Binary file
includes/metabox/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
includes/metabox/images/ui-icons_454545_256x240.png ADDED
Binary file
includes/metabox/images/ui-icons_888888_256x240.png ADDED
Binary file
includes/metabox/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
includes/metabox/init.php ADDED
@@ -0,0 +1,1164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Script Name: Custom Metaboxes and Fields
4
+ Contributors: WebDevStudios (@webdevstudios / webdevstudios.com)
5
+ Justin Sternberg (@jtsternberg / dsgnwrks.pro)
6
+ Jared Atchison (@jaredatch / jaredatchison.com)
7
+ Bill Erickson (@billerickson / billerickson.net)
8
+ Andrew Norcross (@norcross / andrewnorcross.com)
9
+ Description: This will create metaboxes with custom fields that will blow your mind.
10
+ Version: 1.1.3
11
+ */
12
+
13
+ /**
14
+ * Released under the GPL license
15
+ * http://www.opensource.org/licenses/gpl-license.php
16
+ *
17
+ * This is an add-on for WordPress
18
+ * http://wordpress.org/
19
+ *
20
+ * **********************************************************************
21
+ * This program is free software; you can redistribute it and/or modify
22
+ * it under the terms of the GNU General Public License as published by
23
+ * the Free Software Foundation; either version 2 of the License, or
24
+ * (at your option) any later version.
25
+ *
26
+ * This program is distributed in the hope that it will be useful,
27
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
+ * GNU General Public License for more details.
30
+ * **********************************************************************
31
+ */
32
+
33
+ /************************************************************************
34
+ You should not edit the code below or things might explode!
35
+ *************************************************************************/
36
+
37
+ // Autoload helper classes
38
+ spl_autoload_register('cmb_Meta_Box::autoload_helpers');
39
+
40
+ $meta_boxes = array();
41
+ $meta_boxes = apply_filters( 'cmb_meta_boxes', $meta_boxes );
42
+ foreach ( $meta_boxes as $meta_box ) {
43
+ $my_box = new cmb_Meta_Box( $meta_box );
44
+ }
45
+
46
+ define( 'CMB_META_BOX_URL', cmb_Meta_Box::get_meta_box_url() );
47
+
48
+ /**
49
+ * Create meta boxes
50
+ */
51
+ class cmb_Meta_Box {
52
+
53
+ /**
54
+ * Current version number
55
+ * @var string
56
+ * @since 1.0.0
57
+ */
58
+ const CMB_VERSION = '1.1.3';
59
+
60
+ /**
61
+ * Metabox Config array
62
+ * @var array
63
+ * @since 0.9.0
64
+ */
65
+ protected $_meta_box;
66
+
67
+ /**
68
+ * Metabox Defaults
69
+ * @var array
70
+ * @since 1.0.1
71
+ */
72
+ protected static $mb_defaults = array(
73
+ 'id' => '',
74
+ 'title' => '',
75
+ 'type' => '',
76
+ 'pages' => array(), // Post type
77
+ 'context' => 'normal',
78
+ 'priority' => 'high',
79
+ 'show_names' => true, // Show field names on the left
80
+ 'show_on' => array( 'key' => false, 'value' => false ), // Specific post IDs or page templates to display this metabox
81
+ 'cmb_styles' => true, // Include cmb bundled stylesheet
82
+ 'fields' => array(),
83
+ );
84
+
85
+ /**
86
+ * Metabox Form ID
87
+ * @var string
88
+ * @since 0.9.4
89
+ */
90
+ protected $form_id = 'post';
91
+
92
+ /**
93
+ * Current field config array
94
+ * @var array
95
+ * @since 1.0.0
96
+ */
97
+ public static $field = array();
98
+
99
+ /**
100
+ * Object ID for metabox meta retrieving/saving
101
+ * @var int
102
+ * @since 1.0.0
103
+ */
104
+ protected static $object_id = 0;
105
+
106
+ /**
107
+ * Type of object being saved. (e.g., post, user, or comment)
108
+ * @var string
109
+ * @since 1.0.0
110
+ */
111
+ protected static $object_type = '';
112
+
113
+ /**
114
+ * Whether scripts/styles have been enqueued yet
115
+ * @var bool
116
+ * @since 1.0.0
117
+ */
118
+ protected static $is_enqueued = false;
119
+
120
+ /**
121
+ * Type of object specified by the metabox Config
122
+ * @var string
123
+ * @since 1.0.0
124
+ */
125
+ protected static $mb_object_type = 'post';
126
+
127
+ /**
128
+ * Array of all options from manage-options metaboxes
129
+ * @var array
130
+ * @since 1.0.0
131
+ */
132
+ protected static $options = array();
133
+
134
+ /**
135
+ * List of fields that are changed/updated on save
136
+ * @var array
137
+ * @since 1.1.0
138
+ */
139
+ protected static $updated = array();
140
+
141
+ /**
142
+ * Get started
143
+ */
144
+ function __construct( $meta_box ) {
145
+
146
+ $meta_box = self::set_mb_defaults( $meta_box );
147
+
148
+ $allow_frontend = apply_filters( 'cmb_allow_frontend', true, $meta_box );
149
+
150
+ if ( ! is_admin() && ! $allow_frontend )
151
+ return;
152
+
153
+ $this->_meta_box = $meta_box;
154
+
155
+ self::set_mb_type( $meta_box );
156
+
157
+ $types = wp_list_pluck( $meta_box['fields'], 'type' );
158
+ $upload = in_array( 'file', $types ) || in_array( 'file_list', $types );
159
+
160
+ global $pagenow;
161
+
162
+ $show_filters = 'cmb_Meta_Box_Show_Filters';
163
+ foreach ( get_class_methods( $show_filters ) as $filter ) {
164
+ add_filter( 'cmb_show_on', array( $show_filters, $filter ), 10, 2 );
165
+ }
166
+
167
+ // register our scripts and styles for cmb
168
+ add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ), 8 );
169
+
170
+ if ( self::get_object_type() == 'post' ) {
171
+ add_action( 'admin_menu', array( $this, 'add_metaboxes' ) );
172
+ add_action( 'add_attachment', array( $this, 'save_post' ) );
173
+ add_action( 'edit_attachment', array( $this, 'save_post' ) );
174
+ add_action( 'save_post', array( $this, 'save_post' ), 10, 2 );
175
+ add_action( 'admin_enqueue_scripts', array( $this, 'do_scripts' ) );
176
+
177
+ if ( $upload && in_array( $pagenow, array( 'page.php', 'page-new.php', 'post.php', 'post-new.php' ) ) ) {
178
+ add_action( 'admin_head', array( $this, 'add_post_enctype' ) );
179
+ }
180
+
181
+ }
182
+ if ( self::get_object_type() == 'user' ) {
183
+
184
+ $priority = 10;
185
+ if ( isset( $meta_box['priority'] ) ) {
186
+ if ( is_numeric( $meta_box['priority'] ) )
187
+ $priority = $meta_box['priority'];
188
+ elseif ( $meta_box['priority'] == 'high' )
189
+ $priority = 5;
190
+ elseif ( $meta_box['priority'] == 'low' )
191
+ $priority = 20;
192
+ }
193
+ add_action( 'show_user_profile', array( $this, 'user_metabox' ), $priority );
194
+ add_action( 'edit_user_profile', array( $this, 'user_metabox' ), $priority );
195
+
196
+ add_action( 'personal_options_update', array( $this, 'save_user' ) );
197
+ add_action( 'edit_user_profile_update', array( $this, 'save_user' ) );
198
+ if ( $upload && in_array( $pagenow, array( 'profile.php', 'user-edit.php' ) ) ) {
199
+ $this->form_id = 'your-profile';
200
+ add_action( 'admin_head', array( $this, 'add_post_enctype' ) );
201
+ }
202
+ }
203
+
204
+ }
205
+
206
+ /**
207
+ * Autoloads files with classes when needed
208
+ * @since 1.0.0
209
+ * @param string $class_name Name of the class being requested
210
+ */
211
+ public static function autoload_helpers( $class_name ) {
212
+ if ( class_exists( $class_name, false ) )
213
+ return;
214
+
215
+ // for PHP versions < 5.3
216
+ $dir = dirname( __FILE__ );
217
+
218
+ $file = "$dir/helpers/$class_name.php";
219
+ if ( file_exists( $file ) )
220
+ @include( $file );
221
+ }
222
+
223
+ /**
224
+ * Registers scripts and styles for CMB
225
+ * @since 1.0.0
226
+ */
227
+ public function register_scripts() {
228
+
229
+ // Should only be run once
230
+ if ( self::$is_enqueued )
231
+ return;
232
+
233
+ global $wp_version;
234
+ // Only use minified files if SCRIPT_DEBUG is off
235
+ $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
236
+
237
+ // scripts required for cmb
238
+ $scripts = array( 'jquery', 'jquery-ui-core', 'cmb-datepicker', /*'media-upload', */'cmb-timepicker' );
239
+ // styles required for cmb
240
+ $styles = array();
241
+
242
+ // if we're 3.5 or later, user wp-color-picker
243
+ if ( 3.5 <= $wp_version ) {
244
+ $scripts[] = 'wp-color-picker';
245
+ $styles[] = 'wp-color-picker';
246
+ if ( ! is_admin() ) {
247
+ // we need to register colorpicker on the front-end
248
+ wp_register_script( 'iris', admin_url( 'js/iris.min.js' ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), self::CMB_VERSION );
249
+ wp_register_script( 'wp-color-picker', admin_url( 'js/color-picker.min.js' ), array( 'iris' ), self::CMB_VERSION );
250
+ wp_localize_script( 'wp-color-picker', 'wpColorPickerL10n', array(
251
+ 'clear' => __( 'Clear' ),
252
+ 'defaultString' => __( 'Default' ),
253
+ 'pick' => __( 'Select Color' ),
254
+ 'current' => __( 'Current Color' ),
255
+ ) );
256
+ }
257
+ } else {
258
+ // otherwise use the older 'farbtastic'
259
+ $scripts[] = 'farbtastic';
260
+ $styles[] = 'farbtastic';
261
+ }
262
+ wp_register_script( 'cmb-datepicker', CMB_META_BOX_URL . 'js/jquery.datePicker.min.js' );
263
+ wp_register_script( 'cmb-timepicker', CMB_META_BOX_URL . 'js/jquery.timePicker.min.js' );
264
+ wp_register_script( 'cmb-scripts', CMB_META_BOX_URL .'js/cmb'. $min .'.js', $scripts, self::CMB_VERSION );
265
+
266
+ wp_enqueue_media();
267
+
268
+ wp_localize_script( 'cmb-scripts', 'cmb_l10', apply_filters( 'cmb_localized_data', array(
269
+ 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
270
+ 'script_debug' => defined('SCRIPT_DEBUG') && SCRIPT_DEBUG,
271
+ 'new_admin_style' => version_compare( $wp_version, '3.7', '>' ),
272
+ 'object_type' => self::get_object_type(),
273
+ 'upload_file' => 'Use this file',
274
+ 'remove_image' => 'Remove Image',
275
+ 'remove_file' => 'Remove',
276
+ 'file' => 'File:',
277
+ 'download' => 'Download',
278
+ 'ajaxurl' => admin_url( '/admin-ajax.php' ),
279
+ 'up_arrow' => '[ ↑ ]&nbsp;',
280
+ 'down_arrow' => '&nbsp;[ ↓ ]',
281
+ ) ) );
282
+
283
+ wp_register_style( 'cmb-styles', CMB_META_BOX_URL . 'style'. $min .'.css', $styles );
284
+
285
+ // Ok, we've enqueued our scripts/styles
286
+ self::$is_enqueued = true;
287
+ }
288
+
289
+ /**
290
+ * Enqueues scripts and styles for CMB
291
+ * @since 1.0.0
292
+ */
293
+ public function do_scripts( $hook ) {
294
+ // only enqueue our scripts/styles on the proper pages
295
+ if ( $hook == 'post.php' || $hook == 'post-new.php' || $hook == 'page-new.php' || $hook == 'page.php' ) {
296
+ wp_enqueue_script( 'cmb-scripts' );
297
+
298
+ // default is to show cmb styles on post pages
299
+ if ( $this->_meta_box['cmb_styles'] )
300
+ wp_enqueue_style( 'cmb-styles' );
301
+ }
302
+ }
303
+
304
+ /**
305
+ * Add encoding attribute
306
+ */
307
+ public function add_post_enctype() {
308
+ echo '
309
+ <script type="text/javascript">
310
+ jQuery(document).ready(function(){
311
+ jQuery("#'. $this->form_id .'").attr("enctype", "multipart/form-data");
312
+ jQuery("#'. $this->form_id .'").attr("encoding", "multipart/form-data");
313
+ });
314
+ </script>';
315
+ }
316
+
317
+ /**
318
+ * Add metaboxes (to 'post' object type)
319
+ */
320
+ public function add_metaboxes() {
321
+
322
+ foreach ( $this->_meta_box['pages'] as $page ) {
323
+ if ( apply_filters( 'cmb_show_on', true, $this->_meta_box ) )
324
+ add_meta_box( $this->_meta_box['id'], $this->_meta_box['title'], array( $this, 'post_metabox' ), $page, $this->_meta_box['context'], $this->_meta_box['priority']) ;
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Display metaboxes for a post object
330
+ * @since 1.0.0
331
+ */
332
+ public function post_metabox() {
333
+ if ( ! $this->_meta_box )
334
+ return;
335
+
336
+ self::show_form( $this->_meta_box, get_the_ID(), 'post' );
337
+
338
+ }
339
+
340
+ /**
341
+ * Display metaboxes for a user object
342
+ * @since 1.0.0
343
+ */
344
+ public function user_metabox() {
345
+ if ( ! $this->_meta_box )
346
+ return;
347
+
348
+ if ( 'user' != self::set_mb_type( $this->_meta_box ) )
349
+ return;
350
+
351
+ if ( ! apply_filters( 'cmb_show_on', true, $this->_meta_box ) )
352
+ return;
353
+
354
+ wp_enqueue_script( 'cmb-scripts' );
355
+
356
+ // default is to NOT show cmb styles on user profile page
357
+ if ( $this->_meta_box['cmb_styles'] != false )
358
+ wp_enqueue_style( 'cmb-styles' );
359
+
360
+ self::show_form( $this->_meta_box );
361
+
362
+ }
363
+
364
+ /**
365
+ * Loops through and displays fields
366
+ * @since 1.0.0
367
+ * @param array $meta_box Metabox config array
368
+ * @param int $object_id Object ID
369
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment)
370
+ */
371
+ public static function show_form( $meta_box, $object_id = 0, $object_type = '' ) {
372
+ $meta_box = self::set_mb_defaults( $meta_box );
373
+ // Set/get type
374
+ $object_type = self::set_object_type( $object_type ? $object_type : self::set_mb_type( $meta_box ) );
375
+ // Set/get ID
376
+ $object_id = self::set_object_id( $object_id ? $object_id : self::get_object_id() );
377
+
378
+ // Use nonce for verification
379
+ echo "\n<!-- Begin CMB Fields -->\n";
380
+ wp_nonce_field( self::nonce(), 'wp_meta_box_nonce', false, true );
381
+ do_action( 'cmb_before_table', $meta_box, $object_id, $object_type );
382
+ echo '<table class="form-table cmb_metabox">';
383
+
384
+ foreach ( $meta_box['fields'] as $field_args ) {
385
+
386
+ $field_args['context'] = $meta_box['context'];
387
+
388
+ if ( 'group' == $field_args['type'] ) {
389
+
390
+ if ( ! isset( $field_args['show_names'] ) ) {
391
+ $field_args['show_names'] = $meta_box['show_names'];
392
+ }
393
+ self::render_group( $field_args );
394
+ } else {
395
+
396
+ $field_args['show_names'] = $meta_box['show_names'];
397
+ // Render default fields
398
+ $field = new cmb_Meta_Box_field( $field_args );
399
+ $field->render_field();
400
+ }
401
+ }
402
+ echo '</table>';
403
+ do_action( 'cmb_after_table', $meta_box, $object_id, $object_type );
404
+ echo "\n<!-- End CMB Fields -->\n";
405
+
406
+ }
407
+
408
+ /**
409
+ * Render a repeatable group
410
+ */
411
+ public static function render_group( $args ) {
412
+ if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) )
413
+ return;
414
+
415
+ $args['count'] = 0;
416
+ $field_group = new cmb_Meta_Box_field( $args );
417
+ $desc = $field_group->args( 'description' );
418
+ $label = $field_group->args( 'name' );
419
+ $sortable = $field_group->options( 'sortable' ) ? ' sortable' : '';
420
+ $group_val = (array) $field_group->value();
421
+ $nrows = count( $group_val );
422
+ $remove_disabled = $nrows <= 1 ? 'disabled="disabled" ' : '';
423
+
424
+ echo '<tr><td colspan="2"><table id="', $field_group->id(), '_repeat" class="repeatable-group'. $sortable .'" style="width:100%;">';
425
+ if ( $desc || $label ) {
426
+ echo '<tr><th>';
427
+ if ( $label )
428
+ echo '<h2 class="cmb-group-name">'. $label .'</h2>';
429
+ if ( $desc )
430
+ echo '<p class="cmb_metabox_description">'. $desc .'</p>';
431
+ echo '</th></tr>';
432
+ }
433
+
434
+ if ( ! empty( $group_val ) ) {
435
+
436
+ foreach ( $group_val as $iterator => $field_id ) {
437
+ self::render_group_row( $field_group, $remove_disabled );
438
+ }
439
+ } else {
440
+ self::render_group_row( $field_group, $remove_disabled );
441
+ }
442
+
443
+ echo '<tr><td><p class="add-row"><button data-selector="', $field_group->id() ,'_repeat" class="add-group-row button">'. $field_group->options( 'add_button' ) .'</button></p></td></tr>';
444
+
445
+ echo '</table></td></tr>';
446
+
447
+ }
448
+
449
+ public static function render_group_row( $field_group, $remove_disabled ) {
450
+
451
+ echo '
452
+ <tr class="repeatable-grouping" data-iterator="'. $field_group->count() .'">
453
+ <td>
454
+ <table class="cmb-nested-table" style="width: 100%;">';
455
+ // Render repeatable group fields
456
+ foreach ( array_values( $field_group->args( 'fields' ) ) as $field_args ) {
457
+ $field_args['show_names'] = $field_group->args( 'show_names' );
458
+ $field_args['context'] = $field_group->args( 'context' );
459
+ $field = new cmb_Meta_Box_field( $field_args, $field_group );
460
+ $field->render_field();
461
+ }
462
+ echo '
463
+ <tr>
464
+ <td class="remove-row" colspan="2">
465
+ <button '. $remove_disabled .'data-selector="'. $field_group->id() .'_repeat" class="button remove-group-row alignright">'. $field_group->options( 'remove_button' ) .'</button>
466
+ </td>
467
+ </tr>
468
+ </table>
469
+ </td>
470
+ </tr>
471
+ ';
472
+
473
+ $field_group->args['count']++;
474
+ }
475
+
476
+ /**
477
+ * Save data from metabox
478
+ */
479
+ public function save_post( $post_id, $post = false ) {
480
+
481
+ $post_type = $post ? $post->post_type : get_post_type( $post_id );
482
+
483
+ // check permissions
484
+ if (
485
+ // check nonce
486
+ ! isset( $_POST['wp_meta_box_nonce'] )
487
+ || ! wp_verify_nonce( $_POST['wp_meta_box_nonce'], self::nonce() )
488
+ // check if autosave
489
+ || defined('DOING_AUTOSAVE' ) && DOING_AUTOSAVE
490
+ // check user editing permissions
491
+ || ( 'page' == $_POST['post_type'] && ! current_user_can( 'edit_page', $post_id ) )
492
+ || ! current_user_can( 'edit_post', $post_id )
493
+ // get the metabox post_types & compare it to this post_type
494
+ || ! in_array( $post_type, $this->_meta_box['pages'] )
495
+ )
496
+ return $post_id;
497
+
498
+ self::save_fields( $this->_meta_box, $post_id, 'post' );
499
+ }
500
+
501
+ /**
502
+ * Save data from metabox
503
+ */
504
+ public function save_user( $user_id ) {
505
+
506
+ // check permissions
507
+ // @todo more hardening?
508
+ if (
509
+ // check nonce
510
+ ! isset( $_POST['wp_meta_box_nonce'] )
511
+ || ! wp_verify_nonce( $_POST['wp_meta_box_nonce'], self::nonce() )
512
+ )
513
+ return $user_id;
514
+
515
+ self::save_fields( $this->_meta_box, $user_id, 'user' );
516
+ }
517
+
518
+ /**
519
+ * Loops through and saves field data
520
+ * @since 1.0.0
521
+ * @param array $meta_box Metabox config array
522
+ * @param int $object_id Object ID
523
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment)
524
+ */
525
+ public static function save_fields( $meta_box, $object_id, $object_type = '' ) {
526
+ $meta_box = self::set_mb_defaults( $meta_box );
527
+
528
+ $meta_box['show_on'] = empty( $meta_box['show_on'] ) ? array( 'key' => false, 'value' => false ) : $meta_box['show_on'];
529
+
530
+ self::set_object_id( $object_id );
531
+ // Set/get type
532
+ $object_type = self::set_object_type( $object_type ? $object_type : self::set_mb_type( $meta_box ) );
533
+
534
+ if ( ! apply_filters( 'cmb_show_on', true, $meta_box ) )
535
+ return;
536
+
537
+ // save field ids of those that are updated
538
+ self::$updated = array();
539
+
540
+ foreach ( $meta_box['fields'] as $field_args ) {
541
+
542
+ if ( 'group' == $field_args['type'] ) {
543
+ self::save_group( $field_args );
544
+ } else {
545
+ // Save default fields
546
+ $field = new cmb_Meta_Box_field( $field_args );
547
+ self::save_field( self::sanitize_field( $field ), $field );
548
+ }
549
+
550
+ }
551
+
552
+ // If options page, save the updated options
553
+ if ( $object_type == 'options-page' )
554
+ self::save_option( $object_id );
555
+
556
+ do_action( "cmb_save_{$object_type}_fields", $object_id, $meta_box['id'], self::$updated, $meta_box );
557
+
558
+ }
559
+
560
+ /**
561
+ * Save a repeatable group
562
+ */
563
+ public static function save_group( $args ) {
564
+ if ( ! isset( $args['id'], $args['fields'], $_POST[ $args['id'] ] ) || ! is_array( $args['fields'] ) )
565
+ return;
566
+
567
+ $field_group = new cmb_Meta_Box_field( $args );
568
+ $base_id = $field_group->id();
569
+ $old = $field_group->get_data();
570
+ $group_vals = $_POST[ $base_id ];
571
+ $saved = array();
572
+ $is_updated = false;
573
+ $field_group->index = 0;
574
+
575
+ // $group_vals[0]['color'] = '333';
576
+ foreach ( array_values( $field_group->fields() ) as $field_args ) {
577
+ $field = new cmb_Meta_Box_field( $field_args, $field_group );
578
+ $sub_id = $field->id( true );
579
+
580
+ foreach ( (array) $group_vals as $field_group->index => $post_vals ) {
581
+
582
+ // Get value
583
+ $new_val = isset( $group_vals[ $field_group->index ][ $sub_id ] )
584
+ ? $group_vals[ $field_group->index ][ $sub_id ]
585
+ : false;
586
+
587
+ // Sanitize
588
+ $new_val = self::sanitize_field( $field, $new_val, $field_group->index );
589
+
590
+ if ( 'file' == $field->type() && is_array( $new_val ) ) {
591
+ // Add image ID to the array stack
592
+ $saved[ $field_group->index ][ $new_val['field_id'] ] = $new_val['attach_id'];
593
+ // Reset var to url string
594
+ $new_val = $new_val['url'];
595
+ }
596
+
597
+ // Get old value
598
+ $old_val = false;
599
+ if( is_array($old) && isset($old[ $field_group->index ][ $sub_id ]) ) {
600
+ $old_val = $old[ $field_group->index ][ $sub_id ];
601
+ }
602
+
603
+ $is_updated = ( ! empty( $new_val ) && $new_val != $old_val );
604
+ $is_removed = ( empty( $new_val ) && ! empty( $old_val ) );
605
+ // Compare values and add to `$updated` array
606
+ if ( $is_updated || $is_removed )
607
+ self::$updated[] = $base_id .'::'. $field_group->index .'::'. $sub_id;
608
+
609
+ // Add to `$saved` array
610
+ $saved[ $field_group->index ][ $sub_id ] = $new_val;
611
+
612
+ }
613
+ $saved[ $field_group->index ] = array_filter( $saved[ $field_group->index ] );
614
+ }
615
+ $saved = array_filter( $saved );
616
+
617
+ $field_group->update_data( $saved, true );
618
+ }
619
+
620
+ public static function sanitize_field( $field, $new_value = null ) {
621
+
622
+ $new_value = null !== $new_value
623
+ ? $new_value
624
+ : ( isset( $_POST[ $field->id( true ) ] ) ? $_POST[ $field->id( true ) ] : null );
625
+
626
+ if ( $field->args( 'repeatable' ) && is_array( $new_value ) ) {
627
+ // Remove empties
628
+ $new_value = array_filter( $new_value );
629
+ }
630
+
631
+ // Check if this metabox field has a registered validation callback, or perform default sanitization
632
+ return $field->sanitization_cb( $new_value );
633
+ }
634
+
635
+ public static function save_field( $new_value, $field ) {
636
+ $name = $field->id();
637
+ $old = $field->get_data();
638
+
639
+ // if ( $field->args( 'multiple' ) && ! $field->args( 'repeatable' ) && ! $field->group ) {
640
+ // $field->remove_data();
641
+ // if ( ! empty( $new_value ) ) {
642
+ // foreach ( $new_value as $add_new ) {
643
+ // self::$updated[] = $name;
644
+ // $field->update_data( $add_new, $name, false );
645
+ // }
646
+ // }
647
+ // } else
648
+ if ( ! empty( $new_value ) && $new_value != $old ) {
649
+ self::$updated[] = $name;
650
+ return $field->update_data( $new_value );
651
+ } elseif ( empty( $new_value ) ) {
652
+ if ( ! empty( $old ) )
653
+ self::$updated[] = $name;
654
+ return $field->remove_data();
655
+ }
656
+ }
657
+
658
+ /**
659
+ * Get object id from global space if no id is provided
660
+ * @since 1.0.0
661
+ * @param integer $object_id Object ID
662
+ * @return integer $object_id Object ID
663
+ */
664
+ public static function get_object_id( $object_id = 0 ) {
665
+
666
+ if ( $object_id )
667
+ return $object_id;
668
+
669
+ if ( self::$object_id )
670
+ return self::$object_id;
671
+
672
+ // Try to get our object ID from the global space
673
+ switch ( self::get_object_type() ) {
674
+ case 'user':
675
+ $object_id = isset( $GLOBALS['user_ID'] ) ? $GLOBALS['user_ID'] : $object_id;
676
+ $object_id = isset( $_REQUEST['user_id'] ) ? $_REQUEST['user_id'] : $object_id;
677
+ break;
678
+
679
+ default:
680
+ $object_id = isset( $GLOBALS['post']->ID ) ? $GLOBALS['post']->ID : $object_id;
681
+ $object_id = isset( $_REQUEST['post'] ) ? $_REQUEST['post'] : $object_id;
682
+ break;
683
+ }
684
+
685
+ // reset to id or 0
686
+ self::set_object_id( $object_id ? $object_id : 0 );
687
+
688
+ return self::$object_id;
689
+ }
690
+
691
+ /**
692
+ * Explicitly Set object id
693
+ * @since 1.0.0
694
+ * @param integer $object_id Object ID
695
+ * @return integer $object_id Object ID
696
+ */
697
+ public static function set_object_id( $object_id ) {
698
+ return self::$object_id = $object_id;
699
+ }
700
+
701
+ /**
702
+ * Sets the $object_type based on metabox settings
703
+ * @since 1.0.0
704
+ * @param array|string $meta_box Metabox config array or explicit setting
705
+ * @return string Object type
706
+ */
707
+ public static function set_mb_type( $meta_box ) {
708
+
709
+ if ( is_string( $meta_box ) ) {
710
+ self::$mb_object_type = $meta_box;
711
+ return self::get_mb_type();
712
+ }
713
+
714
+ if ( ! isset( $meta_box['pages'] ) )
715
+ return self::get_mb_type();
716
+
717
+ $type = false;
718
+ // check if 'pages' is a string
719
+ if ( self::is_options_page_mb( $meta_box ) )
720
+ $type = 'options-page';
721
+ // check if 'pages' is a string
722
+ elseif ( is_string( $meta_box['pages'] ) )
723
+ $type = $meta_box['pages'];
724
+ // if it's an array of one, extract it
725
+ elseif ( is_array( $meta_box['pages'] ) && count( $meta_box['pages'] === 1 ) )
726
+ $type = is_string( end( $meta_box['pages'] ) ) ? end( $meta_box['pages'] ) : false;
727
+
728
+ if ( !$type )
729
+ return self::get_mb_type();
730
+
731
+ // Get our object type
732
+ if ( 'user' == $type )
733
+ self::$mb_object_type = 'user';
734
+ elseif ( 'comment' == $type )
735
+ self::$mb_object_type = 'comment';
736
+ elseif ( 'options-page' == $type )
737
+ self::$mb_object_type = 'options-page';
738
+ else
739
+ self::$mb_object_type = 'post';
740
+
741
+ return self::get_mb_type();
742
+ }
743
+
744
+ /**
745
+ * Determines if metabox is for an options page
746
+ * @since 1.0.1
747
+ * @param array $meta_box Metabox config array
748
+ * @return boolean True/False
749
+ */
750
+ public static function is_options_page_mb( $meta_box ) {
751
+ return ( isset( $meta_box['show_on']['key'] ) && 'options-page' === $meta_box['show_on']['key'] );
752
+ }
753
+
754
+ /**
755
+ * Returns the object type
756
+ * @since 1.0.0
757
+ * @return string Object type
758
+ */
759
+ public static function get_object_type() {
760
+ if ( self::$object_type )
761
+ return self::$object_type;
762
+
763
+ global $pagenow;
764
+
765
+ if (
766
+ $pagenow == 'user-edit.php'
767
+ || $pagenow == 'profile.php'
768
+ )
769
+ self::set_object_type( 'user' );
770
+
771
+ elseif (
772
+ $pagenow == 'edit-comments.php'
773
+ || $pagenow == 'comment.php'
774
+ )
775
+ self::set_object_type( 'comment' );
776
+ else
777
+ self::set_object_type( 'post' );
778
+
779
+ return self::$object_type;
780
+ }
781
+
782
+ /**
783
+ * Sets the object type
784
+ * @since 1.0.0
785
+ * @return string Object type
786
+ */
787
+ public static function set_object_type( $object_type ) {
788
+ return self::$object_type = $object_type;
789
+ }
790
+
791
+ /**
792
+ * Returns the object type
793
+ * @since 1.0.0
794
+ * @return string Object type
795
+ */
796
+ public static function get_mb_type() {
797
+ return self::$mb_object_type;
798
+ }
799
+
800
+ /**
801
+ * Returns the nonce value for wp_meta_box_nonce
802
+ * @since 1.0.0
803
+ * @return string Nonce value
804
+ */
805
+ public static function nonce() {
806
+ return basename( __FILE__ );
807
+ }
808
+
809
+ /**
810
+ * Defines the url which is used to load local resources.
811
+ * This may need to be filtered for local Window installations.
812
+ * If resources do not load, please check the wiki for details.
813
+ * @since 1.0.1
814
+ * @return string URL to CMB resources
815
+ */
816
+ public static function get_meta_box_url() {
817
+
818
+ if ( strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN' ) {
819
+ // Windows
820
+ $content_dir = str_replace( '/', DIRECTORY_SEPARATOR, WP_CONTENT_DIR );
821
+ $content_url = str_replace( $content_dir, WP_CONTENT_URL, dirname(__FILE__) );
822
+ $cmb_url = str_replace( DIRECTORY_SEPARATOR, '/', $content_url );
823
+
824
+ } else {
825
+ $cmb_url = str_replace(
826
+ array(WP_CONTENT_DIR, WP_PLUGIN_DIR),
827
+ array(WP_CONTENT_URL, WP_PLUGIN_URL),
828
+ dirname( __FILE__ )
829
+ );
830
+ }
831
+
832
+ return trailingslashit( apply_filters('cmb_meta_box_url', $cmb_url ) );
833
+ }
834
+
835
+ /**
836
+ * Fills in empty metabox parameters with defaults
837
+ * @since 1.0.1
838
+ * @param array $meta_box Metabox config array
839
+ * @return array Modified Metabox config array
840
+ */
841
+ public static function set_mb_defaults( $meta_box ) {
842
+ return wp_parse_args( $meta_box, self::$mb_defaults );
843
+ }
844
+
845
+ /**
846
+ * Removes an option from an option array
847
+ * @since 1.0.1
848
+ * @param string $option_key Option key
849
+ * @param string $field_id Option array field key
850
+ * @return array Modified options
851
+ */
852
+ public static function remove_option( $option_key, $field_id ) {
853
+
854
+ self::$options[ $option_key ] = ! isset( self::$options[ $option_key ] ) || empty( self::$options[ $option_key ] ) ? self::_get_option( $option_key ) : self::$options[ $option_key ];
855
+
856
+ if ( isset( self::$options[ $option_key ][ $field_id ] ) )
857
+ unset( self::$options[ $option_key ][ $field_id ] );
858
+
859
+ return self::$options[ $option_key ];
860
+ }
861
+
862
+ /**
863
+ * Retrieves an option from an option array
864
+ * @since 1.0.1
865
+ * @param string $option_key Option key
866
+ * @param string $field_id Option array field key
867
+ * @return array Options array or specific field
868
+ */
869
+ public static function get_option( $option_key, $field_id = '' ) {
870
+
871
+ self::$options[ $option_key ] = ! isset( self::$options[ $option_key ] ) || empty( self::$options[ $option_key ] ) ? self::_get_option( $option_key ) : self::$options[ $option_key ];
872
+
873
+ if ( $field_id ) {
874
+ return isset( self::$options[ $option_key ][ $field_id ] ) ? self::$options[ $option_key ][ $field_id ] : false;
875
+ }
876
+
877
+ return self::$options[ $option_key ];
878
+ }
879
+
880
+ /**
881
+ * Updates Option data
882
+ * @since 1.0.1
883
+ * @param string $option_key Option key
884
+ * @param string $field_id Option array field key
885
+ * @param mixed $value Value to update data with
886
+ * @param bool $single Whether data should be an array
887
+ * @return array Modified options
888
+ */
889
+ public static function update_option( $option_key, $field_id, $value, $single = true ) {
890
+
891
+ if ( ! $single ) {
892
+ // If multiple, add to array
893
+ self::$options[ $option_key ][ $field_id ][] = $value;
894
+ } else {
895
+ self::$options[ $option_key ][ $field_id ] = $value;
896
+ }
897
+
898
+ return self::$options[ $option_key ];
899
+ }
900
+
901
+ /**
902
+ * Retrieve option value based on name of option.
903
+ * @uses apply_filters() Calls 'cmb_override_option_get_$option_key' hook to allow
904
+ * overwriting the option value to be retrieved.
905
+ *
906
+ * @since 1.0.1
907
+ * @param string $option Name of option to retrieve. Expected to not be SQL-escaped.
908
+ * @param mixed $default Optional. Default value to return if the option does not exist.
909
+ * @return mixed Value set for the option.
910
+ */
911
+ public static function _get_option( $option_key, $default = false ) {
912
+
913
+ $test_get = apply_filters( "cmb_override_option_get_$option_key", 'cmb_no_override_option_get', $default );
914
+
915
+ if ( $test_get !== 'cmb_no_override_option_get' )
916
+ return $test_get;
917
+
918
+ // If no override, get the option
919
+ return get_option( $option_key, $default );
920
+ }
921
+
922
+ /**
923
+ * Saves the option array
924
+ * Needs to be run after finished using remove/update_option
925
+ * @uses apply_filters() Calls 'cmb_override_option_save_$option_key' hook to allow
926
+ * overwriting the option value to be stored.
927
+ *
928
+ * @since 1.0.1
929
+ * @param string $option_key Option key
930
+ * @return boolean Success/Failure
931
+ */
932
+ public static function save_option( $option_key ) {
933
+
934
+ $to_save = self::get_option( $option_key );
935
+
936
+ $test_save = apply_filters( "cmb_override_option_save_$option_key", 'cmb_no_override_option_save', $to_save );
937
+
938
+ if ( $test_save !== 'cmb_no_override_option_save' )
939
+ return $test_save;
940
+
941
+ // If no override, update the option
942
+ return update_option( $option_key, $to_save );
943
+ }
944
+
945
+ /**
946
+ * Utility method that returns a timezone string representing the default timezone for the site.
947
+ *
948
+ * Roughly copied from WordPress, as get_option('timezone_string') will return
949
+ * and empty string if no value has beens set on the options page.
950
+ * A timezone string is required by the wp_timezone_choice() used by the
951
+ * select_timezone field.
952
+ *
953
+ * @since 1.0.0
954
+ * @return string Timezone string
955
+ */
956
+ public static function timezone_string() {
957
+ $current_offset = get_option( 'gmt_offset' );
958
+ $tzstring = get_option( 'timezone_string' );
959
+
960
+ if ( empty( $tzstring ) ) { // Create a UTC+- zone if no timezone string exists
961
+ if ( 0 == $current_offset )
962
+ $tzstring = 'UTC+0';
963
+ elseif ( $current_offset < 0 )
964
+ $tzstring = 'UTC' . $current_offset;
965
+ else
966
+ $tzstring = 'UTC+' . $current_offset;
967
+ }
968
+
969
+ return $tzstring;
970
+ }
971
+
972
+ /**
973
+ * Utility method that returns time string offset by timezone
974
+ * @since 1.0.0
975
+ * @param string $tzstring Time string
976
+ * @return string Offset time string
977
+ */
978
+ public static function timezone_offset( $tzstring ) {
979
+ if ( ! empty( $tzstring ) && is_string( $tzstring ) ) {
980
+ if ( substr( $tzstring, 0, 3 ) === 'UTC' ) {
981
+ $tzstring = str_replace( array( ':15',':30',':45' ), array( '.25','.5','.75' ), $tzstring );
982
+ return intval( floatval( substr( $tzstring, 3 ) ) * HOUR_IN_SECONDS );
983
+ }
984
+
985
+ $date_time_zone_selected = new DateTimeZone( $tzstring );
986
+ $tz_offset = timezone_offset_get( $date_time_zone_selected, date_create() );
987
+
988
+ return $tz_offset;
989
+ }
990
+
991
+ return 0;
992
+ }
993
+
994
+ /**
995
+ * Utility method that attempts to get an attachment's ID by it's url
996
+ * @since 1.0.0
997
+ * @param string $img_url Attachment url
998
+ * @return mixed Attachment ID or false
999
+ */
1000
+ public function image_id_from_url( $img_url ) {
1001
+ global $wpdb;
1002
+
1003
+ $img_url = esc_url_raw( $img_url );
1004
+ // Get just the file name
1005
+ if ( false !== strpos( $img_url, '/' ) ) {
1006
+ $explode = explode( '/', $img_url );
1007
+ $img_url = end( $explode );
1008
+ }
1009
+
1010
+ // And search for a fuzzy match of the file name
1011
+ $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE guid LIKE '%%%s%%' LIMIT 1;", $img_url ) );
1012
+
1013
+ // If we found an attachement ID, return it
1014
+ if ( !empty( $attachment ) && is_array( $attachment ) )
1015
+ return $attachment[0];
1016
+
1017
+ // No luck
1018
+ return false;
1019
+ }
1020
+
1021
+ }
1022
+
1023
+ // Handle oembed Ajax
1024
+ add_action( 'wp_ajax_cmb_oembed_handler', array( 'cmb_Meta_Box_ajax', 'oembed_handler' ) );
1025
+ add_action( 'wp_ajax_nopriv_cmb_oembed_handler', array( 'cmb_Meta_Box_ajax', 'oembed_handler' ) );
1026
+
1027
+ /**
1028
+ * A helper function to get an option from a CMB options array
1029
+ * @since 1.0.1
1030
+ * @param string $option_key Option key
1031
+ * @param string $field_id Option array field key
1032
+ * @return array Options array or specific field
1033
+ */
1034
+ function cmb_get_option( $option_key, $field_id = '' ) {
1035
+ return cmb_Meta_Box::get_option( $option_key, $field_id );
1036
+ }
1037
+
1038
+ /**
1039
+ * Get a CMB field object.
1040
+ * @since 1.1.0
1041
+ * @param array $field_args Field arguments
1042
+ * @param int $object_id Object ID
1043
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment)
1044
+ * @return object cmb_Meta_Box_field object
1045
+ */
1046
+ function cmb_get_field( $field_args, $object_id = 0, $object_type = 'post' ) {
1047
+ // Default to the loop post ID
1048
+ $object_id = $object_id ? $object_id : get_the_ID();
1049
+ cmb_Meta_Box::set_object_id( $object_id );
1050
+ cmb_Meta_Box::set_object_type( $object_type );
1051
+ // Send back field object
1052
+ return new cmb_Meta_Box_field( $field_args );
1053
+ }
1054
+
1055
+ /**
1056
+ * Get a field's value.
1057
+ * @since 1.1.0
1058
+ * @param array $field_args Field arguments
1059
+ * @param int $object_id Object ID
1060
+ * @param string $object_type Type of object being saved. (e.g., post, user, comment, or options-page)
1061
+ * @return mixed Maybe escaped value
1062
+ */
1063
+ function cmb_get_field_value( $field_args, $object_id = 0, $object_type = 'post' ) {
1064
+ $field = cmb_get_field( $field_args, $object_id, $object_type );
1065
+ return $field->escaped_value();
1066
+ }
1067
+
1068
+ /**
1069
+ * Loop and output multiple metaboxes
1070
+ * @since 1.0.0
1071
+ * @param array $meta_boxes Metaboxes config array
1072
+ * @param int $object_id Object ID
1073
+ */
1074
+ function cmb_print_metaboxes( $meta_boxes, $object_id ) {
1075
+ foreach ( (array) $meta_boxes as $meta_box ) {
1076
+ cmb_print_metabox( $meta_box, $object_id );
1077
+ }
1078
+ }
1079
+
1080
+ /**
1081
+ * Output a metabox
1082
+ * @since 1.0.0
1083
+ * @param array $meta_box Metabox config array
1084
+ * @param int $object_id Object ID
1085
+ */
1086
+ function cmb_print_metabox( $meta_box, $object_id ) {
1087
+ $cmb = new cmb_Meta_Box( $meta_box );
1088
+ if ( $cmb ) {
1089
+
1090
+ cmb_Meta_Box::set_object_id( $object_id );
1091
+
1092
+ if ( ! wp_script_is( 'cmb-scripts', 'registered' ) )
1093
+ $cmb->register_scripts();
1094
+
1095
+ wp_enqueue_script( 'cmb-scripts' );
1096
+
1097
+ // default is to show cmb styles
1098
+ if ( $meta_box['cmb_styles'] != false )
1099
+ wp_enqueue_style( 'cmb-styles' );
1100
+
1101
+ cmb_Meta_Box::show_form( $meta_box );
1102
+ }
1103
+
1104
+ }
1105
+
1106
+ /**
1107
+ * Saves a particular metabox's fields
1108
+ * @since 1.0.0
1109
+ * @param array $meta_box Metabox config array
1110
+ * @param int $object_id Object ID
1111
+ */
1112
+ function cmb_save_metabox_fields( $meta_box, $object_id ) {
1113
+ cmb_Meta_Box::save_fields( $meta_box, $object_id );
1114
+ }
1115
+
1116
+ /**
1117
+ * Display a metabox form & save it on submission
1118
+ * @since 1.0.0
1119
+ * @param array $meta_box Metabox config array
1120
+ * @param int $object_id Object ID
1121
+ * @param boolean $return Whether to return or echo form
1122
+ * @return string CMB html form markup
1123
+ */
1124
+ function cmb_metabox_form( $meta_box, $object_id, $echo = true ) {
1125
+
1126
+ $meta_box = cmb_Meta_Box::set_mb_defaults( $meta_box );
1127
+
1128
+ // Make sure form should be shown
1129
+ if ( ! apply_filters( 'cmb_show_on', true, $meta_box ) )
1130
+ return '';
1131
+
1132
+ // Make sure that our object type is explicitly set by the metabox config
1133
+ cmb_Meta_Box::set_object_type( cmb_Meta_Box::set_mb_type( $meta_box ) );
1134
+
1135
+ // Save the metabox if it's been submitted
1136
+ // check permissions
1137
+ // @todo more hardening?
1138
+ if (
1139
+ // check nonce
1140
+ isset( $_POST['submit-cmb'], $_POST['object_id'], $_POST['wp_meta_box_nonce'] )
1141
+ && wp_verify_nonce( $_POST['wp_meta_box_nonce'], cmb_Meta_Box::nonce() )
1142
+ && $_POST['object_id'] == $object_id
1143
+ )
1144
+ cmb_save_metabox_fields( $meta_box, $object_id );
1145
+
1146
+ // Show specific metabox form
1147
+
1148
+ // Get cmb form
1149
+ ob_start();
1150
+ cmb_print_metabox( $meta_box, $object_id );
1151
+ $form = ob_get_contents();
1152
+ ob_end_clean();
1153
+
1154
+ $form_format = apply_filters( 'cmb_frontend_form_format', '<form class="cmb-form" method="post" id="%s" enctype="multipart/form-data" encoding="multipart/form-data"><input type="hidden" name="object_id" value="%s">%s<input type="submit" name="submit-cmb" value="%s" class="button-primary"></form>', $object_id, $meta_box, $form );
1155
+
1156
+ $form = sprintf( $form_format, $meta_box['id'], $object_id, $form, __( 'Save changes' ) );
1157
+
1158
+ if ( $echo )
1159
+ echo $form;
1160
+
1161
+ return $form;
1162
+ }
1163
+
1164
+ // End. That's it, folks! //
includes/metabox/js/cmb.js ADDED
@@ -0,0 +1,725 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Controls the behaviours of custom metabox fields.
3
+ *
4
+ * @author Andrew Norcross
5
+ * @author Jared Atchison
6
+ * @author Bill Erickson
7
+ * @author Justin Sternberg
8
+ * @see https://github.com/webdevstudios/Custom-Metaboxes-and-Fields-for-WordPress
9
+ */
10
+
11
+ /*jslint browser: true, devel: true, indent: 4, maxerr: 50, sub: true */
12
+ /*global jQuery, tb_show, tb_remove */
13
+
14
+ /**
15
+ * Custom jQuery for Custom Metaboxes and Fields
16
+ */
17
+ window.CMB = (function(window, document, $, undefined){
18
+ 'use strict';
19
+
20
+ // localization strings
21
+ var l10n = window.cmb_l10;
22
+
23
+ // CMB functionality object
24
+ var cmb = {
25
+ formfield : '',
26
+ idNumber : false,
27
+ file_frames: {},
28
+ }
29
+
30
+ cmb.metabox = function() {
31
+ if ( cmb.$metabox ) {
32
+ return cmb.$metabox;
33
+ }
34
+ cmb.$metabox = $('table.cmb_metabox');
35
+ return cmb.$metabox;
36
+ }
37
+
38
+ cmb.init = function() {
39
+
40
+ var $metabox = cmb.metabox();
41
+ var $repeatGroup = $metabox.find('.repeatable-group');
42
+
43
+ // hide our spinner gif if we're on a MP6 dashboard
44
+ if ( l10n.new_admin_style ) {
45
+ $metabox.find('.cmb-spinner img').hide();
46
+ }
47
+
48
+ /**
49
+ * Initialize time/date/color pickers
50
+ */
51
+ cmb.initPickers( $metabox.find('input:text.cmb_timepicker'), $metabox.find('input:text.cmb_datepicker'), $metabox.find('input:text.cmb_colorpicker') );
52
+
53
+ // Wrap date picker in class to narrow the scope of jQuery UI CSS and prevent conflicts
54
+ $("#ui-datepicker-div").wrap('<div class="cmb_element" />');
55
+
56
+ $metabox
57
+ .on( 'change', '.cmb_upload_file', function() {
58
+ cmb.formfield = $(this).attr('id');
59
+ $('#' + cmb.formfield + '_id').val('');
60
+ })
61
+ // Media/file management
62
+ .on( 'click', '.cmb_upload_button', cmb.handleMedia )
63
+ .on( 'click', '.cmb_remove_file_button', cmb.handleRemoveMedia )
64
+ // Repeatable content
65
+ .on( 'click', '.add-group-row', cmb.addGroupRow )
66
+ .on( 'click', '.add-row-button', cmb.addAjaxRow )
67
+ .on( 'click', '.remove-group-row', cmb.removeGroupRow )
68
+ .on( 'click', '.remove-row-button', cmb.removeAjaxRow )
69
+ // Ajax oEmbed display
70
+ .on( 'keyup paste focusout', '.cmb_oembed', cmb.maybeOembed );
71
+
72
+ if ( $repeatGroup.length ) {
73
+ $repeatGroup
74
+ .filter('.sortable').each( function() {
75
+ // Add sorting arrows
76
+ $(this).find( '.remove-group-row' ).before( '<a class="shift-rows move-up alignleft" href="#">'+ l10n.up_arrow +'</a> <a class="shift-rows move-down alignleft" href="#">'+ l10n.down_arrow +'</a>' )
77
+ })
78
+ .on( 'click', '.shift-rows', cmb.shiftRows )
79
+ .on( 'cmb_add_row', cmb.emptyValue );
80
+ }
81
+
82
+ // on pageload
83
+ setTimeout( cmb.resizeoEmbeds, 500);
84
+ // and on window resize
85
+ $(window).on( 'resize', cmb.resizeoEmbeds );
86
+
87
+ }
88
+
89
+ cmb.handleMedia = function(event) {
90
+
91
+ if ( typeof wp === 'undefined' )
92
+ return;
93
+
94
+ event.preventDefault();
95
+
96
+ var $metabox = cmb.metabox();
97
+ var $self = $(this);
98
+ cmb.formfield = $self.prev('input').attr('id');
99
+ var $formfield = $('#'+cmb.formfield);
100
+ var formName = $formfield.attr('name');
101
+ var uploadStatus = true;
102
+ var attachment = true;
103
+ var isList = $self.hasClass( 'cmb_upload_list' );
104
+
105
+ // If this field's media frame already exists, reopen it.
106
+ if ( cmb.formfield in cmb.file_frames ) {
107
+ cmb.file_frames[cmb.formfield].open();
108
+ return;
109
+ }
110
+
111
+ // Create the media frame.
112
+ cmb.file_frames[cmb.formfield] = wp.media.frames.file_frame = wp.media({
113
+ title: $metabox.find('label[for=' + cmb.formfield + ']').text(),
114
+ button: {
115
+ text: l10n.upload_file
116
+ },
117
+ multiple: isList ? true : false
118
+ });
119
+
120
+ var handlers = {
121
+ list : function( selection ) {
122
+ // Get all of our selected files
123
+ attachment = selection.toJSON();
124
+
125
+ $formfield.val(attachment.url);
126
+ $('#'+ cmb.formfield +'_id').val(attachment.id);
127
+
128
+ // Setup our fileGroup array
129
+ var fileGroup = [];
130
+
131
+ // Loop through each attachment
132
+ $( attachment ).each( function() {
133
+ if ( this.type && this.type === 'image' ) {
134
+ // image preview
135
+ uploadStatus = '<li class="img_status">'+
136
+ '<img width="50" height="50" src="' + this.url + '" class="attachment-50x50" alt="'+ this.filename +'">'+
137
+ '<p><a href="#" class="cmb_remove_file_button" rel="'+ cmb.formfield +'['+ this.id +']">'+ l10n.remove_image +'</a></p>'+
138
+ '<input type="hidden" id="filelist-'+ this.id +'" name="'+ formName +'['+ this.id +']" value="' + this.url + '">'+
139
+ '</li>';
140
+
141
+ } else {
142
+ // Standard generic output if it's not an image.
143
+ uploadStatus = '<li>'+ l10n.file +' <strong>'+ this.filename +'</strong>&nbsp;&nbsp;&nbsp; (<a href="' + this.url + '" target="_blank" rel="external">'+ l10n.download +'</a> / <a href="#" class="cmb_remove_file_button" rel="'+ cmb.formfield +'['+ this.id +']">'+ l10n.remove_file +'</a>)'+
144
+ '<input type="hidden" id="filelist-'+ this.id +'" name="'+ formName +'['+ this.id +']" value="' + this.url + '">'+
145
+ '</li>';
146
+
147
+ }
148
+
149
+ // Add our file to our fileGroup array
150
+ fileGroup.push( uploadStatus );
151
+ });
152
+
153
+ // Append each item from our fileGroup array to .cmb_media_status
154
+ $( fileGroup ).each( function() {
155
+ $formfield.siblings('.cmb_media_status').slideDown().append(this);
156
+ });
157
+ },
158
+ single : function( selection ) {
159
+ // Only get one file from the uploader
160
+ attachment = selection.first().toJSON();
161
+
162
+ $formfield.val(attachment.url);
163
+ $('#'+ cmb.formfield +'_id').val(attachment.id);
164
+
165
+ if ( attachment.type && attachment.type === 'image' ) {
166
+ // image preview
167
+ uploadStatus = '<div class="img_status"><img style="max-width: 350px; width: 100%; height: auto;" src="' + attachment.url + '" alt="'+ attachment.filename +'" title="'+ attachment.filename +'" /><p><a href="#" class="cmb_remove_file_button" rel="' + cmb.formfield + '">'+ l10n.remove_image +'</a></p></div>';
168
+ } else {
169
+ // Standard generic output if it's not an image.
170
+ uploadStatus = l10n.file +' <strong>'+ attachment.filename +'</strong>&nbsp;&nbsp;&nbsp; (<a href="'+ attachment.url +'" target="_blank" rel="external">'+ l10n.download +'</a> / <a href="#" class="cmb_remove_file_button" rel="'+ cmb.formfield +'">'+ l10n.remove_file +'</a>)';
171
+ }
172
+
173
+ // add/display our output
174
+ $formfield.siblings('.cmb_media_status').slideDown().html(uploadStatus);
175
+ }
176
+ }
177
+
178
+ // When an file is selected, run a callback.
179
+ cmb.file_frames[cmb.formfield].on( 'select', function() {
180
+ var selection = cmb.file_frames[cmb.formfield].state().get('selection');
181
+ var type = isList ? 'list' : 'single';
182
+ handlers[type]( selection );
183
+ });
184
+
185
+ // Finally, open the modal
186
+ cmb.file_frames[cmb.formfield].open();
187
+ }
188
+
189
+ cmb.handleRemoveMedia = function( event ) {
190
+ event.preventDefault();
191
+ var $self = $(this);
192
+ if ( $self.is( '.attach_list .cmb_remove_file_button' ) ){
193
+ $self.parents('li').remove();
194
+ return false;
195
+ }
196
+ cmb.formfield = $self.attr('rel');
197
+ var $container = $self.parents('.img_status');
198
+
199
+ cmb.metabox().find('input#' + cmb.formfield).val('');
200
+ cmb.metabox().find('input#' + cmb.formfield + '_id').val('');
201
+ if ( ! $container.length ) {
202
+ $self.parents('.cmb_media_status').html('');
203
+ } else {
204
+ $container.html('');
205
+ }
206
+ return false;
207
+ }
208
+
209
+ // src: http