GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — develop ( f71b4a...028dc6 )
by Chris
02:13
created

namespace.php ➔ the_svg()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Games Collector Display.
4
 *
5
 * All the front-facing code.
6
 *
7
 * @package GC\GamesCollector\Display
8
 * @since   0.2
9
 */
10
11
namespace GC\GamesCollector\Display;
12
use GC\GamesCollector\Game;
13
use GC\GamesCollector\Attributes;
14
15
/**
16
 * Return the game title. With link if a link was saved.
17
 *
18
 * @since  1.0.0
19
 * @param  object $game The game WP_Post object.
20
 * @return string       The HTML markup for the game title.
21
 */
22
function get_game_title( $game ) {
23 2
	$before = '';
24 2
	$after  = '';
25
26
	// Output a link if one was saved.
27 2
	if ( $link = get_post_meta( $game->ID, '_gc_link', true ) ) {
28
		$before = '<a href="' . esc_url( $link ) . '">';
29
		$after  = '</a>';
30
	}
31
32
	// 1: Game ID, 2: Game title, 3: Link <a> tag, 4: Closing </a>.
33 2
	$output = sprintf( '%3$s<span class="game-title" id="game-%1$d-title">%2$s</span>%4$s',
34 2
		absint( $game->ID ),
35 2
		wp_kses_post( $game->post_title ),
36 2
		$before,
37
		$after
38 2
	);
39
40
	/**
41
	 * Allow game title to be filtered.
42
	 *
43
	 * @since 1.0.0
44
	 * @param string $output  The HTML markup for the game title.
45
	 * @param int    $game_id The game's post ID.
46
	 */
47 2
	return apply_filters( 'gc_filter_game_title', $output, $game->ID );
48
}
49
50
/**
51
 * Return the game info (post meta and taxonomies).
52
 *
53
 * @since  1.0.0
54
 * @param  int $game_id The game's post ID.
55
 * @return string       The HTML markup for the game information.
56
 */
57
function get_game_info( $game_id ) {
58
	ob_start(); ?>
59
60
		<div class="game-info" id="game-<?php echo absint( $game_id ); ?>-info">
61
			<?php
62 2
			echo get_players( $game_id );      // WPCS: XSS ok, already sanitized.
63 2
			echo get_playing_time( $game_id ); // WPCS: XSS ok, already sanitized.
64 2
			echo get_age( $game_id );          // WPCS: XSS ok, already sanitized.
65 2
			echo get_difficulty( $game_id );   // WPCS: XSS ok, already sanitized.
66 2
			echo get_attributes( $game_id );   // WPCS: XSS ok, already sanitized.
67
			?>
68
		</div>
69
70
	<?php return ob_get_clean();
71
}
72
73
/**
74
 * Return the markup for the buttons for filtering game lists.
75
 *
76
 * @since  1.0.0
77
 * @return string The markup for the buttons.
78
 */
79
function get_buttons() {
80 2
	$terms = get_terms( 'gc_attribute' );
81
82 2
	$show_all    = '<button data-filter="*">' . esc_html__( 'Show All', 'games-collector' ) . '</button>';
83 2
	$short_games = '<button data-filter=".short">' . esc_html__( 'Short Games', 'games-collector' ) . '</button>';
84 2
	$long_games  = '<button data-filter = ".long">' . esc_html__( 'Long Games', 'games-collector' ) . '</button>';
85 2
	$kids_games  = '<button data-filter = ".4-and-up,.5-and-up,.6-and-up,.7-and-up,.8-and-up,.9-and-up">' . esc_html__( 'Good for Kids', 'games-collector' ) . '</button>';
86 2
	$adult_games = '<button data-filter=".mature">' . esc_html__( 'Adult Games', 'games-collector' ) . '</button>';
87
88
	// Loop through terms to generate all those buttons. These won't be filterable.
89 2
	$terms_buttons = '';
90 2
	foreach ( $terms as $term ) {
91 2
		$terms_buttons .= '<button data-filter=".gc_attribute-' . esc_attr( $term->slug ) . '">' . esc_attr( $term->name ) . '</button>';
92 2
	}
93
94
	/**
95
	 * Allow Show All button to be filtered. Can be hooked to __return_null to disable.
96
	 *
97
	 * @since 1.1.0
98
	 * @var   string HTML markup for Show All button.
99
	 */
100 2
	$show_all = apply_filters( 'gc_filter_button_show_all', $show_all );
101
102
	/**
103
	 * Allow the attribute term buttons to be filtered. This will filter _all_ the term buttons. Can be hooked to __return_null to disable term buttons.
104
	 *
105
	 * @since 1.1.0
106
	 * @var   string HTML markup for all attribute term buttons.
107
	 */
108 2
	$terms_buttons = apply_filters( 'gc_filter_term_buttons', $terms_buttons );
109
110
	/**
111
	 * Allow Short Games button to be filtered. Can be hooked to __return_null to disable.
112
	 *
113
	 * @since 1.1.0
114
	 * @var   string HTML markup for Short Games button.
115
	 */
116 2
	$short_games = apply_filters( 'gc_filter_button_short_games', $short_games );
117
118
	/**
119
	 * Allow Long Games button to be filtered. Can be hooked to __return_null to disable.
120
	 *
121
	 * @since 1.1.0
122
	 * @var   string HTML markup for Long Games button.
123
	 */
124 2
	$long_games = apply_filters( 'gc_filter_button_long_games', $long_games );
125
126
	/**
127
	 * Allow Kids Games button to be filtered. Can be hooked to __return_null to disable.
128
	 *
129
	 * @since 1.1.0
130
	 * @var   string HTML markup for Kids Games button.
131
	 */
132 2
	$kids_games = apply_filters( 'gc_filter_button_kids_games', $kids_games );
133
134
	/**
135
	 * Allow Adults Games button to be filtered. Can be hooked to __return_null to disable.
136
	 *
137
	 * @since 1.1.0
138
	 * @var   string HTML markup for Adults Games button.
139
	 */
140 2
	$adult_games = apply_filters( 'gc_filter_button_adult_games', $adult_games );
141
142 2
	$output = $show_all . $terms_buttons . $short_games . $long_games . $kids_games . $adult_games;
143
144
	/**
145
	 * Allow entire output to be filtered.
146
	 *
147
	 * @since 1.0.0
148
	 * @var   string HTML markup for buttons.
149
	 */
150 2
	return apply_filters( 'gc_filter_buttons', $output );
151
}
152
153
/**
154
 * Return the HTML markup for the other game filters.
155
 *
156
 * @since  1.0.0
157
 * @return string Select markup for filters.
158
 */
