FEEDZY RSS Feeds Lite - Version 3.3.11

Version Description

  • 2019-09-24
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 FEEDZY RSS Feeds Lite
Version 3.3.11
Comparing to
See all releases

Code changes from version 3.3.10 to 3.3.11

CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
 
 
 
 
 
 
 
2
  ### v3.3.10 - 2019-08-20
3
  **Changes:**
4
  * Fix issue with undefined index: proxy
1
 
2
+ ### v3.3.11 - 2019-09-24
3
+ **Changes:**
4
+ * Fix issue with replacing ellipsis
5
+ * Fix issue in widget where error message cannot be overridden
6
+ * Fix issues with some summaries getting truncated
7
+
8
  ### v3.3.10 - 2019-08-20
9
  **Changes:**
10
  * Fix issue with undefined index: proxy
css/feedzy-rss-feeds.css CHANGED
@@ -2,7 +2,7 @@
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
- * Version: 3.3.10
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
2
  * feedzy-rss-feeds.css
3
  * Feedzy RSS Feed
4
  * Copyright: (c) 2016 Themeisle, themeisle.com
5
+ * Version: 3.3.11
6
  * Plugin Name: FEEDZY RSS Feeds
7
  * Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
8
  * Author: Themeisle
cypress.env.json.template ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ {
2
+ "host": "http://localhost:90/", // the site url
3
+ "wp-admin": "wp-admin/", // the path to wp-admin
4
+ "login": "wordpress", // the WP username
5
+ "pass": "wordpress" // the WP password
6
+ }
cypress.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ {
2
+ "env": {
3
+ "shortcode": "[feedzy-rss feeds='https://s3.amazonaws.com/downloads.themeisle.com/sample-feed.xml' max='10' feed_title='yes' refresh='1_hours' meta='yes' summary='yes' price='yes' mapping='price=im:price' thumb='yes' keywords_title='God, Mendes, Cyrus' keywords_ban='Cyrus' template='style1']"
4
+ },
5
+ "projectId": "vj4ftg",
6
+ "videoUploadOnPasses": false
7
+ }
docker-compose.travis.yml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: '3.3'
2
+ services:
3
+ mysql:
4
+ image: mysql:5.7
5
+ container_name: feedzy_mysql
6
+ volumes:
7
+ - ./bin/mysql:/docker-entrypoint-initdb.d
8
+ restart: always
9
+ environment:
10
+ MYSQL_ROOT_PASSWORD: wordpress
11
+ MYSQL_DATABASE: wordpress
12
+ MYSQL_USER: wordpress
13
+ MYSQL_PASSWORD: wordpress
14
+
15
+ wordpress:
16
+ container_name: feedzy_wordpress
17
+ depends_on:
18
+ - mysql
19
+ image: hardeepasrani/pirate-brewery
20
+ networks:
21
+ - default
22
+ ports:
23
+ - 8888:80
24
+ volumes:
25
+ - ~/wpcore:/var/www/html/
26
+ - ./wp-content:/var/www/html/wp-content/
27
+ - .:/var/www/html/wp-content/plugins/feedzy-rss-feeds/
28
+ restart: always
29
+ environment:
30
+ WORDPRESS_DB_NAME: wordpress
31
+ WORDPRESS_DB_USER: wordpress
32
+ WORDPRESS_DB_PASSWORD: wordpress
33
+ WORDPRESS_DEBUG: 1
34
+ WORDPRESS_DB_ROOT_PASSWORD: wordpress
35
+
36
+
feedzy-rss-feed.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: A small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
18
- * Version: 3.3.10
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
15
  * Plugin Name: Feedzy RSS Feeds Lite
16
  * Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
17
  * Description: A small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
18
+ * Version: 3.3.11
19
  * Author: Themeisle
20
  * Author URI: http://themeisle.com
21
  * License: GPL-2.0+
includes/abstract/feedzy-rss-feeds-admin-abstract.php CHANGED
@@ -156,7 +156,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
156
  */
157
  public function feedzy_summary_input_filter( $description, $content, $feed_url ) {
158
  $description = trim( strip_tags( $description ) );
159
- $description = trim( chop( $description, '[…]' ) );
160
 
161
  return $description;
162
  }
@@ -309,7 +309,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
309
  'follow' => '',
310
  // strip title after X char. X can be 0 too, which will remove the title.
311
  'title' => '',
312
- // yes (author, date, time), no (NEITHER), author, date, time,
313
  // tz=local (for date/time in blog time)
314
  // tz=gmt (for date/time in UTC time, this is the default)
315
  // tz=no (for date/time in the feed, without conversion)
@@ -880,6 +880,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
880
  'author' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'author' ) !== false,
881
  'date' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'date' ) !== false,
882
  'time' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'time' ) !== false,
 
883
  'tz' => 'gmt',
884
  'date_format' => get_option( 'date_format' ),
885
  'time_format' => get_option( 'time_format' ),
@@ -899,50 +900,56 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
899
  // Filter: feedzy_meta_args
900
  $meta_args = apply_filters( 'feedzy_meta_args', $meta_args, $feed_url, $item );
901
  $content_meta = $content_meta_date = '';
902
- if ( $meta_args['author'] || $meta_args['date'] || $meta_args['time'] ) {
903
- $content_meta = '';
904
- if ( $item->get_author() && $meta_args['author'] ) {
905
- $author = $item->get_author();
906
- if ( ! $author_name = $author->get_name() ) {
907
- $author_name = $author->get_email();
908
- }
909
-
910
- $author_name = apply_filters( 'feedzy_author_name', $author_name, $feed_url, $item );
911
 
912
- if ( $author_name ) {
913
- $domain = parse_url( $new_link );
914
- $author_url = '//' . $domain['host'];
915
- $author_url = apply_filters( 'feedzy_author_url', $author_url, $author_name, $feed_url, $item );
916
- $content_meta .= __( 'by', 'feedzy-rss-feeds' ) . ' <a href="' . $author_url . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $author_name . '</a> ';
917
- }
918
  }
919
 
920
- $date_time = $item->get_date( 'U' );
921
- if ( $meta_args['tz'] === 'local' ) {
922
- $date_time = get_date_from_gmt( $item->get_date( 'Y-m-d H:i:s' ), 'U' );
923
- // strings such as Asia/Kolkata need special handling.
924
- $tz = get_option( 'timezone_string' );
925
- if ( $tz ) {
926
- $date_time = gmdate( 'U', $date_time + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
927
- }
928
- } elseif ( $meta_args['tz'] === 'no' ) {
929
- // change the tz component of the date to UTC.
930
- $raw_date = preg_replace( '/\++(\d\d\d\d)/', '+0000', $item->get_date( '' ) );
931
- $date = DateTime::createFromFormat( DATE_RFC2822, $raw_date );
932
- $date_time = $date->format( 'U' );
933
  }
 
934
 
935
- $date_time = apply_filters( 'feedzy_feed_timestamp', $date_time, $feed_url, $item );
936
- $content_meta_date = $date_time;
937
- if ( $meta_args['date'] && ! empty( $meta_args['date_format'] ) ) {
938
- $content_meta_date = __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $meta_args['date_format'], $date_time ) . ' ';
 
 
 
939
  }
 
 
 
 
 
 
940
 
941
- if ( $meta_args['time'] && ! empty( $meta_args['time_format'] ) ) {
942
- $content_meta_date .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $meta_args['time_format'], $date_time );
 
 
 
 
 
 
 
 
 
 
 
 
 
943
  }
944
- $content_meta .= $content_meta_date;
945
  }
 
946
  $content_meta = apply_filters( 'feedzy_meta_output', $content_meta, $feed_url, $item );
947
  $content_summary = '';
948
  if ( $sc['summary'] === 'yes' ) {
@@ -950,7 +957,7 @@ abstract class Feedzy_Rss_Feeds_Admin_Abstract {
950
  $description = apply_filters( 'feedzy_summary_input', $description, $item->get_content(), $feed_url, $item );
951
  $content_summary = $description;
952
  if ( is_numeric( $sc['summarylength'] ) && strlen( $description ) > $sc['summarylength'] ) {
953
- $content_summary = preg_replace( '/\s+?(\S+)?$/', '', substr( $description, 0, $sc['summarylength'] ) ) . ' []';
954
  }
955
  $content_summary = apply_filters( 'feedzy_summary_output', $content_summary, $new_link, $feed_url, $item );
956
  }
156
  */
157
  public function feedzy_summary_input_filter( $description, $content, $feed_url ) {
158
  $description = trim( strip_tags( $description ) );
159
+ $description = trim( str_replace( array( '[…]', '[…]', '[&hellip;]' ), '', $description ) );
160
 
161
  return $description;
162
  }
309
  'follow' => '',
310
  // strip title after X char. X can be 0 too, which will remove the title.
311
  'title' => '',
312
+ // yes (author, date, time), no (NEITHER), author, date, time, categories
313
  // tz=local (for date/time in blog time)
314
  // tz=gmt (for date/time in UTC time, this is the default)
315
  // tz=no (for date/time in the feed, without conversion)
880
  'author' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'author' ) !== false,
881
  'date' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'date' ) !== false,
882
  'time' => $sc['meta'] === 'yes' || strpos( $sc['meta'], 'time' ) !== false,
883
+ 'categories' => strpos( $sc['meta'], 'categories' ) !== false,
884
  'tz' => 'gmt',
885
  'date_format' => get_option( 'date_format' ),
886
  'time_format' => get_option( 'time_format' ),
900
  // Filter: feedzy_meta_args
901
  $meta_args = apply_filters( 'feedzy_meta_args', $meta_args, $feed_url, $item );
902
  $content_meta = $content_meta_date = '';
 
 
 
 
 
 
 
 
 
903
 
904
+ if ( $item->get_author() && $meta_args['author'] ) {
905
+ $author = $item->get_author();
906
+ if ( ! $author_name = $author->get_name() ) {
907
+ $author_name = $author->get_email();
 
 
908
  }
909
 
910
+ $author_name = apply_filters( 'feedzy_author_name', $author_name, $feed_url, $item );
911
+
912
+ if ( $author_name ) {
913
+ $domain = parse_url( $new_link );
914
+ $author_url = '//' . $domain['host'];
915
+ $author_url = apply_filters( 'feedzy_author_url', $author_url, $author_name, $feed_url, $item );
916
+ $content_meta .= __( 'by', 'feedzy-rss-feeds' ) . ' <a href="' . $author_url . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $author_name . '</a> ';
 
 
 
 
 
 
917
  }
918
+ }
919
 
920
+ $date_time = $item->get_date( 'U' );
921
+ if ( $meta_args['tz'] === 'local' ) {
922
+ $date_time = get_date_from_gmt( $item->get_date( 'Y-m-d H:i:s' ), 'U' );
923
+ // strings such as Asia/Kolkata need special handling.
924
+ $tz = get_option( 'timezone_string' );
925
+ if ( $tz ) {
926
+ $date_time = gmdate( 'U', $date_time + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
927
  }
928
+ } elseif ( $meta_args['tz'] === 'no' ) {
929
+ // change the tz component of the date to UTC.
930
+ $raw_date = preg_replace( '/\++(\d\d\d\d)/', '+0000', $item->get_date( '' ) );
931
+ $date = DateTime::createFromFormat( DATE_RFC2822, $raw_date );
932
+ $date_time = $date->format( 'U' );
933
+ }
934
 
935
+ $date_time = apply_filters( 'feedzy_feed_timestamp', $date_time, $feed_url, $item );
936
+ if ( $meta_args['date'] && ! empty( $meta_args['date_format'] ) ) {
937
+ $content_meta_date = __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $meta_args['date_format'], $date_time ) . ' ';
938
+ }
939
+
940
+ if ( $meta_args['time'] && ! empty( $meta_args['time_format'] ) ) {
941
+ $content_meta_date .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $meta_args['time_format'], $date_time ) . ' ';
942
+ }
943
+
944
+ $content_meta .= $content_meta_date;
945
+
946
+ if ( $meta_args['categories'] && has_filter( 'feedzy_retrieve_categories' ) ) {
947
+ $categories = apply_filters( 'feedzy_retrieve_categories', null, $item );
948
+ if ( ! empty( $categories ) ) {
949
+ $content_meta .= __( 'in', 'feedzy-rss-feeds' ) . ' ' . $categories . ' ';
950
  }
 
951
  }
952
+
953
  $content_meta = apply_filters( 'feedzy_meta_output', $content_meta, $feed_url, $item );
954
  $content_summary = '';
955
  if ( $sc['summary'] === 'yes' ) {
957
  $description = apply_filters( 'feedzy_summary_input', $description, $item->get_content(), $feed_url, $item );
958
  $content_summary = $description;
959
  if ( is_numeric( $sc['summarylength'] ) && strlen( $description ) > $sc['summarylength'] ) {
960
+ $content_summary = preg_replace( '/\s+?(\S+)?$/', '', substr( $description, 0, $sc['summarylength'] ) ) . ' [&hellip;]';
961
  }
962
  $content_summary = apply_filters( 'feedzy_summary_output', $content_summary, $new_link, $feed_url, $item );
963
  }
