ThirstyAffiliates Affiliate Link Manager - Version 3.2.2

Version Description

  • Improvement: Allow Force no-cache headers on 301 redirects
  • Improvement: Minor codebase improvements
  • Bug Fix: Affiliate link can redirect even with invalid category slug
  • Bug Fix: Allow valid characters on the slug box pattern match
Download this release

Release Info

Developer jkohlbach
Plugin Icon 128x128 ThirstyAffiliates Affiliate Link Manager
Version 3.2.2
Comparing to
See all releases

Code changes from version 3.2.1 to 3.2.2

Helpers/Helper_Functions.php CHANGED
@@ -276,12 +276,14 @@ class Helper_Functions {
276
  * @since 3.0.0
277
  * @access public
278
  *
279
- * @param int $link_id Affiliate Link ID.
 
280
  * @return string Affiliate link default category slug.
281
  */
282
- public function get_default_category_slug( $link_id ) {
283
 
284
- $terms = get_the_terms( $link_id , Plugin_Constants::AFFILIATE_LINKS_TAX );
 
285
 
286
  if ( is_wp_error( $terms ) || empty( $terms ) )
287
  return;
276
  * @since 3.0.0
277
  * @access public
278
  *
279
+ * @param int $link_id Affiliate Link ID.
280
+ * @param array $terms Affiliate link categories.
281
  * @return string Affiliate link default category slug.
282
  */
283
+ public function get_default_category_slug( $link_id , $terms = array() ) {
284
 
285
+ if ( ! is_array( $terms ) || empty( $terms ) )
286
+ $terms = get_the_terms( $link_id , Plugin_Constants::AFFILIATE_LINKS_TAX );
287
 
288
  if ( is_wp_error( $terms ) || empty( $terms ) )
289
  return;
Helpers/Plugin_Constants.php CHANGED
@@ -27,7 +27,7 @@ class Plugin_Constants {
27
  // Plugin configuration constants
28
  const TOKEN = 'ta';
29
  const INSTALLED_VERSION = 'ta_installed_version';
30
- const VERSION = '3.2.1';
31
  const TEXT_DOMAIN = 'thirstyaffiliates';
32
  const THEME_TEMPLATE_PATH = 'thirstyaffiliates';
33
  const META_DATA_PREFIX = '_ta_';
27
  // Plugin configuration constants
28
  const TOKEN = 'ta';
29
  const INSTALLED_VERSION = 'ta_installed_version';
30
+ const VERSION = '3.2.2';
31
  const TEXT_DOMAIN = 'thirstyaffiliates';
32
  const THEME_TEMPLATE_PATH = 'thirstyaffiliates';
33
  const META_DATA_PREFIX = '_ta_';
Models/Affiliate_Link.php CHANGED
@@ -173,6 +173,7 @@ class Affiliate_Link {
173
  * Read data from DB and save on instance.
174
  *
175
  * @since 3.0.0
 
176
  * @access public
177
  */
178
  private function read() {
@@ -182,10 +183,14 @@ class Affiliate_Link {
182
  if ( ! is_a( $this->post_data , 'WP_Post' ) || $this->object_is_read )
183
  return;
184
 
185
- // set the affiliate link ID
186
- $this->id = $this->post_data->ID;
 
 
 
187
 
188
- foreach ( $this->get_merged_default_extended_data() as $prop => $value ) {
 
189
 
190
  switch ( $prop ) {
191
 
@@ -200,32 +205,27 @@ class Affiliate_Link {
200
  case 'no_follow' :
201
  case 'new_window' :
202
  case 'pass_query_str' :
203
- $raw_data = get_post_meta( $this->id , Plugin_Constants::META_DATA_PREFIX . $prop , true );
204
- $this->data[ $prop ] = ! empty( $raw_data ) ? $raw_data : $this->default_data[ $prop ];
205
  break;
206
 
207
  case 'rel_tags' :
208
-
209
- case 'uncloak_link' :
210
  case 'redirect_type' :
211
- $raw_data = get_post_meta( $this->id , Plugin_Constants::META_DATA_PREFIX . $prop , true );
212
  $this->data[ $prop ] = ! empty( $raw_data ) ? $raw_data : $this->get_prop_global_option_value( $prop );
213
  break;
214
 
215
  case 'image_ids' :
216
  case 'inserted_to' :
217
- $raw_data = get_post_meta( $this->id , Plugin_Constants::META_DATA_PREFIX . $prop , true );
218
- $this->data[ $prop ] = ( is_array( $raw_data ) && ! empty( $raw_data ) ) ? $raw_data : $this->default_data[ $prop ];
219
  break;
220
 
221
  case 'categories' :
222
  $categories = wp_get_post_terms( $this->id , Plugin_Constants::AFFILIATE_LINKS_TAX );
223
- $this->data[ $prop ] = ! empty( $categories ) ? $categories : $this->default_data[ $prop ];
224
  break;
225
 
226
  default :
227
- $value = get_post_meta( $this->id , Plugin_Constants::META_DATA_PREFIX . $prop , true );
228
- $this->data[ $prop ] = apply_filters( 'ta_read_thirstylink_property' , $value , $prop , $this->get_merged_default_extended_data() );
229
  break;
230
 
231
  }
@@ -357,6 +357,7 @@ class Affiliate_Link {
357
  * Get the properties global option value.
358
  *
359
  * @since 3.0.0
 
360
  * @access public
361
  *
362
  * @param string $prop Name of property.
@@ -376,10 +377,6 @@ class Affiliate_Link {
376
  $option = 'ta_link_redirect_type';
377
  $default = '301';
378
  break;
379
-
380
- case 'uncloak_link' :
381
- return;
382
- break;
383
  }
384
 
385
  return get_option( $option , $default );
@@ -453,6 +450,20 @@ class Affiliate_Link {
453
  return 'no';
454
  }
455
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
 
457
 
458
 
173
  * Read data from DB and save on instance.
174
  *
175
  * @since 3.0.0
176
+ * @since 3.2.2 Optimize method by lessening the metadata fetch into one single function call.
177
  * @access public
178
  */
179
  private function read() {
183
  if ( ! is_a( $this->post_data , 'WP_Post' ) || $this->object_is_read )
184
  return;
185
 
186
+ $this->id = $this->post_data->ID; // set the affiliate link ID
187
+ $meta_data = get_metadata( 'post' , $this->id );
188
+ $default_data = $this->get_merged_default_extended_data();
189
+
190
+ foreach ( $default_data as $prop => $value ) {
191
 
192
+ // fetch raw meta data if present.
193
+ $raw_data = isset( $meta_data[ Plugin_Constants::META_DATA_PREFIX . $prop ] ) ? maybe_unserialize( $meta_data[ Plugin_Constants::META_DATA_PREFIX . $prop ][0] ) : '';
194
 
195
  switch ( $prop ) {
196
 
205
  case 'no_follow' :
206
  case 'new_window' :
207
  case 'pass_query_str' :
208
+ case 'uncloak_link' :
209
+ $this->data[ $prop ] = ! empty( $raw_data ) ? $raw_data : $default_data[ $prop ];
210
  break;
211
 
212
  case 'rel_tags' :
 
 
213
  case 'redirect_type' :
 
214
  $this->data[ $prop ] = ! empty( $raw_data ) ? $raw_data : $this->get_prop_global_option_value( $prop );
215
  break;
216
 
217
  case 'image_ids' :
218
  case 'inserted_to' :
219
+ $this->data[ $prop ] = ( is_array( $raw_data ) && ! empty( $raw_data ) ) ? $raw_data : $default_data[ $prop ];
 
220
  break;
221
 
222
  case 'categories' :
223
  $categories = wp_get_post_terms( $this->id , Plugin_Constants::AFFILIATE_LINKS_TAX );
224
+ $this->data[ $prop ] = ! empty( $categories ) ? $categories : $default_data[ $prop ];
225
  break;
226
 
227
  default :
228
+ $this->data[ $prop ] = apply_filters( 'ta_read_thirstylink_property' , $raw_data , $prop , $default_data , $this->id , $meta_data );
 
229
  break;
230
 
231
  }
357
  * Get the properties global option value.
358
  *
359
  * @since 3.0.0
360
+ * @since 3.2.2 Remove 'uncloak' option.
361
  * @access public
362
  *
363
  * @param string $prop Name of property.
377
  $option = 'ta_link_redirect_type';
378
  $default = '301';
379
  break;
 
 
 
 
380
  }
381
 
382
  return get_option( $option , $default );
450
  return 'no';
451
  }
452
 
453
+ /**
454
+ * Gets the category slug used for affiliate link (if present).
455
+ *
456
+ * @since 3.2.2
457
+ * @access public
458
+ *
459
+ * @return string Affiliate link ategory slug.
460
+ */
461
+ public function get_category_slug() {
462
+
463
+ $cat_slug = $this->get_prop( 'category_slug' );
464
+ return $cat_slug ? $cat_slug : $this->_helper_functions->get_default_category_slug( $this->get_id() , $this->get_prop( 'categories' ) );
465
+ }
466
+
467
 
468
 
469
 
Models/Affiliate_Links_CPT.php CHANGED
@@ -361,8 +361,8 @@ class Affiliate_Links_CPT implements Model_Interface , Initiable_Interface {
361
  private function sort_metaboxes( &$metaboxes ) {
362
 
363
  usort( $metaboxes , function( $a , $b ) {
364
- if ( $a[ 'priority' ] == $b[ 'priority' ] ) return 0;
365
- return ( $a[ 'priority' ] > $b[ 'priority' ] ) ? 1 : -1;
366
  } );
367
  }
368
 
@@ -515,6 +515,7 @@ class Affiliate_Links_CPT implements Model_Interface , Initiable_Interface {
515
  * Save thirstylink post.
516
  *
517
  * @since 3.0.0
 
518
  * @access public
519
  *
520
  * @param int $post_id Affiliate link post ID.
@@ -537,6 +538,9 @@ class Affiliate_Links_CPT implements Model_Interface , Initiable_Interface {
537
  $thirstylink->set_prop( 'redirect_type' , sanitize_text_field( $_POST[ 'ta_redirect_type' ] ) );
538
  $thirstylink->set_prop( 'rel_tags' , sanitize_text_field( $_POST[ 'ta_rel_tags' ] ) );
539
 
 
 
 
540
  if ( isset( $_POST[ 'ta_uncloak_link' ] ) )
541
  $thirstylink->set_prop( 'uncloak_link' , sanitize_text_field( $_POST[ 'ta_uncloak_link' ] ) );
542
 
361
  private function sort_metaboxes( &$metaboxes ) {
362
 
363
  usort( $metaboxes , function( $a , $b ) {
364
+ if ( $a[ 'sort' ] == $b[ 'sort' ] ) return 0;
365
+ return ( $a[ 'sort' ] > $b[ 'sort' ] ) ? 1 : -1;
366
  } );
367
  }
368
 
515
  * Save thirstylink post.
516
  *
517
  * @since 3.0.0
518
+ * @since 3.2.2 Make sure post name (slug) is updated.
519
  * @access public
520
  *
521
  * @param int $post_id Affiliate link post ID.
538
  $thirstylink->set_prop( 'redirect_type' , sanitize_text_field( $_POST[ 'ta_redirect_type' ] ) );
539
  $thirstylink->set_prop( 'rel_tags' , sanitize_text_field( $_POST[ 'ta_rel_tags' ] ) );
540
 
541
+ if ( isset( $_POST[ 'post_name' ] ) )
542
+ $thirstylink->set_prop( 'slug' , sanitize_text_field( $_POST[ 'post_name' ] ) );
543
+
544
  if ( isset( $_POST[ 'ta_uncloak_link' ] ) )
545
  $thirstylink->set_prop( 'uncloak_link' , sanitize_text_field( $_POST[ 'ta_uncloak_link' ] ) );
546
 
Models/Rewrites_Redirection.php CHANGED
@@ -212,11 +212,12 @@ class Rewrites_Redirection implements Model_Interface , Deactivatable_Interface
212
  * Handles redirect for thirstylink link urls.
213
  *
214
  * @since 3.0.0
 
215
  * @access public
216
  */
217
  public function redirect_url() {
218
 
219
- global $post;
220
 
221
  if ( ! is_object( $post ) || $post->post_type != Plugin_Constants::AFFILIATE_LINKS_CPT )
222
  return;
@@ -229,17 +230,51 @@ class Rewrites_Redirection implements Model_Interface , Deactivatable_Interface
229
  $redirect_url = apply_filters( 'ta_filter_redirect_url' , $redirect_url , $thirstylink );
230
  $redirect_type = apply_filters( 'ta_filter_redirect_type' , $redirect_type , $thirstylink );
231
 
 
 
 
 
 
 
 
 
232
  // perform actions before redirecting
233
  do_action( 'ta_before_link_redirect' , $thirstylink , $redirect_url , $redirect_type );
234
 
235
  if ( $redirect_url && $redirect_type ) {
236
 
 
 
 
 
 
 
237
  wp_redirect( $redirect_url , intval( $redirect_type ) );
238
  exit;
239
  }
240
 
241
  }
242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  /**
244
  * Pass query strings to destination url when option is enabled on settings.
245
  *
212
  * Handles redirect for thirstylink link urls.
213
  *
214
  * @since 3.0.0
215
+ * @since 3.2.2 Add implementation for disabling cache for 301 redirects.
216
  * @access public
217
  */
218
  public function redirect_url() {
219
 
220
+ global $post , $wp_query;
221
 
222
  if ( ! is_object( $post ) || $post->post_type != Plugin_Constants::AFFILIATE_LINKS_CPT )
223
  return;
230
  $redirect_url = apply_filters( 'ta_filter_redirect_url' , $redirect_url , $thirstylink );
231
  $redirect_type = apply_filters( 'ta_filter_redirect_type' , $redirect_type , $thirstylink );
232
 
233
+ // if cloaked url is invalid, then don't redirect.
234
+ if ( ! $this->validate_cloaked_url( $thirstylink ) ) {
235
+
236
+ $wp_query->set_404();
237
+ remove_action( 'template_redirect' , array( $this , 'redirect_url' ) , 1 );
238
+ return;
239
+ }
240
+
241
  // perform actions before redirecting
242
  do_action( 'ta_before_link_redirect' , $thirstylink , $redirect_url , $redirect_type );
243
 
244
  if ( $redirect_url && $redirect_type ) {
245
 
246
+ // tell browser not to cache 301 redirects (if option is enabled)
247
+ if ( $redirect_type == 301 && get_option( 'ta_browser_no_cache_301_redirect' ) == 'yes' ) {
248
+ header( 'Cache-Control: no-store, no-cache, must-revalidate' );
249
+ header( 'Expires: Thu, 01 Jan 1970 00:00:00 GMT' );
250
+ }
251
+
252
  wp_redirect( $redirect_url , intval( $redirect_type ) );
253
  exit;
254
  }
255
 
256
  }
257
 
258
+ /**
259
+ * Validate the cloaked url. For now this only checks the category slug.
260
+ *
261
+ * @since 3.2.2
262
+ * @access private
263
+ *
264
+ * @return boolean True if cloaked url is valid, false otherwise.
265
+ */
266
+ private function validate_cloaked_url( $thirstylink ) {
267
+
268
+ $cat_slug = $thirstylink->get_category_slug();
269
+ $referrer = isset( $_SERVER[ 'REQUEST_URI' ] ) ? $_SERVER[ 'REQUEST_URI' ] : '';
270
+
271
+ // if setting is disabled or category slug is not defined, then return as validated.
272
+ if ( get_option( 'ta_show_cat_in_slug' ) !== 'yes' || ! $cat_slug )
273
+ return true;
274
+
275
+ return ( strpos( $referrer , '/' . $cat_slug . '/' ) !== false );
276
+ }
277
+
278
  /**
279
  * Pass query strings to destination url when option is enabled on settings.
280
  *
Models/Settings.php CHANGED
@@ -297,7 +297,14 @@ class Settings implements Model_Interface , Activatable_Interface , Initiable_In
297
  'min' => 0,
298
  'default' => 0,
299
  'condition_cb' => function() { return get_option( 'ta_enable_stats_reporting_module' ) === 'yes'; }
300
- )
 
 
 
 
 
 
 
301
 
302
  ) ),
303
  'ta_links_settings' => apply_filters( 'ta_links_settings_options' , array(
297
  'min' => 0,
298
  'default' => 0,
299
  'condition_cb' => function() { return get_option( 'ta_enable_stats_reporting_module' ) === 'yes'; }
300
+ ),
301
+
302
+ array(
303
+ 'id' => 'ta_browser_no_cache_301_redirect',
304
+ 'title' => __( "Don't cache 301 redirects?" , 'thirstyaffiliates' ),
305
+ 'desc' => __( "By default, browsers caches the 301 redirects. Enabling this option will tell the browser not to cache 301 redirects. Be aware that it is still up to the browser if it will cache it or not." , 'thirstyaffiliates' ),
306
+ 'type' => 'toggle'
307
+ )
308
 
309
  ) ),
310
  'ta_links_settings' => apply_filters( 'ta_links_settings_options' , array(
Models/Stats_Reporting.php CHANGED
@@ -62,6 +62,15 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
62
  */
63
  private $_helper_functions;
64
 
 
 
 
 
 
 
 
 
 
65
 
66
 
67
 
@@ -328,11 +337,14 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
328
  $response = array( 'status' => 'fail' , 'error_msg' => __( 'Missing required post data' , 'thirstyaffiliates' ) );
329
  else {
330
 
331
- $link_id = (int) sanitize_text_field( $_POST[ 'link_id' ] );
 
 
 
332
  $thirstylink = new Affiliate_Link( $link_id );
333
- $range_txt = sanitize_text_field( $_POST[ 'range' ] );
334
- $start_date = sanitize_text_field( $_POST[ 'start_date' ] );
335
- $end_date = sanitize_text_field( $_POST[ 'end_date' ] );
336
 
337
  if ( ! $thirstylink->get_id() )
338
  $response = array( 'status' => 'fail' , 'error_msg' => __( 'Selected affiliate link is invalid' , 'thirstyaffiliates' ) );
@@ -356,6 +368,53 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
356
  wp_die();
357
  }
358
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
 
360
 
361
 
@@ -559,6 +618,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
559
  * Get report range details.
560
  *
561
  * @since 3.0.0
 
562
  * @access public
563
  *
564
  * @param string $range Report range type.
@@ -569,7 +629,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
569
  public function get_report_range_details( $range = '7day' , $start_date = 'now -6 days' , $end_date = 'now' ) {
570
 
571
  $data = array();
572
- $zone_str = $this->_helper_functions->get_site_current_timezone();
573
  $timezone = new \DateTimeZone( $zone_str );
574
  $now = new \DateTime( 'now' , $timezone );
575
 
@@ -620,6 +680,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
620
  * Prepare data to feed for jQuery flot.
621
  *
622
  * @since 3.0.0
 
623
  * @access public
624
  *
625
  * @param array $range Report range details
@@ -630,7 +691,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
630
 
631
  $start_date = $range[ 'start_date' ];
632
  $end_date = $range[ 'end_date' ];
633
- $zone_str = $this->_helper_functions->get_site_current_timezone();
634
  $timezone = new \DateTimeZone( $zone_str );
635
  $flot_data = array();
636
 
@@ -744,6 +805,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
744
  * Get the DateTime object of the first day of a given month.
745
  *
746
  * @since 3.0.0
 
747
  * @access public
748
  *
749
  * @param string $month Month full textual representation.
@@ -751,7 +813,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
751
  */
752
  public function get_month_first_day_datetime_obj( $month ) {
753
 
754
- $zone_str = $this->_helper_functions->get_site_current_timezone();
755
  $timezone = new \DateTimeZone( $zone_str );
756
 
757
  return new \DateTime( 'First day of ' . $month . ' ' . date( 'Y' ) , $timezone );
@@ -866,6 +928,20 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
866
  $wpdb->query( "DELETE FROM $link_click_db WHERE id IN ( $click_ids_str )" );
867
  }
868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
 
870
 
871
  /*
@@ -901,6 +977,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
901
 
902
  add_action( 'wp_ajax_ta_click_data_redirect' , array( $this , 'ajax_save_click_data_on_redirect' ) , 10 );
903
  add_action( 'wp_ajax_ta_fetch_report_by_linkid' , array( $this , 'ajax_fetch_report_by_linkid' ) , 10 );
 
904
  add_action( 'wp_ajax_nopriv_ta_click_data_redirect' , array( $this , 'ajax_save_click_data_on_redirect' ) , 10 );
905
  }
906
 
62
  */
63
  private $_helper_functions;
64
 
65
+ /**
66
+ * Variable to store local browser's zone string.
67
+ *
68
+ * @since 3.2.2
69
+ * @access private
70
+ * @var string
71
+ */
72
+ private $_browser_zone_str;
73
+
74
 
75
 
76
 
337
  $response = array( 'status' => 'fail' , 'error_msg' => __( 'Missing required post data' , 'thirstyaffiliates' ) );
338
  else {
339
 
340
+ // save timezone to use
341
+ $this->_browser_zone_str = isset( $_POST[ 'timezone' ] ) ? sanitize_text_field( $_POST[ 'timezone' ] ) : '';
342
+
343
+ $link_id = isset( $_POST[ 'link_id' ] ) ? (int) sanitize_text_field( $_POST[ 'link_id' ] ) : 0;
344
  $thirstylink = new Affiliate_Link( $link_id );
345
+ $range_txt = isset( $_POST[ 'range' ] ) ? sanitize_text_field( $_POST[ 'range' ] ) : '';
346
+ $start_date = isset( $_POST[ 'start_date' ] ) ? sanitize_text_field( $_POST[ 'start_date' ] ) : '';
347
+ $end_date = isset( $_POST[ 'end_date' ] ) ? sanitize_text_field( $_POST[ 'end_date' ] ) : '';
348
 
349
  if ( ! $thirstylink->get_id() )
350
  $response = array( 'status' => 'fail' , 'error_msg' => __( 'Selected affiliate link is invalid' , 'thirstyaffiliates' ) );
368
  wp_die();
369
  }
370
 
371
+ /**
372
+ * AJAX init first report.
373
+ *
374
+ * @since 3.2.2
375
+ * @access public
376
+ */
377
+ public function ajax_init_first_report() {
378
+
379
+ if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX )
380
+ $response = array( 'status' => 'fail' , 'error_msg' => __( 'Invalid AJAX call' , 'thirstyaffiliates' ) );
381
+ elseif ( ! isset( $_POST[ 'timezone' ] ) )
382
+ $response = array( 'status' => 'fail' , 'error_msg' => __( 'Missing required post data' , 'thirstyaffiliates' ) );
383
+ else {
384
+
385
+ // save timezone to use
386
+ $this->_browser_zone_str = isset( $_POST[ 'timezone' ] ) ? sanitize_text_field( $_POST[ 'timezone' ] ) : '';
387
+
388
+ $cpt_slug = Plugin_Constants::AFFILIATE_LINKS_CPT;
389
+ $current_range = isset( $_POST[ 'range' ] ) ? sanitize_text_field( $_POST[ 'range' ] ) : '7day';
390
+ $start_date = isset( $_POST[ 'start_date' ] ) ? sanitize_text_field( $_POST[ 'start_date' ] ) : '';
391
+ $end_date = isset( $_POST[ 'end_date' ] ) ? sanitize_text_field( $_POST[ 'end_date' ] ) : '';
392
+ $range = $this->get_report_range_details( $current_range , $start_date , $end_date );
393
+
394
+ // get all published affiliate link ids
395
+ $query = new \WP_Query( array(
396
+ 'post_type' => $cpt_slug,
397
+ 'post_status' => 'publish',
398
+ 'fields' => 'ids',
399
+ 'posts_per_page' => -1
400
+ ) );
401
+
402
+ $data = $this->prepare_data_for_flot( $range , $query->posts );
403
+ $total_clicks = $this->count_total_clicks_from_flot_data( $data );
404
+
405
+ $response = array(
406
+ 'status' => 'success',
407
+ 'flot_data' => $data,
408
+ 'total_clicks' => $total_clicks,
409
+ );
410
+
411
+ }
412
+
413
+ @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
414
+ echo wp_json_encode( $response );
415
+ wp_die();
416
+ }
417
+
418
 
419
 
420
 
618
  * Get report range details.
619
  *
620
  * @since 3.0.0
621
+ * @since 3.2.2 Change method of getting timezone sting name.
622
  * @access public
623
  *
624
  * @param string $range Report range type.
629
  public function get_report_range_details( $range = '7day' , $start_date = 'now -6 days' , $end_date = 'now' ) {
630
 
631
  $data = array();
632
+ $zone_str = $this->_get_report_timezone_string();
633
  $timezone = new \DateTimeZone( $zone_str );
634
  $now = new \DateTime( 'now' , $timezone );
635
 
680
  * Prepare data to feed for jQuery flot.
681
  *
682
  * @since 3.0.0
683
+ * @since 3.2.2 Change method of getting timezone sting name.
684
  * @access public
685
  *
686
  * @param array $range Report range details
691
 
692
  $start_date = $range[ 'start_date' ];
693
  $end_date = $range[ 'end_date' ];
694
+ $zone_str = $this->_get_report_timezone_string();
695
  $timezone = new \DateTimeZone( $zone_str );
696
  $flot_data = array();
697
 
805
  * Get the DateTime object of the first day of a given month.
806
  *
807
  * @since 3.0.0
808
+ * @since 3.2.2 Change method of getting timezone sting name.
809
  * @access public
810
  *
811
  * @param string $month Month full textual representation.
813
  */
814
  public function get_month_first_day_datetime_obj( $month ) {
815
 
816
+ $zone_str = $this->_get_report_timezone_string();
817
  $timezone = new \DateTimeZone( $zone_str );
818
 
819
  return new \DateTime( 'First day of ' . $month . ' ' . date( 'Y' ) , $timezone );
928
  $wpdb->query( "DELETE FROM $link_click_db WHERE id IN ( $click_ids_str )" );
929
  }
930
 
931
+ /**
932
+ * Get timezone to use for the report.
933
+ *
934
+ * @since 3.2.2
935
+ * @access private
936
+ *
937
+ * @return string Timezone string name.
938
+ */
939
+ private function _get_report_timezone_string() {
940
+
941
+ return $this->_browser_zone_str ? $this->_browser_zone_str : $this->_helper_functions->get_site_current_timezone();
942
+ }
943
+
944
+
945
 
946
 
947
  /*
977
 
978
  add_action( 'wp_ajax_ta_click_data_redirect' , array( $this , 'ajax_save_click_data_on_redirect' ) , 10 );
979
  add_action( 'wp_ajax_ta_fetch_report_by_linkid' , array( $this , 'ajax_fetch_report_by_linkid' ) , 10 );
980
+ add_action( 'wp_ajax_ta_init_first_report' , array( $this , 'ajax_init_first_report' ) , 10 );
981
  add_action( 'wp_ajax_nopriv_ta_click_data_redirect' , array( $this , 'ajax_save_click_data_on_redirect' ) , 10 );
982
  }
983
 
js/app/affiliate_link_page/dist/affiliate-link-page.js CHANGED
@@ -21,4 +21,4 @@
21
  *
22
  * Date: 2016-08-08
23
  */
24
- function(e){function t(e,t,n,r){var i,o,a,s,u,c,d,p=t&&t.ownerDocument,h=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==h&&9!==h&&11!==h)return n;if(!r&&((t?t.ownerDocument||t:I)!==_&&A(t),t=t||_,L)){if(11!==h&&(u=ge.exec(e)))if(i=u[1]){if(9===h){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(p&&(a=p.getElementById(i))&&P(t,a)&&a.id===i)return n.push(a),n}else{if(u[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((i=u[3])&&b.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(i)),n}if(b.qsa&&!z[e+" "]&&(!O||!O.test(e))){if(1!==h)p=t,d=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(xe,be):t.setAttribute("id",s=M),c=k(e),o=c.length;o--;)c[o]="#"+s+" "+f(c[o]);d=c.join(","),p=ve.test(e)&&l(t.parentNode)||t}if(d)try{return Q.apply(n,p.querySelectorAll(d)),n}catch(e){}finally{s===M&&t.removeAttribute("id")}}}return j(e.replace(oe,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[M]=!0,e}function i(e){var t=_.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Te(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function l(e){return e&&void 0!==e.getElementsByTagName&&e}function c(){}function f(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=W++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,d=[R,s];if(u){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(f=t[M]||(t[M]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===R&&l[1]===s)return d[2]=l[2];if(c[o]=d,d[2]=e(t,n,u))return!0}return!1}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function h(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function v(e,t,n,i,o,a){return i&&!i[M]&&(i=v(i)),o&&!o[M]&&(o=v(o,a)),r(function(r,a,s,u){var l,c,f,d=[],p=[],v=a.length,m=r||h(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?m:g(m,d,e,s,u),x=n?o||(r?e:v||i)?[]:a:y;if(n&&n(y,x,s,u),i)for(l=g(x,p),i(l,[],s,u),c=l.length;c--;)(f=l[c])&&(x[p[c]]=!(y[p[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(y[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?K(r,f):d[c])>-1&&(r[l]=!(a[l]=f))}}else x=g(x===a?x.splice(v,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function m(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return K(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==E)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s<i;s++)if(n=w.relative[e[s].type])c=[d(p(c),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[M]){for(r=++s;r<i&&!w.relative[e[r].type];r++);return v(s>1&&p(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(oe,"$1"),n,s<r&&m(e.slice(s,r)),r<i&&m(e=e.slice(r)),r<i&&f(e))}c.push(n)}return p(c)}function y(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",v=r&&[],m=[],y=E,x=r||o&&w.find.TAG("*",l),b=R+=null==y?1:Math.random()||.1,T=x.length;for(l&&(E=a===_||a||l);h!==T&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===_||(A(c),s=!L);d=e[f++];)if(d(c,a||_,s)){u.push(c);break}l&&(R=b)}i&&((c=!d&&c)&&p--,r&&v.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(v,m,a,s);if(r){if(p>0)for(;h--;)v[h]||m[h]||(m[h]=G.call(u));m=g(m)}Q.apply(u,m),l&&!r&&m.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(R=b,E=y),v};return i?r(a):a}var x,b,w,T,C,k,S,j,E,N,D,A,_,q,L,O,H,F,P,M="sizzle"+1*new Date,I=e.document,R=0,W=0,$=n(),B=n(),z=n(),X=function(e,t){return e===t&&(D=!0),0},U={}.hasOwnProperty,V=[],G=V.pop,Y=V.push,Q=V.push,J=V.slice,K=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},Z="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ee="[\\x20\\t\\r\\n\\f]",te="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",ne="\\["+ee+"*("+te+")(?:"+ee+"*([*^$|!~]?=)"+ee+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+te+"))|)"+ee+"*\\]",re=":("+te+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ne+")*)|.*)\\)|)",ie=new RegExp(ee+"+","g"),oe=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g"),ae=new RegExp("^"+ee+"*,"+ee+"*"),se=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),ue=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),le=new RegExp(re),ce=new RegExp("^"+te+"$"),fe={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+Z+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,he=/^[^{]+\{\s*\[native \w/,ge=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,me=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,be=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},we=function(){A()},Te=d(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{Q.apply(V=J.call(I.childNodes),I.childNodes),V[I.childNodes.length].nodeType}catch(e){Q={apply:V.length?function(e,t){Y.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}b=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},A=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:I;return r!==_&&9===r.nodeType&&r.documentElement?(_=r,q=_.documentElement,L=!C(_),I!==_&&(n=_.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",we,!1):n.attachEvent&&n.attachEvent("onunload",we)),b.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),b.getElementsByTagName=i(function(e){return e.appendChild(_.createComment("")),!e.getElementsByTagName("*").length}),b.getElementsByClassName=he.test(_.getElementsByClassName),b.getById=i(function(e){return q.appendChild(e).id=M,!_.getElementsByName||!_.getElementsByName(M).length}),b.getById?(w.filter.ID=function(e){var t=e.replace(me,ye);return function(e){return e.getAttribute("id")===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&L){var n=t.getElementById(e);return n?[n]:[]}}):(w.filter.ID=function(e){var t=e.replace(me,ye);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&L){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),w.find.TAG=b.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):b.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=b.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&L)return t.getElementsByClassName(e)},H=[],O=[],(b.qsa=he.test(_.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="<a id='"+M+"'></a><select id='"+M+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&O.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||O.push("\\["+ee+"*(?:value|"+Z+")"),e.querySelectorAll("[id~="+M+"-]").length||O.push("~="),e.querySelectorAll(":checked").length||O.push(":checked"),e.querySelectorAll("a#"+M+"+*").length||O.push(".#.+[+~]")}),i(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=_.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&O.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&O.push(":enabled",":disabled"),q.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.push(",.*:")})),(b.matchesSelector=he.test(F=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){b.disconnectedMatch=F.call(e,"*"),F.call(e,"[s!='']:x"),H.push("!=",re)}),O=O.length&&new RegExp(O.join("|")),H=H.length&&new RegExp(H.join("|")),t=he.test(q.compareDocumentPosition),P=t||he.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},X=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!b.sortDetached&&t.compareDocumentPosition(e)===n?e===_||e.ownerDocument===I&&P(I,e)?-1:t===_||t.ownerDocument===I&&P(I,t)?1:N?K(N,e)-K(N,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===_?-1:t===_?1:i?-1:o?1:N?K(N,e)-K(N,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===I?-1:u[r]===I?1:0},_):_},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==_&&A(e),n=n.replace(ue,"='$1']"),b.matchesSelector&&L&&!z[n+" "]&&(!H||!H.test(n))&&(!O||!O.test(n)))try{var r=F.call(e,n);if(r||b.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,_,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==_&&A(e),P(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==_&&A(e);var n=w.attrHandle[t.toLowerCase()],r=n&&U.call(w.attrHandle,t.toLowerCase())?n(e,t,!L):void 0;return void 0!==r?r:b.attributes||!L?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(xe,be)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!b.detectDuplicates,N=!b.sortStable&&e.slice(0),e.sort(X),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return N=null,e},T=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=T(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=T(t);return n},w=t.selectors={cacheLength:50,createPseudo:r,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(me,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(me,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return fe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&le.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(me,ye).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(v){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===m:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(d=v,f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===R&&l[1],x=p&&l[2],d=p&&v.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[R,p,x];break}}else if(y&&(d=t,f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===R&&l[1],x=p),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==m:1!==d.nodeType)||!++x||(y&&(f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[R,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=w.pseudos[e]||w.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[M]?o(n):o.length>1?(i=[e,e,"",n],w.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=K(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(oe,"$1"));return i[M]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(me,ye),function(t){return(t.textContent||t.innerText||T(t)).indexOf(e)>-1}}),lang:r(function(e){return ce.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(me,ye).toLowerCase(),function(t){var n;do{if(n=L?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===_.activeElement&&(!_.hasFocus||_.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:s(!1),disabled:s(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[x]=function(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}(x);for(x in{submit:!0,reset:!0})w.pseudos[x]=function(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}(x);return c.prototype=w.filters=w.pseudos,w.setFilters=new c,k=t.tokenize=function(e,n){var r,i,o,a,s,u,l,c=B[e+" "];if(c)return n?0:c.slice(0);for(s=e,u=[],l=w.preFilter;s;){r&&!(i=ae.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=se.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(oe," ")}),s=s.slice(r.length));for(a in w.filter)!(i=fe[a].exec(s))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):B(e,u).slice(0)},S=t.compile=function(e,t){var n,r=[],i=[],o=z[e+" "];if(!o){for(t||(t=k(e)),n=t.length;n--;)o=m(t[n]),o[M]?r.push(o):i.push(o);o=z(e,y(i,r)),o.selector=e}return o},j=t.select=function(e,t,n,r){var i,o,a,s,u,c="function"==typeof e&&e,d=!r&&k(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&L&&w.relative[o[1].type]){if(!(t=(w.find.ID(a.matches[0].replace(me,ye),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=fe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((u=w.find[s])&&(r=u(a.matches[0].replace(me,ye),ve.test(o[0].type)&&l(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&f(o)))return Q.apply(n,r),n;break}}return(c||S(e,d))(r,t,!L,n,!t||ve.test(e)&&l(t.parentNode)||t),n},b.sortStable=M.split("").sort(X).join("")===M,b.detectDuplicates=!!D,A(),b.sortDetached=i(function(e){return 1&e.compareDocumentPosition(_.createElement("fieldset"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),b.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(Z,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(o);xe.find=ke,xe.expr=ke.selectors,xe.expr[":"]=xe.expr.pseudos,xe.uniqueSort=xe.unique=ke.uniqueSort,xe.text=ke.getText,xe.isXMLDoc=ke.isXML,xe.contains=ke.contains,xe.escapeSelector=ke.escape;var Se=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&xe(e).is(n))break;r.push(e)}return r},je=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Ee=xe.expr.match.needsContext,Ne=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,De=/^.[^:#\[\.,]*$/;xe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?xe.find.matchesSelector(r,e)?[r]:[]:xe.find.matches(e,xe.grep(t,function(e){return 1===e.nodeType}))},xe.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(xe(e).filter(function(){for(t=0;t<r;t++)if(xe.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)xe.find(e,i[t],n);return r>1?xe.uniqueSort(n):n},filter:function(e){return this.pushStack(c(this,e||[],!1))},not:function(e){return this.pushStack(c(this,e||[],!0))},is:function(e){return!!c(this,"string"==typeof e&&Ee.test(e)?xe(e):e||[],!1).length}});var Ae,_e=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(xe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ae,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:_e.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof xe?t[0]:t,xe.merge(this,xe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:se,!0)),Ne.test(r[1])&&xe.isPlainObject(t))for(r in t)xe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=se.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):xe.isFunction(e)?void 0!==n.ready?n.ready(e):e(xe):xe.makeArray(e,this)}).prototype=xe.fn,Ae=xe(se);var qe=/^(?:parents|prev(?:Until|All))/,Le={children:!0,contents:!0,next:!0,prev:!0};xe.fn.extend({has:function(e){var t=xe(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(xe.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&xe(e);if(!Ee.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&xe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?xe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?de.call(xe(e),this[0]):de.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(xe.uniqueSort(xe.merge(this.get(),xe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),xe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Se(e,"parentNode")},parentsUntil:function(e,t,n){return Se(e,"parentNode",n)},next:function(e){return f(e,"nextSibling")},prev:function(e){return f(e,"previousSibling")},nextAll:function(e){return Se(e,"nextSibling")},prevAll:function(e){return Se(e,"previousSibling")},nextUntil:function(e,t,n){return Se(e,"nextSibling",n)},prevUntil:function(e,t,n){return Se(e,"previousSibling",n)},siblings:function(e){return je((e.parentNode||{}).firstChild,e)},children:function(e){return je(e.firstChild)},contents:function(e){return l(e,"iframe")?e.contentDocument:(l(e,"template")&&(e=e.content||e),xe.merge([],e.childNodes))}},function(e,t){xe.fn[e]=function(n,r){var i=xe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=xe.filter(r,i)),this.length>1&&(Le[e]||xe.uniqueSort(i),qe.test(e)&&i.reverse()),this.pushStack(i)}});var Oe=/[^\x20\t\r\n\f]+/g;xe.Callbacks=function(e){e="string"==typeof e?d(e):xe.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){xe.each(n,function(n,r){xe.isFunction(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==xe.type(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return xe.each(arguments,function(e,t){for(var n;(n=xe.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?xe.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},xe.extend({Deferred:function(e){var t=[["notify","progress",xe.Callbacks("memory"),xe.Callbacks("memory"),2],["resolve","done",xe.Callbacks("once memory"),xe.Callbacks("once memory"),0,"resolved"],["reject","fail",xe.Callbacks("once memory"),xe.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return xe.Deferred(function(n){xe.each(t,function(t,r){var i=xe.isFunction(e[r[4]])&&e[r[4]];a[r[1]](function(){var e=i&&i.apply(this,arguments);e&&xe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(e,n,r){function a(e,t,n,r){return function(){var u=this,l=arguments,c=function(){var o,c;if(!(e<s)){if((o=n.apply(u,l))===t.promise())throw new TypeError("Thenable self-resolution");c=o&&("object"===(void 0===o?"undefined":i(o))||"function"==typeof o)&&o.then,xe.isFunction(c)?r?c.call(o,a(s,t,p,r),a(s,t,h,r)):(s++,c.call(o,a(s,t,p,r),a(s,t,h,r),a(s,t,p,t.notifyWith))):(n!==p&&(u=void 0,l=[o]),(r||t.resolveWith)(u,l))}},f=r?c:function(){try{c()}catch(r){xe.Deferred.exceptionHook&&xe.Deferred.exceptionHook(r,f.stackTrace),e+1>=s&&(n!==h&&(u=void 0,l=[r]),t.rejectWith(u,l))}};e?f():(xe.Deferred.getStackHook&&(f.stackTrace=xe.Deferred.getStackHook()),o.setTimeout(f))}}var s=0;return xe.Deferred(function(i){t[0][3].add(a(0,i,xe.isFunction(r)?r:p,i.notifyWith)),t[1][3].add(a(0,i,xe.isFunction(e)?e:p)),t[2][3].add(a(0,i,xe.isFunction(n)?n:h))}).promise()},promise:function(e){return null!=e?xe.extend(e,r):r}},a={};return xe.each(t,function(e,i){var o=i[2],s=i[5];r[i[1]]=o.add,s&&o.add(function(){n=s},t[3-e][2].disable,t[0][2].lock),o.add(i[3].fire),a[i[0]]=function(){return a[i[0]+"With"](this===a?void 0:this,arguments),this},a[i[0]+"With"]=o.fireWith}),r.promise(a),e&&e.call(a,a),a},when:function(e){var t=arguments.length,n=t,r=Array(n),i=le.call(arguments),o=xe.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?le.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(g(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||xe.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)g(i[n],a(n),o.reject);return o.promise()}});var He=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;xe.Deferred.exceptionHook=function(e,t){o.console&&o.console.warn&&e&&He.test(e.name)&&o.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},xe.readyException=function(e){o.setTimeout(function(){throw e})};var Fe=xe.Deferred();xe.fn.ready=function(e){return Fe.then(e).catch(function(e){xe.readyException(e)}),this},xe.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--xe.readyWait:xe.isReady)||(xe.isReady=!0,!0!==e&&--xe.readyWait>0||Fe.resolveWith(se,[xe]))}}),xe.ready.then=Fe.then,"complete"===se.readyState||"loading"!==se.readyState&&!se.documentElement.doScroll?o.setTimeout(xe.ready):(se.addEventListener("DOMContentLoaded",v),o.addEventListener("load",v));var Pe=function e(t,n,r,i,o,a,s){var u=0,l=t.length,c=null==r;if("object"===xe.type(r)){o=!0;for(u in r)e(t,n,u,r[u],!0,a,s)}else if(void 0!==i&&(o=!0,xe.isFunction(i)||(s=!0),c&&(s?(n.call(t,i),n=null):(c=n,n=function(e,t,n){return c.call(xe(e),n)})),n))for(;u<l;u++)n(t[u],r,s?i:i.call(t[u],u,n(t[u],r)));return o?t:c?n.call(t):l?n(t[0],r):a},Me=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};m.uid=1,m.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Me(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[xe.camelCase(t)]=n;else for(r in t)i[xe.camelCase(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][xe.camelCase(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){Array.isArray(t)?t=t.map(xe.camelCase):(t=xe.camelCase(t),t=t in r?[t]:t.match(Oe)||[]),n=t.length;for(;n--;)delete r[t[n]]}(void 0===t||xe.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!xe.isEmptyObject(t)}};var Ie=new m,Re=new m,We=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$e=/[A-Z]/g;xe.extend({hasData:function(e){return Re.hasData(e)||Ie.hasData(e)},data:function(e,t,n){return Re.access(e,t,n)},removeData:function(e,t){Re.remove(e,t)},_data:function(e,t,n){return Ie.access(e,t,n)},_removeData:function(e,t){Ie.remove(e,t)}}),xe.fn.extend({data:function(e,t){var n,r,o,a=this[0],s=a&&a.attributes;if(void 0===e){if(this.length&&(o=Re.get(a),1===a.nodeType&&!Ie.get(a,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=xe.camelCase(r.slice(5)),x(a,r,o[r])));Ie.set(a,"hasDataAttrs",!0)}return o}return"object"===(void 0===e?"undefined":i(e))?this.each(function(){Re.set(this,e)}):Pe(this,function(t){var n;if(a&&void 0===t){if(void 0!==(n=Re.get(a,e)))return n;if(void 0!==(n=x(a,e)))return n}else this.each(function(){Re.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Re.remove(this,e)})}}),xe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Ie.get(e,t),n&&(!r||Array.isArray(n)?r=Ie.access(e,t,xe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=xe.queue(e,t),r=n.length,i=n.shift(),o=xe._queueHooks(e,t),a=function(){xe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Ie.get(e,n)||Ie.access(e,n,{empty:xe.Callbacks("once memory").add(function(){Ie.remove(e,[t+"queue",n])})})}}),xe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?xe.queue(this[0],e):void 0===t?this:this.each(function(){var n=xe.queue(this,e,t);xe._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&xe.dequeue(this,e)})},dequeue:function(e){return this.each(function(){xe.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=xe.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=Ie.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var Be=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ze=new RegExp("^(?:([+-])=|)("+Be+")([a-z%]*)$","i"),Xe=["Top","Right","Bottom","Left"],Ue=function(e,t){return e=t||e,"none"===e.style.display||""===e.style.display&&xe.contains(e.ownerDocument,e)&&"none"===xe.css(e,"display")},Ve=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i},Ge={};xe.fn.extend({show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ue(this)?xe(this).show():xe(this).hide()})}});var Ye=/^(?:checkbox|radio)$/i,Qe=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Je=/^$|\/(?:java|ecma)script/i,Ke={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ke.optgroup=Ke.option,Ke.tbody=Ke.tfoot=Ke.colgroup=Ke.caption=Ke.thead,Ke.th=Ke.td;var Ze=/<|&#?\w+;/;!function(){var e=se.createDocumentFragment(),t=e.appendChild(se.createElement("div")),n=se.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),ye.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",ye.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var et=se.documentElement,tt=/^key/,nt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rt=/^([^.]*)(?:\.(.+)|)/;xe.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Ie.get(e);if(v)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&xe.find.matchesSelector(et,i),n.guid||(n.guid=xe.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(t){return void 0!==xe&&xe.event.triggered!==t.type?xe.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Oe)||[""],l=t.length;l--;)s=rt.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p&&(f=xe.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=xe.event.special[p]||{},c=xe.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&xe.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),xe.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Ie.hasData(e)&&Ie.get(e);if(v&&(u=v.events)){for(t=(t||"").match(Oe)||[""],l=t.length;l--;)if(s=rt.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p){for(f=xe.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=u[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||xe.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)xe.event.remove(e,p+t[l],n,r,!0);xe.isEmptyObject(u)&&Ie.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=xe.event.fix(e),u=new Array(arguments.length),l=(Ie.get(this,"events")||{})[s.type]||[],c=xe.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){for(a=xe.event.handlers.call(this,s,l),t=0;(i=a[t++])&&!s.isPropagationStopped();)for(s.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((xe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)r=t[n],i=r.selector+" ",void 0===a[i]&&(a[i]=r.needsContext?xe(i,this).index(l)>-1:xe.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(xe.Event.prototype,e,{enumerable:!0,configurable:!0,get:xe.isFunction(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[xe.expando]?e:new xe.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==N()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===N()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&l(this,"input"))return this.click(),!1},_default:function(e){return l(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},xe.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},xe.Event=function(e,t){if(!(this instanceof xe.Event))return new xe.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?j:E,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&xe.extend(this,t),this.timeStamp=e&&e.timeStamp||xe.now(),this[xe.expando]=!0},xe.Event.prototype={constructor:xe.Event,isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=j,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=j,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=j,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},xe.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&tt.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&nt.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},xe.event.addProp),xe.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){xe.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||xe.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),xe.fn.extend({on:function(e,t,n,r){return D(this,e,t,n,r)},one:function(e,t,n,r){return D(this,e,t,n,r,1)},off:function(e,t,n){var r,o;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,xe(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"===(void 0===e?"undefined":i(e))){for(o in e)this.off(o,t,e[o]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=E),this.each(function(){xe.event.remove(this,e,n,t)})}});var it=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ot=/<script|<style|<link/i,at=/checked\s*(?:[^=]|=\s*.checked.)/i,st=/^true\/(.*)/,ut=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;xe.extend({htmlPrefilter:function(e){return e.replace(it,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=xe.contains(e.ownerDocument,e);if(!(ye.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||xe.isXMLDoc(e)))for(a=C(s),o=C(e),r=0,i=o.length;r<i;r++)O(o[r],a[r]);if(t)if(n)for(o=o||C(e),a=a||C(s),r=0,i=o.length;r<i;r++)L(o[r],a[r]);else L(e,s);return a=C(s,"script"),a.length>0&&k(a,!u&&C(e,"script")),s},cleanData:function(e){for(var t,n,r,i=xe.event.special,o=0;void 0!==(n=e[o]);o++)if(Me(n)){if(t=n[Ie.expando]){if(t.events)for(r in t.events)i[r]?xe.event.remove(n,r):xe.removeEvent(n,r,t.handle);n[Ie.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),xe.fn.extend({detach:function(e){return F(this,e,!0)},remove:function(e){return F(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?xe.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return H(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){A(this,e).appendChild(e)}})},prepend:function(){return H(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=A(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return H(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return H(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(xe.cleanData(C(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return xe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ot.test(e)&&!Ke[(Qe.exec(e)||["",""])[1].toLowerCase()]){e=xe.htmlPrefilter(e);try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(xe.cleanData(C(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return H(this,arguments,function(t){var n=this.parentNode;xe.inArray(this,e)<0&&(xe.cleanData(C(this)),n&&n.replaceChild(t,this))},e)}}),xe.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){xe.fn[e]=function(e){for(var n,r=[],i=xe(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),xe(i[a])[t](n),fe.apply(r,n.get());return this.pushStack(r)}});var lt=/^margin/,ct=new RegExp("^("+Be+")(?!px)[a-z%]+$","i"),ft=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=o),t.getComputedStyle(e)};!function(){function e(){if(s){s.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",et.appendChild(a);var e=o.getComputedStyle(s);t="1%"!==e.top,i="2px"===e.marginLeft,n="4px"===e.width,s.style.marginRight="50%",r="4px"===e.marginRight,et.removeChild(a),s=null}}var t,n,r,i,a=se.createElement("div"),s=se.createElement("div");s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",ye.clearCloneStyle="content-box"===s.style.backgroundClip,a.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.appendChild(s),xe.extend(ye,{pixelPosition:function(){return e(),t},boxSizingReliable:function(){return e(),n},pixelMarginRight:function(){return e(),r},reliableMarginLeft:function(){return e(),i}}))}();var dt=/^(none|table(?!-c[ea]).+)/,pt=/^--/,ht={position:"absolute",visibility:"hidden",display:"block"},gt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","Moz","ms"],mt=se.createElement("div").style;xe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=P(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=xe.camelCase(t),l=pt.test(t),c=e.style;if(l||(t=R(u)),s=xe.cssHooks[t]||xe.cssHooks[u],void 0===n)return s&&"get"in s&&void 0!==(o=s.get(e,!1,r))?o:c[t];a=void 0===n?"undefined":i(n),"string"===a&&(o=ze.exec(n))&&o[1]&&(n=b(e,t,o),a="number"),null!=n&&n===n&&("number"===a&&(n+=o&&o[3]||(xe.cssNumber[u]?"":"px")),ye.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=xe.camelCase(t);return pt.test(t)||(t=R(s)),a=xe.cssHooks[t]||xe.cssHooks[s],a&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=P(e,t,r)),"normal"===i&&t in gt&&(i=gt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),xe.each(["height","width"],function(e,t){xe.cssHooks[t]={get:function(e,n,r){if(n)return!dt.test(xe.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?B(e,t,r):Ve(e,ht,function(){return B(e,t,r)})},set:function(e,n,r){var i,o=r&&ft(e),a=r&&$(e,t,r,"border-box"===xe.css(e,"boxSizing",!1,o),o);return a&&(i=ze.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=xe.css(e,t)),W(e,n,a)}}}),xe.cssHooks.marginLeft=M(ye.reliableMarginLeft,function(e,t){if(t)return(parseFloat(P(e,"marginLeft"))||e.getBoundingClientRect().left-Ve(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),xe.each({margin:"",padding:"",border:"Width"},function(e,t){xe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Xe[r]+t]=o[r]||o[r-2]||o[0];return i}},lt.test(e)||(xe.cssHooks[e+t].set=W)}),xe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=ft(e),i=t.length;a<i;a++)o[t[a]]=xe.css(e,t[a],!1,r);return o}return void 0!==n?xe.style(e,t,n):xe.css(e,t)},e,t,arguments.length>1)}}),xe.Tween=z,z.prototype={constructor:z,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||xe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(xe.cssNumber[n]?"":"px")},cur:function(){var e=z.propHooks[this.prop];return e&&e.get?e.get(this):z.propHooks._default.get(this)},run:function(e){var t,n=z.propHooks[this.prop];return this.options.duration?this.pos=t=xe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):z.propHooks._default.set(this),this}},z.prototype.init.prototype=z.prototype,z.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=xe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){xe.fx.step[e.prop]?xe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[xe.cssProps[e.prop]]&&!xe.cssHooks[e.prop]?e.elem[e.prop]=e.now:xe.style(e.elem,e.prop,e.now+e.unit)}}},z.propHooks.scrollTop=z.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},xe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},xe.fx=z.prototype.init,xe.fx.step={};var yt,xt,bt=/^(?:toggle|show|hide)$/,wt=/queueHooks$/;xe.Animation=xe.extend(J,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return b(n.elem,e,ze.exec(t),n),n}]},tweener:function(e,t){xe.isFunction(e)?(t=e,e=["*"]):e=e.match(Oe);for(var n,r=0,i=e.length;r<i;r++)n=e[r],J.tweeners[n]=J.tweeners[n]||[],J.tweeners[n].unshift(t)},prefilters:[Y],prefilter:function(e,t){t?J.prefilters.unshift(e):J.prefilters.push(e)}}),xe.speed=function(e,t,n){var r=e&&"object"===(void 0===e?"undefined":i(e))?xe.extend({},e):{complete:n||!n&&t||xe.isFunction(e)&&e,duration:e,easing:n&&t||t&&!xe.isFunction(t)&&t};return xe.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in xe.fx.speeds?r.duration=xe.fx.speeds[r.duration]:r.duration=xe.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){xe.isFunction(r.old)&&r.old.call(this),r.queue&&xe.dequeue(this,r.queue)},r},xe.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ue).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=xe.isEmptyObject(e),o=xe.speed(t,n,r),a=function(){var t=J(this,xe.extend({},e),o);(i||Ie.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=xe.timers,a=Ie.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&wt.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||xe.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=Ie.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=xe.timers,a=r?r.length:0;for(n.finish=!0,xe.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),xe.each(["toggle","show","hide"],function(e,t){var n=xe.fn[t];xe.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(V(t,!0),e,r,i)}}),xe.each({slideDown:V("show"),slideUp:V("hide"),slideToggle:V("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){xe.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),xe.timers=[],xe.fx.tick=function(){var e,t=0,n=xe.timers;for(yt=xe.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||xe.fx.stop(),yt=void 0},xe.fx.timer=function(e){xe.timers.push(e),xe.fx.start()},xe.fx.interval=13,xe.fx.start=function(){xt||(xt=!0,X())},xe.fx.stop=function(){xt=null},xe.fx.speeds={slow:600,fast:200,_default:400},xe.fn.delay=function(e,t){return e=xe.fx?xe.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=o.setTimeout(t,e);n.stop=function(){o.clearTimeout(r)}})},function(){var e=se.createElement("input"),t=se.createElement("select"),n=t.appendChild(se.createElement("option"));e.type="checkbox",ye.checkOn=""!==e.value,ye.optSelected=n.selected,e=se.createElement("input"),e.value="t",e.type="radio",ye.radioValue="t"===e.value}();var Tt,Ct=xe.expr.attrHandle;xe.fn.extend({attr:function(e,t){return Pe(this,xe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){xe.removeAttr(this,e)})}}),xe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?xe.prop(e,t,n):(1===o&&xe.isXMLDoc(e)||(i=xe.attrHooks[t.toLowerCase()]||(xe.expr.match.bool.test(t)?Tt:void 0)),void 0!==n?null===n?void xe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=xe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!ye.radioValue&&"radio"===t&&l(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Oe);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Tt={set:function(e,t,n){return!1===t?xe.removeAttr(e,n):e.setAttribute(n,n),n}},xe.each(xe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ct[t]||xe.find.attr;Ct[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=Ct[a],Ct[a]=i,i=null!=n(e,t,r)?a:null,Ct[a]=o),i}});var kt=/^(?:input|select|textarea|button)$/i,St=/^(?:a|area)$/i;xe.fn.extend({prop:function(e,t){return Pe(this,xe.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[xe.propFix[e]||e]})}}),xe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&xe.isXMLDoc(e)||(t=xe.propFix[t]||t,i=xe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=xe.find.attr(e,"tabindex");return t?parseInt(t,10):kt.test(e.nodeName)||St.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ye.optSelected||(xe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),xe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){xe.propFix[this.toLowerCase()]=this}),xe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(xe.isFunction(e))return this.each(function(t){xe(this).addClass(e.call(this,t,Z(this)))});if("string"==typeof e&&e)for(t=e.match(Oe)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&" "+K(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=K(r),i!==s&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(xe.isFunction(e))return this.each(function(t){xe(this).removeClass(e.call(this,t,Z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Oe)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&" "+K(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=K(r),i!==s&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=void 0===e?"undefined":i(e);return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):xe.isFunction(e)?this.each(function(n){xe(this).toggleClass(e.call(this,n,Z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=xe(this),o=e.match(Oe)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=Z(this),t&&Ie.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Ie.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+K(Z(n))+" ").indexOf(t)>-1)return!0;return!1}});var jt=/\r/g;xe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=xe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,xe(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=xe.map(i,function(e){return null==e?"":e+""})),(t=xe.valHooks[this.type]||xe.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=xe.valHooks[i.type]||xe.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(jt,""):null==n?"":n)}}}),xe.extend({valHooks:{option:{get:function(e){var t=xe.find.attr(e,"value");return null!=t?t:K(xe.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(n=i[r],(n.selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!l(n.parentNode,"optgroup"))){if(t=xe(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=xe.makeArray(t),a=i.length;a--;)r=i[a],(r.selected=xe.inArray(xe.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),xe.each(["radio","checkbox"],function(){xe.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=xe.inArray(xe(e).val(),t)>-1}},ye.checkOn||(xe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=/^(?:focusinfocus|focusoutblur)$/;xe.extend(xe.event,{trigger:function(e,t,n,r){var a,s,u,l,c,f,d,p=[n||se],h=ge.call(e,"type")?e.type:e,g=ge.call(e,"namespace")?e.namespace.split("."):[];if(s=u=n=n||se,3!==n.nodeType&&8!==n.nodeType&&!Et.test(h+xe.event.triggered)&&(h.indexOf(".")>-1&&(g=h.split("."),h=g.shift(),g.sort()),c=h.indexOf(":")<0&&"on"+h,e=e[xe.expando]?e:new xe.Event(h,"object"===(void 0===e?"undefined":i(e))&&e),e.isTrigger=r?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:xe.makeArray(t,[e]),d=xe.event.special[h]||{},r||!d.trigger||!1!==d.trigger.apply(n,t))){if(!r&&!d.noBubble&&!xe.isWindow(n)){for(l=d.delegateType||h,Et.test(l+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),u=s;u===(n.ownerDocument||se)&&p.push(u.defaultView||u.parentWindow||o)}for(a=0;(s=p[a++])&&!e.isPropagationStopped();)e.type=a>1?l:d.bindType||h,f=(Ie.get(s,"events")||{})[e.type]&&Ie.get(s,"handle"),f&&f.apply(s,t),(f=c&&s[c])&&f.apply&&Me(s)&&(e.result=f.apply(s,t),!1===e.result&&e.preventDefault());return e.type=h,r||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(p.pop(),t)||!Me(n)||c&&xe.isFunction(n[h])&&!xe.isWindow(n)&&(u=n[c],u&&(n[c]=null),xe.event.triggered=h,n[h](),xe.event.triggered=void 0,u&&(n[c]=u)),e.result}},simulate:function(e,t,n){var r=xe.extend(new xe.Event,n,{type:e,isSimulated:!0});xe.event.trigger(r,null,t)}}),xe.fn.extend({trigger:function(e,t){return this.each(function(){xe.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return xe.event.trigger(e,t,n,!0)}}),xe.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){xe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),xe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ye.focusin="onfocusin"in o,ye.focusin||xe.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){xe.event.simulate(t,e.target,xe.event.fix(e))};xe.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Ie.access(r,t);i||r.addEventListener(e,n,!0),Ie.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Ie.access(r,t)-1;i?Ie.access(r,t,i):(r.removeEventListener(e,n,!0),Ie.remove(r,t))}}});var Nt=o.location,Dt=xe.now(),At=/\?/;xe.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new o.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||xe.error("Invalid XML: "+e),t};var _t=/\[\]$/,qt=/\r?\n/g,Lt=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;xe.param=function(e,t){var n,r=[],i=function(e,t){var n=xe.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!xe.isPlainObject(e))xe.each(e,function(){i(this.name,this.value)});else for(n in e)ee(n,e[n],t,i);return r.join("&")},xe.fn.extend({serialize:function(){return xe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=xe.prop(this,"elements");return e?xe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!xe(this).is(":disabled")&&Ot.test(this.nodeName)&&!Lt.test(e)&&(this.checked||!Ye.test(e))}).map(function(e,t){var n=xe(this).val();return null==n?null:Array.isArray(n)?xe.map(n,function(e){return{name:t.name,value:e.replace(qt,"\r\n")}}):{name:t.name,value:n.replace(qt,"\r\n")}}).get()}});var Ht=/%20/g,Ft=/#.*$/,Pt=/([?&])_=[^&]*/,Mt=/^(.*?):[ \t]*([^\r\n]*)$/gm,It=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Rt=/^(?:GET|HEAD)$/,Wt=/^\/\//,$t={},Bt={},zt="*/".concat("*"),Xt=se.createElement("a");Xt.href=Nt.href,xe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Nt.href,type:"GET",isLocal:It.test(Nt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":xe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?re(re(e,xe.ajaxSettings),t):re(xe.ajaxSettings,e)},ajaxPrefilter:te($t),ajaxTransport:te(Bt),ajax:function(e,t){function n(e,t,n,i){var u,c,p,h,w,T=t;f||(f=!0,l&&o.clearTimeout(l),r=void 0,s=i||"",k.readyState=e>0?4:0,u=e>=200&&e<300||304===e,n&&(h=ie(g,k,n)),h=oe(g,h,k,u),u?(g.ifModified&&(w=k.getResponseHeader("Last-Modified"),w&&(xe.lastModified[a]=w),(w=k.getResponseHeader("etag"))&&(xe.etag[a]=w)),204===e||"HEAD"===g.type?T="nocontent":304===e?T="notmodified":(T=h.state,c=h.data,p=h.error,u=!p)):(p=T,!e&&T||(T="error",e<0&&(e=0))),k.status=e,k.statusText=(t||T)+"",u?y.resolveWith(v,[c,T,k]):y.rejectWith(v,[k,T,p]),k.statusCode(b),b=void 0,d&&m.trigger(u?"ajaxSuccess":"ajaxError",[k,g,u?c:p]),x.fireWith(v,[k,T]),d&&(m.trigger("ajaxComplete",[k,g]),--xe.active||xe.event.trigger("ajaxStop")))}"object"===(void 0===e?"undefined":i(e))&&(t=e,e=void 0),t=t||{};var r,a,s,u,l,c,f,d,p,h,g=xe.ajaxSetup({},t),v=g.context||g,m=g.context&&(v.nodeType||v.jquery)?xe(v):xe.event,y=xe.Deferred(),x=xe.Callbacks("once memory"),b=g.statusCode||{},w={},T={},C="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(f){if(!u)for(u={};t=Mt.exec(s);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return f?s:null},setRequestHeader:function(e,t){return null==f&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==f&&(g.mimeType=e),this},statusCode:function(e){var t;if(e)if(f)k.always(e[k.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||C;return r&&r.abort(t),n(0,t),this}};if(y.promise(k),g.url=((e||g.url||Nt.href)+"").replace(Wt,Nt.protocol+"//"),g.type=t.method||t.type||g.method||g.type,g.dataTypes=(g.dataType||"*").toLowerCase().match(Oe)||[""],null==g.crossDomain){c=se.createElement("a");try{c.href=g.url,c.href=c.href,g.crossDomain=Xt.protocol+"//"+Xt.host!=c.protocol+"//"+c.host}catch(e){g.crossDomain=!0}}if(g.data&&g.processData&&"string"!=typeof g.data&&(g.data=xe.param(g.data,g.traditional)),ne($t,g,t,k),f)return k;d=xe.event&&g.global,d&&0==xe.active++&&xe.event.trigger("ajaxStart"),g.type=g.type.toUpperCase(),g.hasContent=!Rt.test(g.type),a=g.url.replace(Ft,""),g.hasContent?g.data&&g.processData&&0===(g.contentType||"").indexOf("application/x-www-form-urlencoded")&&(g.data=g.data.replace(Ht,"+")):(h=g.url.slice(a.length),g.data&&(a+=(At.test(a)?"&":"?")+g.data,delete g.data),!1===g.cache&&(a=a.replace(Pt,"$1"),h=(At.test(a)?"&":"?")+"_="+Dt+++h),g.url=a+h),g.ifModified&&(xe.lastModified[a]&&k.setRequestHeader("If-Modified-Since",xe.lastModified[a]),xe.etag[a]&&k.setRequestHeader("If-None-Match",xe.etag[a])),(g.data&&g.hasContent&&!1!==g.contentType||t.contentType)&&k.setRequestHeader("Content-Type",g.contentType),k.setRequestHeader("Accept",g.dataTypes[0]&&g.accepts[g.dataTypes[0]]?g.accepts[g.dataTypes[0]]+("*"!==g.dataTypes[0]?", "+zt+"; q=0.01":""):g.accepts["*"]);for(p in g.headers)k.setRequestHeader(p,g.headers[p]);if(g.beforeSend&&(!1===g.beforeSend.call(v,k,g)||f))return k.abort();if(C="abort",x.add(g.complete),k.done(g.success),k.fail(g.error),r=ne(Bt,g,t,k)){if(k.readyState=1,d&&m.trigger("ajaxSend",[k,g]),f)return k;g.async&&g.timeout>0&&(l=o.setTimeout(function(){k.abort("timeout")},g.timeout));try{f=!1,r.send(w,n)}catch(e){if(f)throw e;n(-1,e)}}else n(-1,"No Transport");return k},getJSON:function(e,t,n){return xe.get(e,t,n,"json")},getScript:function(e,t){return xe.get(e,void 0,t,"script")}}),xe.each(["get","post"],function(e,t){xe[t]=function(e,n,r,i){return xe.isFunction(n)&&(i=i||r,r=n,n=void 0),xe.ajax(xe.extend({url:e,type:t,dataType:i,data:n,success:r},xe.isPlainObject(e)&&e))}}),xe._evalUrl=function(e){return xe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},xe.fn.extend({wrapAll:function(e){var t;return this[0]&&(xe.isFunction(e)&&(e=e.call(this[0])),t=xe(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return xe.isFunction(e)?this.each(function(t){xe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=xe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=xe.isFunction(e);return this.each(function(n){xe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){xe(this).replaceWith(this.childNodes)}),this}}),xe.expr.pseudos.hidden=function(e){return!xe.expr.pseudos.visible(e)},xe.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},xe.ajaxSettings.xhr=function(){try{return new o.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Vt=xe.ajaxSettings.xhr();ye.cors=!!Vt&&"withCredentials"in Vt,ye.ajax=Vt=!!Vt,xe.ajaxTransport(function(e){var t,n;if(ye.cors||Vt&&!e.crossDomain)return{send:function(r,i){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)s.setRequestHeader(a,r[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(Ut[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&o.setTimeout(function(){t&&n()})},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),xe.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),xe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return xe.globalEval(e),e}}}),xe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),xe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=xe("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),se.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;xe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||xe.expando+"_"+Dt++;return this[e]=!0,e}}),xe.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,a,s=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=xe.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||xe.error(r+" was not called"),a[0]},e.dataTypes[0]="json",i=o[r],o[r]=function(){a=arguments},n.always(function(){void 0===i?xe(o).removeProp(r):o[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),a&&xe.isFunction(i)&&i(a[0]),a=i=void 0}),"script"}),ye.createHTMLDocument=function(){var e=se.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),xe.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var r,i,o;return t||(ye.createHTMLDocument?(t=se.implementation.createHTMLDocument(""),r=t.createElement("base"),r.href=se.location.href,t.head.appendChild(r)):t=se),i=Ne.exec(e),o=!n&&[],i?[t.createElement(i[1])]:(i=S([e],t,o),o&&o.length&&xe(o).remove(),xe.merge([],i.childNodes))},xe.fn.load=function(e,t,n){var r,o,a,s=this,u=e.indexOf(" ");return u>-1&&(r=K(e.slice(u)),e=e.slice(0,u)),xe.isFunction(t)?(n=t,t=void 0):t&&"object"===(void 0===t?"undefined":i(t))&&(o="POST"),s.length>0&&xe.ajax({url:e,type:o||"GET",dataType:"html",data:t}).done(function(e){a=arguments,s.html(r?xe("<div>").append(xe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,a||[e.responseText,t,e])})}),this},xe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){xe.fn[t]=function(e){return this.on(t,e)}}),xe.expr.pseudos.animated=function(e){return xe.grep(xe.timers,function(t){return e===t.elem}).length},xe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=xe.css(e,"position"),f=xe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=xe.css(e,"top"),u=xe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),xe.isFunction(t)&&(t=t.call(e,n,xe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},xe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){xe.offset.setOffset(this,e,t)});var t,n,r,i,o=this[0];if(o)return o.getClientRects().length?(r=o.getBoundingClientRect(),t=o.ownerDocument,n=t.documentElement,i=t.defaultView,{top:r.top+i.pageYOffset-n.clientTop,left:r.left+i.pageXOffset-n.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===xe.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),l(e[0],"html")||(r=e.offset()),r={top:r.top+xe.css(e[0],"borderTopWidth",!0),left:r.left+xe.css(e[0],"borderLeftWidth",!0)}),{top:t.top-r.top-xe.css(n,"marginTop",!0),left:t.left-r.left-xe.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===xe.css(e,"position");)e=e.offsetParent;return e||et})}}),xe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;xe.fn[e]=function(r){return Pe(this,function(e,r,i){var o;if(xe.isWindow(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),xe.each(["top","left"],function(e,t){xe.cssHooks[t]=M(ye.pixelPosition,function(e,n){if(n)return n=P(e,t),ct.test(n)?xe(e).position()[t]+"px":n})}),xe.each({Height:"height",Width:"width"},function(e,t){xe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){xe.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return Pe(this,function(t,n,i){var o;return xe.isWindow(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?xe.css(t,n,s):xe.style(t,n,i,s)},t,a?i:void 0,a)}})}),xe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),xe.holdReady=function(e){e?xe.readyWait++:xe.ready(!0)},xe.isArray=Array.isArray,xe.parseJSON=JSON.parse,xe.nodeName=l,n=[],void 0!==(r=function(){return xe}.apply(t,n))&&(e.exports=r);var Qt=o.jQuery,Jt=o.$;return xe.noConflict=function(e){return o.$===xe&&(o.$=Jt),e&&o.jQuery===xe&&(o.jQuery=Qt),xe},a||(o.jQuery=o.$=xe),xe})}).call(t,n(6)(e))},function(e,t,n){"use strict";function r(){var e=(0,a.default)("#ta-attach-images-metabox"),t=e.find("#thirsty_image_holder");e.on("click","#ta_upload_media_manager",function(n){if(n.preventDefault(),r)return void r.open();var r=wp.media({title:(0,a.default)(this).data("uploader-title"),library:{type:"image"},button:{text:(0,a.default)(this).data("uploader-button-text"),close:!0},multiple:!0});r.on("select",function(){var n=r.state().get("selection"),o=(0,a.default)("input[name=post_ID]").val(),s=[],u=(0,a.default)("#thirsty_image_holder");e.find("#thirsty_image_holder").length<=0&&e.find(".inside").append("<div id='thirsty_image_holder'></div>"),n.map(function(e){e=e.toJSON(),s.push(e.id)}),s.length>0&&a.default.ajax({url:ajaxurl,type:"POST",data:{action:"ta_add_attachments_to_affiliate_link",attachment_ids:s,affiliate_link_id:o},dataType:"json"}).done(function(n){if("success"===n.status){var r=t.data("attachments"),o=void 0;"object"==(void 0===r?"undefined":i(r))&&(o=t.data("attachments").map(function(e){return parseInt(e,10)}),o=a.default.unique(o.concat(s)),t.data("attachments",o)),e.find("#thirsty_image_holder").append(n.added_attachments_markup)}else alert(n.error_msg),console.log(n)}).fail(function(e){alert(e),console.log("Failed to add attachments to affiliate link")}).always(function(){u.find(".thirsty-attached-image").length>0&&u.show(),tb_remove()})}),r.open()}),e.on("click",".thirsty-remove-img",function(){var e=(0,a.default)(this);if(e.hasClass("removing"))return!1;e.addClass("removing");var n=parseInt(e.attr("id")),r=(0,a.default)("input[name=post_ID]").val(),o=e.closest(".thirsty-attached-image"),s=(0,a.default)("#thirsty_image_holder");a.default.ajax({url:ajaxurl,type:"POST",data:{action:"ta_remove_attachment_to_affiliate_link",attachment_id:n,affiliate_link_id:r},dataType:"json"}).done(function(e){if("success"===e.status){var r=t.data("attachments"),a=void 0;"object"==(void 0===r?"undefined":i(r))&&(a=t.data("attachments").map(function(e){return parseInt(e,10)}),a=new Set(a),a.delete(n),t.data("attachments",Array.from(a))),o.fadeOut(300).delay(300).remove(),s.find(".thirsty-attached-image").length<=0&&s.hide()}else alert(e.error_msg),console.log(e)}).fail(function(e){alert("Failed to remove attachment from affiliate link"),console.log(e)})});var n=function(){var e=(0,a.default)(".media-modal-content ul.attachments li.attachment"),n=t.data("attachments"),r=void 0;"object"==(void 0===n?"undefined":i(n))&&(r=n.map(function(e){return parseInt(e,10)}),e.each(function(){var e=(0,a.default)(this),t=(0,a.default)(this).data("id");e.show(),a.default.inArray(t,r)>-1&&e.hide()}))};e.on("click","#ta_upload_media_manager",n),(0,a.default)("body").on("click",".media-modal-content .media-menu-item",n),(0,a.default)(document).on("DOMNodeInserted",function(e){var n=(0,a.default)(e.target),r=t.data("attachments"),o=void 0;n.hasClass("attachment")&&"object"==(void 0===r?"undefined":i(r))&&(o=n.data("id"),r=r.map(function(e){return parseInt(e,10)}),a.default.inArray(o,r)>-1&&n.remove())})}Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=r;var o=n(0),a=function(e){return e&&e.__esModule?e:{default:e}}(o)},function(e,t,n){"use strict";function r(){var e=(0,o.default)("#ta-urls-metabox");e.on("click","button.edit-ta-slug",function(){e.find(".cloaked-fields").hide(),e.find(".slug-fields").fadeIn(200)}),e.on("click","button.save-ta-slug",function(){var t=e.find("input#ta_slug").val(),n=e.find("input#ta_cloaked_url").val(),r=n.replace(/[^\/]+\/?$/g,"");/^([a-z0-9-]+)$/.test(t)?(t=""==t?n.match(/[^\/]+$/):t,e.find("input#ta_cloaked_url").val(r+t+"/"),e.find(".slug-fields").hide(),e.find(".cloaked-fields").fadeIn(200)):(0,o.default)("input#publish").click()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t,n){"use strict";function r(){function e(e,t){o.default.post(ajaxurl,{action:"ta_get_category_slug",term_id:e},function(n){"success"==n.status?r.append("<option value='"+e+"' data-slug='"+n.category_slug+"'>"+t+"</option>").trigger("change"):(alert(n.error_msg),console.log(n))},"json")}function t(){var e=n.find("input[type='checkbox']:checked"),t=[],i=[],a=void 0,s=void 0,u=void 0,l=void 0;if(!(e.length<1)){for(l=0;l<e.length;l++)u=(0,o.default)(e[l]).parent().text().trim(),t.push(u),i[u]=l;t=t.sort(function(e,t){return e=e.toLowerCase(),t=t.toLowerCase(),e>t?1:e<t?-1:0}),s=i[t[0]],a=(0,o.default)(e[s]),o.default.post(ajaxurl,{action:"ta_get_category_slug",term_id:a.val()},function(e){"success"==e.status?(r.find("option:first-child").data("slug",e.category_slug).attr("data-slug",e.category_slug),r.trigger("change")):(alert(e.error_msg),console.log(e))},"json")}}var n=(0,o.default)("#thirstylink-categorychecklist"),r=(0,o.default)("select[name='ta_category_slug']");n.on("change","input[type='checkbox']",function(){var n=(0,o.default)(this).val(),i=(0,o.default)(this).parent().text(),a=(0,o.default)(this).prop("checked");t(),a?e(n,i):(r.find("option[value='"+n+"']").remove(),r.trigger("change"))}),(0,o.default)(document).on("DOMNodeInserted","#thirstylink-categorychecklist",function(){var n=(0,o.default)("#thirstylink-categorychecklist li").first(),i=n.find("input[type='checkbox']").val(),a=n.find("label").text(),s=n.find("input[type='checkbox']").prop("checked");t(),s?e(i,a):r.find("option[value='"+i+"']").remove()}),(0,o.default)(document).on("change","select[name='ta_category_slug']",function(){var e=(0,o.default)(this),t=e.find("option:selected").data("slug"),n=e.data("home-link-prefix"),r=(0,o.default)("#ta_slug").val(),i=(0,o.default)("#ta_cloaked_url");(0,o.default)(this).find("option").length<=1?i.val(n+r+"/"):i.val(n+t+"/"+r+"/")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t,n){"use strict";function r(){var e=(0,o.default)("#ta-inserted-link-scanner-metabox");e.on("click","#inserted-link-scan-trigger",function(){var t=(0,o.default)(this),n=e.find(".inside"),r=n.find(".inserted-into-table table tbody"),i=n.find(".overlay"),a=n.find(".scanned-inserted-status .last-scanned"),s=(0,o.default)("input#post_ID").val();t.prop("disabled",!0),i.css("height",n.height()).show(),o.default.post(ajaxurl,{action:"ta_link_inserted_scanner",link_id:s},function(e){"success"==e.status?(r.html(e.results_markup),a.html(e.last_scanned)):(alert(e.error_msg),console.log(e)),t.prop("disabled",!1),i.hide()},"json")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t){},function(e,t,n){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(0),o=r(i),a=n(1),s=r(a),u=n(2),l=r(u),c=n(3),f=r(c),d=n(4),p=r(d);n(5),(0,o.default)(document).ready(function(){(0,s.default)(),(0,l.default)(),(0,f.default)(),(0,p.default)()})}]);
21
  *
22
  * Date: 2016-08-08
23
  */
24
+ function(e){function t(e,t,n,r){var i,o,a,s,u,c,d,p=t&&t.ownerDocument,h=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==h&&9!==h&&11!==h)return n;if(!r&&((t?t.ownerDocument||t:I)!==_&&A(t),t=t||_,L)){if(11!==h&&(u=ge.exec(e)))if(i=u[1]){if(9===h){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(p&&(a=p.getElementById(i))&&P(t,a)&&a.id===i)return n.push(a),n}else{if(u[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((i=u[3])&&b.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(i)),n}if(b.qsa&&!z[e+" "]&&(!O||!O.test(e))){if(1!==h)p=t,d=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(xe,be):t.setAttribute("id",s=M),c=k(e),o=c.length;o--;)c[o]="#"+s+" "+f(c[o]);d=c.join(","),p=ve.test(e)&&l(t.parentNode)||t}if(d)try{return Q.apply(n,p.querySelectorAll(d)),n}catch(e){}finally{s===M&&t.removeAttribute("id")}}}return j(e.replace(oe,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[M]=!0,e}function i(e){var t=_.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Te(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function l(e){return e&&void 0!==e.getElementsByTagName&&e}function c(){}function f(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=W++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,d=[R,s];if(u){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(f=t[M]||(t[M]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===R&&l[1]===s)return d[2]=l[2];if(c[o]=d,d[2]=e(t,n,u))return!0}return!1}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function h(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function v(e,t,n,i,o,a){return i&&!i[M]&&(i=v(i)),o&&!o[M]&&(o=v(o,a)),r(function(r,a,s,u){var l,c,f,d=[],p=[],v=a.length,m=r||h(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?m:g(m,d,e,s,u),x=n?o||(r?e:v||i)?[]:a:y;if(n&&n(y,x,s,u),i)for(l=g(x,p),i(l,[],s,u),c=l.length;c--;)(f=l[c])&&(x[p[c]]=!(y[p[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(y[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?K(r,f):d[c])>-1&&(r[l]=!(a[l]=f))}}else x=g(x===a?x.splice(v,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function m(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return K(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==E)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s<i;s++)if(n=w.relative[e[s].type])c=[d(p(c),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[M]){for(r=++s;r<i&&!w.relative[e[r].type];r++);return v(s>1&&p(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(oe,"$1"),n,s<r&&m(e.slice(s,r)),r<i&&m(e=e.slice(r)),r<i&&f(e))}c.push(n)}return p(c)}function y(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",v=r&&[],m=[],y=E,x=r||o&&w.find.TAG("*",l),b=R+=null==y?1:Math.random()||.1,T=x.length;for(l&&(E=a===_||a||l);h!==T&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===_||(A(c),s=!L);d=e[f++];)if(d(c,a||_,s)){u.push(c);break}l&&(R=b)}i&&((c=!d&&c)&&p--,r&&v.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(v,m,a,s);if(r){if(p>0)for(;h--;)v[h]||m[h]||(m[h]=G.call(u));m=g(m)}Q.apply(u,m),l&&!r&&m.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(R=b,E=y),v};return i?r(a):a}var x,b,w,T,C,k,S,j,E,N,D,A,_,q,L,O,H,F,P,M="sizzle"+1*new Date,I=e.document,R=0,W=0,$=n(),B=n(),z=n(),X=function(e,t){return e===t&&(D=!0),0},U={}.hasOwnProperty,V=[],G=V.pop,Y=V.push,Q=V.push,J=V.slice,K=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},Z="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ee="[\\x20\\t\\r\\n\\f]",te="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",ne="\\["+ee+"*("+te+")(?:"+ee+"*([*^$|!~]?=)"+ee+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+te+"))|)"+ee+"*\\]",re=":("+te+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ne+")*)|.*)\\)|)",ie=new RegExp(ee+"+","g"),oe=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g"),ae=new RegExp("^"+ee+"*,"+ee+"*"),se=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),ue=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),le=new RegExp(re),ce=new RegExp("^"+te+"$"),fe={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+Z+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,he=/^[^{]+\{\s*\[native \w/,ge=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,me=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,be=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},we=function(){A()},Te=d(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{Q.apply(V=J.call(I.childNodes),I.childNodes),V[I.childNodes.length].nodeType}catch(e){Q={apply:V.length?function(e,t){Y.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}b=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},A=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:I;return r!==_&&9===r.nodeType&&r.documentElement?(_=r,q=_.documentElement,L=!C(_),I!==_&&(n=_.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",we,!1):n.attachEvent&&n.attachEvent("onunload",we)),b.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),b.getElementsByTagName=i(function(e){return e.appendChild(_.createComment("")),!e.getElementsByTagName("*").length}),b.getElementsByClassName=he.test(_.getElementsByClassName),b.getById=i(function(e){return q.appendChild(e).id=M,!_.getElementsByName||!_.getElementsByName(M).length}),b.getById?(w.filter.ID=function(e){var t=e.replace(me,ye);return function(e){return e.getAttribute("id")===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&L){var n=t.getElementById(e);return n?[n]:[]}}):(w.filter.ID=function(e){var t=e.replace(me,ye);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&L){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),w.find.TAG=b.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):b.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=b.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&L)return t.getElementsByClassName(e)},H=[],O=[],(b.qsa=he.test(_.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="<a id='"+M+"'></a><select id='"+M+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&O.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||O.push("\\["+ee+"*(?:value|"+Z+")"),e.querySelectorAll("[id~="+M+"-]").length||O.push("~="),e.querySelectorAll(":checked").length||O.push(":checked"),e.querySelectorAll("a#"+M+"+*").length||O.push(".#.+[+~]")}),i(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=_.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&O.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&O.push(":enabled",":disabled"),q.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.push(",.*:")})),(b.matchesSelector=he.test(F=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){b.disconnectedMatch=F.call(e,"*"),F.call(e,"[s!='']:x"),H.push("!=",re)}),O=O.length&&new RegExp(O.join("|")),H=H.length&&new RegExp(H.join("|")),t=he.test(q.compareDocumentPosition),P=t||he.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},X=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!b.sortDetached&&t.compareDocumentPosition(e)===n?e===_||e.ownerDocument===I&&P(I,e)?-1:t===_||t.ownerDocument===I&&P(I,t)?1:N?K(N,e)-K(N,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===_?-1:t===_?1:i?-1:o?1:N?K(N,e)-K(N,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===I?-1:u[r]===I?1:0},_):_},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==_&&A(e),n=n.replace(ue,"='$1']"),b.matchesSelector&&L&&!z[n+" "]&&(!H||!H.test(n))&&(!O||!O.test(n)))try{var r=F.call(e,n);if(r||b.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,_,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==_&&A(e),P(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==_&&A(e);var n=w.attrHandle[t.toLowerCase()],r=n&&U.call(w.attrHandle,t.toLowerCase())?n(e,t,!L):void 0;return void 0!==r?r:b.attributes||!L?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(xe,be)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(D=!b.detectDuplicates,N=!b.sortStable&&e.slice(0),e.sort(X),D){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return N=null,e},T=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=T(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=T(t);return n},w=t.selectors={cacheLength:50,createPseudo:r,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(me,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(me,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return fe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&le.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(me,ye).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(v){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===m:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(d=v,f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===R&&l[1],x=p&&l[2],d=p&&v.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[R,p,x];break}}else if(y&&(d=t,f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===R&&l[1],x=p),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==m:1!==d.nodeType)||!++x||(y&&(f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[R,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=w.pseudos[e]||w.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[M]?o(n):o.length>1?(i=[e,e,"",n],w.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=K(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(oe,"$1"));return i[M]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(me,ye),function(t){return(t.textContent||t.innerText||T(t)).indexOf(e)>-1}}),lang:r(function(e){return ce.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(me,ye).toLowerCase(),function(t){var n;do{if(n=L?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===_.activeElement&&(!_.hasFocus||_.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:s(!1),disabled:s(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[x]=function(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}(x);for(x in{submit:!0,reset:!0})w.pseudos[x]=function(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}(x);return c.prototype=w.filters=w.pseudos,w.setFilters=new c,k=t.tokenize=function(e,n){var r,i,o,a,s,u,l,c=B[e+" "];if(c)return n?0:c.slice(0);for(s=e,u=[],l=w.preFilter;s;){r&&!(i=ae.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=se.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(oe," ")}),s=s.slice(r.length));for(a in w.filter)!(i=fe[a].exec(s))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):B(e,u).slice(0)},S=t.compile=function(e,t){var n,r=[],i=[],o=z[e+" "];if(!o){for(t||(t=k(e)),n=t.length;n--;)o=m(t[n]),o[M]?r.push(o):i.push(o);o=z(e,y(i,r)),o.selector=e}return o},j=t.select=function(e,t,n,r){var i,o,a,s,u,c="function"==typeof e&&e,d=!r&&k(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&L&&w.relative[o[1].type]){if(!(t=(w.find.ID(a.matches[0].replace(me,ye),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=fe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((u=w.find[s])&&(r=u(a.matches[0].replace(me,ye),ve.test(o[0].type)&&l(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&f(o)))return Q.apply(n,r),n;break}}return(c||S(e,d))(r,t,!L,n,!t||ve.test(e)&&l(t.parentNode)||t),n},b.sortStable=M.split("").sort(X).join("")===M,b.detectDuplicates=!!D,A(),b.sortDetached=i(function(e){return 1&e.compareDocumentPosition(_.createElement("fieldset"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),b.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(Z,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(o);xe.find=ke,xe.expr=ke.selectors,xe.expr[":"]=xe.expr.pseudos,xe.uniqueSort=xe.unique=ke.uniqueSort,xe.text=ke.getText,xe.isXMLDoc=ke.isXML,xe.contains=ke.contains,xe.escapeSelector=ke.escape;var Se=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&xe(e).is(n))break;r.push(e)}return r},je=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Ee=xe.expr.match.needsContext,Ne=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,De=/^.[^:#\[\.,]*$/;xe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?xe.find.matchesSelector(r,e)?[r]:[]:xe.find.matches(e,xe.grep(t,function(e){return 1===e.nodeType}))},xe.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(xe(e).filter(function(){for(t=0;t<r;t++)if(xe.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)xe.find(e,i[t],n);return r>1?xe.uniqueSort(n):n},filter:function(e){return this.pushStack(c(this,e||[],!1))},not:function(e){return this.pushStack(c(this,e||[],!0))},is:function(e){return!!c(this,"string"==typeof e&&Ee.test(e)?xe(e):e||[],!1).length}});var Ae,_e=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(xe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ae,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:_e.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof xe?t[0]:t,xe.merge(this,xe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:se,!0)),Ne.test(r[1])&&xe.isPlainObject(t))for(r in t)xe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=se.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):xe.isFunction(e)?void 0!==n.ready?n.ready(e):e(xe):xe.makeArray(e,this)}).prototype=xe.fn,Ae=xe(se);var qe=/^(?:parents|prev(?:Until|All))/,Le={children:!0,contents:!0,next:!0,prev:!0};xe.fn.extend({has:function(e){var t=xe(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(xe.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&xe(e);if(!Ee.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&xe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?xe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?de.call(xe(e),this[0]):de.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(xe.uniqueSort(xe.merge(this.get(),xe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),xe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Se(e,"parentNode")},parentsUntil:function(e,t,n){return Se(e,"parentNode",n)},next:function(e){return f(e,"nextSibling")},prev:function(e){return f(e,"previousSibling")},nextAll:function(e){return Se(e,"nextSibling")},prevAll:function(e){return Se(e,"previousSibling")},nextUntil:function(e,t,n){return Se(e,"nextSibling",n)},prevUntil:function(e,t,n){return Se(e,"previousSibling",n)},siblings:function(e){return je((e.parentNode||{}).firstChild,e)},children:function(e){return je(e.firstChild)},contents:function(e){return l(e,"iframe")?e.contentDocument:(l(e,"template")&&(e=e.content||e),xe.merge([],e.childNodes))}},function(e,t){xe.fn[e]=function(n,r){var i=xe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=xe.filter(r,i)),this.length>1&&(Le[e]||xe.uniqueSort(i),qe.test(e)&&i.reverse()),this.pushStack(i)}});var Oe=/[^\x20\t\r\n\f]+/g;xe.Callbacks=function(e){e="string"==typeof e?d(e):xe.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){xe.each(n,function(n,r){xe.isFunction(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==xe.type(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return xe.each(arguments,function(e,t){for(var n;(n=xe.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?xe.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},xe.extend({Deferred:function(e){var t=[["notify","progress",xe.Callbacks("memory"),xe.Callbacks("memory"),2],["resolve","done",xe.Callbacks("once memory"),xe.Callbacks("once memory"),0,"resolved"],["reject","fail",xe.Callbacks("once memory"),xe.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return xe.Deferred(function(n){xe.each(t,function(t,r){var i=xe.isFunction(e[r[4]])&&e[r[4]];a[r[1]](function(){var e=i&&i.apply(this,arguments);e&&xe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(e,n,r){function a(e,t,n,r){return function(){var u=this,l=arguments,c=function(){var o,c;if(!(e<s)){if((o=n.apply(u,l))===t.promise())throw new TypeError("Thenable self-resolution");c=o&&("object"===(void 0===o?"undefined":i(o))||"function"==typeof o)&&o.then,xe.isFunction(c)?r?c.call(o,a(s,t,p,r),a(s,t,h,r)):(s++,c.call(o,a(s,t,p,r),a(s,t,h,r),a(s,t,p,t.notifyWith))):(n!==p&&(u=void 0,l=[o]),(r||t.resolveWith)(u,l))}},f=r?c:function(){try{c()}catch(r){xe.Deferred.exceptionHook&&xe.Deferred.exceptionHook(r,f.stackTrace),e+1>=s&&(n!==h&&(u=void 0,l=[r]),t.rejectWith(u,l))}};e?f():(xe.Deferred.getStackHook&&(f.stackTrace=xe.Deferred.getStackHook()),o.setTimeout(f))}}var s=0;return xe.Deferred(function(i){t[0][3].add(a(0,i,xe.isFunction(r)?r:p,i.notifyWith)),t[1][3].add(a(0,i,xe.isFunction(e)?e:p)),t[2][3].add(a(0,i,xe.isFunction(n)?n:h))}).promise()},promise:function(e){return null!=e?xe.extend(e,r):r}},a={};return xe.each(t,function(e,i){var o=i[2],s=i[5];r[i[1]]=o.add,s&&o.add(function(){n=s},t[3-e][2].disable,t[0][2].lock),o.add(i[3].fire),a[i[0]]=function(){return a[i[0]+"With"](this===a?void 0:this,arguments),this},a[i[0]+"With"]=o.fireWith}),r.promise(a),e&&e.call(a,a),a},when:function(e){var t=arguments.length,n=t,r=Array(n),i=le.call(arguments),o=xe.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?le.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(g(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||xe.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)g(i[n],a(n),o.reject);return o.promise()}});var He=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;xe.Deferred.exceptionHook=function(e,t){o.console&&o.console.warn&&e&&He.test(e.name)&&o.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},xe.readyException=function(e){o.setTimeout(function(){throw e})};var Fe=xe.Deferred();xe.fn.ready=function(e){return Fe.then(e).catch(function(e){xe.readyException(e)}),this},xe.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--xe.readyWait:xe.isReady)||(xe.isReady=!0,!0!==e&&--xe.readyWait>0||Fe.resolveWith(se,[xe]))}}),xe.ready.then=Fe.then,"complete"===se.readyState||"loading"!==se.readyState&&!se.documentElement.doScroll?o.setTimeout(xe.ready):(se.addEventListener("DOMContentLoaded",v),o.addEventListener("load",v));var Pe=function e(t,n,r,i,o,a,s){var u=0,l=t.length,c=null==r;if("object"===xe.type(r)){o=!0;for(u in r)e(t,n,u,r[u],!0,a,s)}else if(void 0!==i&&(o=!0,xe.isFunction(i)||(s=!0),c&&(s?(n.call(t,i),n=null):(c=n,n=function(e,t,n){return c.call(xe(e),n)})),n))for(;u<l;u++)n(t[u],r,s?i:i.call(t[u],u,n(t[u],r)));return o?t:c?n.call(t):l?n(t[0],r):a},Me=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};m.uid=1,m.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Me(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[xe.camelCase(t)]=n;else for(r in t)i[xe.camelCase(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][xe.camelCase(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){Array.isArray(t)?t=t.map(xe.camelCase):(t=xe.camelCase(t),t=t in r?[t]:t.match(Oe)||[]),n=t.length;for(;n--;)delete r[t[n]]}(void 0===t||xe.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!xe.isEmptyObject(t)}};var Ie=new m,Re=new m,We=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$e=/[A-Z]/g;xe.extend({hasData:function(e){return Re.hasData(e)||Ie.hasData(e)},data:function(e,t,n){return Re.access(e,t,n)},removeData:function(e,t){Re.remove(e,t)},_data:function(e,t,n){return Ie.access(e,t,n)},_removeData:function(e,t){Ie.remove(e,t)}}),xe.fn.extend({data:function(e,t){var n,r,o,a=this[0],s=a&&a.attributes;if(void 0===e){if(this.length&&(o=Re.get(a),1===a.nodeType&&!Ie.get(a,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=xe.camelCase(r.slice(5)),x(a,r,o[r])));Ie.set(a,"hasDataAttrs",!0)}return o}return"object"===(void 0===e?"undefined":i(e))?this.each(function(){Re.set(this,e)}):Pe(this,function(t){var n;if(a&&void 0===t){if(void 0!==(n=Re.get(a,e)))return n;if(void 0!==(n=x(a,e)))return n}else this.each(function(){Re.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Re.remove(this,e)})}}),xe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Ie.get(e,t),n&&(!r||Array.isArray(n)?r=Ie.access(e,t,xe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=xe.queue(e,t),r=n.length,i=n.shift(),o=xe._queueHooks(e,t),a=function(){xe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Ie.get(e,n)||Ie.access(e,n,{empty:xe.Callbacks("once memory").add(function(){Ie.remove(e,[t+"queue",n])})})}}),xe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?xe.queue(this[0],e):void 0===t?this:this.each(function(){var n=xe.queue(this,e,t);xe._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&xe.dequeue(this,e)})},dequeue:function(e){return this.each(function(){xe.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=xe.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=Ie.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var Be=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ze=new RegExp("^(?:([+-])=|)("+Be+")([a-z%]*)$","i"),Xe=["Top","Right","Bottom","Left"],Ue=function(e,t){return e=t||e,"none"===e.style.display||""===e.style.display&&xe.contains(e.ownerDocument,e)&&"none"===xe.css(e,"display")},Ve=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i},Ge={};xe.fn.extend({show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ue(this)?xe(this).show():xe(this).hide()})}});var Ye=/^(?:checkbox|radio)$/i,Qe=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Je=/^$|\/(?:java|ecma)script/i,Ke={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ke.optgroup=Ke.option,Ke.tbody=Ke.tfoot=Ke.colgroup=Ke.caption=Ke.thead,Ke.th=Ke.td;var Ze=/<|&#?\w+;/;!function(){var e=se.createDocumentFragment(),t=e.appendChild(se.createElement("div")),n=se.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),ye.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",ye.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var et=se.documentElement,tt=/^key/,nt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rt=/^([^.]*)(?:\.(.+)|)/;xe.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Ie.get(e);if(v)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&xe.find.matchesSelector(et,i),n.guid||(n.guid=xe.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(t){return void 0!==xe&&xe.event.triggered!==t.type?xe.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Oe)||[""],l=t.length;l--;)s=rt.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p&&(f=xe.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=xe.event.special[p]||{},c=xe.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&xe.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||(d=u[p]=[],d.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),xe.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Ie.hasData(e)&&Ie.get(e);if(v&&(u=v.events)){for(t=(t||"").match(Oe)||[""],l=t.length;l--;)if(s=rt.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p){for(f=xe.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=u[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||xe.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)xe.event.remove(e,p+t[l],n,r,!0);xe.isEmptyObject(u)&&Ie.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=xe.event.fix(e),u=new Array(arguments.length),l=(Ie.get(this,"events")||{})[s.type]||[],c=xe.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){for(a=xe.event.handlers.call(this,s,l),t=0;(i=a[t++])&&!s.isPropagationStopped();)for(s.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((xe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)r=t[n],i=r.selector+" ",void 0===a[i]&&(a[i]=r.needsContext?xe(i,this).index(l)>-1:xe.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(xe.Event.prototype,e,{enumerable:!0,configurable:!0,get:xe.isFunction(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[xe.expando]?e:new xe.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==N()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===N()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&l(this,"input"))return this.click(),!1},_default:function(e){return l(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},xe.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},xe.Event=function(e,t){if(!(this instanceof xe.Event))return new xe.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?j:E,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&xe.extend(this,t),this.timeStamp=e&&e.timeStamp||xe.now(),this[xe.expando]=!0},xe.Event.prototype={constructor:xe.Event,isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=j,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=j,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=j,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},xe.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&tt.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&nt.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},xe.event.addProp),xe.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){xe.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||xe.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),xe.fn.extend({on:function(e,t,n,r){return D(this,e,t,n,r)},one:function(e,t,n,r){return D(this,e,t,n,r,1)},off:function(e,t,n){var r,o;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,xe(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"===(void 0===e?"undefined":i(e))){for(o in e)this.off(o,t,e[o]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=E),this.each(function(){xe.event.remove(this,e,n,t)})}});var it=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ot=/<script|<style|<link/i,at=/checked\s*(?:[^=]|=\s*.checked.)/i,st=/^true\/(.*)/,ut=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;xe.extend({htmlPrefilter:function(e){return e.replace(it,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=xe.contains(e.ownerDocument,e);if(!(ye.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||xe.isXMLDoc(e)))for(a=C(s),o=C(e),r=0,i=o.length;r<i;r++)O(o[r],a[r]);if(t)if(n)for(o=o||C(e),a=a||C(s),r=0,i=o.length;r<i;r++)L(o[r],a[r]);else L(e,s);return a=C(s,"script"),a.length>0&&k(a,!u&&C(e,"script")),s},cleanData:function(e){for(var t,n,r,i=xe.event.special,o=0;void 0!==(n=e[o]);o++)if(Me(n)){if(t=n[Ie.expando]){if(t.events)for(r in t.events)i[r]?xe.event.remove(n,r):xe.removeEvent(n,r,t.handle);n[Ie.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),xe.fn.extend({detach:function(e){return F(this,e,!0)},remove:function(e){return F(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?xe.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return H(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){A(this,e).appendChild(e)}})},prepend:function(){return H(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=A(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return H(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return H(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(xe.cleanData(C(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return xe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ot.test(e)&&!Ke[(Qe.exec(e)||["",""])[1].toLowerCase()]){e=xe.htmlPrefilter(e);try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(xe.cleanData(C(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return H(this,arguments,function(t){var n=this.parentNode;xe.inArray(this,e)<0&&(xe.cleanData(C(this)),n&&n.replaceChild(t,this))},e)}}),xe.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){xe.fn[e]=function(e){for(var n,r=[],i=xe(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),xe(i[a])[t](n),fe.apply(r,n.get());return this.pushStack(r)}});var lt=/^margin/,ct=new RegExp("^("+Be+")(?!px)[a-z%]+$","i"),ft=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=o),t.getComputedStyle(e)};!function(){function e(){if(s){s.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",et.appendChild(a);var e=o.getComputedStyle(s);t="1%"!==e.top,i="2px"===e.marginLeft,n="4px"===e.width,s.style.marginRight="50%",r="4px"===e.marginRight,et.removeChild(a),s=null}}var t,n,r,i,a=se.createElement("div"),s=se.createElement("div");s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",ye.clearCloneStyle="content-box"===s.style.backgroundClip,a.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.appendChild(s),xe.extend(ye,{pixelPosition:function(){return e(),t},boxSizingReliable:function(){return e(),n},pixelMarginRight:function(){return e(),r},reliableMarginLeft:function(){return e(),i}}))}();var dt=/^(none|table(?!-c[ea]).+)/,pt=/^--/,ht={position:"absolute",visibility:"hidden",display:"block"},gt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","Moz","ms"],mt=se.createElement("div").style;xe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=P(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=xe.camelCase(t),l=pt.test(t),c=e.style;if(l||(t=R(u)),s=xe.cssHooks[t]||xe.cssHooks[u],void 0===n)return s&&"get"in s&&void 0!==(o=s.get(e,!1,r))?o:c[t];a=void 0===n?"undefined":i(n),"string"===a&&(o=ze.exec(n))&&o[1]&&(n=b(e,t,o),a="number"),null!=n&&n===n&&("number"===a&&(n+=o&&o[3]||(xe.cssNumber[u]?"":"px")),ye.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=xe.camelCase(t);return pt.test(t)||(t=R(s)),a=xe.cssHooks[t]||xe.cssHooks[s],a&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=P(e,t,r)),"normal"===i&&t in gt&&(i=gt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),xe.each(["height","width"],function(e,t){xe.cssHooks[t]={get:function(e,n,r){if(n)return!dt.test(xe.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?B(e,t,r):Ve(e,ht,function(){return B(e,t,r)})},set:function(e,n,r){var i,o=r&&ft(e),a=r&&$(e,t,r,"border-box"===xe.css(e,"boxSizing",!1,o),o);return a&&(i=ze.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=xe.css(e,t)),W(e,n,a)}}}),xe.cssHooks.marginLeft=M(ye.reliableMarginLeft,function(e,t){if(t)return(parseFloat(P(e,"marginLeft"))||e.getBoundingClientRect().left-Ve(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),xe.each({margin:"",padding:"",border:"Width"},function(e,t){xe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Xe[r]+t]=o[r]||o[r-2]||o[0];return i}},lt.test(e)||(xe.cssHooks[e+t].set=W)}),xe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=ft(e),i=t.length;a<i;a++)o[t[a]]=xe.css(e,t[a],!1,r);return o}return void 0!==n?xe.style(e,t,n):xe.css(e,t)},e,t,arguments.length>1)}}),xe.Tween=z,z.prototype={constructor:z,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||xe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(xe.cssNumber[n]?"":"px")},cur:function(){var e=z.propHooks[this.prop];return e&&e.get?e.get(this):z.propHooks._default.get(this)},run:function(e){var t,n=z.propHooks[this.prop];return this.options.duration?this.pos=t=xe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):z.propHooks._default.set(this),this}},z.prototype.init.prototype=z.prototype,z.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=xe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){xe.fx.step[e.prop]?xe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[xe.cssProps[e.prop]]&&!xe.cssHooks[e.prop]?e.elem[e.prop]=e.now:xe.style(e.elem,e.prop,e.now+e.unit)}}},z.propHooks.scrollTop=z.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},xe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},xe.fx=z.prototype.init,xe.fx.step={};var yt,xt,bt=/^(?:toggle|show|hide)$/,wt=/queueHooks$/;xe.Animation=xe.extend(J,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return b(n.elem,e,ze.exec(t),n),n}]},tweener:function(e,t){xe.isFunction(e)?(t=e,e=["*"]):e=e.match(Oe);for(var n,r=0,i=e.length;r<i;r++)n=e[r],J.tweeners[n]=J.tweeners[n]||[],J.tweeners[n].unshift(t)},prefilters:[Y],prefilter:function(e,t){t?J.prefilters.unshift(e):J.prefilters.push(e)}}),xe.speed=function(e,t,n){var r=e&&"object"===(void 0===e?"undefined":i(e))?xe.extend({},e):{complete:n||!n&&t||xe.isFunction(e)&&e,duration:e,easing:n&&t||t&&!xe.isFunction(t)&&t};return xe.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in xe.fx.speeds?r.duration=xe.fx.speeds[r.duration]:r.duration=xe.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){xe.isFunction(r.old)&&r.old.call(this),r.queue&&xe.dequeue(this,r.queue)},r},xe.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ue).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=xe.isEmptyObject(e),o=xe.speed(t,n,r),a=function(){var t=J(this,xe.extend({},e),o);(i||Ie.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=xe.timers,a=Ie.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&wt.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||xe.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=Ie.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=xe.timers,a=r?r.length:0;for(n.finish=!0,xe.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),xe.each(["toggle","show","hide"],function(e,t){var n=xe.fn[t];xe.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(V(t,!0),e,r,i)}}),xe.each({slideDown:V("show"),slideUp:V("hide"),slideToggle:V("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){xe.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),xe.timers=[],xe.fx.tick=function(){var e,t=0,n=xe.timers;for(yt=xe.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||xe.fx.stop(),yt=void 0},xe.fx.timer=function(e){xe.timers.push(e),xe.fx.start()},xe.fx.interval=13,xe.fx.start=function(){xt||(xt=!0,X())},xe.fx.stop=function(){xt=null},xe.fx.speeds={slow:600,fast:200,_default:400},xe.fn.delay=function(e,t){return e=xe.fx?xe.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=o.setTimeout(t,e);n.stop=function(){o.clearTimeout(r)}})},function(){var e=se.createElement("input"),t=se.createElement("select"),n=t.appendChild(se.createElement("option"));e.type="checkbox",ye.checkOn=""!==e.value,ye.optSelected=n.selected,e=se.createElement("input"),e.value="t",e.type="radio",ye.radioValue="t"===e.value}();var Tt,Ct=xe.expr.attrHandle;xe.fn.extend({attr:function(e,t){return Pe(this,xe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){xe.removeAttr(this,e)})}}),xe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?xe.prop(e,t,n):(1===o&&xe.isXMLDoc(e)||(i=xe.attrHooks[t.toLowerCase()]||(xe.expr.match.bool.test(t)?Tt:void 0)),void 0!==n?null===n?void xe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=xe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!ye.radioValue&&"radio"===t&&l(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Oe);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Tt={set:function(e,t,n){return!1===t?xe.removeAttr(e,n):e.setAttribute(n,n),n}},xe.each(xe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ct[t]||xe.find.attr;Ct[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=Ct[a],Ct[a]=i,i=null!=n(e,t,r)?a:null,Ct[a]=o),i}});var kt=/^(?:input|select|textarea|button)$/i,St=/^(?:a|area)$/i;xe.fn.extend({prop:function(e,t){return Pe(this,xe.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[xe.propFix[e]||e]})}}),xe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&xe.isXMLDoc(e)||(t=xe.propFix[t]||t,i=xe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=xe.find.attr(e,"tabindex");return t?parseInt(t,10):kt.test(e.nodeName)||St.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ye.optSelected||(xe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),xe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){xe.propFix[this.toLowerCase()]=this}),xe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(xe.isFunction(e))return this.each(function(t){xe(this).addClass(e.call(this,t,Z(this)))});if("string"==typeof e&&e)for(t=e.match(Oe)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&" "+K(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=K(r),i!==s&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(xe.isFunction(e))return this.each(function(t){xe(this).removeClass(e.call(this,t,Z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Oe)||[];n=this[u++];)if(i=Z(n),r=1===n.nodeType&&" "+K(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=K(r),i!==s&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=void 0===e?"undefined":i(e);return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):xe.isFunction(e)?this.each(function(n){xe(this).toggleClass(e.call(this,n,Z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=xe(this),o=e.match(Oe)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=Z(this),t&&Ie.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Ie.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+K(Z(n))+" ").indexOf(t)>-1)return!0;return!1}});var jt=/\r/g;xe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=xe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,xe(this).val()):e,null==i?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=xe.map(i,function(e){return null==e?"":e+""})),(t=xe.valHooks[this.type]||xe.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=xe.valHooks[i.type]||xe.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(jt,""):null==n?"":n)}}}),xe.extend({valHooks:{option:{get:function(e){var t=xe.find.attr(e,"value");return null!=t?t:K(xe.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(n=i[r],(n.selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!l(n.parentNode,"optgroup"))){if(t=xe(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=xe.makeArray(t),a=i.length;a--;)r=i[a],(r.selected=xe.inArray(xe.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),xe.each(["radio","checkbox"],function(){xe.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=xe.inArray(xe(e).val(),t)>-1}},ye.checkOn||(xe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=/^(?:focusinfocus|focusoutblur)$/;xe.extend(xe.event,{trigger:function(e,t,n,r){var a,s,u,l,c,f,d,p=[n||se],h=ge.call(e,"type")?e.type:e,g=ge.call(e,"namespace")?e.namespace.split("."):[];if(s=u=n=n||se,3!==n.nodeType&&8!==n.nodeType&&!Et.test(h+xe.event.triggered)&&(h.indexOf(".")>-1&&(g=h.split("."),h=g.shift(),g.sort()),c=h.indexOf(":")<0&&"on"+h,e=e[xe.expando]?e:new xe.Event(h,"object"===(void 0===e?"undefined":i(e))&&e),e.isTrigger=r?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:xe.makeArray(t,[e]),d=xe.event.special[h]||{},r||!d.trigger||!1!==d.trigger.apply(n,t))){if(!r&&!d.noBubble&&!xe.isWindow(n)){for(l=d.delegateType||h,Et.test(l+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),u=s;u===(n.ownerDocument||se)&&p.push(u.defaultView||u.parentWindow||o)}for(a=0;(s=p[a++])&&!e.isPropagationStopped();)e.type=a>1?l:d.bindType||h,f=(Ie.get(s,"events")||{})[e.type]&&Ie.get(s,"handle"),f&&f.apply(s,t),(f=c&&s[c])&&f.apply&&Me(s)&&(e.result=f.apply(s,t),!1===e.result&&e.preventDefault());return e.type=h,r||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(p.pop(),t)||!Me(n)||c&&xe.isFunction(n[h])&&!xe.isWindow(n)&&(u=n[c],u&&(n[c]=null),xe.event.triggered=h,n[h](),xe.event.triggered=void 0,u&&(n[c]=u)),e.result}},simulate:function(e,t,n){var r=xe.extend(new xe.Event,n,{type:e,isSimulated:!0});xe.event.trigger(r,null,t)}}),xe.fn.extend({trigger:function(e,t){return this.each(function(){xe.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return xe.event.trigger(e,t,n,!0)}}),xe.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){xe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),xe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ye.focusin="onfocusin"in o,ye.focusin||xe.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){xe.event.simulate(t,e.target,xe.event.fix(e))};xe.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Ie.access(r,t);i||r.addEventListener(e,n,!0),Ie.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Ie.access(r,t)-1;i?Ie.access(r,t,i):(r.removeEventListener(e,n,!0),Ie.remove(r,t))}}});var Nt=o.location,Dt=xe.now(),At=/\?/;xe.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new o.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||xe.error("Invalid XML: "+e),t};var _t=/\[\]$/,qt=/\r?\n/g,Lt=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;xe.param=function(e,t){var n,r=[],i=function(e,t){var n=xe.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!xe.isPlainObject(e))xe.each(e,function(){i(this.name,this.value)});else for(n in e)ee(n,e[n],t,i);return r.join("&")},xe.fn.extend({serialize:function(){return xe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=xe.prop(this,"elements");return e?xe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!xe(this).is(":disabled")&&Ot.test(this.nodeName)&&!Lt.test(e)&&(this.checked||!Ye.test(e))}).map(function(e,t){var n=xe(this).val();return null==n?null:Array.isArray(n)?xe.map(n,function(e){return{name:t.name,value:e.replace(qt,"\r\n")}}):{name:t.name,value:n.replace(qt,"\r\n")}}).get()}});var Ht=/%20/g,Ft=/#.*$/,Pt=/([?&])_=[^&]*/,Mt=/^(.*?):[ \t]*([^\r\n]*)$/gm,It=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Rt=/^(?:GET|HEAD)$/,Wt=/^\/\//,$t={},Bt={},zt="*/".concat("*"),Xt=se.createElement("a");Xt.href=Nt.href,xe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Nt.href,type:"GET",isLocal:It.test(Nt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":xe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?re(re(e,xe.ajaxSettings),t):re(xe.ajaxSettings,e)},ajaxPrefilter:te($t),ajaxTransport:te(Bt),ajax:function(e,t){function n(e,t,n,i){var u,c,p,h,w,T=t;f||(f=!0,l&&o.clearTimeout(l),r=void 0,s=i||"",k.readyState=e>0?4:0,u=e>=200&&e<300||304===e,n&&(h=ie(g,k,n)),h=oe(g,h,k,u),u?(g.ifModified&&(w=k.getResponseHeader("Last-Modified"),w&&(xe.lastModified[a]=w),(w=k.getResponseHeader("etag"))&&(xe.etag[a]=w)),204===e||"HEAD"===g.type?T="nocontent":304===e?T="notmodified":(T=h.state,c=h.data,p=h.error,u=!p)):(p=T,!e&&T||(T="error",e<0&&(e=0))),k.status=e,k.statusText=(t||T)+"",u?y.resolveWith(v,[c,T,k]):y.rejectWith(v,[k,T,p]),k.statusCode(b),b=void 0,d&&m.trigger(u?"ajaxSuccess":"ajaxError",[k,g,u?c:p]),x.fireWith(v,[k,T]),d&&(m.trigger("ajaxComplete",[k,g]),--xe.active||xe.event.trigger("ajaxStop")))}"object"===(void 0===e?"undefined":i(e))&&(t=e,e=void 0),t=t||{};var r,a,s,u,l,c,f,d,p,h,g=xe.ajaxSetup({},t),v=g.context||g,m=g.context&&(v.nodeType||v.jquery)?xe(v):xe.event,y=xe.Deferred(),x=xe.Callbacks("once memory"),b=g.statusCode||{},w={},T={},C="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(f){if(!u)for(u={};t=Mt.exec(s);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return f?s:null},setRequestHeader:function(e,t){return null==f&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==f&&(g.mimeType=e),this},statusCode:function(e){var t;if(e)if(f)k.always(e[k.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||C;return r&&r.abort(t),n(0,t),this}};if(y.promise(k),g.url=((e||g.url||Nt.href)+"").replace(Wt,Nt.protocol+"//"),g.type=t.method||t.type||g.method||g.type,g.dataTypes=(g.dataType||"*").toLowerCase().match(Oe)||[""],null==g.crossDomain){c=se.createElement("a");try{c.href=g.url,c.href=c.href,g.crossDomain=Xt.protocol+"//"+Xt.host!=c.protocol+"//"+c.host}catch(e){g.crossDomain=!0}}if(g.data&&g.processData&&"string"!=typeof g.data&&(g.data=xe.param(g.data,g.traditional)),ne($t,g,t,k),f)return k;d=xe.event&&g.global,d&&0==xe.active++&&xe.event.trigger("ajaxStart"),g.type=g.type.toUpperCase(),g.hasContent=!Rt.test(g.type),a=g.url.replace(Ft,""),g.hasContent?g.data&&g.processData&&0===(g.contentType||"").indexOf("application/x-www-form-urlencoded")&&(g.data=g.data.replace(Ht,"+")):(h=g.url.slice(a.length),g.data&&(a+=(At.test(a)?"&":"?")+g.data,delete g.data),!1===g.cache&&(a=a.replace(Pt,"$1"),h=(At.test(a)?"&":"?")+"_="+Dt+++h),g.url=a+h),g.ifModified&&(xe.lastModified[a]&&k.setRequestHeader("If-Modified-Since",xe.lastModified[a]),xe.etag[a]&&k.setRequestHeader("If-None-Match",xe.etag[a])),(g.data&&g.hasContent&&!1!==g.contentType||t.contentType)&&k.setRequestHeader("Content-Type",g.contentType),k.setRequestHeader("Accept",g.dataTypes[0]&&g.accepts[g.dataTypes[0]]?g.accepts[g.dataTypes[0]]+("*"!==g.dataTypes[0]?", "+zt+"; q=0.01":""):g.accepts["*"]);for(p in g.headers)k.setRequestHeader(p,g.headers[p]);if(g.beforeSend&&(!1===g.beforeSend.call(v,k,g)||f))return k.abort();if(C="abort",x.add(g.complete),k.done(g.success),k.fail(g.error),r=ne(Bt,g,t,k)){if(k.readyState=1,d&&m.trigger("ajaxSend",[k,g]),f)return k;g.async&&g.timeout>0&&(l=o.setTimeout(function(){k.abort("timeout")},g.timeout));try{f=!1,r.send(w,n)}catch(e){if(f)throw e;n(-1,e)}}else n(-1,"No Transport");return k},getJSON:function(e,t,n){return xe.get(e,t,n,"json")},getScript:function(e,t){return xe.get(e,void 0,t,"script")}}),xe.each(["get","post"],function(e,t){xe[t]=function(e,n,r,i){return xe.isFunction(n)&&(i=i||r,r=n,n=void 0),xe.ajax(xe.extend({url:e,type:t,dataType:i,data:n,success:r},xe.isPlainObject(e)&&e))}}),xe._evalUrl=function(e){return xe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},xe.fn.extend({wrapAll:function(e){var t;return this[0]&&(xe.isFunction(e)&&(e=e.call(this[0])),t=xe(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return xe.isFunction(e)?this.each(function(t){xe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=xe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=xe.isFunction(e);return this.each(function(n){xe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){xe(this).replaceWith(this.childNodes)}),this}}),xe.expr.pseudos.hidden=function(e){return!xe.expr.pseudos.visible(e)},xe.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},xe.ajaxSettings.xhr=function(){try{return new o.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Vt=xe.ajaxSettings.xhr();ye.cors=!!Vt&&"withCredentials"in Vt,ye.ajax=Vt=!!Vt,xe.ajaxTransport(function(e){var t,n;if(ye.cors||Vt&&!e.crossDomain)return{send:function(r,i){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)s.setRequestHeader(a,r[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(Ut[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&o.setTimeout(function(){t&&n()})},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),xe.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),xe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return xe.globalEval(e),e}}}),xe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),xe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=xe("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),se.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;xe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||xe.expando+"_"+Dt++;return this[e]=!0,e}}),xe.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,a,s=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=xe.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||xe.error(r+" was not called"),a[0]},e.dataTypes[0]="json",i=o[r],o[r]=function(){a=arguments},n.always(function(){void 0===i?xe(o).removeProp(r):o[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),a&&xe.isFunction(i)&&i(a[0]),a=i=void 0}),"script"}),ye.createHTMLDocument=function(){var e=se.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),xe.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var r,i,o;return t||(ye.createHTMLDocument?(t=se.implementation.createHTMLDocument(""),r=t.createElement("base"),r.href=se.location.href,t.head.appendChild(r)):t=se),i=Ne.exec(e),o=!n&&[],i?[t.createElement(i[1])]:(i=S([e],t,o),o&&o.length&&xe(o).remove(),xe.merge([],i.childNodes))},xe.fn.load=function(e,t,n){var r,o,a,s=this,u=e.indexOf(" ");return u>-1&&(r=K(e.slice(u)),e=e.slice(0,u)),xe.isFunction(t)?(n=t,t=void 0):t&&"object"===(void 0===t?"undefined":i(t))&&(o="POST"),s.length>0&&xe.ajax({url:e,type:o||"GET",dataType:"html",data:t}).done(function(e){a=arguments,s.html(r?xe("<div>").append(xe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,a||[e.responseText,t,e])})}),this},xe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){xe.fn[t]=function(e){return this.on(t,e)}}),xe.expr.pseudos.animated=function(e){return xe.grep(xe.timers,function(t){return e===t.elem}).length},xe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=xe.css(e,"position"),f=xe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=xe.css(e,"top"),u=xe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),xe.isFunction(t)&&(t=t.call(e,n,xe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},xe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){xe.offset.setOffset(this,e,t)});var t,n,r,i,o=this[0];if(o)return o.getClientRects().length?(r=o.getBoundingClientRect(),t=o.ownerDocument,n=t.documentElement,i=t.defaultView,{top:r.top+i.pageYOffset-n.clientTop,left:r.left+i.pageXOffset-n.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===xe.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),l(e[0],"html")||(r=e.offset()),r={top:r.top+xe.css(e[0],"borderTopWidth",!0),left:r.left+xe.css(e[0],"borderLeftWidth",!0)}),{top:t.top-r.top-xe.css(n,"marginTop",!0),left:t.left-r.left-xe.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===xe.css(e,"position");)e=e.offsetParent;return e||et})}}),xe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;xe.fn[e]=function(r){return Pe(this,function(e,r,i){var o;if(xe.isWindow(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),xe.each(["top","left"],function(e,t){xe.cssHooks[t]=M(ye.pixelPosition,function(e,n){if(n)return n=P(e,t),ct.test(n)?xe(e).position()[t]+"px":n})}),xe.each({Height:"height",Width:"width"},function(e,t){xe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){xe.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return Pe(this,function(t,n,i){var o;return xe.isWindow(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?xe.css(t,n,s):xe.style(t,n,i,s)},t,a?i:void 0,a)}})}),xe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),xe.holdReady=function(e){e?xe.readyWait++:xe.ready(!0)},xe.isArray=Array.isArray,xe.parseJSON=JSON.parse,xe.nodeName=l,n=[],void 0!==(r=function(){return xe}.apply(t,n))&&(e.exports=r);var Qt=o.jQuery,Jt=o.$;return xe.noConflict=function(e){return o.$===xe&&(o.$=Jt),e&&o.jQuery===xe&&(o.jQuery=Qt),xe},a||(o.jQuery=o.$=xe),xe})}).call(t,n(6)(e))},function(e,t,n){"use strict";function r(){var e=(0,a.default)("#ta-attach-images-metabox"),t=e.find("#thirsty_image_holder");e.on("click","#ta_upload_media_manager",function(n){if(n.preventDefault(),r)return void r.open();var r=wp.media({title:(0,a.default)(this).data("uploader-title"),library:{type:"image"},button:{text:(0,a.default)(this).data("uploader-button-text"),close:!0},multiple:!0});r.on("select",function(){var n=r.state().get("selection"),o=(0,a.default)("input[name=post_ID]").val(),s=[],u=(0,a.default)("#thirsty_image_holder");e.find("#thirsty_image_holder").length<=0&&e.find(".inside").append("<div id='thirsty_image_holder'></div>"),n.map(function(e){e=e.toJSON(),s.push(e.id)}),s.length>0&&a.default.ajax({url:ajaxurl,type:"POST",data:{action:"ta_add_attachments_to_affiliate_link",attachment_ids:s,affiliate_link_id:o},dataType:"json"}).done(function(n){if("success"===n.status){var r=t.data("attachments"),o=void 0;"object"==(void 0===r?"undefined":i(r))&&(o=t.data("attachments").map(function(e){return parseInt(e,10)}),o=a.default.unique(o.concat(s)),t.data("attachments",o)),e.find("#thirsty_image_holder").append(n.added_attachments_markup)}else alert(n.error_msg),console.log(n)}).fail(function(e){alert(e),console.log("Failed to add attachments to affiliate link")}).always(function(){u.find(".thirsty-attached-image").length>0&&u.show(),tb_remove()})}),r.open()}),e.on("click",".thirsty-remove-img",function(){var e=(0,a.default)(this);if(e.hasClass("removing"))return!1;e.addClass("removing");var n=parseInt(e.attr("id")),r=(0,a.default)("input[name=post_ID]").val(),o=e.closest(".thirsty-attached-image"),s=(0,a.default)("#thirsty_image_holder");a.default.ajax({url:ajaxurl,type:"POST",data:{action:"ta_remove_attachment_to_affiliate_link",attachment_id:n,affiliate_link_id:r},dataType:"json"}).done(function(e){if("success"===e.status){var r=t.data("attachments"),a=void 0;"object"==(void 0===r?"undefined":i(r))&&(a=t.data("attachments").map(function(e){return parseInt(e,10)}),a=new Set(a),a.delete(n),t.data("attachments",Array.from(a))),o.fadeOut(300).delay(300).remove(),s.find(".thirsty-attached-image").length<=0&&s.hide()}else alert(e.error_msg),console.log(e)}).fail(function(e){alert("Failed to remove attachment from affiliate link"),console.log(e)})});var n=function(){var e=(0,a.default)(".media-modal-content ul.attachments li.attachment"),n=t.data("attachments"),r=void 0;"object"==(void 0===n?"undefined":i(n))&&(r=n.map(function(e){return parseInt(e,10)}),e.each(function(){var e=(0,a.default)(this),t=(0,a.default)(this).data("id");e.show(),a.default.inArray(t,r)>-1&&e.hide()}))};e.on("click","#ta_upload_media_manager",n),(0,a.default)("body").on("click",".media-modal-content .media-menu-item",n),(0,a.default)(document).on("DOMNodeInserted",function(e){var n=(0,a.default)(e.target),r=t.data("attachments"),o=void 0;n.hasClass("attachment")&&"object"==(void 0===r?"undefined":i(r))&&(o=n.data("id"),r=r.map(function(e){return parseInt(e,10)}),a.default.inArray(o,r)>-1&&n.remove())})}Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=r;var o=n(0),a=function(e){return e&&e.__esModule?e:{default:e}}(o)},function(e,t,n){"use strict";function r(){var e=(0,o.default)("#ta-urls-metabox");(0,o.default)("#slugdiv").remove(),e.on("click","button.edit-ta-slug",function(){e.find(".cloaked-fields").hide(),e.find(".slug-fields").fadeIn(200)}),e.on("click","button.save-ta-slug",function(){var t=e.find("input#ta_slug").val(),n=e.find("input#ta_cloaked_url").val(),r=n.replace(/[^\/]+\/?$/g,"");/^([a-z0-9-_% ]+)$/.test(t)?(t=""==t?n.match(/[^\/]+$/):t,e.find("input#ta_cloaked_url").val(r+t+"/"),e.find(".slug-fields").hide(),e.find(".cloaked-fields").fadeIn(200)):(0,o.default)("input#publish").click()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t,n){"use strict";function r(){function e(e,t){o.default.post(ajaxurl,{action:"ta_get_category_slug",term_id:e},function(n){"success"==n.status?r.append("<option value='"+e+"' data-slug='"+n.category_slug+"'>"+t+"</option>").trigger("change"):(alert(n.error_msg),console.log(n))},"json")}function t(){var e=n.find("input[type='checkbox']:checked"),t=[],i=[],a=void 0,s=void 0,u=void 0,l=void 0;if(!(e.length<1)){for(l=0;l<e.length;l++)u=(0,o.default)(e[l]).parent().text().trim(),t.push(u),i[u]=l;t=t.sort(function(e,t){return e=e.toLowerCase(),t=t.toLowerCase(),e>t?1:e<t?-1:0}),s=i[t[0]],a=(0,o.default)(e[s]),o.default.post(ajaxurl,{action:"ta_get_category_slug",term_id:a.val()},function(e){"success"==e.status?(r.find("option:first-child").data("slug",e.category_slug).attr("data-slug",e.category_slug),r.trigger("change")):(alert(e.error_msg),console.log(e))},"json")}}var n=(0,o.default)("#thirstylink-categorychecklist"),r=(0,o.default)("select[name='ta_category_slug']");n.on("change","input[type='checkbox']",function(){var n=(0,o.default)(this).val(),i=(0,o.default)(this).parent().text(),a=(0,o.default)(this).prop("checked");t(),a?e(n,i):(r.find("option[value='"+n+"']").remove(),r.trigger("change"))}),(0,o.default)(document).on("DOMNodeInserted","#thirstylink-categorychecklist",function(){var n=(0,o.default)("#thirstylink-categorychecklist li").first(),i=n.find("input[type='checkbox']").val(),a=n.find("label").text(),s=n.find("input[type='checkbox']").prop("checked");t(),s?e(i,a):r.find("option[value='"+i+"']").remove()}),(0,o.default)(document).on("change","select[name='ta_category_slug']",function(){var e=(0,o.default)(this),t=e.find("option:selected").data("slug"),n=e.data("home-link-prefix"),r=(0,o.default)("#ta_slug").val(),i=(0,o.default)("#ta_cloaked_url");(0,o.default)(this).find("option").length<=1?i.val(n+r+"/"):i.val(n+t+"/"+r+"/")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t,n){"use strict";function r(){var e=(0,o.default)("#ta-inserted-link-scanner-metabox");e.on("click","#inserted-link-scan-trigger",function(){var t=(0,o.default)(this),n=e.find(".inside"),r=n.find(".inserted-into-table table tbody"),i=n.find(".overlay"),a=n.find(".scanned-inserted-status .last-scanned"),s=(0,o.default)("input#post_ID").val();t.prop("disabled",!0),i.css("height",n.height()).show(),o.default.post(ajaxurl,{action:"ta_link_inserted_scanner",link_id:s},function(e){"success"==e.status?(r.html(e.results_markup),a.html(e.last_scanned)):(alert(e.error_msg),console.log(e)),t.prop("disabled",!1),i.hide()},"json")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i)},function(e,t){},function(e,t,n){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(0),o=r(i),a=n(1),s=r(a),u=n(2),l=r(u),c=n(3),f=r(c),d=n(4),p=r(d);n(5),(0,o.default)(document).ready(function(){(0,s.default)(),(0,l.default)(),(0,f.default)(),(0,p.default)()})}]);
js/app/ta-reports.js CHANGED
@@ -12,6 +12,13 @@ jQuery( document ).ready( function($){
12
  */
13
  series : [],
14
 
 
 
 
 
 
 
 
15
  /**
16
  * First chart series variable (General all links)
17
  *
@@ -19,6 +26,7 @@ jQuery( document ).ready( function($){
19
  */
20
  firstSeries : {
21
  label : report_details.label,
 
22
  data : report_data.click_counts,
23
  yaxis : 1,
24
  color : '#3498db',
@@ -72,7 +80,48 @@ jQuery( document ).ready( function($){
72
  },
73
 
74
  /**
75
- * Initialize / display the report graph.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  *
77
  * @since 3.0.0
78
  */
@@ -103,6 +152,7 @@ jQuery( document ).ready( function($){
103
  mode : "time",
104
  timeformat : report_details.timeformat,
105
  monthNames : [ "Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov" , "Dec" ],
 
106
  tickLength : 1,
107
  minTickSize : report_details.minTickSize,
108
  font : { color: '#000' }
@@ -113,6 +163,7 @@ jQuery( document ).ready( function($){
113
  minTickSize : 1,
114
  tickDecimals : 0,
115
  color : '#d4d9dc',
 
116
  font : { color: '#000' }
117
  }
118
  }
@@ -256,7 +307,8 @@ jQuery( document ).ready( function($){
256
  link_id : $input.data( 'linkid' ),
257
  range : $input.data( 'range' ),
258
  start_date : $input.data( 'start-date' ),
259
- end_date : $input.data( 'end-date' )
 
260
  }, function( response ) {
261
 
262
  if ( response.status == 'success' ) {
@@ -316,7 +368,7 @@ jQuery( document ).ready( function($){
316
  thirstyReports.rangeDatepicker();
317
 
318
  // init jQuery flot graph
319
- thirstyReports.drawGraph();
320
 
321
  // init plot tooltip events
322
  thirstyReports.plotTooltip();
12
  */
13
  series : [],
14
 
15
+ /**
16
+ * Local browser's timezone.
17
+ *
18
+ * @since 3.2.2
19
+ */
20
+ timezone : Intl.DateTimeFormat().resolvedOptions().timeZone,
21
+
22
  /**
23
  * First chart series variable (General all links)
24
  *
26
  */
27
  firstSeries : {
28
  label : report_details.label,
29
+ slug : report_details.slug,
30
  data : report_data.click_counts,
31
  yaxis : 1,
32
  color : '#3498db',
80
  },
81
 
82
  /**
83
+ * Initialize report graph.
84
+ *
85
+ * @since 3.2.2
86
+ */
87
+ initReport : function() {
88
+
89
+ var $input = $chart_sidebar.find( '#add-report-data' );
90
+
91
+ // show overlay
92
+ $report_block.find( '.overlay' ).css( 'height' , $report_block.height() ).show();
93
+
94
+ $.post( window.ajaxurl, {
95
+ action : 'ta_init_first_report',
96
+ timezone : thirstyReports.timezone,
97
+ range : $input.data( 'range' ),
98
+ start_date : $input.data( 'start-date' ),
99
+ end_date : $input.data( 'end-date' )
100
+ }, function( response ) {
101
+
102
+ if ( response.status == 'success' ) {
103
+
104
+ // redraw the graph
105
+ thirstyReports.firstSeries.data = response.flot_data;
106
+ thirstyReports.series = [];
107
+ thirstyReports.series.push( thirstyReports.firstSeries );
108
+ thirstyReports.drawGraph();
109
+
110
+ // update total click count
111
+ $chart_sidebar.find( 'ul.chart-legend li:first-child em.count' ).text( response.total_clicks );
112
+
113
+ } else {
114
+ // TODO: Handle error here
115
+ }
116
+
117
+ // hide overlay.
118
+ $report_block.find( '.overlay' ).hide();
119
+
120
+ } , 'json' );
121
+ },
122
+
123
+ /**
124
+ * Display the report graph.
125
  *
126
  * @since 3.0.0
127
  */
152
  mode : "time",
153
  timeformat : report_details.timeformat,
154
  monthNames : [ "Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov" , "Dec" ],
155
+ timezone : "browser",
156
  tickLength : 1,
157
  minTickSize : report_details.minTickSize,
158
  font : { color: '#000' }
163
  minTickSize : 1,
164
  tickDecimals : 0,
165
  color : '#d4d9dc',
166
+ timezone : "browser",
167
  font : { color: '#000' }
168
  }
169
  }
307
  link_id : $input.data( 'linkid' ),
308
  range : $input.data( 'range' ),
309
  start_date : $input.data( 'start-date' ),
310
+ end_date : $input.data( 'end-date' ),
311
+ timezone : thirstyReports.timezone
312
  }, function( response ) {
313
 
314
  if ( response.status == 'success' ) {
368
  thirstyReports.rangeDatepicker();
369
 
370
  // init jQuery flot graph
371
+ thirstyReports.initReport();
372
 
373
  // init plot tooltip events
374
  thirstyReports.plotTooltip();
languages/thirstyaffiliates.pot CHANGED
@@ -2,14 +2,14 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: ThirstyAffiliates\n"
5
- "POT-Creation-Date: 2017-10-19 12:51+0800\n"
6
  "PO-Revision-Date: 2016-04-29 07:38+0800\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Rymera Web Co <support@thirstyaffiliates.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.0.4\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "Language: en\n"
@@ -21,36 +21,38 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-2: js/lib\n"
22
  "X-Poedit-SearchPathExcluded-3: *node_modules*\n"
23
 
24
- #: Helpers/Plugin_Constants.php:87
25
  msgid "301 Permanent"
26
  msgstr ""
27
 
28
- #: Helpers/Plugin_Constants.php:88
29
  msgid "302 Temporary"
30
  msgstr ""
31
 
32
- #: Helpers/Plugin_Constants.php:89
33
  msgid "307 Temporary (alternative)"
34
  msgstr ""
35
 
36
- #: Models/Affiliate_Link.php:522
37
  msgid "Unable to save affiliate link as there are no changes registered on the object yet."
38
  msgstr ""
39
 
40
  #: Models/Affiliate_Link_Attachment.php:130
41
- #: Models/Affiliate_Link_Attachment.php:200 Models/Affiliate_Links_CPT.php:559
42
- #: Models/Guided_Tour.php:313 Models/Link_Fixer.php:178
43
- #: Models/Link_Fixer.php:180 Models/Link_Picker.php:278
44
- #: Models/Link_Picker.php:336 Models/Link_Picker.php:427
45
- #: Models/Marketing.php:175 Models/Marketing.php:300 Models/Settings.php:1623
46
- #: Models/Settings.php:1671 Models/Stats_Reporting.php:293
 
47
  msgid "Invalid AJAX call"
48
  msgstr ""
49
 
50
  #: Models/Affiliate_Link_Attachment.php:132
51
- #: Models/Affiliate_Link_Attachment.php:202 Models/Affiliate_Links_CPT.php:561
52
- #: Models/Link_Picker.php:280 Models/Link_Picker.php:338
53
- #: Models/Link_Picker.php:429 Models/Stats_Reporting.php:295
 
54
  msgid "Missing required post data"
55
  msgstr ""
56
 
@@ -70,172 +72,193 @@ msgstr ""
70
  msgid "Invalid attachment id to remove from an affiliate link"
71
  msgstr ""
72
 
73
- #: Models/Affiliate_Links_CPT.php:150 Models/Affiliate_Links_CPT.php:154
74
- #: Models/Affiliate_Links_CPT.php:166
75
  msgid "Affiliate Links"
76
  msgstr ""
77
 
78
- #: Models/Affiliate_Links_CPT.php:151
79
  msgid "Affiliate Link"
80
  msgstr ""
81
 
82
- #: Models/Affiliate_Links_CPT.php:152
83
  msgid "ThirstyAffiliates"
84
  msgstr ""
85
 
86
- #: Models/Affiliate_Links_CPT.php:153
87
  msgid "Parent Affiliate Link"
88
  msgstr ""
89
 
90
- #: Models/Affiliate_Links_CPT.php:155
91
  msgid "View Affiliate Link"
92
  msgstr ""
93
 
94
- #: Models/Affiliate_Links_CPT.php:156
95
  msgid "Add Affiliate Link"
96
  msgstr ""
97
 
98
- #: Models/Affiliate_Links_CPT.php:157
99
  msgid "New Affiliate Link"
100
  msgstr ""
101
 
102
- #: Models/Affiliate_Links_CPT.php:158
103
  msgid "Edit Affiliate Link"
104
  msgstr ""
105
 
106
- #: Models/Affiliate_Links_CPT.php:159
107
  msgid "Update Affiliate Link"
108
  msgstr ""
109
 
110
- #: Models/Affiliate_Links_CPT.php:160
111
  msgid "Search Affiliate Links"
112
  msgstr ""
113
 
114
- #: Models/Affiliate_Links_CPT.php:161
115
  msgid "No Affiliate Link found"
116
  msgstr ""
117
 
118
- #: Models/Affiliate_Links_CPT.php:162
119
  msgid "No Affiliate Links found in Trash"
120
  msgstr ""
121
 
122
- #: Models/Affiliate_Links_CPT.php:167
123
  msgid "ThirstyAffiliates affiliate links"
124
  msgstr ""
125
 
126
- #: Models/Affiliate_Links_CPT.php:210 Models/Affiliate_Links_CPT.php:212
 
127
  msgid "Link Categories"
128
  msgstr ""
129
 
130
- #: Models/Affiliate_Links_CPT.php:211
131
  msgid "Link Category"
132
  msgstr ""
133
 
134
- #: Models/Affiliate_Links_CPT.php:213
135
  msgid "All Categories"
136
  msgstr ""
137
 
138
- #: Models/Affiliate_Links_CPT.php:214
139
  msgid "Parent Category"
140
  msgstr ""
141
 
142
- #: Models/Affiliate_Links_CPT.php:215
143
  msgid "Parent Category:"
144
  msgstr ""
145
 
146
- #: Models/Affiliate_Links_CPT.php:216
147
  msgid "New Category Name"
148
  msgstr ""
149
 
150
- #: Models/Affiliate_Links_CPT.php:217
151
  msgid "Add New Category"
152
  msgstr ""
153
 
154
- #: Models/Affiliate_Links_CPT.php:218
155
  msgid "Edit Category"
156
  msgstr ""
157
 
158
- #: Models/Affiliate_Links_CPT.php:219
159
  msgid "Update Category"
160
  msgstr ""
161
 
162
- #: Models/Affiliate_Links_CPT.php:220
163
  msgid "View Category"
164
  msgstr ""
165
 
166
- #: Models/Affiliate_Links_CPT.php:221
167
  msgid "Separate items with commas"
168
  msgstr ""
169
 
170
- #: Models/Affiliate_Links_CPT.php:222
171
  msgid "Add or remove items"
172
  msgstr ""
173
 
174
- #: Models/Affiliate_Links_CPT.php:223
175
  msgid "Choose from the most used"
176
  msgstr ""
177
 
178
- #: Models/Affiliate_Links_CPT.php:224
179
  msgid "Popular Categories"
180
  msgstr ""
181
 
182
- #: Models/Affiliate_Links_CPT.php:225
183
  msgid "Search Categories"
184
  msgstr ""
185
 
186
- #: Models/Affiliate_Links_CPT.php:226
187
  msgid "Not Found"
188
  msgstr ""
189
 
190
- #: Models/Affiliate_Links_CPT.php:227
191
  msgid "No items"
192
  msgstr ""
193
 
194
- #: Models/Affiliate_Links_CPT.php:228
195
  msgid "Category list"
196
  msgstr ""
197
 
198
- #: Models/Affiliate_Links_CPT.php:229
199
  msgid "Category list navigation"
200
  msgstr ""
201
 
202
- #: Models/Affiliate_Links_CPT.php:260
203
  msgid "Link ID:"
204
  msgstr ""
205
 
206
- #: Models/Affiliate_Links_CPT.php:274
207
  msgid "URLs"
208
  msgstr ""
209
 
210
- #: Models/Affiliate_Links_CPT.php:275
211
  msgid "Attach Images"
212
  msgstr ""
213
 
214
- #: Models/Affiliate_Links_CPT.php:278
 
 
 
 
215
  msgid "Save Affiliate Link"
216
  msgstr ""
217
 
218
- #: Models/Affiliate_Links_CPT.php:279
219
  msgid "Link Options"
220
  msgstr ""
221
 
222
- #: Models/Affiliate_Links_CPT.php:461
 
 
 
 
 
 
 
 
 
 
 
 
223
  msgid "Link ID"
224
  msgstr ""
225
 
226
- #: Models/Affiliate_Links_CPT.php:462
227
  msgid "Redirect Type"
228
  msgstr ""
229
 
230
- #: Models/Affiliate_Links_CPT.php:463
231
  msgid "Cloaked URL"
232
  msgstr ""
233
 
234
- #: Models/Affiliate_Links_CPT.php:464
235
  msgid "Link Destination"
236
  msgstr ""
237
 
238
- #: Models/Bootstrap.php:367 Models/Settings.php:599
 
 
 
 
239
  msgid "Settings"
240
  msgstr ""
241
 
@@ -322,31 +345,31 @@ msgstr ""
322
  msgid "Security Check Failed"
323
  msgstr ""
324
 
325
- #: Models/Link_Picker.php:216
326
  msgid "Select image:"
327
  msgstr ""
328
 
329
- #: Models/Link_Picker.php:225
330
  msgid "No images found"
331
  msgstr ""
332
 
333
- #: Models/Link_Picker.php:241
334
  msgid "Insert link"
335
  msgstr ""
336
 
337
- #: Models/Link_Picker.php:242
338
  msgid "Insert shortcode"
339
  msgstr ""
340
 
341
- #: Models/Link_Picker.php:243
342
  msgid "Insert image"
343
  msgstr ""
344
 
345
- #: Models/Link_Picker.php:264
346
  msgid "No affiliate links found"
347
  msgstr ""
348
 
349
- #: Models/Marketing.php:177 Models/Settings.php:1673
350
  msgid "Required parameter not passed"
351
  msgstr ""
352
 
@@ -409,426 +432,527 @@ msgstr ""
409
  msgid "Data Migration Complete!"
410
  msgstr ""
411
 
412
- #: Models/Migration.php:753
413
  msgid "<b>ThirstyAffiliates is currently migrating your old affiliate link data to the new data model.<br>Please hold off making changes to your affiliate links. Please refresh the page and if this message has disappeared, the migration is complete.</b>"
414
  msgstr ""
415
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  #: Models/Script_Loader.php:148
 
 
 
 
 
 
 
 
417
  msgid "Please provide a value for \"Custom Link Prefix\" option"
418
  msgstr ""
419
 
420
- #: Models/Script_Loader.php:159
421
  msgid "Please input settings string"
422
  msgstr ""
423
 
424
- #: Models/Script_Loader.php:160
425
  msgid "Settings string copied"
426
  msgstr ""
427
 
428
- #: Models/Script_Loader.php:161
429
  msgid "Failed to copy settings string"
430
  msgstr ""
431
 
432
- #: Models/Script_Loader.php:172
433
  msgid "Failed to do data migration"
434
  msgstr ""
435
 
436
- #: Models/Script_Loader.php:173
437
  msgid "Are you sure you want to migrate your ThirstyAffiliates data to version 3 format?"
438
  msgstr ""
439
 
440
- #: Models/Script_Loader.php:202
441
- msgid "Open the ThirstyAffiliates link picker"
442
  msgstr ""
443
 
444
- #: Models/Script_Loader.php:203
445
- msgid "Open quick add affiliate link dialog"
446
  msgstr ""
447
 
448
- #: Models/Script_Loader.php:204
449
- msgid "Type to search affiliate link"
450
  msgstr ""
451
 
452
- #: Models/Script_Loader.php:240
453
- msgid "Previous"
454
  msgstr ""
455
 
456
- #: Models/Script_Loader.php:241
457
- msgid "Next"
 
 
 
 
 
458
  msgstr ""
459
 
460
- #: Models/Script_Loader.php:242
461
- msgid "Close"
 
 
 
 
 
462
  msgstr ""
463
 
464
- #: Models/Script_Loader.php:243
465
- msgid "Start Tour"
466
  msgstr ""
467
 
468
- #: Models/Settings.php:226 views/reports/link-performance-report.php:37
 
469
  msgid "General"
470
  msgstr ""
471
 
472
- #: Models/Settings.php:227
473
  msgid "Settings that change the general behaviour of ThirstyAffiliates."
474
  msgstr ""
475
 
476
- #: Models/Settings.php:230
477
  msgid "Link Appearance"
478
  msgstr ""
479
 
480
- #: Models/Settings.php:231
481
  msgid "Settings that specifically affect the behaviour & appearance of your affiliate links."
482
  msgstr ""
483
 
484
- #: Models/Settings.php:234
485
  msgid "Modules"
486
  msgstr ""
487
 
488
- #: Models/Settings.php:235
489
  msgid "This section allows you to turn certain parts of ThirstyAffiliates on or off. Below are the individual modules and features of the plugin that can be controlled."
490
  msgstr ""
491
 
492
- #: Models/Settings.php:238
493
  msgid "Import/Export"
494
  msgstr ""
495
 
496
- #: Models/Settings.php:239
497
  msgid "Import and Export global ThirstyAffiliates plugin settings from one site to another."
498
  msgstr ""
499
 
500
- #: Models/Settings.php:242
501
  msgid "Help"
502
  msgstr ""
503
 
504
- #: Models/Settings.php:243
505
  msgid "Links to knowledge base and other utilities."
506
  msgstr ""
507
 
508
- #: Models/Settings.php:252
509
  msgid "Default Link Insertion Type"
510
  msgstr ""
511
 
512
- #: Models/Settings.php:253
513
  msgid "Determines the default link type when inserting a link using the quick search."
514
  msgstr ""
515
 
516
- #: Models/Settings.php:257
517
  msgid "Link"
518
  msgstr ""
519
 
520
- #: Models/Settings.php:258
521
  msgid "Shortcode"
522
  msgstr ""
523
 
524
- #: Models/Settings.php:264
525
  msgid "Disable \"uncategorized\" category on save?"
526
  msgstr ""
527
 
528
- #: Models/Settings.php:265
529
  msgid "If links are including categories in the URL then by default ThirstyAffiliates will add an \"uncategorized\" category to apply to non-categorised links during save. If you disable this, it allows you to have some links with categories in the URL and some without."
530
  msgstr ""
531
 
532
- #: Models/Settings.php:271
533
  msgid "Disable buttons on the Visual editor?"
534
  msgstr ""
535
 
536
- #: Models/Settings.php:272
537
  msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
538
  msgstr ""
539
 
540
- #: Models/Settings.php:278
541
  msgid "Disable buttons on the Text/Quicktags editor?"
542
  msgstr ""
543
 
544
- #: Models/Settings.php:279
545
  msgid "Hide the ThirstyAffiliates buttons on the Text editor."
546
  msgstr ""
547
 
548
- #: Models/Settings.php:288
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  msgid "Link Prefix"
550
  msgstr ""
551
 
552
- #: Models/Settings.php:289
553
  #, php-format
554
  msgid "The prefix that comes before your cloaked link's slug. <br>eg. %s/<strong>recommends</strong>/your-affiliate-link-name.<br><br><b>Warning :</b> Changing this setting after you've used links in a post could break those links. Be careful!"
555
  msgstr ""
556
 
557
- #: Models/Settings.php:317
558
  msgid "Custom Link Prefix"
559
  msgstr ""
560
 
561
- #: Models/Settings.php:318
562
  msgid "Enter your preferred link prefix."
563
  msgstr ""
564
 
565
- #: Models/Settings.php:324
566
  msgid "Link Category in URL?"
567
  msgstr ""
568
 
569
- #: Models/Settings.php:325
570
  #, php-format
571
  msgid "Shows the primary selected category in the url. eg. %s/recommends/<strong>link-category</strong>/your-affiliate-link-name.<br><br><b>Warning :</b> Changing this setting after you've used links in a post could break those links. Be careful!"
572
  msgstr ""
573
 
574
- #: Models/Settings.php:331
575
  msgid "Link Redirect Type"
576
  msgstr ""
577
 
578
- #: Models/Settings.php:332
579
  msgid "This is the type of redirect ThirstyAffiliates will use to redirect the user to your affiliate link."
580
  msgstr ""
581
 
582
- #: Models/Settings.php:339
583
  msgid "Use no follow on links?"
584
  msgstr ""
585
 
586
- #: Models/Settings.php:340
587
  msgid "Add the nofollow attribute to links so search engines don't index them."
588
  msgstr ""
589
 
590
- #: Models/Settings.php:347
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  msgid "Open links in new window?"
592
  msgstr ""
593
 
594
- #: Models/Settings.php:348
595
  msgid "Make links open in a new browser tab by default."
596
  msgstr ""
597
 
598
- #: Models/Settings.php:355
 
 
 
 
 
 
 
 
599
  msgid "Pass query strings to destination url?"
600
  msgstr ""
601
 
602
- #: Models/Settings.php:356
603
  msgid "Enabling this option will pass all of the query strings present after the cloaked url to the destination url automatically when redirecting."
604
  msgstr ""
605
 
606
- #: Models/Settings.php:363
 
 
 
 
 
 
 
 
607
  msgid "Additional rel attribute tags"
608
  msgstr ""
609
 
610
- #: Models/Settings.php:364
611
  msgid "Allows you to add extra tags into the rel= attribute when links are inserted."
612
  msgstr ""
613
 
614
- #: Models/Settings.php:370
615
  msgid "Disable ThirstyAffiliates CSS classes?"
616
  msgstr ""
617
 
618
- #: Models/Settings.php:371
619
  msgid "To help with styling a CSS class called \"thirstylink\" is added links on insertion.<br>Likewise the \"thirstylinkimg\" class is added to images when using the image insertion type. This option disables the addition these CSS classes."
620
  msgstr ""
621
 
622
- #: Models/Settings.php:377
623
  msgid "Disable title attribute on link insertion?"
624
  msgstr ""
625
 
626
- #: Models/Settings.php:378
627
  msgid "Links are automatically output with a title html attribute (by default this shows the title of the affiliate link).<br>This option disables the output of the title attribute on your links."
628
  msgstr ""
629
 
630
- #: Models/Settings.php:384
631
  msgid "Select Category to Uncloak"
632
  msgstr ""
633
 
634
- #: Models/Settings.php:385
635
  msgid "The links assigned to the selected category will be uncloaked."
636
  msgstr ""
637
 
638
- #: Models/Settings.php:390
639
- msgid "Select category..."
640
- msgstr ""
641
-
642
- #: Models/Settings.php:399
643
  msgid "Statistics"
644
  msgstr ""
645
 
646
- #: Models/Settings.php:400
647
  msgid "When enabled, ThirstyAffiliates will collect click statistics information about visitors that click on your affiliate links. Also adds a new Reports section."
648
  msgstr ""
649
 
650
- #: Models/Settings.php:407
651
  msgid "Link Fixer"
652
  msgstr ""
653
 
654
- #: Models/Settings.php:408
655
  msgid "Link Fixer is a tiny piece of javascript code that runs on the frontend of your site to fix any outdated/broken affiliate links it detects. It's cache-friendly and runs after page load so it doesn't affect the rendering of content. Changed the settings on your site recently? Enabling Link Fixer means you don't need to update all your previously inserted affiliate links one by one – your visitors will never see an out of date affiliate link again."
656
  msgstr ""
657
 
658
- #: Models/Settings.php:415
659
  msgid "Uncloak Links"
660
  msgstr ""
661
 
662
- #: Models/Settings.php:416
663
  msgid "Uncloak Links is a feature to allow uncloaking of specific links on your site. It replaces the cloaked url with the actual destination url which is important for compatibility with some affiliate program with stricter terms (such as Amazon Associates). Once enabled, you will see a new Uncloak Link checkbox on the affiliate link edit screen. It also introduces a new setting under the Links tab for uncloaking whole categories.<br><br><b>Warning : </b>For this feature to work, the <strong>Link Fixer</strong> module needs to be turned on."
664
  msgstr ""
665
 
666
- #: Models/Settings.php:426
667
  msgid "Import Global Settings"
668
  msgstr ""
669
 
670
- #: Models/Settings.php:428
671
  msgid "Paste settings string here..."
672
  msgstr ""
673
 
674
- #: Models/Settings.php:433
675
  msgid "Export Global Settings"
676
  msgstr ""
677
 
678
- #: Models/Settings.php:442 Models/Settings.php:450
679
  msgid "Knowledge Base"
680
  msgstr ""
681
 
682
- #: Models/Settings.php:447
683
  msgid "Documentation"
684
  msgstr ""
685
 
686
- #: Models/Settings.php:451
687
  msgid "Guides, troubleshooting, FAQ and more."
688
  msgstr ""
689
 
690
- #: Models/Settings.php:456
691
  msgid "Our Blog"
692
  msgstr ""
693
 
694
- #: Models/Settings.php:459
695
  msgid "ThirstyAffiliates Blog"
696
  msgstr ""
697
 
698
- #: Models/Settings.php:460
699
  msgid "Learn & grow your affiliate marketing – covering increasing sales, generating traffic, optimising your affiliate marketing, interviews & case studies."
700
  msgstr ""
701
 
702
- #: Models/Settings.php:466
 
 
 
 
703
  msgid "Other Utilities"
704
  msgstr ""
705
 
706
- #: Models/Settings.php:471
707
  msgid "Migrate Old Data"
708
  msgstr ""
709
 
710
- #: Models/Settings.php:473
711
  msgid "Migrate old ThirstyAffiliates version 2 data to new version 3 data model."
712
  msgstr ""
713
 
714
- #: Models/Settings.php:598 Models/Settings.php:618
715
  msgid "ThirstyAffiliates Settings"
716
  msgstr ""
717
 
718
- #: Models/Settings.php:745
 
 
 
 
719
  msgid "Save Changes"
720
  msgstr ""
721
 
722
- #: Models/Settings.php:1223
723
  msgid "Key"
724
  msgstr ""
725
 
726
- #: Models/Settings.php:1224
727
  msgid "Value"
728
  msgstr ""
729
 
730
- #: Models/Settings.php:1347
731
  msgid "Another application is currently processing the database. Please wait for this to complete."
732
  msgstr ""
733
 
734
- #: Models/Settings.php:1357
735
  msgid "Migrate"
736
  msgstr ""
737
 
738
- #: Models/Settings.php:1360
739
  msgid "Migrating data. Please wait..."
740
  msgstr ""
741
 
742
- #: Models/Settings.php:1400
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
743
  msgid "Copy"
744
  msgstr ""
745
 
746
- #: Models/Settings.php:1437
747
  msgid "Import Settings"
748
  msgstr ""
749
 
750
- #: Models/Settings.php:1652
751
  msgid "Unauthorized operation. Only authorized accounts can access global plugin settings string"
752
  msgstr ""
753
 
754
- #: Models/Settings.php:1681
755
  msgid "Settings successfully imported"
756
  msgstr ""
757
 
758
- #: Models/Settings.php:1703
759
  msgid "Unauthorized operation. Only authorized accounts can import settings"
760
  msgstr ""
761
 
762
- #: Models/Settings.php:1708
763
  msgid "Invalid global settings string"
764
  msgstr ""
765
 
766
- #: Models/Shortcodes.php:247
767
  msgid "SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please check your short code!"
768
  msgstr ""
769
 
770
- #: Models/Stats_Reporting.php:305
771
  msgid "Selected affiliate link is invalid"
772
  msgstr ""
773
 
774
- #: Models/Stats_Reporting.php:381
775
- msgid "Link Performance"
776
  msgstr ""
777
 
778
- #: Models/Stats_Reporting.php:382
779
- msgid "Link Performance Report"
780
  msgstr ""
781
 
782
- #: Models/Stats_Reporting.php:383
783
  msgid "Total clicks on affiliate links over a given period."
784
  msgstr ""
785
 
786
- #: Models/Stats_Reporting.php:409
787
  msgid "ThirstyAffiliates Reports"
788
  msgstr ""
789
 
790
- #: Models/Stats_Reporting.php:410
791
  msgid "Reports"
792
  msgstr ""
793
 
794
- #: Models/Stats_Reporting.php:487
795
  msgid "Year"
796
  msgstr ""
797
 
798
- #: Models/Stats_Reporting.php:488
799
  msgid "Last Month"
800
  msgstr ""
801
 
802
- #: Models/Stats_Reporting.php:489
803
  msgid "This Month"
804
  msgstr ""
805
 
806
- #: Models/Stats_Reporting.php:490
807
  msgid "Last 7 Days"
808
  msgstr ""
809
 
810
- #: thirstyaffiliates.php:222
811
  msgid "Activate this plugin"
812
  msgstr ""
813
 
814
- #: thirstyaffiliates.php:222
815
  msgid "Click here to activate &rarr;"
816
  msgstr ""
817
 
818
- #: thirstyaffiliates.php:224
819
  msgid "Install this plugin"
820
  msgstr ""
821
 
822
- #: thirstyaffiliates.php:224
823
  msgid "Click here to install from WordPress.org repo &rarr;"
824
  msgstr ""
825
 
826
- #: thirstyaffiliates.php:226
827
  #, php-format
828
  msgid "<br/>Please ensure you have the <a href=\"%1$s\" target=\"_blank\">%2$s</a> plugin installed and activated.<br/>"
829
  msgstr ""
830
 
831
- #: thirstyaffiliates.php:233
832
  msgid "<b>ThirstyAffiliates</b> plugin missing dependency.<br/>"
833
  msgstr ""
834
 
@@ -849,6 +973,22 @@ msgstr ""
849
  msgid "Upload/Insert"
850
  msgstr ""
851
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
  #: views/cpt/view-link-options-metabox.php:7
853
  #: views/linkpicker/quick-add-affiliate-link.php:50
854
  msgid "No follow this link?"
@@ -868,24 +1008,6 @@ msgstr ""
868
  msgid "Global (%s)"
869
  msgstr ""
870
 
871
- #: views/cpt/view-link-options-metabox.php:12
872
- #: views/cpt/view-link-options-metabox.php:24
873
- #: views/cpt/view-link-options-metabox.php:36
874
- #: views/cpt/view-link-options-metabox.php:49
875
- #: views/linkpicker/quick-add-affiliate-link.php:54
876
- #: views/linkpicker/quick-add-affiliate-link.php:65
877
- msgid "Yes"
878
- msgstr ""
879
-
880
- #: views/cpt/view-link-options-metabox.php:13
881
- #: views/cpt/view-link-options-metabox.php:25
882
- #: views/cpt/view-link-options-metabox.php:37
883
- #: views/cpt/view-link-options-metabox.php:50
884
- #: views/linkpicker/quick-add-affiliate-link.php:55
885
- #: views/linkpicker/quick-add-affiliate-link.php:66
886
- msgid "No"
887
- msgstr ""
888
-
889
  #: views/cpt/view-link-options-metabox.php:19
890
  #: views/linkpicker/quick-add-affiliate-link.php:61
891
  msgid "Open this link in new window?"
@@ -928,10 +1050,6 @@ msgstr ""
928
  msgid "Additional rel tags:"
929
  msgstr ""
930
 
931
- #: views/cpt/view-save-affiliate-link-metabox.php:3
932
- msgid "publish"
933
- msgstr ""
934
-
935
  #: views/cpt/view-save-affiliate-link-metabox.php:4
936
  #: views/cpt/view-urls-metabox.php:24
937
  msgid "Save"
@@ -1006,11 +1124,15 @@ msgstr ""
1006
  msgid "Redirect Type:"
1007
  msgstr ""
1008
 
1009
- #: views/linkpicker/quick-add-affiliate-link.php:75
 
 
 
 
1010
  msgid "Add Link"
1011
  msgstr ""
1012
 
1013
- #: views/linkpicker/quick-add-affiliate-link.php:78
1014
  msgid "Add Link & Insert Into Post"
1015
  msgstr ""
1016
 
@@ -1022,23 +1144,23 @@ msgstr ""
1022
  msgid "Go"
1023
  msgstr ""
1024
 
1025
- #: views/reports/link-performance-report.php:38
1026
- #: views/reports/link-performance-report.php:75
1027
  msgid "All links"
1028
  msgstr ""
1029
 
1030
- #: views/reports/link-performance-report.php:43
1031
  msgid "Fetch report for specific link:"
1032
  msgstr ""
1033
 
1034
- #: views/reports/link-performance-report.php:45
1035
  msgid "Search affiliate link"
1036
  msgstr ""
1037
 
1038
- #: views/reports/link-performance-report.php:57
1039
  msgid "Fetch Report"
1040
  msgstr ""
1041
 
1042
- #: views/reports/link-performance-report.php:78
1043
  msgid "Clicks: "
1044
  msgstr ""
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: ThirstyAffiliates\n"
5
+ "POT-Creation-Date: 2018-02-07 07:39+0800\n"
6
  "PO-Revision-Date: 2016-04-29 07:38+0800\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Rymera Web Co <support@thirstyaffiliates.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.0.5\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "Language: en\n"
21
  "X-Poedit-SearchPathExcluded-2: js/lib\n"
22
  "X-Poedit-SearchPathExcluded-3: *node_modules*\n"
23
 
24
+ #: Helpers/Plugin_Constants.php:88
25
  msgid "301 Permanent"
26
  msgstr ""
27
 
28
+ #: Helpers/Plugin_Constants.php:89
29
  msgid "302 Temporary"
30
  msgstr ""
31
 
32
+ #: Helpers/Plugin_Constants.php:90
33
  msgid "307 Temporary (alternative)"
34
  msgstr ""
35
 
36
+ #: Models/Affiliate_Link.php:573
37
  msgid "Unable to save affiliate link as there are no changes registered on the object yet."
38
  msgstr ""
39
 
40
  #: Models/Affiliate_Link_Attachment.php:130
41
+ #: Models/Affiliate_Link_Attachment.php:200 Models/Affiliate_Links_CPT.php:857
42
+ #: Models/Affiliate_Links_CPT.php:882 Models/Guided_Tour.php:313
43
+ #: Models/Link_Fixer.php:176 Models/Link_Fixer.php:178
44
+ #: Models/Link_Picker.php:279 Models/Link_Picker.php:337
45
+ #: Models/Link_Picker.php:457 Models/Marketing.php:175 Models/Marketing.php:300
46
+ #: Models/Settings.php:1736 Models/Settings.php:1784
47
+ #: Models/Stats_Reporting.php:335 Models/Stats_Reporting.php:380
48
  msgid "Invalid AJAX call"
49
  msgstr ""
50
 
51
  #: Models/Affiliate_Link_Attachment.php:132
52
+ #: Models/Affiliate_Link_Attachment.php:202 Models/Affiliate_Links_CPT.php:859
53
+ #: Models/Affiliate_Links_CPT.php:884 Models/Link_Picker.php:281
54
+ #: Models/Link_Picker.php:339 Models/Link_Picker.php:459
55
+ #: Models/Stats_Reporting.php:337 Models/Stats_Reporting.php:382
56
  msgid "Missing required post data"
57
  msgstr ""
58
 
72
  msgid "Invalid attachment id to remove from an affiliate link"
73
  msgstr ""
74
 
75
+ #: Models/Affiliate_Links_CPT.php:159 Models/Affiliate_Links_CPT.php:163
76
+ #: Models/Affiliate_Links_CPT.php:175
77
  msgid "Affiliate Links"
78
  msgstr ""
79
 
80
+ #: Models/Affiliate_Links_CPT.php:160
81
  msgid "Affiliate Link"
82
  msgstr ""
83
 
84
+ #: Models/Affiliate_Links_CPT.php:161
85
  msgid "ThirstyAffiliates"
86
  msgstr ""
87
 
88
+ #: Models/Affiliate_Links_CPT.php:162
89
  msgid "Parent Affiliate Link"
90
  msgstr ""
91
 
92
+ #: Models/Affiliate_Links_CPT.php:164
93
  msgid "View Affiliate Link"
94
  msgstr ""
95
 
96
+ #: Models/Affiliate_Links_CPT.php:165
97
  msgid "Add Affiliate Link"
98
  msgstr ""
99
 
100
+ #: Models/Affiliate_Links_CPT.php:166
101
  msgid "New Affiliate Link"
102
  msgstr ""
103
 
104
+ #: Models/Affiliate_Links_CPT.php:167
105
  msgid "Edit Affiliate Link"
106
  msgstr ""
107
 
108
+ #: Models/Affiliate_Links_CPT.php:168
109
  msgid "Update Affiliate Link"
110
  msgstr ""
111
 
112
+ #: Models/Affiliate_Links_CPT.php:169
113
  msgid "Search Affiliate Links"
114
  msgstr ""
115
 
116
+ #: Models/Affiliate_Links_CPT.php:170
117
  msgid "No Affiliate Link found"
118
  msgstr ""
119
 
120
+ #: Models/Affiliate_Links_CPT.php:171
121
  msgid "No Affiliate Links found in Trash"
122
  msgstr ""
123
 
124
+ #: Models/Affiliate_Links_CPT.php:176
125
  msgid "ThirstyAffiliates affiliate links"
126
  msgstr ""
127
 
128
+ #: Models/Affiliate_Links_CPT.php:223 Models/Affiliate_Links_CPT.php:225
129
+ #: views/linkpicker/quick-add-affiliate-link.php:72
130
  msgid "Link Categories"
131
  msgstr ""
132
 
133
+ #: Models/Affiliate_Links_CPT.php:224
134
  msgid "Link Category"
135
  msgstr ""
136
 
137
+ #: Models/Affiliate_Links_CPT.php:226
138
  msgid "All Categories"
139
  msgstr ""
140
 
141
+ #: Models/Affiliate_Links_CPT.php:227
142
  msgid "Parent Category"
143
  msgstr ""
144
 
145
+ #: Models/Affiliate_Links_CPT.php:228
146
  msgid "Parent Category:"
147
  msgstr ""
148
 
149
+ #: Models/Affiliate_Links_CPT.php:229
150
  msgid "New Category Name"
151
  msgstr ""
152
 
153
+ #: Models/Affiliate_Links_CPT.php:230
154
  msgid "Add New Category"
155
  msgstr ""
156
 
157
+ #: Models/Affiliate_Links_CPT.php:231
158
  msgid "Edit Category"
159
  msgstr ""
160
 
161
+ #: Models/Affiliate_Links_CPT.php:232
162
  msgid "Update Category"
163
  msgstr ""
164
 
165
+ #: Models/Affiliate_Links_CPT.php:233
166
  msgid "View Category"
167
  msgstr ""
168
 
169
+ #: Models/Affiliate_Links_CPT.php:234
170
  msgid "Separate items with commas"
171
  msgstr ""
172
 
173
+ #: Models/Affiliate_Links_CPT.php:235
174
  msgid "Add or remove items"
175
  msgstr ""
176
 
177
+ #: Models/Affiliate_Links_CPT.php:236
178
  msgid "Choose from the most used"
179
  msgstr ""
180
 
181
+ #: Models/Affiliate_Links_CPT.php:237
182
  msgid "Popular Categories"
183
  msgstr ""
184
 
185
+ #: Models/Affiliate_Links_CPT.php:238
186
  msgid "Search Categories"
187
  msgstr ""
188
 
189
+ #: Models/Affiliate_Links_CPT.php:239
190
  msgid "Not Found"
191
  msgstr ""
192
 
193
+ #: Models/Affiliate_Links_CPT.php:240
194
  msgid "No items"
195
  msgstr ""
196
 
197
+ #: Models/Affiliate_Links_CPT.php:241
198
  msgid "Category list"
199
  msgstr ""
200
 
201
+ #: Models/Affiliate_Links_CPT.php:242
202
  msgid "Category list navigation"
203
  msgstr ""
204
 
205
+ #: Models/Affiliate_Links_CPT.php:282
206
  msgid "Link ID:"
207
  msgstr ""
208
 
209
+ #: Models/Affiliate_Links_CPT.php:298
210
  msgid "URLs"
211
  msgstr ""
212
 
213
+ #: Models/Affiliate_Links_CPT.php:305
214
  msgid "Attach Images"
215
  msgstr ""
216
 
217
+ #: Models/Affiliate_Links_CPT.php:312
218
+ msgid "Link Inserted Scanner"
219
+ msgstr ""
220
+
221
+ #: Models/Affiliate_Links_CPT.php:322
222
  msgid "Save Affiliate Link"
223
  msgstr ""
224
 
225
+ #: Models/Affiliate_Links_CPT.php:329
226
  msgid "Link Options"
227
  msgstr ""
228
 
229
+ #: Models/Affiliate_Links_CPT.php:460
230
+ msgid "Not yet scanned"
231
+ msgstr ""
232
+
233
+ #: Models/Affiliate_Links_CPT.php:465 Models/Affiliate_Links_CPT.php:896
234
+ msgid "Last scanned on:"
235
+ msgstr ""
236
+
237
+ #: Models/Affiliate_Links_CPT.php:485
238
+ msgid "No results found."
239
+ msgstr ""
240
+
241
+ #: Models/Affiliate_Links_CPT.php:616
242
  msgid "Link ID"
243
  msgstr ""
244
 
245
+ #: Models/Affiliate_Links_CPT.php:617
246
  msgid "Redirect Type"
247
  msgstr ""
248
 
249
+ #: Models/Affiliate_Links_CPT.php:618
250
  msgid "Cloaked URL"
251
  msgstr ""
252
 
253
+ #: Models/Affiliate_Links_CPT.php:619
254
  msgid "Link Destination"
255
  msgstr ""
256
 
257
+ #: Models/Affiliate_Links_CPT.php:751
258
+ msgid "Show Link Categories"
259
+ msgstr ""
260
+
261
+ #: Models/Bootstrap.php:389 Models/Settings.php:674
262
  msgid "Settings"
263
  msgstr ""
264
 
345
  msgid "Security Check Failed"
346
  msgstr ""
347
 
348
+ #: Models/Link_Picker.php:217
349
  msgid "Select image:"
350
  msgstr ""
351
 
352
+ #: Models/Link_Picker.php:226
353
  msgid "No images found"
354
  msgstr ""
355
 
356
+ #: Models/Link_Picker.php:242
357
  msgid "Insert link"
358
  msgstr ""
359
 
360
+ #: Models/Link_Picker.php:243
361
  msgid "Insert shortcode"
362
  msgstr ""
363
 
364
+ #: Models/Link_Picker.php:244
365
  msgid "Insert image"
366
  msgstr ""
367
 
368
+ #: Models/Link_Picker.php:265
369
  msgid "No affiliate links found"
370
  msgstr ""
371
 
372
+ #: Models/Marketing.php:177 Models/Settings.php:1786
373
  msgid "Required parameter not passed"
374
  msgstr ""
375
 
432
  msgid "Data Migration Complete!"
433
  msgstr ""
434
 
435
+ #: Models/Migration.php:781
436
  msgid "<b>ThirstyAffiliates is currently migrating your old affiliate link data to the new data model.<br>Please hold off making changes to your affiliate links. Please refresh the page and if this message has disappeared, the migration is complete.</b>"
437
  msgstr ""
438
 
439
+ #: Models/Script_Loader.php:145
440
+ msgid "affiliate link"
441
+ msgstr ""
442
+
443
+ #: Models/Script_Loader.php:146
444
+ msgid "quick add affiliate link"
445
+ msgstr ""
446
+
447
+ #: Models/Script_Loader.php:147
448
+ msgid "Open the ThirstyAffiliates link picker"
449
+ msgstr ""
450
+
451
  #: Models/Script_Loader.php:148
452
+ msgid "Open quick add affiliate link dialog"
453
+ msgstr ""
454
+
455
+ #: Models/Script_Loader.php:149
456
+ msgid "Type to search affiliate link"
457
+ msgstr ""
458
+
459
+ #: Models/Script_Loader.php:169
460
  msgid "Please provide a value for \"Custom Link Prefix\" option"
461
  msgstr ""
462
 
463
+ #: Models/Script_Loader.php:180
464
  msgid "Please input settings string"
465
  msgstr ""
466
 
467
+ #: Models/Script_Loader.php:181
468
  msgid "Settings string copied"
469
  msgstr ""
470
 
471
+ #: Models/Script_Loader.php:182
472
  msgid "Failed to copy settings string"
473
  msgstr ""
474
 
475
+ #: Models/Script_Loader.php:193
476
  msgid "Failed to do data migration"
477
  msgstr ""
478
 
479
+ #: Models/Script_Loader.php:194
480
  msgid "Are you sure you want to migrate your ThirstyAffiliates data to version 3 format?"
481
  msgstr ""
482
 
483
+ #: Models/Script_Loader.php:249
484
+ msgid "Previous"
485
  msgstr ""
486
 
487
+ #: Models/Script_Loader.php:250
488
+ msgid "Next"
489
  msgstr ""
490
 
491
+ #: Models/Script_Loader.php:251
492
+ msgid "Close"
493
  msgstr ""
494
 
495
+ #: Models/Script_Loader.php:252
496
+ msgid "Start Tour"
497
  msgstr ""
498
 
499
+ #: Models/Settings.php:227 views/cpt/view-link-options-metabox.php:12
500
+ #: views/cpt/view-link-options-metabox.php:24
501
+ #: views/cpt/view-link-options-metabox.php:36
502
+ #: views/cpt/view-link-options-metabox.php:49
503
+ #: views/linkpicker/quick-add-affiliate-link.php:54
504
+ #: views/linkpicker/quick-add-affiliate-link.php:65
505
+ msgid "Yes"
506
  msgstr ""
507
 
508
+ #: Models/Settings.php:228 views/cpt/view-link-options-metabox.php:13
509
+ #: views/cpt/view-link-options-metabox.php:25
510
+ #: views/cpt/view-link-options-metabox.php:37
511
+ #: views/cpt/view-link-options-metabox.php:50
512
+ #: views/linkpicker/quick-add-affiliate-link.php:55
513
+ #: views/linkpicker/quick-add-affiliate-link.php:66
514
+ msgid "No"
515
  msgstr ""
516
 
517
+ #: Models/Settings.php:229
518
+ msgid "Per category"
519
  msgstr ""
520
 
521
+ #: Models/Settings.php:235 views/reports/link-performance-report.php:39
522
+ #: views/reports/link-performance-report.php:80
523
  msgid "General"
524
  msgstr ""
525
 
526
+ #: Models/Settings.php:236
527
  msgid "Settings that change the general behaviour of ThirstyAffiliates."
528
  msgstr ""
529
 
530
+ #: Models/Settings.php:239
531
  msgid "Link Appearance"
532
  msgstr ""
533
 
534
+ #: Models/Settings.php:240
535
  msgid "Settings that specifically affect the behaviour & appearance of your affiliate links."
536
  msgstr ""
537
 
538
+ #: Models/Settings.php:243
539
  msgid "Modules"
540
  msgstr ""
541
 
542
+ #: Models/Settings.php:244
543
  msgid "This section allows you to turn certain parts of ThirstyAffiliates on or off. Below are the individual modules and features of the plugin that can be controlled."
544
  msgstr ""
545
 
546
+ #: Models/Settings.php:247
547
  msgid "Import/Export"
548
  msgstr ""
549
 
550
+ #: Models/Settings.php:248
551
  msgid "Import and Export global ThirstyAffiliates plugin settings from one site to another."
552
  msgstr ""
553
 
554
+ #: Models/Settings.php:251
555
  msgid "Help"
556
  msgstr ""
557
 
558
+ #: Models/Settings.php:252
559
  msgid "Links to knowledge base and other utilities."
560
  msgstr ""
561
 
562
+ #: Models/Settings.php:261
563
  msgid "Default Link Insertion Type"
564
  msgstr ""
565
 
566
+ #: Models/Settings.php:262
567
  msgid "Determines the default link type when inserting a link using the quick search."
568
  msgstr ""
569
 
570
+ #: Models/Settings.php:266
571
  msgid "Link"
572
  msgstr ""
573
 
574
+ #: Models/Settings.php:267
575
  msgid "Shortcode"
576
  msgstr ""
577
 
578
+ #: Models/Settings.php:273
579
  msgid "Disable \"uncategorized\" category on save?"
580
  msgstr ""
581
 
582
+ #: Models/Settings.php:274
583
  msgid "If links are including categories in the URL then by default ThirstyAffiliates will add an \"uncategorized\" category to apply to non-categorised links during save. If you disable this, it allows you to have some links with categories in the URL and some without."
584
  msgstr ""
585
 
586
+ #: Models/Settings.php:280
587
  msgid "Disable buttons on the Visual editor?"
588
  msgstr ""
589
 
590
+ #: Models/Settings.php:281
591
  msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
592
  msgstr ""
593
 
594
+ #: Models/Settings.php:287
595
  msgid "Disable buttons on the Text/Quicktags editor?"
596
  msgstr ""
597
 
598
+ #: Models/Settings.php:288
599
  msgid "Hide the ThirstyAffiliates buttons on the Text editor."
600
  msgstr ""
601
 
602
+ #: Models/Settings.php:294
603
+ msgid "Trim stats older than:"
604
+ msgstr ""
605
+
606
+ #: Models/Settings.php:295
607
+ msgid "months (Automatically clean the statistics database records older than a set point. Setting this to 0 will disable it)."
608
+ msgstr ""
609
+
610
+ #: Models/Settings.php:304
611
+ msgid "Don't cache 301 redirects?"
612
+ msgstr ""
613
+
614
+ #: Models/Settings.php:305
615
+ msgid "By default, browsers caches the 301 redirects. Enabling this option will tell the browser not to cache 301 redirects. Be aware that it is still up to the browser if it will cache it or not."
616
+ msgstr ""
617
+
618
+ #: Models/Settings.php:314
619
  msgid "Link Prefix"
620
  msgstr ""
621
 
622
+ #: Models/Settings.php:315
623
  #, php-format
624
  msgid "The prefix that comes before your cloaked link's slug. <br>eg. %s/<strong>recommends</strong>/your-affiliate-link-name.<br><br><b>Warning :</b> Changing this setting after you've used links in a post could break those links. Be careful!"
625
  msgstr ""
626
 
627
+ #: Models/Settings.php:343
628
  msgid "Custom Link Prefix"
629
  msgstr ""
630
 
631
+ #: Models/Settings.php:344
632
  msgid "Enter your preferred link prefix."
633
  msgstr ""
634
 
635
+ #: Models/Settings.php:350
636
  msgid "Link Category in URL?"
637
  msgstr ""
638
 
639
+ #: Models/Settings.php:351
640
  #, php-format
641
  msgid "Shows the primary selected category in the url. eg. %s/recommends/<strong>link-category</strong>/your-affiliate-link-name.<br><br><b>Warning :</b> Changing this setting after you've used links in a post could break those links. Be careful!"
642
  msgstr ""
643
 
644
+ #: Models/Settings.php:357
645
  msgid "Link Redirect Type"
646
  msgstr ""
647
 
648
+ #: Models/Settings.php:358
649
  msgid "This is the type of redirect ThirstyAffiliates will use to redirect the user to your affiliate link."
650
  msgstr ""
651
 
652
+ #: Models/Settings.php:366
653
  msgid "Use no follow on links?"
654
  msgstr ""
655
 
656
+ #: Models/Settings.php:367
657
  msgid "Add the nofollow attribute to links so search engines don't index them."
658
  msgstr ""
659
 
660
+ #: Models/Settings.php:376
661
+ msgid "No follow categories"
662
+ msgstr ""
663
+
664
+ #: Models/Settings.php:377
665
+ msgid "The links assigned to the selected category will be set as \"no follow\"."
666
+ msgstr ""
667
+
668
+ #: Models/Settings.php:381 Models/Settings.php:403 Models/Settings.php:425
669
+ #: Models/Settings.php:459
670
+ msgid "Select category..."
671
+ msgstr ""
672
+
673
+ #: Models/Settings.php:388
674
  msgid "Open links in new window?"
675
  msgstr ""
676
 
677
+ #: Models/Settings.php:389
678
  msgid "Make links open in a new browser tab by default."
679
  msgstr ""
680
 
681
+ #: Models/Settings.php:398
682
+ msgid "New window categories"
683
+ msgstr ""
684
+
685
+ #: Models/Settings.php:399
686
+ msgid "The links assigned to the selected category will be set as \"new window\"."
687
+ msgstr ""
688
+
689
+ #: Models/Settings.php:410
690
  msgid "Pass query strings to destination url?"
691
  msgstr ""
692
 
693
+ #: Models/Settings.php:411
694
  msgid "Enabling this option will pass all of the query strings present after the cloaked url to the destination url automatically when redirecting."
695
  msgstr ""
696
 
697
+ #: Models/Settings.php:420
698
+ msgid "Pass query strings categories"
699
+ msgstr ""
700
+
701
+ #: Models/Settings.php:421
702
+ msgid "The links assigned to the selected category will be set as \"pass query strings\"."
703
+ msgstr ""
704
+
705
+ #: Models/Settings.php:432
706
  msgid "Additional rel attribute tags"
707
  msgstr ""
708
 
709
+ #: Models/Settings.php:433
710
  msgid "Allows you to add extra tags into the rel= attribute when links are inserted."
711
  msgstr ""
712
 
713
+ #: Models/Settings.php:439
714
  msgid "Disable ThirstyAffiliates CSS classes?"
715
  msgstr ""
716
 
717
+ #: Models/Settings.php:440
718
  msgid "To help with styling a CSS class called \"thirstylink\" is added links on insertion.<br>Likewise the \"thirstylinkimg\" class is added to images when using the image insertion type. This option disables the addition these CSS classes."
719
  msgstr ""
720
 
721
+ #: Models/Settings.php:446
722
  msgid "Disable title attribute on link insertion?"
723
  msgstr ""
724
 
725
+ #: Models/Settings.php:447
726
  msgid "Links are automatically output with a title html attribute (by default this shows the title of the affiliate link).<br>This option disables the output of the title attribute on your links."
727
  msgstr ""
728
 
729
+ #: Models/Settings.php:453
730
  msgid "Select Category to Uncloak"
731
  msgstr ""
732
 
733
+ #: Models/Settings.php:454
734
  msgid "The links assigned to the selected category will be uncloaked."
735
  msgstr ""
736
 
737
+ #: Models/Settings.php:468
 
 
 
 
738
  msgid "Statistics"
739
  msgstr ""
740
 
741
+ #: Models/Settings.php:469
742
  msgid "When enabled, ThirstyAffiliates will collect click statistics information about visitors that click on your affiliate links. Also adds a new Reports section."
743
  msgstr ""
744
 
745
+ #: Models/Settings.php:476
746
  msgid "Link Fixer"
747
  msgstr ""
748
 
749
+ #: Models/Settings.php:477
750
  msgid "Link Fixer is a tiny piece of javascript code that runs on the frontend of your site to fix any outdated/broken affiliate links it detects. It's cache-friendly and runs after page load so it doesn't affect the rendering of content. Changed the settings on your site recently? Enabling Link Fixer means you don't need to update all your previously inserted affiliate links one by one – your visitors will never see an out of date affiliate link again."
751
  msgstr ""
752
 
753
+ #: Models/Settings.php:484
754
  msgid "Uncloak Links"
755
  msgstr ""
756
 
757
+ #: Models/Settings.php:485
758
  msgid "Uncloak Links is a feature to allow uncloaking of specific links on your site. It replaces the cloaked url with the actual destination url which is important for compatibility with some affiliate program with stricter terms (such as Amazon Associates). Once enabled, you will see a new Uncloak Link checkbox on the affiliate link edit screen. It also introduces a new setting under the Links tab for uncloaking whole categories.<br><br><b>Warning : </b>For this feature to work, the <strong>Link Fixer</strong> module needs to be turned on."
759
  msgstr ""
760
 
761
+ #: Models/Settings.php:495
762
  msgid "Import Global Settings"
763
  msgstr ""
764
 
765
+ #: Models/Settings.php:497
766
  msgid "Paste settings string here..."
767
  msgstr ""
768
 
769
+ #: Models/Settings.php:502
770
  msgid "Export Global Settings"
771
  msgstr ""
772
 
773
+ #: Models/Settings.php:511 Models/Settings.php:519
774
  msgid "Knowledge Base"
775
  msgstr ""
776
 
777
+ #: Models/Settings.php:516
778
  msgid "Documentation"
779
  msgstr ""
780
 
781
+ #: Models/Settings.php:520
782
  msgid "Guides, troubleshooting, FAQ and more."
783
  msgstr ""
784
 
785
+ #: Models/Settings.php:525
786
  msgid "Our Blog"
787
  msgstr ""
788
 
789
+ #: Models/Settings.php:528
790
  msgid "ThirstyAffiliates Blog"
791
  msgstr ""
792
 
793
+ #: Models/Settings.php:529
794
  msgid "Learn & grow your affiliate marketing – covering increasing sales, generating traffic, optimising your affiliate marketing, interviews & case studies."
795
  msgstr ""
796
 
797
+ #: Models/Settings.php:534
798
+ msgid "Join the Community"
799
+ msgstr ""
800
+
801
+ #: Models/Settings.php:541
802
  msgid "Other Utilities"
803
  msgstr ""
804
 
805
+ #: Models/Settings.php:546
806
  msgid "Migrate Old Data"
807
  msgstr ""
808
 
809
+ #: Models/Settings.php:548
810
  msgid "Migrate old ThirstyAffiliates version 2 data to new version 3 data model."
811
  msgstr ""
812
 
813
+ #: Models/Settings.php:673 Models/Settings.php:693
814
  msgid "ThirstyAffiliates Settings"
815
  msgstr ""
816
 
817
+ #: Models/Settings.php:706
818
+ msgid "Pro Features →"
819
+ msgstr ""
820
+
821
+ #: Models/Settings.php:824
822
  msgid "Save Changes"
823
  msgstr ""
824
 
825
+ #: Models/Settings.php:1300
826
  msgid "Key"
827
  msgstr ""
828
 
829
+ #: Models/Settings.php:1301
830
  msgid "Value"
831
  msgstr ""
832
 
833
+ #: Models/Settings.php:1424
834
  msgid "Another application is currently processing the database. Please wait for this to complete."
835
  msgstr ""
836
 
837
+ #: Models/Settings.php:1434
838
  msgid "Migrate"
839
  msgstr ""
840
 
841
+ #: Models/Settings.php:1437
842
  msgid "Migrating data. Please wait..."
843
  msgstr ""
844
 
845
+ #: Models/Settings.php:1468
846
+ msgid "Like us on Facebook"
847
+ msgstr ""
848
+
849
+ #: Models/Settings.php:1472
850
+ msgid "Follow us on Twitter"
851
+ msgstr ""
852
+
853
+ #: Models/Settings.php:1476
854
+ msgid "Follow us on Linkedin"
855
+ msgstr ""
856
+
857
+ #: Models/Settings.php:1479
858
+ msgid "Join Our Affiliate Program"
859
+ msgstr ""
860
+
861
+ #: Models/Settings.php:1480
862
+ #, php-format
863
+ msgid "(up to 30% commisions)"
864
+ msgstr ""
865
+
866
+ #: Models/Settings.php:1513
867
  msgid "Copy"
868
  msgstr ""
869
 
870
+ #: Models/Settings.php:1550
871
  msgid "Import Settings"
872
  msgstr ""
873
 
874
+ #: Models/Settings.php:1765
875
  msgid "Unauthorized operation. Only authorized accounts can access global plugin settings string"
876
  msgstr ""
877
 
878
+ #: Models/Settings.php:1794
879
  msgid "Settings successfully imported"
880
  msgstr ""
881
 
882
+ #: Models/Settings.php:1816
883
  msgid "Unauthorized operation. Only authorized accounts can import settings"
884
  msgstr ""
885
 
886
+ #: Models/Settings.php:1821
887
  msgid "Invalid global settings string"
888
  msgstr ""
889
 
890
+ #: Models/Shortcodes.php:248
891
  msgid "SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please check your short code!"
892
  msgstr ""
893
 
894
+ #: Models/Stats_Reporting.php:350
895
  msgid "Selected affiliate link is invalid"
896
  msgstr ""
897
 
898
+ #: Models/Stats_Reporting.php:474
899
+ msgid "Link Overview"
900
  msgstr ""
901
 
902
+ #: Models/Stats_Reporting.php:475
903
+ msgid "Link Overview Report"
904
  msgstr ""
905
 
906
+ #: Models/Stats_Reporting.php:476
907
  msgid "Total clicks on affiliate links over a given period."
908
  msgstr ""
909
 
910
+ #: Models/Stats_Reporting.php:502
911
  msgid "ThirstyAffiliates Reports"
912
  msgstr ""
913
 
914
+ #: Models/Stats_Reporting.php:503
915
  msgid "Reports"
916
  msgstr ""
917
 
918
+ #: Models/Stats_Reporting.php:581
919
  msgid "Year"
920
  msgstr ""
921
 
922
+ #: Models/Stats_Reporting.php:582
923
  msgid "Last Month"
924
  msgstr ""
925
 
926
+ #: Models/Stats_Reporting.php:583
927
  msgid "This Month"
928
  msgstr ""
929
 
930
+ #: Models/Stats_Reporting.php:584
931
  msgid "Last 7 Days"
932
  msgstr ""
933
 
934
+ #: thirstyaffiliates.php:223
935
  msgid "Activate this plugin"
936
  msgstr ""
937
 
938
+ #: thirstyaffiliates.php:223
939
  msgid "Click here to activate &rarr;"
940
  msgstr ""
941
 
942
+ #: thirstyaffiliates.php:225
943
  msgid "Install this plugin"
944
  msgstr ""
945
 
946
+ #: thirstyaffiliates.php:225
947
  msgid "Click here to install from WordPress.org repo &rarr;"
948
  msgstr ""
949
 
950
+ #: thirstyaffiliates.php:227
951
  #, php-format
952
  msgid "<br/>Please ensure you have the <a href=\"%1$s\" target=\"_blank\">%2$s</a> plugin installed and activated.<br/>"
953
  msgstr ""
954
 
955
+ #: thirstyaffiliates.php:234
956
  msgid "<b>ThirstyAffiliates</b> plugin missing dependency.<br/>"
957
  msgstr ""
958
 
973
  msgid "Upload/Insert"
974
  msgstr ""
975
 
976
+ #: views/cpt/view-inserted-link-scanner-metabox.php:4
977
+ msgid "Start Scan"
978
+ msgstr ""
979
+
980
+ #: views/cpt/view-inserted-link-scanner-metabox.php:12
981
+ msgid "ID"
982
+ msgstr ""
983
+
984
+ #: views/cpt/view-inserted-link-scanner-metabox.php:13
985
+ msgid "Title"
986
+ msgstr ""
987
+
988
+ #: views/cpt/view-inserted-link-scanner-metabox.php:14
989
+ msgid "Post Type"
990
+ msgstr ""
991
+
992
  #: views/cpt/view-link-options-metabox.php:7
993
  #: views/linkpicker/quick-add-affiliate-link.php:50
994
  msgid "No follow this link?"
1008
  msgid "Global (%s)"
1009
  msgstr ""
1010
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1011
  #: views/cpt/view-link-options-metabox.php:19
1012
  #: views/linkpicker/quick-add-affiliate-link.php:61
1013
  msgid "Open this link in new window?"
1050
  msgid "Additional rel tags:"
1051
  msgstr ""
1052
 
 
 
 
 
1053
  #: views/cpt/view-save-affiliate-link-metabox.php:4
1054
  #: views/cpt/view-urls-metabox.php:24
1055
  msgid "Save"
1124
  msgid "Redirect Type:"
1125
  msgstr ""
1126
 
1127
+ #: views/linkpicker/quick-add-affiliate-link.php:74
1128
+ msgid "Select categories..."
1129
+ msgstr ""
1130
+
1131
+ #: views/linkpicker/quick-add-affiliate-link.php:86
1132
  msgid "Add Link"
1133
  msgstr ""
1134
 
1135
+ #: views/linkpicker/quick-add-affiliate-link.php:89
1136
  msgid "Add Link & Insert Into Post"
1137
  msgstr ""
1138
 
1144
  msgid "Go"
1145
  msgstr ""
1146
 
1147
+ #: views/reports/link-performance-report.php:41
1148
+ #: views/reports/link-performance-report.php:81
1149
  msgid "All links"
1150
  msgstr ""
1151
 
1152
+ #: views/reports/link-performance-report.php:48
1153
  msgid "Fetch report for specific link:"
1154
  msgstr ""
1155
 
1156
+ #: views/reports/link-performance-report.php:50
1157
  msgid "Search affiliate link"
1158
  msgstr ""
1159
 
1160
+ #: views/reports/link-performance-report.php:62
1161
  msgid "Fetch Report"
1162
  msgstr ""
1163
 
1164
+ #: views/reports/link-performance-report.php:84
1165
  msgid "Clicks: "
1166
  msgstr ""
readme.txt CHANGED
@@ -4,8 +4,8 @@ Donate link:
4
  Tags: affiliate, link, affiliate link management, link cloaker, link redirect, shortlink, thirstyaffiliates, thirsty affiliates
5
  Requires at least: 3.4
6
  Requires PHP: 5.6
7
- Tested up to: 4.9.2
8
- Stable tag: 3.2.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -159,6 +159,12 @@ See our [Knowledge Base](https://thirstyaffiliates.com/knowledge-base/?utm_sourc
159
 
160
  == Changelog ==
161
 
 
 
 
 
 
 
162
  = 3.2.1 =
163
  * Improvement: Set post type and taxonomy to non-public facing
164
  * Improvement: Rename the Link Performance report to Link Overview
4
  Tags: affiliate, link, affiliate link management, link cloaker, link redirect, shortlink, thirstyaffiliates, thirsty affiliates
5
  Requires at least: 3.4
6
  Requires PHP: 5.6
7
+ Tested up to: 4.9.4
8
+ Stable tag: 3.2.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
159
 
160
  == Changelog ==
161
 
162
+ = 3.2.2 =
163
+ * Improvement: Allow Force no-cache headers on 301 redirects
164
+ * Improvement: Minor codebase improvements
165
+ * Bug Fix: Affiliate link can redirect even with invalid category slug
166
+ * Bug Fix: Allow valid characters on the slug box pattern match
167
+
168
  = 3.2.1 =
169
  * Improvement: Set post type and taxonomy to non-public facing
170
  * Improvement: Rename the Link Performance report to Link Overview
thirstyaffiliates.php CHANGED
@@ -3,11 +3,11 @@
3
  * Plugin Name: ThirstyAffiliates
4
  * Plugin URI: http://thirstyaffiliates.com/
5
  * Description: ThirstyAffiliates is a revolution in affiliate link management. Collect, collate and store your affiliate links for use in your posts and pages.
6
- * Version: 3.2.1
7
  * Author: Rymera Web Co
8
  * Author URI: https://rymera.com.au/
9
  * Requires at least: 4.4.2
10
- * Tested up to: 4.8.2
11
  *
12
  * Text Domain: thirstyaffiliates
13
  * Domain Path: /languages/
3
  * Plugin Name: ThirstyAffiliates
4
  * Plugin URI: http://thirstyaffiliates.com/
5
  * Description: ThirstyAffiliates is a revolution in affiliate link management. Collect, collate and store your affiliate links for use in your posts and pages.
6
+ * Version: 3.2.2
7
  * Author: Rymera Web Co
8
  * Author URI: https://rymera.com.au/
9
  * Requires at least: 4.4.2
10
+ * Tested up to: 4.9.4
11
  *
12
  * Text Domain: thirstyaffiliates
13
  * Domain Path: /languages/
views/cpt/view-urls-metabox.php CHANGED
@@ -20,7 +20,7 @@ wp_nonce_field( 'thirsty_affiliates_cpt_nonce', '_thirstyaffiliates_nonce' ); ?>
20
  <a class="button" href="<?php echo esc_attr( $thirstylink->get_prop( 'permalink' ) ); ?>" target="_blank"><?php _e( 'Visit Link' , 'thirstyaffiliates' ); ?></a>
21
  </span>
22
  <span class="slug-fields" style="display: none;">
23
- <input type="text" class="ta-form-input" id="ta_slug" name="post_name" pattern="[a-z0-9-]+" value="<?php echo esc_attr( $thirstylink->get_prop( 'slug' ) ); ?>">
24
  <button type="button" class="save-ta-slug button"><?php _e( 'Save' , 'thirstyaffiliates' ); ?></button>
25
  </span>
26
  </p>
20
  <a class="button" href="<?php echo esc_attr( $thirstylink->get_prop( 'permalink' ) ); ?>" target="_blank"><?php _e( 'Visit Link' , 'thirstyaffiliates' ); ?></a>
21
  </span>
22
  <span class="slug-fields" style="display: none;">
23
+ <input type="text" class="ta-form-input" id="ta_slug" name="post_name" pattern="[a-z0-9-_% ]+" value="<?php echo esc_attr( $thirstylink->get_prop( 'slug' ) ); ?>">
24
  <button type="button" class="save-ta-slug button"><?php _e( 'Save' , 'thirstyaffiliates' ); ?></button>
25
  </span>
26
  </p>
views/reports/link-performance-report.php CHANGED
@@ -77,6 +77,7 @@
77
  <script type="text/javascript">
78
  var report_data = { 'click_counts' :<?php echo json_encode( $data ); ?>},
79
  report_details = {
 
80
  label : '<?php echo _e( 'All links' , 'thirstyaffiliates' ); ?>',
81
  timeformat : '<?php echo ( $range[ 'type' ] == 'year' ) ? '%b' : '%d %b'; ?>',
82
  minTickSize : [ 1 , "<?php echo ( $range[ 'type' ] == 'year' ) ? 'month' : 'day'; ?>" ],
77
  <script type="text/javascript">
78
  var report_data = { 'click_counts' :<?php echo json_encode( $data ); ?>},
79
  report_details = {
80
+ label : '<?php echo _e( 'General' , 'thirstyaffiliates' ); ?>',
81
  label : '<?php echo _e( 'All links' , 'thirstyaffiliates' ); ?>',
82
  timeformat : '<?php echo ( $range[ 'type' ] == 'year' ) ? '%b' : '%d %b'; ?>',
83
  minTickSize : [ 1 , "<?php echo ( $range[ 'type' ] == 'year' ) ? 'month' : 'day'; ?>" ],