159
function get_filters() {
160 2
	$player_filter     = '<div class="player-filter"><label for="players-filter-select">' . esc_html__( 'How many players?', 'games-collector' ) . ':</label>
161
		<select class="players-filter-select">
162 2
			<option selected>- ' . esc_html__( 'Select one', 'games-collector' ) . ' -</option>
163 2
			<option value=".2-players,.min-2-players,.max-2-players,.max-3-players,.max-4-players,.max-5-players,.max-6-players,.max-7-players,.8-or-more-players">' . esc_html__( '2+ players', 'games-collector' ) . '</option>
164 2
			<option value=".4-players,.min-4-players,.max-4-players,.max-5-players,.max-6-players,.max-7-players,.8-or-more-players">' . esc_html__( '4+ players', 'games-collector' ) . '</option>
165 2
			<option value=".5-players,.min-5-players,.max-5-players,.max-6-players,.max-7-players,.8-or-more-players">' . esc_html__( '5+ players', 'games-collector' ) . '</option>
166 2
			<option value=".6-players,.min-6-players,.max-6-players,.max-7-players,.8-or-more-players">' . esc_html__( '6+ players', 'games-collector' ) . '</option>
167 2
			<option value=".8-players,.min-8-players,.8-or-more-players">' . esc_html__( '8+ players', 'games-collector' ) . '</option>
168
		</select>
169 2
	</div>';
170
171 2
	$game_difficulties = '';
172
173 2
	foreach ( Game\get_difficulties() as $key => $value ) {
174 2
		$game_difficulties = '<option value=".' . esc_html( $key ) . '">' . esc_html( $value ) . '</option>';
175 2
	}
176
177
	/**
178
	 * Allow game difficulties select options to be filtered.
179
	 *
180
	 * @since 1.1.0
181
	 * @var   string HTML markup of <option> tags for difficulties select input.
182
	 */
183 2
	$game_difficulties = apply_filters( 'gc_filter_options_difficulties', $game_difficulties );
184
185 2
	$difficulty_filter = '<div class="difficulty-filter"><label for="difficulty-filter-select">' . esc_html__( 'Difficulty', 'games-collector' ) . ':</label>
186
		<select class="difficulty-filter-select">
187 2
			<option selected>- ' . esc_html__( 'Select one', 'games-collector' ) . ' -</option>' . $game_difficulties . '
188
		</select>
189 2
	</div>';
190
191
	/**
192
	 * Allow the player filter to be filtered. Can be disabled entirely by hooking to __return_null.
193
	 *
194
	 * @since 1.1.0
195
	 * @var   string HTML markup for player filter.
196
	 */
197 2
	$player_filter = apply_filters( 'gc_filter_player_filter', $player_filter );
198
199
	/**
200
	 * Allow the difficulty filter to be filtered. Can be disabled entirely by hooking to __return_null.
201
	 *
202
	 * @since 1.1.0
203
	 * @var   string HTML markup for difficulty filter.
204
	 */
205 2
	$difficulty_filter = apply_filters( 'gc_filter_difficulty_filter', $difficulty_filter );
206
207 2
	$output = $player_filter . $difficulty_filter;
208
209
	/**
210
	 * Allow the filters to be customized.
211
	 *
212
	 * @since 1.0.0
213
	 * @var   string HTML markup for the filters.
214
	 */
215 2
	return apply_filters( 'gc_filter_game_filters', $output );
216
}
217
218
/**
219
 * Return a list of game attributes.
220
 *
221
 * @since  1.0.0
222
 * @param  int $game_id The game's post ID.
223
 * @return string       The HTML markup for the game attributes.
224
 * @uses                Attributes\get_the_attribute_list
225
 */
226
function get_attributes( $game_id ) {
227 2
	$attribute_list = Attributes\get_the_attribute_list(
228 2
		$game_id,
229 2
		'<div class="game-attributes"><span class="gc-icon icon-game-attributes">' . get_svg( 'tags', false ) . '</span><span class="game-attributes" id="game-' . absint( $game_id ) . '-attributes">', // Before.
230 2
		', ',                                       // Seperator.
231
		'</span></div>'                             // After.
232 2
	);
233
234
	/**
235
	 * Allow the attribute list to be filtered.
236
	 *
237
	 * @since 1.0.0
238
	 * @var   string The HTML markup for the attribute list.
239
	 * @uses  Attributes\get_the_attribute_list
240
	 */
241 2
	return apply_filters( 'gc_filter_attribute_list', $attribute_list );
242
}
243
244
/**
245
 * Return the number of players.
246
 *
247
 * @since  1.0.0
248
 * @param  int $game_id The game's post ID.
249
 * @return mixed        The HTML markup for number of players or false if not set.
250
 * @uses                Game\get_players_min_max
251
 */