includes/admin/feedzy-rss-feeds-ui-lang.php CHANGED
@@ -88,6 +88,11 @@ class Feedzy_Rss_Feeds_Ui_Lang {
88
  * @return array|mixed|void
89
  */
90
  public static function get_form_elements() {
 
 
 
 
 
91
  $elements = array(
92
  'section_feed' => array(
93
  'title' => __( 'Feed Source', 'feedzy-rss-feeds' ),
@@ -242,7 +247,7 @@ class Feedzy_Rss_Feeds_Ui_Lang {
242
  'value' => '',
243
  ),
244
  'meta' => array(
245
- 'label' => sprintf( __( 'Should we display additional meta fields out of %1$sauthor%2$s, %3$sdate%4$s and %5$stime%6$s? (comma-separated list). View documentation %7$shere%8$s.', 'feedzy-rss-feeds' ), '<code>', '</code>', '<code>', '</code>', '<code>', '</code>', '<a href="https://docs.themeisle.com/article/1089-how-to-display-author-date-or-time-from-the-feed" target="_new">', '</a>' ),
246
  'placeholder' => __( '(eg: author, date, time, tz=local)', 'feedzy-rss-feeds' ),
247
  'type' => 'text',
248
  'value' => '',
@@ -347,7 +352,7 @@ class Feedzy_Rss_Feeds_Ui_Lang {
347
  'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy-rss-feeds' ) . '<br/>' . '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '</small></a>',
348
  'elements' => array(
349
  'price' => array(
350
- 'label' => __( 'Should we display the price from the feed if it is available? <br/> You can read about how to extract price from a custom tag %1$shere%2$s', 'feedzy-rss-feeds' ),
351
  'type' => 'select',
352
  'disabled' => true,
353
  'value' => '',
88
  * @return array|mixed|void
89
  */
90
  public static function get_form_elements() {
91
+ $meta = sprintf( __( 'Should we display additional meta fields out of %1$sauthor%2$s, %3$sdate%4$s and %5$stime%6$s? (comma-separated list). View documentation %7$shere%8$s.', 'feedzy-rss-feeds' ), '<code>', '</code>', '<code>', '</code>', '<code>', '</code>', '<a href="https://docs.themeisle.com/article/1089-how-to-display-author-date-or-time-from-the-feed" target="_new">', '</a>' );
92
+ if ( has_filter( 'feedzy_retrieve_categories' ) ) {
93
+ $meta = sprintf( __( 'Should we display additional meta fields out of %1$sauthor%2$s, %3$sdate%4$s, %5$stime%6$s and %7$scategories%8$s? (comma-separated list). View documentation %9$shere%10$s.', 'feedzy-rss-feeds' ), '<code>', '</code>', '<code>', '</code>', '<code>', '</code>', '<code>', '</code>', '<a href="https://docs.themeisle.com/article/1089-how-to-display-author-date-or-time-from-the-feed" target="_new">', '</a>' );
94
+ }
95
+
96
  $elements = array(
97
  'section_feed' => array(
98
  'title' => __( 'Feed Source', 'feedzy-rss-feeds' ),
247
  'value' => '',
248
  ),
249
  'meta' => array(
250
+ 'label' => $meta,
251
  'placeholder' => __( '(eg: author, date, time, tz=local)', 'feedzy-rss-feeds' ),
252
  'type' => 'text',
253
  'value' => '',
352
  'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy-rss-feeds' ) . '<br/>' . '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '</small></a>',
353
  'elements' => array(
354
  'price' => array(
355
+ 'label' => sprintf( __( 'Should we display the price from the feed if it is available? <br/> You can read about how to extract price from a custom tag %1$shere%2$s', 'feedzy-rss-feeds' ), '<a href="https://docs.themeisle.com/article/977-how-do-i-extract-values-from-custom-tags-in-feedzy" target="_blank">', '</a>' ),
356
  'type' => 'select',
357
  'disabled' => true,
358
  'value' => '',
includes/admin/feedzy-wp-widget.php CHANGED
@@ -241,6 +241,7 @@ class feedzy_wp_widget extends WP_Widget {
241
  'size' => $instance['size'],
242
  'keywords_title' => $instance['keywords_title'],
243
  'keywords_ban' => $instance['keywords_ban'],
 
244
  );
245
  $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
246
 
241
  'size' => $instance['size'],
242
  'keywords_title' => $instance['keywords_title'],
243
  'keywords_ban' => $instance['keywords_ban'],
244
+ 'error_empty' => $instance['error_empty'],
245
  );
246
  $feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
247
 
includes/feedzy-rss-feeds.php CHANGED
@@ -104,7 +104,7 @@ class Feedzy_Rss_Feeds {
104
  */
105
  public function init() {
106
  self::$plugin_name = 'feedzy-rss-feeds';
107
- self::$version = '3.3.10';
108
  self::$instance->load_dependencies();
109
  self::$instance->set_locale();
110
  self::$instance->define_admin_hooks();
104
  */
105
  public function init() {
106
  self::$plugin_name = 'feedzy-rss-feeds';
107
+ self::$version = '3.3.11';
108
  self::$instance->load_dependencies();
109
  self::$instance->set_locale();
110
  self::$instance->define_admin_hooks();
includes/gutenberg/build/block.js CHANGED
@@ -242,7 +242,7 @@ eval("var def = __webpack_require__(5).f;\nvar has = __webpack_require__(7);\nva
242
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
243
 
244
  "use strict";
245
- eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_query_string__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__attributes__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__inspector__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(52);\n\n\nvar _this = this;\n\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n\n\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar registerBlockType = wp.blocks.registerBlockType;\nvar _wp$components = wp.components,\n ExternalLink = _wp$components.ExternalLink,\n Placeholder = _wp$components.Placeholder,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n Spinner = _wp$components.Spinner;\nvar date = wp.date.date;\n\n/**\n * Register block\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (registerBlockType('feedzy-rss-feeds/feedzy-block', {\n\ttitle: __('Feedzy RSS Feeds'),\n\tcategory: 'common',\n\ticon: 'rss',\n\tkeywords: [__('Feedzy RSS Feeds'), __('RSS'), __('Feeds')],\n\tsupports: {\n\t\thtml: false\n\t},\n\tattributes: __WEBPACK_IMPORTED_MODULE_3__attributes__[\"a\" /* default */],\n\tedit: function edit(props) {\n\t\tvar onChangeFeeds = function onChangeFeeds(value) {\n\t\t\tprops.setAttributes({ feeds: value });\n\t\t};\n\t\tvar onChangeMax = function onChangeMax(value) {\n\t\t\tprops.setAttributes({ max: value.toString() });\n\t\t};\n\t\tvar toggleFeedTitle = function toggleFeedTitle(value) {\n\t\t\tprops.setAttributes({ feed_title: !props.attributes.feed_title });\n\t\t};\n\t\tvar onRefresh = function onRefresh(value) {\n\t\t\tprops.setAttributes({ refresh: value });\n\t\t};\n\t\tvar onSort = function onSort(value) {\n\t\t\tprops.setAttributes({ sort: value });\n\t\t};\n\t\tvar onTarget = function onTarget(value) {\n\t\t\tprops.setAttributes({ target: value });\n\t\t};\n\t\tvar onTitle = function onTitle(value) {\n\t\t\tprops.setAttributes({ title: value });\n\t\t};\n\t\tvar changeMeta = function changeMeta(value) {\n\t\t\tprops.setAttributes({ metafields: value });\n\t\t};\n\t\tvar toggleSummary = function toggleSummary(value) {\n\t\t\tprops.setAttributes({ summary: !props.attributes.summary });\n\t\t};\n\t\tvar onSummaryLength = function onSummaryLength(value) {\n\t\t\tprops.setAttributes({ summarylength: value });\n\t\t};\n\t\tvar onKeywordsTitle = function onKeywordsTitle(value) {\n\t\t\tprops.setAttributes({ keywords_title: value });\n\t\t};\n\t\tvar onKeywordsBan = function onKeywordsBan(value) {\n\t\t\tprops.setAttributes({ keywords_ban: value });\n\t\t};\n\t\tvar onThumb = function onThumb(value) {\n\t\t\tprops.setAttributes({ thumb: value });\n\t\t};\n\t\tvar onDefault = function onDefault(value) {\n\t\t\tprops.setAttributes({ default: value });\n\t\t};\n\t\tvar onSize = function onSize(value) {\n\t\t\tprops.setAttributes({ size: value });\n\t\t};\n\t\tvar onReferralURL = function onReferralURL(value) {\n\t\t\tprops.setAttributes({ referral_url: value });\n\t\t};\n\t\tvar onColumns = function onColumns(value) {\n\t\t\tprops.setAttributes({ columns: value });\n\t\t};\n\t\tvar onTemplate = function onTemplate(value) {\n\t\t\tprops.setAttributes({ template: value });\n\t\t};\n\t\tvar togglePrice = function togglePrice(value) {\n\t\t\tprops.setAttributes({ price: !props.attributes.price });\n\t\t};\n\t\tvar loadFeed = function loadFeed() {\n\t\t\tprops.setAttributes({ status: 1 });\n\n\t\t\tvar url = props.attributes.feeds;\n\n\t\t\tif (url === undefined) {\n\t\t\t\treturn props.setAttributes({ status: 3 });\n\t\t\t}\n\n\t\t\tif (Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"b\" /* inArray */])(url, props.attributes.categories)) {\n\t\t\t\tvar category = url;\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ category: category }, { arrayFormat: 'bracket' });\n\t\t\t} else {\n\t\t\t\turl = url.replace(/\\s/g, '').split(',').filter(function (item) {\n\t\t\t\t\treturn item !== '';\n\t\t\t\t});\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ url: url }, { arrayFormat: 'bracket' });\n\t\t\t}\n\n\t\t\twp.apiRequest({ path: '/feedzy/v1/feed?' + url }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tif (!data['error']) {\n\t\t\t\t\tprops.setAttributes({ feedData: data });\n\t\t\t\t\tprops.setAttributes({ status: 2 });\n\t\t\t\t\treturn data;\n\t\t\t\t} else {\n\t\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t}).fail(function (err) {\n\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tvar loadCategories = function loadCategories() {\n\t\t\twp.apiRequest({ path: '/wp/v2/feedzy_categories' }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tvar i = 0;\n\t\t\t\tvar categories = [];\n\t\t\t\tdata.forEach(function (item) {\n\t\t\t\t\tcategories[i] = item.slug;\n\t\t\t\t\ti = i + 1;\n\t\t\t\t});\n\t\t\t\tprops.setAttributes({ categories: categories });\n\t\t\t\tjQuery('.feedzy-source input').autocomplete({\n\t\t\t\t\tsource: categories,\n\t\t\t\t\tselect: function select(event, ui) {\n\t\t\t\t\t\tprops.setAttributes({ feeds: ui.item.label });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function (err) {\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tvar metaExists = function metaExists(value) {\n\t\t\treturn 0 <= props.attributes.metafields.replace(/\\s/g, '').split(',').indexOf(value) || '' === props.attributes.metafields;\n\t\t};\n\t\tif (props.attributes.categories === undefined) {\n\t\t\tif (!props.attributes.meta) {\n\t\t\t\tprops.setAttributes({\n\t\t\t\t\tmeta: true,\n\t\t\t\t\tmetafields: 'no'\n\t\t\t\t});\n\t\t\t}\n\t\t\tloadCategories();\n\t\t}\n\t\treturn [\n\t\t// Inspector\n\t\t!!props.isSelected && wp.element.createElement(__WEBPACK_IMPORTED_MODULE_4__inspector__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ onChangeFeeds: onChangeFeeds, onChangeMax: onChangeMax, toggleFeedTitle: toggleFeedTitle, onRefresh: onRefresh, onSort: onSort, onTarget: onTarget, onTitle: onTitle, changeMeta: changeMeta, toggleSummary: toggleSummary, onSummaryLength: onSummaryLength, onKeywordsTitle: onKeywordsTitle, onKeywordsBan: onKeywordsBan, onThumb: onThumb, onDefault: onDefault, onSize: onSize, onReferralURL: onReferralURL, onColumns: onColumns, onTemplate: onTemplate, togglePrice: togglePrice, loadFeed: loadFeed }, props)), props.attributes.status !== 2 && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: props.className },\n\t\t\twp.element.createElement(\n\t\t\t\tPlaceholder,\n\t\t\t\t{\n\t\t\t\t\tkey: 'placeholder',\n\t\t\t\t\ticon: 'rss',\n\t\t\t\t\tlabel: __('Feedzy RSS Feeds')\n\t\t\t\t},\n\t\t\t\tprops.attributes.status === 1 ? wp.element.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ key: 'loading', className: 'wp-block-embed is-loading' },\n\t\t\t\t\twp.element.createElement(Spinner, null),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'p',\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t__('Fetching…')\n\t\t\t\t\t)\n\t\t\t\t) : [props.attributes.status === 3 && wp.element.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\tnull,\n\t\t\t\t\t__('Feed URL Invalid')\n\t\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\t\ttype: 'url',\n\t\t\t\t\tclassName: 'feedzy-source',\n\t\t\t\t\tplaceholder: __('Enter URL or category of your feed here…'),\n\t\t\t\t\tonChange: onChangeFeeds,\n\t\t\t\t\tvalue: props.attributes.feeds\n\t\t\t\t}), wp.element.createElement(\n\t\t\t\t\tButton,\n\t\t\t\t\t{\n\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\ttype: 'submit',\n\t\t\t\t\t\tonClick: loadFeed\n\t\t\t\t\t},\n\t\t\t\t\t__('Load Feed')\n\t\t\t\t), wp.element.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tExternalLink,\n\t\t\t\t\t\t{ href: 'https://validator.w3.org/feed/' },\n\t\t\t\t\t\t__('Click here to check if feed is valid. ')\n\t\t\t\t\t),\n\t\t\t\t\t__('Invalid feeds will NOT display items.')\n\t\t\t\t)]\n\t\t\t)\n\t\t), !!(props.attributes.status === 2 && props.attributes.feedData !== undefined) && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: 'feedzy-rss' },\n\t\t\tprops.attributes.feed_title && props.attributes.feedData['channel'] !== null && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'rss_header' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'h2',\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'a',\n\t\t\t\t\t\t{ className: 'rss_title' },\n\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['title'])\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\t{ className: 'rss_description' },\n\t\t\t\t\t\t' ' + Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['description'])\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t),\n\t\t\twp.element.createElement(\n\t\t\t\t'ul',\n\t\t\t\t{ className: 'feedzy-' + props.attributes.template },\n\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* filterData */])(props.attributes.feedData['items'], props.attributes.sort, props.attributes.keywords_title, props.attributes.keywords_ban, props.attributes.max).map(function (item, i) {\n\t\t\t\t\tvar itemDateTime = (item['date'] || '') + ' ' + (item['time'] || '') + ' UTC +0000';\n\t\t\t\t\tvar itemDate = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['date']) || '';\n\t\t\t\t\tvar itemTime = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['time']) || '';\n\t\t\t\t\tif (metaExists('tz=local')) {\n\t\t\t\t\t\titemDate = date('F jS, \\o', itemDateTime);\n\t\t\t\t\t\titemTime = date('h:i A', itemDateTime);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t'li',\n\t\t\t\t\t\t{ key: i, style: { padding: '15px 0 25px' }, className: 'rss_item feedzy-rss-col-' + props.attributes.columns },\n\t\t\t\t\t\t(item['thumbnail'] && props.attributes.thumb === 'auto' || props.attributes.thumb === 'yes') && wp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_image', style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t{ title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']), style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\t\twp.element.createElement('span', { className: 'fetched', style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px', backgroundImage: 'url(' + (item['thumbnail'] ? item['thumbnail'] : props.attributes.default ? props.attributes.default.url : feedzyjs.imagepath + 'feedzy-default.jpg') + ')' }, title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']) })\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_content_wrap' },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t\t{ className: 'title' },\n\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tprops.attributes.title && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).length > props.attributes.title ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).substring(0, props.attributes.title) + '...' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title'])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t{ className: 'rss_content' },\n\t\t\t\t\t\t\t\tprops.attributes.metafields !== 'no' && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'small',\n\t\t\t\t\t\t\t\t\t{ className: 'meta' },\n\t\t\t\t\t\t\t\t\titem['creator'] && metaExists('author') && [__('by'), ' ', wp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['creator'])\n\t\t\t\t\t\t\t\t\t), ' '],\n\t\t\t\t\t\t\t\t\tmetaExists('date') && [__('on'), ' ', Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(itemDate), ' '],\n\t\t\t\t\t\t\t\t\tmetaExists('time') && [__('at'), ' ', Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(itemTime)]\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tprops.attributes.summary && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'p',\n\t\t\t\t\t\t\t\t\t{ className: 'description' },\n\t\t\t\t\t\t\t\t\tprops.attributes.summarylength && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).length > props.attributes.summarylength ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).substring(0, props.attributes.summarylength) + ' […]' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description'])\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && item['media'] && item['media']['src'] && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'audio',\n\t\t\t\t\t\t\t\t\t{ controls: true, controlsList: 'nodownload' },\n\t\t\t\t\t\t\t\t\twp.element.createElement('source', { src: item['media']['src'], type: item['media']['type'] }),\n\t\t\t\t\t\t\t\t\t__('Your browser does not support the audio element. But you can check this for the original link: '),\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\t{ href: item['media']['src'] },\n\t\t\t\t\t\t\t\t\t\titem['media']['src']\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && props.attributes.price && item['price'] && props.attributes.template !== 'default' && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'price-wrap' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t\t'button',\n\t\t\t\t\t\t\t\t\t\t\t{ className: 'price' },\n\t\t\t\t\t\t\t\t\t\t\titem['price']\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t)\n\t\t)];\n\t},\n\tsave: function save() {\n\t\t// Rendering in PHP\n\t\treturn null;\n\t}\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2Jsb2NrLmpzPzUxZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcblxudmFyIF90aGlzID0gdGhpcztcblxuLy8ganNoaW50IGlnbm9yZTogc3RhcnRcblxuLyoqXG4gKiBCbG9jayBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5pbXBvcnQgYmxvY2tBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yJztcbmltcG9ydCB7IHVuZXNjYXBlSFRNTCwgZmlsdGVyRGF0YSwgaW5BcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEludGVybmFsIGJsb2NrIGxpYnJhcmllc1xuICovXG52YXIgX18gPSB3cC5pMThuLl9fO1xudmFyIHJlZ2lzdGVyQmxvY2tUeXBlID0gd3AuYmxvY2tzLnJlZ2lzdGVyQmxvY2tUeXBlO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBFeHRlcm5hbExpbmsgPSBfd3AkY29tcG9uZW50cy5FeHRlcm5hbExpbmssXG4gICAgUGxhY2Vob2xkZXIgPSBfd3AkY29tcG9uZW50cy5QbGFjZWhvbGRlcixcbiAgICBUZXh0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlRleHRDb250cm9sLFxuICAgIEJ1dHRvbiA9IF93cCRjb21wb25lbnRzLkJ1dHRvbixcbiAgICBTcGlubmVyID0gX3dwJGNvbXBvbmVudHMuU3Bpbm5lcjtcbnZhciBkYXRlID0gd3AuZGF0ZS5kYXRlO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGJsb2NrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgcmVnaXN0ZXJCbG9ja1R5cGUoJ2ZlZWR6eS1yc3MtZmVlZHMvZmVlZHp5LWJsb2NrJywge1xuXHR0aXRsZTogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKSxcblx0Y2F0ZWdvcnk6ICdjb21tb24nLFxuXHRpY29uOiAncnNzJyxcblx0a2V5d29yZHM6IFtfXygnRmVlZHp5IFJTUyBGZWVkcycpLCBfXygnUlNTJyksIF9fKCdGZWVkcycpXSxcblx0c3VwcG9ydHM6IHtcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHRhdHRyaWJ1dGVzOiBibG9ja0F0dHJpYnV0ZXMsXG5cdGVkaXQ6IGZ1bmN0aW9uIGVkaXQocHJvcHMpIHtcblx0XHR2YXIgb25DaGFuZ2VGZWVkcyA9IGZ1bmN0aW9uIG9uQ2hhbmdlRmVlZHModmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25DaGFuZ2VNYXggPSBmdW5jdGlvbiBvbkNoYW5nZU1heCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IG1heDogdmFsdWUudG9TdHJpbmcoKSB9KTtcblx0XHR9O1xuXHRcdHZhciB0b2dnbGVGZWVkVGl0bGUgPSBmdW5jdGlvbiB0b2dnbGVGZWVkVGl0bGUodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkX3RpdGxlOiAhcHJvcHMuYXR0cmlidXRlcy5mZWVkX3RpdGxlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uUmVmcmVzaCA9IGZ1bmN0aW9uIG9uUmVmcmVzaCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHJlZnJlc2g6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uU29ydCA9IGZ1bmN0aW9uIG9uU29ydCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHNvcnQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGFyZ2V0ID0gZnVuY3Rpb24gb25UYXJnZXQodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0YXJnZXQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGl0bGUgPSBmdW5jdGlvbiBvblRpdGxlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgdGl0bGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIGNoYW5nZU1ldGEgPSBmdW5jdGlvbiBjaGFuZ2VNZXRhKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgbWV0YWZpZWxkczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgdG9nZ2xlU3VtbWFyeSA9IGZ1bmN0aW9uIHRvZ2dsZVN1bW1hcnkodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdW1tYXJ5OiAhcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5IH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uU3VtbWFyeUxlbmd0aCA9IGZ1bmN0aW9uIG9uU3VtbWFyeUxlbmd0aCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN1bW1hcnlsZW5ndGg6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uS2V5d29yZHNUaXRsZSA9IGZ1bmN0aW9uIG9uS2V5d29yZHNUaXRsZSh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGtleXdvcmRzX3RpdGxlOiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvbktleXdvcmRzQmFuID0gZnVuY3Rpb24gb25LZXl3b3Jkc0Jhbih2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGtleXdvcmRzX2JhbjogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25UaHVtYiA9IGZ1bmN0aW9uIG9uVGh1bWIodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0aHVtYjogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25EZWZhdWx0ID0gZnVuY3Rpb24gb25EZWZhdWx0KHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgZGVmYXVsdDogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25TaXplID0gZnVuY3Rpb24gb25TaXplKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgc2l6ZTogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25SZWZlcnJhbFVSTCA9IGZ1bmN0aW9uIG9uUmVmZXJyYWxVUkwodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyByZWZlcnJhbF91cmw6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uQ29sdW1ucyA9IGZ1bmN0aW9uIG9uQ29sdW1ucyh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGNvbHVtbnM6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGVtcGxhdGUgPSBmdW5jdGlvbiBvblRlbXBsYXRlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgdGVtcGxhdGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIHRvZ2dsZVByaWNlID0gZnVuY3Rpb24gdG9nZ2xlUHJpY2UodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBwcmljZTogIXByb3BzLmF0dHJpYnV0ZXMucHJpY2UgfSk7XG5cdFx0fTtcblx0XHR2YXIgbG9hZEZlZWQgPSBmdW5jdGlvbiBsb2FkRmVlZCgpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDEgfSk7XG5cblx0XHRcdHZhciB1cmwgPSBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzO1xuXG5cdFx0XHRpZiAodXJsID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cmV0dXJuIHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDMgfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChpbkFycmF5KHVybCwgcHJvcHMuYXR0cmlidXRlcy5jYXRlZ29yaWVzKSkge1xuXHRcdFx0XHR2YXIgY2F0ZWdvcnkgPSB1cmw7XG5cdFx0XHRcdHVybCA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeSh7IGNhdGVnb3J5OiBjYXRlZ29yeSB9LCB7IGFycmF5Rm9ybWF0OiAnYnJhY2tldCcgfSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR1cmwgPSB1cmwucmVwbGFjZSgvXFxzL2csICcnKS5zcGxpdCgnLCcpLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRcdHJldHVybiBpdGVtICE9PSAnJztcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHVybCA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeSh7IHVybDogdXJsIH0sIHsgYXJyYXlGb3JtYXQ6ICdicmFja2V0JyB9KTtcblx0XHRcdH1cblxuXHRcdFx0d3AuYXBpUmVxdWVzdCh7IHBhdGg6ICcvZmVlZHp5L3YxL2ZlZWQ/JyArIHVybCB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG5cdFx0XHRcdGlmIChfdGhpcy51bm1vdW50aW5nKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFkYXRhWydlcnJvciddKSB7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGZlZWREYXRhOiBkYXRhIH0pO1xuXHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDIgfSk7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMyB9KTtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0fSkuZmFpbChmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDMgfSk7XG5cdFx0XHRcdHJldHVybiBlcnI7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHZhciBsb2FkQ2F0ZWdvcmllcyA9IGZ1bmN0aW9uIGxvYWRDYXRlZ29yaWVzKCkge1xuXHRcdFx0d3AuYXBpUmVxdWVzdCh7IHBhdGg6ICcvd3AvdjIvZmVlZHp5X2NhdGVnb3JpZXMnIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcblx0XHRcdFx0aWYgKF90aGlzLnVubW91bnRpbmcpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRcdHZhciBjYXRlZ29yaWVzID0gW107XG5cdFx0XHRcdGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRcdGNhdGVnb3JpZXNbaV0gPSBpdGVtLnNsdWc7XG5cdFx0XHRcdFx0aSA9IGkgKyAxO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMgfSk7XG5cdFx0XHRcdGpRdWVyeSgnLmZlZWR6eS1zb3VyY2UgaW5wdXQnKS5hdXRvY29tcGxldGUoe1xuXHRcdFx0XHRcdHNvdXJjZTogY2F0ZWdvcmllcyxcblx0XHRcdFx0XHRzZWxlY3Q6IGZ1bmN0aW9uIHNlbGVjdChldmVudCwgdWkpIHtcblx0XHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkczogdWkuaXRlbS5sYWJlbCB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSkuZmFpbChmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRcdHJldHVybiBlcnI7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHZhciBtZXRhRXhpc3RzID0gZnVuY3Rpb24gbWV0YUV4aXN0cyh2YWx1ZSkge1xuXHRcdFx0cmV0dXJuIDAgPD0gcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzLnJlcGxhY2UoL1xccy9nLCAnJykuc3BsaXQoJywnKS5pbmRleE9mKHZhbHVlKSB8fCAnJyA9PT0gcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzO1xuXHRcdH07XG5cdFx0aWYgKHByb3BzLmF0dHJpYnV0ZXMuY2F0ZWdvcmllcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAoIXByb3BzLmF0dHJpYnV0ZXMubWV0YSkge1xuXHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0XHRtZXRhOiB0cnVlLFxuXHRcdFx0XHRcdG1ldGFmaWVsZHM6ICdubydcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRsb2FkQ2F0ZWdvcmllcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gW1xuXHRcdC8vIEluc3BlY3RvclxuXHRcdCEhcHJvcHMuaXNTZWxlY3RlZCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoSW5zcGVjdG9yLCBfZXh0ZW5kcyh7IG9uQ2hhbmdlRmVlZHM6IG9uQ2hhbmdlRmVlZHMsIG9uQ2hhbmdlTWF4OiBvbkNoYW5nZU1heCwgdG9nZ2xlRmVlZFRpdGxlOiB0b2dnbGVGZWVkVGl0bGUsIG9uUmVmcmVzaDogb25SZWZyZXNoLCBvblNvcnQ6IG9uU29ydCwgb25UYXJnZXQ6IG9uVGFyZ2V0LCBvblRpdGxlOiBvblRpdGxlLCBjaGFuZ2VNZXRhOiBjaGFuZ2VNZXRhLCB0b2dnbGVTdW1tYXJ5OiB0b2dnbGVTdW1tYXJ5LCBvblN1bW1hcnlMZW5ndGg6IG9uU3VtbWFyeUxlbmd0aCwgb25LZXl3b3Jkc1RpdGxlOiBvbktleXdvcmRzVGl0bGUsIG9uS2V5d29yZHNCYW46IG9uS2V5d29yZHNCYW4sIG9uVGh1bWI6IG9uVGh1bWIsIG9uRGVmYXVsdDogb25EZWZhdWx0LCBvblNpemU6IG9uU2l6ZSwgb25SZWZlcnJhbFVSTDogb25SZWZlcnJhbFVSTCwgb25Db2x1bW5zOiBvbkNvbHVtbnMsIG9uVGVtcGxhdGU6IG9uVGVtcGxhdGUsIHRvZ2dsZVByaWNlOiB0b2dnbGVQcmljZSwgbG9hZEZlZWQ6IGxvYWRGZWVkIH0sIHByb3BzKSksIHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzICE9PSAyICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCdkaXYnLFxuXHRcdFx0eyBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRQbGFjZWhvbGRlcixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGtleTogJ3BsYWNlaG9sZGVyJyxcblx0XHRcdFx0XHRpY29uOiAncnNzJyxcblx0XHRcdFx0XHRsYWJlbDogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyA9PT0gMSA/IHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHR7IGtleTogJ2xvYWRpbmcnLCBjbGFzc05hbWU6ICd3cC1ibG9jay1lbWJlZCBpcy1sb2FkaW5nJyB9LFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTcGlubmVyLCBudWxsKSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQncCcsXG5cdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0X18oJ0ZldGNoaW5n4oCmJylcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCkgOiBbcHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDMgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdzcGFuJyxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdF9fKCdGZWVkIFVSTCBJbnZhbGlkJylcblx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdFx0dHlwZTogJ3VybCcsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lOiAnZmVlZHp5LXNvdXJjZScsXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI6IF9fKCdFbnRlciBVUkwgb3IgY2F0ZWdvcnkgb2YgeW91ciBmZWVkIGhlcmXigKYnKSxcblx0XHRcdFx0XHRvbkNoYW5nZTogb25DaGFuZ2VGZWVkcyxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5mZWVkc1xuXHRcdFx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dHlwZTogJ3N1Ym1pdCcsXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiBsb2FkRmVlZFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0X18oJ0xvYWQgRmVlZCcpXG5cdFx0XHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnc3BhbicsXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRFeHRlcm5hbExpbmssXG5cdFx0XHRcdFx0XHR7IGhyZWY6ICdodHRwczovL3ZhbGlkYXRvci53My5vcmcvZmVlZC8nIH0sXG5cdFx0XHRcdFx0XHRfXygnQ2xpY2sgaGVyZSB0byBjaGVjayBpZiBmZWVkIGlzIHZhbGlkLiAnKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0X18oJ0ludmFsaWQgZmVlZHMgd2lsbCBOT1QgZGlzcGxheSBpdGVtcy4nKVxuXHRcdFx0XHQpXVxuXHRcdFx0KVxuXHRcdCksICEhKHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzID09PSAyICYmIHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGEgIT09IHVuZGVmaW5lZCkgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0J2RpdicsXG5cdFx0XHR7IGNsYXNzTmFtZTogJ2ZlZWR6eS1yc3MnIH0sXG5cdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLmZlZWRfdGl0bGUgJiYgcHJvcHMuYXR0cmlidXRlcy5mZWVkRGF0YVsnY2hhbm5lbCddICE9PSBudWxsICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2hlYWRlcicgfSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdoMicsXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc190aXRsZScgfSxcblx0XHRcdFx0XHRcdHVuZXNjYXBlSFRNTChwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ11bJ3RpdGxlJ10pXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQnc3BhbicsXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc19kZXNjcmlwdGlvbicgfSxcblx0XHRcdFx0XHRcdCcgJyArIHVuZXNjYXBlSFRNTChwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ11bJ2Rlc2NyaXB0aW9uJ10pXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHQndWwnLFxuXHRcdFx0XHR7IGNsYXNzTmFtZTogJ2ZlZWR6eS0nICsgcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSB9LFxuXHRcdFx0XHRmaWx0ZXJEYXRhKHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2l0ZW1zJ10sIHByb3BzLmF0dHJpYnV0ZXMuc29ydCwgcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc190aXRsZSwgcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc19iYW4sIHByb3BzLmF0dHJpYnV0ZXMubWF4KS5tYXAoZnVuY3Rpb24gKGl0ZW0sIGkpIHtcblx0XHRcdFx0XHR2YXIgaXRlbURhdGVUaW1lID0gKGl0ZW1bJ2RhdGUnXSB8fCAnJykgKyAnICcgKyAoaXRlbVsndGltZSddIHx8ICcnKSArICcgVVRDICswMDAwJztcblx0XHRcdFx0XHR2YXIgaXRlbURhdGUgPSB1bmVzY2FwZUhUTUwoaXRlbVsnZGF0ZSddKSB8fCAnJztcblx0XHRcdFx0XHR2YXIgaXRlbVRpbWUgPSB1bmVzY2FwZUhUTUwoaXRlbVsndGltZSddKSB8fCAnJztcblx0XHRcdFx0XHRpZiAobWV0YUV4aXN0cygndHo9bG9jYWwnKSkge1xuXHRcdFx0XHRcdFx0aXRlbURhdGUgPSBkYXRlKCdGIGpTLCBcXG8nLCBpdGVtRGF0ZVRpbWUpO1xuXHRcdFx0XHRcdFx0aXRlbVRpbWUgPSBkYXRlKCdoOmkgQScsIGl0ZW1EYXRlVGltZSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdCdsaScsXG5cdFx0XHRcdFx0XHR7IGtleTogaSwgc3R5bGU6IHsgcGFkZGluZzogJzE1cHggMCAyNXB4JyB9LCBjbGFzc05hbWU6ICdyc3NfaXRlbSBmZWVkenktcnNzLWNvbC0nICsgcHJvcHMuYXR0cmlidXRlcy5jb2x1bW5zIH0sXG5cdFx0XHRcdFx0XHQoaXRlbVsndGh1bWJuYWlsJ10gJiYgcHJvcHMuYXR0cmlidXRlcy50aHVtYiA9PT0gJ2F1dG8nIHx8IHByb3BzLmF0dHJpYnV0ZXMudGh1bWIgPT09ICd5ZXMnKSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc19pbWFnZScsIHN0eWxlOiB7IHdpZHRoOiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUgKyAncHgnLCBoZWlnaHQ6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSArICdweCcgfSB9LFxuXHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0J2EnLFxuXHRcdFx0XHRcdFx0XHRcdHsgdGl0bGU6IHVuZXNjYXBlSFRNTChpdGVtWyd0aXRsZSddKSwgc3R5bGU6IHsgd2lkdGg6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSArICdweCcsIGhlaWdodDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JyB9IH0sXG5cdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6ICdmZXRjaGVkJywgc3R5bGU6IHsgd2lkdGg6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSArICdweCcsIGhlaWdodDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JywgYmFja2dyb3VuZEltYWdlOiAndXJsKCcgKyAoaXRlbVsndGh1bWJuYWlsJ10gPyBpdGVtWyd0aHVtYm5haWwnXSA6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCA/IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdC51cmwgOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LWRlZmF1bHQuanBnJykgKyAnKScgfSwgdGl0bGU6IHVuZXNjYXBlSFRNTChpdGVtWyd0aXRsZSddKSB9KVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdyc3NfY29udGVudF93cmFwJyB9LFxuXHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0J3NwYW4nLFxuXHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAndGl0bGUnIH0sXG5cdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0J2EnLFxuXHRcdFx0XHRcdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHRcdFx0XHRcdHByb3BzLmF0dHJpYnV0ZXMudGl0bGUgJiYgdW5lc2NhcGVIVE1MKGl0ZW1bJ3RpdGxlJ10pLmxlbmd0aCA+IHByb3BzLmF0dHJpYnV0ZXMudGl0bGUgPyB1bmVzY2FwZUhUTUwoaXRlbVsndGl0bGUnXSkuc3Vic3RyaW5nKDAsIHByb3BzLmF0dHJpYnV0ZXMudGl0bGUpICsgJy4uLicgOiB1bmVzY2FwZUhUTUwoaXRlbVsndGl0bGUnXSlcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc19jb250ZW50JyB9LFxuXHRcdFx0XHRcdFx0XHRcdHByb3BzLmF0dHJpYnV0ZXMubWV0YWZpZWxkcyAhPT0gJ25vJyAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQnc21hbGwnLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdtZXRhJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbVsnY3JlYXRvciddICYmIG1ldGFFeGlzdHMoJ2F1dGhvcicpICYmIFtfXygnYnknKSwgJyAnLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dW5lc2NhcGVIVE1MKGl0ZW1bJ2NyZWF0b3InXSlcblx0XHRcdFx0XHRcdFx0XHRcdCksICcgJ10sXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhRXhpc3RzKCdkYXRlJykgJiYgW19fKCdvbicpLCAnICcsIHVuZXNjYXBlSFRNTChpdGVtRGF0ZSksICcgJ10sXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhRXhpc3RzKCd0aW1lJykgJiYgW19fKCdhdCcpLCAnICcsIHVuZXNjYXBlSFRNTChpdGVtVGltZSldXG5cdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnkgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0J3AnLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdkZXNjcmlwdGlvbicgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeWxlbmd0aCAmJiB1bmVzY2FwZUhUTUwoaXRlbVsnZGVzY3JpcHRpb24nXSkubGVuZ3RoID4gcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5bGVuZ3RoID8gdW5lc2NhcGVIVE1MKGl0ZW1bJ2Rlc2NyaXB0aW9uJ10pLnN1YnN0cmluZygwLCBwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnlsZW5ndGgpICsgJyBb4oCmXScgOiB1bmVzY2FwZUhUTUwoaXRlbVsnZGVzY3JpcHRpb24nXSlcblx0XHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHRcdGZlZWR6eWpzLmlzUHJvICYmIGl0ZW1bJ21lZGlhJ10gJiYgaXRlbVsnbWVkaWEnXVsnc3JjJ10gJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0J2F1ZGlvJyxcblx0XHRcdFx0XHRcdFx0XHRcdHsgY29udHJvbHM6IHRydWUsIGNvbnRyb2xzTGlzdDogJ25vZG93bmxvYWQnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScsIHsgc3JjOiBpdGVtWydtZWRpYSddWydzcmMnXSwgdHlwZTogaXRlbVsnbWVkaWEnXVsndHlwZSddIH0pLFxuXHRcdFx0XHRcdFx0XHRcdFx0X18oJ1lvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhdWRpbyBlbGVtZW50LiBCdXQgeW91IGNhbiBjaGVjayB0aGlzIGZvciB0aGUgb3JpZ2luYWwgbGluazogJyksXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBocmVmOiBpdGVtWydtZWRpYSddWydzcmMnXSB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtWydtZWRpYSddWydzcmMnXVxuXHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0ZmVlZHp5anMuaXNQcm8gJiYgcHJvcHMuYXR0cmlidXRlcy5wcmljZSAmJiBpdGVtWydwcmljZSddICYmIHByb3BzLmF0dHJpYnV0ZXMudGVtcGxhdGUgIT09ICdkZWZhdWx0JyAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncHJpY2Utd3JhcCcgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdFx0J2EnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0J2J1dHRvbicsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICdwcmljZScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtWydwcmljZSddXG5cdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KVxuXHRcdFx0KVxuXHRcdCldO1xuXHR9LFxuXHRzYXZlOiBmdW5jdGlvbiBzYXZlKCkge1xuXHRcdC8vIFJlbmRlcmluZyBpbiBQSFBcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2Jsb2NrLmpzXG4vLyBtb2R1bGUgaWQgPSAyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///29\n");
246
 
247
  /***/ }),
248
  /* 30 */
@@ -335,7 +335,7 @@ eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourc
335
  /***/ (function(module, exports, __webpack_require__) {
336
 
337
  "use strict";
338
- eval("\nconst strictUriEncode = __webpack_require__(45);\nconst decodeComponent = __webpack_require__(46);\nconst splitOnFirst = __webpack_require__(47);\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\t\treturn key => (result, value, index) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(',')];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(',') > -1;\n\t\t\t\tconst newValue = isArray ? value.split(',') : value;\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(param.replace(/\\+/g, ' '), '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : decode(value, options);\n\n\t\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\t\tvalue = Number(value);\n\t\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\t\tvalue = value.toLowerCase() === 'true';\n\t\t}\n\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t}, options);\n\n\tconst formatter = encoderForArrayFormat(options);\n\tconst keys = Object.keys(object);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\treturn {\n\t\turl: removeHash(input).split('?')[0] || '',\n\t\tquery: parse(extract(input), options)\n\t};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL2luZGV4LmpzPzM4MGMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgc3RyaWN0VXJpRW5jb2RlID0gcmVxdWlyZSgnc3RyaWN0LXVyaS1lbmNvZGUnKTtcbmNvbnN0IGRlY29kZUNvbXBvbmVudCA9IHJlcXVpcmUoJ2RlY29kZS11cmktY29tcG9uZW50Jyk7XG5jb25zdCBzcGxpdE9uRmlyc3QgPSByZXF1aXJlKCdzcGxpdC1vbi1maXJzdCcpO1xuXG5mdW5jdGlvbiBlbmNvZGVyRm9yQXJyYXlGb3JtYXQob3B0aW9ucykge1xuXHRzd2l0Y2ggKG9wdGlvbnMuYXJyYXlGb3JtYXQpIHtcblx0XHRjYXNlICdpbmRleCc6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gcmVzdWx0Lmxlbmd0aDtcblx0XHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1snLCBpbmRleCwgJ10nXS5qb2luKCcnKV07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdC4uLnJlc3VsdCxcblx0XHRcdFx0XHRbZW5jb2RlKGtleSwgb3B0aW9ucyksICdbJywgZW5jb2RlKGluZGV4LCBvcHRpb25zKSwgJ109JywgZW5jb2RlKHZhbHVlLCBvcHRpb25zKV0uam9pbignJylcblx0XHRcdFx0XTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdicmFja2V0Jzpcblx0XHRcdHJldHVybiBrZXkgPT4gKHJlc3VsdCwgdmFsdWUpID0+IHtcblx0XHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1tdJ10uam9pbignJyldO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1tdPScsIGVuY29kZSh2YWx1ZSwgb3B0aW9ucyldLmpvaW4oJycpXTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdjb21tYSc6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGluZGV4ID09PSAwKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFtbZW5jb2RlKGtleSwgb3B0aW9ucyksICc9JywgZW5jb2RlKHZhbHVlLCBvcHRpb25zKV0uam9pbignJyldO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtbcmVzdWx0LCBlbmNvZGUodmFsdWUsIG9wdGlvbnMpXS5qb2luKCcsJyldO1xuXHRcdFx0fTtcblxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHJldHVybiBbLi4ucmVzdWx0LCBlbmNvZGUoa2V5LCBvcHRpb25zKV07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gWy4uLnJlc3VsdCwgW2VuY29kZShrZXksIG9wdGlvbnMpLCAnPScsIGVuY29kZSh2YWx1ZSwgb3B0aW9ucyldLmpvaW4oJycpXTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gcGFyc2VyRm9yQXJyYXlGb3JtYXQob3B0aW9ucykge1xuXHRsZXQgcmVzdWx0O1xuXG5cdHN3aXRjaCAob3B0aW9ucy5hcnJheUZvcm1hdCkge1xuXHRcdGNhc2UgJ2luZGV4Jzpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0cmVzdWx0ID0gL1xcWyhcXGQqKVxcXSQvLmV4ZWMoa2V5KTtcblxuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvXFxbXFxkKlxcXSQvLCAnJyk7XG5cblx0XHRcdFx0aWYgKCFyZXN1bHQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB7fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFjY3VtdWxhdG9yW2tleV1bcmVzdWx0WzFdXSA9IHZhbHVlO1xuXHRcdFx0fTtcblxuXHRcdGNhc2UgJ2JyYWNrZXQnOlxuXHRcdFx0cmV0dXJuIChrZXksIHZhbHVlLCBhY2N1bXVsYXRvcikgPT4ge1xuXHRcdFx0XHRyZXN1bHQgPSAvKFxcW1xcXSkkLy5leGVjKGtleSk7XG5cdFx0XHRcdGtleSA9IGtleS5yZXBsYWNlKC9cXFtcXF0kLywgJycpO1xuXG5cdFx0XHRcdGlmICghcmVzdWx0KSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IHZhbHVlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChhY2N1bXVsYXRvcltrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW3ZhbHVlXTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW10uY29uY2F0KGFjY3VtdWxhdG9yW2tleV0sIHZhbHVlKTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdjb21tYSc6XG5cdFx0XHRyZXR1cm4gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGlzQXJyYXkgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnNwbGl0KCcnKS5pbmRleE9mKCcsJykgPiAtMTtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWUgPSBpc0FycmF5ID8gdmFsdWUuc3BsaXQoJywnKSA6IHZhbHVlO1xuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gbmV3VmFsdWU7XG5cdFx0XHR9O1xuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW10uY29uY2F0KGFjY3VtdWxhdG9yW2tleV0sIHZhbHVlKTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlKHZhbHVlLCBvcHRpb25zKSB7XG5cdGlmIChvcHRpb25zLmVuY29kZSkge1xuXHRcdHJldHVybiBvcHRpb25zLnN0cmljdCA/IHN0cmljdFVyaUVuY29kZSh2YWx1ZSkgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHR9XG5cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBkZWNvZGUodmFsdWUsIG9wdGlvbnMpIHtcblx0aWYgKG9wdGlvbnMuZGVjb2RlKSB7XG5cdFx0cmV0dXJuIGRlY29kZUNvbXBvbmVudCh2YWx1ZSk7XG5cdH1cblxuXHRyZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGtleXNTb3J0ZXIoaW5wdXQpIHtcblx0aWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG5cdFx0cmV0dXJuIGlucHV0LnNvcnQoKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnKSB7XG5cdFx0cmV0dXJuIGtleXNTb3J0ZXIoT2JqZWN0LmtleXMoaW5wdXQpKVxuXHRcdFx0LnNvcnQoKGEsIGIpID0+IE51bWJlcihhKSAtIE51bWJlcihiKSlcblx0XHRcdC5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0O1xufVxuXG5mdW5jdGlvbiByZW1vdmVIYXNoKGlucHV0KSB7XG5cdGNvbnN0IGhhc2hTdGFydCA9IGlucHV0LmluZGV4T2YoJyMnKTtcblx0aWYgKGhhc2hTdGFydCAhPT0gLTEpIHtcblx0XHRpbnB1dCA9IGlucHV0LnNsaWNlKDAsIGhhc2hTdGFydCk7XG5cdH1cblxuXHRyZXR1cm4gaW5wdXQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3QoaW5wdXQpIHtcblx0aW5wdXQgPSByZW1vdmVIYXNoKGlucHV0KTtcblx0Y29uc3QgcXVlcnlTdGFydCA9IGlucHV0LmluZGV4T2YoJz8nKTtcblx0aWYgKHF1ZXJ5U3RhcnQgPT09IC0xKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0LnNsaWNlKHF1ZXJ5U3RhcnQgKyAxKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoaW5wdXQsIG9wdGlvbnMpIHtcblx0b3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuXHRcdGRlY29kZTogdHJ1ZSxcblx0XHRzb3J0OiB0cnVlLFxuXHRcdGFycmF5Rm9ybWF0OiAnbm9uZScsXG5cdFx0cGFyc2VOdW1iZXJzOiBmYWxzZSxcblx0XHRwYXJzZUJvb2xlYW5zOiBmYWxzZVxuXHR9LCBvcHRpb25zKTtcblxuXHRjb25zdCBmb3JtYXR0ZXIgPSBwYXJzZXJGb3JBcnJheUZvcm1hdChvcHRpb25zKTtcblxuXHQvLyBDcmVhdGUgYW4gb2JqZWN0IHdpdGggbm8gcHJvdG90eXBlXG5cdGNvbnN0IHJldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cblx0aWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0aW5wdXQgPSBpbnB1dC50cmltKCkucmVwbGFjZSgvXls/IyZdLywgJycpO1xuXG5cdGlmICghaW5wdXQpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0Zm9yIChjb25zdCBwYXJhbSBvZiBpbnB1dC5zcGxpdCgnJicpKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IHNwbGl0T25GaXJzdChwYXJhbS5yZXBsYWNlKC9cXCsvZywgJyAnKSwgJz0nKTtcblxuXHRcdC8vIE1pc3NpbmcgYD1gIHNob3VsZCBiZSBgbnVsbGA6XG5cdFx0Ly8gaHR0cDovL3czLm9yZy9UUi8yMDEyL1dELXVybC0yMDEyMDUyNC8jY29sbGVjdC11cmwtcGFyYW1ldGVyc1xuXHRcdHZhbHVlID0gdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZWNvZGUodmFsdWUsIG9wdGlvbnMpO1xuXG5cdFx0aWYgKG9wdGlvbnMucGFyc2VOdW1iZXJzICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJykpIHtcblx0XHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHR9IGVsc2UgaWYgKG9wdGlvbnMucGFyc2VCb29sZWFucyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAodmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICdmYWxzZScpKSB7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcblx0XHR9XG5cblx0XHRmb3JtYXR0ZXIoZGVjb2RlKGtleSwgb3B0aW9ucyksIHZhbHVlLCByZXQpO1xuXHR9XG5cblx0aWYgKG9wdGlvbnMuc29ydCA9PT0gZmFsc2UpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0cmV0dXJuIChvcHRpb25zLnNvcnQgPT09IHRydWUgPyBPYmplY3Qua2V5cyhyZXQpLnNvcnQoKSA6IE9iamVjdC5rZXlzKHJldCkuc29ydChvcHRpb25zLnNvcnQpKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSByZXRba2V5XTtcblx0XHRpZiAoQm9vbGVhbih2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdC8vIFNvcnQgb2JqZWN0IGtleXMsIG5vdCB2YWx1ZXNcblx0XHRcdHJlc3VsdFtrZXldID0ga2V5c1NvcnRlcih2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdFtrZXldID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG59XG5cbmV4cG9ydHMuZXh0cmFjdCA9IGV4dHJhY3Q7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5cbmV4cG9ydHMuc3RyaW5naWZ5ID0gKG9iamVjdCwgb3B0aW9ucykgPT4ge1xuXHRpZiAoIW9iamVjdCkge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcblx0XHRlbmNvZGU6IHRydWUsXG5cdFx0c3RyaWN0OiB0cnVlLFxuXHRcdGFycmF5Rm9ybWF0OiAnbm9uZSdcblx0fSwgb3B0aW9ucyk7XG5cblx0Y29uc3QgZm9ybWF0dGVyID0gZW5jb2RlckZvckFycmF5Rm9ybWF0KG9wdGlvbnMpO1xuXHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuXHRpZiAob3B0aW9ucy5zb3J0ICE9PSBmYWxzZSkge1xuXHRcdGtleXMuc29ydChvcHRpb25zLnNvcnQpO1xuXHR9XG5cblx0cmV0dXJuIGtleXMubWFwKGtleSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gZW5jb2RlKGtleSwgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0LnJlZHVjZShmb3JtYXR0ZXIoa2V5KSwgW10pXG5cdFx0XHRcdC5qb2luKCcmJyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVuY29kZShrZXksIG9wdGlvbnMpICsgJz0nICsgZW5jb2RlKHZhbHVlLCBvcHRpb25zKTtcblx0fSkuZmlsdGVyKHggPT4geC5sZW5ndGggPiAwKS5qb2luKCcmJyk7XG59O1xuXG5leHBvcnRzLnBhcnNlVXJsID0gKGlucHV0LCBvcHRpb25zKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0dXJsOiByZW1vdmVIYXNoKGlucHV0KS5zcGxpdCgnPycpWzBdIHx8ICcnLFxuXHRcdHF1ZXJ5OiBwYXJzZShleHRyYWN0KGlucHV0KSwgb3B0aW9ucylcblx0fTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9xdWVyeS1zdHJpbmcvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n");
339
 
340
  /***/ }),
341
  /* 45 */
@@ -370,7 +370,7 @@ eval("// jshint ignore: start\n\nvar attributes = {\n\tfeeds: {\n\t\ttype: 'stri
370
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
371
 
372
  "use strict";
373
- eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__radio_image_control___ = __webpack_require__(50);\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar _wp$editor = wp.editor,\n InspectorControls = _wp$editor.InspectorControls,\n MediaUpload = _wp$editor.MediaUpload;\nvar _wp$components = wp.components,\n BaseControl = _wp$components.BaseControl,\n ExternalLink = _wp$components.ExternalLink,\n PanelBody = _wp$components.PanelBody,\n RangeControl = _wp$components.RangeControl,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n ToggleControl = _wp$components.ToggleControl,\n SelectControl = _wp$components.SelectControl,\n ResponsiveWrapper = _wp$components.ResponsiveWrapper;\n\n/**\n* Create an Inspector Controls wrapper Component\n*/\n\nvar Inspector = function Inspector(props) {\n\treturn wp.element.createElement(\n\t\tInspectorControls,\n\t\t{ key: 'inspector' },\n\t\tprops.attributes.status !== 0 && wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\tnull,\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Feed Source'),\n\t\t\t\tclassName: 'feedzy-source',\n\t\t\t\tvalue: props.attributes.feeds,\n\t\t\t\tonChange: props.onChangeFeeds\n\t\t\t}),\n\t\t\twp.element.createElement(\n\t\t\t\tButton,\n\t\t\t\t{\n\t\t\t\t\tisLarge: true,\n\t\t\t\t\ttype: 'submit',\n\t\t\t\t\tonClick: props.loadFeed,\n\t\t\t\t\tclassName: 'loadFeed'\n\t\t\t\t},\n\t\t\t\t__('Load Feed')\n\t\t\t)\n\t\t),\n\t\tprops.attributes.status === 2 && [wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{\n\t\t\t\ttitle: __('Feed Settings'),\n\t\t\t\tinitialOpen: true\n\t\t\t},\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Number of Feeds'),\n\t\t\t\tvalue: Number(props.attributes.max) || 5,\n\t\t\t\tonChange: props.onChangeMax,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: props.attributes.feedData['items'].length || 10,\n\t\t\t\tbeforeIcon: 'sort'\n\t\t\t}),\n\t\t\tprops.attributes.feedData['channel'] !== null && wp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display feed title?'),\n\t\t\t\tchecked: !!props.attributes.feed_title,\n\t\t\t\tonChange: props.toggleFeedTitle\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Feed Caching Time'),\n\t\t\t\tvalue: props.attributes.refresh,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('1 Hour'),\n\t\t\t\t\tvalue: '1_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('2 Hours'),\n\t\t\t\t\tvalue: '3_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('12 Hours'),\n\t\t\t\t\tvalue: '12_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('1 Day'),\n\t\t\t\t\tvalue: '1_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('3 Days'),\n\t\t\t\t\tvalue: '3_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('15 Days'),\n\t\t\t\t\tvalue: '15_days'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onRefresh\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Sorting Order'),\n\t\t\t\tvalue: props.attributes.sort,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Default'),\n\t\t\t\t\tvalue: 'default'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Date Descending'),\n\t\t\t\t\tvalue: 'date_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Date Ascending'),\n\t\t\t\t\tvalue: 'date_asc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Descending'),\n\t\t\t\t\tvalue: 'title_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Ascending'),\n\t\t\t\t\tvalue: 'title_asc'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onSort\n\t\t\t})\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Open Links In'),\n\t\t\t\tvalue: props.attributes.target,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('New Tab'),\n\t\t\t\t\tvalue: '_blank'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Same Tab'),\n\t\t\t\t\tvalue: '_self'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTarget\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Title Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full title.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.title,\n\t\t\t\tonChange: props.onTitle\n\t\t\t}),\n\t\t\twp.element.createElement(\n\t\t\t\tBaseControl,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\tlabel: __('Should we display additional meta fields out of author, date and time? (comma-separated list).'),\n\t\t\t\t\tplaceholder: __('(eg: author, date, time, tz=local) '),\n\t\t\t\t\tvalue: props.attributes.metafields,\n\t\t\t\t\tonChange: props.changeMeta\n\t\t\t\t}),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tExternalLink,\n\t\t\t\t\t{ href: 'https://docs.themeisle.com/article/1089-how-to-display-author-date-or-time-from-the-feed' },\n\t\t\t\t\t__('You can find more info about available meta field values here.')\n\t\t\t\t)\n\t\t\t),\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display post description?'),\n\t\t\t\tchecked: !!props.attributes.summary,\n\t\t\t\tonChange: props.toggleSummary\n\t\t\t}),\n\t\t\tprops.attributes.summary && wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Description Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full description.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.summarylength,\n\t\t\t\tonChange: props.onSummaryLength\n\t\t\t}),\n\t\t\tfeedzyjs.isPro && [wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Only display if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_title,\n\t\t\t\tonChange: props.onKeywordsTitle\n\t\t\t}), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Exclude if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_ban,\n\t\t\t\tonChange: props.onKeywordsBan\n\t\t\t})]\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Image Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Display first image if available?'),\n\t\t\t\tvalue: props.attributes.thumb,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Auto'),\n\t\t\t\t\tvalue: 'auto'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Yes'),\n\t\t\t\t\tvalue: 'yes'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('No'),\n\t\t\t\t\tvalue: 'no'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onThumb\n\t\t\t}),\n\t\t\tprops.attributes.thumb !== 'no' && [props.attributes.thumb !== 'auto' && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'feedzy-blocks-base-control' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'label',\n\t\t\t\t\t{ className: 'blocks-base-control__label', 'for': 'inspector-media-upload' },\n\t\t\t\t\t__('Default thumbnail URL if no image is found.')\n\t\t\t\t),\n\t\t\t\twp.element.createElement(MediaUpload, {\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tid: 'inspector-media-upload',\n\t\t\t\t\tvalue: props.attributes.default,\n\t\t\t\t\tonSelect: props.onDefault,\n\t\t\t\t\trender: function render(_ref) {\n\t\t\t\t\t\tvar open = _ref.open;\n\t\t\t\t\t\treturn [props.attributes.default !== undefined && [wp.element.createElement(\n\t\t\t\t\t\t\tResponsiveWrapper,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnaturalWidth: props.attributes.default.width,\n\t\t\t\t\t\t\t\tnaturalHeight: props.attributes.default.height\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twp.element.createElement('img', { src: props.attributes.default.url, alt: __('Featured image') })\n\t\t\t\t\t\t), wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: function onClick() {\n\t\t\t\t\t\t\t\t\treturn props.setAttributes({ default: undefined });\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Remove Image')\n\t\t\t\t\t\t)], wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: open,\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' },\n\t\t\t\t\t\t\t\tclassName: props.attributes.default === undefined && 'feedzy_image_upload'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Upload Image')\n\t\t\t\t\t\t)];\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Thumbnails dimension.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.size,\n\t\t\t\tonChange: props.onSize\n\t\t\t})]\n\t\t), feedzyjs.isPro && wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Pro Features'), initialOpen: false },\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display price if available?'),\n\t\t\t\thelp: props.attributes.price && props.attributes.template === 'default' ? __('Choose a different template for this to work.') : null,\n\t\t\t\tchecked: !!props.attributes.price,\n\t\t\t\tonChange: props.togglePrice\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Referral URL parameters.'),\n\t\t\t\thelp: __('Without (\"?\")'),\n\t\t\t\tplaceholder: _('(eg. promo_code=feedzy_is_awesome)'),\n\t\t\t\tvalue: props.attributes.referral_url,\n\t\t\t\tonChange: props.onReferralURL\n\t\t\t}),\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Columns'),\n\t\t\t\thelp: __('How many columns we should use to display the feed items?'),\n\t\t\t\tvalue: props.attributes.columns || 1,\n\t\t\t\tonChange: props.onColumns,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 6,\n\t\t\t\tbeforeIcon: 'sort',\n\t\t\t\tallowReset: true\n\t\t\t}),\n\t\t\twp.element.createElement(__WEBPACK_IMPORTED_MODULE_0__radio_image_control___[\"a\" /* default */], {\n\t\t\t\tlabel: __('Feed Template'),\n\t\t\t\tselected: props.attributes.template,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Default'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-default-template.jpg',\n\t\t\t\t\tvalue: 'default'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 1'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style1-template.jpg',\n\t\t\t\t\tvalue: 'style1'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 2'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style2-template.jpg',\n\t\t\t\t\tvalue: 'style2'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTemplate\n\t\t\t})\n\t\t)]\n\t);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inspector);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2luc3BlY3Rvci5qcz83YTVmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbi8qKlxuICogQmxvY2sgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBSYWRpb0ltYWdlQ29udHJvbCBmcm9tICcuL3JhZGlvLWltYWdlLWNvbnRyb2wvJztcblxuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdG9yID0gd3AuZWRpdG9yLFxuICAgIEluc3BlY3RvckNvbnRyb2xzID0gX3dwJGVkaXRvci5JbnNwZWN0b3JDb250cm9scyxcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQ7XG52YXIgX3dwJGNvbXBvbmVudHMgPSB3cC5jb21wb25lbnRzLFxuICAgIEJhc2VDb250cm9sID0gX3dwJGNvbXBvbmVudHMuQmFzZUNvbnRyb2wsXG4gICAgRXh0ZXJuYWxMaW5rID0gX3dwJGNvbXBvbmVudHMuRXh0ZXJuYWxMaW5rLFxuICAgIFBhbmVsQm9keSA9IF93cCRjb21wb25lbnRzLlBhbmVsQm9keSxcbiAgICBSYW5nZUNvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5SYW5nZUNvbnRyb2wsXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgVG9nZ2xlQ29udHJvbCA9IF93cCRjb21wb25lbnRzLlRvZ2dsZUNvbnRyb2wsXG4gICAgU2VsZWN0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlNlbGVjdENvbnRyb2wsXG4gICAgUmVzcG9uc2l2ZVdyYXBwZXIgPSBfd3AkY29tcG9uZW50cy5SZXNwb25zaXZlV3JhcHBlcjtcblxuLyoqXG4qIENyZWF0ZSBhbiBJbnNwZWN0b3IgQ29udHJvbHMgd3JhcHBlciBDb21wb25lbnRcbiovXG5cbnZhciBJbnNwZWN0b3IgPSBmdW5jdGlvbiBJbnNwZWN0b3IocHJvcHMpIHtcblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRJbnNwZWN0b3JDb250cm9scyxcblx0XHR7IGtleTogJ2luc3BlY3RvcicgfSxcblx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyAhPT0gMCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHRudWxsLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRmVlZCBTb3VyY2UnKSxcblx0XHRcdFx0Y2xhc3NOYW1lOiAnZmVlZHp5LXNvdXJjZScsXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25DaGFuZ2VGZWVkc1xuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogJ3N1Ym1pdCcsXG5cdFx0XHRcdFx0b25DbGljazogcHJvcHMubG9hZEZlZWQsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lOiAnbG9hZEZlZWQnXG5cdFx0XHRcdH0sXG5cdFx0XHRcdF9fKCdMb2FkIEZlZWQnKVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0cHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDIgJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFBhbmVsQm9keSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IF9fKCdGZWVkIFNldHRpbmdzJyksXG5cdFx0XHRcdGluaXRpYWxPcGVuOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFJhbmdlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ051bWJlciBvZiBGZWVkcycpLFxuXHRcdFx0XHR2YWx1ZTogTnVtYmVyKHByb3BzLmF0dHJpYnV0ZXMubWF4KSB8fCA1LFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25DaGFuZ2VNYXgsXG5cdFx0XHRcdG1pbjogMSxcblx0XHRcdFx0bWF4OiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydpdGVtcyddLmxlbmd0aCB8fCAxMCxcblx0XHRcdFx0YmVmb3JlSWNvbjogJ3NvcnQnXG5cdFx0XHR9KSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2NoYW5uZWwnXSAhPT0gbnVsbCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgZmVlZCB0aXRsZT8nKSxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLmZlZWRfdGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy50b2dnbGVGZWVkVGl0bGVcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdGZWVkIENhY2hpbmcgVGltZScpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5yZWZyZXNoLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMSBIb3VyJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcyIEhvdXJzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICczX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxMiBIb3VycycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMTJfaG91cnMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzEgRGF5JyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2RheXMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzMgRGF5cycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnM19kYXlzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxNSBEYXlzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxNV9kYXlzJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uUmVmcmVzaFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoU2VsZWN0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1NvcnRpbmcgT3JkZXInKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc29ydCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RlZmF1bHQnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ2RlZmF1bHQnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RhdGUgRGVzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9kZXNjJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdEYXRlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9hc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIERlc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3RpdGxlX2Rlc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAndGl0bGVfYXNjJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU29ydFxuXHRcdFx0fSlcblx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnSXRlbSBPcHRpb25zJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdPcGVuIExpbmtzIEluJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnRhcmdldCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ05ldyBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19ibGFuaydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU2FtZSBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19zZWxmJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGFyZ2V0XG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIENoYXJhY3RlciBMaW1pdCcpLFxuXHRcdFx0XHRoZWxwOiBfXygnTGVhdmUgZW1wdHkgdG8gc2hvdyBmdWxsIHRpdGxlLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMudGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRpdGxlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0QmFzZUNvbnRyb2wsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU2hvdWxkIHdlIGRpc3BsYXkgYWRkaXRpb25hbCBtZXRhIGZpZWxkcyBvdXQgb2YgYXV0aG9yLCBkYXRlIGFuZCB0aW1lPyAoY29tbWEtc2VwYXJhdGVkIGxpc3QpLicpLFxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyOiBfXygnKGVnOiBhdXRob3IsIGRhdGUsIHRpbWUsIHR6PWxvY2FsKSAnKSxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzLFxuXHRcdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5jaGFuZ2VNZXRhXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0RXh0ZXJuYWxMaW5rLFxuXHRcdFx0XHRcdHsgaHJlZjogJ2h0dHBzOi8vZG9jcy50aGVtZWlzbGUuY29tL2FydGljbGUvMTA4OS1ob3ctdG8tZGlzcGxheS1hdXRob3ItZGF0ZS1vci10aW1lLWZyb20tdGhlLWZlZWQnIH0sXG5cdFx0XHRcdFx0X18oJ1lvdSBjYW4gZmluZCBtb3JlIGluZm8gYWJvdXQgYXZhaWxhYmxlIG1ldGEgZmllbGQgdmFsdWVzIGhlcmUuJylcblx0XHRcdFx0KVxuXHRcdFx0KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUb2dnbGVDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBwb3N0IGRlc2NyaXB0aW9uPycpLFxuXHRcdFx0XHRjaGVja2VkOiAhIXByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLnRvZ2dsZVN1bW1hcnlcblx0XHRcdH0pLFxuXHRcdFx0cHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5ICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rlc2NyaXB0aW9uIENoYXJhY3RlciBMaW1pdCcpLFxuXHRcdFx0XHRoZWxwOiBfXygnTGVhdmUgZW1wdHkgdG8gc2hvdyBmdWxsIGRlc2NyaXB0aW9uLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeWxlbmd0aCxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU3VtbWFyeUxlbmd0aFxuXHRcdFx0fSksXG5cdFx0XHRmZWVkenlqcy5pc1BybyAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnT25seSBkaXNwbGF5IGlmIHRpdGxlIGNvbnRhaW5zOicpLFxuXHRcdFx0XHRoZWxwOiBfXygnQ29tbWEtc2VwYXJhdGVkIGxpc3QvY2FzZSBzZW5zaXRpdmUuJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmtleXdvcmRzX3RpdGxlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25LZXl3b3Jkc1RpdGxlXG5cdFx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRXhjbHVkZSBpZiB0aXRsZSBjb250YWluczonKSxcblx0XHRcdFx0aGVscDogX18oJ0NvbW1hLXNlcGFyYXRlZCBsaXN0L2Nhc2Ugc2Vuc2l0aXZlLicpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc19iYW4sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vbktleXdvcmRzQmFuXG5cdFx0XHR9KV1cblx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnSXRlbSBJbWFnZSBPcHRpb25zJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEaXNwbGF5IGZpcnN0IGltYWdlIGlmIGF2YWlsYWJsZT8nKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMudGh1bWIsXG5cdFx0XHRcdG9wdGlvbnM6IFt7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdBdXRvJyksXG5cdFx0XHRcdFx0dmFsdWU6ICdhdXRvJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdZZXMnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3llcydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnTm8nKSxcblx0XHRcdFx0XHR2YWx1ZTogJ25vJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGh1bWJcblx0XHRcdH0pLFxuXHRcdFx0cHJvcHMuYXR0cmlidXRlcy50aHVtYiAhPT0gJ25vJyAmJiBbcHJvcHMuYXR0cmlidXRlcy50aHVtYiAhPT0gJ2F1dG8nICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdHsgY2xhc3NOYW1lOiAnZmVlZHp5LWJsb2Nrcy1iYXNlLWNvbnRyb2wnIH0sXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnbGFiZWwnLFxuXHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnYmxvY2tzLWJhc2UtY29udHJvbF9fbGFiZWwnLCAnZm9yJzogJ2luc3BlY3Rvci1tZWRpYS11cGxvYWQnIH0sXG5cdFx0XHRcdFx0X18oJ0RlZmF1bHQgdGh1bWJuYWlsIFVSTCBpZiBubyBpbWFnZSBpcyBmb3VuZC4nKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoTWVkaWFVcGxvYWQsIHtcblx0XHRcdFx0XHR0eXBlOiAnaW1hZ2UnLFxuXHRcdFx0XHRcdGlkOiAnaW5zcGVjdG9yLW1lZGlhLXVwbG9hZCcsXG5cdFx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCxcblx0XHRcdFx0XHRvblNlbGVjdDogcHJvcHMub25EZWZhdWx0LFxuXHRcdFx0XHRcdHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKF9yZWYpIHtcblx0XHRcdFx0XHRcdHZhciBvcGVuID0gX3JlZi5vcGVuO1xuXHRcdFx0XHRcdFx0cmV0dXJuIFtwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQgIT09IHVuZGVmaW5lZCAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRSZXNwb25zaXZlV3JhcHBlcixcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hdHVyYWxXaWR0aDogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LndpZHRoLFxuXHRcdFx0XHRcdFx0XHRcdG5hdHVyYWxIZWlnaHQ6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdC5oZWlnaHRcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdpbWcnLCB7IHNyYzogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LnVybCwgYWx0OiBfXygnRmVhdHVyZWQgaW1hZ2UnKSB9KVxuXHRcdFx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gcHJvcHMuc2V0QXR0cmlidXRlcyh7IGRlZmF1bHQ6IHVuZGVmaW5lZCB9KTtcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7IG1hcmdpblRvcDogJzEwcHgnIH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0X18oJ1JlbW92ZSBJbWFnZScpXG5cdFx0XHRcdFx0XHQpXSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IG9wZW4sXG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU6IHsgbWFyZ2luVG9wOiAnMTBweCcgfSxcblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCA9PT0gdW5kZWZpbmVkICYmICdmZWVkenlfaW1hZ2VfdXBsb2FkJ1xuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRfXygnVXBsb2FkIEltYWdlJylcblx0XHRcdFx0XHRcdCldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1RodW1ibmFpbHMgZGltZW5zaW9uLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU2l6ZVxuXHRcdFx0fSldXG5cdFx0KSwgZmVlZHp5anMuaXNQcm8gJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0eyB0aXRsZTogX18oJ1BybyBGZWF0dXJlcycpLCBpbml0aWFsT3BlbjogZmFsc2UgfSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUb2dnbGVDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBwcmljZSBpZiBhdmFpbGFibGU/JyksXG5cdFx0XHRcdGhlbHA6IHByb3BzLmF0dHJpYnV0ZXMucHJpY2UgJiYgcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnID8gX18oJ0Nob29zZSBhIGRpZmZlcmVudCB0ZW1wbGF0ZSBmb3IgdGhpcyB0byB3b3JrLicpIDogbnVsbCxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLnByaWNlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMudG9nZ2xlUHJpY2Vcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnUmVmZXJyYWwgVVJMIHBhcmFtZXRlcnMuJyksXG5cdFx0XHRcdGhlbHA6IF9fKCdXaXRob3V0IChcIj9cIiknKSxcblx0XHRcdFx0cGxhY2Vob2xkZXI6IF8oJyhlZy4gcHJvbW9fY29kZT1mZWVkenlfaXNfYXdlc29tZSknKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMucmVmZXJyYWxfdXJsLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25SZWZlcnJhbFVSTFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUmFuZ2VDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnQ29sdW1ucycpLFxuXHRcdFx0XHRoZWxwOiBfXygnSG93IG1hbnkgY29sdW1ucyB3ZSBzaG91bGQgdXNlIHRvIGRpc3BsYXkgdGhlIGZlZWQgaXRlbXM/JyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmNvbHVtbnMgfHwgMSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uQ29sdW1ucyxcblx0XHRcdFx0bWluOiAxLFxuXHRcdFx0XHRtYXg6IDYsXG5cdFx0XHRcdGJlZm9yZUljb246ICdzb3J0Jyxcblx0XHRcdFx0YWxsb3dSZXNldDogdHJ1ZVxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUmFkaW9JbWFnZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdGZWVkIFRlbXBsYXRlJyksXG5cdFx0XHRcdHNlbGVjdGVkOiBwcm9wcy5hdHRyaWJ1dGVzLnRlbXBsYXRlLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnRGVmYXVsdCcpLFxuXHRcdFx0XHRcdHNyYzogZmVlZHp5anMuaW1hZ2VwYXRoICsgJ2ZlZWR6eS1kZWZhdWx0LXRlbXBsYXRlLmpwZycsXG5cdFx0XHRcdFx0dmFsdWU6ICdkZWZhdWx0J1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdTdHlsZSAxJyksXG5cdFx0XHRcdFx0c3JjOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LXN0eWxlMS10ZW1wbGF0ZS5qcGcnLFxuXHRcdFx0XHRcdHZhbHVlOiAnc3R5bGUxJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdTdHlsZSAyJyksXG5cdFx0XHRcdFx0c3JjOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LXN0eWxlMi10ZW1wbGF0ZS5qcGcnLFxuXHRcdFx0XHRcdHZhbHVlOiAnc3R5bGUyJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGVtcGxhdGVcblx0XHRcdH0pXG5cdFx0KV1cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luY2x1ZGVzL2d1dGVuYmVyZy9zcmMvaW5zcGVjdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///49\n");
374
 
375
  /***/ }),
376
  /* 50 */
242
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
243
 
244
  "use strict";
245
+ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_query_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_query_string__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__attributes__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__inspector__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(52);\n\n\nvar _this = this;\n\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n\n\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar registerBlockType = wp.blocks.registerBlockType;\nvar _wp$components = wp.components,\n ExternalLink = _wp$components.ExternalLink,\n Placeholder = _wp$components.Placeholder,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n Spinner = _wp$components.Spinner;\nvar date = wp.date.date;\n\n/**\n * Register block\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (registerBlockType('feedzy-rss-feeds/feedzy-block', {\n\ttitle: __('Feedzy RSS Feeds'),\n\tcategory: 'common',\n\ticon: 'rss',\n\tkeywords: [__('Feedzy RSS Feeds'), __('RSS'), __('Feeds')],\n\tsupports: {\n\t\thtml: false\n\t},\n\tattributes: __WEBPACK_IMPORTED_MODULE_3__attributes__[\"a\" /* default */],\n\tedit: function edit(props) {\n\t\tvar onChangeFeeds = function onChangeFeeds(value) {\n\t\t\tprops.setAttributes({ feeds: value });\n\t\t};\n\t\tvar onChangeMax = function onChangeMax(value) {\n\t\t\tprops.setAttributes({ max: value.toString() });\n\t\t};\n\t\tvar toggleFeedTitle = function toggleFeedTitle(value) {\n\t\t\tprops.setAttributes({ feed_title: !props.attributes.feed_title });\n\t\t};\n\t\tvar onRefresh = function onRefresh(value) {\n\t\t\tprops.setAttributes({ refresh: value });\n\t\t};\n\t\tvar onSort = function onSort(value) {\n\t\t\tprops.setAttributes({ sort: value });\n\t\t};\n\t\tvar onTarget = function onTarget(value) {\n\t\t\tprops.setAttributes({ target: value });\n\t\t};\n\t\tvar onTitle = function onTitle(value) {\n\t\t\tprops.setAttributes({ title: value });\n\t\t};\n\t\tvar changeMeta = function changeMeta(value) {\n\t\t\tprops.setAttributes({ metafields: value });\n\t\t};\n\t\tvar toggleSummary = function toggleSummary(value) {\n\t\t\tprops.setAttributes({ summary: !props.attributes.summary });\n\t\t};\n\t\tvar onSummaryLength = function onSummaryLength(value) {\n\t\t\tprops.setAttributes({ summarylength: value });\n\t\t};\n\t\tvar onKeywordsTitle = function onKeywordsTitle(value) {\n\t\t\tprops.setAttributes({ keywords_title: value });\n\t\t};\n\t\tvar onKeywordsBan = function onKeywordsBan(value) {\n\t\t\tprops.setAttributes({ keywords_ban: value });\n\t\t};\n\t\tvar onThumb = function onThumb(value) {\n\t\t\tprops.setAttributes({ thumb: value });\n\t\t};\n\t\tvar onDefault = function onDefault(value) {\n\t\t\tprops.setAttributes({ default: value });\n\t\t};\n\t\tvar onSize = function onSize(value) {\n\t\t\tprops.setAttributes({ size: value });\n\t\t};\n\t\tvar onReferralURL = function onReferralURL(value) {\n\t\t\tprops.setAttributes({ referral_url: value });\n\t\t};\n\t\tvar onColumns = function onColumns(value) {\n\t\t\tprops.setAttributes({ columns: value });\n\t\t};\n\t\tvar onTemplate = function onTemplate(value) {\n\t\t\tprops.setAttributes({ template: value });\n\t\t};\n\t\tvar togglePrice = function togglePrice(value) {\n\t\t\tprops.setAttributes({ price: !props.attributes.price });\n\t\t};\n\t\tvar loadFeed = function loadFeed() {\n\t\t\tprops.setAttributes({ status: 1 });\n\n\t\t\tvar url = props.attributes.feeds;\n\n\t\t\tif (url === undefined) {\n\t\t\t\treturn props.setAttributes({ status: 3 });\n\t\t\t}\n\n\t\t\tif (Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"b\" /* inArray */])(url, props.attributes.categories)) {\n\t\t\t\tvar category = url;\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ category: category }, { arrayFormat: 'bracket' });\n\t\t\t} else {\n\t\t\t\turl = url.replace(/\\s/g, '').split(',').filter(function (item) {\n\t\t\t\t\treturn item !== '';\n\t\t\t\t});\n\t\t\t\turl = __WEBPACK_IMPORTED_MODULE_2_query_string___default.a.stringify({ url: url }, { arrayFormat: 'bracket' });\n\t\t\t}\n\n\t\t\twp.apiRequest({ path: '/feedzy/v1/feed?' + url }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tif (!data['error']) {\n\t\t\t\t\tprops.setAttributes({ feedData: data });\n\t\t\t\t\tprops.setAttributes({ status: 2 });\n\t\t\t\t\treturn data;\n\t\t\t\t} else {\n\t\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t}).fail(function (err) {\n\t\t\t\tprops.setAttributes({ status: 3 });\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tvar loadCategories = function loadCategories() {\n\t\t\twp.apiRequest({ path: '/wp/v2/feedzy_categories' }).then(function (data) {\n\t\t\t\tif (_this.unmounting) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\tvar i = 0;\n\t\t\t\tvar categories = [];\n\t\t\t\tdata.forEach(function (item) {\n\t\t\t\t\tcategories[i] = item.slug;\n\t\t\t\t\ti = i + 1;\n\t\t\t\t});\n\t\t\t\tprops.setAttributes({ categories: categories });\n\t\t\t\tjQuery('.feedzy-source input').autocomplete({\n\t\t\t\t\tsource: categories,\n\t\t\t\t\tselect: function select(event, ui) {\n\t\t\t\t\t\tprops.setAttributes({ feeds: ui.item.label });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function (err) {\n\t\t\t\treturn err;\n\t\t\t});\n\t\t};\n\t\tvar metaExists = function metaExists(value) {\n\t\t\treturn 0 <= props.attributes.metafields.replace(/\\s/g, '').split(',').indexOf(value) || '' === props.attributes.metafields;\n\t\t};\n\t\tif (props.attributes.categories === undefined) {\n\t\t\tif (!props.attributes.meta) {\n\t\t\t\tprops.setAttributes({\n\t\t\t\t\tmeta: true,\n\t\t\t\t\tmetafields: 'no'\n\t\t\t\t});\n\t\t\t}\n\t\t\tloadCategories();\n\t\t}\n\t\treturn [\n\t\t// Inspector\n\t\t!!props.isSelected && wp.element.createElement(__WEBPACK_IMPORTED_MODULE_4__inspector__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ onChangeFeeds: onChangeFeeds, onChangeMax: onChangeMax, toggleFeedTitle: toggleFeedTitle, onRefresh: onRefresh, onSort: onSort, onTarget: onTarget, onTitle: onTitle, changeMeta: changeMeta, toggleSummary: toggleSummary, onSummaryLength: onSummaryLength, onKeywordsTitle: onKeywordsTitle, onKeywordsBan: onKeywordsBan, onThumb: onThumb, onDefault: onDefault, onSize: onSize, onReferralURL: onReferralURL, onColumns: onColumns, onTemplate: onTemplate, togglePrice: togglePrice, loadFeed: loadFeed }, props)), props.attributes.status !== 2 && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: props.className },\n\t\t\twp.element.createElement(\n\t\t\t\tPlaceholder,\n\t\t\t\t{\n\t\t\t\t\tkey: 'placeholder',\n\t\t\t\t\ticon: 'rss',\n\t\t\t\t\tlabel: __('Feedzy RSS Feeds')\n\t\t\t\t},\n\t\t\t\tprops.attributes.status === 1 ? wp.element.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ key: 'loading', className: 'wp-block-embed is-loading' },\n\t\t\t\t\twp.element.createElement(Spinner, null),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'p',\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t__('Fetching…')\n\t\t\t\t\t)\n\t\t\t\t) : [props.attributes.status === 3 && wp.element.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\tnull,\n\t\t\t\t\t__('Feed URL Invalid')\n\t\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\t\ttype: 'url',\n\t\t\t\t\tclassName: 'feedzy-source',\n\t\t\t\t\tplaceholder: __('Enter URL or category of your feed here…'),\n\t\t\t\t\tonChange: onChangeFeeds,\n\t\t\t\t\tvalue: props.attributes.feeds\n\t\t\t\t}), wp.element.createElement(\n\t\t\t\t\tButton,\n\t\t\t\t\t{\n\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\ttype: 'submit',\n\t\t\t\t\t\tonClick: loadFeed\n\t\t\t\t\t},\n\t\t\t\t\t__('Load Feed')\n\t\t\t\t), wp.element.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tExternalLink,\n\t\t\t\t\t\t{ href: 'https://validator.w3.org/feed/' },\n\t\t\t\t\t\t__('Click here to check if feed is valid. ')\n\t\t\t\t\t),\n\t\t\t\t\t__('Invalid feeds will NOT display items.')\n\t\t\t\t)]\n\t\t\t)\n\t\t), !!(props.attributes.status === 2 && props.attributes.feedData !== undefined) && wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: 'feedzy-rss' },\n\t\t\tprops.attributes.feed_title && props.attributes.feedData['channel'] !== null && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'rss_header' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'h2',\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'a',\n\t\t\t\t\t\t{ className: 'rss_title' },\n\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['title'])\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\t{ className: 'rss_description' },\n\t\t\t\t\t\t' ' + Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(props.attributes.feedData['channel']['description'])\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t),\n\t\t\twp.element.createElement(\n\t\t\t\t'ul',\n\t\t\t\t{ className: 'feedzy-' + props.attributes.template },\n\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"a\" /* filterData */])(props.attributes.feedData['items'], props.attributes.sort, props.attributes.keywords_title, props.attributes.keywords_ban, props.attributes.max).map(function (item, i) {\n\t\t\t\t\tvar itemDateTime = (item['date'] || '') + ' ' + (item['time'] || '') + ' UTC +0000';\n\t\t\t\t\tvar itemDate = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['date']) || '';\n\t\t\t\t\tvar itemTime = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['time']) || '';\n\t\t\t\t\tvar categories = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['categories']) || '';\n\t\t\t\t\tif (metaExists('tz=local')) {\n\t\t\t\t\t\titemDate = date('F jS, \\o', itemDateTime);\n\t\t\t\t\t\titemTime = date('h:i A', itemDateTime);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t'li',\n\t\t\t\t\t\t{ key: i, style: { padding: '15px 0 25px' }, className: 'rss_item feedzy-rss-col-' + props.attributes.columns },\n\t\t\t\t\t\t(item['thumbnail'] && props.attributes.thumb === 'auto' || props.attributes.thumb === 'yes') && wp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_image', style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t{ title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']), style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px' } },\n\t\t\t\t\t\t\t\twp.element.createElement('span', { className: 'fetched', style: { width: props.attributes.size + 'px', height: props.attributes.size + 'px', backgroundImage: 'url(' + (item['thumbnail'] ? item['thumbnail'] : props.attributes.default ? props.attributes.default.url : feedzyjs.imagepath + 'feedzy-default.jpg') + ')' }, title: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']) })\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'rss_content_wrap' },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t\t{ className: 'title' },\n\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tprops.attributes.title && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).length > props.attributes.title ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title']).substring(0, props.attributes.title) + '...' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['title'])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t{ className: 'rss_content' },\n\t\t\t\t\t\t\t\tprops.attributes.metafields !== 'no' && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'small',\n\t\t\t\t\t\t\t\t\t{ className: 'meta' },\n\t\t\t\t\t\t\t\t\titem['creator'] && metaExists('author') && [__('by'), ' ', wp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\tObject(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['creator'])\n\t\t\t\t\t\t\t\t\t), ' '],\n\t\t\t\t\t\t\t\t\tmetaExists('date') && [__('on'), ' ', Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(itemDate), ' '],\n\t\t\t\t\t\t\t\t\tmetaExists('time') && [__('at'), ' ', Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(itemTime)],\n\t\t\t\t\t\t\t\t\tfeedzyjs.isPro && metaExists('categories') && [' ', __('in'), ' ', Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(categories)]\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tprops.attributes.summary && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'p',\n\t\t\t\t\t\t\t\t\t{ className: 'description' },\n\t\t\t\t\t\t\t\t\tprops.attributes.summarylength && Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).length > props.attributes.summarylength ? Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description']).substring(0, props.attributes.summarylength) + ' […]' : Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"c\" /* unescapeHTML */])(item['description'])\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && item['media'] && item['media']['src'] && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'audio',\n\t\t\t\t\t\t\t\t\t{ controls: true, controlsList: 'nodownload' },\n\t\t\t\t\t\t\t\t\twp.element.createElement('source', { src: item['media']['src'], type: item['media']['type'] }),\n\t\t\t\t\t\t\t\t\t__('Your browser does not support the audio element. But you can check this for the original link: '),\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\t{ href: item['media']['src'] },\n\t\t\t\t\t\t\t\t\t\titem['media']['src']\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tfeedzyjs.isPro && props.attributes.price && item['price'] && props.attributes.template !== 'default' && wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'price-wrap' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'a',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t\t'button',\n\t\t\t\t\t\t\t\t\t\t\t{ className: 'price' },\n\t\t\t\t\t\t\t\t\t\t\titem['price']\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t)\n\t\t)];\n\t},\n\tsave: function save() {\n\t\t// Rendering in PHP\n\t\treturn null;\n\t}\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2Jsb2NrLmpzPzUxZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcblxudmFyIF90aGlzID0gdGhpcztcblxuLy8ganNoaW50IGlnbm9yZTogc3RhcnRcblxuLyoqXG4gKiBCbG9jayBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5pbXBvcnQgYmxvY2tBdHRyaWJ1dGVzIGZyb20gJy4vYXR0cmlidXRlcyc7XG5pbXBvcnQgSW5zcGVjdG9yIGZyb20gJy4vaW5zcGVjdG9yJztcbmltcG9ydCB7IHVuZXNjYXBlSFRNTCwgZmlsdGVyRGF0YSwgaW5BcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEludGVybmFsIGJsb2NrIGxpYnJhcmllc1xuICovXG52YXIgX18gPSB3cC5pMThuLl9fO1xudmFyIHJlZ2lzdGVyQmxvY2tUeXBlID0gd3AuYmxvY2tzLnJlZ2lzdGVyQmxvY2tUeXBlO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBFeHRlcm5hbExpbmsgPSBfd3AkY29tcG9uZW50cy5FeHRlcm5hbExpbmssXG4gICAgUGxhY2Vob2xkZXIgPSBfd3AkY29tcG9uZW50cy5QbGFjZWhvbGRlcixcbiAgICBUZXh0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlRleHRDb250cm9sLFxuICAgIEJ1dHRvbiA9IF93cCRjb21wb25lbnRzLkJ1dHRvbixcbiAgICBTcGlubmVyID0gX3dwJGNvbXBvbmVudHMuU3Bpbm5lcjtcbnZhciBkYXRlID0gd3AuZGF0ZS5kYXRlO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGJsb2NrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgcmVnaXN0ZXJCbG9ja1R5cGUoJ2ZlZWR6eS1yc3MtZmVlZHMvZmVlZHp5LWJsb2NrJywge1xuXHR0aXRsZTogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKSxcblx0Y2F0ZWdvcnk6ICdjb21tb24nLFxuXHRpY29uOiAncnNzJyxcblx0a2V5d29yZHM6IFtfXygnRmVlZHp5IFJTUyBGZWVkcycpLCBfXygnUlNTJyksIF9fKCdGZWVkcycpXSxcblx0c3VwcG9ydHM6IHtcblx0XHRodG1sOiBmYWxzZVxuXHR9LFxuXHRhdHRyaWJ1dGVzOiBibG9ja0F0dHJpYnV0ZXMsXG5cdGVkaXQ6IGZ1bmN0aW9uIGVkaXQocHJvcHMpIHtcblx0XHR2YXIgb25DaGFuZ2VGZWVkcyA9IGZ1bmN0aW9uIG9uQ2hhbmdlRmVlZHModmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25DaGFuZ2VNYXggPSBmdW5jdGlvbiBvbkNoYW5nZU1heCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IG1heDogdmFsdWUudG9TdHJpbmcoKSB9KTtcblx0XHR9O1xuXHRcdHZhciB0b2dnbGVGZWVkVGl0bGUgPSBmdW5jdGlvbiB0b2dnbGVGZWVkVGl0bGUodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkX3RpdGxlOiAhcHJvcHMuYXR0cmlidXRlcy5mZWVkX3RpdGxlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uUmVmcmVzaCA9IGZ1bmN0aW9uIG9uUmVmcmVzaCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHJlZnJlc2g6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uU29ydCA9IGZ1bmN0aW9uIG9uU29ydCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHNvcnQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGFyZ2V0ID0gZnVuY3Rpb24gb25UYXJnZXQodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0YXJnZXQ6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGl0bGUgPSBmdW5jdGlvbiBvblRpdGxlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgdGl0bGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIGNoYW5nZU1ldGEgPSBmdW5jdGlvbiBjaGFuZ2VNZXRhKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgbWV0YWZpZWxkczogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgdG9nZ2xlU3VtbWFyeSA9IGZ1bmN0aW9uIHRvZ2dsZVN1bW1hcnkodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdW1tYXJ5OiAhcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5IH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uU3VtbWFyeUxlbmd0aCA9IGZ1bmN0aW9uIG9uU3VtbWFyeUxlbmd0aCh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN1bW1hcnlsZW5ndGg6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uS2V5d29yZHNUaXRsZSA9IGZ1bmN0aW9uIG9uS2V5d29yZHNUaXRsZSh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGtleXdvcmRzX3RpdGxlOiB2YWx1ZSB9KTtcblx0XHR9O1xuXHRcdHZhciBvbktleXdvcmRzQmFuID0gZnVuY3Rpb24gb25LZXl3b3Jkc0Jhbih2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGtleXdvcmRzX2JhbjogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25UaHVtYiA9IGZ1bmN0aW9uIG9uVGh1bWIodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyB0aHVtYjogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25EZWZhdWx0ID0gZnVuY3Rpb24gb25EZWZhdWx0KHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgZGVmYXVsdDogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25TaXplID0gZnVuY3Rpb24gb25TaXplKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgc2l6ZTogdmFsdWUgfSk7XG5cdFx0fTtcblx0XHR2YXIgb25SZWZlcnJhbFVSTCA9IGZ1bmN0aW9uIG9uUmVmZXJyYWxVUkwodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyByZWZlcnJhbF91cmw6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uQ29sdW1ucyA9IGZ1bmN0aW9uIG9uQ29sdW1ucyh2YWx1ZSkge1xuXHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGNvbHVtbnM6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIG9uVGVtcGxhdGUgPSBmdW5jdGlvbiBvblRlbXBsYXRlKHZhbHVlKSB7XG5cdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHsgdGVtcGxhdGU6IHZhbHVlIH0pO1xuXHRcdH07XG5cdFx0dmFyIHRvZ2dsZVByaWNlID0gZnVuY3Rpb24gdG9nZ2xlUHJpY2UodmFsdWUpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBwcmljZTogIXByb3BzLmF0dHJpYnV0ZXMucHJpY2UgfSk7XG5cdFx0fTtcblx0XHR2YXIgbG9hZEZlZWQgPSBmdW5jdGlvbiBsb2FkRmVlZCgpIHtcblx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDEgfSk7XG5cblx0XHRcdHZhciB1cmwgPSBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzO1xuXG5cdFx0XHRpZiAodXJsID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cmV0dXJuIHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDMgfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChpbkFycmF5KHVybCwgcHJvcHMuYXR0cmlidXRlcy5jYXRlZ29yaWVzKSkge1xuXHRcdFx0XHR2YXIgY2F0ZWdvcnkgPSB1cmw7XG5cdFx0XHRcdHVybCA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeSh7IGNhdGVnb3J5OiBjYXRlZ29yeSB9LCB7IGFycmF5Rm9ybWF0OiAnYnJhY2tldCcgfSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR1cmwgPSB1cmwucmVwbGFjZSgvXFxzL2csICcnKS5zcGxpdCgnLCcpLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRcdHJldHVybiBpdGVtICE9PSAnJztcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHVybCA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeSh7IHVybDogdXJsIH0sIHsgYXJyYXlGb3JtYXQ6ICdicmFja2V0JyB9KTtcblx0XHRcdH1cblxuXHRcdFx0d3AuYXBpUmVxdWVzdCh7IHBhdGg6ICcvZmVlZHp5L3YxL2ZlZWQ/JyArIHVybCB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG5cdFx0XHRcdGlmIChfdGhpcy51bm1vdW50aW5nKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFkYXRhWydlcnJvciddKSB7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGZlZWREYXRhOiBkYXRhIH0pO1xuXHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDIgfSk7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IHN0YXR1czogMyB9KTtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0fSkuZmFpbChmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBzdGF0dXM6IDMgfSk7XG5cdFx0XHRcdHJldHVybiBlcnI7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHZhciBsb2FkQ2F0ZWdvcmllcyA9IGZ1bmN0aW9uIGxvYWRDYXRlZ29yaWVzKCkge1xuXHRcdFx0d3AuYXBpUmVxdWVzdCh7IHBhdGg6ICcvd3AvdjIvZmVlZHp5X2NhdGVnb3JpZXMnIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcblx0XHRcdFx0aWYgKF90aGlzLnVubW91bnRpbmcpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRcdHZhciBjYXRlZ29yaWVzID0gW107XG5cdFx0XHRcdGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRcdGNhdGVnb3JpZXNbaV0gPSBpdGVtLnNsdWc7XG5cdFx0XHRcdFx0aSA9IGkgKyAxO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cHJvcHMuc2V0QXR0cmlidXRlcyh7IGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMgfSk7XG5cdFx0XHRcdGpRdWVyeSgnLmZlZWR6eS1zb3VyY2UgaW5wdXQnKS5hdXRvY29tcGxldGUoe1xuXHRcdFx0XHRcdHNvdXJjZTogY2F0ZWdvcmllcyxcblx0XHRcdFx0XHRzZWxlY3Q6IGZ1bmN0aW9uIHNlbGVjdChldmVudCwgdWkpIHtcblx0XHRcdFx0XHRcdHByb3BzLnNldEF0dHJpYnV0ZXMoeyBmZWVkczogdWkuaXRlbS5sYWJlbCB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSkuZmFpbChmdW5jdGlvbiAoZXJyKSB7XG5cdFx0XHRcdHJldHVybiBlcnI7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHZhciBtZXRhRXhpc3RzID0gZnVuY3Rpb24gbWV0YUV4aXN0cyh2YWx1ZSkge1xuXHRcdFx0cmV0dXJuIDAgPD0gcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzLnJlcGxhY2UoL1xccy9nLCAnJykuc3BsaXQoJywnKS5pbmRleE9mKHZhbHVlKSB8fCAnJyA9PT0gcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzO1xuXHRcdH07XG5cdFx0aWYgKHByb3BzLmF0dHJpYnV0ZXMuY2F0ZWdvcmllcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAoIXByb3BzLmF0dHJpYnV0ZXMubWV0YSkge1xuXHRcdFx0XHRwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0XHRtZXRhOiB0cnVlLFxuXHRcdFx0XHRcdG1ldGFmaWVsZHM6ICdubydcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRsb2FkQ2F0ZWdvcmllcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gW1xuXHRcdC8vIEluc3BlY3RvclxuXHRcdCEhcHJvcHMuaXNTZWxlY3RlZCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoSW5zcGVjdG9yLCBfZXh0ZW5kcyh7IG9uQ2hhbmdlRmVlZHM6IG9uQ2hhbmdlRmVlZHMsIG9uQ2hhbmdlTWF4OiBvbkNoYW5nZU1heCwgdG9nZ2xlRmVlZFRpdGxlOiB0b2dnbGVGZWVkVGl0bGUsIG9uUmVmcmVzaDogb25SZWZyZXNoLCBvblNvcnQ6IG9uU29ydCwgb25UYXJnZXQ6IG9uVGFyZ2V0LCBvblRpdGxlOiBvblRpdGxlLCBjaGFuZ2VNZXRhOiBjaGFuZ2VNZXRhLCB0b2dnbGVTdW1tYXJ5OiB0b2dnbGVTdW1tYXJ5LCBvblN1bW1hcnlMZW5ndGg6IG9uU3VtbWFyeUxlbmd0aCwgb25LZXl3b3Jkc1RpdGxlOiBvbktleXdvcmRzVGl0bGUsIG9uS2V5d29yZHNCYW46IG9uS2V5d29yZHNCYW4sIG9uVGh1bWI6IG9uVGh1bWIsIG9uRGVmYXVsdDogb25EZWZhdWx0LCBvblNpemU6IG9uU2l6ZSwgb25SZWZlcnJhbFVSTDogb25SZWZlcnJhbFVSTCwgb25Db2x1bW5zOiBvbkNvbHVtbnMsIG9uVGVtcGxhdGU6IG9uVGVtcGxhdGUsIHRvZ2dsZVByaWNlOiB0b2dnbGVQcmljZSwgbG9hZEZlZWQ6IGxvYWRGZWVkIH0sIHByb3BzKSksIHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzICE9PSAyICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCdkaXYnLFxuXHRcdFx0eyBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRQbGFjZWhvbGRlcixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGtleTogJ3BsYWNlaG9sZGVyJyxcblx0XHRcdFx0XHRpY29uOiAncnNzJyxcblx0XHRcdFx0XHRsYWJlbDogX18oJ0ZlZWR6eSBSU1MgRmVlZHMnKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyA9PT0gMSA/IHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHR7IGtleTogJ2xvYWRpbmcnLCBjbGFzc05hbWU6ICd3cC1ibG9jay1lbWJlZCBpcy1sb2FkaW5nJyB9LFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTcGlubmVyLCBudWxsKSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQncCcsXG5cdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0X18oJ0ZldGNoaW5n4oCmJylcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCkgOiBbcHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDMgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdzcGFuJyxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdF9fKCdGZWVkIFVSTCBJbnZhbGlkJylcblx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdFx0dHlwZTogJ3VybCcsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lOiAnZmVlZHp5LXNvdXJjZScsXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI6IF9fKCdFbnRlciBVUkwgb3IgY2F0ZWdvcnkgb2YgeW91ciBmZWVkIGhlcmXigKYnKSxcblx0XHRcdFx0XHRvbkNoYW5nZTogb25DaGFuZ2VGZWVkcyxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5mZWVkc1xuXHRcdFx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dHlwZTogJ3N1Ym1pdCcsXG5cdFx0XHRcdFx0XHRvbkNsaWNrOiBsb2FkRmVlZFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0X18oJ0xvYWQgRmVlZCcpXG5cdFx0XHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnc3BhbicsXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRFeHRlcm5hbExpbmssXG5cdFx0XHRcdFx0XHR7IGhyZWY6ICdodHRwczovL3ZhbGlkYXRvci53My5vcmcvZmVlZC8nIH0sXG5cdFx0XHRcdFx0XHRfXygnQ2xpY2sgaGVyZSB0byBjaGVjayBpZiBmZWVkIGlzIHZhbGlkLiAnKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0X18oJ0ludmFsaWQgZmVlZHMgd2lsbCBOT1QgZGlzcGxheSBpdGVtcy4nKVxuXHRcdFx0XHQpXVxuXHRcdFx0KVxuXHRcdCksICEhKHByb3BzLmF0dHJpYnV0ZXMuc3RhdHVzID09PSAyICYmIHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGEgIT09IHVuZGVmaW5lZCkgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0J2RpdicsXG5cdFx0XHR7IGNsYXNzTmFtZTogJ2ZlZWR6eS1yc3MnIH0sXG5cdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLmZlZWRfdGl0bGUgJiYgcHJvcHMuYXR0cmlidXRlcy5mZWVkRGF0YVsnY2hhbm5lbCddICE9PSBudWxsICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2hlYWRlcicgfSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdCdoMicsXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc190aXRsZScgfSxcblx0XHRcdFx0XHRcdHVuZXNjYXBlSFRNTChwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ11bJ3RpdGxlJ10pXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHQnc3BhbicsXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc19kZXNjcmlwdGlvbicgfSxcblx0XHRcdFx0XHRcdCcgJyArIHVuZXNjYXBlSFRNTChwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydjaGFubmVsJ11bJ2Rlc2NyaXB0aW9uJ10pXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHQndWwnLFxuXHRcdFx0XHR7IGNsYXNzTmFtZTogJ2ZlZWR6eS0nICsgcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSB9LFxuXHRcdFx0XHRmaWx0ZXJEYXRhKHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2l0ZW1zJ10sIHByb3BzLmF0dHJpYnV0ZXMuc29ydCwgcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc190aXRsZSwgcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc19iYW4sIHByb3BzLmF0dHJpYnV0ZXMubWF4KS5tYXAoZnVuY3Rpb24gKGl0ZW0sIGkpIHtcblx0XHRcdFx0XHR2YXIgaXRlbURhdGVUaW1lID0gKGl0ZW1bJ2RhdGUnXSB8fCAnJykgKyAnICcgKyAoaXRlbVsndGltZSddIHx8ICcnKSArICcgVVRDICswMDAwJztcblx0XHRcdFx0XHR2YXIgaXRlbURhdGUgPSB1bmVzY2FwZUhUTUwoaXRlbVsnZGF0ZSddKSB8fCAnJztcblx0XHRcdFx0XHR2YXIgaXRlbVRpbWUgPSB1bmVzY2FwZUhUTUwoaXRlbVsndGltZSddKSB8fCAnJztcblx0XHRcdFx0XHR2YXIgY2F0ZWdvcmllcyA9IHVuZXNjYXBlSFRNTChpdGVtWydjYXRlZ29yaWVzJ10pIHx8ICcnO1xuXHRcdFx0XHRcdGlmIChtZXRhRXhpc3RzKCd0ej1sb2NhbCcpKSB7XG5cdFx0XHRcdFx0XHRpdGVtRGF0ZSA9IGRhdGUoJ0YgalMsIFxcbycsIGl0ZW1EYXRlVGltZSk7XG5cdFx0XHRcdFx0XHRpdGVtVGltZSA9IGRhdGUoJ2g6aSBBJywgaXRlbURhdGVUaW1lKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0J2xpJyxcblx0XHRcdFx0XHRcdHsga2V5OiBpLCBzdHlsZTogeyBwYWRkaW5nOiAnMTVweCAwIDI1cHgnIH0sIGNsYXNzTmFtZTogJ3Jzc19pdGVtIGZlZWR6eS1yc3MtY29sLScgKyBwcm9wcy5hdHRyaWJ1dGVzLmNvbHVtbnMgfSxcblx0XHRcdFx0XHRcdChpdGVtWyd0aHVtYm5haWwnXSAmJiBwcm9wcy5hdHRyaWJ1dGVzLnRodW1iID09PSAnYXV0bycgfHwgcHJvcHMuYXR0cmlidXRlcy50aHVtYiA9PT0gJ3llcycpICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2ltYWdlJywgc3R5bGU6IHsgd2lkdGg6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSArICdweCcsIGhlaWdodDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JyB9IH0sXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHRcdFx0eyB0aXRsZTogdW5lc2NhcGVIVE1MKGl0ZW1bJ3RpdGxlJ10pLCBzdHlsZTogeyB3aWR0aDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JywgaGVpZ2h0OiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUgKyAncHgnIH0gfSxcblx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IGNsYXNzTmFtZTogJ2ZldGNoZWQnLCBzdHlsZTogeyB3aWR0aDogcHJvcHMuYXR0cmlidXRlcy5zaXplICsgJ3B4JywgaGVpZ2h0OiBwcm9wcy5hdHRyaWJ1dGVzLnNpemUgKyAncHgnLCBiYWNrZ3JvdW5kSW1hZ2U6ICd1cmwoJyArIChpdGVtWyd0aHVtYm5haWwnXSA/IGl0ZW1bJ3RodW1ibmFpbCddIDogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0ID8gcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LnVybCA6IGZlZWR6eWpzLmltYWdlcGF0aCArICdmZWVkenktZGVmYXVsdC5qcGcnKSArICcpJyB9LCB0aXRsZTogdW5lc2NhcGVIVE1MKGl0ZW1bJ3RpdGxlJ10pIH0pXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3Jzc19jb250ZW50X3dyYXAnIH0sXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHQnc3BhbicsXG5cdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICd0aXRsZScgfSxcblx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcHMuYXR0cmlidXRlcy50aXRsZSAmJiB1bmVzY2FwZUhUTUwoaXRlbVsndGl0bGUnXSkubGVuZ3RoID4gcHJvcHMuYXR0cmlidXRlcy50aXRsZSA/IHVuZXNjYXBlSFRNTChpdGVtWyd0aXRsZSddKS5zdWJzdHJpbmcoMCwgcHJvcHMuYXR0cmlidXRlcy50aXRsZSkgKyAnLi4uJyA6IHVuZXNjYXBlSFRNTChpdGVtWyd0aXRsZSddKVxuXHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncnNzX2NvbnRlbnQnIH0sXG5cdFx0XHRcdFx0XHRcdFx0cHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzICE9PSAnbm8nICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdzbWFsbCcsXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ21ldGEnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRpdGVtWydjcmVhdG9yJ10gJiYgbWV0YUV4aXN0cygnYXV0aG9yJykgJiYgW19fKCdieScpLCAnICcsIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdFx0J2EnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR1bmVzY2FwZUhUTUwoaXRlbVsnY3JlYXRvciddKVxuXHRcdFx0XHRcdFx0XHRcdFx0KSwgJyAnXSxcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFFeGlzdHMoJ2RhdGUnKSAmJiBbX18oJ29uJyksICcgJywgdW5lc2NhcGVIVE1MKGl0ZW1EYXRlKSwgJyAnXSxcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFFeGlzdHMoJ3RpbWUnKSAmJiBbX18oJ2F0JyksICcgJywgdW5lc2NhcGVIVE1MKGl0ZW1UaW1lKV0sXG5cdFx0XHRcdFx0XHRcdFx0XHRmZWVkenlqcy5pc1BybyAmJiBtZXRhRXhpc3RzKCdjYXRlZ29yaWVzJykgJiYgWycgJywgX18oJ2luJyksICcgJywgdW5lc2NhcGVIVE1MKGNhdGVnb3JpZXMpXVxuXHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0cHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5ICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdwJyxcblx0XHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnZGVzY3JpcHRpb24nIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN1bW1hcnlsZW5ndGggJiYgdW5lc2NhcGVIVE1MKGl0ZW1bJ2Rlc2NyaXB0aW9uJ10pLmxlbmd0aCA+IHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeWxlbmd0aCA/IHVuZXNjYXBlSFRNTChpdGVtWydkZXNjcmlwdGlvbiddKS5zdWJzdHJpbmcoMCwgcHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5bGVuZ3RoKSArICcgW+KApl0nIDogdW5lc2NhcGVIVE1MKGl0ZW1bJ2Rlc2NyaXB0aW9uJ10pXG5cdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRmZWVkenlqcy5pc1BybyAmJiBpdGVtWydtZWRpYSddICYmIGl0ZW1bJ21lZGlhJ11bJ3NyYyddICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdhdWRpbycsXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGNvbnRyb2xzOiB0cnVlLCBjb250cm9sc0xpc3Q6ICdub2Rvd25sb2FkJyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdzb3VyY2UnLCB7IHNyYzogaXRlbVsnbWVkaWEnXVsnc3JjJ10sIHR5cGU6IGl0ZW1bJ21lZGlhJ11bJ3R5cGUnXSB9KSxcblx0XHRcdFx0XHRcdFx0XHRcdF9fKCdZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXVkaW8gZWxlbWVudC4gQnV0IHlvdSBjYW4gY2hlY2sgdGhpcyBmb3IgdGhlIG9yaWdpbmFsIGxpbms6ICcpLFxuXHRcdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnYScsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgaHJlZjogaXRlbVsnbWVkaWEnXVsnc3JjJ10gfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbVsnbWVkaWEnXVsnc3JjJ11cblx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHRcdGZlZWR6eWpzLmlzUHJvICYmIHByb3BzLmF0dHJpYnV0ZXMucHJpY2UgJiYgaXRlbVsncHJpY2UnXSAmJiBwcm9wcy5hdHRyaWJ1dGVzLnRlbXBsYXRlICE9PSAnZGVmYXVsdCcgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3ByaWNlLXdyYXAnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdhJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdidXR0b24nLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAncHJpY2UnIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbVsncHJpY2UnXVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSlcblx0XHRcdClcblx0XHQpXTtcblx0fSxcblx0c2F2ZTogZnVuY3Rpb24gc2F2ZSgpIHtcblx0XHQvLyBSZW5kZXJpbmcgaW4gUEhQXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vaW5jbHVkZXMvZ3V0ZW5iZXJnL3NyYy9ibG9jay5qc1xuLy8gbW9kdWxlIGlkID0gMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n");
246
 
247
  /***/ }),