252
function get_players( $game_id ) {
253 2
	$players_min_max = Game\get_players_min_max( $game_id );
254
255 2
	if ( isset( $players_min_max['min'] ) ) {
256
			ob_start(); ?>
257
258
		<span class="gc-icon icon-game-players"><?php the_svg( 'players', false ); ?></span><span class="game-num-players" id="game-<?php echo absint( $game_id ); ?>-num-players"><?php echo esc_attr( sprintf(
259
			// Translators: 1: Minimum number of players, 2: Maximum number of players.
260 2
			__( '%1$d %2$s players', 'games-collector' ),
261 2
			absint( $players_min_max['min'] ),
262 2
			isset( $players_min_max['max'] ) ? sprintf( '- %d', absint( $players_min_max['max'] ) ) : '+'
263
		) ); ?></span><?php
264
265 2
		$output = ob_get_clean();
266
267
		/**
268
		 * Allow the # of players to be filtered (but only if there actually are players).
269
		 *
270
		 * @since 1.0.0
271
		 * @var   string The HTML markup for # of players.
272
		 * @uses         Game\get_players_min_max
273
		 */
274 2
		return apply_filters( 'gc_filter_players', $output );
275
	}
276
277
	return false;
278
}
279
280
/**
281
 * Return the game difficulty.
282
 *
283
 * @since  1.0.0
284
 * @param  int $game_id The game's post ID.
285
 * @return mixed        The HTML markup for difficulty or false if not set.
286
 * @uses                Game\get_difficulties
287
 */
288 View Code Duplication
function get_difficulty( $game_id ) {
289 2
	if ( $difficulty = get_post_meta( $game_id, '_gc_difficulty', true ) ) {
290
		ob_start(); ?>
291
		<span class="gc-icon icon-game-difficulty"><?php the_svg( 'difficulty', false ); ?></span><span class="game-difficulty" id="game-<?php echo absint( $game_id ); ?>-difficulty"><?php echo esc_html( Game\get_difficulties( $difficulty ) ); ?></span>
292
293
		<?php $output = ob_get_clean();
294
295
		/**
296
		 * Allow the difficulty output to be filtered (but only if it has been set).
297
		 *
298
		 * @since 1.0.0
299
		 * @var   string The HTML markup for difficulty.
300
		 * @uses         Game\get_difficulties
301
		 */
302 2
		return apply_filters( 'gc_filter_difficulty', $output );
303
	}
304
305
	return false;
306
}
307
308
/**
309
 * Return the game playing time.
310
 *
311
 * @since  1.0.0
312
 * @param  int $game_id The game's post ID.
313
 * @return mixed        The HTML markup for playing time or false if not set.
314
 */
315 View Code Duplication
function get_playing_time( $game_id ) {
316 2
	if ( $playing_time = get_post_meta( $game_id, '_gc_time', true ) ) {
317
		ob_start(); ?>
318
		<span class="gc-icon icon-game-time"><?php the_svg( 'time', false ); ?></span><span class="game-playing-time" id="game-<?php echo absint( $game_id ); ?>-playing-time"><?php echo esc_html( sprintf( __( '%s minutes', 'games-collector' ), $playing_time ) ); ?></span>
319
320
		<?php $output = ob_get_clean();
321
322
		/**
323
		 * Allow the playing time output to be filtered (but only if it has been set).
324
		 *
325
		 * @since 1.0.0
326
		 * @var   string The HTML markup for playing time.
327
		 */
328 2
		return apply_filters( 'gc_filter_playing_time', $output );
329
	}
330
331
	return false;
332
}
333
334
/**
335
 * Return the game age.
336
 *
337
 * @since  1.0.0
338
 * @param  int $game_id The game's post ID.
339
 * @return mixed        The HTML markup for age or false if not set.
340
 */
341 View Code Duplication
function get_age( $game_id ) {
342 2
	if ( $age = get_post_meta( $game_id, '_gc_age', true ) ) {
343
		ob_start(); ?>
344
		<span class="gc-icon icon-game-age"><?php the_svg( 'age', false ); ?></span><span class="game-age" id="game-<?php echo absint( $game_id ); ?>-age"><?php echo esc_html( sprintf( '%d+', $age ) ); ?></span>
345
346
		<?php $output = ob_get_clean();
347
348
		/**
349
		 * Allow the age output to be filtered (but only if it has been set).
350
		 *
351
		 * @since 1.0.0
352
		 * @var   string The HTML markup for age.
353
		 */
354 2
		return apply_filters( 'gc_filter_age', $output );
355
	}
356
357 1
	return false;
358
}
359
360
/**
361
 * Enqueue front end styles and scripts.
362
 *
363
 * @since 0.2
364
 */