248
  /* 30 */
335
  /***/ (function(module, exports, __webpack_require__) {
336
 
337
  "use strict";
338
+ eval("\nconst strictUriEncode = __webpack_require__(45);\nconst decodeComponent = __webpack_require__(46);\nconst splitOnFirst = __webpack_require__(47);\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\t\treturn key => (result, value, index) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(',')];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(',') > -1;\n\t\t\t\tconst newValue = isArray ? value.split(',') : value;\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(param.replace(/\\+/g, ' '), '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t}, options);\n\n\tconst formatter = encoderForArrayFormat(options);\n\tconst keys = Object.keys(object);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\treturn {\n\t\turl: removeHash(input).split('?')[0] || '',\n\t\tquery: parse(extract(input), options)\n\t};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcXVlcnktc3RyaW5nL2luZGV4LmpzPzM4MGMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgc3RyaWN0VXJpRW5jb2RlID0gcmVxdWlyZSgnc3RyaWN0LXVyaS1lbmNvZGUnKTtcbmNvbnN0IGRlY29kZUNvbXBvbmVudCA9IHJlcXVpcmUoJ2RlY29kZS11cmktY29tcG9uZW50Jyk7XG5jb25zdCBzcGxpdE9uRmlyc3QgPSByZXF1aXJlKCdzcGxpdC1vbi1maXJzdCcpO1xuXG5mdW5jdGlvbiBlbmNvZGVyRm9yQXJyYXlGb3JtYXQob3B0aW9ucykge1xuXHRzd2l0Y2ggKG9wdGlvbnMuYXJyYXlGb3JtYXQpIHtcblx0XHRjYXNlICdpbmRleCc6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gcmVzdWx0Lmxlbmd0aDtcblx0XHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1snLCBpbmRleCwgJ10nXS5qb2luKCcnKV07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdC4uLnJlc3VsdCxcblx0XHRcdFx0XHRbZW5jb2RlKGtleSwgb3B0aW9ucyksICdbJywgZW5jb2RlKGluZGV4LCBvcHRpb25zKSwgJ109JywgZW5jb2RlKHZhbHVlLCBvcHRpb25zKV0uam9pbignJylcblx0XHRcdFx0XTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdicmFja2V0Jzpcblx0XHRcdHJldHVybiBrZXkgPT4gKHJlc3VsdCwgdmFsdWUpID0+IHtcblx0XHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1tdJ10uam9pbignJyldO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIFtlbmNvZGUoa2V5LCBvcHRpb25zKSwgJ1tdPScsIGVuY29kZSh2YWx1ZSwgb3B0aW9ucyldLmpvaW4oJycpXTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdjb21tYSc6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGluZGV4ID09PSAwKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFtbZW5jb2RlKGtleSwgb3B0aW9ucyksICc9JywgZW5jb2RlKHZhbHVlLCBvcHRpb25zKV0uam9pbignJyldO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtbcmVzdWx0LCBlbmNvZGUodmFsdWUsIG9wdGlvbnMpXS5qb2luKCcsJyldO1xuXHRcdFx0fTtcblxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4ga2V5ID0+IChyZXN1bHQsIHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHJldHVybiBbLi4ucmVzdWx0LCBlbmNvZGUoa2V5LCBvcHRpb25zKV07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gWy4uLnJlc3VsdCwgW2VuY29kZShrZXksIG9wdGlvbnMpLCAnPScsIGVuY29kZSh2YWx1ZSwgb3B0aW9ucyldLmpvaW4oJycpXTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gcGFyc2VyRm9yQXJyYXlGb3JtYXQob3B0aW9ucykge1xuXHRsZXQgcmVzdWx0O1xuXG5cdHN3aXRjaCAob3B0aW9ucy5hcnJheUZvcm1hdCkge1xuXHRcdGNhc2UgJ2luZGV4Jzpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0cmVzdWx0ID0gL1xcWyhcXGQqKVxcXSQvLmV4ZWMoa2V5KTtcblxuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvXFxbXFxkKlxcXSQvLCAnJyk7XG5cblx0XHRcdFx0aWYgKCFyZXN1bHQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB7fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFjY3VtdWxhdG9yW2tleV1bcmVzdWx0WzFdXSA9IHZhbHVlO1xuXHRcdFx0fTtcblxuXHRcdGNhc2UgJ2JyYWNrZXQnOlxuXHRcdFx0cmV0dXJuIChrZXksIHZhbHVlLCBhY2N1bXVsYXRvcikgPT4ge1xuXHRcdFx0XHRyZXN1bHQgPSAvKFxcW1xcXSkkLy5leGVjKGtleSk7XG5cdFx0XHRcdGtleSA9IGtleS5yZXBsYWNlKC9cXFtcXF0kLywgJycpO1xuXG5cdFx0XHRcdGlmICghcmVzdWx0KSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IHZhbHVlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChhY2N1bXVsYXRvcltrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW3ZhbHVlXTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW10uY29uY2F0KGFjY3VtdWxhdG9yW2tleV0sIHZhbHVlKTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdjb21tYSc6XG5cdFx0XHRyZXR1cm4gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGlzQXJyYXkgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnNwbGl0KCcnKS5pbmRleE9mKCcsJykgPiAtMTtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWUgPSBpc0FycmF5ID8gdmFsdWUuc3BsaXQoJywnKSA6IHZhbHVlO1xuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gbmV3VmFsdWU7XG5cdFx0XHR9O1xuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpID0+IHtcblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW10uY29uY2F0KGFjY3VtdWxhdG9yW2tleV0sIHZhbHVlKTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlKHZhbHVlLCBvcHRpb25zKSB7XG5cdGlmIChvcHRpb25zLmVuY29kZSkge1xuXHRcdHJldHVybiBvcHRpb25zLnN0cmljdCA/IHN0cmljdFVyaUVuY29kZSh2YWx1ZSkgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHR9XG5cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBkZWNvZGUodmFsdWUsIG9wdGlvbnMpIHtcblx0aWYgKG9wdGlvbnMuZGVjb2RlKSB7XG5cdFx0cmV0dXJuIGRlY29kZUNvbXBvbmVudCh2YWx1ZSk7XG5cdH1cblxuXHRyZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGtleXNTb3J0ZXIoaW5wdXQpIHtcblx0aWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG5cdFx0cmV0dXJuIGlucHV0LnNvcnQoKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnKSB7XG5cdFx0cmV0dXJuIGtleXNTb3J0ZXIoT2JqZWN0LmtleXMoaW5wdXQpKVxuXHRcdFx0LnNvcnQoKGEsIGIpID0+IE51bWJlcihhKSAtIE51bWJlcihiKSlcblx0XHRcdC5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0O1xufVxuXG5mdW5jdGlvbiByZW1vdmVIYXNoKGlucHV0KSB7XG5cdGNvbnN0IGhhc2hTdGFydCA9IGlucHV0LmluZGV4T2YoJyMnKTtcblx0aWYgKGhhc2hTdGFydCAhPT0gLTEpIHtcblx0XHRpbnB1dCA9IGlucHV0LnNsaWNlKDAsIGhhc2hTdGFydCk7XG5cdH1cblxuXHRyZXR1cm4gaW5wdXQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3QoaW5wdXQpIHtcblx0aW5wdXQgPSByZW1vdmVIYXNoKGlucHV0KTtcblx0Y29uc3QgcXVlcnlTdGFydCA9IGlucHV0LmluZGV4T2YoJz8nKTtcblx0aWYgKHF1ZXJ5U3RhcnQgPT09IC0xKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0LnNsaWNlKHF1ZXJ5U3RhcnQgKyAxKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VWYWx1ZSh2YWx1ZSwgb3B0aW9ucykge1xuXHRpZiAob3B0aW9ucy5wYXJzZU51bWJlcnMgJiYgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKSAmJiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSkge1xuXHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0fSBlbHNlIGlmIChvcHRpb25zLnBhcnNlQm9vbGVhbnMgJiYgdmFsdWUgIT09IG51bGwgJiYgKHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSkge1xuXHRcdHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuXHR9XG5cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBwYXJzZShpbnB1dCwgb3B0aW9ucykge1xuXHRvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7XG5cdFx0ZGVjb2RlOiB0cnVlLFxuXHRcdHNvcnQ6IHRydWUsXG5cdFx0YXJyYXlGb3JtYXQ6ICdub25lJyxcblx0XHRwYXJzZU51bWJlcnM6IGZhbHNlLFxuXHRcdHBhcnNlQm9vbGVhbnM6IGZhbHNlXG5cdH0sIG9wdGlvbnMpO1xuXG5cdGNvbnN0IGZvcm1hdHRlciA9IHBhcnNlckZvckFycmF5Rm9ybWF0KG9wdGlvbnMpO1xuXG5cdC8vIENyZWF0ZSBhbiBvYmplY3Qgd2l0aCBubyBwcm90b3R5cGVcblx0Y29uc3QgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuXHRpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuXHRcdHJldHVybiByZXQ7XG5cdH1cblxuXHRpbnB1dCA9IGlucHV0LnRyaW0oKS5yZXBsYWNlKC9eWz8jJl0vLCAnJyk7XG5cblx0aWYgKCFpbnB1dCkge1xuXHRcdHJldHVybiByZXQ7XG5cdH1cblxuXHRmb3IgKGNvbnN0IHBhcmFtIG9mIGlucHV0LnNwbGl0KCcmJykpIHtcblx0XHRsZXQgW2tleSwgdmFsdWVdID0gc3BsaXRPbkZpcnN0KHBhcmFtLnJlcGxhY2UoL1xcKy9nLCAnICcpLCAnPScpO1xuXG5cdFx0Ly8gTWlzc2luZyBgPWAgc2hvdWxkIGJlIGBudWxsYDpcblx0XHQvLyBodHRwOi8vdzMub3JnL1RSLzIwMTIvV0QtdXJsLTIwMTIwNTI0LyNjb2xsZWN0LXVybC1wYXJhbWV0ZXJzXG5cdFx0dmFsdWUgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlY29kZSh2YWx1ZSwgb3B0aW9ucyk7XG5cdFx0Zm9ybWF0dGVyKGRlY29kZShrZXksIG9wdGlvbnMpLCB2YWx1ZSwgcmV0KTtcblx0fVxuXG5cdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJldCkpIHtcblx0XHRjb25zdCB2YWx1ZSA9IHJldFtrZXldO1xuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG5cdFx0XHRcdHZhbHVlW2tdID0gcGFyc2VWYWx1ZSh2YWx1ZVtrXSwgb3B0aW9ucyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldFtrZXldID0gcGFyc2VWYWx1ZSh2YWx1ZSwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKG9wdGlvbnMuc29ydCA9PT0gZmFsc2UpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0cmV0dXJuIChvcHRpb25zLnNvcnQgPT09IHRydWUgPyBPYmplY3Qua2V5cyhyZXQpLnNvcnQoKSA6IE9iamVjdC5rZXlzKHJldCkuc29ydChvcHRpb25zLnNvcnQpKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSByZXRba2V5XTtcblx0XHRpZiAoQm9vbGVhbih2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdC8vIFNvcnQgb2JqZWN0IGtleXMsIG5vdCB2YWx1ZXNcblx0XHRcdHJlc3VsdFtrZXldID0ga2V5c1NvcnRlcih2YWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdFtrZXldID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG59XG5cbmV4cG9ydHMuZXh0cmFjdCA9IGV4dHJhY3Q7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5cbmV4cG9ydHMuc3RyaW5naWZ5ID0gKG9iamVjdCwgb3B0aW9ucykgPT4ge1xuXHRpZiAoIW9iamVjdCkge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcblx0XHRlbmNvZGU6IHRydWUsXG5cdFx0c3RyaWN0OiB0cnVlLFxuXHRcdGFycmF5Rm9ybWF0OiAnbm9uZSdcblx0fSwgb3B0aW9ucyk7XG5cblx0Y29uc3QgZm9ybWF0dGVyID0gZW5jb2RlckZvckFycmF5Rm9ybWF0KG9wdGlvbnMpO1xuXHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuXHRpZiAob3B0aW9ucy5zb3J0ICE9PSBmYWxzZSkge1xuXHRcdGtleXMuc29ydChvcHRpb25zLnNvcnQpO1xuXHR9XG5cblx0cmV0dXJuIGtleXMubWFwKGtleSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gZW5jb2RlKGtleSwgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0LnJlZHVjZShmb3JtYXR0ZXIoa2V5KSwgW10pXG5cdFx0XHRcdC5qb2luKCcmJyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVuY29kZShrZXksIG9wdGlvbnMpICsgJz0nICsgZW5jb2RlKHZhbHVlLCBvcHRpb25zKTtcblx0fSkuZmlsdGVyKHggPT4geC5sZW5ndGggPiAwKS5qb2luKCcmJyk7XG59O1xuXG5leHBvcnRzLnBhcnNlVXJsID0gKGlucHV0LCBvcHRpb25zKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0dXJsOiByZW1vdmVIYXNoKGlucHV0KS5zcGxpdCgnPycpWzBdIHx8ICcnLFxuXHRcdHF1ZXJ5OiBwYXJzZShleHRyYWN0KGlucHV0KSwgb3B0aW9ucylcblx0fTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9xdWVyeS1zdHJpbmcvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n");
339
 
340
  /***/ }),
341
  /* 45 */
370
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
371
 
372
  "use strict";
373
+ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__radio_image_control___ = __webpack_require__(50);\n// jshint ignore: start\n\n/**\n * Block dependencies\n */\n\n\n/**\n * Internal block libraries\n */\nvar __ = wp.i18n.__;\nvar _wp$editor = wp.editor,\n InspectorControls = _wp$editor.InspectorControls,\n MediaUpload = _wp$editor.MediaUpload;\nvar _wp$components = wp.components,\n BaseControl = _wp$components.BaseControl,\n ExternalLink = _wp$components.ExternalLink,\n PanelBody = _wp$components.PanelBody,\n RangeControl = _wp$components.RangeControl,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n ToggleControl = _wp$components.ToggleControl,\n SelectControl = _wp$components.SelectControl,\n ResponsiveWrapper = _wp$components.ResponsiveWrapper;\n\n/**\n* Create an Inspector Controls wrapper Component\n*/\n\nvar Inspector = function Inspector(props) {\n\treturn wp.element.createElement(\n\t\tInspectorControls,\n\t\t{ key: 'inspector' },\n\t\tprops.attributes.status !== 0 && wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\tnull,\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Feed Source'),\n\t\t\t\tclassName: 'feedzy-source',\n\t\t\t\tvalue: props.attributes.feeds,\n\t\t\t\tonChange: props.onChangeFeeds\n\t\t\t}),\n\t\t\twp.element.createElement(\n\t\t\t\tButton,\n\t\t\t\t{\n\t\t\t\t\tisLarge: true,\n\t\t\t\t\ttype: 'submit',\n\t\t\t\t\tonClick: props.loadFeed,\n\t\t\t\t\tclassName: 'loadFeed'\n\t\t\t\t},\n\t\t\t\t__('Load Feed')\n\t\t\t)\n\t\t),\n\t\tprops.attributes.status === 2 && [wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{\n\t\t\t\ttitle: __('Feed Settings'),\n\t\t\t\tinitialOpen: true\n\t\t\t},\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Number of Feeds'),\n\t\t\t\tvalue: Number(props.attributes.max) || 5,\n\t\t\t\tonChange: props.onChangeMax,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: props.attributes.feedData['items'].length || 10,\n\t\t\t\tbeforeIcon: 'sort'\n\t\t\t}),\n\t\t\tprops.attributes.feedData['channel'] !== null && wp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display feed title?'),\n\t\t\t\tchecked: !!props.attributes.feed_title,\n\t\t\t\tonChange: props.toggleFeedTitle\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Feed Caching Time'),\n\t\t\t\tvalue: props.attributes.refresh,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('1 Hour'),\n\t\t\t\t\tvalue: '1_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('2 Hours'),\n\t\t\t\t\tvalue: '3_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('12 Hours'),\n\t\t\t\t\tvalue: '12_hours'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('1 Day'),\n\t\t\t\t\tvalue: '1_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('3 Days'),\n\t\t\t\t\tvalue: '3_days'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('15 Days'),\n\t\t\t\t\tvalue: '15_days'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onRefresh\n\t\t\t}),\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Sorting Order'),\n\t\t\t\tvalue: props.attributes.sort,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Default'),\n\t\t\t\t\tvalue: 'default'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Date Descending'),\n\t\t\t\t\tvalue: 'date_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Date Ascending'),\n\t\t\t\t\tvalue: 'date_asc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Descending'),\n\t\t\t\t\tvalue: 'title_desc'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Title Ascending'),\n\t\t\t\t\tvalue: 'title_asc'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onSort\n\t\t\t})\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Open Links In'),\n\t\t\t\tvalue: props.attributes.target,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('New Tab'),\n\t\t\t\t\tvalue: '_blank'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Same Tab'),\n\t\t\t\t\tvalue: '_self'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTarget\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Title Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full title.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.title,\n\t\t\t\tonChange: props.onTitle\n\t\t\t}),\n\t\t\twp.element.createElement(\n\t\t\t\tBaseControl,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\tlabel: feedzyjs.isPro ? __('Should we display additional meta fields out of author, date, time or categories? (comma-separated list).') : __('Should we display additional meta fields out of author, date or time? (comma-separated list).'),\n\t\t\t\t\tplaceholder: feedzyjs.isPro ? __('(eg: author, date, time, tz=local, categories)') : __('(eg: author, date, time, tz=local)'),\n\t\t\t\t\tvalue: props.attributes.metafields,\n\t\t\t\t\tonChange: props.changeMeta\n\t\t\t\t}),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tExternalLink,\n\t\t\t\t\t{ href: 'https://docs.themeisle.com/article/1089-how-to-display-author-date-or-time-from-the-feed' },\n\t\t\t\t\t__('You can find more info about available meta field values here.')\n\t\t\t\t)\n\t\t\t),\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display post description?'),\n\t\t\t\tchecked: !!props.attributes.summary,\n\t\t\t\tonChange: props.toggleSummary\n\t\t\t}),\n\t\t\tprops.attributes.summary && wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Description Character Limit'),\n\t\t\t\thelp: __('Leave empty to show full description.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.summarylength,\n\t\t\t\tonChange: props.onSummaryLength\n\t\t\t}),\n\t\t\tfeedzyjs.isPro && [wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Only display if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_title,\n\t\t\t\tonChange: props.onKeywordsTitle\n\t\t\t}), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Exclude if title contains:'),\n\t\t\t\thelp: __('Comma-separated list/case sensitive.'),\n\t\t\t\tvalue: props.attributes.keywords_ban,\n\t\t\t\tonChange: props.onKeywordsBan\n\t\t\t})]\n\t\t), wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Item Image Options'), initialOpen: false },\n\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\tlabel: __('Display first image if available?'),\n\t\t\t\tvalue: props.attributes.thumb,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Auto'),\n\t\t\t\t\tvalue: 'auto'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Yes'),\n\t\t\t\t\tvalue: 'yes'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('No'),\n\t\t\t\t\tvalue: 'no'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onThumb\n\t\t\t}),\n\t\t\tprops.attributes.thumb !== 'no' && [props.attributes.thumb !== 'auto' && wp.element.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: 'feedzy-blocks-base-control' },\n\t\t\t\twp.element.createElement(\n\t\t\t\t\t'label',\n\t\t\t\t\t{ className: 'blocks-base-control__label', 'for': 'inspector-media-upload' },\n\t\t\t\t\t__('Default thumbnail URL if no image is found.')\n\t\t\t\t),\n\t\t\t\twp.element.createElement(MediaUpload, {\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tid: 'inspector-media-upload',\n\t\t\t\t\tvalue: props.attributes.default,\n\t\t\t\t\tonSelect: props.onDefault,\n\t\t\t\t\trender: function render(_ref) {\n\t\t\t\t\t\tvar open = _ref.open;\n\t\t\t\t\t\treturn [props.attributes.default !== undefined && [wp.element.createElement(\n\t\t\t\t\t\t\tResponsiveWrapper,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnaturalWidth: props.attributes.default.width,\n\t\t\t\t\t\t\t\tnaturalHeight: props.attributes.default.height\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twp.element.createElement('img', { src: props.attributes.default.url, alt: __('Featured image') })\n\t\t\t\t\t\t), wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: function onClick() {\n\t\t\t\t\t\t\t\t\treturn props.setAttributes({ default: undefined });\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Remove Image')\n\t\t\t\t\t\t)], wp.element.createElement(\n\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\tonClick: open,\n\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' },\n\t\t\t\t\t\t\t\tclassName: props.attributes.default === undefined && 'feedzy_image_upload'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__('Upload Image')\n\t\t\t\t\t\t)];\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t), wp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Thumbnails dimension.'),\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: props.attributes.size,\n\t\t\t\tonChange: props.onSize\n\t\t\t})]\n\t\t), feedzyjs.isPro && wp.element.createElement(\n\t\t\tPanelBody,\n\t\t\t{ title: __('Pro Features'), initialOpen: false },\n\t\t\twp.element.createElement(ToggleControl, {\n\t\t\t\tlabel: __('Display price if available?'),\n\t\t\t\thelp: props.attributes.price && props.attributes.template === 'default' ? __('Choose a different template for this to work.') : null,\n\t\t\t\tchecked: !!props.attributes.price,\n\t\t\t\tonChange: props.togglePrice\n\t\t\t}),\n\t\t\twp.element.createElement(TextControl, {\n\t\t\t\tlabel: __('Referral URL parameters.'),\n\t\t\t\thelp: __('Without (\"?\")'),\n\t\t\t\tplaceholder: _('(eg. promo_code=feedzy_is_awesome)'),\n\t\t\t\tvalue: props.attributes.referral_url,\n\t\t\t\tonChange: props.onReferralURL\n\t\t\t}),\n\t\t\twp.element.createElement(RangeControl, {\n\t\t\t\tlabel: __('Columns'),\n\t\t\t\thelp: __('How many columns we should use to display the feed items?'),\n\t\t\t\tvalue: props.attributes.columns || 1,\n\t\t\t\tonChange: props.onColumns,\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 6,\n\t\t\t\tbeforeIcon: 'sort',\n\t\t\t\tallowReset: true\n\t\t\t}),\n\t\t\twp.element.createElement(__WEBPACK_IMPORTED_MODULE_0__radio_image_control___[\"a\" /* default */], {\n\t\t\t\tlabel: __('Feed Template'),\n\t\t\t\tselected: props.attributes.template,\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: __('Default'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-default-template.jpg',\n\t\t\t\t\tvalue: 'default'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 1'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style1-template.jpg',\n\t\t\t\t\tvalue: 'style1'\n\t\t\t\t}, {\n\t\t\t\t\tlabel: __('Style 2'),\n\t\t\t\t\tsrc: feedzyjs.imagepath + 'feedzy-style2-template.jpg',\n\t\t\t\t\tvalue: 'style2'\n\t\t\t\t}],\n\t\t\t\tonChange: props.onTemplate\n\t\t\t})\n\t\t)]\n\t);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inspector);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmNsdWRlcy9ndXRlbmJlcmcvc3JjL2luc3BlY3Rvci5qcz83YTVmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGpzaGludCBpZ25vcmU6IHN0YXJ0XG5cbi8qKlxuICogQmxvY2sgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBSYWRpb0ltYWdlQ29udHJvbCBmcm9tICcuL3JhZGlvLWltYWdlLWNvbnRyb2wvJztcblxuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdG9yID0gd3AuZWRpdG9yLFxuICAgIEluc3BlY3RvckNvbnRyb2xzID0gX3dwJGVkaXRvci5JbnNwZWN0b3JDb250cm9scyxcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQ7XG52YXIgX3dwJGNvbXBvbmVudHMgPSB3cC5jb21wb25lbnRzLFxuICAgIEJhc2VDb250cm9sID0gX3dwJGNvbXBvbmVudHMuQmFzZUNvbnRyb2wsXG4gICAgRXh0ZXJuYWxMaW5rID0gX3dwJGNvbXBvbmVudHMuRXh0ZXJuYWxMaW5rLFxuICAgIFBhbmVsQm9keSA9IF93cCRjb21wb25lbnRzLlBhbmVsQm9keSxcbiAgICBSYW5nZUNvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5SYW5nZUNvbnRyb2wsXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgVG9nZ2xlQ29udHJvbCA9IF93cCRjb21wb25lbnRzLlRvZ2dsZUNvbnRyb2wsXG4gICAgU2VsZWN0Q29udHJvbCA9IF93cCRjb21wb25lbnRzLlNlbGVjdENvbnRyb2wsXG4gICAgUmVzcG9uc2l2ZVdyYXBwZXIgPSBfd3AkY29tcG9uZW50cy5SZXNwb25zaXZlV3JhcHBlcjtcblxuLyoqXG4qIENyZWF0ZSBhbiBJbnNwZWN0b3IgQ29udHJvbHMgd3JhcHBlciBDb21wb25lbnRcbiovXG5cbnZhciBJbnNwZWN0b3IgPSBmdW5jdGlvbiBJbnNwZWN0b3IocHJvcHMpIHtcblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRJbnNwZWN0b3JDb250cm9scyxcblx0XHR7IGtleTogJ2luc3BlY3RvcicgfSxcblx0XHRwcm9wcy5hdHRyaWJ1dGVzLnN0YXR1cyAhPT0gMCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHRudWxsLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRmVlZCBTb3VyY2UnKSxcblx0XHRcdFx0Y2xhc3NOYW1lOiAnZmVlZHp5LXNvdXJjZScsXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWRzLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25DaGFuZ2VGZWVkc1xuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogJ3N1Ym1pdCcsXG5cdFx0XHRcdFx0b25DbGljazogcHJvcHMubG9hZEZlZWQsXG5cdFx0XHRcdFx0Y2xhc3NOYW1lOiAnbG9hZEZlZWQnXG5cdFx0XHRcdH0sXG5cdFx0XHRcdF9fKCdMb2FkIEZlZWQnKVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0cHJvcHMuYXR0cmlidXRlcy5zdGF0dXMgPT09IDIgJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFBhbmVsQm9keSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IF9fKCdGZWVkIFNldHRpbmdzJyksXG5cdFx0XHRcdGluaXRpYWxPcGVuOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFJhbmdlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ051bWJlciBvZiBGZWVkcycpLFxuXHRcdFx0XHR2YWx1ZTogTnVtYmVyKHByb3BzLmF0dHJpYnV0ZXMubWF4KSB8fCA1LFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25DaGFuZ2VNYXgsXG5cdFx0XHRcdG1pbjogMSxcblx0XHRcdFx0bWF4OiBwcm9wcy5hdHRyaWJ1dGVzLmZlZWREYXRhWydpdGVtcyddLmxlbmd0aCB8fCAxMCxcblx0XHRcdFx0YmVmb3JlSWNvbjogJ3NvcnQnXG5cdFx0XHR9KSxcblx0XHRcdHByb3BzLmF0dHJpYnV0ZXMuZmVlZERhdGFbJ2NoYW5uZWwnXSAhPT0gbnVsbCAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVG9nZ2xlQ29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rpc3BsYXkgZmVlZCB0aXRsZT8nKSxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLmZlZWRfdGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy50b2dnbGVGZWVkVGl0bGVcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdGZWVkIENhY2hpbmcgVGltZScpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5yZWZyZXNoLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnMSBIb3VyJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcyIEhvdXJzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICczX2hvdXJzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxMiBIb3VycycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnMTJfaG91cnMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzEgRGF5JyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxX2RheXMnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJzMgRGF5cycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnM19kYXlzJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCcxNSBEYXlzJyksXG5cdFx0XHRcdFx0dmFsdWU6ICcxNV9kYXlzJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uUmVmcmVzaFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoU2VsZWN0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1NvcnRpbmcgT3JkZXInKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc29ydCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RlZmF1bHQnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ2RlZmF1bHQnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ0RhdGUgRGVzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9kZXNjJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdEYXRlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAnZGF0ZV9hc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIERlc2NlbmRpbmcnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3RpdGxlX2Rlc2MnXG5cdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIEFzY2VuZGluZycpLFxuXHRcdFx0XHRcdHZhbHVlOiAndGl0bGVfYXNjJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU29ydFxuXHRcdFx0fSlcblx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnSXRlbSBPcHRpb25zJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdPcGVuIExpbmtzIEluJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLnRhcmdldCxcblx0XHRcdFx0b3B0aW9uczogW3tcblx0XHRcdFx0XHRsYWJlbDogX18oJ05ldyBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19ibGFuaydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnU2FtZSBUYWInKSxcblx0XHRcdFx0XHR2YWx1ZTogJ19zZWxmJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGFyZ2V0XG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1RpdGxlIENoYXJhY3RlciBMaW1pdCcpLFxuXHRcdFx0XHRoZWxwOiBfXygnTGVhdmUgZW1wdHkgdG8gc2hvdyBmdWxsIHRpdGxlLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMudGl0bGUsXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vblRpdGxlXG5cdFx0XHR9KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0QmFzZUNvbnRyb2wsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdGxhYmVsOiBmZWVkenlqcy5pc1BybyA/IF9fKCdTaG91bGQgd2UgZGlzcGxheSBhZGRpdGlvbmFsIG1ldGEgZmllbGRzIG91dCBvZiBhdXRob3IsIGRhdGUsIHRpbWUgb3IgY2F0ZWdvcmllcz8gKGNvbW1hLXNlcGFyYXRlZCBsaXN0KS4nKSA6IF9fKCdTaG91bGQgd2UgZGlzcGxheSBhZGRpdGlvbmFsIG1ldGEgZmllbGRzIG91dCBvZiBhdXRob3IsIGRhdGUgb3IgdGltZT8gKGNvbW1hLXNlcGFyYXRlZCBsaXN0KS4nKSxcblx0XHRcdFx0XHRwbGFjZWhvbGRlcjogZmVlZHp5anMuaXNQcm8gPyBfXygnKGVnOiBhdXRob3IsIGRhdGUsIHRpbWUsIHR6PWxvY2FsLCBjYXRlZ29yaWVzKScpIDogX18oJyhlZzogYXV0aG9yLCBkYXRlLCB0aW1lLCB0ej1sb2NhbCknKSxcblx0XHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5tZXRhZmllbGRzLFxuXHRcdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5jaGFuZ2VNZXRhXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0RXh0ZXJuYWxMaW5rLFxuXHRcdFx0XHRcdHsgaHJlZjogJ2h0dHBzOi8vZG9jcy50aGVtZWlzbGUuY29tL2FydGljbGUvMTA4OS1ob3ctdG8tZGlzcGxheS1hdXRob3ItZGF0ZS1vci10aW1lLWZyb20tdGhlLWZlZWQnIH0sXG5cdFx0XHRcdFx0X18oJ1lvdSBjYW4gZmluZCBtb3JlIGluZm8gYWJvdXQgYXZhaWxhYmxlIG1ldGEgZmllbGQgdmFsdWVzIGhlcmUuJylcblx0XHRcdFx0KVxuXHRcdFx0KSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUb2dnbGVDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBwb3N0IGRlc2NyaXB0aW9uPycpLFxuXHRcdFx0XHRjaGVja2VkOiAhIXByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLnRvZ2dsZVN1bW1hcnlcblx0XHRcdH0pLFxuXHRcdFx0cHJvcHMuYXR0cmlidXRlcy5zdW1tYXJ5ICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ0Rlc2NyaXB0aW9uIENoYXJhY3RlciBMaW1pdCcpLFxuXHRcdFx0XHRoZWxwOiBfXygnTGVhdmUgZW1wdHkgdG8gc2hvdyBmdWxsIGRlc2NyaXB0aW9uLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc3VtbWFyeWxlbmd0aCxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU3VtbWFyeUxlbmd0aFxuXHRcdFx0fSksXG5cdFx0XHRmZWVkenlqcy5pc1BybyAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnT25seSBkaXNwbGF5IGlmIHRpdGxlIGNvbnRhaW5zOicpLFxuXHRcdFx0XHRoZWxwOiBfXygnQ29tbWEtc2VwYXJhdGVkIGxpc3QvY2FzZSBzZW5zaXRpdmUuJyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmtleXdvcmRzX3RpdGxlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25LZXl3b3Jkc1RpdGxlXG5cdFx0XHR9KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRXhjbHVkZSBpZiB0aXRsZSBjb250YWluczonKSxcblx0XHRcdFx0aGVscDogX18oJ0NvbW1hLXNlcGFyYXRlZCBsaXN0L2Nhc2Ugc2Vuc2l0aXZlLicpLFxuXHRcdFx0XHR2YWx1ZTogcHJvcHMuYXR0cmlidXRlcy5rZXl3b3Jkc19iYW4sXG5cdFx0XHRcdG9uQ2hhbmdlOiBwcm9wcy5vbktleXdvcmRzQmFuXG5cdFx0XHR9KV1cblx0XHQpLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRQYW5lbEJvZHksXG5cdFx0XHR7IHRpdGxlOiBfXygnSXRlbSBJbWFnZSBPcHRpb25zJyksIGluaXRpYWxPcGVuOiBmYWxzZSB9LFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdEaXNwbGF5IGZpcnN0IGltYWdlIGlmIGF2YWlsYWJsZT8nKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMudGh1bWIsXG5cdFx0XHRcdG9wdGlvbnM6IFt7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdBdXRvJyksXG5cdFx0XHRcdFx0dmFsdWU6ICdhdXRvJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdZZXMnKSxcblx0XHRcdFx0XHR2YWx1ZTogJ3llcydcblx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnTm8nKSxcblx0XHRcdFx0XHR2YWx1ZTogJ25vJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGh1bWJcblx0XHRcdH0pLFxuXHRcdFx0cHJvcHMuYXR0cmlidXRlcy50aHVtYiAhPT0gJ25vJyAmJiBbcHJvcHMuYXR0cmlidXRlcy50aHVtYiAhPT0gJ2F1dG8nICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdHsgY2xhc3NOYW1lOiAnZmVlZHp5LWJsb2Nrcy1iYXNlLWNvbnRyb2wnIH0sXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnbGFiZWwnLFxuXHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnYmxvY2tzLWJhc2UtY29udHJvbF9fbGFiZWwnLCAnZm9yJzogJ2luc3BlY3Rvci1tZWRpYS11cGxvYWQnIH0sXG5cdFx0XHRcdFx0X18oJ0RlZmF1bHQgdGh1bWJuYWlsIFVSTCBpZiBubyBpbWFnZSBpcyBmb3VuZC4nKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoTWVkaWFVcGxvYWQsIHtcblx0XHRcdFx0XHR0eXBlOiAnaW1hZ2UnLFxuXHRcdFx0XHRcdGlkOiAnaW5zcGVjdG9yLW1lZGlhLXVwbG9hZCcsXG5cdFx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCxcblx0XHRcdFx0XHRvblNlbGVjdDogcHJvcHMub25EZWZhdWx0LFxuXHRcdFx0XHRcdHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKF9yZWYpIHtcblx0XHRcdFx0XHRcdHZhciBvcGVuID0gX3JlZi5vcGVuO1xuXHRcdFx0XHRcdFx0cmV0dXJuIFtwcm9wcy5hdHRyaWJ1dGVzLmRlZmF1bHQgIT09IHVuZGVmaW5lZCAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRSZXNwb25zaXZlV3JhcHBlcixcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hdHVyYWxXaWR0aDogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LndpZHRoLFxuXHRcdFx0XHRcdFx0XHRcdG5hdHVyYWxIZWlnaHQ6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdC5oZWlnaHRcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdpbWcnLCB7IHNyYzogcHJvcHMuYXR0cmlidXRlcy5kZWZhdWx0LnVybCwgYWx0OiBfXygnRmVhdHVyZWQgaW1hZ2UnKSB9KVxuXHRcdFx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gcHJvcHMuc2V0QXR0cmlidXRlcyh7IGRlZmF1bHQ6IHVuZGVmaW5lZCB9KTtcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7IG1hcmdpblRvcDogJzEwcHgnIH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0X18oJ1JlbW92ZSBJbWFnZScpXG5cdFx0XHRcdFx0XHQpXSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IG9wZW4sXG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU6IHsgbWFyZ2luVG9wOiAnMTBweCcgfSxcblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU6IHByb3BzLmF0dHJpYnV0ZXMuZGVmYXVsdCA9PT0gdW5kZWZpbmVkICYmICdmZWVkenlfaW1hZ2VfdXBsb2FkJ1xuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRfXygnVXBsb2FkIEltYWdlJylcblx0XHRcdFx0XHRcdCldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdCksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRsYWJlbDogX18oJ1RodW1ibmFpbHMgZGltZW5zaW9uLicpLFxuXHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMuc2l6ZSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uU2l6ZVxuXHRcdFx0fSldXG5cdFx0KSwgZmVlZHp5anMuaXNQcm8gJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0eyB0aXRsZTogX18oJ1BybyBGZWF0dXJlcycpLCBpbml0aWFsT3BlbjogZmFsc2UgfSxcblx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUb2dnbGVDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnRGlzcGxheSBwcmljZSBpZiBhdmFpbGFibGU/JyksXG5cdFx0XHRcdGhlbHA6IHByb3BzLmF0dHJpYnV0ZXMucHJpY2UgJiYgcHJvcHMuYXR0cmlidXRlcy50ZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnID8gX18oJ0Nob29zZSBhIGRpZmZlcmVudCB0ZW1wbGF0ZSBmb3IgdGhpcyB0byB3b3JrLicpIDogbnVsbCxcblx0XHRcdFx0Y2hlY2tlZDogISFwcm9wcy5hdHRyaWJ1dGVzLnByaWNlLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMudG9nZ2xlUHJpY2Vcblx0XHRcdH0pLFxuXHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnUmVmZXJyYWwgVVJMIHBhcmFtZXRlcnMuJyksXG5cdFx0XHRcdGhlbHA6IF9fKCdXaXRob3V0IChcIj9cIiknKSxcblx0XHRcdFx0cGxhY2Vob2xkZXI6IF8oJyhlZy4gcHJvbW9fY29kZT1mZWVkenlfaXNfYXdlc29tZSknKSxcblx0XHRcdFx0dmFsdWU6IHByb3BzLmF0dHJpYnV0ZXMucmVmZXJyYWxfdXJsLFxuXHRcdFx0XHRvbkNoYW5nZTogcHJvcHMub25SZWZlcnJhbFVSTFxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUmFuZ2VDb250cm9sLCB7XG5cdFx0XHRcdGxhYmVsOiBfXygnQ29sdW1ucycpLFxuXHRcdFx0XHRoZWxwOiBfXygnSG93IG1hbnkgY29sdW1ucyB3ZSBzaG91bGQgdXNlIHRvIGRpc3BsYXkgdGhlIGZlZWQgaXRlbXM/JyksXG5cdFx0XHRcdHZhbHVlOiBwcm9wcy5hdHRyaWJ1dGVzLmNvbHVtbnMgfHwgMSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uQ29sdW1ucyxcblx0XHRcdFx0bWluOiAxLFxuXHRcdFx0XHRtYXg6IDYsXG5cdFx0XHRcdGJlZm9yZUljb246ICdzb3J0Jyxcblx0XHRcdFx0YWxsb3dSZXNldDogdHJ1ZVxuXHRcdFx0fSksXG5cdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUmFkaW9JbWFnZUNvbnRyb2wsIHtcblx0XHRcdFx0bGFiZWw6IF9fKCdGZWVkIFRlbXBsYXRlJyksXG5cdFx0XHRcdHNlbGVjdGVkOiBwcm9wcy5hdHRyaWJ1dGVzLnRlbXBsYXRlLFxuXHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdGxhYmVsOiBfXygnRGVmYXVsdCcpLFxuXHRcdFx0XHRcdHNyYzogZmVlZHp5anMuaW1hZ2VwYXRoICsgJ2ZlZWR6eS1kZWZhdWx0LXRlbXBsYXRlLmpwZycsXG5cdFx0XHRcdFx0dmFsdWU6ICdkZWZhdWx0J1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdTdHlsZSAxJyksXG5cdFx0XHRcdFx0c3JjOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LXN0eWxlMS10ZW1wbGF0ZS5qcGcnLFxuXHRcdFx0XHRcdHZhbHVlOiAnc3R5bGUxJ1xuXHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0bGFiZWw6IF9fKCdTdHlsZSAyJyksXG5cdFx0XHRcdFx0c3JjOiBmZWVkenlqcy5pbWFnZXBhdGggKyAnZmVlZHp5LXN0eWxlMi10ZW1wbGF0ZS5qcGcnLFxuXHRcdFx0XHRcdHZhbHVlOiAnc3R5bGUyJ1xuXHRcdFx0XHR9XSxcblx0XHRcdFx0b25DaGFuZ2U6IHByb3BzLm9uVGVtcGxhdGVcblx0XHRcdH0pXG5cdFx0KV1cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3RvcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luY2x1ZGVzL2d1dGVuYmVyZy9zcmMvaW5zcGVjdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///49\n");
374
 