365
function enqueue_scripts() {
366
	// Don't load in the admin.
367
	if ( is_admin() ) {
368
		return;
369
	}
370
371
	wp_enqueue_style( 'games-collector', dirname( dirname( plugin_dir_url( __FILE__ ) ) ) . '/assets/css/games-collector.css', [], '1.1.0-r2' );
372
	wp_enqueue_script( 'isotope', dirname( dirname( plugin_dir_url( __FILE__ ) ) ) . '/assets/js/isotope.pkgd.min.js', [ 'jquery' ], '3.0.1', true );
373
	wp_enqueue_script( 'games-collector', dirname( dirname( plugin_dir_url( __FILE__ ) ) ) . '/assets/js/games-collector.js', [ 'jquery', 'isotope' ], '0.2' );
374
}
375
376
/**
377
 * Get a SVG icon by name.
378
 *
379
 * @since  0.2
380
 * @param  string $name    An icon name.
381
 * @param  bool   $encoded Whether to return the svg as a base64 encoded image (for background images) or the raw SVG XML.
382
 * @return string          The svg.
383
 */
384
function get_svg( $name = '', $encoded = true ) {
385
	// Bail if nothing was passed.
386 2
	if ( '' === $name ) {
387
		return;
388
	}
389
390 2
	if ( $encoded ) {
391
		$icons = [
392
			'dice'       => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KPHBhdGggZmlsbD0iI2EwYTVhYSIgZD0iTTI3IDZoLTE2Yy0yLjc1IDAtNSAyLjI1LTUgNXYxNmMwIDIuNzUgMi4yNSA1IDUgNWgxNmMyLjc1IDAgNS0yLjI1IDUtNXYtMTZjMC0yLjc1LTIuMjUtNS01LTV6TTEzIDI4Yy0xLjY1NyAwLTMtMS4zNDMtMy0zczEuMzQzLTMgMy0zIDMgMS4zNDMgMyAzLTEuMzQzIDMtMyAzek0xMyAxNmMtMS42NTcgMC0zLTEuMzQzLTMtM3MxLjM0My0zIDMtMyAzIDEuMzQzIDMgMy0xLjM0MyAzLTMgM3pNMTkgMjJjLTEuNjU3IDAtMy0xLjM0My0zLTNzMS4zNDMtMyAzLTMgMyAxLjM0MyAzIDMtMS4zNDMgMy0zIDN6TTI1IDI4Yy0xLjY1NyAwLTMtMS4zNDMtMy0zczEuMzQzLTMgMy0zIDMgMS4zNDMgMyAzLTEuMzQzIDMtMyAzek0yNSAxNmMtMS42NTcgMC0zLTEuMzQzLTMtM3MxLjM0My0zIDMtMyAzIDEuMzQzIDMgMy0xLjM0MyAzLTMgM3pNMjUuODk5IDRjLTAuNDY3LTIuMjc1LTIuNDkxLTQtNC44OTktNGgtMTZjLTIuNzUgMC01IDIuMjUtNSA1djE2YzAgMi40MDggMS43MjUgNC40MzIgNCA0Ljg5OXYtMTkuODk5YzAtMS4xIDAuOS0yIDItMmgxOS44OTl6Ij48L3BhdGg+Cjwvc3ZnPgo=',
393
			'dice-alt'   => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0Ij48ZyBpZD0iaWNvbW9vbi1pZ25vcmUiPjwvZz48cGF0aCBkPSJNNjg4IDM1MmgtMjU2Yy00NCAwLTgwIDM2LTgwIDgwdjI1NmMwIDQ0IDM2IDgwIDgwIDgwaDI1NmM0NCAwIDgwLTM2IDgwLTgwdi0yNTZjMC00NC0zNi04MC04MC04MHpNNDY0IDcwNGMtMjYuNTA4IDAtNDgtMjEuNDkyLTQ4LTQ4czIxLjQ5Mi00OCA0OC00OCA0OCAyMS40OTIgNDggNDgtMjEuNDkyIDQ4LTQ4IDQ4ek00NjQgNTEyYy0yNi41MDggMC00OC0yMS40OTItNDgtNDhzMjEuNDkyLTQ4IDQ4LTQ4IDQ4IDIxLjQ5MiA0OCA0OC0yMS40OTIgNDgtNDggNDh6TTU2MCA2MDhjLTI2LjUwOCAwLTQ4LTIxLjQ5Mi00OC00OHMyMS40OTItNDggNDgtNDggNDggMjEuNDkyIDQ4IDQ4LTIxLjQ5MiA0OC00OCA0OHpNNjU2IDcwNGMtMjYuNTA4IDAtNDgtMjEuNDkyLTQ4LTQ4czIxLjQ5Mi00OCA0OC00OCA0OCAyMS40OTIgNDggNDgtMjEuNDkyIDQ4LTQ4IDQ4ek02NTYgNTEyYy0yNi41MDggMC00OC0yMS40OTItNDgtNDhzMjEuNDkyLTQ4IDQ4LTQ4IDQ4IDIxLjQ5MiA0OCA0OC0yMS40OTIgNDgtNDggNDh6TTY3MC4zNzUgMzIwYy03LjQ2NS0zNi40MDQtMzkuODU0LTY0LTc4LjM3NS02NGgtMjU2Yy00NCAwLTgwIDM2LTgwIDgwdjI1NmMwIDM4LjUxOSAyNy41OTYgNzAuOTE4IDY0IDc4LjM3NXYtMzE4LjM3NWMwLTE3LjYgMTQuNC0zMiAzMi0zMmgzMTguMzc1eiI+PC9wYXRoPjwvc3ZnPg==',
394
			'age'        => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDIwIDI4Ij4KPHBhdGggZD0iTTE4LjU2MiA4LjU2M2wtNC41NjIgNC41NjJ2MTIuODc1YzAgMC45NjktMC43ODEgMS43NS0xLjc1IDEuNzVzLTEuNzUtMC43ODEtMS43NS0xLjc1di02aC0xdjZjMCAwLjk2OS0wLjc4MSAxLjc1LTEuNzUgMS43NXMtMS43NS0wLjc4MS0xLjc1LTEuNzV2LTEyLjg3NWwtNC41NjItNC41NjJjLTAuNTc4LTAuNTk0LTAuNTc4LTEuNTMxIDAtMi4xMjUgMC41OTQtMC41NzggMS41MzEtMC41NzggMi4xMjUgMGwzLjU2MyAzLjU2M2g1Ljc1bDMuNTYzLTMuNTYzYzAuNTk0LTAuNTc4IDEuNTMxLTAuNTc4IDIuMTI1IDAgMC41NzggMC41OTQgMC41NzggMS41MzEgMCAyLjEyNXpNMTMuNSA2YzAgMS45MzctMS41NjMgMy41LTMuNSAzLjVzLTMuNS0xLjU2My0zLjUtMy41IDEuNTYzLTMuNSAzLjUtMy41IDMuNSAxLjU2MyAzLjUgMy41eiI+PC9wYXRoPgo8L3N2Zz4K',
395
			'time'       => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI0IDI4Ij4KPHBhdGggZD0iTTE0IDguNXY3YzAgMC4yODEtMC4yMTkgMC41LTAuNSAwLjVoLTVjLTAuMjgxIDAtMC41LTAuMjE5LTAuNS0wLjV2LTFjMC0wLjI4MSAwLjIxOS0wLjUgMC41LTAuNWgzLjV2LTUuNWMwLTAuMjgxIDAuMjE5LTAuNSAwLjUtMC41aDFjMC4yODEgMCAwLjUgMC4yMTkgMC41IDAuNXpNMjAuNSAxNGMwLTQuNjg4LTMuODEzLTguNS04LjUtOC41cy04LjUgMy44MTMtOC41IDguNSAzLjgxMyA4LjUgOC41IDguNSA4LjUtMy44MTMgOC41LTguNXpNMjQgMTRjMCA2LjYyNS01LjM3NSAxMi0xMiAxMnMtMTItNS4zNzUtMTItMTIgNS4zNzUtMTIgMTItMTIgMTIgNS4zNzUgMTIgMTJ6Ij48L3BhdGg+Cjwvc3ZnPgo=',
396
			'players'    => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDMwIDI4Ij4KPHBhdGggZD0iTTkuMjY2IDE0Yy0xLjYyNSAwLjA0Ny0zLjA5NCAwLjc1LTQuMTQxIDJoLTIuMDk0Yy0xLjU2MyAwLTMuMDMxLTAuNzUtMy4wMzEtMi40ODQgMC0xLjI2Ni0wLjA0Ny01LjUxNiAxLjkzNy01LjUxNiAwLjMyOCAwIDEuOTUzIDEuMzI4IDQuMDYyIDEuMzI4IDAuNzE5IDAgMS40MDYtMC4xMjUgMi4wNzgtMC4zNTktMC4wNDcgMC4zNDQtMC4wNzggMC42ODgtMC4wNzggMS4wMzEgMCAxLjQyMiAwLjQ1MyAyLjgyOCAxLjI2NiA0ek0yNiAyMy45NTNjMCAyLjUzMS0xLjY3MiA0LjA0Ny00LjE3MiA0LjA0N2gtMTMuNjU2Yy0yLjUgMC00LjE3Mi0xLjUxNi00LjE3Mi00LjA0NyAwLTMuNTMxIDAuODI4LTguOTUzIDUuNDA2LTguOTUzIDAuNTMxIDAgMi40NjkgMi4xNzIgNS41OTQgMi4xNzJzNS4wNjMtMi4xNzIgNS41OTQtMi4xNzJjNC41NzggMCA1LjQwNiA1LjQyMiA1LjQwNiA4Ljk1M3pNMTAgNGMwIDIuMjAzLTEuNzk3IDQtNCA0cy00LTEuNzk3LTQtNCAxLjc5Ny00IDQtNCA0IDEuNzk3IDQgNHpNMjEgMTBjMCAzLjMxMy0yLjY4OCA2LTYgNnMtNi0yLjY4OC02LTYgMi42ODgtNiA2LTYgNiAyLjY4OCA2IDZ6TTMwIDEzLjUxNmMwIDEuNzM0LTEuNDY5IDIuNDg0LTMuMDMxIDIuNDg0aC0yLjA5NGMtMS4wNDctMS4yNS0yLjUxNi0xLjk1My00LjE0MS0yIDAuODEyLTEuMTcyIDEuMjY2LTIuNTc4IDEuMjY2LTQgMC0wLjM0NC0wLjAzMS0wLjY4OC0wLjA3OC0xLjAzMSAwLjY3MiAwLjIzNCAxLjM1OSAwLjM1OSAyLjA3OCAwLjM1OSAyLjEwOSAwIDMuNzM0LTEuMzI4IDQuMDYyLTEuMzI4IDEuOTg0IDAgMS45MzcgNC4yNSAxLjkzNyA1LjUxNnpNMjggNGMwIDIuMjAzLTEuNzk3IDQtNCA0cy00LTEuNzk3LTQtNCAxLjc5Ny00IDQtNCA0IDEuNzk3IDQgNHoiPjwvcGF0aD4KPC9zdmc+Cg==',
397
			'difficulty' => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyNiIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI2IDI4Ij4KPHBhdGggZD0iTTI2IDE3LjE1NmMwIDEuNjA5LTAuOTIyIDIuOTUzLTIuNjI1IDIuOTUzLTEuOTA2IDAtMi40MDYtMS43MzQtNC4xMjUtMS43MzQtMS4yNSAwLTEuNzE5IDAuNzgxLTEuNzE5IDEuOTM3IDAgMS4yMTkgMC41IDIuMzkxIDAuNDg0IDMuNTk0djAuMDc4Yy0wLjE3MiAwLTAuMzQ0IDAtMC41MTYgMC4wMTYtMS42MDkgMC4xNTYtMy4yMzQgMC40NjktNC44NTkgMC40NjktMS4xMDkgMC0yLjI2Ni0wLjQzOC0yLjI2Ni0xLjcxOSAwLTEuNzE5IDEuNzM0LTIuMjE5IDEuNzM0LTQuMTI1IDAtMS43MDMtMS4zNDQtMi42MjUtMi45NTMtMi42MjUtMS42NDEgMC0zLjE1NiAwLjkwNi0zLjE1NiAyLjcwMyAwIDEuOTg0IDEuNTE2IDIuODQ0IDEuNTE2IDMuOTIyIDAgMC41NDctMC4zNDQgMS4wMzEtMC43MTkgMS4zOTEtMC40ODQgMC40NTMtMS4xNzIgMC41NDctMS44MjggMC41NDctMS4yODEgMC0yLjU2Mi0wLjE3Mi0zLjgyOC0wLjM3NS0wLjI4MS0wLjA0Ny0wLjU3OC0wLjA3OC0wLjg1OS0wLjEyNWwtMC4yMDMtMC4wMzFjLTAuMDMxLTAuMDE2LTAuMDc4LTAuMDE2LTAuMDc4LTAuMDMxdi0xNmMwLjA2MyAwLjA0NyAwLjk4NCAwLjE1NiAxLjE0MSAwLjE4NyAxLjI2NiAwLjIwMyAyLjU0NyAwLjM3NSAzLjgyOCAwLjM3NSAwLjY1NiAwIDEuMzQ0LTAuMDk0IDEuODI4LTAuNTQ3IDAuMzc1LTAuMzU5IDAuNzE5LTAuODQ0IDAuNzE5LTEuMzkxIDAtMS4wNzgtMS41MTYtMS45MzctMS41MTYtMy45MjIgMC0xLjc5NyAxLjUxNi0yLjcwMyAzLjE3Mi0yLjcwMyAxLjU5NCAwIDIuOTM4IDAuOTIyIDIuOTM4IDIuNjI1IDAgMS45MDYtMS43MzQgMi40MDYtMS43MzQgNC4xMjUgMCAxLjI4MSAxLjE1NiAxLjcxOSAyLjI2NiAxLjcxOSAxLjc5NyAwIDMuNTc4LTAuNDA2IDUuMzU5LTAuNXYwLjAzMWMtMC4wNDcgMC4wNjMtMC4xNTYgMC45ODQtMC4xODcgMS4xNDEtMC4yMDMgMS4yNjYtMC4zNzUgMi41NDctMC4zNzUgMy44MjggMCAwLjY1NiAwLjA5NCAxLjM0NCAwLjU0NyAxLjgyOCAwLjM1OSAwLjM3NSAwLjg0NCAwLjcxOSAxLjM5MSAwLjcxOSAxLjA3OCAwIDEuOTM3LTEuNTE2IDMuOTIyLTEuNTE2IDEuNzk3IDAgMi43MDMgMS41MTYgMi43MDMgMy4xNTZ6Ij48L3BhdGg+Cjwvc3ZnPgo=',
398
			'tags'       => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0ZWQgYnkgSWNvTW9vbi5pbyAtLT4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDMwIDI4Ij4KPHBhdGggZD0iTTcgN2MwLTEuMTA5LTAuODkxLTItMi0ycy0yIDAuODkxLTIgMiAwLjg5MSAyIDIgMiAyLTAuODkxIDItMnpNMjMuNjcyIDE2YzAgMC41MzEtMC4yMTkgMS4wNDctMC41NzggMS40MDZsLTcuNjcyIDcuNjg4Yy0wLjM3NSAwLjM1OS0wLjg5MSAwLjU3OC0xLjQyMiAwLjU3OHMtMS4wNDctMC4yMTktMS40MDYtMC41NzhsLTExLjE3Mi0xMS4xODhjLTAuNzk3LTAuNzgxLTEuNDIyLTIuMjk3LTEuNDIyLTMuNDA2di02LjVjMC0xLjA5NCAwLjkwNi0yIDItMmg2LjVjMS4xMDkgMCAyLjYyNSAwLjYyNSAzLjQyMiAxLjQyMmwxMS4xNzIgMTEuMTU2YzAuMzU5IDAuMzc1IDAuNTc4IDAuODkxIDAuNTc4IDEuNDIyek0yOS42NzIgMTZjMCAwLjUzMS0wLjIxOSAxLjA0Ny0wLjU3OCAxLjQwNmwtNy42NzIgNy42ODhjLTAuMzc1IDAuMzU5LTAuODkxIDAuNTc4LTEuNDIyIDAuNTc4LTAuODEyIDAtMS4yMTktMC4zNzUtMS43NS0wLjkyMmw3LjM0NC03LjM0NGMwLjM1OS0wLjM1OSAwLjU3OC0wLjg3NSAwLjU3OC0xLjQwNnMtMC4yMTktMS4wNDctMC41NzgtMS40MjJsLTExLjE3Mi0xMS4xNTZjLTAuNzk3LTAuNzk3LTIuMzEyLTEuNDIyLTMuNDIyLTEuNDIyaDMuNWMxLjEwOSAwIDIuNjI1IDAuNjI1IDMuNDIyIDEuNDIybDExLjE3MiAxMS4xNTZjMC4zNTkgMC4zNzUgMC41NzggMC44OTEgMC41NzggMS40MjJ6Ij48L3BhdGg+Cjwvc3ZnPgo=',
399
		];
400
401
		/**
402
		 * Allow base64-encoded icons to be filtered.
403
		 *
404
		 * @var array
405
		 */
406
		$icons = apply_filters( 'gc_filter_svg_base64', $icons );
407
	} else {
408
		$icons = [
409
			'dice'       => '<svg class="gc-icon svg gc-icon-dice" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
410
<title>dice</title>
411
<path fill="#a0a5aa" d="M27 6h-16c-2.75 0-5 2.25-5 5v16c0 2.75 2.25 5 5 5h16c2.75 0 5-2.25 5-5v-16c0-2.75-2.25-5-5-5zM13 28c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zM13 16c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zM19 22c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zM25 28c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zM25 16c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zM25.899 4c-0.467-2.275-2.491-4-4.899-4h-16c-2.75 0-5 2.25-5 5v16c0 2.408 1.725 4.432 4 4.899v-19.899c0-1.1 0.9-2 2-2h19.899z"></path>
412
</svg>
413
></path>
414 2
</svg>',
415
			'dice-alt'   => '<svg class="gc-icon svg gc-icon-dice-alt" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
416
<title>dice-alt</title>
417
<path d="M688 352h-256c-44 0-80 36-80 80v256c0 44 36 80 80 80h256c44 0 80-36 80-80v-256c0-44-36-80-80-80zM464 704c-26.508 0-48-21.492-48-48s21.492-48 48-48 48 21.492 48 48-21.492 48-48 48zM464 512c-26.508 0-48-21.492-48-48s21.492-48 48-48 48 21.492 48 48-21.492 48-48 48zM560 608c-26.508 0-48-21.492-48-48s21.492-48 48-48 48 21.492 48 48-21.492 48-48 48zM656 704c-26.508 0-48-21.492-48-48s21.492-48 48-48 48 21.492 48 48-21.492 48-48 48zM656 512c-26.508 0-48-21.492-48-48s21.492-48 48-48 48 21.492 48 48-21.492 48-48 48zM670.375 320c-7.465-36.404-39.854-64-78.375-64h-256c-44 0-80 36-80 80v256c0 38.519 27.596 70.918 64 78.375v-318.375c0-17.6 14.4-32 32-32h318.375z"></path>
418 2
</svg>',
419
			'age'        => '<svg class="gc-icon svg gc-icon-age" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="28" viewBox="0 0 20 28">
420
<title>age</title>
421
<path d="M18.562 8.563l-4.562 4.562v12.875c0 0.969-0.781 1.75-1.75 1.75s-1.75-0.781-1.75-1.75v-6h-1v6c0 0.969-0.781 1.75-1.75 1.75s-1.75-0.781-1.75-1.75v-12.875l-4.562-4.562c-0.578-0.594-0.578-1.531 0-2.125 0.594-0.578 1.531-0.578 2.125 0l3.563 3.563h5.75l3.563-3.563c0.594-0.578 1.531-0.578 2.125 0 0.578 0.594 0.578 1.531 0 2.125zM13.5 6c0 1.937-1.563 3.5-3.5 3.5s-3.5-1.563-3.5-3.5 1.563-3.5 3.5-3.5 3.5 1.563 3.5 3.5z"></path>
422 2
</svg>',
423
			'time'       => '<svg class="gc-icon svg gc-icon-time" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="28" viewBox="0 0 24 28">
424
<title>time</title>
425
<path d="M14 8.5v7c0 0.281-0.219 0.5-0.5 0.5h-5c-0.281 0-0.5-0.219-0.5-0.5v-1c0-0.281 0.219-0.5 0.5-0.5h3.5v-5.5c0-0.281 0.219-0.5 0.5-0.5h1c0.281 0 0.5 0.219 0.5 0.5zM20.5 14c0-4.688-3.813-8.5-8.5-8.5s-8.5 3.813-8.5 8.5 3.813 8.5 8.5 8.5 8.5-3.813 8.5-8.5zM24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z"></path>
426 2
</svg>',
427
			'players'    => '<svg class="gc-icon svg gc-icon-players" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="28" viewBox="0 0 30 28">
428
<title>players</title>
429
<path d="M9.266 14c-1.625 0.047-3.094 0.75-4.141 2h-2.094c-1.563 0-3.031-0.75-3.031-2.484 0-1.266-0.047-5.516 1.937-5.516 0.328 0 1.953 1.328 4.062 1.328 0.719 0 1.406-0.125 2.078-0.359-0.047 0.344-0.078 0.688-0.078 1.031 0 1.422 0.453 2.828 1.266 4zM26 23.953c0 2.531-1.672 4.047-4.172 4.047h-13.656c-2.5 0-4.172-1.516-4.172-4.047 0-3.531 0.828-8.953 5.406-8.953 0.531 0 2.469 2.172 5.594 2.172s5.063-2.172 5.594-2.172c4.578 0 5.406 5.422 5.406 8.953zM10 4c0 2.203-1.797 4-4 4s-4-1.797-4-4 1.797-4 4-4 4 1.797 4 4zM21 10c0 3.313-2.688 6-6 6s-6-2.688-6-6 2.688-6 6-6 6 2.688 6 6zM30 13.516c0 1.734-1.469 2.484-3.031 2.484h-2.094c-1.047-1.25-2.516-1.953-4.141-2 0.812-1.172 1.266-2.578 1.266-4 0-0.344-0.031-0.688-0.078-1.031 0.672 0.234 1.359 0.359 2.078 0.359 2.109 0 3.734-1.328 4.062-1.328 1.984 0 1.937 4.25 1.937 5.516zM28 4c0 2.203-1.797 4-4 4s-4-1.797-4-4 1.797-4 4-4 4 1.797 4 4z"></path>
430 2
</svg>',
431
			'difficulty' => '<svg class="gc-icon svg gc-icon-difficulty" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="26" height="28" viewBox="0 0 26 28">
432
<title>difficulty</title>
433
<path d="M26 17.156c0 1.609-0.922 2.953-2.625 2.953-1.906 0-2.406-1.734-4.125-1.734-1.25 0-1.719 0.781-1.719 1.937 0 1.219 0.5 2.391 0.484 3.594v0.078c-0.172 0-0.344 0-0.516 0.016-1.609 0.156-3.234 0.469-4.859 0.469-1.109 0-2.266-0.438-2.266-1.719 0-1.719 1.734-2.219 1.734-4.125 0-1.703-1.344-2.625-2.953-2.625-1.641 0-3.156 0.906-3.156 2.703 0 1.984 1.516 2.844 1.516 3.922 0 0.547-0.344 1.031-0.719 1.391-0.484 0.453-1.172 0.547-1.828 0.547-1.281 0-2.562-0.172-3.828-0.375-0.281-0.047-0.578-0.078-0.859-0.125l-0.203-0.031c-0.031-0.016-0.078-0.016-0.078-0.031v-16c0.063 0.047 0.984 0.156 1.141 0.187 1.266 0.203 2.547 0.375 3.828 0.375 0.656 0 1.344-0.094 1.828-0.547 0.375-0.359 0.719-0.844 0.719-1.391 0-1.078-1.516-1.937-1.516-3.922 0-1.797 1.516-2.703 3.172-2.703 1.594 0 2.938 0.922 2.938 2.625 0 1.906-1.734 2.406-1.734 4.125 0 1.281 1.156 1.719 2.266 1.719 1.797 0 3.578-0.406 5.359-0.5v0.031c-0.047 0.063-0.156 0.984-0.187 1.141-0.203 1.266-0.375 2.547-0.375 3.828 0 0.656 0.094 1.344 0.547 1.828 0.359 0.375 0.844 0.719 1.391 0.719 1.078 0 1.937-1.516 3.922-1.516 1.797 0 2.703 1.516 2.703 3.156z"></path>
434 2
</svg>',
435
			'tags'       => '<svg class="gc-icon svg gc-icon-tags" aria-labelledby="title-ID" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="28" viewBox="0 0 30 28">
436
<title>tags</title>
437
<path d="M7 7c0-1.109-0.891-2-2-2s-2 0.891-2 2 0.891 2 2 2 2-0.891 2-2zM23.672 16c0 0.531-0.219 1.047-0.578 1.406l-7.672 7.688c-0.375 0.359-0.891 0.578-1.422 0.578s-1.047-0.219-1.406-0.578l-11.172-11.188c-0.797-0.781-1.422-2.297-1.422-3.406v-6.5c0-1.094 0.906-2 2-2h6.5c1.109 0 2.625 0.625 3.422 1.422l11.172 11.156c0.359 0.375 0.578 0.891 0.578 1.422zM29.672 16c0 0.531-0.219 1.047-0.578 1.406l-7.672 7.688c-0.375 0.359-0.891 0.578-1.422 0.578-0.812 0-1.219-0.375-1.75-0.922l7.344-7.344c0.359-0.359 0.578-0.875 0.578-1.406s-0.219-1.047-0.578-1.422l-11.172-11.156c-0.797-0.797-2.312-1.422-3.422-1.422h3.5c1.109 0 2.625 0.625 3.422 1.422l11.172 11.156c0.359 0.375 0.578 0.891 0.578 1.422z"></path>
438 2
</svg>',
439 2
		];
440
441
		/**
442
		 * Allow svg icons to be filtered.
443
		 *
444
		 * @var array
445
		 */
446 2
		$icons = apply_filters( 'gc_filter_svg_xml', $icons );
447
	} // End if().
448
449 2
	return $icons[ $name ];
450
}
451
452
/**
453
 * Get a SVG icon by name. Wrapper for get_svg.
454
 *
455
 * @since  1.1.0
456
 * @param  string $name    An icon name.
457
 * @param  bool   $encoded Whether to return the svg as a base64 encoded image (for background images) or the raw SVG XML.
458
 */
459
function the_svg( $name = '', $encoded = true ) {
460 2
	echo get_svg( $name, $encoded ); // WPCS: XSS ok.
461
}
462