375
  /***/ }),
376
  /* 50 */
includes/gutenberg/feedzy-rss-feeds-gutenberg-block.php CHANGED
@@ -253,6 +253,7 @@ class Feedzy_Rss_Feeds_Gutenberg_Block {
253
  if ( feedzy_is_pro() ) {
254
  $item_attrs = $pro->feedzy_pro_add_data_to_item( array(), $item );
255
  }
 
256
  array_push(
257
  $feedy['items'], array(
258
  'title' => ( ( $item->get_title() ) ? $item->get_title() : null ),
@@ -265,6 +266,7 @@ class Feedzy_Rss_Feeds_Gutenberg_Block {
265
  'thumbnail' => $admin->feedzy_retrieve_image( $item ),
266
  'price' => ( ( feedzy_is_pro() && $item_attrs['item_price'] ) ? $item_attrs['item_price'] : null ),
267
  'media' => ( ( feedzy_is_pro() && $item_attrs['item_media'] ) ? $item_attrs['item_media'] : null ),
 
268
  )
269
  );
270
  }
253
  if ( feedzy_is_pro() ) {
254
  $item_attrs = $pro->feedzy_pro_add_data_to_item( array(), $item );
255
  }
256
+
257
  array_push(
258
  $feedy['items'], array(
259
  'title' => ( ( $item->get_title() ) ? $item->get_title() : null ),
266
  'thumbnail' => $admin->feedzy_retrieve_image( $item ),
267
  'price' => ( ( feedzy_is_pro() && $item_attrs['item_price'] ) ? $item_attrs['item_price'] : null ),
268
  'media' => ( ( feedzy_is_pro() && $item_attrs['item_media'] ) ? $item_attrs['item_media'] : null ),
269
+ 'categories' => ( ( feedzy_is_pro() && $item_attrs['item_categories'] ) ? $item_attrs['item_categories'] : null ),
270
  )
271
  );
272
  }
readme.md CHANGED
@@ -427,6 +427,13 @@ You have to check first if your feed is valid. Please test it here: https://vali
427
 
428
 
429
  ## Changelog ##
 
 
 
 
 
 
 
430
  ### 3.3.10 - 2019-08-20 ###
431
 
432
  * Fix issue with undefined index: proxy
427
 
428
 
429
  ## Changelog ##
430
+ ### 3.3.11 - 2019-09-24 ###
431
+
432
+ * Fix issue with replacing ellipsis
433
+ * Fix issue in widget where error message cannot be overridden
434
+ * Fix issues with some summaries getting truncated
435
+
436
+
437
  ### 3.3.10 - 2019-08-20 ###
438
 
439
  * Fix issue with undefined index: proxy
readme.txt CHANGED
@@ -152,6 +152,7 @@ This plugin is maintained and supported by Themeisle, check out some of the othe
152
 
153
 
154
 
 
155
  = Is it responsive friendly? =
156
 
157
  Yes it is.
@@ -418,6 +419,9 @@ You have to check first if your feed is valid. Please test it here: https://vali
418
  = How to get videos from YouTube with Feedzy =
419
  [https://docs.themeisle.com/article/1113-how-to-get-videos-from-youtube-with-feedzy](https://docs.themeisle.com/article/1113-how-to-get-videos-from-youtube-with-feedzy)
420
 
 
 
 
421
  == Screenshots ==
422
 
423
  1. Simple example
@@ -427,6 +431,13 @@ You have to check first if your feed is valid. Please test it here: https://vali
427
 
428
 
429
  == Changelog ==
 
 
 
 
 
 
 
430
  = 3.3.10 - 2019-08-20 =
431
 
432
  * Fix issue with undefined index: proxy
152
 
153
 
154
 
155
+
156
  = Is it responsive friendly? =
157
 
158
  Yes it is.
419
  = How to get videos from YouTube with Feedzy =
420
  [https://docs.themeisle.com/article/1113-how-to-get-videos-from-youtube-with-feedzy](https://docs.themeisle.com/article/1113-how-to-get-videos-from-youtube-with-feedzy)
421
 
422
+ = How to use Feedzy with a shortcode =
423
+ [https://docs.themeisle.com/article/1130-how-to-use-feedzy-with-a-shortcode](https://docs.themeisle.com/article/1130-how-to-use-feedzy-with-a-shortcode)
424
+
425
  == Screenshots ==
426
 
427
  1. Simple example
431
 
432
 
433
  == Changelog ==
434
+ = 3.3.11 - 2019-09-24 =
435
+
436
+ * Fix issue with replacing ellipsis
437
+ * Fix issue in widget where error message cannot be overridden
438
+ * Fix issues with some summaries getting truncated
439
+
440
+
441
  = 3.3.10 - 2019-08-20 =
442
 
443
  * Fix issue with undefined index: proxy
themeisle-hash.json CHANGED
@@ -1 +1 @@
1
- {"feedzy-rss-feed.php":"dbee56c9e7ad16161f9dc4e5879ed942","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"cdb21f8648e005cbb9c73481d1750186"}
1
+ {"feedzy-rss-feed.php":"2d777ac629dc6186c1169c1da5d5a68d","index.php":"71c0755260138a4b7b2182c3c61179f6","uninstall.php":"cdb21f8648e005cbb9c73481d1750186"}
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitdde04ca7304efcf0e5fe0c767ec9d7ee::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit5e0c8b7240803ffb37fa59ad1b48ca04::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitec3bdedfca8182bcb08deda126a1cd6a::getLoader();
vendor/codeinwp/themeisle-sdk/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ## [3.1.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.1...v3.1.2) (2019-08-12)
2
 
3
 
1
+ ## [3.1.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.4...v3.1.5) (2019-09-11)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * allow unloading certain module features ([2a2559a](https://github.com/Codeinwp/themeisle-sdk/commit/2a2559a))
7
+ * license activation workflow, show error message when failed to a… ([ade795c](https://github.com/Codeinwp/themeisle-sdk/commit/ade795c))
8
+ * license activation workflow, show error message when failed to activate ([2f5cbae](https://github.com/Codeinwp/themeisle-sdk/commit/2f5cbae))
9
+
10
+ ## [3.1.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.3...v3.1.4) (2019-08-23)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * license key was missing on get_version call ([365cde6](https://github.com/Codeinwp/themeisle-sdk/commit/365cde6))
16
+ * license key was missing on get_version call ([c02f225](https://github.com/Codeinwp/themeisle-sdk/commit/c02f225))
17
+
18
+ ## [3.1.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.2...v3.1.3) (2019-08-20)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * license deactivation behaviour https://github.com/Codeinwp/visua… ([59c4afe](https://github.com/Codeinwp/themeisle-sdk/commit/59c4afe))
24
+ * license deactivation behaviour https://github.com/Codeinwp/visualizer-pro/issues/192 ([f641e18](https://github.com/Codeinwp/themeisle-sdk/commit/f641e18))
25
+
26
  ## [3.1.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.1...v3.1.2) (2019-08-12)
27
 
28
 
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  return;
15
  }
16
  // Current SDK version and path.
17
- $themeisle_sdk_version = '3.1.2';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
14
  return;
15
  }
16
  // Current SDK version and path.
17
+ $themeisle_sdk_version = '3.1.5';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php CHANGED
@@ -72,7 +72,9 @@ class Dashboard_Widget extends Abstract_Module {
72
  * @return Dashboard_Widget Module instance.
73
  */
74
  public function load( $product ) {
75
-
 
 
76
  $this->product = $product;
77
  $this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
78
  $this->feeds = apply_filters(
72
  * @return Dashboard_Widget Module instance.
73
  */
74
  public function load( $product ) {
75
+ if ( apply_filters( 'themeisle_sdk_hide_dashboard_widget', false ) ) {
76
+ return;
77
+ }
78
  $this->product = $product;
79
  $this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
80
  $this->feeds = apply_filters(
vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php CHANGED
@@ -89,6 +89,9 @@ class Licenser extends Abstract_Module {
89
  if ( ! is_admin() ) {
90
  return false;
91
  }
 
 
 
92
  add_settings_field(
93
  $this->product->get_key() . '_license',
94
  $this->product->get_name() . ' license',
@@ -109,6 +112,7 @@ class Licenser extends Abstract_Module {
109
  $valid_string = apply_filters( $this->product->get_key() . '_lc_valid_string', 'Valid' );
110
  $invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
111
  $license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
 
112
  ?>
113
  <style type="text/css">
114
  input.themeisle-sdk-text-input-valid {
@@ -157,8 +161,8 @@ class Licenser extends Abstract_Module {
157
  </style>
158
  <?php
159
  echo sprintf(
160
- '<p>%s<input class="themeisle-sdk-license-input %s" type="text" id="%s_license" name="%s_license" value="%s" /><a class="%s">%s</a>&nbsp;&nbsp;&nbsp;<button name="%s_btn_trigger" class="button button-primary themeisle-sdk-licenser-button-cta" value="yes" type="submit" >%s</button></p><p class="description">%s</p>',
161
- ( ( 'valid' === $status ) ? sprintf( '<input type="hidden" value="%s" name="%s_license" />', $this->product->get_key(), $value ) : '' ),
162
  ( ( 'valid' === $status ) ? 'themeisle-sdk-text-input-valid' : '' ),
163
  $this->product->get_key(),
164
  ( ( 'valid' === $status ) ? $this->product->get_key() . '_mask' : $this->product->get_key() ),
@@ -167,7 +171,8 @@ class Licenser extends Abstract_Module {
167
  ( 'valid' === $status ? $valid_string : $invalid_string ),
168
  $this->product->get_key(),
169
  ( 'valid' === $status ? $deactivate_string : $activate_string ),
170
- sprintf( $license_message, '<a href="' . $this->get_api_url() . '">' . $this->get_distributor_name() . '</a> ', $this->product->get_type() )
 
171
  );
172
 
173
  }
@@ -224,6 +229,10 @@ class Licenser extends Abstract_Module {
224
  if ( ! is_admin() ) {
225
  return false;
226
  }
 
 
 
 
227
  $status = $this->get_license_status();
228
  $no_activations_string = apply_filters( $this->product->get_key() . '_lc_no_activations_string', 'No activations left for %s !!!. You need to upgrade your plan in order to use %s on more websites. Please ask the %s Staff for more details.' );
229
  $no_valid_string = apply_filters( $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a href="%s">here</a>. ' );
@@ -413,6 +422,26 @@ class Licenser extends Abstract_Module {
413
  update_option( $this->product->get_key() . '_failed_checks', $this->failed_checks );
414
  }
415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  /**
417
  * Activate the license remotely.
418
  */
@@ -439,19 +468,22 @@ class Licenser extends Abstract_Module {
439
  $response = wp_remote_get( add_query_arg( $api_params, $this->get_api_url() ) );
440
  // make sure the response came back okay.
441
  if ( is_wp_error( $response ) ) {
442
- $license_data = new \stdClass();
443
- $license_data->license = ( 'valid' != $status ) ? 'valid' : 'invalid';
444
 
445
- } else {
446
- $license_data = json_decode( wp_remote_retrieve_body( $response ) );
447
- if ( ! is_object( $license_data ) ) {
448
- $license_data = new \stdClass();
449
- $license_data->license = ( 'valid' != $status ) ? 'valid' : 'invalid';
450
- }
451
- if ( ! isset( $license_data->license ) ) {
452
- $license_data->license = 'invalid';
453
- }
454
  }
 
 
 
 
 
 
 
 
 
 
 
 
455
  if ( ! isset( $license_data->key ) ) {
456
  $license_data->key = $license;
457
  }
@@ -462,7 +494,7 @@ class Licenser extends Abstract_Module {
462
  if ( isset( $license_data->plan ) ) {
463
  update_option( $this->product->get_key() . '_license_plan', $license_data->plan );
464
  }
465
-
466
  update_option( $this->product->get_key() . '_license_data', $license_data );
467
  set_transient( $this->product->get_key() . '_license_data', $license_data, 12 * HOUR_IN_SECONDS );
468
 
@@ -567,7 +599,7 @@ class Licenser extends Abstract_Module {
567
  $api_params = array(
568
  'edd_action' => 'get_version',
569
  'version' => $this->product->get_version(),
570
- 'license' => empty( $this->license_key ) ? 'free' : '',
571
  'name' => rawurlencode( $this->product->get_name() ),
572
  'slug' => $this->product->get_slug(),
573
  'author' => rawurlencode( $this->get_distributor_name() ),
89
  if ( ! is_admin() ) {
90
  return false;
91
  }
92
+ if ( apply_filters( $this->product->get_key() . '_hide_license_field', false ) ) {
93
+ return;
94
+ }
95
  add_settings_field(
96
  $this->product->get_key() . '_license',
97
  $this->product->get_name() . ' license',
112
  $valid_string = apply_filters( $this->product->get_key() . '_lc_valid_string', 'Valid' );
113
  $invalid_string = apply_filters( $this->product->get_key() . '_lc_invalid_string', 'Invalid' );
114
  $license_message = apply_filters( $this->product->get_key() . '_lc_license_message', 'Enter your license from %s purchase history in order to get %s updates' );
115
+ $error_message = $this->get_error();
116
  ?>
117
  <style type="text/css">
118
  input.themeisle-sdk-text-input-valid {
161
  </style>
162
  <?php
163
  echo sprintf(
164
+ '<p>%s<input class="themeisle-sdk-license-input %s" type="text" id="%s_license" name="%s_license" value="%s" /><a class="%s">%s</a>&nbsp;&nbsp;&nbsp;<button name="%s_btn_trigger" class="button button-primary themeisle-sdk-licenser-button-cta" value="yes" type="submit" >%s</button></p><p class="description">%s</p>%s',
165
+ ( ( 'valid' === $status ) ? sprintf( '<input type="hidden" value="%s" name="%s_license" />', $value, $this->product->get_key() ) : '' ),
166
  ( ( 'valid' === $status ) ? 'themeisle-sdk-text-input-valid' : '' ),
167
  $this->product->get_key(),
168
  ( ( 'valid' === $status ) ? $this->product->get_key() . '_mask' : $this->product->get_key() ),
171
  ( 'valid' === $status ? $valid_string : $invalid_string ),
172
  $this->product->get_key(),
173
  ( 'valid' === $status ? $deactivate_string : $activate_string ),
174
+ sprintf( $license_message, '<a href="' . $this->get_api_url() . '">' . $this->get_distributor_name() . '</a> ', $this->product->get_type() ),
175
+ empty( $error_message ) ? '' : sprintf( '<p style="color:#dd3d36">%s</p>', $error_message )
176
  );
177
 
178
  }
229
  if ( ! is_admin() ) {
230
  return false;
231
  }
232
+
233
+ if ( apply_filters( $this->product->get_key() . '_hide_license_notices', false ) ) {
234
+ return;
235
+ }
236
  $status = $this->get_license_status();
237
  $no_activations_string = apply_filters( $this->product->get_key() . '_lc_no_activations_string', 'No activations left for %s !!!. You need to upgrade your plan in order to use %s on more websites. Please ask the %s Staff for more details.' );
238
  $no_valid_string = apply_filters( $this->product->get_key() . '_lc_no_valid_string', 'In order to benefit from updates and support for %s, please add your license code from your <a href="%s" target="_blank">purchase history</a> and validate it <a href="%s">here</a>. ' );
422
  update_option( $this->product->get_key() . '_failed_checks', $this->failed_checks );
423
  }
424
 
425
+ /**
426
+ * Set license validation error message.
427
+ *
428
+ * @param string $message Error message.
429
+ */
430
+ public function set_error( $message = '' ) {
431
+ set_transient( $this->product->get_key() . 'act_err', $message, MINUTE_IN_SECONDS );
432
+
433
+ return;
434
+ }
435
+
436
+ /**
437
+ * Return the last error message.
438
+ *
439
+ * @return mixed Error message.
440
+ */
441
+ public function get_error() {
442
+ return get_transient( $this->product->get_key() . 'act_err' );
443
+ }
444
+
445
  /**
446
  * Activate the license remotely.
447
  */
468
  $response = wp_remote_get( add_query_arg( $api_params, $this->get_api_url() ) );
469
  // make sure the response came back okay.
470
  if ( is_wp_error( $response ) ) {
471
+ $this->set_error( sprintf( 'ERROR: Failed to connect to the license service. Please try again later. Reason: %s', $response->get_error_message() ) );
 
472
 
473
+ return;
 
 
 
 
 
 
 
 
474
  }
475
+
476
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
477
+
478
+ if ( ! is_object( $license_data ) ) {
479
+ $this->set_error( 'ERROR: Failed to validate license. Please try again in one minute.' );
480
+
481
+ return;
482
+ }
483
+ if ( ! isset( $license_data->license ) ) {
484
+ $license_data->license = 'invalid';
485
+ }
486
+
487
  if ( ! isset( $license_data->key ) ) {
488
  $license_data->key = $license;
489
  }
494
  if ( isset( $license_data->plan ) ) {
495
  update_option( $this->product->get_key() . '_license_plan', $license_data->plan );
496
  }
497
+ $this->set_error( '' );
498
  update_option( $this->product->get_key() . '_license_data', $license_data );
499
  set_transient( $this->product->get_key() . '_license_data', $license_data, 12 * HOUR_IN_SECONDS );
500
 
599
  $api_params = array(
600
  'edd_action' => 'get_version',
601
  'version' => $this->product->get_version(),
602
+ 'license' => empty( $this->license_key ) ? 'free' : $this->license_key,
603
  'name' => rawurlencode( $this->product->get_name() ),
604
  'slug' => $this->product->get_slug(),
605
  'author' => rawurlencode( $this->get_distributor_name() ),
vendor/codeinwp/themeisle-sdk/src/Modules/Notification.php CHANGED
@@ -430,6 +430,9 @@ class Notification extends Abstract_Module {
430
  * @return Notification Module instance.
431
  */
432
  public function load( $product ) {
 
 
 
433
  $this->product = $product;
434
 
435
  $notifications = apply_filters( 'themeisle_sdk_registered_notifications', [] );
430
  * @return Notification Module instance.
431
  */
432
  public function load( $product ) {
433
+ if ( apply_filters( 'themeisle_sdk_hide_notifications', false ) ) {
434
+ return;
435
+ }
436
  $this->product = $product;
437
 
438
  $notifications = apply_filters( 'themeisle_sdk_registered_notifications', [] );
vendor/codeinwp/themeisle-sdk/src/Modules/Uninstall_feedback.php CHANGED
@@ -836,6 +836,11 @@ class Uninstall_Feedback extends Abstract_Module {
836
  * @return Uninstall_Feedback Current module instance.
837
  */
838
  public function load( $product ) {
 
 
 
 
 
839
  $this->product = $product;
840
  add_action( 'admin_head', array( $this, 'load_resources' ) );
841
  add_action( 'wp_ajax_' . $this->product->get_key() . '_uninstall_feedback', array( $this, 'post_deactivate' ) );
836
  * @return Uninstall_Feedback Current module instance.
837
  */
838
  public function load( $product ) {
839
+
840
+ if ( apply_filters( $product->get_key() . '_hide_uninstall_feedback', false ) ) {
841
+ return;
842
+ }
843
+
844
  $this->product = $product;
845
  add_action( 'admin_head', array( $this, 'load_resources' ) );
846
  add_action( 'wp_ajax_' . $this->product->get_key() . '_uninstall_feedback', array( $this, 'post_deactivate' ) );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit4ad4c4d59581a30bea25ffd083058162
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire4ad4c4d59581a30bea25ffd083058162($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire4ad4c4d59581a30bea25ffd083058162($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitdde04ca7304efcf0e5fe0c767ec9d7ee
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitdde04ca7304efcf0e5fe0c767ec9d7ee', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitdde04ca7304efcf0e5fe0c767ec9d7ee', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequiredde04ca7304efcf0e5fe0c767ec9d7ee($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequiredde04ca7304efcf0e5fe0c767ec9d7ee($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit5e0c8b7240803ffb37fa59ad1b48ca04 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit5e0c8b7240803ffb37fa59ad1b48ca04 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit5e0c8b7240803ffb37fa59ad1b48ca04', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit5e0c8b7240803ffb37fa59ad1b48ca04', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitec3bdedfca8182bcb08deda126a1cd6a {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitec3bdedfca8182bcb08deda126a1cd6a', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitec3bdedfca8182bcb08deda126a1cd6a', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -6,12 +6,12 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
- "reference": "a286316f5dd93cc91bbc5faeb09fff8f3977676b"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/a286316f5dd93cc91bbc5faeb09fff8f3977676b",
14
- "reference": "a286316f5dd93cc91bbc5faeb09fff8f3977676b",
15
  "shasum": ""
16
  },
17
  "require-dev": {
@@ -19,7 +19,7 @@
19
  "squizlabs/php_codesniffer": "^3.1",
20
  "wp-coding-standards/wpcs": "^1.0.0"
21
  },
22
- "time": "2019-08-12 11:34:12",
23
  "type": "library",
24
  "installation-source": "source",
25
  "notification-url": "https://packagist.org/downloads/",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
+ "reference": "1f98fb7bd044ac52721cd49a1aeca8864d95b23d"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/1f98fb7bd044ac52721cd49a1aeca8864d95b23d",
14
+ "reference": "1f98fb7bd044ac52721cd49a1aeca8864d95b23d",
15
  "shasum": ""
16
  },
17
  "require-dev": {
19
  "squizlabs/php_codesniffer": "^3.1",
20
  "wp-coding-standards/wpcs": "^1.0.0"
21
  },
22
+ "time": "2019-09-11 15:16:53",
23
  "type": "library",
24
  "installation-source": "source",
25
  "notification-url": "https://packagist.org/downloads/",