UpdraftPlus WordPress Backup Plugin - Version 1.16.23

Version Description

  • 01/Apr/2020 =

  • FEATURE: Post module handler for UpdraftCentral

  • FEATURE: Added the ability to select which database tables you want to restore

  • FIX: An apparent change in Dropbox API behaviour at a recent date was causing uploads to Dropbox to be corrupted in some circumstances in versions 1.16.21-22.

  • TWEAK: The "Backup now" options were all unselected after trying to take a manual incremental backup with no possible entities for increments

  • TWEAK: When importing a single site into a multisite remove UpdraftPlus options and cron to prevent unwanted backups

  • TWEAK: Auto select clone package based on size of the selected backup

  • TWEAK: Prevent PHP notice when logging a Google Drive account full condition

  • TWEAK: Prevent a PHP notice when Azure is deleting files on PHP 7.4

  • TWEAK: Prevent potential PHP notice if returned OneDrive quota is zero

  • TWEAK: When restoring a single site that is part of a multisite only put that single site in maintenance mode not the entire network

  • TWEAK: Remove filesize warning from the log if we successfully added the file to the zip to prevent user concern

  • TWEAK: Add page_visit_history table to list of those with low-priority data and search/replace unnecessary

  • TWEAK: Add a warning message when restoring/migrating from an older PHP version to a newer version

  • TWEAK: Set 'NO_AUTO_VALUE_ON_ZERO' sql mode on restorations, for better compatibility with MySQL 8

  • TWEAK: Add WordFence logging tables to list of optional tables

  • TWEAK: If the Google Cloud revoke call fails try again once

  • TWEAK: Catch file closed errors during uploads to Dropbox to prevent unwanted errors in the backup log and prevent user concern

  • TWEAK: Get list of supported UpdraftClone regions from updraftplus.com

  • TWEAK: Logging in backup modules will now correctly pass on arguments to main log function

  • TWEAK: Change OneDrive 'account full, expected to fail' error message to a recoverable warning

  • TWEAK: Detect non-homepage 404s and provide FAQ link after a restore

  • TWEAK: Add paging to the existing backups table to prevent long loading times for sites with a large amount of backups

  • TWEAK: Remove unwanted padding on some buttons

Download this release

Release Info

Developer DavidAnderson
Plugin Icon 128x128 UpdraftPlus WordPress Backup Plugin
Version 1.16.23
Comparing to
See all releases

Code changes from version 1.16.22 to 1.16.23

Files changed (43) hide show
  1. admin.php +106 -28
  2. backup.php +6 -3
  3. central/bootstrap.php +1 -3
  4. central/classes/automatic-upgrader-skin-compatibility.php +1 -1
  5. central/listener.php +4 -2
  6. central/modules/analytics.php +3 -3
  7. central/modules/core.php +3 -2
  8. central/modules/media.php +1 -2
  9. central/modules/plugin.php +2 -2
  10. central/modules/posts.php +1103 -521
  11. central/modules/theme.php +1 -1
  12. central/modules/updates.php +11 -7
  13. class-updraftplus.php +75 -1
  14. css/updraftplus-admin.css +5 -1
  15. css/updraftplus-admin.min.css +1 -1
  16. css/updraftplus-admin.min.css.map +1 -1
  17. includes/Dropbox2/API.php +394 -392
  18. includes/Dropbox2/OAuth/Consumer/Curl.php +13 -4
  19. includes/class-backup-history.php +9 -2
  20. includes/class-commands.php +6 -2
  21. includes/class-database-utility.php +141 -0
  22. includes/updraft-admin-common.js +82 -9
  23. includes/updraft-admin-common.min.js +5 -5
  24. js/updraft-admin-restore.js +30 -0
  25. js/updraft-admin-restore.min.js +1 -1
  26. languages/updraftplus.pot +1164 -1048
  27. methods/addon-base-v2.php +5 -4
  28. methods/backup-module.php +1 -1
  29. methods/cloudfiles.php +11 -3
  30. methods/dropbox.php +17 -7
  31. methods/ftp.php +10 -2
  32. methods/googledrive.php +12 -4
  33. methods/openstack-base.php +13 -5
  34. methods/s3.php +11 -3
  35. readme.txt +29 -3
  36. restorer.php +267 -167
  37. templates/wp-admin/settings/existing-backups-table.php +16 -1
  38. templates/wp-admin/settings/form-contents.php +1 -1
  39. updraftplus.php +2 -2
  40. vendor/autoload.php +1 -1
  41. vendor/composer/autoload_real.php +7 -7
  42. vendor/composer/autoload_static.php +5 -5
  43. vendor/composer/installed.json +6 -6
admin.php CHANGED
@@ -18,8 +18,6 @@ class UpdraftPlus_Admin {
18
  private $auth_instance_ids = array('dropbox' => array(), 'onedrive' => array(), 'googledrive' => array(), 'googlecloud' => array());
19
 
20
  private $php_versions = array('5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4');
21
-
22
- private $regions = array('London', 'New York', 'San Francisco', 'Amsterdam', 'Singapore', 'Frankfurt', 'Toronto', 'Bangalore');
23
 
24
  private $storage_service_without_settings;
25
 
@@ -824,7 +822,7 @@ class UpdraftPlus_Admin {
824
  'errordata' => __('Error data:', 'updraftplus'),
825
  'error' => __('Error:', 'updraftplus'),
826
  'errornocolon' => __('Error', 'updraftplus'),
827
- 'existing_backups' => __('Existing Backups', 'updraftplus'),
828
  'fileready' => __('File ready.', 'updraftplus'),
829
  'actions' => __('Actions', 'updraftplus'),
830
  'deletefromserver' => __('Delete from your web server', 'updraftplus'),
@@ -986,6 +984,9 @@ class UpdraftPlus_Admin {
986
  'preparing_backup_files' => __('Preparing backup files', 'updraftplus'),
987
  'ajax_restore_contact_failed' => __('Attempts by the browser to contact the website failed.', 'updraftplus'),
988
  'ajax_restore_error' => __('Restore error:', 'updraftplus'),
 
 
 
989
  ));
990
  }
991
 
@@ -1736,6 +1737,8 @@ class UpdraftPlus_Admin {
1736
  $local_deleted = 0;
1737
  $remote_deleted = 0;
1738
  $sets_removed = 0;
 
 
1739
 
1740
  foreach ($timestamps as $i => $timestamp) {
1741
 
@@ -1820,20 +1823,25 @@ class UpdraftPlus_Admin {
1820
  if ($remote_deleted == $remote_delete_limit) {
1821
  $timestamps_list = implode(',', $timestamps);
1822
 
1823
- return $this->remove_backup_set_cleanup(false, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps);
1824
  }
1825
 
1826
  $deleted = $remote_obj->delete($files);
1827
 
1828
- if (-1 === $deleted) {
1829
- // echo __('Did not know how to delete from this cloud service.', 'updraftplus');
1830
- } elseif (false !== $deleted) {
1831
  $remote_deleted = $remote_deleted + count($files);
1832
 
1833
  unset($backups[$timestamp][$key]);
1834
 
1835
  // If we don't save the array back, then the above section will fire again for the same files - and the remote storage will be requested to delete already-deleted files, which then means no time is actually saved by the browser-backend loop method.
1836
  UpdraftPlus_Backup_History::save_history($backups);
 
 
 
 
 
 
 
1837
  }
1838
 
1839
  continue;
@@ -1842,15 +1850,20 @@ class UpdraftPlus_Admin {
1842
  if ($remote_deleted == $remote_delete_limit) {
1843
  $timestamps_list = implode(',', $timestamps);
1844
 
1845
- return $this->remove_backup_set_cleanup(false, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps);
1846
  }
1847
 
1848
  $deleted = $remote_obj->delete($file);
1849
 
1850
- if (-1 === $deleted) {
1851
- // echo __('Did not know how to delete from this cloud service.', 'updraftplus');
1852
- } elseif (false !== $deleted) {
1853
  $remote_deleted++;
 
 
 
 
 
 
 
1854
  }
1855
 
1856
  $itext = $index ? (string) $index : '';
@@ -1886,7 +1899,7 @@ class UpdraftPlus_Admin {
1886
 
1887
  $timestamps_list = implode(',', $timestamps);
1888
 
1889
- return $this->remove_backup_set_cleanup(true, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps);
1890
 
1891
  }
1892
 
@@ -1915,10 +1928,11 @@ class UpdraftPlus_Admin {
1915
  * @param Integer $sets_removed - how many complete sets were removed
1916
  * @param String $timestamps - a csv of remaining timestamps
1917
  * @param String $deleted_timestamps - a csv of deleted timestamps
 
1918
  *
1919
  * @return Array - information on the status, suitable for returning to the UI
1920
  */
1921
- public function remove_backup_set_cleanup($delete_complete, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps, $deleted_timestamps) {
1922
 
1923
  global $updraftplus;
1924
 
@@ -1927,6 +1941,48 @@ class UpdraftPlus_Admin {
1927
  UpdraftPlus_Backup_History::save_history($backups);
1928
 
1929
  $updraftplus->log("Local files deleted: $local_deleted. Remote files deleted: $remote_deleted");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1930
 
1931
  if ($delete_complete) {
1932
  $set_message = __('Backup sets removed:', 'updraftplus');
@@ -1937,29 +1993,31 @@ class UpdraftPlus_Admin {
1937
  restore_error_handler();
1938
  }
1939
 
1940
- return array('result' => 'success', 'set_message' => $set_message, 'local_message' => $local_message, 'remote_message' => $remote_message, 'backup_sets' => $sets_removed, 'backup_local' => $local_deleted, 'backup_remote' => $remote_deleted);
1941
  } else {
1942
 
1943
- return array('result' => 'continue', 'backup_local' => $local_deleted, 'backup_remote' => $remote_deleted, 'backup_sets' => $sets_removed, 'timestamps' => $timestamps, 'deleted_timestamps' => $deleted_timestamps);
1944
  }
1945
  }
1946
 
1947
  /**
1948
  * Get the history status HTML and other information
1949
  *
1950
- * @param Boolean $rescan - whether to rescan local storage first
1951
- * @param Boolean $remotescan - whether to rescan remote storage first
1952
- * @param Boolean $debug - whether to return debugging information also
 
1953
  *
1954
  * @return Array - the information requested
1955
  */
1956
- public function get_history_status($rescan, $remotescan, $debug = false) {
1957
 
1958
  global $updraftplus;
1959
 
1960
  if ($rescan) $messages = UpdraftPlus_Backup_History::rebuild($remotescan, false, $debug);
1961
  $backup_history = UpdraftPlus_Backup_History::get_history();
1962
- $output = UpdraftPlus_Backup_History::existing_backup_table($backup_history);
 
1963
  $data = array();
1964
 
1965
  if (!empty($messages) && is_array($messages)) {
@@ -1985,7 +2043,7 @@ class UpdraftPlus_Admin {
1985
  }
1986
 
1987
  return apply_filters('updraftplus_get_history_status_result', array(
1988
- 'n' => __('Existing Backups', 'updraftplus').' <span class="updraft_existing_backups_count">'.count($backup_history).'</span>',
1989
  't' => $output, // table
1990
  'data' => $data,
1991
  'cksum' => md5($output),
@@ -4274,7 +4332,7 @@ class UpdraftPlus_Admin {
4274
  }
4275
 
4276
  /**
4277
- * Get HTML for the 'Upload' button for a particular backup in the 'Existing Backups' tab
4278
  *
4279
  * @param Integer $backup_time - backup timestamp (epoch time)
4280
  * @param String $nonce - backup nonce
@@ -4340,7 +4398,7 @@ class UpdraftPlus_Admin {
4340
  }
4341
 
4342
  /**
4343
- * Get HTML for the 'Delete' button for a particular backup in the 'Existing Backups' tab
4344
  *
4345
  * @param Integer $backup_time - backup timestamp (epoch time)
4346
  * @param String $nonce - backup nonce
@@ -4872,6 +4930,15 @@ ENDHERE;
4872
  $pval = $updraftplus->have_addons ? 1 : 0;
4873
  $sval = (true === $restore_result) ? 1 : 0;
4874
 
 
 
 
 
 
 
 
 
 
4875
  $updraftplus->log_restore_update(
4876
  array(
4877
  'type' => 'state',
@@ -4879,7 +4946,8 @@ ENDHERE;
4879
  'data' => array(
4880
  'actions' => array(
4881
  __('Return to UpdraftPlus configuration', 'updraftplus') => UpdraftPlus_Options::admin_page_url() . '?page=updraftplus&updraft_restore_success=' . $sval . '&pval=' . $pval
4882
- )
 
4883
  )
4884
  )
4885
  );
@@ -5602,10 +5670,13 @@ ENDHERE;
5602
  * @param boolean $is_admin_user - a boolean to indicate if the user who requested the clone has clone management permissions
5603
  * @param array $supported_wp_versions - an array of supported WordPress versions
5604
  * @param array $supported_packages - an array of supported clone packages
 
5605
  *
5606
  * @return string - the clone UI widget
5607
  */
5608
- public function updraftplus_clone_ui_widget($is_admin_user = false, $supported_wp_versions, $supported_packages) {
 
 
5609
  $output = '<p class="updraftplus-option updraftplus-option-inline php-version">';
5610
  $output .= '<span class="updraftplus-option-label">'.sprintf(__('%s version:', 'updraftplus'), 'PHP').'</span> ';
5611
  $output .= $this->output_select_data($this->php_versions, 'php');
@@ -5616,7 +5687,7 @@ ENDHERE;
5616
  $output .= '</p>';
5617
  $output .= '<p class="updraftplus-option updraftplus-option-inline region">';
5618
  $output .= ' <span class="updraftplus-option-label">'.__('Clone region:', 'updraftplus').'</span> ';
5619
- $output .= $this->output_select_data($this->regions, 'region');
5620
  $output .= '</p>';
5621
 
5622
  $backup_history = UpdraftPlus_Backup_History::get_history();
@@ -5636,9 +5707,10 @@ ENDHERE;
5636
 
5637
  if (!empty($backup_history)) {
5638
  foreach ($backup_history as $key => $backup) {
 
5639
  $pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
5640
  $label = isset($backup['label']) ? ' ' . $backup['label'] : '';
5641
- $output .= '<option value="'.$key. '" data-nonce="'.$backup['nonce'].'" data-timestamp="'.$key.'">' . $pretty_date . $label . '</option>';
5642
  }
5643
  }
5644
  $output .= '</select>';
@@ -5647,7 +5719,13 @@ ENDHERE;
5647
  if ((defined('UPDRAFTPLUS_UPDRAFTCLONE_DEVELOPMENT') && UPDRAFTPLUS_UPDRAFTCLONE_DEVELOPMENT) || $is_admin_user) {
5648
  $output .= '<p class="updraftplus-option updraftplus-option-inline package">';
5649
  $output .= ' <span class="updraftplus-option-label">'.__('Clone package:', 'updraftplus').'</span> ';
5650
- $output .= $this->output_select_data($supported_packages, 'package', 'starter');
 
 
 
 
 
 
5651
  $output .= '</p>';
5652
  $output .= '<p class="updraftplus-option updraftplus-option-inline updraftclone-branch">';
5653
  $output .= ' <span class="updraftplus-option-label">UpdraftClone Branch:</span> ';
18
  private $auth_instance_ids = array('dropbox' => array(), 'onedrive' => array(), 'googledrive' => array(), 'googlecloud' => array());
19
 
20
  private $php_versions = array('5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4');
 
 
21
 
22
  private $storage_service_without_settings;
23
 
822
  'errordata' => __('Error data:', 'updraftplus'),
823
  'error' => __('Error:', 'updraftplus'),
824
  'errornocolon' => __('Error', 'updraftplus'),
825
+ 'existing_backups' => __('Existing backups', 'updraftplus'),
826
  'fileready' => __('File ready.', 'updraftplus'),
827
  'actions' => __('Actions', 'updraftplus'),
828
  'deletefromserver' => __('Delete from your web server', 'updraftplus'),
984
  'preparing_backup_files' => __('Preparing backup files', 'updraftplus'),
985
  'ajax_restore_contact_failed' => __('Attempts by the browser to contact the website failed.', 'updraftplus'),
986
  'ajax_restore_error' => __('Restore error:', 'updraftplus'),
987
+ 'ajax_restore_404_detected' => '<div class="notice notice-warning" style="margin: 0px; padding: 5px;"><p><span class="dashicons dashicons-warning"></span> <strong>'. __('Warning:', 'updraftplus') . '</strong></p><p>' . __('Attempts by the browser to access some pages have returned a "not found (404)" error. This could mean that your .htaccess file has incorrect contents, is missing, or that your webserver is missing an equivalent mechanism.', 'updraftplus'). '</p><p>'.__('Missing pages:', 'updraftplus').'</p><ul class="updraft_missing_pages"></ul><a target="_blank" href="https://updraftplus.com/faqs/migrating-site-front-page-works-pages-give-404-error/">'.__('Follow this link for more information', 'updraftplus').'.</a></div>',
988
+ 'delete_error_log_prompt' => __('Please check the error log for more details', 'updraftplus'),
989
+ 'existing_backups_limit' => defined('UPDRAFTPLUS_EXISTING_BACKUPS_LIMIT') ? UPDRAFTPLUS_EXISTING_BACKUPS_LIMIT : 100,
990
  ));
991
  }
992
 
1737
  $local_deleted = 0;
1738
  $remote_deleted = 0;
1739
  $sets_removed = 0;
1740
+
1741
+ $deletion_errors = array();
1742
 
1743
  foreach ($timestamps as $i => $timestamp) {
1744
 
1823
  if ($remote_deleted == $remote_delete_limit) {
1824
  $timestamps_list = implode(',', $timestamps);
1825
 
1826
+ return $this->remove_backup_set_cleanup(false, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps, $deletion_errors);
1827
  }
1828
 
1829
  $deleted = $remote_obj->delete($files);
1830
 
1831
+ if (true === $deleted) {
 
 
1832
  $remote_deleted = $remote_deleted + count($files);
1833
 
1834
  unset($backups[$timestamp][$key]);
1835
 
1836
  // If we don't save the array back, then the above section will fire again for the same files - and the remote storage will be requested to delete already-deleted files, which then means no time is actually saved by the browser-backend loop method.
1837
  UpdraftPlus_Backup_History::save_history($backups);
1838
+ } else {
1839
+ // Handle abstracted error codes/return fail status. Including handle array/objects returned
1840
+ if (is_object($deleted) || is_array($deleted)) $deleted = false;
1841
+
1842
+ if (!array_key_exists($instance_id, $deletion_errors)) {
1843
+ $deletion_errors[$instance_id] = array('error_code' => $deleted, 'service' => $service);
1844
+ }
1845
  }
1846
 
1847
  continue;
1850
  if ($remote_deleted == $remote_delete_limit) {
1851
  $timestamps_list = implode(',', $timestamps);
1852
 
1853
+ return $this->remove_backup_set_cleanup(false, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps, $deletion_errors);
1854
  }
1855
 
1856
  $deleted = $remote_obj->delete($file);
1857
 
1858
+ if (true === $deleted) {
 
 
1859
  $remote_deleted++;
1860
+ } else {
1861
+ // Handle abstracted error codes/return fail status. Including handle array/objects returned
1862
+ if (is_object($deleted) || is_array($deleted)) $deleted = false;
1863
+
1864
+ if (!array_key_exists($instance_id, $deletion_errors)) {
1865
+ $deletion_errors[$instance_id] = array('error_code' => $deleted, 'service' => $service);
1866
+ }
1867
  }
1868
 
1869
  $itext = $index ? (string) $index : '';
1899
 
1900
  $timestamps_list = implode(',', $timestamps);
1901
 
1902
+ return $this->remove_backup_set_cleanup(true, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps_list, $deleted_timestamps, $deletion_errors);
1903
 
1904
  }
1905
 
1928
  * @param Integer $sets_removed - how many complete sets were removed
1929
  * @param String $timestamps - a csv of remaining timestamps
1930
  * @param String $deleted_timestamps - a csv of deleted timestamps
1931
+ * @param Array $deletion_errors - an array of abstracted deletion errors, consisting of [error_code, service, instance]. For user notification purposes only, main error logging occurs at service.
1932
  *
1933
  * @return Array - information on the status, suitable for returning to the UI
1934
  */
1935
+ public function remove_backup_set_cleanup($delete_complete, $backups, $local_deleted, $remote_deleted, $sets_removed, $timestamps, $deleted_timestamps, $deletion_errors = array()) {
1936
 
1937
  global $updraftplus;
1938
 
1941
  UpdraftPlus_Backup_History::save_history($backups);
1942
 
1943
  $updraftplus->log("Local files deleted: $local_deleted. Remote files deleted: $remote_deleted");
1944
+
1945
+ /*
1946
+ Disable until next release
1947
+ $error_messages = array();
1948
+ $storage_details = array();
1949
+
1950
+ foreach ($deletion_errors as $instance => $entry) {
1951
+ $service = $entry['service'];
1952
+
1953
+ if (!array_key_exists($service, $storage_details)) {
1954
+ // As errors from multiple instances of a service can be present, store the service storage object for possible use later
1955
+ $new_service = UpdraftPlus_Storage_Methods_Interface::get_storage_objects_and_ids(array($service));
1956
+ $storage_details = array_merge($storage_details, $new_service);
1957
+ }
1958
+
1959
+ $intance_label = !empty($storage_details[$service]['instance_settings'][$instance]['instance_label']) ? $storage_details[$service]['instance_settings'][$instance]['instance_label'] : $service;
1960
+
1961
+ switch ($entry['error_code']) {
1962
+ case 'authentication_fail':
1963
+ $error_messages[] = sprintf(__("The authentication failed for '%s'.", 'updraftplus').' '.__('Please check your credentials.', 'updraftplus'), $intance_label);
1964
+ break;
1965
+ case 'service_unavailable':
1966
+ $error_messages[] = sprintf(__("We were unable to access '%s'.", 'updraftplus').' '.__('Service unavailable.', 'updraftplus'), $intance_label);
1967
+ break;
1968
+ case 'container_access_error':
1969
+ $error_messages[] = sprintf(__("We were unable to access the folder/container for '%s'.", 'updraftplus').' '.__('Please check your permissions.', 'updraftplus'), $intance_label);
1970
+ break;
1971
+ case 'file_access_error':
1972
+ $error_messages[] = sprintf(__("We were unable to access a file on '%s'.", 'updraftplus').' '.__('Please check your permissions.', 'updraftplus'), $intance_label);
1973
+ break;
1974
+ case 'file_delete_error':
1975
+ $error_messages[] = sprintf(__("We were unable to delete a file on '%s'.", 'updraftplus').' '.__('The file may no longer exist or you may not have permission to delete.', 'updraftplus'), $intance_label);
1976
+ break;
1977
+ default:
1978
+ $error_messages[] = sprintf(__("An error occurred while attempting to delete from '%s'.", 'updraftplus'), $intance_label);
1979
+ break;
1980
+ }
1981
+ }
1982
+ */
1983
+
1984
+ // $error_message_string = implode("\n", $error_messages);
1985
+ $error_message_string = '';
1986
 
1987
  if ($delete_complete) {
1988
  $set_message = __('Backup sets removed:', 'updraftplus');
1993
  restore_error_handler();
1994
  }
1995
 
1996
+ return array('result' => 'success', 'set_message' => $set_message, 'local_message' => $local_message, 'remote_message' => $remote_message, 'backup_sets' => $sets_removed, 'backup_local' => $local_deleted, 'backup_remote' => $remote_deleted, 'error_messages' => $error_message_string);
1997
  } else {
1998
 
1999
+ return array('result' => 'continue', 'backup_local' => $local_deleted, 'backup_remote' => $remote_deleted, 'backup_sets' => $sets_removed, 'timestamps' => $timestamps, 'deleted_timestamps' => $deleted_timestamps, 'error_messages' => $error_message_string);
2000
  }
2001
  }
2002
 
2003
  /**
2004
  * Get the history status HTML and other information
2005
  *
2006
+ * @param Boolean $rescan - whether to rescan local storage first
2007
+ * @param Boolean $remotescan - whether to rescan remote storage first
2008
+ * @param Boolean $debug - whether to return debugging information also
2009
+ * @param Integer $backup_count - a count of the total backups we want to display on the front end for use by UpdraftPlus_Backup_History::existing_backup_table()
2010
  *
2011
  * @return Array - the information requested
2012
  */
2013
+ public function get_history_status($rescan, $remotescan, $debug = false, $backup_count = 0) {
2014
 
2015
  global $updraftplus;
2016
 
2017
  if ($rescan) $messages = UpdraftPlus_Backup_History::rebuild($remotescan, false, $debug);
2018
  $backup_history = UpdraftPlus_Backup_History::get_history();
2019
+ $output = UpdraftPlus_Backup_History::existing_backup_table($backup_history, $backup_count);
2020
+
2021
  $data = array();
2022
 
2023
  if (!empty($messages) && is_array($messages)) {
2043
  }
2044
 
2045
  return apply_filters('updraftplus_get_history_status_result', array(
2046
+ 'n' => __('Existing backups', 'updraftplus').' <span class="updraft_existing_backups_count">'.count($backup_history).'</span>',
2047
  't' => $output, // table
2048
  'data' => $data,
2049
  'cksum' => md5($output),
4332
  }
4333
 
4334
  /**
4335
+ * Get HTML for the 'Upload' button for a particular backup in the 'Existing backups' tab
4336
  *
4337
  * @param Integer $backup_time - backup timestamp (epoch time)
4338
  * @param String $nonce - backup nonce
4398
  }
4399
 
4400
  /**
4401
+ * Get HTML for the 'Delete' button for a particular backup in the 'Existing backups' tab
4402
  *
4403
  * @param Integer $backup_time - backup timestamp (epoch time)
4404
  * @param String $nonce - backup nonce
4930
  $pval = $updraftplus->have_addons ? 1 : 0;
4931
  $sval = (true === $restore_result) ? 1 : 0;
4932
 
4933
+ $pages = get_pages(array('number' => 2));
4934
+ $page_urls = array(
4935
+ 'home' => get_home_url(),
4936
+ );
4937
+
4938
+ foreach ($pages as $page_info) {
4939
+ $page_urls[$page_info->post_name] = get_page_link($page_info->ID);
4940
+ }
4941
+
4942
  $updraftplus->log_restore_update(
4943
  array(
4944
  'type' => 'state',
4946
  'data' => array(
4947
  'actions' => array(
4948
  __('Return to UpdraftPlus configuration', 'updraftplus') => UpdraftPlus_Options::admin_page_url() . '?page=updraftplus&updraft_restore_success=' . $sval . '&pval=' . $pval
4949
+ ),
4950
+ 'urls' => $page_urls,
4951
  )
4952
  )
4953
  );
5670
  * @param boolean $is_admin_user - a boolean to indicate if the user who requested the clone has clone management permissions
5671
  * @param array $supported_wp_versions - an array of supported WordPress versions
5672
  * @param array $supported_packages - an array of supported clone packages
5673
+ * @param array $supported_regions - an array of supported clone regions
5674
  *
5675
  * @return string - the clone UI widget
5676
  */
5677
+ public function updraftplus_clone_ui_widget($is_admin_user = false, $supported_wp_versions, $supported_packages, $supported_regions) {
5678
+ global $updraftplus;
5679
+
5680
  $output = '<p class="updraftplus-option updraftplus-option-inline php-version">';
5681
  $output .= '<span class="updraftplus-option-label">'.sprintf(__('%s version:', 'updraftplus'), 'PHP').'</span> ';
5682
  $output .= $this->output_select_data($this->php_versions, 'php');
5687
  $output .= '</p>';
5688
  $output .= '<p class="updraftplus-option updraftplus-option-inline region">';
5689
  $output .= ' <span class="updraftplus-option-label">'.__('Clone region:', 'updraftplus').'</span> ';
5690
+ $output .= $this->output_select_data($supported_regions, 'region');
5691
  $output .= '</p>';
5692
 
5693
  $backup_history = UpdraftPlus_Backup_History::get_history();
5707
 
5708
  if (!empty($backup_history)) {
5709
  foreach ($backup_history as $key => $backup) {
5710
+ $total_size = round($updraftplus->get_total_backup_size($backup) / 1073741824, 1);
5711
  $pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
5712
  $label = isset($backup['label']) ? ' ' . $backup['label'] : '';
5713
+ $output .= '<option value="'.$key. '" data-nonce="'.$backup['nonce'].'" data-timestamp="'.$key.'" data-size="'.$total_size.'">' . $pretty_date . $label . '</option>';
5714
  }
5715
  }
5716
  $output .= '</select>';
5719
  if ((defined('UPDRAFTPLUS_UPDRAFTCLONE_DEVELOPMENT') && UPDRAFTPLUS_UPDRAFTCLONE_DEVELOPMENT) || $is_admin_user) {
5720
  $output .= '<p class="updraftplus-option updraftplus-option-inline package">';
5721
  $output .= ' <span class="updraftplus-option-label">'.__('Clone package:', 'updraftplus').'</span> ';
5722
+ $output .= '<select id="updraftplus_clone_package_options" name="updraftplus_clone_package_options" data-package_version="starter">';
5723
+ foreach ($supported_packages as $key => $value) {
5724
+ $output .= "<option value=\"$key\" data-size=\"$value\"";
5725
+ if ('starter' == $key) $output .= 'selected="selected"';
5726
+ $output .= ">".htmlspecialchars($key) . ('starter' == $key ? ' ' . __('(current version)', 'updraftplus') : '')."</option>\n";
5727
+ }
5728
+ $output .= '</select>';
5729
  $output .= '</p>';
5730
  $output .= '<p class="updraftplus-option updraftplus-option-inline updraftclone-branch">';
5731
  $output .= ' <span class="updraftplus-option-label">UpdraftClone Branch:</span> ';
backup.php CHANGED
@@ -1715,12 +1715,14 @@ class UpdraftPlus_Backup {
1715
  if ($table_triggers) {
1716
  $this->stow("\n\n# Triggers of ".UpdraftPlus_Manipulation_Functions::backquote($table)."\n\n");
1717
  foreach ($table_triggers as $trigger) {
1718
- $trigger_name = UpdraftPlus_Manipulation_Functions::backquote($trigger['Trigger']);
1719
  $trigger_time = $trigger['Timing'];
1720
  $trigger_event = $trigger['Event'];
1721
  $trigger_statement = $trigger['Statement'];
1722
- $this->stow("DROP TRIGGER IF EXISTS $trigger_name;;\n");
1723
- $trigger_query = "CREATE TRIGGER $trigger_name $trigger_time $trigger_event ON ".UpdraftPlus_Manipulation_Functions::backquote($table)." FOR EACH ROW $trigger_statement;;";
 
 
1724
  $this->stow("$trigger_query\n\n");
1725
  }
1726
  }
@@ -3009,6 +3011,7 @@ class UpdraftPlus_Backup {
3009
  // N.B., Since makezip_addfiles() can get called more than once if there were errors detected, potentially $zipfiles_added_thisrun can exceed the total number of batched files (if they get processed twice).
3010
  $this->zipfiles_added_thisrun++;
3011
  $files_zipadded_since_open[] = array('file' => $file, 'addas' => $add_as);
 
3012
 
3013
  $data_added_since_reopen += $fsize;
3014
  // $data_added_this_resumption += $fsize;
1715
  if ($table_triggers) {
1716
  $this->stow("\n\n# Triggers of ".UpdraftPlus_Manipulation_Functions::backquote($table)."\n\n");
1717
  foreach ($table_triggers as $trigger) {
1718
+ $trigger_name = $trigger['Trigger'];
1719
  $trigger_time = $trigger['Timing'];
1720
  $trigger_event = $trigger['Event'];
1721
  $trigger_statement = $trigger['Statement'];
1722
+ // Since trigger name can include backquotes and trigger name is typically enclosed with backquotes as well, the backquote escaping for the trigger name can be done by adding a leading backquote
1723
+ $quoted_escaped_trigger_name = UpdraftPlus_Manipulation_Functions::backquote(str_replace('`', '``', $trigger_name));
1724
+ $this->stow("DROP TRIGGER IF EXISTS $quoted_escaped_trigger_name;;\n");
1725
+ $trigger_query = "CREATE TRIGGER $quoted_escaped_trigger_name $trigger_time $trigger_event ON ".UpdraftPlus_Manipulation_Functions::backquote($table)." FOR EACH ROW $trigger_statement;;";
1726
  $this->stow("$trigger_query\n\n");
1727
  }
1728
  }
3011
  // N.B., Since makezip_addfiles() can get called more than once if there were errors detected, potentially $zipfiles_added_thisrun can exceed the total number of batched files (if they get processed twice).
3012
  $this->zipfiles_added_thisrun++;
3013
  $files_zipadded_since_open[] = array('file' => $file, 'addas' => $add_as);
3014
+ $updraftplus->log_remove_warning('vlargefile_'.md5($this->whichone.'#'.$add_as));
3015
 
3016
  $data_added_since_reopen += $fsize;
3017
  // $data_added_this_resumption += $fsize;
central/bootstrap.php CHANGED
@@ -45,7 +45,7 @@ class UpdraftPlus_UpdraftCentral_Main {
45
  // These are different from the remote send keys, which are set up in the Migrator add-on
46
  $our_keys = UpdraftPlus_Options::get_updraft_option('updraft_central_localkeys');
47
  if (is_array($our_keys) && !empty($our_keys)) {
48
- $remote_control = new UpdraftPlus_UpdraftCentral_Listener($our_keys, $command_classes);
49
  }
50
 
51
  }
@@ -305,9 +305,7 @@ class UpdraftPlus_UpdraftCentral_Main {
305
 
306
  $ud_rpc = $updraftplus->get_udrpc($indicator_name);
307
 
308
- $send_to_updraftpluscom = false;
309
  if ('__updraftpluscom' == $post_it) {
310
- $send_to_updraftpluscom = true;
311
  $post_it = defined('UPDRAFTPLUS_OVERRIDE_UDCOM_DESTINATION') ? UPDRAFTPLUS_OVERRIDE_UDCOM_DESTINATION : 'https://updraftplus.com/?updraftcentral_action=receive_key';
312
  $post_it_description = 'UpdraftPlus.Com';
313
  } else {
45
  // These are different from the remote send keys, which are set up in the Migrator add-on
46
  $our_keys = UpdraftPlus_Options::get_updraft_option('updraft_central_localkeys');
47
  if (is_array($our_keys) && !empty($our_keys)) {
48
+ new UpdraftPlus_UpdraftCentral_Listener($our_keys, $command_classes);
49
  }
50
 
51
  }
305
 
306
  $ud_rpc = $updraftplus->get_udrpc($indicator_name);
307
 
 
308
  if ('__updraftpluscom' == $post_it) {
 
309
  $post_it = defined('UPDRAFTPLUS_OVERRIDE_UDCOM_DESTINATION') ? UPDRAFTPLUS_OVERRIDE_UDCOM_DESTINATION : 'https://updraftplus.com/?updraftcentral_action=receive_key';
310
  $post_it_description = 'UpdraftPlus.Com';
311
  } else {
central/classes/automatic-upgrader-skin-compatibility.php CHANGED
@@ -4,7 +4,7 @@ if (!defined('ABSPATH')) die('No direct access.');
4
 
5
  class Automatic_Upgrader_Skin extends Automatic_Upgrader_Skin_Main {
6
 
7
- public function feedback($string, ...$args) { // phpcs:ignore PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ellipsisFound -- spread operator is not supported in PHP < 5.5 but WP 5.3 supports PHP 5.6 minimum
8
  parent::updraft_feedback($string);
9
  }
10
  }
4
 
5
  class Automatic_Upgrader_Skin extends Automatic_Upgrader_Skin_Main {
6
 
7
+ public function feedback($string, ...$args) { // phpcs:ignore PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ellipsisFound, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- spread operator is not supported in PHP < 5.5 but WP 5.3 supports PHP 5.6 minimum
8
  parent::updraft_feedback($string);
9
  }
10
  }
central/listener.php CHANGED
@@ -54,7 +54,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
54
  $ud_rpc->activate_replay_protection();
55
  if (!empty($key['extra_info']) && isset($key['extra_info']['mothership'])) {
56
  $mothership = $key['extra_info']['mothership'];
57
- unset($url);
58
  if ('__updraftpluscom' == $mothership) {
59
  $url = 'https://updraftplus.com';
60
  } elseif (false != ($parsed = parse_url($key['extra_info']['mothership'])) && is_array($parsed)) {
@@ -73,8 +73,10 @@ class UpdraftPlus_UpdraftCentral_Listener {
73
  if (!empty($_GET['login_id']) && is_numeric($_GET['login_id']) && !empty($_GET['login_key'])) {
74
  $login_user = get_user_by('id', $_GET['login_id']);
75
 
 
76
  include_once(ABSPATH.WPINC.'/version.php');
77
- if (is_a($login_user, 'WP_User') || (version_compare($wp_version, '3.5', '<') && !empty($login_user->ID))) {
 
78
  // Allow site implementers to disable this functionality
79
  $allow_autologin = apply_filters('updraftcentral_allow_autologin', true, $login_user);
80
  if ($allow_autologin) {
54
  $ud_rpc->activate_replay_protection();
55
  if (!empty($key['extra_info']) && isset($key['extra_info']['mothership'])) {
56
  $mothership = $key['extra_info']['mothership'];
57
+ $url = '';
58
  if ('__updraftpluscom' == $mothership) {
59
  $url = 'https://updraftplus.com';
60
  } elseif (false != ($parsed = parse_url($key['extra_info']['mothership'])) && is_array($parsed)) {
73
  if (!empty($_GET['login_id']) && is_numeric($_GET['login_id']) && !empty($_GET['login_key'])) {
74
  $login_user = get_user_by('id', $_GET['login_id']);
75
 
76
+ // THis is included so we can get $wp_version
77
  include_once(ABSPATH.WPINC.'/version.php');
78
+
79
+ if (is_a($login_user, 'WP_User') || (version_compare($wp_version, '3.5', '<') && !empty($login_user->ID))) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
80
  // Allow site implementers to disable this functionality
81
  $allow_autologin = apply_filters('updraftcentral_allow_autologin', true, $login_user);
82
  if ($allow_autologin) {
central/modules/analytics.php CHANGED
@@ -119,7 +119,7 @@ class UpdraftCentral_Analytics_Commands extends UpdraftCentral_Commands {
119
  $result['tracking_id'] = $output['tracking_id'];
120
 
121
  // If it was not found, then now try the footer
122
- if (empty($tracking_id)) {
123
  // Retrieve footer content
124
  ob_start();
125
  do_action('wp_footer');
@@ -129,8 +129,8 @@ class UpdraftCentral_Analytics_Commands extends UpdraftCentral_Commands {
129
  $result['tracking_id'] = $output['tracking_id'];
130
  }
131
 
132
- if (!empty($tracking_id)) {
133
- set_transient($this->tracking_id_key, $tracking_id, $this->expiration);
134
  }
135
 
136
  return $result;
119
  $result['tracking_id'] = $output['tracking_id'];
120
 
121
  // If it was not found, then now try the footer
122
+ if (empty($result['tracking_id'])) {
123
  // Retrieve footer content
124
  ob_start();
125
  do_action('wp_footer');
129
  $result['tracking_id'] = $output['tracking_id'];
130
  }
131
 
132
+ if (!empty($result['tracking_id'])) {
133
+ set_transient($this->tracking_id_key, $result['tracking_id'], $this->expiration);
134
  }
135
 
136
  return $result;
central/modules/core.php CHANGED
@@ -43,7 +43,6 @@ class UpdraftCentral_Core_Commands extends UpdraftCentral_Commands {
43
  if (1 === $error_flag) break;
44
  } else {
45
 
46
- $class_prefix = $command_info['class_prefix'];
47
  $action = $command_info['command'];
48
  $command_php_class = $command_info['command_php_class'];
49
 
@@ -326,6 +325,8 @@ class UpdraftCentral_Core_Commands extends UpdraftCentral_Commands {
326
  public function site_info() {
327
 
328
  global $wpdb;
 
 
329
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
330
 
331
  $ud_version = is_a($this->ud, 'UpdraftPlus') ? $this->ud->version : 'none';
@@ -334,7 +335,7 @@ class UpdraftCentral_Core_Commands extends UpdraftCentral_Commands {
334
  'versions' => array(
335
  'ud' => $ud_version,
336
  'php' => PHP_VERSION,
337
- 'wp' => $wp_version,
338
  'mysql' => $wpdb->db_version(),
339
  'udrpc_php' => $this->rc->udrpc_version,
340
  ),
43
  if (1 === $error_flag) break;
44
  } else {
45
 
 
46
  $action = $command_info['command'];
47
  $command_php_class = $command_info['command_php_class'];
48
 
325
  public function site_info() {
326
 
327
  global $wpdb;
328
+
329
+ // THis is included so we can get $wp_version
330
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
331
 
332
  $ud_version = is_a($this->ud, 'UpdraftPlus') ? $this->ud->version : 'none';
335
  'versions' => array(
336
  'ud' => $ud_version,
337
  'php' => PHP_VERSION,
338
+ 'wp' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
339
  'mysql' => $wpdb->db_version(),
340
  'udrpc_php' => $this->rc->udrpc_version,
341
  ),
central/modules/media.php CHANGED
@@ -37,7 +37,7 @@ class UpdraftCentral_Media_Commands extends UpdraftCentral_Commands {
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
@@ -80,7 +80,6 @@ class UpdraftCentral_Media_Commands extends UpdraftCentral_Commands {
80
  }
81
 
82
  if (!empty($params['date'])) {
83
- $date = $params['date'];
84
  list($monthnum, $year) = explode(':', $params['date']);
85
 
86
  $args['monthnum'] = $monthnum;
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
80
  }
81
 
82
  if (!empty($params['date'])) {
 
83
  list($monthnum, $year) = explode(':', $params['date']);
84
 
85
  $args['monthnum'] = $monthnum;
central/modules/plugin.php CHANGED
@@ -19,7 +19,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
- public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -38,7 +38,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
+ public function _pre_action($command, $data, $extra_info) {
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
central/modules/posts.php CHANGED
@@ -18,7 +18,7 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
18
  *
19
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
20
  */
21
- public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
22
  // Here we assign the current blog_id to a variable $blog_id
23
  $blog_id = get_current_blog_id();
24
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -37,732 +37,1314 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
44
-
45
  /**
46
- * Method to fetch all posts which depends on parameters passed in site_post.js, on success return posts object
47
  *
48
- * @param array $params An array containing the "site_id" and "paged" parameters needed to pull all posts
49
  * @return array
50
- *
51
- * @link {https://developer.wordpress.org/reference/functions/get_posts/}
52
- * @link {https://developer.wordpress.org/reference/functions/wp_count_posts}
53
- * @link {https://developer.wordpress.org/reference/functions/get_the_author_meta/}
54
- * @link {https://developer.wordpress.org/reference/functions/get_the_category}
55
  */
56
- public function get_requested_posts($params) {
 
 
57
 
58
- if (empty($params['numberposts'])) return $this->_generic_error_response('numberposts_parameter_missing', $params);
59
-
60
- // check paged parameter; if empty set to 1
61
  $paged = !empty($params['paged']) ? (int) $params['paged'] : 1;
 
 
62
 
63
  $args = array(
64
- 'posts_per_page' => $params['numberposts'],
65
  'paged' => $paged,
 
66
  'post_type' => 'post',
67
- 'post_status' => !empty($params['post_status']) ? $params['post_status'] : 'any'
68
  );
69
 
70
- if (!empty($params['category'][0])) {
71
- $term_id = (int) $params['category'][0];
72
- $args['category__in'] = array($term_id);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
 
75
- // Using default function get_posts to fetch all posts object from passed parameters
76
- // Count all fetch posts objects
77
- // get total fetch posts and divide to number of posts for pagination
78
  $query = new WP_Query($args);
79
  $result = $query->posts;
80
 
81
- $count_posts = $query->found_posts;
82
  $page_count = 0;
83
- $postdata = array();
84
 
85
- if ((int) $count_posts > 0) {
86
- $page_count = absint((int) $count_posts / (int) $params['numberposts']);
87
- $remainder = absint((int) $count_posts % (int) $params['numberposts']);
88
-
89
  $page_count = ($remainder > 0) ? ++$page_count : $page_count;
90
  }
91
 
92
  $info = array(
93
  'page' => $paged,
94
  'pages' => $page_count,
95
- 'results' => $count_posts
 
 
96
  );
97
 
98
- if (empty($result)) {
99
- $error_data = array(
100
- 'count' => $page_count,
101
- 'paged' => $paged,
102
- 'info' => $info
103
- );
104
- return $this->_generic_error_response('post_not_found_with_keyword', $error_data);
105
- } else {
106
  foreach ($result as $post) {
107
- // initialize our stdclass variable data
108
- $data = new stdClass();
 
 
 
 
 
 
109
 
110
- // get the author name
111
- $author = get_the_author_meta('display_name', $post->post_author);
 
 
 
 
112
 
113
- // get categories associated with the post
114
- $categories = get_the_category($post->ID);
 
 
 
115
 
116
- $cat_array = array();
117
- foreach ($categories as $category) {
118
- $cat_array[] = $category->name;
119
- }
120
 
121
- // Adding author name and category assigned to the post object
122
- $data->author_name = $author;
123
- $data->category_name = $cat_array;
124
- $data->post_title = $post->post_title;
125
- $data->post_status = $post->post_status;
126
- $data->ID = $post->ID;
127
- $postdata[] = $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  }
 
129
 
130
- $response = array(
131
- 'posts' => $postdata,
132
- 'count' => $page_count,
133
- 'paged' => $paged,
134
- 'categories' => $this->get_requested_categories(array('parent' => 0, 'return_object' => true)),
135
- 'message' => "found_posts_count",
136
- 'params' => $params,
137
- 'info' => $info
138
- );
 
 
 
139
  }
140
 
141
- return $this->_response($response);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  }
143
 
144
  /**
145
- * Method to fetch post object based on parameter ID, on success return post object
146
  *
147
- * @param array $params An array containing the "site_id" and "ID" parameters needed to pull a single post
148
  * @return array
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  *
150
- * @link {https://developer.wordpress.org/reference/functions/get_post/}
151
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
152
  */
153
- public function get_requested_post($params) {
 
 
 
 
 
 
154
 
155
- // Check parameter ID if empty
156
- if (empty($params['ID'])) {
157
- return $this->_generic_error_response('post_id_not_set', array());
 
 
 
 
 
 
 
 
 
158
  }
159
 
160
- // initialize stdclass variable data
161
- $data = new stdClass();
162
 
163
- // assign parameter ID to a variable
164
- $post_id = $params['ID'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
- // using default get_post to get post object by its ID
167
- $post = get_post($post_id);
168
 
169
- // assign
170
- $visibility = get_post_status($post_id);
 
 
 
 
 
 
 
 
 
 
171
 
172
- // Get all associated category of the post
 
 
 
 
 
 
173
 
174
- $categories = $this->get_requested_post_categories($post_id);
 
175
 
176
- if (is_wp_error($post)) {
177
- // Return the wp_error
178
- $error_data = array(
179
- 'visibility' => $visibility,
180
- 'categories' => $categories,
181
- );
182
- return $this->_generic_error_response('posts_not_found', $error_data);
 
183
 
184
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
 
186
- $data->ID = $post->ID;
187
- $data->post_title = $post->post_title;
188
- $data->post_content = $post->post_content;
189
- $data->post_status = $post->post_status;
190
- $data->guid = $post->guid;
191
- $data->post_date = $post->post_date;
 
 
 
 
192
 
193
- $response = array(
194
- 'posts' => $data,
195
- 'visibility' => $visibility,
196
- 'categories' => $categories,
197
- 'message' => "found_post"
198
- );
199
 
200
- return $this->_response($response);
 
201
  }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  }
204
 
205
  /**
206
- * Method to fetch array of categories loop through all children
207
  *
208
- * @param array $params An array containing the "site_id" and "parent" parameters needed to pull a collection of categories
209
  * @return array
210
- *
211
- * @link {https://developer.wordpress.org/reference/functions/get_categories/}
212
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
213
  */
214
- public function get_requested_categories($params) {
 
 
 
 
 
215
 
216
- $parent = $params['parent'];
 
 
 
 
 
 
217
 
218
- $categories = $this->get_taxonomy_hierarchy('category', $parent);
219
- $category = new stdClass();
220
- $arrobj = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
221
 
222
- // Add to existing category list | parent->children
223
- $category->children = $categories;
224
- $category->default = get_option('default_category');
225
- $arrobj[] = $category;
 
 
 
 
 
 
 
 
 
 
226
 
227
- if (!empty($params['return_object'])) {
228
- return $arrobj;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  }
230
 
231
- return $this->_response($arrobj);
 
 
 
 
 
 
 
 
 
 
 
 
232
  }
233
 
234
  /**
235
- * Method to get category on assigned to a post
236
  *
237
- * @param int $post_id The ID of the post where the categories are to be retrieve from
238
- * @return array - returns an array of category
239
- *
240
- * @link {https://developer.wordpress.org/reference/functions/get_categories/}
241
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
242
  */
243
- public function get_requested_post_categories($post_id) {
 
 
244
 
245
- $categories = $this->get_taxonomy_hierarchy('category');
246
- $category = new stdClass();
247
- $arrobj = array();
248
 
249
- // Add to existing category list | parent->children
250
- $category->children = $categories;
251
- $category->default = get_option('default_category');
252
-
253
- $arrterms = array();
254
- $post_terms = get_the_terms($post_id, 'category');
255
-
256
- foreach ($category->children as $term) {
257
- foreach ($post_terms as $post_term) {
258
- $arrterms[] = $post_term->term_id;
259
- if ($term->term_id == $post_term->term_id) {
260
- $term->selected = 1;
261
- }
262
- }
263
  }
264
-
265
- $arrobj[] = $category;
266
 
267
- return $arrobj;
 
 
 
 
 
268
  }
269
 
270
  /**
271
- * Method used to insert post from UDC to remote site
272
- * Using the default wp_insert_post function
273
- *
274
- * @param array $post_array Default post_type "post" and basic parameters post_title, post_content, category, post_status
275
- * @return array - Containing information whether the process was successful or not.
276
- * Post ID on success, custom error object on failure.
277
  *
278
- * @link {https://developer.wordpress.org/reference/functions/wp_insert_post/}
279
- * @link {https://developer.wordpress.org/reference/functions/get_current_user_id/}
280
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
281
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
282
  */
283
- public function insert_requested_post($post_array) {
 
284
 
285
- // Check if post_title parameter is not set
286
- if (empty($post_array['post_title'])) {
287
- return $this->_generic_error_response('post_title_not_set', array());
 
288
  }
289
 
290
- // Check if user has capability
291
- if (!current_user_can('edit_posts')) {
292
- return $this->_generic_error_response('user_no_permission_to_edit_post', array());
293
- }
 
 
 
294
 
295
- $author = get_current_user_id();
296
- $category = get_option('default_category');
297
- $post_category = empty($post_array['post_category']) ? array($category) : $post_array['post_category'];
298
- $post_title = $post_array['post_title'];
299
- $post_content = $post_array['post_content'];
300
- $post_status = $post_array['post_status'];
301
 
302
- // Create post array
303
- $post = array(
304
- 'post_title' => wp_strip_all_tags($post_title),
305
- 'post_content' => $post_content,
306
- 'post_author' => $author,
307
- 'post_category' => $post_category,
308
- 'post_status' => $post_status
309
- );
 
310
 
311
- // Insert the post array into the database, return post_id on success
312
- $post_id = wp_insert_post($post);
 
 
 
 
 
 
313
 
314
- // Check if result is false
315
- if (is_wp_error($post_id)) {
316
- $error_data = array(
317
- 'message' => __('Error inserting post')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
  );
319
 
320
- return $this->_generic_error_response('post_insert_error', $error_data);
 
 
 
 
 
 
 
321
 
322
- } else {
 
 
 
 
 
 
323
 
324
- $result = array(
325
- 'ID' => $post_id,
326
- 'message' => "post_save_success",
327
- 'status' => $post_status
328
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  }
330
-
331
- return $this->_response($result);
332
 
 
333
  }
334
 
335
  /**
336
- * Method used to update post
337
- * Using default wp_update_post
338
- *
339
- * @param array $params Post array to update specific post by ID
340
- * @return array - Containing information whether the process was successful or not.
341
- * Post ID on success, custom error object on failure.
342
  *
343
- * @link {https://developer.wordpress.org/reference/functions/wp_update_post/}
344
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
345
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
346
  */
347
- public function update_requested_post($params) {
 
 
348
 
349
- // Check post_id parameter if set
350
- if (empty($params['ID'])) {
351
- return $this->_generic_error_response('post_id_not_set', array());
352
- }
 
 
 
 
 
353
 
354
- // Check if user has capability
355
- if (!current_user_can('edit_posts') && !current_user_can('edit_other_posts')) {
356
- return $this->_generic_error_response('user_no_permission_to_edit_post', array());
 
 
 
357
  }
358
 
359
- $category = get_option('default_category');
360
- $post_category = empty($post_array['post_category']) ? array($category) : $post_array['post_category'];
 
 
 
361
 
362
- // Assign post array values
363
- $post = array(
364
- 'post_title' => wp_strip_all_tags($params['post_title']),
365
- 'post_content' => $params['post_content'],
366
- 'ID' => (int) $params['ID'],
367
- 'post_status' => $params['post_status'],
368
- 'post_category' => $post_category
369
- );
370
 
371
- // Do post update
372
- $response = wp_update_post($post);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
 
374
- $result = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
 
376
- // Check if response is false
377
- if (is_wp_error($response)) {
378
- $error_data = array(
379
- 'message' => __('Error updating post')
380
  );
381
 
382
- return $this->_generic_error_response('post_update_error', $error_data);
383
  }
384
-
385
- $result = array(
386
- 'ID' => $response,
387
- 'message' => "post_update_success",
388
- 'status' => $params['post_status']
389
- );
390
-
391
- return $this->_response($result);
392
  }
393
 
394
  /**
395
- * Method used to move post to trash, default action trash
396
- * If delete set to true will delete permanently following all wp process
397
- * If force_delete is true bypass process and force delete post
398
  *
399
- * @param array $params An array containing the ID of the post to delete and a
400
- * couple of flags ("delete" and "force_delete") that will determine whether
401
- * the post will be moved to trash or permanently deleted.
402
- * @return array - Containing information whether the process was successful or not. True on success, false on failure.
403
- *
404
- * @link {https://developer.wordpress.org/reference/functions/wp_trash_post/}
405
- * @link {https://developer.wordpress.org/reference/functions/wp_delete_post/}
406
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
407
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
408
  */
409
- public function trash_requested_post($params) {
410
-
411
- // Check if post_id is set
412
- if (empty($params['ID'])) {
413
- return $this->_generic_error_response('post_id_not_set', array());
414
- }
415
-
416
- // Check user capability
417
- if (!current_user_can('delete_posts')) {
418
- return $this->_generic_error_response('user_no_permission_to_delete_post', array());
419
- }
420
-
421
- $post_id = (int) $params['ID'];
422
- $forcedelete = !empty($params['force_delete']);
423
- $trash = false;
424
-
425
- // Here check if force_delete is set from UDC. then permanently delete bypass wp_trash_post.
426
- if ($forcedelete) {
427
- $response = wp_delete_post($post_id, $forcedelete);
428
  } else {
429
- $response = wp_trash_post($post_id);
430
- $trash = true;
431
  }
 
432
 
433
- $result = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
 
435
- // Check if response if false
436
- if (is_wp_error($response)) {
437
- $error_data = array(
438
- 'message' => __('Error deleting post')
439
  );
440
- return $this->_generic_error_response('post_delete_error', $error_data);
441
- }
442
 
443
- $result = array(
444
- 'posts' => $response,
445
- 'error' => false,
446
- );
447
 
448
- if ($trash) {
449
- $result["message"] = "post_has_been_moved_to_trash";
450
- $status["status"] = "trash";
 
 
 
 
 
 
 
 
 
 
 
 
451
  } else {
452
- $result["message"] = "post_has_been_deleted_permanently";
453
- $status["status"] = "delete";
454
  }
455
-
456
- return $this->_response($result);
457
  }
458
 
459
  /**
460
- * Method used to insert/create a category
461
- * Using default taxonomy "category"
462
- * Will create slug based on cat_name parameter
463
- *
464
- * @param array $params cat_name parameter to insert category
465
- * @return array - Containing the result of the process. Category ID, category object, etc.
466
  *
467
- * @link {https://developer.wordpress.org/reference/functions/wp_insert_category/}
468
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
469
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
470
  */
471
- public function insert_requested_category($params) {
 
 
472
 
473
- /**
474
- * Include admin taxonomy.php file to enable us to use all necessary functions for post category
475
- */
476
- $this->_admin_include('taxonomy.php');
477
 
478
- $result = array();
 
 
479
 
480
- // Check if parameter cat_name is set
481
- if (empty($params['cat_name'])) {
482
- return $this->_generic_error_response('category_name_not_set', array());
483
- }
484
 
485
- // Check user capability
486
- if (!current_user_can('manage_categories')) {
487
- return $this->_generic_error_response('user_no_permission_to_add_category', array());
488
- }
489
 
490
- // set category array
491
- $args = array(
492
- 'cat_name' => $params["cat_name"],
493
- 'category_nicename' => sanitize_title($params["cat_name"])
494
- );
495
 
496
- // Do wp_insert_category
497
- $term_id = wp_insert_category($args, true);
 
498
 
499
- if (is_wp_error($response)) {
500
- $error_data = array(
501
- 'message' => __('Error inserting category')
502
- );
503
- return $this->_generic_error_response('category_insert_error', $error_data);
504
- }
505
 
506
- $category = array(
507
- 'cat_name' => $params["cat_name"],
508
- 'term_id' => $term_id,
509
- 'parent' => 0
510
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
511
 
512
- $result = array(
513
- 'ID' => $term_id,
514
- 'category' => $category,
515
- 'error' => false,
516
- 'message' => "category_added"
517
- );
518
 
519
- return $this->_response($result);
520
- }
521
 
522
- /**
523
- * Method used to update/edit a category by its term_id
524
- *
525
- * @param array $param An array containing the "term_id" and "cat_name" parameters needed to edit the category
526
- * @return array - Containing information as a result fo the process. True on success, false on failure.
527
- *
528
- * @link {https://developer.wordpress.org/reference/functions/wp_udpate_category/}
529
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
530
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
531
- */
532
- public function edit_requested_category($param) {
533
- /**
534
- * Include admin taxonomy.php file to enable us to use all necessary functions for post category
535
- */
536
- $this->_admin_include('taxonomy.php');
537
 
538
- $result = array();
 
 
 
539
 
540
- // Check if term_id is set
541
- if (empty($param['term_id']) && empty($param['cat_name'])) {
542
- return $this->_generic_error_response('term_id_or_category_not_set', array($params));
543
- }
 
 
 
544
 
545
- $term_id = $param['term_id'];
546
- $cat_name = $param['cat_name'];
547
 
548
- // Check user capability
549
- if (!current_user_can('manage_categories')) {
550
- return $this->_generic_error_response('user_no_permission_to_edit_category', array());
551
- }
 
 
 
 
 
 
 
 
 
 
552
 
553
- // Do term update
554
- $response = wp_update_term($term_id, 'category', array('name' => $cat_name, 'slug' => sanitize_title($cat_name)));
 
 
555
 
556
- // Check if response is false
557
- if (is_wp_error($response)) {
558
- $error_data = array(
559
- 'message' => __('Error updating category')
560
- );
561
- return $this->_generic_error_response('category_update_error', $error_data);
562
- }
 
 
563
 
564
- $result = array(
565
- 'category' => $cat_name,
566
- 'message' => "category_updated_to"
567
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
568
 
569
- return $this->_response($result);
 
 
 
 
 
 
 
 
 
 
 
570
  }
571
 
572
  /**
573
- * Method used to delete a category by term_id
574
  *
575
- * @param array $param An array containing the "term_id" needed to delete the category
576
- * @return array - Containing information as a result fo the process. True on success, false on failure.
577
- *
578
- * @link {https://developer.wordpress.org/reference/functions/wp_delete_category/}
579
- * @link {https://developer.wordpress.org/reference/functions/current_user_can/}
580
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
581
  */
582
- public function delete_requested_category($param) {
583
- /**
584
- * Include admin taxonomy.php file to enable us to use all necessary functions for post category
585
- */
586
- $this->_admin_include('taxonomy.php');
587
-
588
- $result = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
589
 
590
- // Check if term_id is set
591
- if (empty($param['term_id'])) {
592
- return $this->_generic_error_response('term_id_not_set', array($params));
593
  }
594
 
595
- $term_id = $param['term_id'];
 
 
 
596
 
597
- // Check user capability
598
- if (!current_user_can('manage_categories')) {
599
- return $this->_generic_error_response('user_no_permission_to_delete_category', array());
600
- }
 
 
 
 
 
 
 
 
 
 
 
601
 
602
- // Do wp_delete_category
603
- $response = wp_delete_category($term_id);
 
 
 
 
 
 
 
 
604
 
605
- if (is_wp_error($response)) {
606
- $error_data = array(
607
- 'message' => __('Error deleting category')
608
- );
609
- return $this->_generic_error_response('user_no_permission_to_delete_category', $error_data);
 
 
 
 
 
610
  }
611
 
612
- $result = array(
613
- 'error' => false,
614
- 'message' => "category_deleted"
615
- );
616
-
617
- return $this->_response($result);
618
  }
619
 
620
  /**
621
- * Method to fetch post search by post title
622
- * Will return all posts if no match was found
623
- *
624
- * @param array $params An array containing the keyword to be used to search all available posts
625
- * @return array - Containing the result of the process. Post object on success, a no matched message on failure.
626
  *
627
- * @link {https://developer.wordpress.org/reference/functions/get_post/}
628
- * @link {https://developer.wordpress.org/reference/functions/switch_to_blog/}
629
  */
630
- public function find_post_by_title($params) {
 
 
 
631
 
632
- $paged = !empty($params['paged']) ? (int) $params['paged'] : 1;
 
 
 
633
 
634
- // Check if keyword is empty or null
635
- if (empty($params['s'])) {
636
- return $this->_generic_error_response('search_generated_no_result', array());
637
- }
638
 
639
- // Set an array with post_type to search only post
640
- $query_string = array(
641
- 's' => $params['s'],
642
- 'post_type' => 'post',
643
- 'posts_per_page' => $params['numberposts'],
644
- 'paged' => $paged
645
- );
646
- $query = new WP_Query($query_string);
647
- $postdata = array();
648
-
649
- $count_posts = $query->found_posts;
650
- if ((int) $count_posts > 0) {
651
- if (empty($params['numberposts'])) return $this->_generic_error_response('numberposts_parameter_missing', $params);
652
 
653
- $page_count = absint((int) $count_posts / (int) $params['numberposts']);
654
- $remainder = absint((int) $count_posts % (int) $params['numberposts']);
 
 
 
 
 
 
 
655
 
656
- $page_count = ($remainder > 0) ? ++$page_count : $page_count;
 
 
 
 
 
 
 
 
 
657
  }
658
 
659
- $info = array(
660
- 'page' => $paged,
661
- 'pages' => $page_count,
662
- 'results' => $count_posts
663
- );
 
 
 
664
 
665
- $response = array();
666
- if ($query->have_posts()) {
667
-
668
- foreach ($query->posts as $post) {
 
 
 
 
 
669
 
670
- // initialize stdclass variable data
671
- $data = new stdClass();
672
-
673
- // get the author name
674
- $author = get_the_author_meta('display_name', $post->post_author);
 
 
 
675
 
676
- // get categories associated with the post
677
- $categories = get_the_category($post->ID);
 
 
 
 
 
 
678
 
679
- $cat_array = array();
680
- foreach ($categories as $category) {
681
- $cat_array[] = $category->name;
682
- }
683
 
684
- // Adding author name and category assigned to the post object
685
- $data->author_name = $author;
686
- $data->category_name = $cat_array;
687
- $data->post_title = $post->post_title;
688
- $data->post_status = $post->post_status;
689
- $postdata[] = $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
690
  }
691
 
692
- $response = array(
693
- 'categories' => $this->get_requested_categories(array('parent' => 0, 'return_object' => true)),
694
- 'posts' => $postdata,
695
- 'n' => $arr,
696
- 'count' => $count_posts,
697
- 'paged' => $paged,
698
- 'message' => "found_post",
699
- 'info' => $info
700
- );
701
- } else {
702
- $error_data = array(
703
- 'count' => $count_posts,
704
- 'paged' => $paged,
705
- 'info' => $info
706
- );
707
- return $this->_generic_error_response('post_not_found_with_keyword', $error_data);
708
  }
709
 
710
- return $this->_response($response);
711
  }
712
 
713
  /**
714
- * Recursively get taxonomy and its children
715
  *
716
- * @param string $taxonomy name e.g. category, post_tags
717
- * @param int $parent id of the category to be fetch
718
- * @return array Containing all the categories with children
719
  *
720
- * @link {https://developer.wordpress.org/reference/functions/get_terms/}
721
  */
722
- public function get_taxonomy_hierarchy($taxonomy, $parent = 0) {
 
723
 
724
- // only 1 taxonomy
725
- $taxonomy = is_array($taxonomy) ? array_shift($taxonomy) : $taxonomy;
 
726
 
727
- // get all direct decendants of the $parent
728
- $terms = get_terms($taxonomy, array( 'parent' => $parent, 'hide_empty' => false));
 
 
 
 
 
 
729
 
730
- // prepare a new array. these are the children of $parent
731
- // we'll ultimately copy all the $terms into this new array, but only after they
732
- // find their own children
733
- $children = array();
734
 
735
- // go through all the direct decendants of $parent, and gather their children
736
- foreach ($terms as $term) {
737
- // recurse to get the direct decendants of "this" term
738
- $term->children = $this->get_taxonomy_hierarchy($taxonomy, $term->term_id);
739
- // add the term to our new array
740
- $children[] = $term;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  }
742
 
743
- // send the results back to the caller
744
- return $children;
745
  }
746
 
747
  /**
748
- * Recursively get all taxonomies as complete hierarchies
 
749
  *
750
- * @param array $taxonomies array of taxonomy slugs
751
- * @param int $parent starting id to fetch
752
  *
753
- * @return array Containing all the taxonomies
754
  */
755
- public function get_taxonomy_hierarchy_multiple($taxonomies, $parent = 0) {
756
- if (!is_array($taxonomies)) {
757
- $taxonomies = array($taxonomies);
758
- }
759
- $results = array();
760
- foreach ($taxonomies as $taxonomy) {
761
- $terms = $this->get_taxonomy_hierarchy($taxonomy, $parent);
762
- if ($terms) {
763
- $results[$taxonomy] = $terms;
764
- }
765
  }
766
- return $results;
767
  }
768
  }
18
  *
19
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
20
  */
21
+ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
22
  // Here we assign the current blog_id to a variable $blog_id
23
  $blog_id = get_current_blog_id();
24
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
44
+
45
  /**
46
+ * Fetch and retrieves posts based from the submitted parameters
47
  *
48
+ * @param array $params Containing all the needed information to filter the results of the current request
49
  * @return array
 
 
 
 
 
50
  */
51
+ public function get_posts($params) {
52
+ $error = $this->_validate_capabilities(array('publish_posts', 'edit_posts', 'delete_posts'));
53
+ if (!empty($error)) return $error;
54
 
55
+ // check paged parameter; if empty set to defaults
 
 
56
  $paged = !empty($params['paged']) ? (int) $params['paged'] : 1;
57
+ $numberposts = !empty($params['numberposts']) ? (int) $params['numberposts'] : 10;
58
+ $offset = ($paged - 1) * $numberposts;
59
 
60
  $args = array(
61
+ 'posts_per_page' => $numberposts,
62
  'paged' => $paged,
63
+ 'offset' => $offset,
64
  'post_type' => 'post',
65
+ 'post_status' => 'publish,private,draft,pending,future',
66
  );
67
 
68
+ if (!empty($params['keyword'])) {
69
+ $args['s'] = $params['keyword'];
70
+ }
71
+
72
+ if (!empty($params['category'])) {
73
+ $args['cat'] = (int) $params['category'];
74
+ }
75
+
76
+ if (!empty($params['date'])) {
77
+ list($monthnum, $year) = explode(':', $params['date']);
78
+
79
+ $args['monthnum'] = $monthnum;
80
+ $args['year'] = $year;
81
+ }
82
+
83
+ if (!empty($params['status']) && 'all' !== $params['status']) {
84
+ $args['post_status'] = $params['status'];
85
  }
86
 
 
 
 
87
  $query = new WP_Query($args);
88
  $result = $query->posts;
89
 
90
+ $count_posts = (int) $query->found_posts;
91
  $page_count = 0;
 
92
 
93
+ if ($count_posts > 0) {
94
+ $page_count = absint($count_posts / $numberposts);
95
+ $remainder = absint($count_posts % $numberposts);
 
96
  $page_count = ($remainder > 0) ? ++$page_count : $page_count;
97
  }
98
 
99
  $info = array(
100
  'page' => $paged,
101
  'pages' => $page_count,
102
+ 'results' => $count_posts,
103
+ 'items_from' => (($paged * $numberposts) - $numberposts) + 1,
104
+ 'items_to' => ($paged == $page_count) ? $count_posts : $paged * $numberposts,
105
  );
106
 
107
+ $posts = array();
108
+ if (!empty($result)) {
 
 
 
 
 
 
109
  foreach ($result as $post) {
110
+ // Pulling any other relevant and additional information regarding
111
+ // the post before returning it in the response.
112
+ $postdata = $this->get_postdata($post, false);
113
+ if (!empty($postdata)) {
114
+ array_push($posts, $postdata);
115
+ }
116
+ }
117
+ }
118
 
119
+ $response = array(
120
+ 'posts' => $posts,
121
+ 'options' => $this->get_options(),
122
+ 'info' => $info,
123
+ 'posts_count' => $this->get_post_status_counts('post'),
124
+ );
125
 
126
+ // Load any additional information if preload parameter is set. Will only be
127
+ // requested on initial load of items in UpdraftCentral.
128
+ if (isset($params['preload']) && $params['preload']) {
129
+ $response = array_merge($response, $this->get_preload_data());
130
+ }
131
 
132
+ return $this->_response($response);
133
+ }
 
 
134
 
135
+ /**
136
+ * Extracts public properties from complex object and return a simple
137
+ * object (stdClass) that contains the public properties of the original object.
138
+ *
139
+ * @param object $obj Any type of complex objects that needs converting (e.g. WP_Taxonomy, WP_Term or WP_User)
140
+ * @return stdClass
141
+ */
142
+ private function trim_object($obj) {
143
+ // To preserve the object's accessibility through its properties we recreate
144
+ // the object using the stdClass and fill it with the public properties
145
+ // that will be extracted from the original object ($obj).
146
+ $newObj = new stdClass();
147
+
148
+ if (is_object($obj)) {
149
+ // Making sure that we only extract those publicly accessible properties excluding
150
+ // the private, protected, static ones and methods.
151
+ $props = get_object_vars($obj);
152
+ if (!empty($props)) {
153
+ foreach ($props as $key => $value) {
154
+ $newObj->{$key} = $value;
155
+ }
156
  }
157
+ }
158
 
159
+ return $newObj;
160
+ }
161
+
162
+ /**
163
+ * Retrieves information that will be preloaded in UC for quick and easy access
164
+ * when editing a certain page or post
165
+ *
166
+ * @return array
167
+ */
168
+ private function get_preload_data() {
169
+ if (!function_exists('get_page_templates')) {
170
+ require_once(ABSPATH.'wp-admin/includes/theme.php');
171
  }
172
 
173
+ $templates = get_page_templates();
174
+ if (!empty($templates)) {
175
+ $templates = array_flip($templates);
176
+ if (!isset($templates['default'])) {
177
+ $templates['default'] = __('Default template', 'updraftplus');
178
+ }
179
+ }
180
+
181
+ // Preloading elements saves time and avoid unnecessary round trips to fetch
182
+ // these information individually.
183
+ $categories = $this->get_categories();
184
+ $tags = $this->get_tags();
185
+ $authors = $this->get_authors();
186
+ $parent_pages = $this->get_parent_pages();
187
+
188
+ return array(
189
+ 'preloaded' => json_encode(array(
190
+ 'taxonomies' => $this->get_taxonomies(),
191
+ 'categories' => $categories['data'],
192
+ 'tags' => $tags['data'],
193
+ 'authors' => $authors['data']['authors'],
194
+ 'parent_pages' => $parent_pages['data']['pages'],
195
+ 'templates' => $templates,
196
+ ))
197
+ );
198
  }
199
 
200
  /**
201
+ * Retrieves the total number of items found under each post statuses
202
  *
 
203
  * @return array
204
+ */
205
+ private function get_post_status_counts() {
206
+ $posts = wp_count_posts('post');
207
+
208
+ $publish = (int) $posts->publish;
209
+ $private = (int) $posts->private;
210
+ $draft = (int) $posts->draft;
211
+ $pending = (int) $posts->pending;
212
+ $future = (int) $posts->future;
213
+ $trash = (int) $posts->trash;
214
+
215
+ // We exclude "trash" from the overall total as WP doesn't actually
216
+ // consider or include it in the total count.
217
+ $all = $publish + $private + $draft + $pending + $future;
218
+
219
+ return array(
220
+ 'all' => $all,
221
+ 'publish' => $publish,
222
+ 'private' => $private,
223
+ 'draft' => $draft,
224
+ 'pending' => $pending,
225
+ 'future' => $future,
226
+ 'trash' => $trash,
227
+ );
228
+ }
229
+
230
+ /**
231
+ * Retrieves a collection of formatted dates found for the given post statuses.
232
+ * It will be used as options for the date filter when managing the posts in UpdraftCentral.
233
  *
234
+ * @return array
 
235
  */
236
+ private function get_date_options() {
237
+ global $wpdb;
238
+
239
+ $date_options = $wpdb->get_col("SELECT DATE_FORMAT(`post_date`, '%M %Y') as `formatted_post_date` FROM {$wpdb->posts} WHERE `post_type` = 'post' AND `post_status` IN ('publish', 'private', 'draft', 'pending', 'future') GROUP BY `formatted_post_date` ORDER BY `post_date` DESC");
240
+
241
+ return $date_options;
242
+ }
243
 
244
+ /**
245
+ * Make sure that we have the required fields to use in UpdraftCentral for
246
+ * displaying the categories and tags sections. Add if missing.
247
+ *
248
+ * @param object $item Taxonomy item to check
249
+ * @return object
250
+ */
251
+ protected function map_tax($item) {
252
+ $taxs = array('category' => 'categories', 'post_tag' => 'tags');
253
+ if (array_key_exists($item->name, $taxs)) {
254
+ if (!isset($item->show_in_rest)) $item->show_in_rest = true;
255
+ if (!isset($item->rest_base)) $item->rest_base = $taxs[$item->name];
256
  }
257
 
258
+ return $item;
259
+ }
260
 
261
+ /**
262
+ * Fetch and retrieves available taxonomies for this site and some capabilities specific
263
+ * to tags and categories when managing them.
264
+ *
265
+ * @return array
266
+ */
267
+ private function get_taxonomies() {
268
+ $taxonomies = get_taxonomies(array(), 'objects');
269
+ $taxonomies = array_map(array($this, 'map_tax'), $taxonomies);
270
+
271
+ $response = array(
272
+ 'taxonomies' => $taxonomies,
273
+ 'current_user_cap' => array(
274
+ 'manage_categories' => current_user_can('manage_categories'),
275
+ 'edit_categories' => current_user_can('edit_categories'),
276
+ 'delete_categories' => current_user_can('delete_categories'),
277
+ 'assign_categories' => current_user_can('assign_categories'),
278
+ 'manage_post_tags' => current_user_can('manage_post_tags'),
279
+ 'edit_post_tags' => current_user_can('edit_post_tags'),
280
+ 'delete_post_tags' => current_user_can('delete_post_tags'),
281
+ 'assign_post_tags' => current_user_can('assign_post_tags'),
282
+ )
283
+ );
284
 
285
+ return $response;
286
+ }
287
 
288
+ /**
289
+ * Fetch and retrieves categories based from the submitted parameters
290
+ *
291
+ * @param array $query Containing all the needed information to filter the results of the current request
292
+ * @return array
293
+ */
294
+ public function get_categories($query = array()) {
295
+ $page = !empty($query['page']) ? (int) $query['page'] : 1;
296
+ $items_per_page = !empty($query['per_page']) ? (int) $query['per_page'] : 50;
297
+ $offset = ($page - 1) * $items_per_page;
298
+ $order = !empty($query['order']) ? $query['order'] : 'asc';
299
+ $orderby = !empty($query['orderby']) ? $query['orderby'] : 'name';
300
 
301
+ $args = array(
302
+ 'hide_empty' => false,
303
+ 'orderby' => $orderby,
304
+ 'order' => $order,
305
+ 'number' => $items_per_page,
306
+ 'offset' => $offset
307
+ );
308
 
309
+ $categories = get_categories($args);
310
+ $category_options = array();
311
 
312
+ if (!empty($categories)) {
313
+ foreach ($categories as $key => $term) {
314
+ $parent_term = get_term((int) $term->parent, $term->taxonomy);
315
+ if (!is_wp_error($parent_term) && !is_null($parent_term)) {
316
+ $parent_term = json_encode($this->trim_object($parent_term));
317
+ } else {
318
+ $parent_term = '';
319
+ }
320
 
321
+ $category_options[] = array(
322
+ 'id' => $term->term_id,
323
+ 'name' => $term->name,
324
+ 'parent' => $term->parent
325
+ );
326
+
327
+ $categories[$key] = array(
328
+ 'term' => json_encode($this->trim_object($term)),
329
+ 'misc' => array(
330
+ 'link' => get_term_link($term),
331
+ 'parent_term' => $parent_term,
332
+ 'taxonomy' => $term->taxonomy
333
+ )
334
+ );
335
+ }
336
+ }
337
 
338
+ $categorytax = get_taxonomy('category');
339
+ $parent_dropdown_args = array(
340
+ 'taxonomy' => 'category',
341
+ 'hide_empty' => 0,
342
+ 'name' => 'newcategory_parent',
343
+ 'orderby' => 'name',
344
+ 'hierarchical' => 1,
345
+ 'show_option_none' => '&mdash; '.$categorytax->labels->parent_item.' &mdash;',
346
+ 'echo' => false
347
+ );
348
 
349
+ $parent_dropdown_args = apply_filters('post_edit_category_parent_dropdown_args', $parent_dropdown_args);
350
+ $parent_dropdown = wp_dropdown_categories($parent_dropdown_args);
 
 
 
 
351
 
352
+ if (!function_exists('wp_popular_terms_checklist')) {
353
+ require_once ABSPATH . 'wp-admin/includes/template.php';
354
  }
355
 
356
+ ob_start();
357
+ wp_popular_terms_checklist('category');
358
+ $popular_terms_checklist = ob_get_contents();
359
+ ob_end_clean();
360
+
361
+ return $this->_response(array(
362
+ 'terms' => $categories,
363
+ 'misc' => array(
364
+ 'formatted' => $category_options,
365
+ 'raw' => $categories,
366
+ 'tax' => json_encode($this->trim_object($categorytax)),
367
+ 'popular' => $popular_terms_checklist,
368
+ 'parent_dropdown' => $parent_dropdown,
369
+ 'capabilities' => array(
370
+ 'can_edit_terms' => current_user_can($categorytax->cap->edit_terms)
371
+ )
372
+ )
373
+ ));
374
  }
375
 
376
  /**
377
+ * Fetch and retrieves tags based from the submitted parameters
378
  *
379
+ * @param array $query Containing all the needed information to filter the results of the current request
380
  * @return array
 
 
 
381
  */
382
+ public function get_tags($query = array()) {
383
+ $page = !empty($query['page']) ? (int) $query['page'] : 1;
384
+ $items_per_page = !empty($query['per_page']) ? (int) $query['per_page'] : 50;
385
+ $offset = ($page - 1) * $items_per_page;
386
+ $order = !empty($query['order']) ? $query['order'] : 'desc';
387
+ $orderby = !empty($query['orderby']) ? $query['orderby'] : 'count';
388
 
389
+ $args = array(
390
+ 'hide_empty' => false,
391
+ 'orderby' => $orderby,
392
+ 'order' => $order,
393
+ 'number' => $items_per_page,
394
+ 'offset' => $offset
395
+ );
396
 
397
+ $tags = get_tags($args);
398
+ $tag_options = array();
399
+ $tag_cloud = '';
400
+
401
+ if (!empty($tags)) {
402
+ $tags_for_cloud = array();
403
+ foreach ($tags as $key => $term) {
404
+ if (!isset($term->link)) $term->link = get_tag_link($term->term_id);
405
+ array_push($tags_for_cloud, $term);
406
+
407
+ $parent_term = get_term((int) $term->parent, $term->taxonomy);
408
+ if (!is_wp_error($parent_term) && !is_null($parent_term)) {
409
+ $parent_term = json_encode($this->trim_object($parent_term));
410
+ } else {
411
+ $parent_term = '';
412
+ }
413
 
414
+ $tag_options[] = array(
415
+ 'id' => $term->term_id,
416
+ 'name' => $term->name,
417
+ );
418
+
419
+ $tags[$key] = array(
420
+ 'term' => json_encode($this->trim_object($term)),
421
+ 'misc' => array(
422
+ 'link' => get_term_link($term),
423
+ 'parent_term' => $parent_term,
424
+ 'taxonomy' => $term->taxonomy
425
+ )
426
+ );
427
+ }
428
 
429
+ if (!function_exists('wp_generate_tag_cloud')) {
430
+ require_once ABSPATH.WPINC.'/category-template.php';
431
+ }
432
+
433
+ $tag_cloud = wp_generate_tag_cloud($tags_for_cloud, array(
434
+ 'smallest' => 10,
435
+ 'largest' => 22,
436
+ 'unit' => 'pt',
437
+ 'number' => 10,
438
+ 'format' => 'flat',
439
+ 'separator' => " ",
440
+ 'orderby' => 'count',
441
+ 'order' => 'DESC',
442
+ 'show_count' => 1,
443
+ 'echo' => false
444
+ ));
445
  }
446
 
447
+ $tagtax = get_taxonomy('post_tag');
448
+ return $this->_response(array(
449
+ 'terms' => $tags,
450
+ 'misc' => array(
451
+ 'formatted' => $tag_options,
452
+ 'raw' => $tags,
453
+ 'tax' => json_encode($this->trim_object($tagtax)),
454
+ 'tag_cloud' => $tag_cloud,
455
+ 'capabilities' => array(
456
+ 'can_assign_terms' => current_user_can($tagtax->cap->assign_terms)
457
+ )
458
+ )
459
+ ));
460
  }
461
 
462
  /**
463
+ * Fetch all available taxonomies and terms information for the given post object
464
  *
465
+ * @param array $post The "Post" object to use when retrieving the information
466
+ * @return array
 
 
 
467
  */
468
+ private function get_taxonomies_terms($post) {
469
+ $taxonomies = get_object_taxonomies($post->post_type, 'objects');
470
+ $taxonomies = array_map(array($this, 'map_tax'), $taxonomies);
471
 
472
+ $taxonomy_names = array();
473
+ $taxonomy_terms = array();
474
+ $taxonomy_caps = array();
475
 
476
+ foreach ($taxonomies as $taxonomy) {
477
+ $terms = get_the_terms($post->ID, $taxonomy->name);
478
+ $terms = !is_array($terms) ? (array) $terms : $terms;
479
+
480
+ $taxonomy_terms[$taxonomy->name] = $terms;
481
+ $taxonomy_caps[$taxonomy->name] = array(
482
+ 'hierarchical' => is_taxonomy_hierarchical($taxonomy->name),
483
+ 'edit_terms' => current_user_can($taxonomy->cap->edit_terms),
484
+ 'assign_terms' => current_user_can($taxonomy->cap->assign_terms),
485
+ );
486
+ array_push($taxonomy_names, $taxonomy->name);
 
 
 
487
  }
 
 
488
 
489
+ return array(
490
+ 'objects' => $taxonomies,
491
+ 'names' => $taxonomy_names,
492
+ 'terms' => $taxonomy_terms,
493
+ 'caps' => $taxonomy_caps,
494
+ );
495
  }
496
 
497
  /**
498
+ * Retrieves the underlying data for the given post. Some extra information are
499
+ * passed along that will be consumed by the editor in UpdraftCentral
 
 
 
 
500
  *
501
+ * @param int|object $param Post object or a post ID
502
+ * @param boolean $encode True to encode the post object, false otherwise
503
+ * @return array
 
504
  */
505
+ public function get_postdata($param, $encode = true) {
506
+ $response = array();
507
 
508
+ if (is_object($param) && isset($param->ID)) {
509
+ $post = $param;
510
+ } elseif (is_numeric($param)) {
511
+ $post = get_post($param);
512
  }
513
 
514
+ if ($post) {
515
+ $post_type_obj = get_post_type_object($post->post_type);
516
+
517
+ $is_post_type_viewable = false;
518
+ if (!empty($post_type_obj)) {
519
+ $is_post_type_viewable = $post_type_obj->publicly_queryable || ($post_type_obj->_builtin && $post_type_obj->public);
520
+ }
521
 
522
+ if (!function_exists('get_sample_permalink')) {
523
+ require_once ABSPATH.'wp-admin/includes/post.php';
524
+ }
 
 
 
525
 
526
+ // Validate template exists on the current theme, otherwise,
527
+ // reset the template to default.
528
+ $template = get_page_template_slug($post->ID);
529
+ if (!empty($template)) {
530
+ $page_templates = wp_get_theme()->get_page_templates($post);
531
+ if ('default' != $template && !isset($page_templates[$template])) {
532
+ update_post_meta($post->ID, '_wp_page_template', 'default');
533
+ }
534
+ }
535
 
536
+ $published_date = array(
537
+ 'jj' => date('d', strtotime($post->post_date)),
538
+ 'mm' => date('m', strtotime($post->post_date)),
539
+ 'aa' => date('Y', strtotime($post->post_date)),
540
+ 'hh' => date('H', strtotime($post->post_date)),
541
+ 'mn' => date('i', strtotime($post->post_date)),
542
+ 'ss' => date('s', strtotime($post->post_date))
543
+ );
544
 
545
+ $taxonomies = $this->get_taxonomies_terms($post);
546
+ $response = array(
547
+ 'post' => $encode ? json_encode($post) : $post,
548
+ 'misc' => array(
549
+ 'guid_rendered' => apply_filters('get_the_guid', $post->guid, $post->ID),
550
+ 'link' => get_permalink($post->ID),
551
+ 'slug' => $post->post_name,
552
+ 'site_url' => site_url('/'),
553
+ 'title_rendered' => get_the_title($post->ID),
554
+ 'content_rendered' => apply_filters('the_content', $post->post_content),
555
+ 'excerpt' => $post->post_excerpt,
556
+ 'featured_media' => 0,
557
+ 'sticky' => is_sticky($post->ID),
558
+ 'template' => get_page_template_slug($post->ID),
559
+ 'permalink_template' => get_permalink($post->ID, true),
560
+ 'author_name' => get_the_author_meta('display_name', $post->post_author),
561
+ 'publish_month_year' => date('F Y', strtotime($post->post_date)),
562
+ 'published_date' => $published_date,
563
+ 'format' => get_post_format($post->ID),
564
+ 'post_type_name' => $post_type_obj->name,
565
+ 'post_type_viewable' => $is_post_type_viewable,
566
+ 'post_type_public' => $post_type_obj->public,
567
+ 'post_type_hierarchical' => $post_type_obj->hierarchical,
568
+ 'sample_permalink' => get_sample_permalink($post->ID, $post->post_title, ''),
569
+ 'taxonomy_objects' => $taxonomies['objects'],
570
+ 'taxonomy_names' => $taxonomies['names'],
571
+ 'taxonomy_terms' => $taxonomies['terms'],
572
+ 'taxonomy_caps' => $taxonomies['caps'],
573
+ 'post_password_required' => post_password_required($post),
574
+ 'post_type_supports_authors' => post_type_supports($post->post_type, 'author'),
575
+ 'post_type_supports_comments' => post_type_supports($post->post_type, 'comments'),
576
+ 'post_type_supports_revisions' => post_type_supports($post->post_type, 'revisions'),
577
+ 'post_revisions' => array(), // N.B. We're not going to allow revisions editing for now
578
+ 'post_thumbnail_id' => get_post_thumbnail_id($post->ID),
579
+ 'can_publish_posts' => current_user_can($post_type_obj->cap->publish_posts),
580
+ 'can_edit_others_posts' => current_user_can($post_type_obj->cap->edit_others_posts),
581
+ 'can_unfiltered_html' => current_user_can('unfiltered_html')
582
+ )
583
  );
584
 
585
+ if (!function_exists('wp_popular_terms_checklist') || !function_exists('get_terms_to_edit')) {
586
+ require_once ABSPATH . 'wp-admin/includes/template.php';
587
+ require_once ABSPATH . 'wp-admin/includes/taxonomy.php';
588
+ }
589
+
590
+ if (!function_exists('wp_get_post_categories')) {
591
+ require_once(ABSPATH.WPINC.'/post.php');
592
+ }
593
 
594
+ $categories = wp_get_post_categories($post->ID, array('fields' => 'ids'));
595
+ if (!is_wp_error($categories)) {
596
+ $response['misc']['categories'] = empty($categories) ? array() : $categories;
597
+ $terms_to_edit = get_terms_to_edit($post->ID, 'category');
598
+ if (!empty($terms_to_edit)) {
599
+ $response['misc']['categories_list'] = str_replace(',', ', ', $terms_to_edit);
600
+ }
601
 
602
+ $popular_ids = wp_popular_terms_checklist('category', 0, 10, false);
603
+ // On WP 3.4 the "wp_terms_checklist" doesn't have an "echo" parameter and will automatically
604
+ // display the rendered checklist. Therefore, we're going to pull the terms so that all
605
+ // versions starting from WP 3.4 will pull the content instead of displaying them.
606
+
607
+ ob_start();
608
+ // In this call we'll have to set the "echo" parameter to true so that later version of WP
609
+ // will be able to catch and process it.
610
+ wp_terms_checklist($post->ID, array('taxonomy' => 'category', 'popular_cats' => $popular_ids, 'echo' => true));
611
+ $popular_checklist = ob_get_contents();
612
+ ob_end_clean();
613
+
614
+ $response['misc']['categories_checklist'] = $popular_checklist;
615
+
616
+ ob_start();
617
+ wp_terms_checklist($post->ID, array('taxonomy' => 'category', 'checked_ontop' => 0, 'echo' => true));
618
+ $quickedit_checklist = ob_get_contents();
619
+ ob_end_clean();
620
+
621
+ $response['misc']['categories_quickedit_checklist'] = $quickedit_checklist;
622
+ }
623
+
624
+ $tags = wp_get_post_tags($post->ID, array('fields' => 'ids'));
625
+ if (!is_wp_error($tags)) {
626
+ $response['misc']['tags'] = empty($tags) ? array() : $tags;
627
+ $terms_to_edit = get_terms_to_edit($post->ID, 'post_tag');
628
+ if (!empty($terms_to_edit)) {
629
+ $response['misc']['tags_list'] = str_replace(',', ', ', $terms_to_edit);
630
+ }
631
+ }
632
+
633
+ // Naturally, the "featured_media" will suffice when loading the image (media) in
634
+ // UpdraftCentral since the value in this field is the actual image id of the featured
635
+ // media used in UC. If we currently don't have an entry in the "featured_media_updraftcentral" meta,
636
+ // then UC will need to download the featured media (image) for this current post/page
637
+ // using the "featured_media_url" field (below) if not empty.
638
+ $featured_media = get_post_meta($post->ID, 'featured_media_updraftcentral', true);
639
+ if (!empty($featured_media)) {
640
+ $response['misc']['featured_media'] = $featured_media;
641
+ }
642
+
643
+ // Retrieve featured media if currently present for the given post/page.
644
+ // If present, we pull the image (media) URL in case there's a need for
645
+ // UpdraftCentral to download the image upon loading the editor (e.g. the featured_media id
646
+ // above no longer exists).
647
+ $media_id = (int) get_post_thumbnail_id($post->ID);
648
+ if (!empty($media_id)) {
649
+ $response['misc']['featured_media_url'] = wp_get_attachment_url($media_id);
650
+ } else {
651
+ // The post/page no longer has a "featured_media" or doesn't have one currently, therefore,
652
+ // we're going to set the "featured_media" and "featured_media_url" fields to both empty to
653
+ // to avoid any further actions (e.g. download media).
654
+ $response['misc']['featured_media'] = 0;
655
+ $response['misc']['featured_media_url'] = '';
656
+ }
657
  }
 
 
658
 
659
+ return $response;
660
  }
661
 
662
  /**
663
+ * Changes the state/status of the submitted post(s)
 
 
 
 
 
664
  *
665
+ * @param array $params An array of data that serves as parameters for the given request
666
+ * @return array
 
667
  */
668
+ public function set_state($params) {
669
+ $error = $this->_validate_capabilities(array('publish_posts', 'edit_posts', 'delete_posts'));
670
+ if (!empty($error)) return $error;
671
 
672
+ $result = array();
673
+ if (!empty($params['list'])) {
674
+ $posts = array();
675
+ foreach ($params['list'] as $key => $id) {
676
+ $post = $this->apply_state($id, $params['action']);
677
+ if (!empty($post)) {
678
+ array_push($posts, $post);
679
+ }
680
+ }
681
 
682
+ if (!empty($posts)) {
683
+ $result = array('posts' => $posts);
684
+ }
685
+ } elseif (!empty($params['id'])) {
686
+ $post = $this->apply_state($params['id'], $params['action']);
687
+ if (!empty($post)) $result = $post;
688
  }
689
 
690
+ if (!empty($result)) {
691
+ $response = $this->get_posts($params);
692
+ if (!empty($response['response']) && 'rpcok' === $response['response']) {
693
+ $result['get_posts'] = $response['data'];
694
+ }
695
 
696
+ return $this->_response($result);
697
+ } else {
698
+ return $this->_generic_error_response('post_state_change_failed', array('action' => $params['action']));
699
+ }
700
+ }
 
 
 
701
 
702
+ /**
703
+ * Creates new category
704
+ *
705
+ * @param array $params An array of data that serves as parameters for the given request
706
+ * @param boolean $wrap_response Indicates whether to wrap the response based on local or UpdraftCentral calls. Default true.
707
+ * @return array
708
+ */
709
+ public function add_category($params, $wrap_response = true) {
710
+ $error = $this->_validate_capabilities(array('manage_categories'));
711
+ if (!empty($error)) return $error;
712
+
713
+ $name = sanitize_text_field($params['name']);
714
+ $args = array();
715
+ if (!empty($params['parent'])) {
716
+ $args['parent'] = $params['parent'];
717
+ }
718
 
719
+ $result = wp_insert_term($name, 'category', $args);
720
+ if (!is_wp_error($result)) {
721
+ $term_id = $result['term_id'];
722
+ $term = get_term($term_id, 'category');
723
+
724
+ $data = array();
725
+ if (!is_wp_error($term)) {
726
+ $data = array(
727
+ 'id' => $term->term_id,
728
+ 'count' => $term->count,
729
+ 'description' => $term->description,
730
+ 'link' => get_term_link($term->term_id, 'category'),
731
+ 'name' => $term->name,
732
+ 'slug' => $term->slug,
733
+ 'taxonomy' => $term->taxonomy,
734
+ 'parent' => $term->parent,
735
+ 'meta' => array()
736
+ );
737
+
738
+ $categories = $this->get_categories();
739
+ if ($wrap_response) $data['categories'] = json_encode($categories['data']);
740
+ }
741
 
742
+ return $wrap_response ? $this->_response($data) : $data;
743
+ } else {
744
+ $error = array(
745
+ 'message' => __($result->get_error_message(), 'updraftplus')
746
  );
747
 
748
+ return $wrap_response ? $this->_generic_error_response('post_add_category_failed', $error) : $error;
749
  }
 
 
 
 
 
 
 
 
750
  }
751
 
752
  /**
753
+ * Assigns categories to a certain post object
 
 
754
  *
755
+ * @param int $post_id The ID of the post object
756
+ * @param array $category_ids A collection of category IDs to assign to the post object
757
+ * @return void
 
 
 
 
 
 
758
  */
759
+ private function assign_category_to_post($post_id, $category_ids) {
760
+ if (!empty($category_ids)) {
761
+ // Making sure that we have the correct type to use and we
762
+ // don't have any redundant IDs before saving.
763
+ $category_ids = array_unique(array_map('intval', $category_ids));
764
+
765
+ // Attach (new) categories to post
766
+ wp_set_object_terms($post_id, $category_ids, 'category');
 
 
 
 
 
 
 
 
 
 
 
767
  } else {
768
+ wp_set_object_terms($post_id, get_option('default_category'), 'category');
 
769
  }
770
+ }
771
 
772
+ /**
773
+ * Creates new tag
774
+ *
775
+ * @param array $params An array of data that serves as parameters for the given request
776
+ * @param boolean $wrap_response Indicates whether to wrap the response based on local or UpdraftCentral calls. Default true.
777
+ * @return array
778
+ */
779
+ public function add_tag($params, $wrap_response = true) {
780
+ // N.B. Since the "manage_post_tags" capability does not exist in WP 3.4. We'll use the "manage_categories" instead. Besides, the "manage_post_tags" along with the other tag-related capabilities in the latest versions are actually mapped to the "manage_categories" capability (refer to wp-includes/capabilities.php under the "map_meta_cap" function).
781
+ $error = $this->_validate_capabilities(array('manage_categories'));
782
+ if (!empty($error)) return $error;
783
+
784
+ $name = sanitize_text_field($params['name']);
785
+ $result = wp_insert_term($name, 'post_tag');
786
+ if (!is_wp_error($result)) {
787
+ $term_id = $result['term_id'];
788
+ $term = get_term($term_id, 'post_tag');
789
+
790
+ $data = array();
791
+ if (!is_wp_error($term)) {
792
+ $data = array(
793
+ 'id' => $term->term_id,
794
+ 'count' => $term->count,
795
+ 'description' => $term->description,
796
+ 'link' => get_term_link($term->term_id, 'post_tag'),
797
+ 'name' => $term->name,
798
+ 'slug' => $term->slug,
799
+ 'taxonomy' => $term->taxonomy,
800
+ 'meta' => array()
801
+ );
802
+
803
+ $tags = $this->get_tags();
804
+ if ($wrap_response) $data['tags'] = json_encode($tags['data']);
805
+ }
806
 
807
+ return $wrap_response ? $this->_response($data) : $data;
808
+ } else {
809
+ $error = array(
810
+ 'message' => __($result->get_error_message(), 'updraftplus')
811
  );
 
 
812
 
813
+ return $wrap_response ? $this->_generic_error_response('post_add_tag_failed', $error) : $error;
814
+ }
815
+ }
 
816
 
817
+ /**
818
+ * Assigns tags to a certain post object
819
+ *
820
+ * @param int $post_id The ID of the post object
821
+ * @param array $tag_ids A collection of tag IDs to assign to the post object
822
+ * @return void
823
+ */
824
+ private function assign_tag_to_post($post_id, $tag_ids) {
825
+ if (!empty($tag_ids)) {
826
+ // Making sure that we have the correct type to use and we
827
+ // don't have any redundant IDs before saving.
828
+ $tag_ids = array_unique(array_map('intval', $tag_ids));
829
+
830
+ // Attach (new) tags to post
831
+ wp_set_object_terms($post_id, $tag_ids, 'post_tag');
832
  } else {
833
+ wp_set_object_terms($post_id, null, 'post_tag');
 
834
  }
 
 
835
  }
836
 
837
  /**
838
+ * Saves or updates page information based from the submitted data
 
 
 
 
 
839
  *
840
+ * @param array $params An array of data that serves as parameters for the given request
841
+ * @return array
 
842
  */
843
+ public function save_post($params) {
844
+ $error = $this->_validate_capabilities(array('publish_posts', 'edit_posts', 'delete_posts'));
845
+ if (!empty($error)) return $error;
846
 
847
+ if (!empty($params['id']) || !empty($params['new'])) {
848
+ $args = array();
 
 
849
 
850
+ // post_content
851
+ if (!empty($params['content']))
852
+ $args['post_content'] = $params['content'];
853
 
854
+ // post_excerpt
855
+ if (!empty($params['excerpt']))
856
+ $args['post_excerpt'] = $params['excerpt'];
 
857
 
858
+ // menu_order
859
+ if (!empty($params['order']))
860
+ $args['menu_order'] = $params['order'];
 
861
 
862
+ // post_parent
863
+ if (!empty($params['parent']))
864
+ $args['post_parent'] = $params['parent'];
 
 
865
 
866
+ // post_name
867
+ if (!empty($params['slug']))
868
+ $args['post_name'] = $params['slug'];
869
 
870
+ // post_status
871
+ if (!empty($params['status'])) {
872
+ $args['post_status'] = $params['status'];
873
+ }
 
 
874
 
875
+ // post_title
876
+ if (!empty($params['title']))
877
+ $args['post_title'] = $params['title'];
878
+
879
+ // post_author
880
+ if (!empty($params['author']))
881
+ $args['post_author'] = $params['author'];
882
+
883
+ // comment_status
884
+ if (!empty($params['comment_status']))
885
+ $args['comment_status'] = $params['comment_status'];
886
+
887
+ // ping_status
888
+ if (!empty($params['ping_status']))
889
+ $args['ping_status'] = $params['ping_status'];
890
+
891
+ // visibility
892
+ if (!empty($params['visibility'])) {
893
+ switch ($params['visibility']) {
894
+ case 'public':
895
+ $args['post_status'] = 'publish';
896
+ $args['post_password'] = '';
897
+ break;
898
+ case 'password':
899
+ $args['post_status'] = 'publish';
900
+ $args['post_password'] = $params['password'];
901
+ break;
902
+ case 'private':
903
+ $args['post_status'] = 'private';
904
+ $args['post_password'] = '';
905
+ break;
906
+ default:
907
+ break;
908
+ }
909
+ }
910
 
911
+ // post/publish date
912
+ if (!empty($params['date'])) {
913
+ $datetime = strtotime($params['date']);
914
+ $post_date = date('Y-m-d H:i:s', $datetime);
 
 
915
 
916
+ $args['post_date'] = $post_date;
917
+ $args['post_date_gmt'] = gmdate('Y-m-d H:i:s', $datetime);
918
 
919
+ if (strtotime($post_date) > strtotime(date('Y-m-d H:i:s'))) $args['post_status'] = 'future';
920
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
921
 
922
+ // Make sure we have a slug/post_name generated before insert/update
923
+ if (empty($params['slug']) && !empty($params['title'])) {
924
+ $args['post_name'] = sanitize_title_with_dashes($params['title']);
925
+ }
926
 
927
+ if (!empty($params['new'])) {
928
+ $args['post_type'] = 'post';
929
+ $post_id = wp_insert_post($args, true);
930
+ } else {
931
+ $args['ID'] = $params['id'];
932
+ $args['post_modified'] = date('Y-m-d H:i:s');
933
+ $args['post_modified_gmt'] = gmdate('Y-m-d H:i:s');
934
 
935
+ $post_id = wp_update_post($args, true);
936
+ }
937
 
938
+ // We have successfully created/updated a post at this point, thus, we'll continue
939
+ // with implementing the other requested processes and return the result.
940
+ if (!is_wp_error($post_id)) {
941
+ // sticky post
942
+ if (isset($params['sticky'])) {
943
+ $sticky = (bool) $params['sticky'];
944
+ if ($sticky) {
945
+ stick_post($post_id);
946
+ } else {
947
+ if (is_sticky($post_id)) {
948
+ unstick_post($post_id);
949
+ }
950
+ }
951
+ }
952
 
953
+ // template
954
+ if (!empty($params['template'])) {
955
+ update_post_meta($post_id, '_wp_page_template', $params['template']);
956
+ }
957
 
958
+ // featured_media
959
+ if (!empty($params['featured_media'])) {
960
+ $featured_media_data = !empty($params['featured_media_data']) ? $params['featured_media_data'] : null;
961
+ $media_id = $this->attach_remote_image($params['featured_media_url'], $featured_media_data, $post_id);
962
+ if (!empty($media_id)) {
963
+ // If we have a successful attachment then add reference to UC's media id
964
+ update_post_meta($post_id, 'featured_media_updraftcentral', $params['featured_media']);
965
+ }
966
+ }
967
 
968
+ // categories
969
+ $categories_updated = false;
970
+ if (!empty($params['categories'])) {
971
+ $term_ids = array();
972
+ foreach ($params['categories'] as $key => $value) {
973
+ $category = sanitize_text_field($value);
974
+ $parent = 0;
975
+
976
+ if (false !== strpos($category, ':')) {
977
+ list($parent, $category) = explode(':', $category);
978
+ $result = $this->add_category(array('name' => $category, 'parent' => $parent), false);
979
+
980
+ if (!empty($result)) {
981
+ array_push($term_ids, $result['id']);
982
+ }
983
+ } else {
984
+ $term = get_term_by('id', $category, 'category');
985
+ if (!empty($term)) {
986
+ $term_id = $term->term_id;
987
+ array_push($term_ids, $term_id);
988
+ }
989
+ }
990
+ }
991
+
992
+ $this->assign_category_to_post($post_id, $term_ids);
993
+ $categories_updated = true;
994
+ }
995
+
996
+ // tags
997
+ $tags_updated = false;
998
+ if (!empty($params['tags'])) {
999
+ $term_ids = array();
1000
+ foreach ($params['tags'] as $key => $value) {
1001
+ $tag = sanitize_text_field($value);
1002
+ $field = is_numeric($tag) ? 'id' : 'name';
1003
+
1004
+ $term = get_term_by($field, $tag, 'post_tag');
1005
+ if (!empty($term)) {
1006
+ $term_id = $term->term_id;
1007
+ array_push($term_ids, $term_id);
1008
+ } else {
1009
+ $result = $this->add_tag(array('name' => $tag), false);
1010
+ if (!empty($result)) {
1011
+ array_push($term_ids, $result['id']);
1012
+ }
1013
+ }
1014
+ }
1015
+
1016
+ $this->assign_tag_to_post($post_id, $term_ids);
1017
+ $tags_updated = true;
1018
+ }
1019
+
1020
+ // Pulling any other relevant and additional information regarding
1021
+ // the post before returning it in the response.
1022
+ $postdata = $this->get_postdata($post_id);
1023
+
1024
+ if (!empty($params['new'])) {
1025
+ $postdata = array_merge($postdata, $this->get_preload_data());
1026
+ } else {
1027
+ if ($categories_updated || $tags_updated) {
1028
+ $categories = $this->get_categories();
1029
+ $tags = $this->get_tags();
1030
+
1031
+ $postdata['preloaded'] = json_encode(array(
1032
+ 'categories' => $categories['data'],
1033
+ 'tags' => $tags['data']
1034
+ ));
1035
+ }
1036
+ }
1037
 
1038
+ return $this->_response($postdata);
1039
+ } else {
1040
+ // ERROR: error creating or updating post
1041
+ return $this->_generic_error_response('post_save_failed', array(
1042
+ 'message' => $post_id->get_error_message(),
1043
+ 'args' => $args
1044
+ ));
1045
+ }
1046
+ } else {
1047
+ // ERROR: no id parameter, invalid request
1048
+ return $this->_generic_error_response('post_invalid_request', array('message' => __('Expected parameter(s) missing.', 'updraftplus')));
1049
+ }
1050
  }
1051
 
1052
  /**
1053
+ * Fetch and retrieves authors based from the submitted parameters
1054
  *
1055
+ * @param array $params Containing all the needed information to filter the results of the current request
1056
+ * @return array
 
 
 
 
1057
  */
1058
+ public function get_authors($params = array()) {
1059
+ // If expected parameters are empty or does not exists then set them to some default values
1060
+ $page = !empty($params['page']) ? (int) $params['page'] : 1;
1061
+ $per_page = !empty($params['per_page']) ? (int) $params['per_page'] : 15;
1062
+ $offset = ($page - 1) * $per_page;
1063
+ $who = !empty($params['who']) ? $params['who'] : 'authors';
1064
+ $order = !empty($params['order']) ? strtoupper($params['order']) : 'ASC';
1065
+ $orderby = !empty($params['orderby']) ? $params['orderby'] : 'display_name';
1066
+
1067
+ $users = get_users(array(
1068
+ 'number' => $per_page,
1069
+ 'paged' => $page,
1070
+ 'offset' => $offset,
1071
+ 'who' => $who,
1072
+ 'order' => $order,
1073
+ 'orderby' => $orderby,
1074
+ ));
1075
+
1076
+ $authors = array();
1077
+ $locale = get_locale();
1078
+
1079
+ foreach ($users as $user) {
1080
+ $data = array(
1081
+ 'user' => json_encode($this->trim_object($user)),
1082
+ 'misc' => array(
1083
+ 'link' => get_author_posts_url($user->ID, $user->user_nicename),
1084
+ 'locale' => function_exists('get_user_locale') ? get_user_locale($user) : $locale,
1085
+ 'registered_date' => date('c', strtotime($user->user_registered)),
1086
+ )
1087
+ );
1088
 
1089
+ array_push($authors, $data);
 
 
1090
  }
1091
 
1092
+ return $this->_response(array(
1093
+ 'authors' => $authors
1094
+ ));
1095
+ }
1096
 
1097
+ /**
1098
+ * Fetch and retrieves parent pages based from the submitted parameters
1099
+ *
1100
+ * @param array $params Containing all the needed information to filter the results of the current request
1101
+ * @return array
1102
+ */
1103
+ public function get_parent_pages($params = array()) {
1104
+ // If expected parameters are empty or does not exists then set them to some default values
1105
+ $page = !empty($params['page']) ? (int) $params['page'] : 1;
1106
+ $per_page = !empty($params['per_page']) ? (int) $params['per_page'] : 15;
1107
+ $offset = ($page - 1) * $per_page;
1108
+ $exclude = !empty($params['exclude']) ? $params['exclude'] : array();
1109
+ $order = !empty($params['order']) ? strtoupper($params['order']) : 'ASC';
1110
+ $orderby = !empty($params['orderby']) ? $params['orderby'] : 'menu_order';
1111
+ $status = !empty($params['status']) ? $params['status'] : 'publish';
1112
 
1113
+ $args = array(
1114
+ 'posts_per_page' => $per_page,
1115
+ 'paged' => $page,
1116
+ 'offset' => $offset,
1117
+ 'post__not_in' => $exclude,
1118
+ 'order' => $order,
1119
+ 'orderby' => $orderby,
1120
+ 'post_type' => 'page',
1121
+ 'post_status' => $status,
1122
+ );
1123
 
1124
+ $query = new WP_Query($args);
1125
+ $posts = $query->posts;
1126
+
1127
+ $pages = array();
1128
+ if (!empty($posts)) {
1129
+ foreach ($posts as $post) {
1130
+ // Get additional information and merge with the response
1131
+ $postdata = $this->get_postdata($post);
1132
+ if (!empty($postdata)) array_push($pages, $postdata);
1133
+ }
1134
  }
1135
 
1136
+ return $this->_response(array(
1137
+ 'pages' => $pages
1138
+ ));
 
 
 
1139
  }
1140
 
1141
  /**
1142
+ * Retrieves pages, templates, authors, categories and tags data that will be
1143
+ * used as options when displayed on the editor in UpdraftCentral
 
 
 
1144
  *
1145
+ * @return array
 
1146
  */
1147
+ private function get_options() {
1148
+ // Primarily used for editor consumption so we don't include trash here. Besides,
1149
+ // trash posts/pages aren't included as parent options.
1150
+ $pages = get_pages(array('post_type' => 'page', 'post_status' => 'publish,private,draft,pending,future'));
1151
 
1152
+ // Add flexibility by letting users filter the default roles and add their own
1153
+ // custom page/post "author" role(s) if need be.
1154
+ $author_roles = apply_filters('updraftcentral_author_roles', array('administrator', 'editor', 'author', 'contributor'));
1155
+ $authors = get_users(array('role__in' => $author_roles));
1156
 
1157
+ $categories = get_categories(array('hide_empty' => false, 'orderby' => 'name', 'order' => 'ASC'));
1158
+ $tags = get_tags(array('hide_empty' => false));
 
 
1159
 
1160
+ if (!function_exists('get_page_templates')) {
1161
+ require_once(ABSPATH.'wp-admin/includes/theme.php');
1162
+ }
 
 
 
 
 
 
 
 
 
 
1163
 
1164
+ $templates = get_page_templates();
1165
+ $template_options = array();
1166
+ foreach ($templates as $template => $filename) {
1167
+ $item = array(
1168
+ 'filename' => $filename,
1169
+ 'template' => $template,
1170
+ );
1171
+ $template_options[] = $item;
1172
+ }
1173
 
1174
+ $page_options = array();
1175
+ foreach ($pages as $page) {
1176
+ if ('trash' !== $page->post_status) {
1177
+ $item = array(
1178
+ 'id' => $page->ID,
1179
+ 'title' => $page->post_title,
1180
+ 'parent' => $page->post_parent
1181
+ );
1182
+ $page_options[] = $item;
1183
+ }
1184
  }
1185
 
1186
+ $author_options = array();
1187
+ foreach ($authors as $user) {
1188
+ $item = array(
1189
+ 'id' => $user->ID,
1190
+ 'name' => $user->display_name,
1191
+ );
1192
+ $author_options[] = $item;
1193
+ }
1194
 
1195
+ $category_options = array();
1196
+ foreach ($categories as $category) {
1197
+ $item = array(
1198
+ 'id' => $category->term_id,
1199
+ 'name' => $category->name,
1200
+ 'parent' => $category->parent
1201
+ );
1202
+ $category_options[] = $item;
1203
+ }
1204
 
1205
+ $tag_options = array();
1206
+ foreach ($tags as $tag) {
1207
+ $item = array(
1208
+ 'id' => $tag->term_id,
1209
+ 'name' => $tag->name,
1210
+ );
1211
+ $tag_options[] = $item;
1212
+ }
1213
 
1214
+ $response = array(
1215
+ 'page' => $page_options,
1216
+ 'author' => $author_options,
1217
+ 'template' => $template_options,
1218
+ 'category' => $category_options,
1219
+ 'tag' => $tag_options,
1220
+ 'date' => $this->get_date_options('post'),
1221
+ );
1222
 
1223
+ return $response;
1224
+ }
 
 
1225
 
1226
+ /**
1227
+ * Changes the state/status of the given post based from the submitted action/request
1228
+ *
1229
+ * @param int $id The ID of the current page to work on
1230
+ * @param string $action The type of change that the current request is going to apply
1231
+ *
1232
+ * @return array
1233
+ */
1234
+ private function apply_state($id, $action) {
1235
+ if (empty($id)) return false;
1236
+
1237
+ $post = get_post($id);
1238
+ if (!empty($post)) {
1239
+ $previous_status = $post->post_status;
1240
+ $deleted = false;
1241
+
1242
+ switch ($action) {
1243
+ case 'draft':
1244
+ $args = array('ID' => $id, 'post_status' => 'draft');
1245
+ wp_update_post($args);
1246
+ break;
1247
+ case 'trash':
1248
+ wp_trash_post($id);
1249
+ break;
1250
+ case 'publish':
1251
+ $args = array('ID' => $id, 'post_status' => 'publish');
1252
+ wp_update_post($args);
1253
+ break;
1254
+ case 'restore':
1255
+ $args = array('ID' => $id, 'post_status' => 'pending');
1256
+ wp_update_post($args);
1257
+ break;
1258
+ case 'delete':
1259
+ $result = wp_delete_post($id, true);
1260
+ if (!empty($result)) $deleted = true;
1261
+ break;
1262
+ default:
1263
+ break;
1264
  }
1265
 
1266
+ $postdata = $this->get_postdata($post);
1267
+ if (!empty($postdata) || $deleted) {
1268
+ $data = $deleted ? $id : $postdata;
1269
+ return array(
1270
+ 'id' => $id,
1271
+ 'previous_status' => $previous_status,
1272
+ 'post' => $data
1273
+ );
1274
+ }
 
 
 
 
 
 
 
1275
  }
1276
 
1277
+ return false;
1278
  }
1279
 
1280
  /**
1281
+ * Imports image from UpdraftCentral's page/post editor
1282
  *
1283
+ * @param string $image_url The URL of the image to import
1284
+ * @param string $image_data The image data to save. If empty, image_url will be used to download the image
1285
+ * @param int $post_id The ID of the page where this image is to be attached
1286
  *
1287
+ * @return integer
1288
  */
1289
+ private function attach_remote_image($image_url, $image_data, $post_id) {
1290
+ if (empty($image_url) || empty($post_id)) return;
1291
 
1292
+ $image = pathinfo($image_url);
1293
+ $image_name = $image['basename'];
1294
+ $upload_dir = wp_upload_dir();
1295
 
1296
+ if (empty($image_data)) {
1297
+ $response = wp_remote_get($image_url);
1298
+ if (!is_wp_error($response)) {
1299
+ $image_data = wp_remote_retrieve_body($response);
1300
+ }
1301
+ } else {
1302
+ $image_data = base64_decode($image_data);
1303
+ }
1304
 
1305
+ $media_id = 0;
1306
+ if (!empty($image_data)) {
1307
+ $unique_file_name = wp_unique_filename($upload_dir['path'], $image_name);
1308
+ $filename = basename($unique_file_name);
1309
 
1310
+ if (wp_mkdir_p($upload_dir['path'])) {
1311
+ $file = $upload_dir['path'] . '/' . $filename;
1312
+ } else {
1313
+ $file = $upload_dir['basedir'] . '/' . $filename;
1314
+ }
1315
+
1316
+ file_put_contents($file, $image_data);
1317
+ $wp_filetype = wp_check_filetype($filename, null);
1318
+
1319
+ $attachment = array(
1320
+ 'post_mime_type' => $wp_filetype['type'],
1321
+ 'post_title' => sanitize_file_name($filename),
1322
+ 'post_content' => '',
1323
+ 'post_status' => 'inherit'
1324
+ );
1325
+
1326
+ $media_id = wp_insert_attachment($attachment, $file, $post_id);
1327
+ require_once(ABSPATH . 'wp-admin/includes/image.php');
1328
+
1329
+ $attach_data = wp_generate_attachment_metadata($media_id, $file);
1330
+ wp_update_attachment_metadata($media_id, $attach_data);
1331
+ set_post_thumbnail($post_id, $media_id);
1332
  }
1333
 
1334
+ return $media_id;
 
1335
  }
1336
 
1337
  /**
1338
+ * Checks whether we have the required fields submitted and the user has
1339
+ * the capabilities to execute the requested action
1340
  *
1341
+ * @param array $capabilities The capabilities to check and validate
 
1342
  *
1343
+ * @return array|void
1344
  */
1345
+ private function _validate_capabilities($capabilities) {
1346
+ foreach ($capabilities as $capability) {
1347
+ if (!current_user_can($capability)) return $this->_generic_error_response('insufficient_permission');
 
 
 
 
 
 
 
1348
  }
 
1349
  }
1350
  }
central/modules/theme.php CHANGED
@@ -38,7 +38,7 @@ class UpdraftCentral_Theme_Commands extends UpdraftCentral_Commands {
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
central/modules/updates.php CHANGED
@@ -32,7 +32,6 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
32
  $plugins = empty($updates['plugins']) ? array() : $updates['plugins'];
33
  $plugin_updates = array();
34
  foreach ($plugins as $plugin_info) {
35
- $plugin_file = $plugin_info['plugin'];
36
  $plugin_updates[] = $this->_update_plugin($plugin_info['plugin'], $plugin_info['slug']);
37
  }
38
 
@@ -235,9 +234,10 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
235
  'newVersion' => '',
236
  );
237
 
 
238
  include(ABSPATH.WPINC.'/version.php');
239
 
240
- $status['oldVersion'] = $wp_version;
241
 
242
  if (!current_user_can('update_core')) {
243
  $status['error'] = 'updates_permission_denied';
@@ -248,17 +248,18 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
248
 
249
  wp_version_check();
250
 
251
- $locale = get_locale();
252
 
253
  $core_update_key = false;
254
  $core_update_latest_version = false;
255
 
256
  $get_core_updates = get_core_updates();
257
 
 
258
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
259
 
260
  foreach ($get_core_updates as $k => $core_update) {
261
- if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {
262
  $core_update_latest_version = $core_update->version;
263
  $core_update_key = $k;
264
  }
@@ -416,6 +417,8 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
416
  private function _update_translation() {
417
  global $wp_filesystem;
418
 
 
 
419
  include_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
420
  if (!class_exists('Automatic_Upgrader_Skin')) include_once(UPDRAFTCENTRAL_CLIENT_DIR.'/classes/class-automatic-upgrader-skin.php');
421
 
@@ -767,10 +770,11 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
767
  $core_update_key = false;
768
  $core_update_latest_version = false;
769
 
 
770
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
771
 
772
  foreach ($get_core_updates as $k => $core_update) {
773
- if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {
774
  $core_update_latest_version = $core_update->version;
775
  $core_update_key = $k;
776
  }
@@ -788,14 +792,14 @@ class UpdraftCentral_Updates_Commands extends UpdraftCentral_Commands {
788
 
789
  // We're making sure here to only return those items for update that has new
790
  // versions greater than the currently installed version.
791
- if (version_compare($wp_version, $update->version, '<')) {
792
  $core_updates[] = array(
793
  'download' => $update->download,
794
  'version' => $update->version,
795
  'php_version' => $update->php_version,
796
  'mysql_version' => $update->mysql_version,
797
  'installed' => array(
798
- 'version' => $wp_version,
799
  'mysql' => $mysql_version,
800
  'php' => PHP_VERSION,
801
  'is_mysql' => $is_mysql,
32
  $plugins = empty($updates['plugins']) ? array() : $updates['plugins'];
33
  $plugin_updates = array();
34
  foreach ($plugins as $plugin_info) {
 
35
  $plugin_updates[] = $this->_update_plugin($plugin_info['plugin'], $plugin_info['slug']);
36
  }
37
 
234
  'newVersion' => '',
235
  );
236
 
237
+ // THis is included so we can get $wp_version
238
  include(ABSPATH.WPINC.'/version.php');
239
 
240
+ $status['oldVersion'] = $wp_version;// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
241
 
242
  if (!current_user_can('update_core')) {
243
  $status['error'] = 'updates_permission_denied';
248
 
249
  wp_version_check();
250
 
251
+ $locale = get_locale();// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
252
 
253
  $core_update_key = false;
254
  $core_update_latest_version = false;
255
 
256
  $get_core_updates = get_core_updates();
257
 
258
+ // THis is included so we can get $wp_version
259
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
260
 
261
  foreach ($get_core_updates as $k => $core_update) {
262
+ if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
263
  $core_update_latest_version = $core_update->version;
264
  $core_update_key = $k;
265
  }
417
  private function _update_translation() {
418
  global $wp_filesystem;
419
 
420
+ $status = array();
421
+
422
  include_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
423
  if (!class_exists('Automatic_Upgrader_Skin')) include_once(UPDRAFTCENTRAL_CLIENT_DIR.'/classes/class-automatic-upgrader-skin.php');
424
 
770
  $core_update_key = false;
771
  $core_update_latest_version = false;
772
 
773
+ // THis is included so we can get $wp_version
774
  @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
775
 
776
  foreach ($get_core_updates as $k => $core_update) {
777
+ if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
778
  $core_update_latest_version = $core_update->version;
779
  $core_update_key = $k;
780
  }
792
 
793
  // We're making sure here to only return those items for update that has new
794
  // versions greater than the currently installed version.
795
+ if (version_compare($wp_version, $update->version, '<')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
796
  $core_updates[] = array(
797
  'download' => $update->download,
798
  'version' => $update->version,
799
  'php_version' => $update->php_version,
800
  'mysql_version' => $update->mysql_version,
801
  'installed' => array(
802
+ 'version' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
803
  'mysql' => $mysql_version,
804
  'php' => PHP_VERSION,
805
  'is_mysql' => $is_mysql,
class-updraftplus.php CHANGED
@@ -98,6 +98,7 @@ class UpdraftPlus {
98
 
99
  // Create admin page
100
  add_action('init', array($this, 'handle_url_actions'));
 
101
  // Run earlier than default - hence earlier than other components
102
  // admin_menu runs earlier, and we need it because options.php wants to use $updraftplus_admin before admin_init happens
103
  add_action(apply_filters('updraft_admin_menu_hook', 'admin_menu'), array($this, 'admin_menu'), 9);
@@ -604,6 +605,31 @@ class UpdraftPlus {
604
  }
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  public function get_table_prefix($allow_override = false) {
608
  global $wpdb;
609
  if (is_multisite() && !defined('MULTISITE')) {
@@ -4222,6 +4248,33 @@ class UpdraftPlus {
4222
  return $updraft_dir;
4223
  }
4224
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4225
  public function spool_file($fullpath, $encryption = '') {
4226
  @set_time_limit(900);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
4227
 
@@ -4490,6 +4543,7 @@ class UpdraftPlus {
4490
 
4491
  $migration_warning = false;
4492
  $processing_create = false;
 
4493
  $db_version = $wpdb->db_version();
4494
 
4495
  // Don't set too high - we want a timely response returned to the browser
@@ -4515,6 +4569,7 @@ class UpdraftPlus {
4515
  // Comments are what we are interested in
4516
  if (substr($buffer, 0, 1) == '#') {
4517
  $processing_create = false;
 
4518
  if ('' == $old_siteurl && preg_match('/^\# Backup of: (http(.*))$/', $buffer, $matches)) {
4519
  $old_siteurl = untrailingslashit($matches[1]);
4520
  $mess[] = __('Backup of:', 'updraftplus').' '.htmlspecialchars($old_siteurl).((!empty($old_wp_version)) ? ' '.sprintf(__('(version: %s)', 'updraftplus'), $old_wp_version) : '');
@@ -4586,6 +4641,8 @@ class UpdraftPlus {
4586
  if (version_compare($old_php_version, $current_php_version, '>')) {
4587
  // $mess[] = sprintf(__('%s version: %s', 'updraftplus'), 'WordPress', $old_wp_version);
4588
  $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s. ', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is significantly newer than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
 
 
4589
  }
4590
  }
4591
  } elseif ('' == $old_table_prefix && (preg_match('/^\# Table prefix: (\S+)$/', $buffer, $matches) || preg_match('/^-- Table prefix: (\S+)$/i', $buffer, $matches))) {
@@ -4629,7 +4686,10 @@ class UpdraftPlus {
4629
 
4630
  } elseif (preg_match('#^\s*/\*\!40\d+ SET NAMES (.*)\*\/#i', $buffer, $smatches)) {
4631
  $db_charsets_found[] = rtrim($smatches[1]);
4632
- } elseif (preg_match('/^\s*create table \`?([^\`\(]*)\`?\s*\(/i', $buffer, $matches)) {
 
 
 
4633
  $table = $matches[1];
4634
  $tables_found[] = $table;
4635
  if ($old_table_prefix) {
@@ -4681,6 +4741,8 @@ class UpdraftPlus {
4681
  $mysql_version_warned = true;
4682
  $err[] = sprintf(__('Error: %s', 'updraftplus'), sprintf(__('The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on.', 'updraftplus'), $db_version).' '.__('You must upgrade MySQL to be able to use this database.', 'updraftplus'));
4683
  }
 
 
4684
  }
4685
  }
4686
  if ($is_plain) {
@@ -4845,6 +4907,18 @@ class UpdraftPlus {
4845
  }
4846
  }
4847
 
 
 
 
 
 
 
 
 
 
 
 
 
4848
  // //need to make sure that we reset the file back to .crypt before clean temp files
4849
  // $db_file = $decrypted_file['fullpath'].'.crypt';
4850
  // unlink($decrypted_file['fullpath']);
98
 
99
  // Create admin page
100
  add_action('init', array($this, 'handle_url_actions'));
101
+ add_action('init', array($this, 'updraftplus_single_site_maintenance_init'));
102
  // Run earlier than default - hence earlier than other components
103
  // admin_menu runs earlier, and we need it because options.php wants to use $updraftplus_admin before admin_init happens
104
  add_action(apply_filters('updraft_admin_menu_hook', 'admin_menu'), array($this, 'admin_menu'), 9);
605
  }
606
  }
607
 
608
+ /**
609
+ * This function will check if this is a multisite and if our maintenance mode file is present if so return a service unavailable
610
+ *
611
+ * @return void
612
+ */
613
+ public function updraftplus_single_site_maintenance_init() {
614
+
615
+ if (!is_multisite()) return;
616
+
617
+ $wp_upload_dir = wp_upload_dir();
618
+ $subsite_dir = $wp_upload_dir['basedir'].'/';
619
+
620
+ if (!file_exists($subsite_dir.'.maintenance')) return;
621
+
622
+ $timestamp = file_get_contents($subsite_dir.'.maintenance');
623
+ $time = time();
624
+
625
+ if ($time - $timestamp > 3600) {
626
+ unlink($subsite_dir.'.maintenance');
627
+ return;
628
+ }
629
+
630
+ wp_die('<h1>'.__('Under Maintenance', 'updraftplus') .'</h1><p>'.__('Briefly unavailable for scheduled maintenance. Check back in a minute.', 'updraftplus').'</p>');
631
+ }
632
+
633
  public function get_table_prefix($allow_override = false) {
634
  global $wpdb;
635
  if (is_multisite() && !defined('MULTISITE')) {
4248
  return $updraft_dir;
4249
  }
4250
 
4251
+ /**
4252
+ * This function will work out the total size of the passed in backup and return it.
4253
+ *
4254
+ * @param array $backup - an array of information about this backup set
4255
+ *
4256
+ * @return integer - the total size of the backup in bytes
4257
+ */
4258
+ public function get_total_backup_size($backup) {
4259
+
4260
+ $backupable_entities = $this->get_backupable_file_entities(true, true);
4261
+
4262
+ // Add the database to the entities array ready to loop over
4263
+ $backupable_entities['db'] = '';
4264
+
4265
+ $total_size = 0;
4266
+ foreach ($backup as $ekey => $files) {
4267
+ if (!isset($backupable_entities[$ekey])) continue;
4268
+ if (is_string($files)) $files = array($files);
4269
+ foreach ($files as $findex => $file) {
4270
+ $size_key = (0 == $findex) ? $ekey.'-size' : $ekey.$findex.'-size';
4271
+ $total_size = (false === $total_size || !isset($backup[$size_key]) || !is_numeric($backup[$size_key])) ? false : $total_size + $backup[$size_key];
4272
+ }
4273
+ }
4274
+
4275
+ return $total_size;
4276
+ }
4277
+
4278
  public function spool_file($fullpath, $encryption = '') {
4279
  @set_time_limit(900);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
4280
 
4543
 
4544
  $migration_warning = false;
4545
  $processing_create = false;
4546
+ $processing_routine = false;
4547
  $db_version = $wpdb->db_version();
4548
 
4549
  // Don't set too high - we want a timely response returned to the browser
4569
  // Comments are what we are interested in
4570
  if (substr($buffer, 0, 1) == '#') {
4571
  $processing_create = false;
4572
+ $processing_routine = false;
4573
  if ('' == $old_siteurl && preg_match('/^\# Backup of: (http(.*))$/', $buffer, $matches)) {
4574
  $old_siteurl = untrailingslashit($matches[1]);
4575
  $mess[] = __('Backup of:', 'updraftplus').' '.htmlspecialchars($old_siteurl).((!empty($old_wp_version)) ? ' '.sprintf(__('(version: %s)', 'updraftplus'), $old_wp_version) : '');
4641
  if (version_compare($old_php_version, $current_php_version, '>')) {
4642
  // $mess[] = sprintf(__('%s version: %s', 'updraftplus'), 'WordPress', $old_wp_version);
4643
  $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s. ', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is significantly newer than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
4644
+ } elseif (version_compare($old_php_version, $current_php_version, '<')) {
4645
+ $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s. ', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is older than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('You should only proceed if you have checked and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the new %s version.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
4646
  }
4647
  }
4648
  } elseif ('' == $old_table_prefix && (preg_match('/^\# Table prefix: (\S+)$/', $buffer, $matches) || preg_match('/^-- Table prefix: (\S+)$/i', $buffer, $matches))) {
4686
 
4687
  } elseif (preg_match('#^\s*/\*\!40\d+ SET NAMES (.*)\*\/#i', $buffer, $smatches)) {
4688
  $db_charsets_found[] = rtrim($smatches[1]);
4689
+ } elseif (!$processing_routine && !$processing_create && preg_match("/^[^'\"]*create[^'\"]*(?:definer\s*=\s*(?:`.{1,17}`@`[^\s]+`|'.{1,17}'@'[^\s]+'))?.+?(?:function(?:\s\s*if\s\s*not\s\s*exists)?|procedure)\s*`([^\r\n]+)`/is", $buffer, $matches)) {
4690
+ // ^\s*create\s\s*(?:or\s\s*replace\s\s*)?.*?(?:aggregate\s\s*function|function|procedure)\s\s*`(.+)`(?:\s\s*if\s\s*not\s\s*exists\s*|\s*)?\(
4691
+ if (!preg_match('/END\s*(?:\*\/)?;;\s*$/is', $buffer) && !preg_match('/\;\s*;;\s*$/is', $buffer) && !preg_match('/\s*(?:\*\/)?;;\s*$/is', $buffer)) $processing_routine = true;
4692
+ } elseif (!$processing_routine && preg_match('/^\s*create table \`?([^\`\(]*)\`?\s*\(/i', $buffer, $matches)) {
4693
  $table = $matches[1];
4694
  $tables_found[] = $table;
4695
  if ($old_table_prefix) {
4741
  $mysql_version_warned = true;
4742
  $err[] = sprintf(__('Error: %s', 'updraftplus'), sprintf(__('The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on.', 'updraftplus'), $db_version).' '.__('You must upgrade MySQL to be able to use this database.', 'updraftplus'));
4743
  }
4744
+ } elseif ($processing_routine) {
4745
+ if ((preg_match('/END\s*(?:\*\/)?;;\s*$/is', $buffer) || preg_match('/\;\s*;;\s*$/is', $buffer) || preg_match('/\s*(?:\*\/)?;;\s*$/is', $buffer)) && !preg_match('/(?:--|#).+?;;\s*$/i', $buffer)) $processing_routine = false;
4746
  }
4747
  }
4748
  if ($is_plain) {
4907
  }
4908
  }
4909
 
4910
+ $select_restore_tables = '<div class="notice below-h2 updraft-restore-option">';
4911
+ $select_restore_tables .= '<p>'.__('If you do not want to restore all your tables, then choose some to exclude here.', 'updraftplus').'(<a href="#" id="updraftplus_restore_tables_showmoreoptions">...</a>)</p>';
4912
+
4913
+ $select_restore_tables .= '<div class="updraftplus_restore_tables_options_container" style="display:none;">';
4914
+ foreach ($tables_found as $table) {
4915
+ $select_restore_tables .= '<input class="updraft_restore_table_options" id="updraft_restore_table_'.$table.'" checked="checked" type="checkbox" name="updraft_restore_table_options[]" value="'.$table.'"> ';
4916
+ $select_restore_tables .= '<label for="updraft_restore_table_'.$table.'">'.$table.'</label><br>';
4917
+ }
4918
+ $select_restore_tables .= '</div></div>';
4919
+
4920
+ $info['addui'] = empty($info['addui']) ? $select_restore_tables : $info['addui'].'<br>'.$select_restore_tables;
4921
+
4922
  // //need to make sure that we reset the file back to .crypt before clean temp files
4923
  // $db_file = $decrypted_file['fullpath'].'.crypt';
4924
  // unlink($decrypted_file['fullpath']);
css/updraftplus-admin.css CHANGED
@@ -2098,6 +2098,11 @@ small.ud_massactions-tip {
2098
  padding: 0px;
2099
  }
2100
 
 
 
 
 
 
2101
  .updraft_debugrow th {
2102
  vertical-align: top;
2103
  padding-top: 6px;
@@ -2690,7 +2695,6 @@ small.ud_massactions-tip {
2690
 
2691
  .updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {
2692
  font-size: 18px !important;
2693
- padding-bottom: 20px;
2694
  }
2695
 
2696
  .updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {
2098
  padding: 0px;
2099
  }
2100
 
2101
+ .updraftplus_restore_tables_options_container {
2102
+ max-height: 250px;
2103
+ overflow: auto;
2104
+ }
2105
+
2106
  .updraft_debugrow th {
2107
  vertical-align: top;
2108
  padding-top: 6px;
2695
 
2696
  .updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {
2697
  font-size: 18px !important;
 
2698
  }
2699
 
2700
  .updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {
css/updraftplus-admin.min.css CHANGED
@@ -1,2 +1,2 @@
1
- @keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}@keyframes udp_rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.max-width-600{max-width:600px}.max-width-700{max-width:700px}.width-900{max-width:900px}.width-80{width:80%}.updraft--flex{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft--flex>*{-ms-flex:1;flex:1;box-sizing:border-box}.updraft--flex>.updraft--one-half{width:50%;-ms-flex:auto;flex:auto}.updraft--flex>.updraft--two-halves{width:100%;-ms-flex:auto;flex:auto}.updraft-color--very-light-grey{background:#f8f8f8}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}.updraftclone_action_box #ud_downloadstatus3{margin-top:10px}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}button.ui-dialog-titlebar-close:before{content:none !important}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.incremental-backups-only{display:none}.incremental-free-only{display:none}.incremental-free-only p{padding:5px;background:rgba(255,0,0,0.06);border:1px solid #bfbfbf}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-settings-content table.form-table .notice p{max-width:none}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}label[for=updraft_servicecheckbox_updraftvault]{position:relative}#updraft-wrap .udp-info{position:absolute;right:10px;top:calc(50% - 10px)}#updraft-wrap span.info-trigger{display:inline-block;width:20px;height:20px;background:#FFF;color:#72777c;border-radius:30px;text-align:center;line-height:20px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}#updraft-wrap .info-content-wrapper{display:none;position:absolute;bottom:20px;transform:translatex(calc(-50% + 10px));width:330px;padding-bottom:10px}#updraft-wrap .info-content-wrapper::before{content:'';position:absolute;bottom:-10px;border:10px solid transparent;border-top-color:#FFF;left:calc(50% - 10px)}#updraft-wrap .info-content{padding:20px;background:#FFF;border-radius:4px;box-shadow:0 3px 10px rgba(0,0,0,0.1);color:#72777c}#updraft-wrap .info-content h3{margin-top:0}#updraft-wrap .info-content p{margin-top:10px}#updraft-wrap .udp-info:hover .info-content-wrapper{display:block}.updraft_jstree .jstree-container-ul>.jstree-node,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}div[id^="updraft_more_files_container_"]{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div[id^="updraft_more_files_container_"]::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}div[id^="updraft_jstree_buttons_"]{padding:10px;background:#e6e6e6}div[id^="updraft_jstree_container_"]{height:300px;width:100%;overflow:auto}div[id^="updraft_more_files_container_"] button{line-height:20px}button[id^="updraft_parent_directory_"]{margin:10px 10px 4px 10px;padding-left:3px}button[id^="updraft_jstree_confirm_"],button[id^="updraft_jstree_cancel_"]{display:none}input[id^="updraft_include_more_path_restore_"]{text-align:right}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta__action{position:relative;text-align:center}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase;margin-bottom:7px}.updraft_premium_cta a.button.button-primary.button-hero+small{display:block;max-width:100%;text-align:center;color:#afafaf}.updraft_premium_cta a.button.button-primary.button-hero+small .dashicons{width:12px;height:12px}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;background:#FFF;border-left:4px solid #FFF;border-left-color:#dc3232;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraftplus_com_login_status.success{border-left-color:green}#updraft-wrap strong.success{color:green}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress,#ud_downloadstatus3 .dlfileprogress{width:0;background:#0572aa;height:8px;transition:width .3s}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw,#ud_downloadstatus3 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0;transform:translatey(3px)}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.updated.backup-restored{padding-top:15px;padding-bottom:15px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}section.premium-upgrade-purchase-success{padding:2em;background:#fafafa;text-align:center;box-shadow:0 14px 40px rgba(0,0,0,0.1)}section.premium-upgrade-purchase-success h3{font-size:2em;color:green}section.premium-upgrade-purchase-success h3 .dashicons{display:block;margin:0 auto;font-size:60px;width:60px;height:60px;border-radius:50%;background:green;color:#FFF;margin-bottom:20px}section.premium-upgrade-purchase-success h3 .dashicons::before{display:inline-block;margin-left:-4px;margin-top:2px}section.premium-upgrade-purchase-success p{font-size:120%}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}.notice.updraft-restore-option{padding:12px;margin:8px 0 4px 0;border-left-color:#CCC}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}#updraft-wrap .dashicons.dashicons-adapt-size{line-height:inherit;font-size:inherit}#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size){vertical-align:middle;margin-top:-3px}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important;padding-bottom:20px}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option-container{text-align:center}.updraftplusmethod.updraftvault .vault-purchase-option{width:40%;text-align:center;padding-top:20px;display:inline-block}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible;width:auto}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}.updraft_restore_container{display:block;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;padding-top:30px;background:#f1f1f1;overflow:auto}.updraft-modal-is-opened .select2-container{z-index:99999}body.updraft-modal-is-opened{overflow:hidden}.updraft_restore_container h2{margin:0}.updraft_restore_container .updraftmessage{box-sizing:border-box;max-width:860px;margin-left:auto;margin-right:auto}.updraft_restore_main{max-width:860px;margin:0 auto;margin-top:20px;background:#FFF;box-shadow:0 3px 3px rgba(0,0,0,0.1);position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;box-sizing:border-box}.updraft_restore_main--header{font-size:20px;font-weight:bold;text-align:center;padding-top:16px;line-height:20px;width:100%;max-width:100%;padding-right:30px;padding-left:30px;box-sizing:border-box}.updraft_restore_main--activity{position:relative;width:calc(100% - 350px);box-sizing:border-box}.updraft_restore_main--activity-title{padding:20px;margin:0}.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title{display:none}.updraft_restore_main--components{width:350px;padding:20px;box-sizing:border-box;background:#f8f8f8;min-height:350px}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{background:#23282d;color:#e3e3e3;font-family:monospace;padding:19px;overflow:auto;position:absolute;top:60px;bottom:0;right:0;left:0}#updraftplus_ajax_restore_output form{white-space:normal;font-family:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}#updraftplus_ajax_restore_output .updraft_restore_errors{border:1px solid #dc3232;padding:10px 20px;white-space:normal}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2{color:#00a0d2;padding-top:10px;padding-bottom:5px}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output{padding:20px;border-left:1px solid #EEE}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message{margin-left:0;margin-right:0}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th{padding-bottom:0}.updraft_restore_main.show-credentials-form .updraft_restore_main--components{opacity:.2}.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p{margin:0;list-style-type:disc;display:list-item;list-style-position:inside}.restore-credential-errors>:first-child{margin-top:0}.restore-credential-errors>:last-child{margin-bottom:0}ul.updraft_restore_components_list li{color:#bababa;font-size:1.2em;margin-bottom:1em}ul.updraft_restore_components_list li::before{content:'\f469';font-family:dashicons;font-size:20px;vertical-align:middle;display:inline-block;margin-right:7px}ul.updraft_restore_components_list li span{vertical-align:middle}ul.updraft_restore_components_list li.done{color:green}ul.updraft_restore_components_list li.done::before{content:"\f147"}ul.updraft_restore_components_list li.active{color:inherit}ul.updraft_restore_components_list li.active::before{content:"\f463";animation:udp_rotate 1s linear infinite}ul.updraft_restore_components_list li.error{color:#dc3232}ul.updraft_restore_components_list li.error::before{content:"\f335"}.updraft_restore_result{padding:10px 0;font-size:1.3em;margin-bottom:1em;vertical-align:middle;display:none}.updraft_restore_result.restore-error{color:#dc3232}.updraft_restore_result.restore-success{color:green}.updraft_restore_result .dashicons{font-size:35px;height:35px;line-height:33px;width:35px}.updraft_restore_result span{vertical-align:middle}#updraft-restore-modal{width:100%}div#updraft-restore-modal .notice{background:#f8f8f8}.updraft-restore-modal--stage .updraft--two-halves,.updraft-restore-modal--stage .updraft--one-half{padding:20px 30px}.updraft-restore-modal--header{padding:20px;padding-bottom:0;text-align:center;border-bottom:1px solid #EEE}.updraft-restore-modal--header h3{margin:0;padding:0}.updraft-restore-item{padding-bottom:4px}.updraft-restore-buttons{padding-top:10px}ul.updraft-restore--stages{display:inline-block;margin:0;height:28px}ul.updraft-restore--stages li{display:inline-block;position:relative;width:12px;height:12px;background:#d2d2d2;border-radius:20px;line-height:1;margin:0 4px;vertical-align:middle}ul.updraft-restore--stages li.active{background:#444}.updraft-restore--footer{border-top:1px solid #EEE;padding:20px;text-align:center;position:-webkit-sticky;position:sticky;bottom:0;background:#FFF;width:100%;box-sizing:border-box}.updraft-restore--footer .updraft-restore--cancel{position:absolute;left:20px;top:auto}.updraft-restore--footer .updraft-restore--next-step{position:absolute;right:20px;top:auto}ul.updraft-restore--stages li span{position:absolute;width:120px;bottom:calc(100% + 14px);left:-55px;background:rgba(0,0,0,0.85882);padding:5px;box-sizing:border-box;border-radius:4px;color:#FFF;text-align:center;display:none}ul.updraft-restore--stages li:hover span{display:inline-block}.updraft-restore-item input[type=checkbox]{margin-bottom:-5px}.updraft-restore-item input[type=checkbox]:checked+label{font-weight:bold}div#updraft-restore-modal .ud_downloadstatus__close{display:none}#ud_downloadstatus2:not(:empty){margin-top:15px}.dashicons.rotate{animation:udp_rotate 1s linear infinite}span#updraftplus_ajax_restore_last_activity{font-size:.8rem;font-weight:normal;float:right}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice{margin:-20px -20px 20px;padding:19px}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button{margin-right:5px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label{color:#FFF}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}.updraft--flex{-ms-flex-direction:column;flex-direction:column}.updraft_restore_main{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main--components{width:100%;min-height:0}.updraft_restore_main--activity{width:100%}div#updraftplus_ajax_restore_output,.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{position:relative;top:0;bottom:auto}.updraft--flex>.updraft--two-halves,.updraft--flex>.updraft--one-half{width:100%}.updraft-restore-item{padding-bottom:10px;padding-top:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr.range-selection:hover,.existing-backups-table tbody tr.range-selection{background:#0572aa}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
2
  /*# sourceMappingURL=updraftplus-admin.min.css.map */
1
+ @keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}@keyframes udp_rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.max-width-600{max-width:600px}.max-width-700{max-width:700px}.width-900{max-width:900px}.width-80{width:80%}.updraft--flex{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft--flex>*{-ms-flex:1;flex:1;box-sizing:border-box}.updraft--flex>.updraft--one-half{width:50%;-ms-flex:auto;flex:auto}.updraft--flex>.updraft--two-halves{width:100%;-ms-flex:auto;flex:auto}.updraft-color--very-light-grey{background:#f8f8f8}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}.updraftclone_action_box #ud_downloadstatus3{margin-top:10px}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}button.ui-dialog-titlebar-close:before{content:none !important}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.incremental-backups-only{display:none}.incremental-free-only{display:none}.incremental-free-only p{padding:5px;background:rgba(255,0,0,0.06);border:1px solid #bfbfbf}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-settings-content table.form-table .notice p{max-width:none}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}label[for=updraft_servicecheckbox_updraftvault]{position:relative}#updraft-wrap .udp-info{position:absolute;right:10px;top:calc(50% - 10px)}#updraft-wrap span.info-trigger{display:inline-block;width:20px;height:20px;background:#FFF;color:#72777c;border-radius:30px;text-align:center;line-height:20px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}#updraft-wrap .info-content-wrapper{display:none;position:absolute;bottom:20px;transform:translatex(calc(-50% + 10px));width:330px;padding-bottom:10px}#updraft-wrap .info-content-wrapper::before{content:'';position:absolute;bottom:-10px;border:10px solid transparent;border-top-color:#FFF;left:calc(50% - 10px)}#updraft-wrap .info-content{padding:20px;background:#FFF;border-radius:4px;box-shadow:0 3px 10px rgba(0,0,0,0.1);color:#72777c}#updraft-wrap .info-content h3{margin-top:0}#updraft-wrap .info-content p{margin-top:10px}#updraft-wrap .udp-info:hover .info-content-wrapper{display:block}.updraft_jstree .jstree-container-ul>.jstree-node,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}div[id^="updraft_more_files_container_"]{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div[id^="updraft_more_files_container_"]::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}div[id^="updraft_jstree_buttons_"]{padding:10px;background:#e6e6e6}div[id^="updraft_jstree_container_"]{height:300px;width:100%;overflow:auto}div[id^="updraft_more_files_container_"] button{line-height:20px}button[id^="updraft_parent_directory_"]{margin:10px 10px 4px 10px;padding-left:3px}button[id^="updraft_jstree_confirm_"],button[id^="updraft_jstree_cancel_"]{display:none}input[id^="updraft_include_more_path_restore_"]{text-align:right}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta__action{position:relative;text-align:center}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase;margin-bottom:7px}.updraft_premium_cta a.button.button-primary.button-hero+small{display:block;max-width:100%;text-align:center;color:#afafaf}.updraft_premium_cta a.button.button-primary.button-hero+small .dashicons{width:12px;height:12px}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;background:#FFF;border-left:4px solid #FFF;border-left-color:#dc3232;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraftplus_com_login_status.success{border-left-color:green}#updraft-wrap strong.success{color:green}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress,#ud_downloadstatus3 .dlfileprogress{width:0;background:#0572aa;height:8px;transition:width .3s}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw,#ud_downloadstatus3 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0;transform:translatey(3px)}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.updated.backup-restored{padding-top:15px;padding-bottom:15px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}section.premium-upgrade-purchase-success{padding:2em;background:#fafafa;text-align:center;box-shadow:0 14px 40px rgba(0,0,0,0.1)}section.premium-upgrade-purchase-success h3{font-size:2em;color:green}section.premium-upgrade-purchase-success h3 .dashicons{display:block;margin:0 auto;font-size:60px;width:60px;height:60px;border-radius:50%;background:green;color:#FFF;margin-bottom:20px}section.premium-upgrade-purchase-success h3 .dashicons::before{display:inline-block;margin-left:-4px;margin-top:2px}section.premium-upgrade-purchase-success p{font-size:120%}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}.notice.updraft-restore-option{padding:12px;margin:8px 0 4px 0;border-left-color:#CCC}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraftplus_restore_tables_options_container{max-height:250px;overflow:auto}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}#updraft-wrap .dashicons.dashicons-adapt-size{line-height:inherit;font-size:inherit}#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size){vertical-align:middle;margin-top:-3px}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option-container{text-align:center}.updraftplusmethod.updraftvault .vault-purchase-option{width:40%;text-align:center;padding-top:20px;display:inline-block}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible;width:auto}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}.updraft_restore_container{display:block;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;padding-top:30px;background:#f1f1f1;overflow:auto}.updraft-modal-is-opened .select2-container{z-index:99999}body.updraft-modal-is-opened{overflow:hidden}.updraft_restore_container h2{margin:0}.updraft_restore_container .updraftmessage{box-sizing:border-box;max-width:860px;margin-left:auto;margin-right:auto}.updraft_restore_main{max-width:860px;margin:0 auto;margin-top:20px;background:#FFF;box-shadow:0 3px 3px rgba(0,0,0,0.1);position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;box-sizing:border-box}.updraft_restore_main--header{font-size:20px;font-weight:bold;text-align:center;padding-top:16px;line-height:20px;width:100%;max-width:100%;padding-right:30px;padding-left:30px;box-sizing:border-box}.updraft_restore_main--activity{position:relative;width:calc(100% - 350px);box-sizing:border-box}.updraft_restore_main--activity-title{padding:20px;margin:0}.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title{display:none}.updraft_restore_main--components{width:350px;padding:20px;box-sizing:border-box;background:#f8f8f8;min-height:350px}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{background:#23282d;color:#e3e3e3;font-family:monospace;padding:19px;overflow:auto;position:absolute;top:60px;bottom:0;right:0;left:0}#updraftplus_ajax_restore_output form{white-space:normal;font-family:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}#updraftplus_ajax_restore_output .updraft_restore_errors{border:1px solid #dc3232;padding:10px 20px;white-space:normal}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2{color:#00a0d2;padding-top:10px;padding-bottom:5px}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output{padding:20px;border-left:1px solid #EEE}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message{margin-left:0;margin-right:0}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th{padding-bottom:0}.updraft_restore_main.show-credentials-form .updraft_restore_main--components{opacity:.2}.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p{margin:0;list-style-type:disc;display:list-item;list-style-position:inside}.restore-credential-errors>:first-child{margin-top:0}.restore-credential-errors>:last-child{margin-bottom:0}ul.updraft_restore_components_list li{color:#bababa;font-size:1.2em;margin-bottom:1em}ul.updraft_restore_components_list li::before{content:'\f469';font-family:dashicons;font-size:20px;vertical-align:middle;display:inline-block;margin-right:7px}ul.updraft_restore_components_list li span{vertical-align:middle}ul.updraft_restore_components_list li.done{color:green}ul.updraft_restore_components_list li.done::before{content:"\f147"}ul.updraft_restore_components_list li.active{color:inherit}ul.updraft_restore_components_list li.active::before{content:"\f463";animation:udp_rotate 1s linear infinite}ul.updraft_restore_components_list li.error{color:#dc3232}ul.updraft_restore_components_list li.error::before{content:"\f335"}.updraft_restore_result{padding:10px 0;font-size:1.3em;margin-bottom:1em;vertical-align:middle;display:none}.updraft_restore_result.restore-error{color:#dc3232}.updraft_restore_result.restore-success{color:green}.updraft_restore_result .dashicons{font-size:35px;height:35px;line-height:33px;width:35px}.updraft_restore_result span{vertical-align:middle}#updraft-restore-modal{width:100%}div#updraft-restore-modal .notice{background:#f8f8f8}.updraft-restore-modal--stage .updraft--two-halves,.updraft-restore-modal--stage .updraft--one-half{padding:20px 30px}.updraft-restore-modal--header{padding:20px;padding-bottom:0;text-align:center;border-bottom:1px solid #EEE}.updraft-restore-modal--header h3{margin:0;padding:0}.updraft-restore-item{padding-bottom:4px}.updraft-restore-buttons{padding-top:10px}ul.updraft-restore--stages{display:inline-block;margin:0;height:28px}ul.updraft-restore--stages li{display:inline-block;position:relative;width:12px;height:12px;background:#d2d2d2;border-radius:20px;line-height:1;margin:0 4px;vertical-align:middle}ul.updraft-restore--stages li.active{background:#444}.updraft-restore--footer{border-top:1px solid #EEE;padding:20px;text-align:center;position:-webkit-sticky;position:sticky;bottom:0;background:#FFF;width:100%;box-sizing:border-box}.updraft-restore--footer .updraft-restore--cancel{position:absolute;left:20px;top:auto}.updraft-restore--footer .updraft-restore--next-step{position:absolute;right:20px;top:auto}ul.updraft-restore--stages li span{position:absolute;width:120px;bottom:calc(100% + 14px);left:-55px;background:rgba(0,0,0,0.85882);padding:5px;box-sizing:border-box;border-radius:4px;color:#FFF;text-align:center;display:none}ul.updraft-restore--stages li:hover span{display:inline-block}.updraft-restore-item input[type=checkbox]{margin-bottom:-5px}.updraft-restore-item input[type=checkbox]:checked+label{font-weight:bold}div#updraft-restore-modal .ud_downloadstatus__close{display:none}#ud_downloadstatus2:not(:empty){margin-top:15px}.dashicons.rotate{animation:udp_rotate 1s linear infinite}span#updraftplus_ajax_restore_last_activity{font-size:.8rem;font-weight:normal;float:right}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice{margin:-20px -20px 20px;padding:19px}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button{margin-right:5px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label{color:#FFF}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}.updraft--flex{-ms-flex-direction:column;flex-direction:column}.updraft_restore_main{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main--components{width:100%;min-height:0}.updraft_restore_main--activity{width:100%}div#updraftplus_ajax_restore_output,.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{position:relative;top:0;bottom:auto}.updraft--flex>.updraft--two-halves,.updraft--flex>.updraft--one-half{width:100%}.updraft-restore-item{padding-bottom:10px;padding-top:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr.range-selection:hover,.existing-backups-table tbody tr.range-selection{background:#0572aa}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
2
  /*# sourceMappingURL=updraftplus-admin.min.css.map */
css/updraftplus-admin.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED;;CAEC;EACC,qBAAqB;EACrB;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,YAAQ;KAAR,QAAQ;CACR,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,eAAW;KAAX,WAAW;CACX;;AAED;CACC,YAAY;CACZ,eAAW;KAAX,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,kCAAkC;CAClC,0BAA0B;CAC1B;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,iBAAiB;CACjB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,kBAAkB;CAClB,0CAA0C;CAC1C;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,yCAAyC;CACzC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd,+BAA+B;CAC/B,uBAAuB;CACvB,uBAAuB;CACvB;;AAED;CACC,cAAc;CACd,iBAAiB;CACjB,mBAAmB;CACnB,0CAA0C;CAC1C,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB,mBAAmB;CACnB,eAAe;CACf;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,iBAAiB;CACjB,4BAA4B;CAC5B,2BAA2B;CAC3B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,2BAA2B;CAC3B;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,mBAAmB;CACnB,6CAA6C;CAC7C;;AAED;CACC,eAAe;CACf,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED,sBAAsB;;AAEtB;CACC,eAAe;CACf,gBAAgB;CAChB,OAAO;CACP,QAAQ;CACR,SAAS;CACT,UAAU;CACV,eAAe;CACf,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,eAAe;CACf,iBAAiB;CACjB,iBAAiB;CACjB,yCAAyC;CACzC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,oBAAgB;KAAhB,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,YAAY;CACZ,gBAAgB;CAChB,oBAAoB;CACpB,mBAAmB;CACnB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,cAAc;CACd,UAAU;CACV;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,eAAe;CACf,uBAAuB;CACvB,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB,UAAU;CACV,UAAU;CACV,SAAS;CACT,QAAQ;CACR;;AAED;CACC,oBAAoB;CACpB,iIAAiI;CACjI;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;;CAEC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,sBAAsB;CACtB,mBAAmB;CACnB,4BAA4B;CAC5B;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB,gBAAgB;CAChB,uBAAuB;CACvB,sBAAsB;CACtB,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,yCAAyC;CACzC;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ;;AAED;CACC,uBAAuB;CACvB;;AAED,mBAAmB;;AAEnB;CACC,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,8BAA8B;CAC9B;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,sBAAsB;CACtB,UAAU;CACV,aAAa;CACb;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB,YAAY;CACZ,aAAa;CACb,oBAAoB;CACpB,oBAAoB;CACpB,eAAe;CACf,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B,cAAc;CACd,mBAAmB;CACnB,yBAAiB;CAAjB,iBAAiB;CACjB,UAAU;CACV,iBAAiB;CACjB,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,UAAU;CACV;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,0BAA0B;CAC1B,YAAY;CACZ,mCAAsB;CACtB,aAAa;CACb,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED,0CAA0C;AAC1C;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,yCAAyC;CACzC;;AAED,sBAAsB;;AAEtB;CACC,iBAAiB;CACjB,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,yBAAyB;CACzB,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,YAAY;EACZ;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,oBAAgB;MAAhB,gBAAgB;EAChB,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,cAAc;EACd;;CAED;EACC,YAAY;EACZ;;CAED;;EAEC,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb;;CAED;;EAEC,YAAY;EACZ;;CAED;EACC,qBAAqB;EACrB,kBAAkB;EAClB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB,CAAC,aAAa;EAClC;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n@keyframes udp_rotate {\n\n\tfrom {\n\t\ttransform: rotate(0);\n\t}\n\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.max-width-700 {\n\tmax-width: 700px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n.updraft--flex {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.updraft--flex > * {\n\tflex: 1;\n\tbox-sizing: border-box;\n}\n\n.updraft--flex > .updraft--one-half {\n\twidth: 50%;\n\tflex: auto;\n}\n\n.updraft--flex > .updraft--two-halves {\n\twidth: 100%;\n\tflex: auto;\n}\n\n.updraft-color--very-light-grey {\n\tbackground: #F8F8F8;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\n.updraftclone_action_box #ud_downloadstatus3 {\n\tmargin-top: 10px;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\nbutton.ui-dialog-titlebar-close:before {\n\tcontent: none!important;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.incremental-backups-only {\n\tdisplay: none;\n}\n\n.incremental-free-only {\n\tdisplay: none;\n}\n\n.incremental-free-only p {\n\tpadding: 5px;\n\tbackground: rgba(255, 0, 0, 0.06);\n\tborder: 1px solid #BFBFBF;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-settings-content table.form-table .notice p {\n\tmax-width: none;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\tposition: relative;\n}\n\n#updraft-wrap .udp-info {\n\tposition: absolute;\n\tright: 10px;\n\ttop: calc(50% - 10px);\n}\n\n#updraft-wrap span.info-trigger {\n\tdisplay: inline-block;\n\twidth: 20px;\n\theight: 20px;\n\tbackground: #FFF;\n\tcolor: #72777C;\n\tborder-radius: 30px;\n\ttext-align: center;\n\tline-height: 20px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n#updraft-wrap .info-content-wrapper {\n\tdisplay: none;\n\tposition: absolute;\n\tbottom: 20px;\n\ttransform: translatex(calc(-50% + 10px));\n\twidth: 330px;\n\tpadding-bottom: 10px;\n}\n\n#updraft-wrap .info-content-wrapper::before {\n\tcontent: '';\n\tposition: absolute;\n\tbottom: -10px;\n\tborder: 10px solid transparent;\n\tborder-top-color: #FFF;\n\tleft: calc(50% - 10px);\n}\n\n#updraft-wrap .info-content {\n\tpadding: 20px;\n\tbackground: #FFF;\n\tborder-radius: 4px;\n\tbox-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);\n\tcolor: #72777C;\n}\n\n#updraft-wrap .info-content h3 {\n\tmargin-top: 0;\n}\n\n#updraft-wrap .info-content p {\n\tmargin-top: 10px;\n}\n\n#updraft-wrap .udp-info:hover .info-content-wrapper {\n\tdisplay: block;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\ndiv[id^=\"updraft_more_files_container_\"] {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv[id^=\"updraft_more_files_container_\"]::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\ndiv[id^=\"updraft_jstree_buttons_\"] {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\ndiv[id^=\"updraft_jstree_container_\"] {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\ndiv[id^=\"updraft_more_files_container_\"] button {\n\tline-height: 20px;\n}\n\nbutton[id^=\"updraft_parent_directory_\"] {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\nbutton[id^=\"updraft_jstree_confirm_\"], button[id^=\"updraft_jstree_cancel_\"] {\n\tdisplay: none;\n}\n\ninput[id^=\"updraft_include_more_path_restore_\"] {\n\ttext-align: right;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta__action {\n\tposition: relative;\n\ttext-align: center;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n\tmargin-bottom: 7px;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small {\n\tdisplay: block;\n\tmax-width: 100%;\n\ttext-align: center;\n\tcolor: #AFAFAF;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small .dashicons {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tborder-left-color: #DC3232;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraftplus_com_login_status.success {\n\tborder-left-color: green;\n}\n\n#updraft-wrap strong.success {\n\tcolor: green;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress, #ud_downloadstatus3 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n\ttransition: width .3s;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw, #ud_downloadstatus3 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n\ttransform: translatey(3px);\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.updated.backup-restored {\n\tpadding-top: 15px;\n\tpadding-bottom: 15px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\nsection.premium-upgrade-purchase-success {\n\tpadding: 2em;\n\tbackground: #FAFAFA;\n\ttext-align: center;\n\tbox-shadow: 0px 14px 40px rgba(0, 0, 0, 0.1);\n}\n\nsection.premium-upgrade-purchase-success h3 {\n\tfont-size: 2em;\n\tcolor: green;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons {\n\tdisplay: block;\n\tmargin: 0 auto;\n\tfont-size: 60px;\n\twidth: 60px;\n\theight: 60px;\n\tborder-radius: 50%;\n\tbackground: green;\n\tcolor: #FFF;\n\tmargin-bottom: 20px;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons::before {\n\tdisplay: inline-block;\n\tmargin-left: -4px;\n\tmargin-top: 2px;\n}\n\nsection.premium-upgrade-purchase-success p {\n\tfont-size: 120%;\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n.notice.updraft-restore-option {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder-left-color: #CCC;\n}\n\n/* updraft_restore_crypteddb */\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n#updraft-wrap .dashicons.dashicons-adapt-size {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {\n\tvertical-align: middle;\n\tmargin-top: -3px;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-container {\n\ttext-align: center;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\twidth: 40%;\n\ttext-align: center;\n\tpadding-top: 20px;\n\tdisplay: inline-block;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n\twidth: auto;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n/* Restoration page */\n\n.updraft_restore_container {\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tz-index: 99999;\n\tpadding-top: 30px;\n\tbackground: #F1F1F1;\n\toverflow: auto;\n}\n\n.updraft-modal-is-opened .select2-container {\n\tz-index: 99999;\n}\n\nbody.updraft-modal-is-opened {\n\toverflow: hidden;\n}\n\n.updraft_restore_container h2 {\n\tmargin: 0;\n}\n\n.updraft_restore_container .updraftmessage {\n\tbox-sizing: border-box;\n\tmax-width: 860px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n\n.updraft_restore_main {\n\tmax-width: 860px;\n\tmargin: 0 auto;\n\tmargin-top: 20px;\n\tbackground: #FFF;\n\tbox-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);\n\tposition: relative;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--header {\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tpadding-top: 16px;\n\tline-height: 20px;\n\twidth: 100%;\n\tmax-width: 100%;\n\tpadding-right: 30px;\n\tpadding-left: 30px;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity {\n\tposition: relative;\n\twidth: calc(100% - 350px);\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity-title {\n\tpadding: 20px;\n\tmargin: 0;\n}\n\n.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title {\n\tdisplay: none;\n}\n\n.updraft_restore_main--components {\n\twidth: 350px;\n\tpadding: 20px;\n\tbox-sizing: border-box;\n\tbackground: #F8F8F8;\n\tmin-height: 350px;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\tbackground: #23282D;\n\tcolor: #E3E3E3;\n\tfont-family: monospace;\n\tpadding: 19px;\n\toverflow: auto;\n\tposition: absolute;\n\ttop: 60px;\n\tbottom: 0;\n\tright: 0;\n\tleft: 0;\n}\n\n#updraftplus_ajax_restore_output form {\n\twhite-space: normal;\n\tfont-family: -apple-system, blinkmacsystemfont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n}\n\n#updraftplus_ajax_restore_output .updraft_restore_errors {\n\tborder: 1px solid #DC3232;\n\tpadding: 10px 20px;\n\twhite-space: normal;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2 {\n\tcolor: #00A0D2;\n\tpadding-top: 10px;\n\tpadding-bottom: 5px;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output {\n\tpadding: 20px;\n\tborder-left: 1px solid #EEE;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th {\n\tpadding-bottom: 0;\n}\n\n.updraft_restore_main.show-credentials-form .updraft_restore_main--components {\n\topacity: 0.2;\n}\n\n.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p {\n\tmargin: 0;\n\tlist-style-type: disc;\n\tdisplay: list-item;\n\tlist-style-position: inside;\n}\n\n.restore-credential-errors > :first-child {\n\tmargin-top: 0;\n}\n\n.restore-credential-errors > :last-child {\n\tmargin-bottom: 0;\n}\n\nul.updraft_restore_components_list li {\n\tcolor: #BABABA;\n\tfont-size: 1.2em;\n\tmargin-bottom: 1em;\n}\n\nul.updraft_restore_components_list li::before {\n\tcontent: '\\f469';\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tvertical-align: middle;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\nul.updraft_restore_components_list li span {\n\tvertical-align: middle;\n}\n\nul.updraft_restore_components_list li.done {\n\tcolor: green;\n}\n\nul.updraft_restore_components_list li.done::before {\n\tcontent: \"\\f147\";\n}\n\nul.updraft_restore_components_list li.active {\n\tcolor: inherit;\n}\n\nul.updraft_restore_components_list li.active::before {\n\tcontent: \"\\f463\";\n\tanimation: udp_rotate 1s linear infinite;\n}\n\nul.updraft_restore_components_list li.error {\n\tcolor: #DC3232;\n}\n\nul.updraft_restore_components_list li.error::before {\n\tcontent: \"\\f335\";\n}\n\n.updraft_restore_result {\n\tpadding: 10px 0;\n\tfont-size: 1.3em;\n\tmargin-bottom: 1em;\n\tvertical-align: middle;\n\tdisplay: none;\n}\n\n.updraft_restore_result.restore-error {\n\tcolor: #DC3232;\n}\n\n.updraft_restore_result.restore-success {\n\tcolor: green;\n}\n\n.updraft_restore_result .dashicons {\n\tfont-size: 35px;\n\theight: 35px;\n\tline-height: 33px;\n\twidth: 35px;\n}\n\n.updraft_restore_result span {\n\tvertical-align: middle;\n}\n\n/* Restore modal */\n\n#updraft-restore-modal {\n\twidth: 100%;\n}\n\ndiv#updraft-restore-modal .notice {\n\tbackground: #F8F8F8;\n}\n\n.updraft-restore-modal--stage .updraft--two-halves,\n.updraft-restore-modal--stage .updraft--one-half {\n\tpadding: 20px 30px;\n}\n\n.updraft-restore-modal--header {\n\tpadding: 20px;\n\tpadding-bottom: 0px;\n\ttext-align: center;\n\tborder-bottom: 1px solid #EEE;\n}\n\n.updraft-restore-modal--header h3 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-restore-item {\n\tpadding-bottom: 4px;\n}\n\n.updraft-restore-buttons {\n\tpadding-top: 10px;\n}\n\nul.updraft-restore--stages {\n\tdisplay: inline-block;\n\tmargin: 0;\n\theight: 28px;\n}\n\nul.updraft-restore--stages li {\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: 12px;\n\theight: 12px;\n\tbackground: #D2D2D2;\n\tborder-radius: 20px;\n\tline-height: 1;\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\nul.updraft-restore--stages li.active {\n\tbackground: #444;\n}\n\n.updraft-restore--footer {\n\tborder-top: 1px solid #EEE;\n\tpadding: 20px;\n\ttext-align: center;\n\tposition: sticky;\n\tbottom: 0;\n\tbackground: #FFF;\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.updraft-restore--footer .updraft-restore--cancel {\n\tposition: absolute;\n\tleft: 20px;\n\ttop: auto;\n}\n\n.updraft-restore--footer .updraft-restore--next-step {\n\tposition: absolute;\n\tright: 20px;\n\ttop: auto;\n}\n\nul.updraft-restore--stages li span {\n\tposition: absolute;\n\twidth: 120px;\n\tbottom: calc(100% + 14px);\n\tleft: -55px;\n\tbackground: #000000DB;\n\tpadding: 5px;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tcolor: #FFF;\n\ttext-align: center;\n\tdisplay: none;\n}\n\nul.updraft-restore--stages li:hover span {\n\tdisplay: inline-block;\n}\n\n.updraft-restore-item input[type=checkbox] {\n\tmargin-bottom: -5px;\n}\n\n.updraft-restore-item input[type=checkbox]:checked + label {\n\tfont-weight: bold;\n}\n\n/* Hide close button on download window */\ndiv#updraft-restore-modal .ud_downloadstatus__close {\n\tdisplay: none;\n}\n\n#ud_downloadstatus2:not(:empty) {\n\tmargin-top: 15px;\n}\n\n.dashicons.rotate {\n\tanimation: udp_rotate 1s linear infinite;\n}\n\n/* Activity stalled */\n\nspan#updraftplus_ajax_restore_last_activity {\n\tfont-size: .8rem;\n\tfont-weight: normal;\n\tfloat: right;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice {\n\tmargin: -20px -20px 20px;\n\tpadding: 19px;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button {\n\tmargin-right: 5px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label {\n\t\tcolor: #FFF;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n\t.updraft--flex {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main {\n\t\tflex-wrap: wrap;\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main--components {\n\t\twidth: 100%;\n\t\tmin-height: 0;\n\t}\n\n\t.updraft_restore_main--activity {\n\t\twidth: 100%;\n\t}\n\n\tdiv#updraftplus_ajax_restore_output,\n\t.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\t\tposition: relative;\n\t\ttop: 0;\n\t\tbottom: auto;\n\t}\n\n\t.updraft--flex > .updraft--two-halves,\n\t.updraft--flex > .updraft--one-half {\n\t\twidth: 100%;\n\t}\n\n\t.updraft-restore-item {\n\t\tpadding-bottom: 10px;\n\t\tpadding-top: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr.range-selection:hover, .existing-backups-table tbody tr.range-selection {\n\t\tbackground: #0572AA; /* #2b7fd9 */\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
1
+ {"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED;;CAEC;EACC,qBAAqB;EACrB;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,YAAQ;KAAR,QAAQ;CACR,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,eAAW;KAAX,WAAW;CACX;;AAED;CACC,YAAY;CACZ,eAAW;KAAX,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,kCAAkC;CAClC,0BAA0B;CAC1B;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,iBAAiB;CACjB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,kBAAkB;CAClB,0CAA0C;CAC1C;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,yCAAyC;CACzC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd,+BAA+B;CAC/B,uBAAuB;CACvB,uBAAuB;CACvB;;AAED;CACC,cAAc;CACd,iBAAiB;CACjB,mBAAmB;CACnB,0CAA0C;CAC1C,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB,mBAAmB;CACnB,eAAe;CACf;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,iBAAiB;CACjB,4BAA4B;CAC5B,2BAA2B;CAC3B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,2BAA2B;CAC3B;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,mBAAmB;CACnB,6CAA6C;CAC7C;;AAED;CACC,eAAe;CACf,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED,sBAAsB;;AAEtB;CACC,eAAe;CACf,gBAAgB;CAChB,OAAO;CACP,QAAQ;CACR,SAAS;CACT,UAAU;CACV,eAAe;CACf,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,eAAe;CACf,iBAAiB;CACjB,iBAAiB;CACjB,yCAAyC;CACzC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,oBAAgB;KAAhB,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,YAAY;CACZ,gBAAgB;CAChB,oBAAoB;CACpB,mBAAmB;CACnB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,cAAc;CACd,UAAU;CACV;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,eAAe;CACf,uBAAuB;CACvB,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB,UAAU;CACV,UAAU;CACV,SAAS;CACT,QAAQ;CACR;;AAED;CACC,oBAAoB;CACpB,iIAAiI;CACjI;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;;CAEC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,sBAAsB;CACtB,mBAAmB;CACnB,4BAA4B;CAC5B;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB,gBAAgB;CAChB,uBAAuB;CACvB,sBAAsB;CACtB,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,yCAAyC;CACzC;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ;;AAED;CACC,uBAAuB;CACvB;;AAED,mBAAmB;;AAEnB;CACC,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,8BAA8B;CAC9B;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,sBAAsB;CACtB,UAAU;CACV,aAAa;CACb;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB,YAAY;CACZ,aAAa;CACb,oBAAoB;CACpB,oBAAoB;CACpB,eAAe;CACf,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B,cAAc;CACd,mBAAmB;CACnB,yBAAiB;CAAjB,iBAAiB;CACjB,UAAU;CACV,iBAAiB;CACjB,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,UAAU;CACV;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,UAAU;CACV;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,0BAA0B;CAC1B,YAAY;CACZ,mCAAsB;CACtB,aAAa;CACb,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED,0CAA0C;AAC1C;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,yCAAyC;CACzC;;AAED,sBAAsB;;AAEtB;CACC,iBAAiB;CACjB,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,yBAAyB;CACzB,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,YAAY;EACZ;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,oBAAgB;MAAhB,gBAAgB;EAChB,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,cAAc;EACd;;CAED;EACC,YAAY;EACZ;;CAED;;EAEC,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb;;CAED;;EAEC,YAAY;EACZ;;CAED;EACC,qBAAqB;EACrB,kBAAkB;EAClB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB,CAAC,aAAa;EAClC;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n@keyframes udp_rotate {\n\n\tfrom {\n\t\ttransform: rotate(0);\n\t}\n\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.max-width-700 {\n\tmax-width: 700px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n.updraft--flex {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.updraft--flex > * {\n\tflex: 1;\n\tbox-sizing: border-box;\n}\n\n.updraft--flex > .updraft--one-half {\n\twidth: 50%;\n\tflex: auto;\n}\n\n.updraft--flex > .updraft--two-halves {\n\twidth: 100%;\n\tflex: auto;\n}\n\n.updraft-color--very-light-grey {\n\tbackground: #F8F8F8;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\n.updraftclone_action_box #ud_downloadstatus3 {\n\tmargin-top: 10px;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\nbutton.ui-dialog-titlebar-close:before {\n\tcontent: none!important;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.incremental-backups-only {\n\tdisplay: none;\n}\n\n.incremental-free-only {\n\tdisplay: none;\n}\n\n.incremental-free-only p {\n\tpadding: 5px;\n\tbackground: rgba(255, 0, 0, 0.06);\n\tborder: 1px solid #BFBFBF;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-settings-content table.form-table .notice p {\n\tmax-width: none;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\tposition: relative;\n}\n\n#updraft-wrap .udp-info {\n\tposition: absolute;\n\tright: 10px;\n\ttop: calc(50% - 10px);\n}\n\n#updraft-wrap span.info-trigger {\n\tdisplay: inline-block;\n\twidth: 20px;\n\theight: 20px;\n\tbackground: #FFF;\n\tcolor: #72777C;\n\tborder-radius: 30px;\n\ttext-align: center;\n\tline-height: 20px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n#updraft-wrap .info-content-wrapper {\n\tdisplay: none;\n\tposition: absolute;\n\tbottom: 20px;\n\ttransform: translatex(calc(-50% + 10px));\n\twidth: 330px;\n\tpadding-bottom: 10px;\n}\n\n#updraft-wrap .info-content-wrapper::before {\n\tcontent: '';\n\tposition: absolute;\n\tbottom: -10px;\n\tborder: 10px solid transparent;\n\tborder-top-color: #FFF;\n\tleft: calc(50% - 10px);\n}\n\n#updraft-wrap .info-content {\n\tpadding: 20px;\n\tbackground: #FFF;\n\tborder-radius: 4px;\n\tbox-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);\n\tcolor: #72777C;\n}\n\n#updraft-wrap .info-content h3 {\n\tmargin-top: 0;\n}\n\n#updraft-wrap .info-content p {\n\tmargin-top: 10px;\n}\n\n#updraft-wrap .udp-info:hover .info-content-wrapper {\n\tdisplay: block;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\ndiv[id^=\"updraft_more_files_container_\"] {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv[id^=\"updraft_more_files_container_\"]::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\ndiv[id^=\"updraft_jstree_buttons_\"] {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\ndiv[id^=\"updraft_jstree_container_\"] {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\ndiv[id^=\"updraft_more_files_container_\"] button {\n\tline-height: 20px;\n}\n\nbutton[id^=\"updraft_parent_directory_\"] {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\nbutton[id^=\"updraft_jstree_confirm_\"], button[id^=\"updraft_jstree_cancel_\"] {\n\tdisplay: none;\n}\n\ninput[id^=\"updraft_include_more_path_restore_\"] {\n\ttext-align: right;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta__action {\n\tposition: relative;\n\ttext-align: center;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n\tmargin-bottom: 7px;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small {\n\tdisplay: block;\n\tmax-width: 100%;\n\ttext-align: center;\n\tcolor: #AFAFAF;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small .dashicons {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tborder-left-color: #DC3232;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraftplus_com_login_status.success {\n\tborder-left-color: green;\n}\n\n#updraft-wrap strong.success {\n\tcolor: green;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress, #ud_downloadstatus3 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n\ttransition: width .3s;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw, #ud_downloadstatus3 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n\ttransform: translatey(3px);\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.updated.backup-restored {\n\tpadding-top: 15px;\n\tpadding-bottom: 15px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\nsection.premium-upgrade-purchase-success {\n\tpadding: 2em;\n\tbackground: #FAFAFA;\n\ttext-align: center;\n\tbox-shadow: 0px 14px 40px rgba(0, 0, 0, 0.1);\n}\n\nsection.premium-upgrade-purchase-success h3 {\n\tfont-size: 2em;\n\tcolor: green;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons {\n\tdisplay: block;\n\tmargin: 0 auto;\n\tfont-size: 60px;\n\twidth: 60px;\n\theight: 60px;\n\tborder-radius: 50%;\n\tbackground: green;\n\tcolor: #FFF;\n\tmargin-bottom: 20px;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons::before {\n\tdisplay: inline-block;\n\tmargin-left: -4px;\n\tmargin-top: 2px;\n}\n\nsection.premium-upgrade-purchase-success p {\n\tfont-size: 120%;\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n.notice.updraft-restore-option {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder-left-color: #CCC;\n}\n\n/* updraft_restore_crypteddb */\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraftplus_restore_tables_options_container {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n#updraft-wrap .dashicons.dashicons-adapt-size {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {\n\tvertical-align: middle;\n\tmargin-top: -3px;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-container {\n\ttext-align: center;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\twidth: 40%;\n\ttext-align: center;\n\tpadding-top: 20px;\n\tdisplay: inline-block;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n\twidth: auto;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n/* Restoration page */\n\n.updraft_restore_container {\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tz-index: 99999;\n\tpadding-top: 30px;\n\tbackground: #F1F1F1;\n\toverflow: auto;\n}\n\n.updraft-modal-is-opened .select2-container {\n\tz-index: 99999;\n}\n\nbody.updraft-modal-is-opened {\n\toverflow: hidden;\n}\n\n.updraft_restore_container h2 {\n\tmargin: 0;\n}\n\n.updraft_restore_container .updraftmessage {\n\tbox-sizing: border-box;\n\tmax-width: 860px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n\n.updraft_restore_main {\n\tmax-width: 860px;\n\tmargin: 0 auto;\n\tmargin-top: 20px;\n\tbackground: #FFF;\n\tbox-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);\n\tposition: relative;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--header {\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tpadding-top: 16px;\n\tline-height: 20px;\n\twidth: 100%;\n\tmax-width: 100%;\n\tpadding-right: 30px;\n\tpadding-left: 30px;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity {\n\tposition: relative;\n\twidth: calc(100% - 350px);\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity-title {\n\tpadding: 20px;\n\tmargin: 0;\n}\n\n.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title {\n\tdisplay: none;\n}\n\n.updraft_restore_main--components {\n\twidth: 350px;\n\tpadding: 20px;\n\tbox-sizing: border-box;\n\tbackground: #F8F8F8;\n\tmin-height: 350px;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\tbackground: #23282D;\n\tcolor: #E3E3E3;\n\tfont-family: monospace;\n\tpadding: 19px;\n\toverflow: auto;\n\tposition: absolute;\n\ttop: 60px;\n\tbottom: 0;\n\tright: 0;\n\tleft: 0;\n}\n\n#updraftplus_ajax_restore_output form {\n\twhite-space: normal;\n\tfont-family: -apple-system, blinkmacsystemfont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n}\n\n#updraftplus_ajax_restore_output .updraft_restore_errors {\n\tborder: 1px solid #DC3232;\n\tpadding: 10px 20px;\n\twhite-space: normal;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2 {\n\tcolor: #00A0D2;\n\tpadding-top: 10px;\n\tpadding-bottom: 5px;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output {\n\tpadding: 20px;\n\tborder-left: 1px solid #EEE;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th {\n\tpadding-bottom: 0;\n}\n\n.updraft_restore_main.show-credentials-form .updraft_restore_main--components {\n\topacity: 0.2;\n}\n\n.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p {\n\tmargin: 0;\n\tlist-style-type: disc;\n\tdisplay: list-item;\n\tlist-style-position: inside;\n}\n\n.restore-credential-errors > :first-child {\n\tmargin-top: 0;\n}\n\n.restore-credential-errors > :last-child {\n\tmargin-bottom: 0;\n}\n\nul.updraft_restore_components_list li {\n\tcolor: #BABABA;\n\tfont-size: 1.2em;\n\tmargin-bottom: 1em;\n}\n\nul.updraft_restore_components_list li::before {\n\tcontent: '\\f469';\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tvertical-align: middle;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\nul.updraft_restore_components_list li span {\n\tvertical-align: middle;\n}\n\nul.updraft_restore_components_list li.done {\n\tcolor: green;\n}\n\nul.updraft_restore_components_list li.done::before {\n\tcontent: \"\\f147\";\n}\n\nul.updraft_restore_components_list li.active {\n\tcolor: inherit;\n}\n\nul.updraft_restore_components_list li.active::before {\n\tcontent: \"\\f463\";\n\tanimation: udp_rotate 1s linear infinite;\n}\n\nul.updraft_restore_components_list li.error {\n\tcolor: #DC3232;\n}\n\nul.updraft_restore_components_list li.error::before {\n\tcontent: \"\\f335\";\n}\n\n.updraft_restore_result {\n\tpadding: 10px 0;\n\tfont-size: 1.3em;\n\tmargin-bottom: 1em;\n\tvertical-align: middle;\n\tdisplay: none;\n}\n\n.updraft_restore_result.restore-error {\n\tcolor: #DC3232;\n}\n\n.updraft_restore_result.restore-success {\n\tcolor: green;\n}\n\n.updraft_restore_result .dashicons {\n\tfont-size: 35px;\n\theight: 35px;\n\tline-height: 33px;\n\twidth: 35px;\n}\n\n.updraft_restore_result span {\n\tvertical-align: middle;\n}\n\n/* Restore modal */\n\n#updraft-restore-modal {\n\twidth: 100%;\n}\n\ndiv#updraft-restore-modal .notice {\n\tbackground: #F8F8F8;\n}\n\n.updraft-restore-modal--stage .updraft--two-halves,\n.updraft-restore-modal--stage .updraft--one-half {\n\tpadding: 20px 30px;\n}\n\n.updraft-restore-modal--header {\n\tpadding: 20px;\n\tpadding-bottom: 0px;\n\ttext-align: center;\n\tborder-bottom: 1px solid #EEE;\n}\n\n.updraft-restore-modal--header h3 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-restore-item {\n\tpadding-bottom: 4px;\n}\n\n.updraft-restore-buttons {\n\tpadding-top: 10px;\n}\n\nul.updraft-restore--stages {\n\tdisplay: inline-block;\n\tmargin: 0;\n\theight: 28px;\n}\n\nul.updraft-restore--stages li {\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: 12px;\n\theight: 12px;\n\tbackground: #D2D2D2;\n\tborder-radius: 20px;\n\tline-height: 1;\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\nul.updraft-restore--stages li.active {\n\tbackground: #444;\n}\n\n.updraft-restore--footer {\n\tborder-top: 1px solid #EEE;\n\tpadding: 20px;\n\ttext-align: center;\n\tposition: sticky;\n\tbottom: 0;\n\tbackground: #FFF;\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.updraft-restore--footer .updraft-restore--cancel {\n\tposition: absolute;\n\tleft: 20px;\n\ttop: auto;\n}\n\n.updraft-restore--footer .updraft-restore--next-step {\n\tposition: absolute;\n\tright: 20px;\n\ttop: auto;\n}\n\nul.updraft-restore--stages li span {\n\tposition: absolute;\n\twidth: 120px;\n\tbottom: calc(100% + 14px);\n\tleft: -55px;\n\tbackground: #000000DB;\n\tpadding: 5px;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tcolor: #FFF;\n\ttext-align: center;\n\tdisplay: none;\n}\n\nul.updraft-restore--stages li:hover span {\n\tdisplay: inline-block;\n}\n\n.updraft-restore-item input[type=checkbox] {\n\tmargin-bottom: -5px;\n}\n\n.updraft-restore-item input[type=checkbox]:checked + label {\n\tfont-weight: bold;\n}\n\n/* Hide close button on download window */\ndiv#updraft-restore-modal .ud_downloadstatus__close {\n\tdisplay: none;\n}\n\n#ud_downloadstatus2:not(:empty) {\n\tmargin-top: 15px;\n}\n\n.dashicons.rotate {\n\tanimation: udp_rotate 1s linear infinite;\n}\n\n/* Activity stalled */\n\nspan#updraftplus_ajax_restore_last_activity {\n\tfont-size: .8rem;\n\tfont-weight: normal;\n\tfloat: right;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice {\n\tmargin: -20px -20px 20px;\n\tpadding: 19px;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button {\n\tmargin-right: 5px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label {\n\t\tcolor: #FFF;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n\t.updraft--flex {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main {\n\t\tflex-wrap: wrap;\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main--components {\n\t\twidth: 100%;\n\t\tmin-height: 0;\n\t}\n\n\t.updraft_restore_main--activity {\n\t\twidth: 100%;\n\t}\n\n\tdiv#updraftplus_ajax_restore_output,\n\t.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\t\tposition: relative;\n\t\ttop: 0;\n\t\tbottom: auto;\n\t}\n\n\t.updraft--flex > .updraft--two-halves,\n\t.updraft--flex > .updraft--one-half {\n\t\twidth: 100%;\n\t}\n\n\t.updraft-restore-item {\n\t\tpadding-bottom: 10px;\n\t\tpadding-top: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr.range-selection:hover, .existing-backups-table tbody tr.range-selection {\n\t\tbackground: #0572AA; /* #2b7fd9 */\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
includes/Dropbox2/API.php CHANGED
@@ -1,392 +1,394 @@
1
- <?php
2
-
3
- /**
4
- * Dropbox API base class
5
- * @author Ben Tadiar <ben@handcraftedbyben.co.uk>
6
- * @link https://github.com/benthedesigner/dropbox
7
- * @link https://www.dropbox.com/developers
8
- * @link https://status.dropbox.com Dropbox status
9
- * @package Dropbox
10
- */
11
- class UpdraftPlus_Dropbox_API {
12
- // API Endpoints
13
- const API_URL_V2 = 'https://api.dropboxapi.com/';
14
- const CONTENT_URL_V2 = 'https://content.dropboxapi.com/2/';
15
-
16
- /**
17
- * OAuth consumer object
18
- * @var null|OAuth\Consumer
19
- */
20
- private $OAuth;
21
-
22
- /**
23
- * The root level for file paths
24
- * Either `dropbox` or `sandbox` (preferred)
25
- * @var null|string
26
- */
27
- private $root;
28
-
29
- /**
30
- * Format of the API response
31
- * @var string
32
- */
33
- private $responseFormat = 'php';
34
-
35
- /**
36
- * JSONP callback
37
- * @var string
38
- */
39
- private $callback = 'dropboxCallback';
40
-
41
- /**
42
- * Chunk size used for chunked uploads
43
- * @see \Dropbox\API::chunkedUpload()
44
- */
45
- private $chunkSize = 4194304;
46
-
47
- /**
48
- * Set the OAuth consumer object
49
- * See 'General Notes' at the link below for information on access type
50
- * @link https://www.dropbox.com/developers/reference/api
51
- * @param OAuth\Consumer\ConsumerAbstract $OAuth
52
- * @param string $root Dropbox app access type
53
- */
54
- public function __construct(Dropbox_ConsumerAbstract $OAuth, $root = 'sandbox') {
55
- $this->OAuth = $OAuth;
56
- $this->setRoot($root);
57
- }
58
-
59
- /**
60
- * Set the root level
61
- * @param mixed $root
62
- * @throws Exception
63
- * @return void
64
- */
65
- public function setRoot($root) {
66
- if ($root !== 'sandbox' && $root !== 'dropbox') {
67
- throw new Exception("Expected a root of either 'dropbox' or 'sandbox', got '$root'");
68
- } else {
69
- $this->root = $root;
70
- }
71
- }
72
-
73
- /**
74
- * Retrieves information about the user's account
75
- * @return object stdClass
76
- */
77
- public function accountInfo() {
78
- $call = '2/users/get_current_account';
79
- $params = array('api_v2' => true);
80
- $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
81
- return $response;
82
- }
83
-
84
- /**
85
- * Retrieves information about the user's quota
86
- * @param array $options - valid keys are 'timeout'
87
- * @return object stdClass
88
- */
89
- public function quotaInfo($options = array()) {
90
- $call = '2/users/get_space_usage';
91
- // Cases have been seen (Apr 2019) where a response came back (HTTP/2.0 response header - suspected outgoing web hosting proxy, as everyone else seems to get HTTP/1.0 and I'm not aware that current Curl versions would do HTTP/2.0 without specifically being told to) after 180 seconds; a valid response, but took a long time.
92
- $params = array(
93
- 'api_v2' => true,
94
- 'timeout' => isset($options['timeout']) ? $options['timeout'] : 20
95
- );
96
- $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
97
- return $response;
98
- }
99
-
100
- /**
101
- * Uploads large files to Dropbox in mulitple chunks
102
- * @param string $file Absolute path to the file to be uploaded
103
- * @param string|bool $filename The destination filename of the uploaded file
104
- * @param string $path Path to upload the file to, relative to root
105
- * @param boolean $overwrite Should the file be overwritten? (Default: true)
106
- * @param integer $offset position to seek to when opening the file
107
- * @param string $uploadID existing upload_id to resume an upload
108
- * @param string|array function to call back to upon each chunk
109
- * @return stdClass
110
- */
111
- public function chunkedUpload($file, $filename = false, $path = '', $overwrite = true, $offset = 0, $uploadID = null, $callback = null) {
112
-
113
- if (file_exists($file)) {
114
- if ($handle = @fopen($file, 'r')) {
115
- // Set initial upload ID and offset
116
- if ($offset > 0) {
117
- fseek($handle, $offset);
118
- }
119
-
120
- /*
121
- Set firstCommit to true so that the upload session start endpoint is called.
122
- */
123
- $firstCommit = (0 == $offset);
124
-
125
- // Read from the file handle until EOF, uploading each chunk
126
- while ($data = fread($handle, $this->chunkSize)) {
127
-
128
- // Set the file, request parameters and send the request
129
- $this->OAuth->setInFile($data);
130
-
131
- if ($firstCommit) {
132
- $params = array(
133
- 'close' => false,
134
- 'api_v2' => true,
135
- 'content_upload' => true
136
- );
137
- $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/start', $params);
138
- $firstCommit = false;
139
- } else {
140
- $params = array(
141
- 'cursor' => array(
142
- 'session_id' => $uploadID,
143
- // If you send it as a string, Dropbox will be unhappy
144
- 'offset' => (int)$offset
145
- ),
146
- 'api_v2' => true,
147
- 'content_upload' => true
148
- );
149
- $response = $this->append_upload($params, false);
150
- }
151
-
152
- // On subsequent chunks, use the upload ID returned by the previous request
153
- if (isset($response['body']->session_id)) {
154
- $uploadID = $response['body']->session_id;
155
- }
156
-
157
- /*
158
- API v2 no longer returns the offset, we need to manually work this out. So check that there are no errors and update the offset as well as calling the callback method.
159
- */
160
- if (!isset($response['body']->error)) {
161
- $offset = ftell($handle);
162
- if ($callback) {
163
- call_user_func($callback, $offset, $uploadID, $file);
164
- }
165
- $this->OAuth->setInFile(null);
166
- }
167
- }
168
-
169
- // Complete the chunked upload
170
- $filename = (is_string($filename)) ? $filename : basename($file);
171
- $params = array(
172
- 'cursor' => array(
173
- 'session_id' => $uploadID,
174
- 'offset' => $offset
175
- ),
176
- 'commit' => array(
177
- 'path' => '/' . $this->encodePath($path . $filename),
178
- 'mode' => 'add'
179
- ),
180
- 'api_v2' => true,
181
- 'content_upload' => true
182
- );
183
- $response = $this->append_upload($params, true);
184
- return $response;
185
- } else {
186
- throw new Exception('Could not open ' . $file . ' for reading');
187
- }
188
- }
189
-
190
- // Throw an Exception if the file does not exist
191
- throw new Exception('Local file ' . $file . ' does not exist');
192
- }
193
-
194
- private function append_upload($params, $last_call) {
195
- try {
196
- if ($last_call){
197
- $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/finish', $params);
198
- } else {
199
- $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/append_v2', $params);
200
- }
201
- } catch (Exception $e) {
202
- $responseCheck = json_decode($e->getMessage());
203
- if (isset($responseCheck) && strpos($responseCheck[0] , 'incorrect_offset') !== false) {
204
- $expected_offset = $responseCheck[1];
205
- throw new Exception('Submitted input out of alignment: got ['.$params['cursor']['offset'].'] expected ['.$expected_offset.']');
206
-
207
- // $params['cursor']['offset'] = $responseCheck[1];
208
- // $response = $this->append_upload($params, $last_call);
209
- } else {
210
- throw $e;
211
- }
212
- }
213
- return $response;
214
- }
215
-
216
- /**
217
- * Chunked downloads a file from Dropbox, it will return false if a file handle is not passed and will return true if the call was successful.
218
- *
219
- * @param string $file Path - to file, relative to root, including path
220
- * @param resource $outFile - the local file handle
221
- * @param array $options - any extra options to be passed e.g headers
222
- * @return boolean - a boolean to indicate success or failure
223
- */
224
- public function download($file, $outFile = null, $options = array()) {
225
- // Only allow php response format for this call
226
- if ($this->responseFormat !== 'php') {
227
- throw new Exception('This method only supports the `php` response format');
228
- }
229
-
230
- if ($outFile) {
231
- $this->OAuth->setOutFile($outFile);
232
-
233
- $params = array('path' => '/' . $file, 'api_v2' => true, 'content_download' => true);
234
-
235
- if (isset($options['headers'])) {
236
- foreach ($options['headers'] as $key => $header) {
237
- $headers[] = $key . ': ' . $header;
238
- }
239
- $params['headers'] = $headers;
240
- }
241
-
242
- $file = $this->encodePath($file);
243
- $call = 'files/download';
244
-
245
- $response = $this->fetch('GET', self::CONTENT_URL_V2, $call, $params);
246
-
247
- fclose($outFile);
248
-
249
- return true;
250
- } else {
251
- return false;
252
- }
253
- }
254
-
255
- /**
256
- * Returns metadata for all files and folders that match the search query
257
- * @param mixed $query The search string. Must be at least 3 characters long
258
- * @param string [$path=''] The path to the folder you want to search in
259
- * @param integer [$limit=1000] Maximum number of results to return (1-1000)
260
- * @param integer [$start=0] Result number to start from
261
- * @return array
262
- */
263
- public function search($query, $path = '', $limit = 1000, $start = 0) {
264
- $call = '2/files/search';
265
- $path = $this->encodePath($path);
266
- // APIv2 requires that the path match this regex: String(pattern="(/(.|[\r\n])*)?|(ns:[0-9]+(/.*)?)")
267
- if ($path && '/' != substr($path, 0, 1)) $path = "/$path";
268
- $params = array(
269
- 'path' => $path,
270
- 'query' => $query,
271
- 'start' => $start,
272
- 'max_results' => ($limit < 1) ? 1 : (($limit > 1000) ? 1000 : (int) $limit),
273
- 'api_v2' => true,
274
- );
275
- $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
276
- return $response;
277
- }
278
-
279
- /**
280
- * Deletes a file or folder
281
- * @param string $path The path to the file or folder to be deleted
282
- * @return object stdClass
283
- */
284
- public function delete($path) {
285
- $call = '2/files/delete';
286
- $params = array('path' => '/' . $this->normalisePath($path), 'api_v2' => true);
287
- $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
288
- return $response;
289
- }
290
-
291
- /**
292
- * Intermediate fetch function
293
- * @param string $method The HTTP method
294
- * @param string $url The API endpoint
295
- * @param string $call The API method to call
296
- * @param array $params Additional parameters
297
- * @return mixed
298
- */
299
- private function fetch($method, $url, $call, array $params = array()) {
300
- // Make the API call via the consumer
301
- $response = $this->OAuth->fetch($method, $url, $call, $params);
302
-
303
- // Format the response and return
304
- switch ($this->responseFormat) {
305
- case 'json':
306
- return json_encode($response);
307
- case 'jsonp':
308
- $response = json_encode($response);
309
- return $this->callback . '(' . $response . ')';
310
- default:
311
- return $response;
312
- }
313
- }
314
-
315
- /**
316
- * Set the API response format
317
- * @param string $format One of php, json or jsonp
318
- * @return void
319
- */
320
- public function setResponseFormat($format) {
321
- $format = strtolower($format);
322
- if (!in_array($format, array('php', 'json', 'jsonp'))) {
323
- throw new Exception("Expected a format of php, json or jsonp, got '$format'");
324
- } else {
325
- $this->responseFormat = $format;
326
- }
327
- }
328
-
329
- /**
330
- * Set the chunk size for chunked uploads
331
- * If $chunkSize is empty, set to 4194304 bytes (4 MB)
332
- * @see \Dropbox\API\chunkedUpload()
333
- */
334
- public function setChunkSize($chunkSize = 4194304) {
335
- if (!is_int($chunkSize)) {
336
- throw new Exception('Expecting chunk size to be an integer, got ' . gettype($chunkSize));
337
- } elseif ($chunkSize > 157286400) {
338
- throw new Exception('Chunk size must not exceed 157286400 bytes, got ' . $chunkSize);
339
- } else {
340
- $this->chunkSize = $chunkSize;
341
- }
342
- }
343
-
344
- /**
345
- * Set the JSONP callback function
346
- * @param string $function
347
- * @return void
348
- */
349
- public function setCallback($function) {
350
- $this->callback = $function;
351
- }
352
-
353
- /**
354
- * Get the mime type of downloaded file
355
- * If the Fileinfo extension is not loaded, return false
356
- * @param string $data File contents as a string or filename
357
- * @param string $isFilename Is $data a filename?
358
- * @return boolean|string Mime type and encoding of the file
359
- */
360
- private function getMimeType($data, $isFilename = false) {
361
- if (extension_loaded('fileinfo')) {
362
- $finfo = new finfo(FILEINFO_MIME);
363
- if ($isFilename !== false) {
364
- return $finfo->file($data);
365
- }
366
- return $finfo->buffer($data);
367
- }
368
- return false;
369
- }
370
-
371
- /**
372
- * Trim the path of forward slashes and replace
373
- * consecutive forward slashes with a single slash
374
- * @param string $path The path to normalise
375
- * @return string
376
- */
377
- private function normalisePath($path) {
378
- $path = preg_replace('#/+#', '/', trim($path, '/'));
379
- return $path;
380
- }
381
-
382
- /**
383
- * Encode the path, then replace encoded slashes
384
- * with literal forward slash characters
385
- * @param string $path The path to encode
386
- * @return string
387
- */
388
- private function encodePath($path) {
389
- // in APIv1, encoding was needed because parameters were passed as part of the URL; this is no longer done in our APIv2 SDK; hence, all that we now do here is normalise.
390
- return $this->normalisePath($path);
391
- }
392
- }
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Dropbox API base class
5
+ * @author Ben Tadiar <ben@handcraftedbyben.co.uk>
6
+ * @link https://github.com/benthedesigner/dropbox
7
+ * @link https://www.dropbox.com/developers
8
+ * @link https://status.dropbox.com Dropbox status
9
+ * @package Dropbox
10
+ */
11
+ class UpdraftPlus_Dropbox_API {
12
+ // API Endpoints
13
+ const API_URL_V2 = 'https://api.dropboxapi.com/';
14
+ const CONTENT_URL_V2 = 'https://content.dropboxapi.com/2/';
15
+
16
+ /**
17
+ * OAuth consumer object
18
+ * @var null|OAuth\Consumer
19
+ */
20
+ private $OAuth;
21
+
22
+ /**
23
+ * The root level for file paths
24
+ * Either `dropbox` or `sandbox` (preferred)
25
+ * @var null|string
26
+ */
27
+ private $root;
28
+
29
+ /**
30
+ * Format of the API response
31
+ * @var string
32
+ */
33
+ private $responseFormat = 'php';
34
+
35
+ /**
36
+ * JSONP callback
37
+ * @var string
38
+ */
39
+ private $callback = 'dropboxCallback';
40
+
41
+ /**
42
+ * Chunk size used for chunked uploads
43
+ * @see \Dropbox\API::chunkedUpload()
44
+ */
45
+ private $chunkSize = 4194304;
46
+
47
+ /**
48
+ * Set the OAuth consumer object
49
+ * See 'General Notes' at the link below for information on access type
50
+ * @link https://www.dropbox.com/developers/reference/api
51
+ * @param OAuth\Consumer\ConsumerAbstract $OAuth
52
+ * @param string $root Dropbox app access type
53
+ */
54
+ public function __construct(Dropbox_ConsumerAbstract $OAuth, $root = 'sandbox') {
55
+ $this->OAuth = $OAuth;
56
+ $this->setRoot($root);
57
+ }
58
+
59
+ /**
60
+ * Set the root level
61
+ * @param mixed $root
62
+ * @throws Exception
63
+ * @return void
64
+ */
65
+ public function setRoot($root) {
66
+ if ($root !== 'sandbox' && $root !== 'dropbox') {
67
+ throw new Exception("Expected a root of either 'dropbox' or 'sandbox', got '$root'");
68
+ } else {
69
+ $this->root = $root;
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Retrieves information about the user's account
75
+ * @return object stdClass
76
+ */
77
+ public function accountInfo() {
78
+ $call = '2/users/get_current_account';
79
+ $params = array('api_v2' => true);
80
+ $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
81
+ return $response;
82
+ }
83
+
84
+ /**
85
+ * Retrieves information about the user's quota
86
+ * @param array $options - valid keys are 'timeout'
87
+ * @return object stdClass
88
+ */
89
+ public function quotaInfo($options = array()) {
90
+ $call = '2/users/get_space_usage';
91
+ // Cases have been seen (Apr 2019) where a response came back (HTTP/2.0 response header - suspected outgoing web hosting proxy, as everyone else seems to get HTTP/1.0 and I'm not aware that current Curl versions would do HTTP/2.0 without specifically being told to) after 180 seconds; a valid response, but took a long time.
92
+ $params = array(
93
+ 'api_v2' => true,
94
+ 'timeout' => isset($options['timeout']) ? $options['timeout'] : 20
95
+ );
96
+ $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
97
+ return $response;
98
+ }
99
+
100
+ /**
101
+ * Uploads large files to Dropbox in mulitple chunks
102
+ * @param string $file Absolute path to the file to be uploaded
103
+ * @param string|bool $filename The destination filename of the uploaded file
104
+ * @param string $path Path to upload the file to, relative to root
105
+ * @param boolean $overwrite Should the file be overwritten? (Default: true)
106
+ * @param integer $offset position to seek to when opening the file
107
+ * @param string $uploadID existing upload_id to resume an upload
108
+ * @param string|array function to call back to upon each chunk
109
+ * @return stdClass
110
+ */
111
+ public function chunkedUpload($file, $filename = false, $path = '', $overwrite = true, $offset = 0, $uploadID = null, $callback = null) {
112
+
113
+ if (file_exists($file)) {
114
+ if ($handle = @fopen($file, 'r')) {
115
+ // Set initial upload ID and offset
116
+ if ($offset > 0) {
117
+ fseek($handle, $offset);
118
+ }
119
+
120
+ /*
121
+ Set firstCommit to true so that the upload session start endpoint is called.
122
+ */
123
+ $firstCommit = (0 == $offset);
124
+
125
+ // Read from the file handle until EOF, uploading each chunk
126
+ while ($data = fread($handle, $this->chunkSize)) {
127
+
128
+ // Set the file, request parameters and send the request
129
+ $this->OAuth->setInFile($data);
130
+
131
+ if ($firstCommit) {
132
+ $params = array(
133
+ 'close' => false,
134
+ 'api_v2' => true,
135
+ 'content_upload' => true
136
+ );
137
+ $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/start', $params);
138
+ $firstCommit = false;
139
+ } else {
140
+ $params = array(
141
+ 'cursor' => array(
142
+ 'session_id' => $uploadID,
143
+ // If you send it as a string, Dropbox will be unhappy
144
+ 'offset' => (int)$offset
145
+ ),
146
+ 'api_v2' => true,
147
+ 'content_upload' => true
148
+ );
149
+ $response = $this->append_upload($params, false);
150
+ }
151
+
152
+ // On subsequent chunks, use the upload ID returned by the previous request
153
+ if (isset($response['body']->session_id)) {
154
+ $uploadID = $response['body']->session_id;
155
+ }
156
+
157
+ /*
158
+ API v2 no longer returns the offset, we need to manually work this out. So check that there are no errors and update the offset as well as calling the callback method.
159
+ */
160
+ if (!isset($response['body']->error)) {
161
+ $offset = ftell($handle);
162
+ if ($callback) {
163
+ call_user_func($callback, $offset, $uploadID, $file);
164
+ }
165
+ $this->OAuth->setInFile(null);
166
+ }
167
+ }
168
+
169
+ // Complete the chunked upload
170
+ $filename = (is_string($filename)) ? $filename : basename($file);
171
+ $params = array(
172
+ 'cursor' => array(
173
+ 'session_id' => $uploadID,
174
+ 'offset' => $offset
175
+ ),
176
+ 'commit' => array(
177
+ 'path' => '/' . $this->encodePath($path . $filename),
178
+ 'mode' => 'add'
179
+ ),
180
+ 'api_v2' => true,
181
+ 'content_upload' => true
182
+ );
183
+ $response = $this->append_upload($params, true);
184
+ return $response;
185
+ } else {
186
+ throw new Exception('Could not open ' . $file . ' for reading');
187
+ }
188
+ }
189
+
190
+ // Throw an Exception if the file does not exist
191
+ throw new Exception('Local file ' . $file . ' does not exist');
192
+ }
193
+
194
+ private function append_upload($params, $last_call) {
195
+ try {
196
+ if ($last_call){
197
+ $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/finish', $params);
198
+ } else {
199
+ $response = $this->fetch('POST', self::CONTENT_URL_V2, 'files/upload_session/append_v2', $params);
200
+ }
201
+ } catch (Exception $e) {
202
+ $responseCheck = json_decode($e->getMessage());
203
+ if (isset($responseCheck) && strpos($responseCheck[0] , 'incorrect_offset') !== false) {
204
+ $expected_offset = $responseCheck[1];
205
+ throw new Exception('Submitted input out of alignment: got ['.$params['cursor']['offset'].'] expected ['.$expected_offset.']');
206
+
207
+ // $params['cursor']['offset'] = $responseCheck[1];
208
+ // $response = $this->append_upload($params, $last_call);
209
+ } elseif (isset($responseCheck) && strpos($responseCheck[0], 'closed') !== false) {
210
+ throw new Exception("Upload with upload_id {$params['cursor']['session_id']} already completed");
211
+ } else {
212
+ throw $e;
213
+ }
214
+ }
215
+ return $response;
216
+ }
217
+
218
+ /**
219
+ * Chunked downloads a file from Dropbox, it will return false if a file handle is not passed and will return true if the call was successful.
220
+ *
221
+ * @param string $file Path - to file, relative to root, including path
222
+ * @param resource $outFile - the local file handle
223
+ * @param array $options - any extra options to be passed e.g headers
224
+ * @return boolean - a boolean to indicate success or failure
225
+ */
226
+ public function download($file, $outFile = null, $options = array()) {
227
+ // Only allow php response format for this call
228
+ if ($this->responseFormat !== 'php') {
229
+ throw new Exception('This method only supports the `php` response format');
230
+ }
231
+
232
+ if ($outFile) {
233
+ $this->OAuth->setOutFile($outFile);
234
+
235
+ $params = array('path' => '/' . $file, 'api_v2' => true, 'content_download' => true);
236
+
237
+ if (isset($options['headers'])) {
238
+ foreach ($options['headers'] as $key => $header) {
239
+ $headers[] = $key . ': ' . $header;
240
+ }
241
+ $params['headers'] = $headers;
242
+ }
243
+
244
+ $file = $this->encodePath($file);
245
+ $call = 'files/download';
246
+
247
+ $response = $this->fetch('GET', self::CONTENT_URL_V2, $call, $params);
248
+
249
+ fclose($outFile);
250
+
251
+ return true;
252
+ } else {
253
+ return false;
254
+ }
255
+ }
256
+
257
+ /**
258
+ * Returns metadata for all files and folders that match the search query
259
+ * @param mixed $query The search string. Must be at least 3 characters long
260
+ * @param string [$path=''] The path to the folder you want to search in
261
+ * @param integer [$limit=1000] Maximum number of results to return (1-1000)
262
+ * @param integer [$start=0] Result number to start from
263
+ * @return array
264
+ */
265
+ public function search($query, $path = '', $limit = 1000, $start = 0) {
266
+ $call = '2/files/search';
267
+ $path = $this->encodePath($path);
268
+ // APIv2 requires that the path match this regex: String(pattern="(/(.|[\r\n])*)?|(ns:[0-9]+(/.*)?)")
269
+ if ($path && '/' != substr($path, 0, 1)) $path = "/$path";
270
+ $params = array(
271
+ 'path' => $path,
272
+ 'query' => $query,
273
+ 'start' => $start,
274
+ 'max_results' => ($limit < 1) ? 1 : (($limit > 1000) ? 1000 : (int) $limit),
275
+ 'api_v2' => true,
276
+ );
277
+ $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
278
+ return $response;
279
+ }
280
+
281
+ /**
282
+ * Deletes a file or folder
283
+ * @param string $path The path to the file or folder to be deleted
284
+ * @return object stdClass
285
+ */
286
+ public function delete($path) {
287
+ $call = '2/files/delete';
288
+ $params = array('path' => '/' . $this->normalisePath($path), 'api_v2' => true);
289
+ $response = $this->fetch('POST', self::API_URL_V2, $call, $params);
290
+ return $response;
291
+ }
292
+
293
+ /**
294
+ * Intermediate fetch function
295
+ * @param string $method The HTTP method
296
+ * @param string $url The API endpoint
297
+ * @param string $call The API method to call
298
+ * @param array $params Additional parameters
299
+ * @return mixed
300
+ */
301
+ private function fetch($method, $url, $call, array $params = array()) {
302
+ // Make the API call via the consumer
303
+ $response = $this->OAuth->fetch($method, $url, $call, $params);
304
+
305
+ // Format the response and return
306
+ switch ($this->responseFormat) {
307
+ case 'json':
308
+ return json_encode($response);
309
+ case 'jsonp':
310
+ $response = json_encode($response);
311
+ return $this->callback . '(' . $response . ')';
312
+ default:
313
+ return $response;
314
+ }
315
+ }
316
+
317
+ /**
318
+ * Set the API response format
319
+ * @param string $format One of php, json or jsonp
320
+ * @return void
321
+ */
322
+ public function setResponseFormat($format) {
323
+ $format = strtolower($format);
324
+ if (!in_array($format, array('php', 'json', 'jsonp'))) {
325
+ throw new Exception("Expected a format of php, json or jsonp, got '$format'");
326
+ } else {
327
+ $this->responseFormat = $format;
328
+ }
329
+ }
330
+
331
+ /**
332
+ * Set the chunk size for chunked uploads
333
+ * If $chunkSize is empty, set to 4194304 bytes (4 MB)
334
+ * @see \Dropbox\API\chunkedUpload()
335
+ */
336
+ public function setChunkSize($chunkSize = 4194304) {
337
+ if (!is_int($chunkSize)) {
338
+ throw new Exception('Expecting chunk size to be an integer, got ' . gettype($chunkSize));
339
+ } elseif ($chunkSize > 157286400) {
340
+ throw new Exception('Chunk size must not exceed 157286400 bytes, got ' . $chunkSize);
341
+ } else {
342
+ $this->chunkSize = $chunkSize;
343
+ }
344
+ }
345
+
346
+ /**
347
+ * Set the JSONP callback function
348
+ * @param string $function
349
+ * @return void
350
+ */
351
+ public function setCallback($function) {
352
+ $this->callback = $function;
353
+ }
354
+
355
+ /**
356
+ * Get the mime type of downloaded file
357
+ * If the Fileinfo extension is not loaded, return false
358
+ * @param string $data File contents as a string or filename
359
+ * @param string $isFilename Is $data a filename?
360
+ * @return boolean|string Mime type and encoding of the file
361
+ */
362
+ private function getMimeType($data, $isFilename = false) {
363
+ if (extension_loaded('fileinfo')) {
364
+ $finfo = new finfo(FILEINFO_MIME);
365
+ if ($isFilename !== false) {
366
+ return $finfo->file($data);
367
+ }
368
+ return $finfo->buffer($data);
369
+ }
370
+ return false;
371
+ }
372
+
373
+ /**
374
+ * Trim the path of forward slashes and replace
375
+ * consecutive forward slashes with a single slash
376
+ * @param string $path The path to normalise
377
+ * @return string
378
+ */
379
+ private function normalisePath($path) {
380
+ $path = preg_replace('#/+#', '/', trim($path, '/'));
381
+ return $path;
382
+ }
383
+
384
+ /**
385
+ * Encode the path, then replace encoded slashes
386
+ * with literal forward slash characters
387
+ * @param string $path The path to encode
388
+ * @return string
389
+ */
390
+ private function encodePath($path) {
391
+ // in APIv1, encoding was needed because parameters were passed as part of the URL; this is no longer done in our APIv2 SDK; hence, all that we now do here is normalise.
392
+ return $this->normalisePath($path);
393
+ }
394
+ }
includes/Dropbox2/OAuth/Consumer/Curl.php CHANGED
@@ -135,7 +135,15 @@ class Dropbox_Curl extends Dropbox_ConsumerAbstract
135
  $options[CURLOPT_POSTFIELDS] = $this->inFile;
136
  } elseif ($method == 'POST') { // POST
137
  $options[CURLOPT_POST] = true;
138
- $options[CURLOPT_POSTFIELDS] = empty($request['postfields']) ? 'null' : $request['postfields'];
 
 
 
 
 
 
 
 
139
  } elseif ($method == 'PUT' && $this->inFile) { // PUT
140
  $options[CURLOPT_PUT] = true;
141
  $options[CURLOPT_INFILE] = $this->inFile;
@@ -188,12 +196,13 @@ class Dropbox_Curl extends Dropbox_ConsumerAbstract
188
  if (strpos($array[0] , 'incorrect_offset') !== false) {
189
  $message = json_encode($array);
190
  } elseif (strpos($array[0] , 'lookup_failed') !== false ) {
191
- //re-structure the array so it is correctly formatted for API
192
- //Note: Dropbox v2 returns different errors at different stages hence this fix
193
  $correctOffset = array(
194
  '0' => $array[1]->{'.tag'},
195
- '1' => $array[1]->correct_offset
196
  );
 
 
197
 
198
  $message = json_encode($correctOffset);
199
  } else {
135
  $options[CURLOPT_POSTFIELDS] = $this->inFile;
136
  } elseif ($method == 'POST') { // POST
137
  $options[CURLOPT_POST] = true;
138
+ if (!empty($request['postfields'])) {
139
+ $options[CURLOPT_POSTFIELDS] = $request['postfields'];
140
+ } elseif (empty($additional['content_upload'])) {
141
+ // JSON representation of nullity
142
+ $options[CURLOPT_POSTFIELDS] = 'null';
143
+ } else {
144
+ // It's a content upload, and there's no data. Versions of php-curl differ as to whether they add a Content-Length header automatically or not. Dropbox complains if it's not there.
145
+ $options[CURLOPT_HTTPHEADER] = array_merge($options[CURLOPT_HTTPHEADER], array('Content-Length: 0'));
146
+ }
147
  } elseif ($method == 'PUT' && $this->inFile) { // PUT
148
  $options[CURLOPT_PUT] = true;
149
  $options[CURLOPT_INFILE] = $this->inFile;
196
  if (strpos($array[0] , 'incorrect_offset') !== false) {
197
  $message = json_encode($array);
198
  } elseif (strpos($array[0] , 'lookup_failed') !== false ) {
199
+ // re-structure the array so it is correctly formatted for API
200
+ // Note: Dropbox v2 returns different errors at different stages hence this fix
201
  $correctOffset = array(
202
  '0' => $array[1]->{'.tag'},
 
203
  );
204
+ // the lookup_failed response doesn't always return a correct_offset this happens when the lookup fails because the session has been closed e.g the file has already been uploaded but the response didn't make it back to the client so we try again
205
+ if (isset($array[1]->correct_offset)) $correctOffset['1'] = $array[1]->correct_offset;
206
 
207
  $message = json_encode($correctOffset);
208
  } else {
includes/class-backup-history.php CHANGED
@@ -116,12 +116,13 @@ class UpdraftPlus_Backup_History {
116
  * Get the HTML for the table of existing backups
117
  *
118
  * @param Array|Boolean $backup_history - a list of backups to use, or false to get the current list from the database
 
119
  *
120
  * @uses UpdraftPlus_Admin::include_template()
121
  *
122
  * @return String - HTML for the table
123
  */
124
- public static function existing_backup_table($backup_history = false) {
125
 
126
  global $updraftplus, $updraftplus_admin;
127
 
@@ -129,13 +130,19 @@ class UpdraftPlus_Backup_History {
129
 
130
  if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
131
 
 
 
 
 
132
  // Reverse date sort - i.e. most recent first
133
  krsort($backup_history);
134
 
135
  $pass_values = array(
136
  'backup_history' => self::add_jobdata($backup_history),
137
  'updraft_dir' => $updraftplus->backups_dir_location(),
138
- 'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true)
 
 
139
  );
140
 
141
  return $updraftplus_admin->include_template('wp-admin/settings/existing-backups-table.php', true, $pass_values);
116
  * Get the HTML for the table of existing backups
117
  *
118
  * @param Array|Boolean $backup_history - a list of backups to use, or false to get the current list from the database
119
+ * @param Boolean $backup_count - the amount of backups currently displayed in the existing backups table
120
  *
121
  * @uses UpdraftPlus_Admin::include_template()
122
  *
123
  * @return String - HTML for the table
124
  */
125
+ public static function existing_backup_table($backup_history = false, $backup_count = 0) {
126
 
127
  global $updraftplus, $updraftplus_admin;
128
 
130
 
131
  if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
132
 
133
+ if (empty($backup_count)) {
134
+ $backup_count = defined('UPDRAFTPLUS_EXISTING_BACKUPS_LIMIT') ? UPDRAFTPLUS_EXISTING_BACKUPS_LIMIT : 100;
135
+ }
136
+
137
  // Reverse date sort - i.e. most recent first
138
  krsort($backup_history);
139
 
140
  $pass_values = array(
141
  'backup_history' => self::add_jobdata($backup_history),
142
  'updraft_dir' => $updraftplus->backups_dir_location(),
143
+ 'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true),
144
+ 'backup_count' => $backup_count,
145
+ 'show_paging_actions' => false,
146
  );
147
 
148
  return $updraftplus_admin->include_template('wp-admin/settings/existing-backups-table.php', true, $pass_values);
includes/class-commands.php CHANGED
@@ -222,9 +222,12 @@ class UpdraftPlus_Commands {
222
 
223
  if (!UpdraftPlus_Options::user_can_manage()) return new WP_Error('updraftplus_permission_denied');
224
 
 
 
225
  if (is_array($data)) {
226
  $operation = empty($data['operation']) ? '' : $data['operation'];
227
  $debug = !empty($data['debug']);
 
228
  } else {
229
  $operation = $data;
230
  $debug = false;
@@ -233,7 +236,7 @@ class UpdraftPlus_Commands {
233
  $remotescan = ('remotescan' == $operation);
234
  $rescan = ($remotescan || 'rescan' == $operation);
235
 
236
- $history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug);
237
  $history_status['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
238
  $history_status['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
239
 
@@ -900,8 +903,9 @@ class UpdraftPlus_Commands {
900
  $is_admin_user = isset($response['is_admin_user']) ? $response['is_admin_user'] : false;
901
  $supported_wp_versions = isset($response['supported_wp_versions']) ? $response['supported_wp_versions'] : array();
902
  $supported_packages = isset($response['supported_packages']) ? $response['supported_packages'] : array();
 
903
  $content .= '<div class="updraftclone_action_box">';
904
- $content .= $updraftplus_admin->updraftplus_clone_ui_widget($is_admin_user, $supported_wp_versions, $supported_packages);
905
  $content .= '<p class="updraftplus_clone_status"></p>';
906
  $content .= '<button id="updraft_migrate_createclone" class="button button-primary button-hero" data-clone_id="'.$response['clone_info']['id'].'" data-secret_token="'.$response['clone_info']['secret_token'].'">'. __('Create clone', 'updraftplus') . '</button>';
907
  $content .= '<span class="updraftplus_spinner spinner">' . __('Processing', 'updraftplus') . '...</span><br>';
222
 
223
  if (!UpdraftPlus_Options::user_can_manage()) return new WP_Error('updraftplus_permission_denied');
224
 
225
+ $backup_count = 0;
226
+
227
  if (is_array($data)) {
228
  $operation = empty($data['operation']) ? '' : $data['operation'];
229
  $debug = !empty($data['debug']);
230
+ $backup_count = empty($data['backup_count']) ? 0 : $data['backup_count'];
231
  } else {
232
  $operation = $data;
233
  $debug = false;
236
  $remotescan = ('remotescan' == $operation);
237
  $rescan = ($remotescan || 'rescan' == $operation);
238
 
239
+ $history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug, $backup_count);
240
  $history_status['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
241
  $history_status['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
242
 
903
  $is_admin_user = isset($response['is_admin_user']) ? $response['is_admin_user'] : false;
904
  $supported_wp_versions = isset($response['supported_wp_versions']) ? $response['supported_wp_versions'] : array();
905
  $supported_packages = isset($response['supported_packages']) ? $response['supported_packages'] : array();
906
+ $supported_regions = isset($response['supported_regions']) ? $response['supported_regions'] : array();
907
  $content .= '<div class="updraftclone_action_box">';
908
+ $content .= $updraftplus_admin->updraftplus_clone_ui_widget($is_admin_user, $supported_wp_versions, $supported_packages, $supported_regions);
909
  $content .= '<p class="updraftplus_clone_status"></p>';
910
  $content .= '<button id="updraft_migrate_createclone" class="button button-primary button-hero" data-clone_id="'.$response['clone_info']['id'].'" data-secret_token="'.$response['clone_info']['secret_token'].'">'. __('Create clone', 'updraftplus') . '</button>';
911
  $content .= '<span class="updraftplus_spinner spinner">' . __('Processing', 'updraftplus') . '...</span><br>';
includes/class-database-utility.php CHANGED
@@ -509,6 +509,147 @@ class UpdraftPlus_Database_Utility {
509
  }
510
  return $exist;
511
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  }
513
 
514
  class UpdraftPlus_WPDB_OtherDB_Utility extends wpdb {
509
  }
510
  return $exist;
511
  }
512
+
513
+ /**
514
+ * Check whether the currently running database server supports stored routines
515
+ *
516
+ * @return Array|WP_Error an array of booleans indicating whether or not some of syntax variations are supported, or WP_Error object if stored routine isn't supported
517
+ *
518
+ * Return format example:
519
+ *
520
+ * [
521
+ * "is_create_or_replace_supported" => true, // true on MariaDB, false on MySQL
522
+ * "is_if_not_exists_function_supported" => true, // true on MariaDB, false on MySQL
523
+ * "is_aggregate_function_supported" => true, // true on MariaDB, false on MySQL
524
+ * "is_binary_logging_enabled" => true, // true if --bin-log is specified for both MariaDB and MySQL
525
+ * "is_function_creators_trusted" => false // the default value is false (MariaDB/MySQL)
526
+ * ]
527
+ *
528
+ * OR a database error message, e.g. "Access denied for user 'root'@'localhost' to database 'wordpress'"
529
+ */
530
+ public static function is_stored_routine_supported() {
531
+
532
+ global $wpdb;
533
+
534
+ $function_name = 'updraft_test_stored_routine';
535
+ $sql = array(
536
+ "DROP_FUNCTION" => "DROP FUNCTION IF EXISTS ".$function_name,
537
+ // sql to check whether stored routines is supported
538
+ "CREATE_FUNCTION" => "CREATE FUNCTION ".$function_name."() RETURNS tinyint(1) DETERMINISTIC READS SQL DATA RETURN true",
539
+ // sql to check whether create or replace syntax is supported
540
+ "CREATE_REPLACE_FUNCTION" => "CREATE OR REPLACE FUNCTION ".$function_name."() RETURNS tinyint(1) DETERMINISTIC READS SQL DATA RETURN true",
541
+ // sql to check whether if not exists syntax is supported (mariadb starting with 10.1.3)
542
+ "CREATE_FUNCTION_IF_NOT_EXISTS" => "CREATE FUNCTION IF NOT EXISTS ".$function_name."() RETURNS tinyint(1) DETERMINISTIC READS SQL DATA RETURN true",
543
+ // sql to check whether aggregate function is supported (mariadb starting with 10.3.3)
544
+ "CREATE_REPLACE_AGGREGATE" => "CREATE OR REPLACE AGGREGATE FUNCTION ".$function_name."() RETURNS tinyint(1) DETERMINISTIC READS SQL DATA BEGIN RETURN true; FETCH GROUP NEXT ROW; END;"
545
+ );
546
+
547
+ $old_val = $wpdb->suppress_errors();
548
+ $wpdb->query($sql['DROP_FUNCTION']);
549
+ $is_stored_routine_supported = $wpdb->query($sql['CREATE_FUNCTION']);
550
+ if ($is_stored_routine_supported) {
551
+ $is_binary_logging_enabled = 1 == $wpdb->get_var('SELECT @@GLOBAL.log_bin');
552
+ // not sure why the log_bin variable cant be retrieved on mysql 5.0, seems like there's a bug on that version, so we use another alternative to check whether or not binary logging is enabled
553
+ $is_binary_logging_enabled = false === $is_binary_logging_enabled ? $wpdb->get_results("SHOW GLOBAL VARIABLES LIKE 'log_bin'", ARRAY_A) : $is_binary_logging_enabled;
554
+ $is_binary_logging_enabled = is_array($is_binary_logging_enabled) && isset($is_binary_logging_enabled[0]['Value']) && '' != $is_binary_logging_enabled[0]['Value'] ? $is_binary_logging_enabled[0]['Value'] : $is_binary_logging_enabled;
555
+ $is_binary_logging_enabled = is_string($is_binary_logging_enabled) && ('ON' === strtoupper($is_binary_logging_enabled) || '1' === $is_binary_logging_enabled) ? true : $is_binary_logging_enabled;
556
+ $is_binary_logging_enabled = is_string($is_binary_logging_enabled) && ('OFF' === strtoupper($is_binary_logging_enabled) || '0' === $is_binary_logging_enabled) ? false : $is_binary_logging_enabled;
557
+ $is_stored_routine_supported = array(
558
+ 'is_create_or_replace_supported' => $wpdb->query($sql['CREATE_REPLACE_FUNCTION']),
559
+ 'is_if_not_exists_function_supported' => $wpdb->query($sql['CREATE_FUNCTION_IF_NOT_EXISTS']),
560
+ 'is_aggregate_function_supported' => $wpdb->query($sql['CREATE_REPLACE_AGGREGATE']),
561
+ 'is_binary_logging_enabled' => $is_binary_logging_enabled,
562
+ 'is_function_creators_trusted' => 1 == $wpdb->get_var('SELECT @@GLOBAL.log_bin_trust_function_creators'),
563
+ );
564
+ $wpdb->query($sql['DROP_FUNCTION']);
565
+ } else {
566
+ $is_stored_routine_supported = new WP_Error('routine_creation_error', sprintf(__('An error occurred while attempting to check the support of stored routines creation (%s %s)', 'updraftplus'), $wpdb->last_error.' -', $sql['CREATE_FUNCTION']));
567
+ }
568
+ $wpdb->suppress_errors($old_val);
569
+
570
+ return $is_stored_routine_supported;
571
+ }
572
+
573
+ /**
574
+ * Retrieve all the stored routines (functions and procedures) in the currently running database
575
+ *
576
+ * @return Array|WP_Error an array of routine statuses, or an empty array if there is no stored routine in the database, or WP_Error object on failure
577
+ *
578
+ * Output example:
579
+ *
580
+ * [
581
+ * [
582
+ * "Db" => "wordpress",
583
+ * "Name" => "_NextVal",
584
+ * "Type" => "FUNCTION",
585
+ * "Definer" => "root@localhost",
586
+ * "Modified" => "2019-11-22 15:11:15",
587
+ * "Created" => "2019-11-22 14:20:29",
588
+ * "Security_type" => "DEFINER",
589
+ * "Comment" => "",
590
+ * "Function" => "_NextVal",
591
+ * "sql_mode" => "",
592
+ * "Create Function" => "
593
+ * CREATE DEFINER=`root`@`localhost` FUNCTION `_NextVal`(vname VARCHAR(30)) RETURNS int(11)
594
+ * BEGIN
595
+ * -- Retrieve and update in single statement
596
+ * UPDATE _sequences
597
+ * SET next = next + 1
598
+ * WHERE name = vname;
599
+ * RETURN (SELECT next FROM _sequences LIMIT 1);
600
+ * END"
601
+ * ],
602
+ * [
603
+ * "Db" => "wordpress",
604
+ * "Name" => "CreateSequence",
605
+ * "Type" => "Procedure",
606
+ * "Definer" => "root@localhost",
607
+ * "Modified" => "2019-11-22 15:11:15",
608
+ * "Created" => "2019-11-22 14:20:29",
609
+ * "Security_type" => "DEFINER",
610
+ * "Comment" => "",
611
+ * "Procedure" => "CreateSequence",
612
+ * "sql_mode" => "",
613
+ * "Create Procedure" => "
614
+ * CREATE DEFINER=`root`@`localhost` PROCEDURE `CreateSequence`(name VARCHAR(30), start INT, inc INT)
615
+ * BEGIN
616
+ * -- Create a table to store sequences
617
+ * CREATE TABLE _sequences (
618
+ * name VARCHAR(70) NOT NULL UNIQUE,
619
+ * next INT NOT NULL,
620
+ * inc INT NOT NULL,
621
+ * );
622
+ * -- Add the new sequence
623
+ * INSERT INTO _sequences VALUES (name, start, inc);
624
+ * END"
625
+ * ]
626
+ * ]
627
+ */
628
+ public function get_stored_routines() {
629
+
630
+ global $wpdb;
631
+
632
+ $old_val = $wpdb->suppress_errors();
633
+ try {
634
+ $err_msg = __('An error occurred while attempting to retrieve routine status (%s %s)', 'updraftplus');
635
+ $function_status = $wpdb->get_results($wpdb->prepare('SHOW FUNCTION STATUS WHERE DB = %s', DB_NAME), ARRAY_A);
636
+ if (!empty($wpdb->last_error)) throw new Exception(sprintf($err_msg, $wpdb->last_error.' -', $wpdb->last_query), 0);
637
+ $procedure_status = $wpdb->get_results($wpdb->prepare('SHOW PROCEDURE STATUS WHERE DB = %s', DB_NAME), ARRAY_A);
638
+ if (!empty($wpdb->last_error)) throw new Exception(sprintf($err_msg, $wpdb->last_error.' -', $wpdb->last_query), 0);
639
+ $stored_routines = array_merge((array) $function_status, (array) $procedure_status);
640
+ foreach ((array) $stored_routines as $key => $routine) {
641
+ if (empty($routine['Name']) || empty($routine['Type'])) continue;
642
+ $routine = $wpdb->get_results("SHOW CREATE {$routine['Type']} `{$routine['Name']}`", ARRAY_A);
643
+ if (!empty($wpdb->last_error)) throw new Exception(sprintf(__('An error occurred while attempting to retrieve the routine SQL/DDL statement (%s %s)', 'updraftplus'), $wpdb->last_error.' -', $wpdb->last_query), 1);
644
+ $stored_routines[$key] = array_merge($stored_routines[$key], $routine ? $routine[0] : array());
645
+ }
646
+ } catch (Exception $ex) {
647
+ $stored_routines = new WP_Error(1 === $ex->getCode() ? 'routine_sql_error' : 'routine_status_error', $ex->getMessage());
648
+ }
649
+ $wpdb->suppress_errors($old_val);
650
+
651
+ return $stored_routines;
652
+ }
653
  }
654
 
655
  class UpdraftPlus_WPDB_OtherDB_Utility extends wpdb {
includes/updraft-admin-common.js CHANGED
@@ -503,7 +503,7 @@ function update_file_entities_checkboxes(incremental, entities) {
503
  if (name.substring(0, 16) != 'updraft_include_') { return; }
504
  var entity = name.substring(16);
505
  jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', false);
506
- if (jQuery(this).is(':checked')) {
507
  jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', true);
508
  }
509
  });
@@ -964,28 +964,34 @@ updraft_updatehistory(0, 0);}, 30000);
964
  * Update the HTML for the 'existing backups' table; optionally, after local/remote re-scanning.
965
  * Nothing is returned; any update necessary is performed directly on the DOM.
966
  *
967
- * @param {Integer} rescan - first, re-scan the local storage (0 or 1)
968
- * @param {Integer} remotescan - first, re-scan the remote storage (you must also set rescan to 1 to use this)
969
- * @param {Integer} debug - if 1, then also request debugging information and log it to the console
 
970
  */
971
- function updraft_updatehistory(rescan, remotescan, debug) {
972
 
973
  if ('undefined' != typeof updraft_restore_screen && updraft_restore_screen) return;
974
 
975
  if ('undefined' === typeof debug) {
976
  debug = jQuery('#updraft_debug_mode').is(':checked') ? 1 : 0;
977
  }
978
-
979
  var unixtime = Math.round(new Date().getTime() / 1000);
980
 
981
  if (1 == rescan || 1 == remotescan) {
982
  updraft_historytimer_notbefore = unixtime + 30;
983
  } else {
984
- if (unixtime < updraft_historytimer_notbefore) {
985
  console.log("Update history skipped: "+unixtime.toString()+" < "+updraft_historytimer_notbefore.toString());
986
  return;
987
  }
988
  }
 
 
 
 
 
989
 
990
  if (rescan == 1) {
991
  if (remotescan == 1) {
@@ -1001,7 +1007,8 @@ function updraft_updatehistory(rescan, remotescan, debug) {
1001
 
1002
  var data = {
1003
  operation: what_op,
1004
- debug: debug
 
1005
  }
1006
 
1007
  updraft_send_command('rescan', data, function(resp) {
@@ -2159,6 +2166,34 @@ jQuery(document).ready(function($) {
2159
  }
2160
  });
2161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2162
  $('#updraft-navtab-migrate-content').on('click', '.updraft_migrate_widget_module_content #updraft_migrate_createclone', function (e) {
2163
  e.preventDefault();
2164
 
@@ -3133,6 +3168,7 @@ jQuery(document).ready(function($) {
3133
  var remote_deleted = backup_remote;
3134
  var sets_deleted = backup_sets;
3135
  var timestamps = jQuery('#updraft_delete_timestamp').val().split(',');
 
3136
 
3137
  var form_data = jQuery('#updraft_delete_form').serializeArray();
3138
  var data = {};
@@ -3211,8 +3247,12 @@ jQuery(document).ready(function($) {
3211
  local_deleted = local_deleted + resp.backup_local;
3212
  remote_deleted = remote_deleted + resp.backup_remote;
3213
  sets_deleted = sets_deleted + resp.backup_sets;
 
 
 
 
3214
  setTimeout(function() {
3215
- alert(resp.set_message + " " + sets_deleted + "\n" + resp.local_message + " " + local_deleted + "\n" + resp.remote_message + " " + remote_deleted);
3216
  }, 900);
3217
  }
3218
  });
@@ -3265,6 +3305,7 @@ jQuery(document).ready(function($) {
3265
  process_next_action: function() {
3266
  var anyselected = 0;
3267
  var moreselected = 0;
 
3268
  var whichselected = [];
3269
  // Make a list of what files we want
3270
  var already_added_wpcore = 0;
@@ -3275,6 +3316,7 @@ jQuery(document).ready(function($) {
3275
  var howmany = $(y).data('howmany');
3276
  var type = $(y).val();
3277
  if ('more' == type) moreselected = 1;
 
3278
  if (1 == meta_foreign || (2 == meta_foreign && 'db' != type)) {
3279
  if ('wpcore' != type) {
3280
  howmany = $('#updraft_restore_form #updraft_restore_wpcore').data('howmany');
@@ -3378,6 +3420,21 @@ jQuery(document).ready(function($) {
3378
  }
3379
  });
3380
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3381
  if (1 == moreselected) {
3382
 
3383
  anyselected = 0;
@@ -4079,6 +4136,17 @@ jQuery(document).ready(function($) {
4079
  }
4080
  });
4081
 
 
 
 
 
 
 
 
 
 
 
 
4082
  /**
4083
  * Opens the dialog box for confirmation of where to upload the backup
4084
  *
@@ -4816,6 +4884,11 @@ jQuery(document).ready(function($) {
4816
  }
4817
  });
4818
 
 
 
 
 
 
4819
 
4820
  /**
4821
  * Sends request to generate a key to be used between UpdraftPlus
503
  if (name.substring(0, 16) != 'updraft_include_') { return; }
504
  var entity = name.substring(16);
505
  jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', false);
506
+ if (jQuery('#updraft_include_' + entity).is(':checked')) {
507
  jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', true);
508
  }
509
  });
964
  * Update the HTML for the 'existing backups' table; optionally, after local/remote re-scanning.
965
  * Nothing is returned; any update necessary is performed directly on the DOM.
966
  *
967
+ * @param {Integer} rescan - first, re-scan the local storage (0 or 1)
968
+ * @param {Integer} remotescan - first, re-scan the remote storage (you must also set rescan to 1 to use this)
969
+ * @param {Integer} debug - if 1, then also request debugging information and log it to the console
970
+ * @param {Integer} backup_count - the amount of backups we want to display
971
  */
972
+ function updraft_updatehistory(rescan, remotescan, debug, backup_count) {
973
 
974
  if ('undefined' != typeof updraft_restore_screen && updraft_restore_screen) return;
975
 
976
  if ('undefined' === typeof debug) {
977
  debug = jQuery('#updraft_debug_mode').is(':checked') ? 1 : 0;
978
  }
979
+
980
  var unixtime = Math.round(new Date().getTime() / 1000);
981
 
982
  if (1 == rescan || 1 == remotescan) {
983
  updraft_historytimer_notbefore = unixtime + 30;
984
  } else {
985
+ if (unixtime < updraft_historytimer_notbefore && 'undefined' === typeof backup_count) {
986
  console.log("Update history skipped: "+unixtime.toString()+" < "+updraft_historytimer_notbefore.toString());
987
  return;
988
  }
989
  }
990
+
991
+ if ('undefined' === typeof backup_count) {
992
+ backup_count = jQuery('#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row').length;
993
+ }
994
+
995
 
996
  if (rescan == 1) {
997
  if (remotescan == 1) {
1007
 
1008
  var data = {
1009
  operation: what_op,
1010
+ debug: debug,
1011
+ backup_count: backup_count,
1012
  }
1013
 
1014
  updraft_send_command('rescan', data, function(resp) {
2166
  }
2167
  });
2168
 
2169
+ $('#updraft-navtab-migrate-content').on('change', '.updraft_migrate_widget_module_content #updraftplus_clone_backup_options', function() {
2170
+
2171
+ // reset the package list
2172
+ $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options > option').each(function() {
2173
+ var value = $(this).val();
2174
+ if ('starter' == value) $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+value+'"]').prop('selected', true);
2175
+ $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+value+'"]').prop("disabled", false);
2176
+ });
2177
+
2178
+ var clone_backup_select = $(this).find('option:selected');
2179
+
2180
+ if ('current' == $(clone_backup_select).data('nonce') || 'wp_only' == $(clone_backup_select).data('nonce')) return;
2181
+
2182
+ var total_size = $(clone_backup_select).data('size');
2183
+
2184
+ // Disable packages that are to small for this backup set, then set the first available package as the selected option
2185
+ $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options > option').each(function() {
2186
+ var size = $(this).data('size');
2187
+ var value = $(this).val();
2188
+ if (total_size >= size) {
2189
+ $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+value+'"]').prop("disabled", true);
2190
+ } else {
2191
+ $('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+value+'"]').prop('selected', true);
2192
+ return false;
2193
+ }
2194
+ });
2195
+ });
2196
+
2197
  $('#updraft-navtab-migrate-content').on('click', '.updraft_migrate_widget_module_content #updraft_migrate_createclone', function (e) {
2198
  e.preventDefault();
2199
 
3168
  var remote_deleted = backup_remote;
3169
  var sets_deleted = backup_sets;
3170
  var timestamps = jQuery('#updraft_delete_timestamp').val().split(',');
3171
+ var error_log_prompt = '';
3172
 
3173
  var form_data = jQuery('#updraft_delete_form').serializeArray();
3174
  var data = {};
3247
  local_deleted = local_deleted + resp.backup_local;
3248
  remote_deleted = remote_deleted + resp.backup_remote;
3249
  sets_deleted = sets_deleted + resp.backup_sets;
3250
+ if ('' != resp.error_messages) {
3251
+ error_log_prompt = updraftlion.delete_error_log_prompt;
3252
+ }
3253
+
3254
  setTimeout(function() {
3255
+ alert(resp.set_message + " " + sets_deleted + "\n" + resp.local_message + " " + local_deleted + "\n" + resp.remote_message + " " + remote_deleted + "\n\n" + resp.error_messages + "\n" + error_log_prompt);
3256
  }, 900);
3257
  }
3258
  });
3305
  process_next_action: function() {
3306
  var anyselected = 0;
3307
  var moreselected = 0;
3308
+ var dbselected = 0;
3309
  var whichselected = [];
3310
  // Make a list of what files we want
3311
  var already_added_wpcore = 0;
3316
  var howmany = $(y).data('howmany');
3317
  var type = $(y).val();
3318
  if ('more' == type) moreselected = 1;
3319
+ if ('db' == type) dbselected = 1;
3320
  if (1 == meta_foreign || (2 == meta_foreign && 'db' != type)) {
3321
  if ('wpcore' != type) {
3322
  howmany = $('#updraft_restore_form #updraft_restore_wpcore').data('howmany');
3420
  }
3421
  });
3422
 
3423
+ if (1 == dbselected) {
3424
+
3425
+ anyselected = 0;
3426
+
3427
+ jQuery('input[name="updraft_restore_table_options[]"').each(function (x, y) {
3428
+ if (jQuery(y).is(':checked') && !jQuery(y).is(':disabled')) anyselected = 1;
3429
+ });
3430
+
3431
+ if (0 == anyselected) {
3432
+ alert(updraftlion.youdidnotselectany);
3433
+ jQuery('.updraft-restore--next-step, .updraft-restore--cancel').prop('disabled', false);
3434
+ return;
3435
+ }
3436
+ }
3437
+
3438
  if (1 == moreselected) {
3439
 
3440
  anyselected = 0;
4136
  }
4137
  });
4138
 
4139
+ jQuery('#updraft-navtab-backups-content .updraft_existing_backups').on('click', '.updraft-load-more-backups', function (e) {
4140
+ e.preventDefault();
4141
+ var backup_count = parseInt(jQuery('#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row').length) + parseInt(updraftlion.existing_backups_limit);
4142
+ updraft_updatehistory(0, 0, 0, backup_count);
4143
+ });
4144
+
4145
+ jQuery('#updraft-navtab-backups-content .updraft_existing_backups').on('click', '.updraft-load-all-backups', function (e) {
4146
+ e.preventDefault();
4147
+ updraft_updatehistory(0, 0, 0, 9999999);
4148
+ });
4149
+
4150
  /**
4151
  * Opens the dialog box for confirmation of where to upload the backup
4152
  *
4884
  }
4885
  });
4886
 
4887
+ jQuery('#updraft-restore-modal').on('click', '#updraftplus_restore_tables_showmoreoptions', function(e) {
4888
+ e.preventDefault();
4889
+ jQuery('.updraftplus_restore_tables_options_container').toggle();
4890
+ });
4891
+
4892
 
4893
  /**
4894
  * Sends request to generate a key to be used between UpdraftPlus
includes/updraft-admin-common.min.js CHANGED
@@ -1,5 +1,5 @@
1
- function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var d in e)o[d]=e[d];else o.action_data=e;var u={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(u.timeout=r.timeout),jQuery.ajax(u)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){if(t&&t.hasOwnProperty("m")&&Array.isArray(t.m))for(var e in t.m)jQuery("#updraft-insert-admin-warning").append(t.m[e])},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");if("function"==typeof a.labelauty){a.labelauty();var r=jQuery("label[for=updraft_servicecheckbox_updraftvault]"),n=jQuery('<div class="udp-info"><span class="info-trigger">?</span><div class="info-content-wrapper"><div class="info-content">'+updraftlion.updraftvault_info+"</div></div></div>");r.append(n)}}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var d={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r||"hidden"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),d[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");d[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",d,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,d)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var d="updraft_send_command: error: "+e+" ("+a+")";console.log(d),alert(d),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var d=jQuery(this).data("key");e&&(e+=","),e+=d;var u=jQuery(this).find(".updraftplus-remove").data("hasremote");u&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",d=new RegExp(o),u=t.match(d);u?(jQuery(r).removeAttr("disabled").data("howmany",u[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0")}function updraft_backup_dialog_open(t){t="undefined"==typeof t?"new":t,0==jQuery("#updraftplus_incremental_backup_link").data("incremental")&&"incremental"==t?(jQuery("#updraft-backupnow-modal .incremental-free-only").show(),t="new"):jQuery("#updraft-backupnow-modal .incremental-backups-only").hide(),jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed&&!window.confirm(updraftlion.unsavedsettingsbackup)||(jQuery("#backupnow_label").val(""),"incremental"==t?(update_file_entities_checkboxes(!0,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!1),jQuery("#backupnow_includefiles").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_incremental_backup),jQuery("#updraft-backupnow-modal .new-backups-only").hide(),jQuery("#updraft-backupnow-modal .incremental-backups-only").show()):(update_file_entities_checkboxes(!1,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_new_backup),jQuery("#updraft-backupnow-modal .new-backups-only").show(),jQuery("#updraft-backupnow-modal .incremental-backups-only").hide()),jQuery("#updraft-backupnow-modal").data("backup-type",t),jQuery("#updraft-backupnow-modal").dialog("open"))}function update_file_entities_checkboxes(t,e){t?jQuery(e).each(function(t,e){jQuery("#backupnow_files_updraft_include_"+e).prop("checked",!1),jQuery("#backupnow_files_updraft_include_"+e).prop("disabled",!0)}):jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(t){var e=jQuery(this).attr("name");if("updraft_include_"==e.substring(0,16)){var a=e.substring(16);jQuery("#backupnow_files_updraft_include_"+a).prop("disabled",!1),jQuery(this).is(":checked")&&jQuery("#backupnow_files_updraft_include_"+a).prop("checked",!0)}})}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,d){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,d="undefined"==typeof d?updraftlion.automaticbackupbeforeupdate:d,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var u={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",u),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,d,"")}function updraft_get_downloaders(){var t="";return jQuery(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader, #ud_downloadstatus3 .updraftplus_downloader").each(function(e,a){var r=jQuery(a).data("downloaderfor");"object"==typeof r&&(""!=t&&(t+=":"),t=t+r.base+","+r.nonce+","+r.what+","+r.index)}),t}function updraft_poll_get_parameters(){var t={downloaders:updraft_get_downloaders()};try{jQuery("#updraft-poplog").dialog("isOpen")&&(t.log_fetch=1,t.log_nonce=updraft_poplog_log_nonce,t.log_pointer=updraft_poplog_log_pointer)}catch(e){console.log(e)}return updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(t.thisjobonly=updraft_backupnow_nonce),0!==jQuery("#updraftplus_ajax_restore_job_id").length&&(t.updraft_credentialtest_nonce=updraft_credentialtest_nonce),t}function updraft_activejobs_update(t){var e=(jQuery,(new Date).getTime());if(!(0==t&&e<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=e+5500;var a=updraft_poll_get_parameters();updraft_send_command("activejobs_list",a,function(t,e,r){updraft_process_status_check(t,r,a)},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a){if("undefined"==typeof updraft_restore_screen||!updraft_restore_screen){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var r=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=r+30;else if(r<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+r.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var n=e?"remotescan":!!t&&"rescan",o={operation:n,debug:a};updraft_send_command("rescan",o,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}}function update_backupnow_modal(t){t.hasOwnProperty("modal_afterfileoptions")&&jQuery(".backupnow_modal_afterfileoptions").html(t.modal_afterfileoptions)}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var d=updraft_interval_month_val===!1?1:updraft_interval_month_val;d-=1,jQuery(a+" option:eq("+d+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var u=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+u+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).closest(".updraftplus_downloader").fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,d){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),u=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(".updraftplus_downloader_container_"+a).length||(jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+u+"):</strong>"));for(var i=0;i<n.length;i++){var l=t+e+"_"+a+"_"+n[i],p="."+l,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(p).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+l+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+l+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(p).data("lasttimebegan",(new Date).getTime())}d=!!d;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:d};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t,e){if(e="undefined"!=typeof e,!e)try{var a=JSON.parse(t);return a}catch(r){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse based upon first/last curly brackets"),console.log(t)}var n=t.indexOf("{"),o=t.lastIndexOf("}");if(n>-1&&o>-1){var d=t.slice(n,o+1);try{var u=JSON.parse(d);return e||console.log("UpdraftPlus: JSON re-parse successful"),e?{parsed:u,json_start_pos:n,json_last_pos:o+1}:u}catch(r){console.log("UpdraftPlus: Exception when trying to parse JSON (2) - will attempt to fix/re-parse based upon bracket counting");for(var s=n,i=0,l="",p=!1;(i>0||s==n)&&s<=o;){var _=t.charAt(s);p||"{"!=_?p||"}"!=_?'"'==_&&"\\"!=l&&(p=!p):i--:i++,l=_,s++}console.log("Started at cursor="+n+", ended at cursor="+s+" with result following:"),console.log(t.substring(n,s));try{var u=JSON.parse(t.substring(n,s));return console.log("UpdraftPlus: JSON re-parse successful"),e?{parsed:u,json_start_pos:n,json_last_pos:s}:u}catch(r){throw r}}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery(".updraft-restore--next-step").prop("disabled",!0),jQuery("#updraft-restore-modal-stage2a").html('<span class="dashicons dashicons-update rotate"></span> '+updraftlion.preparing_backup_files),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val(""),jQuery(".updraft-restore--next-step").prop("disabled",!1);try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var n=t.m;if(""!=t.w&&(n=n+'<div class="notice notice-warning"><p><span class="dashicons dashicons-warning"></span> <strong>'+updraftlion.warnings+"</strong></p>"+t.w+"</div>"),""!=t.e?n=n+'<div class="notice notice-error"><p><span class="dashicons dashicons-dismiss"></span> <strong>'+updraftlion.errors+"</strong></p>"+t.e+"</div>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(d){console.log(d),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery(".updraft-restore--next-step").text(updraftlion.restore),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(d){console.log(a),console.log(d),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),
2
- console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var d=(new Date).getTime(),u=jQuery(o).data("lasttimebegan"),s=d-u;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),l={type:r.what,timestamp:r.timestamp,findex:r.findex},p={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",l,function(t){},p),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p>=100&&"udclonedlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,d){var u={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(u.onlythisfileentity=r),""!=d&&(u.onlythesetableentities=d),u.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,u.incremental="undefined"!=typeof n.incremental?n.incremental:0,delete n.incremental,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",u,function(t){return t.hasOwnProperty("error")?(jQuery(".updraft_requeststart").remove(),void alert(t.error)):(jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),void setTimeout(function(){updraft_activejobs_update(!0)},500))})}function updraft_process_status_check(t,e,a){if(t.hasOwnProperty("fatal_error"))return console.error(t.fatal_error_message),void(!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+t.fatal_error_message)));try{t.hasOwnProperty("l")&&(t.l?(jQuery("#updraft_lastlogmessagerow").show(),jQuery("#updraft_lastlogcontainer").html(t.l)):(jQuery("#updraft_lastlogmessagerow").hide(),jQuery("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var r=-1,n=jQuery(".updraft_requeststart");t.j&&n.length&&n.data("remove")&&n.remove();var o=jQuery(t.j);o.find(".updraft_jobtimings").each(function(t,e){var a=jQuery(e);if(a.data("jobid")){var r=a.data("jobid"),n=a.closest(".updraft_row");updraft_aborted_jobs[r]&&n.hide()}}),jQuery("#updraft_activejobsrow").html(o);var d=o.find('.job-id[data-isclone="1"]');if(d.length>0){if(0==jQuery(".updraftclone_action_box .updraftclone_network_info").length&&jQuery("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var u=jQuery("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:u},function(t){t.hasOwnProperty("html")&&jQuery(".updraftclone_action_box").html(t.html)})}jQuery("#updraft_clone_activejobsrow").empty(),d.each(function(t,e){var a=jQuery(e);a.closest(".updraft_row").appendTo(jQuery("#updraft_clone_activejobsrow"))})}if(jQuery("#updraft_activejobs .updraft_jobtimings").each(function(t,e){var a=jQuery(e);if(a.data("lastactivity")&&a.data("jobid")){var n=a.data("jobid"),o=a.data("lastactivity");(r==-1||o<r)&&(r=o);var d=a.data("nextresumptionafter"),u=a.data("nextresumption");timenow=(new Date).getTime(),o>50&&u>0&&d<-30&&timenow>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=n||u!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=u,updraft_last_forced_jobid=n,updraft_last_forced_when=timenow,console.log("UpdraftPlus: force resumption: job_id="+n+", resumption="+u),updraft_send_command("forcescheduledresumption",{resumption:u,job_id:n},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),timenow=(new Date).getTime(),updraft_activejobs_nextupdate=timenow+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=r>-1?r<5?timenow+1750:timenow+5e3:lastlog_lastdata==e?timenow+7500:timenow+1750),d.length>0&&(updraft_activejobs_nextupdate=timenow+6e3),lastlog_lastdata=e,null!=t.j&&""!=t.j){if(jQuery("#updraft_activejobsrow").show(),d.length>0&&jQuery("#updraft_clone_activejobsrow").show(),a.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+a.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&jQuery(".updraft_jobtimings.isautobackup").length&&(autobackup_nonce=jQuery(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,a.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))),1==updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+a.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):jQuery("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){jQuery("#updraft_backup_started").slideUp()},3500),a.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&a.thisjobonly===updraft_backupnow_nonce){jQuery(".updraft_requeststart").remove();var s=jQuery("#updraft-jobid-"+updraft_backupnow_nonce);s.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else jQuery("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),jQuery("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,e),null!=t.u&&""!=t.u&&jQuery("#updraft-poplog").dialog("isOpen")){var i=t.u;if(i.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=i.pointer,null!=i.log&&""!=i.log)){var l=jQuery("#updraft-poplog").scrollTop();jQuery("#updraft-poplog-content").append(i.log),updraft_poplog_lastscroll!=l&&updraft_poplog_lastscroll!=-1||(jQuery("#updraft-poplog").scrollTop(jQuery("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=jQuery("#updraft-poplog").scrollTop())}}}catch(p){console.log(updraftlion.unexpectedresponse+" "+e),console.log(p)}}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var impossible_increment_entities,updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],temporary_clone_timeout,updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()},updraft_backups_selection.selectAllInBetween=function(e){var a=this.firstMultipleSelectionIndex,r=e.rowIndex-1;for(this.firstMultipleSelectionIndex>e.rowIndex-1&&(a=e.rowIndex-1,r=this.firstMultipleSelectionIndex),i=a;i<=r;i++)this.select(t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").eq(i))},updraft_backups_selection.hightlight_backup_rows=function(){"undefined"!=typeof updraft_backups_selection.firstMultipleSelectionIndex&&(t(this).hasClass("range-selection")||t(this).hasClass("backuprowselected")||t(this).addClass("range-selection"),t(this).siblings().removeClass("range-selection"),updraft_backups_selection.firstMultipleSelectionIndex+1>this.rowIndex?t(this).nextUntil(".updraft_existing_backups_row.range-selection-start").addClass("range-selection"):updraft_backups_selection.firstMultipleSelectionIndex+1<this.rowIndex&&t(this).prevUntil(".updraft_existing_backups_row.range-selection-start").addClass("range-selection"))},updraft_backups_selection.unregister_highlight_mode=function(){"undefined"!=typeof updraft_backups_selection.firstMultipleSelectionIndex&&(delete updraft_backups_selection.firstMultipleSelectionIndex,t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").removeClass("range-selection range-selection-start"),t("#updraft-navtab-backups-content").off("hover",".updraft_existing_backups .updraft_existing_backups_row",this.hightlight_backup_rows),t(document).off("mouseleave",this.unregister_highlight_mode))},updraft_backups_selection.register_highlight_mode=function(){t(document).on("mouseleave",updraft_backups_selection.unregister_highlight_mode),t("#updraft-navtab-backups-content").on("hover",".updraft_existing_backups .updraft_existing_backups_row",updraft_backups_selection.hightlight_backup_rows)}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),d=a.url.match(/findex=\d+/),u=a.url.match(/base=[a-z_]+/);if(d=d instanceof Array?parseInt(d[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",u=u instanceof Array?u[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=u&&""!=o&&n>0){var s=u+n+"_"+o+"_"+d;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html),e.hasOwnProperty("clone_info")&&e.clone_info.hasOwnProperty("expires_after")&&n(e.clone_info.expires_after))}catch(a){console.log(a)}})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html),e.hasOwnProperty("clone_info")&&e.clone_info.hasOwnProperty("expires_after")&&n(e.clone_info.expires_after))}catch(a){console.log(a)}})}function n(e){var a=1e3*e;temporary_clone_timeout=setTimeout(function(){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").show()},a)}function o(e,a,r){var n="";"current"!=a&&updraft_send_command("whichdownloadsneeded",{updraftplus_clone:!0,timestamp:a},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),n=t.downloads,console.log(n)),0!=n.length)for(var e=0;e<n.length;e++)updraft_downloader("udclonedlstatus_",a,n[e][0],"#ud_downloadstatus3",n[e][1],"",!1)},{alert_on_error:!1,error_callback:function(e,a,r,n){if("undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html('<p style="color:red;">'+n.fatal_error_message+"</p>");else{var o="updraft_send_command: error: "+a+" ("+r+")";t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html('<p style="color:red; margin: 5px;">'+o+"</p>"),console.log(o),console.log(e)}}}),setTimeout(function(){if(0!=n.length)return void o(e,a,r);var s=e.form_data.clone_id,i=e.form_data.secret_token;updraft_send_command("process_updraftplus_clone_create",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),temporary_clone_timeout&&clearTimeout(temporary_clone_timeout),"wp_only"===r?(jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),u(s,i)):(jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),d(s,i,e.url,e.key,r,a)))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})},5e3)}function d(t,e,a,r,n,o){var d={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r,backup_nonce:n,backup_timestamp:o};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",d,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function u(e,a){var r={clone_id:e,secret_token:a};setTimeout(function(){updraft_send_command("process_updraftplus_clone_poll",r,function(r){if(r.hasOwnProperty("status")){if("error"==r.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+r.message).show();if("success"===r.status&&r.hasOwnProperty("data")&&r.data.hasOwnProperty("wordpress_credentials"))return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_clone_progress").append("<br>WordPress "+updraftlion.credentials+":<br>"+updraftlion.username+": "+r.data.wordpress_credentials.username+"<br>"+updraftlion.password+": "+r.data.wordpress_credentials.password)}else console.log(r);u(e,a)})},6e4)}function s(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+i(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function i(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function l(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),p()))}function p(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function _(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,d=a,u=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),l=jQuery("#updraft_delete_form").serializeArray(),p={};t.each(l,function(){void 0!==p[this.name]?(p[this.name].push||(p[this.name]=[p[this.name]]),p[this.name].push(this.value||"")):p[this.name]=this.value||""}),p.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),p.remote_delete_limit=updraftlion.remote_delete_limit,delete p.action,delete p.subaction,delete p.nonce,updraft_send_command("deleteset",p,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),_(o,d,u,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets,setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+u)},900)}})}function c(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function f(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function m(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function g(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,Q.open(),updraft_activejobs_update(!0)}function h(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function y(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();
3
- if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(document).on("udp/checkout/done",function(e,a){a.hasOwnProperty("product")&&"updraftpremium"===a.product&&"complete"===a.status&&(t(".premium-upgrade-purchase-success").show(),t(".updraft_feat_table").closest("section").hide(),t(".updraft_premium_cta__action").hide())}),t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var b=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||b.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var d=id_split[1];"undefined"==typeof e[d]&&(e[d]=[]),e[d][o]=this.value}});var a="",r="@",n="/",o=":",d=":";for(var u in e)(e[u].host.indexOf("@")>=0||""===e[u].host)&&(r=""),e[u].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[u].path.indexOf("/")&&""!==e[u].path||(n=""),""!==e[u].user&&""!==e[u].pass||(o=""),""!==e[u].host&&""!==e[u].port||(d=""),a=e[u].webdav+e[u].user+o+e[u].pass+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,masked_webdav_url=e[u].webdav+e[u].user+o+e[u].pass.replace(/./gi,"*")+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,t("#updraft_webdav_url_"+u).val(a),t("#updraft_webdav_masked_url_"+u).val(masked_webdav_url)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(e){(e.ctrlKey||e.metaKey)&&(e.shiftKey?("undefined"==typeof updraft_backups_selection.firstMultipleSelectionIndex?(t(document).on("keyup.MultipleSelection",function(e){updraft_backups_selection.unregister_highlight_mode(),t(document).off(".MultipleSelection")}),updraft_backups_selection.select(this),t(this).addClass("range-selection-start"),updraft_backups_selection.register_highlight_mode()):(updraft_backups_selection.selectAllInBetween(this),jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").removeClass("range-selection")),updraft_backups_selection.firstMultipleSelectionIndex=this.rowIndex-1):updraft_backups_selection.toggle(this))}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_udc_connect").is(":checked")?1:0,d={email:a,password:r,auto_update:n,auto_udc_connect:o};v.submit(d)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_udc_connect").is(":checked")?1:0,d={email:a,password:r,auto_update:n,auto_udc_connect:o};v.submit(d)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:r,password:n,two_factor_code:o,consent:d}};r&&n?a(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:r,password:n,two_factor_code:o,consent:d}};r&&n?a(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:n}};a?r(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:n}};a?r(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options").val(),i=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_updraftclone_branch").val(),l=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_updraftplus_branch").val(),p=t(".updraftplus_clone_admin_login_options").is(":checked"),_="current",c="current",f=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_backup_options").length,m=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_backup_options").find("option:selected");0!==f&&"undefined"!=typeof m&&(_=m.data("nonce"),c=m.data("timestamp"));var g={form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:d,region:u,"package":s,admin_only:p,updraftclone_branch:"undefined"==typeof i?"":i,updraftplus_branch:"undefined"==typeof l?"":l}}};"wp_only"===_&&(g.form_data.install_info.wp_only=1),o(g,c,_)});var v={};v.set_status=function(e){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").text(e)},v.show_loader=function(){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").addClass("visible"),t("#updraft-navtab-addons-content .wrap").find(".ud_connectsubmit").prop("disabled","disabled")},v.hide_loader=function(){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").removeClass("visible").text(updraftlion.processing),t("#updraft-navtab-addons-content .wrap").find(".ud_connectsubmit").removeProp("disabled")},v.submit=function(e){if(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),this.stage)switch(this.stage){case"connect_udc":case"connect_udc_TFA":var a=t("#updraftplus-addons_options_email").val(),r=t("#updraftplus-addons_options_password").val();this.login_data.email=a,this.login_data.password=r,this.connect_udc();break;case"create_key":this.create_key();break;default:this.stage=null,v.submit()}else this.set_status(updraftlion.connecting),this.show_loader(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(a){a.hasOwnProperty("success")?t("#updraftplus-addons_options_auto_udc_connect").is(":checked")?(this.login_data={email:e.email,password:e.password,i_consent:1,two_factor_code:""},v.create_key()):(v.hide_loader(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit()):a.hasOwnProperty("error")&&(v.hide_loader(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(a.message).show())}.bind(this))},v.create_key=function(){this.stage="create_key",this.set_status(updraftlion.udc_cloud_connected),this.show_loader();var e={where_send:"__updraftpluscom",key_description:"",key_size:null,mothership_firewalled:0};updraft_send_command("updraftcentral_create_key",e,function(e){try{var a=ud_parse_json(e);if(a.hasOwnProperty("error"))return void console.log(a);a.hasOwnProperty("bundle")?(console.log("bundle",a.bundle),this.login_data.key=a.bundle,this.stage="connect_udc",v.connect_udc()):(a.hasOwnProperty("r")?(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.trouble_connecting).show(),alert(a.r)):(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.trouble_connecting).show(),console.log(a)),v.hide_loader())}catch(r){console.log(r),v.hide_loader()}}.bind(this),{json_parse:!1})},v.connect_udc=function(){var e=t("#updraft-navtab-addons-content .wrap");v.set_status(updraftlion.udc_cloud_key_created),v.show_loader(),"connect_udc_TFA"==this.stage&&(this.login_data.two_factor_code=e.find("input#updraftplus-addons_options_two_factor_code").val(),v.set_status(updraftlion.checking_tfa_code));var a={form_data:this.login_data};a.form_data.addons_options_connect=1,updraft_send_command("process_updraftcentral_login",a,function(a){try{var r=ud_parse_json(a);if(r.hasOwnProperty("error")){if("incorrect_password"===r.code&&(e.find(".tfa_fields").hide(),e.find(".non_tfa_fields").show(),e.find("input#updraftplus-addons_options_two_factor_code").val(""),e.find("input#updraftplus-addons_options_password").val("").focus()),"no_key_found"===r.code&&(this.stage="create_key"),"no_licences_available"!==r.code)return t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(r.message).show(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").find("a").attr("target","_blank"),console.log(r),void v.hide_loader();t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.login_udc_no_licences_short).show(),r.status="authenticated",e.find('input[name="_wp_http_referer"]').val(function(t,e){return e+"&udc_connect=0"})}r.hasOwnProperty("tfa_enabled")&&1==r.tfa_enabled&&(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),e.find(".non_tfa_fields").hide(),e.find(".tfa_fields").show(),e.find("input#updraftplus-addons_options_two_factor_code").focus(),this.stage="connect_udc_TFA"),"authenticated"===r.status&&(e.find(".non_tfa_fields").hide(),e.find(".tfa_fields").hide(),e.find(".updraft-after-form-table").hide(),this.stage=null,t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.login_successful_short).show().addClass("success"),setTimeout(function(){t("#updraft-navtab-addons-content .wrap form.updraftplus_com_login").submit()},1e3))}catch(n){console.log(n)}v.hide_loader()}.bind(this),{json_parse:!1})},t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");s(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&s(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){l(!1)}),l(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),p()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var w=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>w&&(w=a)}),w>180&&jQuery(".updraft-bigbutton").width(w),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var k={};k[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:k});var j={};j[updraftlion.deletebutton]=function(){_(0,0,0,0)},j[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:j});var Q={initialized:!1,init:function(){this.initialized||(this.initialized=!0,t(".updraft-restore--cancel").on("click",function(t){t.preventDefault(),this.close()}.bind(this)),this.default_next_text=t(".updraft-restore--next-step").eq(0).text(),t(".updraft-restore--next-step").on("click",function(t){t.preventDefault(),this.process_next_action()}.bind(this)))},close:function(){t(".updraft_restore_container").hide(),t("body").removeClass("updraft-modal-is-opened")},open:function(){this.init(),t("#updraft-restore-modal-stage1").show(),t("#updraft-restore-modal-stage2").hide(),t("#updraft-restore-modal-stage2a").html(""),t(".updraft-restore--next-step").text(this.default_next_text),t(".updraft-restore--stages li").removeClass("active").first().addClass("active"),t(".updraft_restore_container").show(),t("body").addClass("updraft-modal-is-opened")},process_next_action:function(){var e=0,a=0,r=[],n=0,o=t("#updraft_restore_meta_foreign").val();if(t('input[name="updraft_restore[]"]').each(function(d,u){if(t(u).is(":checked")&&!t(u).is(":disabled")){e=1;var s=t(u).data("howmany"),i=t(u).val();if("more"==i&&(a=1),(1==o||2==o&&"db"!=i)&&("wpcore"!=i&&(s=t("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),i="wpcore"),"wpcore"!=i||0==n){var l=[i,s];r.push(l),"wpcore"==i&&(n=1)}}}),1==e){if(1==updraft_restore_stage){t(".updraft-restore--stages li").removeClass("active").eq(1).addClass("active"),t("#updraft-restore-modal-stage1").slideUp("slow"),t("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var d=t(".updraft_restore_date").first().text(),u=r,s=t("#updraft_restore_timestamp").val();try{t(".updraft-restore--next-step").prop("disabled",!0),t("#updraft-restore-modal-stage2a").html('<span class="dashicons dashicons-update rotate"></span> '+updraftlion.maybe_downloading_entities),updraft_send_command("whichdownloadsneeded",{downloads:r,timestamp:s},function(e){if(t(".updraft-restore--next-step").prop("disabled",!1),e.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),u=e.downloads,console.log(u)),0==u.length)updraft_restorer_checkstage2(0);else for(var a=0;a<u.length;a++)updraft_downloader("udrestoredlstatus_",s,u[a][0],"#ud_downloadstatus2",u[a][1],d,!1)},{alert_on_error:!1,error_callback:function(e,a,r,n){if("undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),t("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+n.fatal_error_message+"</p>");else{var o="updraft_send_command: error: "+a+" ("+r+")";t("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+o+"</p>"),console.log(o),console.log(e)}}})}catch(i){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(i),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var l=1;if(jQuery(".updraft-restore--next-step, .updraft-restore--cancel").prop("disabled",!0),t("#updraft_restoreoptions_ui input.required").each(function(e){if(0!=l){var a=t(this).val();if(""==a)alert(updraftlion.pleasefillinrequired),l=0;else if(""!=t(this).attr("pattern")){var r=t(this).attr("pattern"),n=new RegExp(r,"g");n.test(a)||(alert(t(this).data("invalidpattern")),l=0)}}}),1==a&&(e=0,jQuery('input[name="updraft_include_more_index[]"').each(function(t,a){jQuery(a).is(":checked")&&!jQuery(a).is(":disabled")&&(e=1,""==jQuery("#updraft_include_more_path_restore"+t).val()&&alert(updraftlion.emptyrestorepath))}),0==e))return alert(updraftlion.youdidnotselectany),void jQuery(".updraft-restore--next-step, .updraft-restore--cancel").prop("disabled",!1);if(!l)return;var p=t("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+p),t("#updraft_restorer_restore_options").val(p),t("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),t("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)}};jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var x={};x[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0,o="incremental"==jQuery("#updraft-backupnow-modal").data("backup-type")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var d=backupnow_whichfiles_checked("");return""==d&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),
4
- setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,d,{always_keep:n,incremental:o},jQuery("#backupnow_label").val(),r))},x[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:x,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&c(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var d=jQuery("#updraft_exclude_prefix_field").val();if(""==d)return void alert(updraftlion.exclude_type_prefix_msg);if(!d.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+d;break;default:return}var u=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,u)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+u+'_exclude_entity" name="updraft_include_'+u+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+u+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+u+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+u+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+u+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+u+'"]').append(s),updraft_exclude_entity_update(u),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&f()}catch(O){console.log(O)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),m(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),m(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("fileid"),a=jQuery(this).data("jobid");e?updraft_popuplog(e):a?updraft_popuplog(a):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");g(e,a,r)}),"initiate_restore"==h("udaction")){var P=h("entities"),z=h("backup_timestamp"),D=h("showdata");g(P,z,D)}var U={};U[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},U[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:U}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?y(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),d=jQuery(this).data("prettydate"),u=!0;updraft_downloader(e,a,r,n,o,d,u)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),Handlebars.registerHelper("maskPassword",function(t){return t.replace(/./gi,"*")}),Handlebars.registerHelper("encodeURIComponent",function(t){return encodeURIComponent(t)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),d=!0;for(var u in updraftlion.remote_storage_options[n])if("default"!==u){var s=updraftlion.remote_storage_options[n][u];s.first_instance=d,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),d=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var d=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:d,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(d){return console.log(d),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var d=new Image;d.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,d){if("function"==typeof o){var u=t(d).find("#updraftcentral_cloud_form"),s=u.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(d),updraft_send_command("updraftcentral_create_key",i,function(e){r(d);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(d).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,u=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,u)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(o,data,updraftlion.login_successful))}catch(u){console.log(u)}},{json_parse:!1})}function d(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),t(".updraftplus-addons-connect-to-udc").remove(),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function u(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
5
- t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var d=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return d?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var d=t(a).find("#updraft_central_keysize").val(),u=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(d,u,function(e){var d=t(a).find("#updraftcentral_cloud_form"),u=d.find('.form_hidden_fields input[name="key"]');0===u.length&&d.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=d.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");u(a)&&s(a)});var l={};t(document).on("heartbeat-send",function(t,e){l=updraft_poll_get_parameters(),e.updraftplus=l}),t(document).on("heartbeat-tick",function(t,e){if(null!==e&&e.hasOwnProperty("updraftplus")){var a=e.updraftplus,r=JSON.stringify(a);updraft_process_status_check(a,r,l)}})});
1
+ function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var d in e)o[d]=e[d];else o.action_data=e;var u={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(u.timeout=r.timeout),jQuery.ajax(u)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){if(t&&t.hasOwnProperty("m")&&Array.isArray(t.m))for(var e in t.m)jQuery("#updraft-insert-admin-warning").append(t.m[e])},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");if("function"==typeof a.labelauty){a.labelauty();var r=jQuery("label[for=updraft_servicecheckbox_updraftvault]"),n=jQuery('<div class="udp-info"><span class="info-trigger">?</span><div class="info-content-wrapper"><div class="info-content">'+updraftlion.updraftvault_info+"</div></div></div>");r.append(n)}}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var d={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r||"hidden"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),d[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");d[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",d,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,d)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var d="updraft_send_command: error: "+e+" ("+a+")";console.log(d),alert(d),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var d=jQuery(this).data("key");e&&(e+=","),e+=d;var u=jQuery(this).find(".updraftplus-remove").data("hasremote");u&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",d=new RegExp(o),u=t.match(d);u?(jQuery(r).removeAttr("disabled").data("howmany",u[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0")}function updraft_backup_dialog_open(t){t="undefined"==typeof t?"new":t,0==jQuery("#updraftplus_incremental_backup_link").data("incremental")&&"incremental"==t?(jQuery("#updraft-backupnow-modal .incremental-free-only").show(),t="new"):jQuery("#updraft-backupnow-modal .incremental-backups-only").hide(),jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed&&!window.confirm(updraftlion.unsavedsettingsbackup)||(jQuery("#backupnow_label").val(""),"incremental"==t?(update_file_entities_checkboxes(!0,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!1),jQuery("#backupnow_includefiles").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_incremental_backup),jQuery("#updraft-backupnow-modal .new-backups-only").hide(),jQuery("#updraft-backupnow-modal .incremental-backups-only").show()):(update_file_entities_checkboxes(!1,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_new_backup),jQuery("#updraft-backupnow-modal .new-backups-only").show(),jQuery("#updraft-backupnow-modal .incremental-backups-only").hide()),jQuery("#updraft-backupnow-modal").data("backup-type",t),jQuery("#updraft-backupnow-modal").dialog("open"))}function update_file_entities_checkboxes(t,e){t?jQuery(e).each(function(t,e){jQuery("#backupnow_files_updraft_include_"+e).prop("checked",!1),jQuery("#backupnow_files_updraft_include_"+e).prop("disabled",!0)}):jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(t){var e=jQuery(this).attr("name");if("updraft_include_"==e.substring(0,16)){var a=e.substring(16);jQuery("#backupnow_files_updraft_include_"+a).prop("disabled",!1),jQuery("#updraft_include_"+a).is(":checked")&&jQuery("#backupnow_files_updraft_include_"+a).prop("checked",!0)}})}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,d){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,d="undefined"==typeof d?updraftlion.automaticbackupbeforeupdate:d,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var u={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",u),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,d,"")}function updraft_get_downloaders(){var t="";return jQuery(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader, #ud_downloadstatus3 .updraftplus_downloader").each(function(e,a){var r=jQuery(a).data("downloaderfor");"object"==typeof r&&(""!=t&&(t+=":"),t=t+r.base+","+r.nonce+","+r.what+","+r.index)}),t}function updraft_poll_get_parameters(){var t={downloaders:updraft_get_downloaders()};try{jQuery("#updraft-poplog").dialog("isOpen")&&(t.log_fetch=1,t.log_nonce=updraft_poplog_log_nonce,t.log_pointer=updraft_poplog_log_pointer)}catch(e){console.log(e)}return updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(t.thisjobonly=updraft_backupnow_nonce),0!==jQuery("#updraftplus_ajax_restore_job_id").length&&(t.updraft_credentialtest_nonce=updraft_credentialtest_nonce),t}function updraft_activejobs_update(t){var e=(jQuery,(new Date).getTime());if(!(0==t&&e<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=e+5500;var a=updraft_poll_get_parameters();updraft_send_command("activejobs_list",a,function(t,e,r){updraft_process_status_check(t,r,a)},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a,r){if("undefined"==typeof updraft_restore_screen||!updraft_restore_screen){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var n=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=n+30;else if(n<updraft_historytimer_notbefore&&"undefined"==typeof r)return void console.log("Update history skipped: "+n.toString()+" < "+updraft_historytimer_notbefore.toString());"undefined"==typeof r&&(r=jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length),1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var o=e?"remotescan":!!t&&"rescan",d={operation:o,debug:a,backup_count:r};updraft_send_command("rescan",d,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}}function update_backupnow_modal(t){t.hasOwnProperty("modal_afterfileoptions")&&jQuery(".backupnow_modal_afterfileoptions").html(t.modal_afterfileoptions)}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var d=updraft_interval_month_val===!1?1:updraft_interval_month_val;d-=1,jQuery(a+" option:eq("+d+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var u=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+u+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).closest(".updraftplus_downloader").fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,d){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),u=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(".updraftplus_downloader_container_"+a).length||(jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+u+"):</strong>"));for(var i=0;i<n.length;i++){var p=t+e+"_"+a+"_"+n[i],l="."+p,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(l).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+p+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+p+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(l).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(l).data("lasttimebegan",(new Date).getTime())}d=!!d;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:d};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t,e){if(e="undefined"!=typeof e,!e)try{var a=JSON.parse(t);return a}catch(r){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse based upon first/last curly brackets"),console.log(t)}var n=t.indexOf("{"),o=t.lastIndexOf("}");if(n>-1&&o>-1){var d=t.slice(n,o+1);try{var u=JSON.parse(d);return e||console.log("UpdraftPlus: JSON re-parse successful"),e?{parsed:u,json_start_pos:n,json_last_pos:o+1}:u}catch(r){console.log("UpdraftPlus: Exception when trying to parse JSON (2) - will attempt to fix/re-parse based upon bracket counting");for(var s=n,i=0,p="",l=!1;(i>0||s==n)&&s<=o;){var _=t.charAt(s);l||"{"!=_?l||"}"!=_?'"'==_&&"\\"!=p&&(l=!l):i--:i++,p=_,s++}console.log("Started at cursor="+n+", ended at cursor="+s+" with result following:"),console.log(t.substring(n,s));try{var u=JSON.parse(t.substring(n,s));return console.log("UpdraftPlus: JSON re-parse successful"),e?{parsed:u,json_start_pos:n,json_last_pos:s}:u}catch(r){throw r}}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery(".updraft-restore--next-step").prop("disabled",!0),jQuery("#updraft-restore-modal-stage2a").html('<span class="dashicons dashicons-update rotate"></span> '+updraftlion.preparing_backup_files),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val(""),jQuery(".updraft-restore--next-step").prop("disabled",!1);try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var n=t.m;if(""!=t.w&&(n=n+'<div class="notice notice-warning"><p><span class="dashicons dashicons-warning"></span> <strong>'+updraftlion.warnings+"</strong></p>"+t.w+"</div>"),""!=t.e?n=n+'<div class="notice notice-error"><p><span class="dashicons dashicons-dismiss"></span> <strong>'+updraftlion.errors+"</strong></p>"+t.e+"</div>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(d){console.log(d),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery(".updraft-restore--next-step").text(updraftlion.restore),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(d){console.log(a),console.log(d),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),
2
+ alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var d=(new Date).getTime(),u=jQuery(o).data("lasttimebegan"),s=d-u;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),p={type:r.what,timestamp:r.timestamp,findex:r.findex},l={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",p,function(t){},l),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p>=100&&"udclonedlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,d){var u={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(u.onlythisfileentity=r),""!=d&&(u.onlythesetableentities=d),u.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,u.incremental="undefined"!=typeof n.incremental?n.incremental:0,delete n.incremental,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",u,function(t){return t.hasOwnProperty("error")?(jQuery(".updraft_requeststart").remove(),void alert(t.error)):(jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),void setTimeout(function(){updraft_activejobs_update(!0)},500))})}function updraft_process_status_check(t,e,a){if(t.hasOwnProperty("fatal_error"))return console.error(t.fatal_error_message),void(!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+t.fatal_error_message)));try{t.hasOwnProperty("l")&&(t.l?(jQuery("#updraft_lastlogmessagerow").show(),jQuery("#updraft_lastlogcontainer").html(t.l)):(jQuery("#updraft_lastlogmessagerow").hide(),jQuery("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var r=-1,n=jQuery(".updraft_requeststart");t.j&&n.length&&n.data("remove")&&n.remove();var o=jQuery(t.j);o.find(".updraft_jobtimings").each(function(t,e){var a=jQuery(e);if(a.data("jobid")){var r=a.data("jobid"),n=a.closest(".updraft_row");updraft_aborted_jobs[r]&&n.hide()}}),jQuery("#updraft_activejobsrow").html(o);var d=o.find('.job-id[data-isclone="1"]');if(d.length>0){if(0==jQuery(".updraftclone_action_box .updraftclone_network_info").length&&jQuery("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var u=jQuery("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:u},function(t){t.hasOwnProperty("html")&&jQuery(".updraftclone_action_box").html(t.html)})}jQuery("#updraft_clone_activejobsrow").empty(),d.each(function(t,e){var a=jQuery(e);a.closest(".updraft_row").appendTo(jQuery("#updraft_clone_activejobsrow"))})}if(jQuery("#updraft_activejobs .updraft_jobtimings").each(function(t,e){var a=jQuery(e);if(a.data("lastactivity")&&a.data("jobid")){var n=a.data("jobid"),o=a.data("lastactivity");(r==-1||o<r)&&(r=o);var d=a.data("nextresumptionafter"),u=a.data("nextresumption");timenow=(new Date).getTime(),o>50&&u>0&&d<-30&&timenow>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=n||u!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=u,updraft_last_forced_jobid=n,updraft_last_forced_when=timenow,console.log("UpdraftPlus: force resumption: job_id="+n+", resumption="+u),updraft_send_command("forcescheduledresumption",{resumption:u,job_id:n},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),timenow=(new Date).getTime(),updraft_activejobs_nextupdate=timenow+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=r>-1?r<5?timenow+1750:timenow+5e3:lastlog_lastdata==e?timenow+7500:timenow+1750),d.length>0&&(updraft_activejobs_nextupdate=timenow+6e3),lastlog_lastdata=e,null!=t.j&&""!=t.j){if(jQuery("#updraft_activejobsrow").show(),d.length>0&&jQuery("#updraft_clone_activejobsrow").show(),a.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+a.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&jQuery(".updraft_jobtimings.isautobackup").length&&(autobackup_nonce=jQuery(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,a.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))),1==updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+a.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):jQuery("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){jQuery("#updraft_backup_started").slideUp()},3500),a.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&a.thisjobonly===updraft_backupnow_nonce){jQuery(".updraft_requeststart").remove();var s=jQuery("#updraft-jobid-"+updraft_backupnow_nonce);s.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else jQuery("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),jQuery("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,e),null!=t.u&&""!=t.u&&jQuery("#updraft-poplog").dialog("isOpen")){var i=t.u;if(i.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=i.pointer,null!=i.log&&""!=i.log)){var p=jQuery("#updraft-poplog").scrollTop();jQuery("#updraft-poplog-content").append(i.log),updraft_poplog_lastscroll!=p&&updraft_poplog_lastscroll!=-1||(jQuery("#updraft-poplog").scrollTop(jQuery("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=jQuery("#updraft-poplog").scrollTop())}}}catch(l){console.log(updraftlion.unexpectedresponse+" "+e),console.log(l)}}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var impossible_increment_entities,updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],temporary_clone_timeout,updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()},updraft_backups_selection.selectAllInBetween=function(e){var a=this.firstMultipleSelectionIndex,r=e.rowIndex-1;for(this.firstMultipleSelectionIndex>e.rowIndex-1&&(a=e.rowIndex-1,r=this.firstMultipleSelectionIndex),i=a;i<=r;i++)this.select(t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").eq(i))},updraft_backups_selection.hightlight_backup_rows=function(){"undefined"!=typeof updraft_backups_selection.firstMultipleSelectionIndex&&(t(this).hasClass("range-selection")||t(this).hasClass("backuprowselected")||t(this).addClass("range-selection"),t(this).siblings().removeClass("range-selection"),updraft_backups_selection.firstMultipleSelectionIndex+1>this.rowIndex?t(this).nextUntil(".updraft_existing_backups_row.range-selection-start").addClass("range-selection"):updraft_backups_selection.firstMultipleSelectionIndex+1<this.rowIndex&&t(this).prevUntil(".updraft_existing_backups_row.range-selection-start").addClass("range-selection"))},updraft_backups_selection.unregister_highlight_mode=function(){"undefined"!=typeof updraft_backups_selection.firstMultipleSelectionIndex&&(delete updraft_backups_selection.firstMultipleSelectionIndex,t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").removeClass("range-selection range-selection-start"),t("#updraft-navtab-backups-content").off("hover",".updraft_existing_backups .updraft_existing_backups_row",this.hightlight_backup_rows),t(document).off("mouseleave",this.unregister_highlight_mode))},updraft_backups_selection.register_highlight_mode=function(){t(document).on("mouseleave",updraft_backups_selection.unregister_highlight_mode),t("#updraft-navtab-backups-content").on("hover",".updraft_existing_backups .updraft_existing_backups_row",updraft_backups_selection.hightlight_backup_rows)}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),d=a.url.match(/findex=\d+/),u=a.url.match(/base=[a-z_]+/);if(d=d instanceof Array?parseInt(d[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",u=u instanceof Array?u[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=u&&""!=o&&n>0){var s=u+n+"_"+o+"_"+d;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html),e.hasOwnProperty("clone_info")&&e.clone_info.hasOwnProperty("expires_after")&&n(e.clone_info.expires_after))}catch(a){console.log(a)}})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html),e.hasOwnProperty("clone_info")&&e.clone_info.hasOwnProperty("expires_after")&&n(e.clone_info.expires_after))}catch(a){console.log(a)}})}function n(e){var a=1e3*e;temporary_clone_timeout=setTimeout(function(){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").show()},a)}function o(e,a,r){var n="";"current"!=a&&updraft_send_command("whichdownloadsneeded",{updraftplus_clone:!0,timestamp:a},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),n=t.downloads,console.log(n)),0!=n.length)for(var e=0;e<n.length;e++)updraft_downloader("udclonedlstatus_",a,n[e][0],"#ud_downloadstatus3",n[e][1],"",!1)},{alert_on_error:!1,error_callback:function(e,a,r,n){if("undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html('<p style="color:red;">'+n.fatal_error_message+"</p>");else{var o="updraft_send_command: error: "+a+" ("+r+")";t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html('<p style="color:red; margin: 5px;">'+o+"</p>"),console.log(o),console.log(e)}}}),setTimeout(function(){if(0!=n.length)return void o(e,a,r);var s=e.form_data.clone_id,i=e.form_data.secret_token;updraft_send_command("process_updraftplus_clone_create",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),temporary_clone_timeout&&clearTimeout(temporary_clone_timeout),"wp_only"===r?(jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),u(s,i)):(jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),d(s,i,e.url,e.key,r,a)))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})},5e3)}function d(t,e,a,r,n,o){var d={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r,backup_nonce:n,backup_timestamp:o};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",d,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function u(e,a){var r={clone_id:e,secret_token:a};setTimeout(function(){updraft_send_command("process_updraftplus_clone_poll",r,function(r){if(r.hasOwnProperty("status")){if("error"==r.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+r.message).show();if("success"===r.status&&r.hasOwnProperty("data")&&r.data.hasOwnProperty("wordpress_credentials"))return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_clone_progress").append("<br>WordPress "+updraftlion.credentials+":<br>"+updraftlion.username+": "+r.data.wordpress_credentials.username+"<br>"+updraftlion.password+": "+r.data.wordpress_credentials.password)}else console.log(r);u(e,a)})},6e4)}function s(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+i(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function i(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function p(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),l()))}function l(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function _(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,d=a,u=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),p="",l=jQuery("#updraft_delete_form").serializeArray(),c={};t.each(l,function(){void 0!==c[this.name]?(c[this.name].push||(c[this.name]=[c[this.name]]),c[this.name].push(this.value||"")):c[this.name]=this.value||""}),c.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),c.remote_delete_limit=updraftlion.remote_delete_limit,delete c.action,delete c.subaction,delete c.nonce,updraft_send_command("deleteset",c,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),_(o,d,u,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets,""!=t.error_messages&&(p=updraftlion.delete_error_log_prompt),setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+u+"\n\n"+t.error_messages+"\n"+p)},900)}})}function c(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function f(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function m(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function g(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,Q.open(),updraft_activejobs_update(!0)}function h(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);
3
+ return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function b(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(document).on("udp/checkout/done",function(e,a){a.hasOwnProperty("product")&&"updraftpremium"===a.product&&"complete"===a.status&&(t(".premium-upgrade-purchase-success").show(),t(".updraft_feat_table").closest("section").hide(),t(".updraft_premium_cta__action").hide())}),t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var y=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||y.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var d=id_split[1];"undefined"==typeof e[d]&&(e[d]=[]),e[d][o]=this.value}});var a="",r="@",n="/",o=":",d=":";for(var u in e)(e[u].host.indexOf("@")>=0||""===e[u].host)&&(r=""),e[u].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[u].path.indexOf("/")&&""!==e[u].path||(n=""),""!==e[u].user&&""!==e[u].pass||(o=""),""!==e[u].host&&""!==e[u].port||(d=""),a=e[u].webdav+e[u].user+o+e[u].pass+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,masked_webdav_url=e[u].webdav+e[u].user+o+e[u].pass.replace(/./gi,"*")+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,t("#updraft_webdav_url_"+u).val(a),t("#updraft_webdav_masked_url_"+u).val(masked_webdav_url)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(e){(e.ctrlKey||e.metaKey)&&(e.shiftKey?("undefined"==typeof updraft_backups_selection.firstMultipleSelectionIndex?(t(document).on("keyup.MultipleSelection",function(e){updraft_backups_selection.unregister_highlight_mode(),t(document).off(".MultipleSelection")}),updraft_backups_selection.select(this),t(this).addClass("range-selection-start"),updraft_backups_selection.register_highlight_mode()):(updraft_backups_selection.selectAllInBetween(this),jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").removeClass("range-selection")),updraft_backups_selection.firstMultipleSelectionIndex=this.rowIndex-1):updraft_backups_selection.toggle(this))}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_udc_connect").is(":checked")?1:0,d={email:a,password:r,auto_update:n,auto_udc_connect:o};v.submit(d)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_udc_connect").is(":checked")?1:0,d={email:a,password:r,auto_update:n,auto_udc_connect:o};v.submit(d)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:r,password:n,two_factor_code:o,consent:d}};r&&n?a(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:r,password:n,two_factor_code:o,consent:d}};r&&n?a(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:n}};a?r(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:n}};a?r(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_backup_options",function(){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options > option").each(function(){var e=t(this).val();"starter"==e&&t('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+e+'"]').prop("selected",!0),t('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+e+'"]').prop("disabled",!1)});var e=t(this).find("option:selected");if("current"!=t(e).data("nonce")&&"wp_only"!=t(e).data("nonce")){var a=t(e).data("size");t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options > option").each(function(){var e=t(this).data("size"),r=t(this).val();return a>=e?void t('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+r+'"]').prop("disabled",!0):(t('#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options option[value="'+r+'"]').prop("selected",!0),!1)})}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_package_options").val(),i=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_updraftclone_branch").val(),p=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_updraftplus_branch").val(),l=t(".updraftplus_clone_admin_login_options").is(":checked"),_="current",c="current",f=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_backup_options").length,m=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_backup_options").find("option:selected");0!==f&&"undefined"!=typeof m&&(_=m.data("nonce"),c=m.data("timestamp"));var g={form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:d,region:u,"package":s,admin_only:l,updraftclone_branch:"undefined"==typeof i?"":i,updraftplus_branch:"undefined"==typeof p?"":p}}};"wp_only"===_&&(g.form_data.install_info.wp_only=1),o(g,c,_)});var v={};v.set_status=function(e){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").text(e)},v.show_loader=function(){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").addClass("visible"),t("#updraft-navtab-addons-content .wrap").find(".ud_connectsubmit").prop("disabled","disabled")},v.hide_loader=function(){t("#updraft-navtab-addons-content .wrap").find(".updraftplus_spinner.spinner").removeClass("visible").text(updraftlion.processing),t("#updraft-navtab-addons-content .wrap").find(".ud_connectsubmit").removeProp("disabled")},v.submit=function(e){if(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),this.stage)switch(this.stage){case"connect_udc":case"connect_udc_TFA":var a=t("#updraftplus-addons_options_email").val(),r=t("#updraftplus-addons_options_password").val();this.login_data.email=a,this.login_data.password=r,this.connect_udc();break;case"create_key":this.create_key();break;default:this.stage=null,v.submit()}else this.set_status(updraftlion.connecting),this.show_loader(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(a){a.hasOwnProperty("success")?t("#updraftplus-addons_options_auto_udc_connect").is(":checked")?(this.login_data={email:e.email,password:e.password,i_consent:1,two_factor_code:""},v.create_key()):(v.hide_loader(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit()):a.hasOwnProperty("error")&&(v.hide_loader(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(a.message).show())}.bind(this))},v.create_key=function(){this.stage="create_key",this.set_status(updraftlion.udc_cloud_connected),this.show_loader();var e={where_send:"__updraftpluscom",key_description:"",key_size:null,mothership_firewalled:0};updraft_send_command("updraftcentral_create_key",e,function(e){try{var a=ud_parse_json(e);if(a.hasOwnProperty("error"))return void console.log(a);a.hasOwnProperty("bundle")?(console.log("bundle",a.bundle),this.login_data.key=a.bundle,this.stage="connect_udc",v.connect_udc()):(a.hasOwnProperty("r")?(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.trouble_connecting).show(),alert(a.r)):(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.trouble_connecting).show(),console.log(a)),v.hide_loader())}catch(r){console.log(r),v.hide_loader()}}.bind(this),{json_parse:!1})},v.connect_udc=function(){var e=t("#updraft-navtab-addons-content .wrap");v.set_status(updraftlion.udc_cloud_key_created),v.show_loader(),"connect_udc_TFA"==this.stage&&(this.login_data.two_factor_code=e.find("input#updraftplus-addons_options_two_factor_code").val(),v.set_status(updraftlion.checking_tfa_code));var a={form_data:this.login_data};a.form_data.addons_options_connect=1,updraft_send_command("process_updraftcentral_login",a,function(a){try{var r=ud_parse_json(a);if(r.hasOwnProperty("error")){if("incorrect_password"===r.code&&(e.find(".tfa_fields").hide(),e.find(".non_tfa_fields").show(),e.find("input#updraftplus-addons_options_two_factor_code").val(""),e.find("input#updraftplus-addons_options_password").val("").focus()),"no_key_found"===r.code&&(this.stage="create_key"),"no_licences_available"!==r.code)return t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(r.message).show(),t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").find("a").attr("target","_blank"),console.log(r),void v.hide_loader();t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.login_udc_no_licences_short).show(),r.status="authenticated",e.find('input[name="_wp_http_referer"]').val(function(t,e){return e+"&udc_connect=0"})}r.hasOwnProperty("tfa_enabled")&&1==r.tfa_enabled&&(t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),e.find(".non_tfa_fields").hide(),e.find(".tfa_fields").show(),e.find("input#updraftplus-addons_options_two_factor_code").focus(),this.stage="connect_udc_TFA"),"authenticated"===r.status&&(e.find(".non_tfa_fields").hide(),e.find(".tfa_fields").hide(),e.find(".updraft-after-form-table").hide(),this.stage=null,t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(updraftlion.login_successful_short).show().addClass("success"),setTimeout(function(){t("#updraft-navtab-addons-content .wrap form.updraftplus_com_login").submit()},1e3))}catch(n){console.log(n)}v.hide_loader()}.bind(this),{json_parse:!1})},t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");s(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&s(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){p(!1)}),p(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),l()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var w=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>w&&(w=a)}),w>180&&jQuery(".updraft-bigbutton").width(w),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var k={};k[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:k});var j={};j[updraftlion.deletebutton]=function(){_(0,0,0,0)},j[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:j});var Q={initialized:!1,init:function(){this.initialized||(this.initialized=!0,t(".updraft-restore--cancel").on("click",function(t){t.preventDefault(),this.close()}.bind(this)),this.default_next_text=t(".updraft-restore--next-step").eq(0).text(),t(".updraft-restore--next-step").on("click",function(t){t.preventDefault(),this.process_next_action()}.bind(this)))},close:function(){t(".updraft_restore_container").hide(),t("body").removeClass("updraft-modal-is-opened")},open:function(){this.init(),t("#updraft-restore-modal-stage1").show(),t("#updraft-restore-modal-stage2").hide(),t("#updraft-restore-modal-stage2a").html(""),t(".updraft-restore--next-step").text(this.default_next_text),t(".updraft-restore--stages li").removeClass("active").first().addClass("active"),t(".updraft_restore_container").show(),t("body").addClass("updraft-modal-is-opened")},process_next_action:function(){var e=0,a=0,r=0,n=[],o=0,d=t("#updraft_restore_meta_foreign").val();if(t('input[name="updraft_restore[]"]').each(function(u,s){if(t(s).is(":checked")&&!t(s).is(":disabled")){e=1;var i=t(s).data("howmany"),p=t(s).val();if("more"==p&&(a=1),"db"==p&&(r=1),(1==d||2==d&&"db"!=p)&&("wpcore"!=p&&(i=t("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),p="wpcore"),"wpcore"!=p||0==o){var l=[p,i];n.push(l),"wpcore"==p&&(o=1)}}}),1==e){if(1==updraft_restore_stage){t(".updraft-restore--stages li").removeClass("active").eq(1).addClass("active"),t("#updraft-restore-modal-stage1").slideUp("slow"),t("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var u=t(".updraft_restore_date").first().text(),s=n,i=t("#updraft_restore_timestamp").val();try{t(".updraft-restore--next-step").prop("disabled",!0),t("#updraft-restore-modal-stage2a").html('<span class="dashicons dashicons-update rotate"></span> '+updraftlion.maybe_downloading_entities),updraft_send_command("whichdownloadsneeded",{downloads:n,timestamp:i},function(e){if(t(".updraft-restore--next-step").prop("disabled",!1),e.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),s=e.downloads,console.log(s)),0==s.length)updraft_restorer_checkstage2(0);else for(var a=0;a<s.length;a++)updraft_downloader("udrestoredlstatus_",i,s[a][0],"#ud_downloadstatus2",s[a][1],u,!1)},{alert_on_error:!1,error_callback:function(e,a,r,n){if("undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),t("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+n.fatal_error_message+"</p>");else{var o="updraft_send_command: error: "+a+" ("+r+")";t("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+o+"</p>"),console.log(o),console.log(e)}}})}catch(p){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(p),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var l=1;if(jQuery(".updraft-restore--next-step, .updraft-restore--cancel").prop("disabled",!0),t("#updraft_restoreoptions_ui input.required").each(function(e){if(0!=l){var a=t(this).val();if(""==a)alert(updraftlion.pleasefillinrequired),l=0;else if(""!=t(this).attr("pattern")){var r=t(this).attr("pattern"),n=new RegExp(r,"g");n.test(a)||(alert(t(this).data("invalidpattern")),l=0)}}}),1==r&&(e=0,jQuery('input[name="updraft_restore_table_options[]"').each(function(t,a){
4
+ jQuery(a).is(":checked")&&!jQuery(a).is(":disabled")&&(e=1)}),0==e))return alert(updraftlion.youdidnotselectany),void jQuery(".updraft-restore--next-step, .updraft-restore--cancel").prop("disabled",!1);if(1==a&&(e=0,jQuery('input[name="updraft_include_more_index[]"').each(function(t,a){jQuery(a).is(":checked")&&!jQuery(a).is(":disabled")&&(e=1,""==jQuery("#updraft_include_more_path_restore"+t).val()&&alert(updraftlion.emptyrestorepath))}),0==e))return alert(updraftlion.youdidnotselectany),void jQuery(".updraft-restore--next-step, .updraft-restore--cancel").prop("disabled",!1);if(!l)return;var _=t("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+_),t("#updraft_restorer_restore_options").val(_),t("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),t("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)}};jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var x={};x[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0,o="incremental"==jQuery("#updraft-backupnow-modal").data("backup-type")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var d=backupnow_whichfiles_checked("");return""==d&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,d,{always_keep:n,incremental:o},jQuery("#backupnow_label").val(),r))},x[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:x,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&c(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var d=jQuery("#updraft_exclude_prefix_field").val();if(""==d)return void alert(updraftlion.exclude_type_prefix_msg);if(!d.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+d;break;default:return}var u=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,u)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+u+'_exclude_entity" name="updraft_include_'+u+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+u+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+u+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+u+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+u+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+u+'"]').append(s),updraft_exclude_entity_update(u),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&f()}catch(O){console.log(O)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),m(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),m(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("fileid"),a=jQuery(this).data("jobid");e?updraft_popuplog(e):a?updraft_popuplog(a):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");g(e,a,r)}),"initiate_restore"==h("udaction")){var P=h("entities"),z=h("backup_timestamp"),D=h("showdata");g(P,z,D)}var U={};U[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},U[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:U}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?b(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-load-more-backups",function(t){t.preventDefault();var e=parseInt(jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length)+parseInt(updraftlion.existing_backups_limit);updraft_updatehistory(0,0,0,e)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-load-all-backups",function(t){t.preventDefault(),updraft_updatehistory(0,0,0,9999999)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),d=jQuery(this).data("prettydate"),u=!0;updraft_downloader(e,a,r,n,o,d,u)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),Handlebars.registerHelper("maskPassword",function(t){return t.replace(/./gi,"*")}),Handlebars.registerHelper("encodeURIComponent",function(t){return encodeURIComponent(t)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),d=!0;for(var u in updraftlion.remote_storage_options[n])if("default"!==u){var s=updraftlion.remote_storage_options[n][u];s.first_instance=d,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),d=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var d=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:d,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(d){return console.log(d),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var d=new Image;d.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,d){if("function"==typeof o){var u=t(d).find("#updraftcentral_cloud_form"),s=u.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(d),updraft_send_command("updraftcentral_create_key",i,function(e){r(d);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(d).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,u=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,u)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),
5
+ t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(o,data,updraftlion.login_successful))}catch(u){console.log(u)}},{json_parse:!1})}function d(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),t(".updraftplus-addons-connect-to-udc").remove(),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function u(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var d=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return d?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var d=t(a).find("#updraft_central_keysize").val(),u=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(d,u,function(e){var d=t(a).find("#updraftcentral_cloud_form"),u=d.find('.form_hidden_fields input[name="key"]');0===u.length&&d.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=d.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),jQuery("#updraft-restore-modal").on("click","#updraftplus_restore_tables_showmoreoptions",function(t){t.preventDefault(),jQuery(".updraftplus_restore_tables_options_container").toggle()}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");u(a)&&s(a)});var p={};t(document).on("heartbeat-send",function(t,e){p=updraft_poll_get_parameters(),e.updraftplus=p}),t(document).on("heartbeat-tick",function(t,e){if(null!==e&&e.hasOwnProperty("updraftplus")){var a=e.updraftplus,r=JSON.stringify(a);updraft_process_status_check(a,r,p)}})});
js/updraft-admin-restore.js CHANGED
@@ -185,6 +185,15 @@ jQuery(document).ready(function($) {
185
  }
186
  });
187
  if (restore_data.data.hasOwnProperty('actions') && 'object' == typeof restore_data.data.actions) {
 
 
 
 
 
 
 
 
 
188
  $.each(restore_data.data.actions, function(index, item) {
189
  $steps_list.after('<a href="'+item+'" class="button button-primary">'+index+'</a>');
190
  });
@@ -265,6 +274,27 @@ jQuery(document).ready(function($) {
265
  });
266
  }
267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  $('#updraftplus_ajax_restore_progress').on('click', '#updraft_restore_resume', function(e) {
269
  e.preventDefault();
270
  $("#updraftplus_ajax_restore_progress").slideUp(1000, function () {
185
  }
186
  });
187
  if (restore_data.data.hasOwnProperty('actions') && 'object' == typeof restore_data.data.actions) {
188
+
189
+ var pages_found = updraft_restore_get_pages(restore_data.data.urls);
190
+ if (!$.isEmptyObject(pages_found)) {
191
+ $('.updraft_restore_result').before(updraftlion.ajax_restore_404_detected);
192
+ $.each(pages_found, function(index, url) {
193
+ $('.updraft_missing_pages').append('<li>'+url+'</li>');
194
+ });
195
+ }
196
+
197
  $.each(restore_data.data.actions, function(index, item) {
198
  $steps_list.after('<a href="'+item+'" class="button button-primary">'+index+'</a>');
199
  });
274
  });
275
  }
276
 
277
+ /**
278
+ * This function will make a call to the passed in urls and check if the response code is a 404 if it is then add it to the array of urls that are not found and return it
279
+ *
280
+ * @param {array} urls - the urls we want to test
281
+ *
282
+ * @return {array} an array of urls not found
283
+ */
284
+ function updraft_restore_get_pages(urls) {
285
+
286
+ var urls_not_found = [];
287
+
288
+ $.each(urls, function(index, url) {
289
+ var xhttp = new XMLHttpRequest();
290
+ xhttp.open('GET', url, false);
291
+ xhttp.send(null);
292
+ if (xhttp.status == 404) urls_not_found.push(url);
293
+ });
294
+
295
+ return urls_not_found;
296
+ }
297
+
298
  $('#updraftplus_ajax_restore_progress').on('click', '#updraft_restore_resume', function(e) {
299
  e.preventDefault();
300
  $("#updraftplus_ajax_restore_progress").slideUp(1000, function () {
js/updraft-admin-restore.min.js CHANGED
@@ -1 +1 @@
1
- var updraft_restore_screen=!0;jQuery(document).ready(function(e){function r(r,a){var o=new XMLHttpRequest,n="action="+a+"&updraftplus_ajax_restore=do_ajax_restore&job_id="+r,d=0,l=!0,u=e("#updraftplus_ajax_restore_debug").length;o.open("POST",ajaxurl,!0),o.onprogress=function(e){if(e.currentTarget.status>=200&&e.currentTarget.status<300){if(-1!==e.currentTarget.responseText.indexOf("<html"))return l&&(l=!1,alert("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_invalid_response)),c.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_invalid_response),console.log("UpdraftPlus restore error: HTML detected in response could be a copy of the WordPress front page caused by mod_security"),void console.log(e.currentTarget.responseText);if(d==e.currentTarget.responseText.length)return;i=Math.round(Date.now()/1e3);var r=e.currentTarget.responseText.substr(d);d=e.currentTarget.responseText.length;for(var a=0,o=0;a<r.length;){var n=r.substr(a,7);if("RINFO:{"==n){c.append(r.substring(o,a).trim()).scrollTop(c[0].scrollHeight);var p=ud_parse_json(r.substr(a),!0);1==u&&console.log(p),t(p.parsed),o=a+p.json_last_pos-p.json_start_pos+6,a=o}else a++}c.append(r.substr(o).trim()).scrollTop(c[0].scrollHeight),c.find("input[name=connection_type]").length&&c.find("#upgrade").length&&s()}else 0==e.currentTarget.status?c.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_contact_failed):c.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+e.currentTarget.status+" "+e.currentTarget.statusText),console.log("UpdraftPlus restore error: "+e.currentTarget.status+" "+e.currentTarget.statusText),console.log(e.currentTarget)},o.onload=function(){var r=c.find(".updraft_restore_successful, .updraft_restore_error");if(r.length){var t=e(".updraft_restore_result");t.slideDown(),_.slideUp(),_.siblings("h2").slideUp(),r.is(".updraft_restore_successful")?(t.find(".dashicons").addClass("dashicons-yes"),t.find(".updraft_restore_result--text").text(r.text()),t.addClass("restore-success")):r.is(".updraft_restore_error")&&(t.find(".dashicons").addClass("dashicons-no-alt"),t.find(".updraft_restore_result--text").text(r.text()),t.addClass("restore-error")),setTimeout(function(){c.scrollTop(c[0].scrollHeight)},500)}},o.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o.send(n)}function t(r){if("started"==r.stage&&(n=setInterval(function(){a()},5e3)),"finished"==r.stage&&n&&(clearInterval(n),e("#updraftplus_ajax_restore_last_activity").html("")),r&&("state"==r.type||"state_change"==r.type)){console.log(r.stage,r.data),l="files"==r.stage?r.data.entity:r.stage;var t=_.find("[data-component="+l+"]");if("files"==r.stage&&t.find(".updraft_component--progress").html(" — "+updraftlion.restore_files_progress.replace("%s1","<strong>"+r.data.fileindex+"</strong>").replace("%s2","<strong>"+r.data.total_files+"</strong>")),"db"==r.stage&&r.data.hasOwnProperty("stage")&&("table"==r.data.stage?t.find(".updraft_component--progress").html(" — "+updraftlion.restore_db_table_progress.replace("%s","<strong>"+r.data.table+"</strong>")):"finished"==r.data.stage?t.find(".updraft_component--progress").html(" — "+updraftlion.finished):"begun"==r.data.stage&&t.find(".updraft_component--progress").html(" — "+updraftlion.begun+"...")),d!==l){if(d){var s=_.find("[data-component="+d+"]");s.find(".updraft_component--progress").html(""),s.removeClass("active").addClass("done")}"finished"==l?(t.addClass("done"),_.find("[data-component]").each(function(r,t){$el=e(t),$el.is(".done")||$el.addClass("error")}),r.data.hasOwnProperty("actions")&&"object"==typeof r.data.actions&&e.each(r.data.actions,function(e,r){_.after('<a href="'+r+'" class="button button-primary">'+e+"</a>")})):t.addClass("active")}d=l}}function a(){var r=Math.round(Date.now()/1e3),t=r-i;if(60>t)e("#updraftplus_ajax_restore_last_activity").html(updraftlion.last_activity.replace("%d",t));else{var a=120-t;0<a?e("#updraftplus_ajax_restore_last_activity").html(updraftlion.no_recent_activity.replace("%d",a)):(e("#updraftplus_ajax_restore_last_activity").html(""),o())}}function s(){e(".updraft_restore_main").addClass("show-credentials-form"),e("#message").length&&(e(".restore-credential-errors .restore-credential-errors--list").appendTo(e("#message")),e(".restore-credential-errors .restore-credential-errors--link").appendTo(e("#message")))}function o(){updraft_send_command("get_restore_resume_notice",{job_id:u},function(t){t.hasOwnProperty("status")&&"success"==t.status&&t.hasOwnProperty("html")?(n&&clearInterval(n),"plugins"!=l&&"db"!=l&&5>g?(g++,r(u,"updraft_ajaxrestore_continue")):e(".updraft_restore_main--components").prepend(t.html)):t.hasOwnProperty("error_code")&&t.hasOwnProperty("error_message")&&(n&&clearInterval(n),alert(t.error_code+": "+t.error_message),console.log(t.error_code+": "+t.error_message))},{error_callback:function(e,a,s,o){if(500==e.status&&3>h)h++,r(u,"updraft_ajaxrestore_continue");else{t({stage:"finished",type:"state_change"});var n="updraft_send_command: error: "+a+" ("+s+")";alert(n),console.log(n),console.log(e)}}})}var n,d,l,u=e("#updraftplus_ajax_restore_job_id").val(),p=e("#updraftplus_ajax_restore_action").val(),i=0,c=e("#updraftplus_ajax_restore_output"),_=e(".updraft_restore_components_list"),f=!1,g=0,h=0;r(u,p),e("#updraftplus_ajax_restore_progress").on("click","#updraft_restore_resume",function(t){t.preventDefault(),e("#updraftplus_ajax_restore_progress").slideUp(1e3,function(){e(this).remove()}),r(u,"updraft_ajaxrestore_continue")}),e(document).on("heartbeat-tick",function(e,r){if(r.hasOwnProperty("wp-auth-check")){if(!r["wp-auth-check"])return void(f=!0);if(f&&r["wp-auth-check"]&&(i=Math.round(Date.now()/1e3),f=!1),r.hasOwnProperty("updraftplus")){var t=r.updraftplus;t.hasOwnProperty("updraft_credentialtest_nonce")&&(updraft_credentialtest_nonce=t.updraft_credentialtest_nonce,i=Math.round(Date.now()/1e3))}}})});
1
+ var updraft_restore_screen=!0;jQuery(document).ready(function(e){function t(t,a){var o=new XMLHttpRequest,n="action="+a+"&updraftplus_ajax_restore=do_ajax_restore&job_id="+t,d=0,l=!0,u=e("#updraftplus_ajax_restore_debug").length;o.open("POST",ajaxurl,!0),o.onprogress=function(e){if(e.currentTarget.status>=200&&e.currentTarget.status<300){if(-1!==e.currentTarget.responseText.indexOf("<html"))return l&&(l=!1,alert("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_invalid_response)),_.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_invalid_response),console.log("UpdraftPlus restore error: HTML detected in response could be a copy of the WordPress front page caused by mod_security"),void console.log(e.currentTarget.responseText);if(d==e.currentTarget.responseText.length)return;c=Math.round(Date.now()/1e3);var t=e.currentTarget.responseText.substr(d);d=e.currentTarget.responseText.length;for(var a=0,o=0;a<t.length;){var n=t.substr(a,7);if("RINFO:{"==n){_.append(t.substring(o,a).trim()).scrollTop(_[0].scrollHeight);var p=ud_parse_json(t.substr(a),!0);1==u&&console.log(p),r(p.parsed),o=a+p.json_last_pos-p.json_start_pos+6,a=o}else a++}_.append(t.substr(o).trim()).scrollTop(_[0].scrollHeight),_.find("input[name=connection_type]").length&&_.find("#upgrade").length&&s()}else 0==e.currentTarget.status?_.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+updraftlion.ajax_restore_contact_failed):_.append("UpdraftPlus "+updraftlion.ajax_restore_error+" "+e.currentTarget.status+" "+e.currentTarget.statusText),console.log("UpdraftPlus restore error: "+e.currentTarget.status+" "+e.currentTarget.statusText),console.log(e.currentTarget)},o.onload=function(){var t=_.find(".updraft_restore_successful, .updraft_restore_error");if(t.length){var r=e(".updraft_restore_result");r.slideDown(),f.slideUp(),f.siblings("h2").slideUp(),t.is(".updraft_restore_successful")?(r.find(".dashicons").addClass("dashicons-yes"),r.find(".updraft_restore_result--text").text(t.text()),r.addClass("restore-success")):t.is(".updraft_restore_error")&&(r.find(".dashicons").addClass("dashicons-no-alt"),r.find(".updraft_restore_result--text").text(t.text()),r.addClass("restore-error")),setTimeout(function(){_.scrollTop(_[0].scrollHeight)},500)}},o.setRequestHeader("Content-type","application/x-www-form-urlencoded"),o.send(n)}function r(t){if("started"==t.stage&&(d=setInterval(function(){a()},5e3)),"finished"==t.stage&&d&&(clearInterval(d),e("#updraftplus_ajax_restore_last_activity").html("")),t&&("state"==t.type||"state_change"==t.type)){console.log(t.stage,t.data),u="files"==t.stage?t.data.entity:t.stage;var r=f.find("[data-component="+u+"]");if("files"==t.stage&&r.find(".updraft_component--progress").html(" — "+updraftlion.restore_files_progress.replace("%s1","<strong>"+t.data.fileindex+"</strong>").replace("%s2","<strong>"+t.data.total_files+"</strong>")),"db"==t.stage&&t.data.hasOwnProperty("stage")&&("table"==t.data.stage?r.find(".updraft_component--progress").html(" — "+updraftlion.restore_db_table_progress.replace("%s","<strong>"+t.data.table+"</strong>")):"finished"==t.data.stage?r.find(".updraft_component--progress").html(" — "+updraftlion.finished):"begun"==t.data.stage&&r.find(".updraft_component--progress").html(" — "+updraftlion.begun+"...")),l!==u){if(l){var s=f.find("[data-component="+l+"]");s.find(".updraft_component--progress").html(""),s.removeClass("active").addClass("done")}if("finished"==u){if(r.addClass("done"),f.find("[data-component]").each(function(t,r){$el=e(r),$el.is(".done")||$el.addClass("error")}),t.data.hasOwnProperty("actions")&&"object"==typeof t.data.actions){var o=n(t.data.urls);e.isEmptyObject(o)||(e(".updraft_restore_result").before(updraftlion.ajax_restore_404_detected),e.each(o,function(t,r){e(".updraft_missing_pages").append("<li>"+r+"</li>")})),e.each(t.data.actions,function(e,t){f.after('<a href="'+t+'" class="button button-primary">'+e+"</a>")})}}else r.addClass("active")}l=u}}function a(){var t=Math.round(Date.now()/1e3),r=t-c;if(60>r)e("#updraftplus_ajax_restore_last_activity").html(updraftlion.last_activity.replace("%d",r));else{var a=120-r;0<a?e("#updraftplus_ajax_restore_last_activity").html(updraftlion.no_recent_activity.replace("%d",a)):(e("#updraftplus_ajax_restore_last_activity").html(""),o())}}function s(){e(".updraft_restore_main").addClass("show-credentials-form"),e("#message").length&&(e(".restore-credential-errors .restore-credential-errors--list").appendTo(e("#message")),e(".restore-credential-errors .restore-credential-errors--link").appendTo(e("#message")))}function o(){updraft_send_command("get_restore_resume_notice",{job_id:p},function(r){r.hasOwnProperty("status")&&"success"==r.status&&r.hasOwnProperty("html")?(d&&clearInterval(d),"plugins"!=u&&"db"!=u&&5>h?(h++,t(p,"updraft_ajaxrestore_continue")):e(".updraft_restore_main--components").prepend(r.html)):r.hasOwnProperty("error_code")&&r.hasOwnProperty("error_message")&&(d&&clearInterval(d),alert(r.error_code+": "+r.error_message),console.log(r.error_code+": "+r.error_message))},{error_callback:function(e,a,s,o){if(500==e.status&&3>m)m++,t(p,"updraft_ajaxrestore_continue");else{r({stage:"finished",type:"state_change"});var n="updraft_send_command: error: "+a+" ("+s+")";alert(n),console.log(n),console.log(e)}}})}function n(t){var r=[];return e.each(t,function(e,t){var a=new XMLHttpRequest;a.open("GET",t,!1),a.send(null),404==a.status&&r.push(t)}),r}var d,l,u,p=e("#updraftplus_ajax_restore_job_id").val(),i=e("#updraftplus_ajax_restore_action").val(),c=0,_=e("#updraftplus_ajax_restore_output"),f=e(".updraft_restore_components_list"),g=!1,h=0,m=0;t(p,i),e("#updraftplus_ajax_restore_progress").on("click","#updraft_restore_resume",function(r){r.preventDefault(),e("#updraftplus_ajax_restore_progress").slideUp(1e3,function(){e(this).remove()}),t(p,"updraft_ajaxrestore_continue")}),e(document).on("heartbeat-tick",function(e,t){if(t.hasOwnProperty("wp-auth-check")){if(!t["wp-auth-check"])return void(g=!0);if(g&&t["wp-auth-check"]&&(c=Math.round(Date.now()/1e3),g=!1),t.hasOwnProperty("updraftplus")){var r=t.updraftplus;r.hasOwnProperty("updraft_credentialtest_nonce")&&(updraft_credentialtest_nonce=r.updraft_credentialtest_nonce,c=Math.round(Date.now()/1e3))}}})});
languages/updraftplus.pot CHANGED
@@ -21,283 +21,283 @@ msgstr ""
21
  msgid "WordPress core (only)"
22
  msgstr ""
23
 
24
- #: src/addons/autobackup.php:139, src/addons/autobackup.php:1070
25
  msgid "UpdraftPlus Automatic Backups"
26
  msgstr ""
27
 
28
- #: src/addons/autobackup.php:157, src/addons/autobackup.php:1050, src/admin.php:860
29
  msgid "Automatic backup before update"
30
  msgstr ""
31
 
32
- #: src/addons/autobackup.php:324
33
  msgid "Automatically backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
34
  msgstr ""
35
 
36
- #: src/addons/autobackup.php:326, src/addons/autobackup.php:1109
37
  msgid "Remember this choice for next time (you will still have the chance to change it)"
38
  msgstr ""
39
 
40
- #: src/addons/autobackup.php:327, src/addons/autobackup.php:1114, src/addons/lockadmin.php:160
41
  msgid "Read more about how this works..."
42
  msgstr ""
43
 
44
- #: src/addons/autobackup.php:366
45
  msgid "Creating %s and database backup with UpdraftPlus..."
46
  msgstr ""
47
 
48
- #: src/addons/autobackup.php:366, src/addons/autobackup.php:460
49
  msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
50
  msgstr ""
51
 
52
- #: src/addons/autobackup.php:367, src/addons/autobackup.php:462, src/admin.php:3136, src/admin.php:3142, src/templates/wp-admin/settings/take-backup.php:71
53
  msgid "Last log message"
54
  msgstr ""
55
 
56
- #: src/addons/autobackup.php:370, src/addons/autobackup.php:467
57
  msgid "Starting automatic backup..."
58
  msgstr ""
59
 
60
- #: src/addons/autobackup.php:372, src/addons/autobackup.php:464, src/admin.php:811, src/methods/remotesend.php:69, src/methods/remotesend.php:77, src/methods/remotesend.php:239, src/methods/remotesend.php:255
61
  msgid "Unexpected response:"
62
  msgstr ""
63
 
64
- #: src/addons/autobackup.php:419
65
  msgid "plugins"
66
  msgstr ""
67
 
68
- #: src/addons/autobackup.php:426
69
  msgid "themes"
70
  msgstr ""
71
 
72
- #: src/addons/autobackup.php:460
73
  msgid "Creating database backup with UpdraftPlus..."
74
  msgstr ""
75
 
76
- #: src/addons/autobackup.php:469, src/addons/autobackup.php:600, src/addons/autobackup.php:651
77
  msgid "Automatic Backup"
78
  msgstr ""
79
 
80
- #: src/addons/autobackup.php:524
81
  msgid "Creating backup with UpdraftPlus..."
82
  msgstr ""
83
 
84
- #: src/addons/autobackup.php:553
85
  msgid "Errors have occurred:"
86
  msgstr ""
87
 
88
- #: src/addons/autobackup.php:572, src/addons/autobackup.php:574
89
  msgid "Backup succeeded"
90
  msgstr ""
91
 
92
- #: src/addons/autobackup.php:572, src/addons/autobackup.php:574
93
  msgid "(view log...)"
94
  msgstr ""
95
 
96
- #: src/addons/autobackup.php:572, src/addons/autobackup.php:574
97
  msgid "now proceeding with the updates..."
98
  msgstr ""
99
 
100
- #: src/addons/autobackup.php:1096, src/admin.php:1011
101
  msgid "Be safe with an automatic backup"
102
  msgstr ""
103
 
104
- #: src/addons/autobackup.php:1104
105
  msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
106
  msgstr ""
107
 
108
- #: src/addons/autobackup.php:1121
109
  msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
110
  msgstr ""
111
 
112
- #: src/addons/autobackup.php:1128, src/admin.php:856
113
  msgid "Proceed with update"
114
  msgstr ""
115
 
116
- #: src/addons/azure.php:268, src/methods/addon-base-v2.php:257, src/methods/openstack-base.php:452, src/methods/stream-base.php:296, src/methods/stream-base.php:303, src/methods/stream-base.php:334
117
  msgid "%s Error"
118
  msgstr ""
119
 
120
- #: src/addons/azure.php:268, src/class-updraftplus.php:4229, src/methods/googledrive.php:1243, src/methods/s3.php:351
121
  msgid "File not found"
122
  msgstr ""
123
 
124
- #: src/addons/azure.php:413
125
  msgid "Could not access container"
126
  msgstr ""
127
 
128
- #: src/addons/azure.php:420, src/methods/stream-base.php:144, src/methods/stream-base.php:149
129
  msgid "Upload failed"
130
  msgstr ""
131
 
132
- #: src/addons/azure.php:443, src/addons/backblaze.php:560, src/addons/googlecloud.php:850, src/methods/s3.php:1230
133
  msgid "Delete failed:"
134
  msgstr ""
135
 
136
- #: src/addons/azure.php:563
137
  msgid "Could not create the container"
138
  msgstr ""
139
 
140
- #: src/addons/azure.php:600
141
  msgid "Microsoft Azure is not compatible with sites hosted on a localhost or 127.0.0.1 URL - their developer console forbids these (current URL is: %s)."
142
  msgstr ""
143
 
144
- #: src/addons/azure.php:602
145
  msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
146
  msgstr ""
147
 
148
- #: src/addons/azure.php:608, src/addons/migrator.php:963, src/admin.php:1188, src/admin.php:1193, src/admin.php:1199, src/admin.php:1203, src/admin.php:1207, src/admin.php:1216, src/admin.php:4007, src/admin.php:4014, src/admin.php:4016, src/admin.php:5584, src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:435, src/methods/ftp.php:335, src/methods/openstack-base.php:568, src/methods/s3.php:875, src/methods/s3.php:879, src/methods/updraftvault.php:321, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/udaddons/updraftplus-addons.php:301
149
  msgid "Warning"
150
  msgstr ""
151
 
152
- #: src/addons/azure.php:608, src/admin.php:4007, src/methods/updraftvault.php:321
153
  msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
154
  msgstr ""
155
 
156
- #: src/addons/azure.php:611
157
  msgid "Create Azure credentials in your Azure developer console."
158
  msgstr ""
159
 
160
- #: src/addons/azure.php:612, src/addons/onedrive.php:1168, src/includes/class-remote-send.php:395
161
  msgid "For longer help, including screenshots, follow this link."
162
  msgstr ""
163
 
164
- #: src/addons/azure.php:630
165
  msgid "%s Account Name"
166
  msgstr ""
167
 
168
- #: src/addons/azure.php:630, src/addons/azure.php:634, src/addons/azure.php:639, src/addons/azure.php:644
169
  msgid "Azure"
170
  msgstr ""
171
 
172
- #: src/addons/azure.php:631, src/addons/azure.php:631
173
  msgid "This is not your Azure login - see the instructions if needing more guidance."
174
  msgstr ""
175
 
176
- #: src/addons/azure.php:634
177
  msgid "%s Key"
178
  msgstr ""
179
 
180
- #: src/addons/azure.php:639
181
  msgid "%s Container"
182
  msgstr ""
183
 
184
- #: src/addons/azure.php:640
185
  msgid "Enter the path of the %s you wish to use here."
186
  msgstr ""
187
 
188
- #: src/addons/azure.php:640
189
  msgid "See Microsoft's guidelines on container naming by following this link."
190
  msgstr ""
191
 
192
- #: src/addons/azure.php:644
193
  msgid "%s Prefix"
194
  msgstr ""
195
 
196
- #: src/addons/azure.php:644
197
  msgid "optional"
198
  msgstr ""
199
 
200
- #: src/addons/azure.php:645
201
  msgid "You can enter the path of any %s virtual folder you wish to use here."
202
  msgstr ""
203
 
204
- #: src/addons/azure.php:645, src/addons/google-enhanced.php:77, src/addons/onedrive.php:1208
205
  msgid "If you leave it blank, then the backup will be placed in the root of your %s"
206
  msgstr ""
207
 
208
- #: src/addons/azure.php:645
209
  msgid "container"
210
  msgstr ""
211
 
212
- #: src/addons/azure.php:648
213
  msgid "Azure Account"
214
  msgstr ""
215
 
216
- #: src/addons/azure.php:651
217
  msgid "Azure Global"
218
  msgstr ""
219
 
220
- #: src/addons/azure.php:652
221
  msgid "Azure Germany"
222
  msgstr ""
223
 
224
- #: src/addons/azure.php:653
225
  msgid "Azure Government"
226
  msgstr ""
227
 
228
- #: src/addons/azure.php:654
229
  msgid "Azure China"
230
  msgstr ""
231
 
232
- #: src/addons/backblaze.php:202, src/admin.php:2211
233
  msgid "Error: unexpected file read fail"
234
  msgstr ""
235
 
236
- #: src/addons/backblaze.php:209, src/addons/backblaze.php:234, src/addons/cloudfiles-enhanced.php:122, src/addons/migrator.php:908, src/addons/migrator.php:1205, src/addons/migrator.php:1286, src/addons/migrator.php:1335, src/addons/migrator.php:1591, src/addons/s3-enhanced.php:161, src/addons/s3-enhanced.php:166, src/addons/s3-enhanced.php:168, src/addons/sftp.php:922, src/addons/webdav.php:204, src/admin.php:91, src/admin.php:825, src/includes/class-remote-send.php:325, src/includes/class-remote-send.php:371, src/includes/class-remote-send.php:377, src/includes/class-remote-send.php:442, src/includes/class-remote-send.php:500, src/includes/class-remote-send.php:527, src/includes/class-remote-send.php:555, src/includes/class-remote-send.php:565, src/includes/class-remote-send.php:570, src/includes/class-remote-send.php:582, src/methods/remotesend.php:74, src/methods/remotesend.php:252, src/methods/updraftvault.php:564, src/restorer.php:400, src/restorer.php:428, src/restorer.php:2057
237
  msgid "Error:"
238
  msgstr ""
239
 
240
- #: src/addons/backblaze.php:484
241
  msgid "Account ID"
242
  msgstr ""
243
 
244
- #: src/addons/backblaze.php:485
245
  msgid "Account Key"
246
  msgstr ""
247
 
248
- #: src/addons/backblaze.php:507
249
  msgid "Invalid bucket name"
250
  msgstr ""
251
 
252
- #: src/addons/backblaze.php:529, src/methods/s3.php:1199
253
  msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another %s user may already have taken your name)."
254
  msgstr ""
255
 
256
- #: src/addons/backblaze.php:613, src/methods/cloudfiles.php:232, src/methods/dropbox.php:354, src/methods/openstack-base.php:117
257
  msgid "No settings were found"
258
  msgstr ""
259
 
260
- #: src/addons/backblaze.php:661
261
  msgid "For help configuring %s, including screenshots, follow this link."
262
  msgstr ""
263
 
264
- #: src/addons/backblaze.php:682
265
  msgid "Master Application Key ID"
266
  msgstr ""
267
 
268
- #: src/addons/backblaze.php:684
269
  msgid "Get these settings from %s, or sign up %s."
270
  msgstr ""
271
 
272
- #: src/addons/backblaze.php:684, src/addons/backblaze.php:684
273
  msgid "here"
274
  msgstr ""
275
 
276
- #: src/addons/backblaze.php:689
277
  msgid "Application key"
278
  msgstr ""
279
 
280
- #: src/addons/backblaze.php:694
281
  msgid "Bucket application key ID"
282
  msgstr ""
283
 
284
- #: src/addons/backblaze.php:695, src/addons/backblaze.php:696
285
  msgid "This is needed if, and only if, your application key was a bucket-specific application key (not a master key)"
286
  msgstr ""
287
 
288
- #: src/addons/backblaze.php:701
289
  msgid "Backup path"
290
  msgstr ""
291
 
292
- #: src/addons/backblaze.php:702
293
  msgid "Bucket name"
294
  msgstr ""
295
 
296
- #: src/addons/backblaze.php:702
297
  msgid "some/path"
298
  msgstr ""
299
 
300
- #: src/addons/backblaze.php:703
301
  msgid "There are limits upon which path-names are valid. Spaces are not allowed."
302
  msgstr ""
303
 
@@ -309,11 +309,11 @@ msgstr ""
309
  msgid "Adds enhanced capabilities for Rackspace Cloud Files users"
310
  msgstr ""
311
 
312
- #: src/addons/cloudfiles-enhanced.php:44, src/methods/cloudfiles-new.php:113, src/methods/cloudfiles.php:461
313
  msgid "US (default)"
314
  msgstr ""
315
 
316
- #: src/addons/cloudfiles-enhanced.php:45, src/methods/cloudfiles-new.php:114, src/methods/cloudfiles.php:462
317
  msgid "UK"
318
  msgstr ""
319
 
@@ -365,71 +365,71 @@ msgstr ""
365
  msgid "You need to enter a valid new email address"
366
  msgstr ""
367
 
368
- #: src/addons/cloudfiles-enhanced.php:119, src/addons/cloudfiles-enhanced.php:132, src/addons/cloudfiles-enhanced.php:136, src/methods/cloudfiles.php:549, src/methods/cloudfiles.php:552, src/methods/cloudfiles.php:555
369
  msgid "Cloud Files authentication failed"
370
  msgstr ""
371
 
372
- #: src/addons/cloudfiles-enhanced.php:159, src/addons/s3-enhanced.php:237, src/methods/cloudfiles-new.php:37, src/methods/openstack-base.php:481, src/methods/openstack-base.php:483, src/methods/openstack-base.php:504, src/methods/openstack2.php:33
373
  msgid "Authorisation failed (check your credentials)"
374
  msgstr ""
375
 
376
- #: src/addons/cloudfiles-enhanced.php:161
377
  msgid "Conflict: that user or email address already exists"
378
  msgstr ""
379
 
380
- #: src/addons/cloudfiles-enhanced.php:163, src/addons/cloudfiles-enhanced.php:166, src/addons/cloudfiles-enhanced.php:170, src/addons/cloudfiles-enhanced.php:182, src/addons/cloudfiles-enhanced.php:189, src/addons/cloudfiles-enhanced.php:193
381
  msgid "Cloud Files operation failed (%s)"
382
  msgstr ""
383
 
384
- #: src/addons/cloudfiles-enhanced.php:204, src/addons/s3-enhanced.php:334
385
  msgid "Username: %s"
386
  msgstr ""
387
 
388
- #: src/addons/cloudfiles-enhanced.php:204
389
  msgid "Password: %s"
390
  msgstr ""
391
 
392
- #: src/addons/cloudfiles-enhanced.php:204
393
  msgid "API Key: %s"
394
  msgstr ""
395
 
396
- #: src/addons/cloudfiles-enhanced.php:272
397
  msgid "Create new API user and container"
398
  msgstr ""
399
 
400
- #: src/addons/cloudfiles-enhanced.php:275
401
  msgid "Enter your Rackspace admin username/API key (so that Rackspace can authenticate your permission to create new users), and enter a new (unique) username and email address for the new user and a container name."
402
  msgstr ""
403
 
404
- #: src/addons/cloudfiles-enhanced.php:283
405
  msgid "US or UK Rackspace Account"
406
  msgstr ""
407
 
408
- #: src/addons/cloudfiles-enhanced.php:284, src/methods/cloudfiles-new.php:110
409
  msgid "Accounts created at rackspacecloud.com are US accounts; accounts created at rackspace.co.uk are UK accounts."
410
  msgstr ""
411
 
412
- #: src/addons/cloudfiles-enhanced.php:288
413
  msgid "Admin Username"
414
  msgstr ""
415
 
416
- #: src/addons/cloudfiles-enhanced.php:291
417
  msgid "Admin API Key"
418
  msgstr ""
419
 
420
- #: src/addons/cloudfiles-enhanced.php:294
421
  msgid "New User's Username"
422
  msgstr ""
423
 
424
- #: src/addons/cloudfiles-enhanced.php:297
425
  msgid "New User's Email Address"
426
  msgstr ""
427
 
428
- #: src/addons/cloudfiles-enhanced.php:300, src/methods/cloudfiles-new.php:119
429
  msgid "Cloud Files Storage Region"
430
  msgstr ""
431
 
432
- #: src/addons/cloudfiles-enhanced.php:304, src/methods/cloudfiles-new.php:142, src/methods/cloudfiles.php:487
433
  msgid "Cloud Files Container"
434
  msgstr ""
435
 
@@ -437,55 +437,55 @@ msgstr ""
437
  msgid "Store at"
438
  msgstr ""
439
 
440
- #: src/addons/fixtime.php:306
441
  msgid "Add an additional database retention rule"
442
  msgstr ""
443
 
444
- #: src/addons/fixtime.php:306, src/addons/fixtime.php:311
445
  msgid "Add an additional retention rule..."
446
  msgstr ""
447
 
448
- #: src/addons/fixtime.php:311
449
  msgid "Add an additional file retention rule"
450
  msgstr ""
451
 
452
- #: src/addons/fixtime.php:448
453
  msgid "(at same time as files backup)"
454
  msgstr ""
455
 
456
- #: src/addons/fixtime.php:553
457
  msgid "Day to run backups"
458
  msgstr ""
459
 
460
- #: src/addons/fixtime.php:571
461
  msgid "starting from next time it is"
462
  msgstr ""
463
 
464
- #: src/addons/fixtime.php:571
465
  msgid "Start time"
466
  msgstr ""
467
 
468
- #: src/addons/fixtime.php:571
469
  msgid "Enter in format HH:MM (e.g. 14:22)."
470
  msgstr ""
471
 
472
- #: src/addons/fixtime.php:571
473
  msgid "The time zone used is that from your WordPress settings, in Settings -> General."
474
  msgstr ""
475
 
476
- #: src/addons/google-enhanced.php:75, src/methods/googledrive.php:285, src/methods/googledrive.php:287, src/methods/googledrive.php:558, src/methods/googledrive.php:600, src/methods/googledrive.php:643, src/methods/googledrive.php:650, src/methods/googledrive.php:662, src/methods/googledrive.php:678, src/methods/googledrive.php:680, src/methods/googledrive.php:1314, src/methods/googledrive.php:1321, src/methods/googledrive.php:1321, src/methods/googledrive.php:1354, src/methods/googledrive.php:1358, src/methods/googledrive.php:1369, src/methods/googledrive.php:1380
477
  msgid "Google Drive"
478
  msgstr ""
479
 
480
- #: src/addons/google-enhanced.php:75, src/methods/googledrive.php:1369, src/methods/googledrive.php:1380
481
  msgid "Folder"
482
  msgstr ""
483
 
484
- #: src/addons/google-enhanced.php:77, src/addons/onedrive.php:1208
485
  msgid "Enter the path of the %s folder you wish to use here."
486
  msgstr ""
487
 
488
- #: src/addons/google-enhanced.php:77, src/addons/googlecloud.php:1046, src/addons/onedrive.php:1208
489
  msgid "e.g. %s"
490
  msgstr ""
491
 
@@ -597,39 +597,39 @@ msgstr ""
597
  msgid "Frankfurt"
598
  msgstr ""
599
 
600
- #: src/addons/googlecloud.php:125, src/addons/googlecloud.php:800, src/methods/s3.php:1173
601
  msgid "Failure: No bucket details were given."
602
  msgstr ""
603
 
604
- #: src/addons/googlecloud.php:208, src/addons/googlecloud.php:213, src/methods/cloudfiles.php:128, src/methods/googledrive.php:1158, src/methods/googledrive.php:1163
605
  msgid "Error: Failed to open local file"
606
  msgstr ""
607
 
608
- #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:319, src/addons/googlecloud.php:339, src/addons/googlecloud.php:904, src/addons/googlecloud.php:954
609
  msgid "%s Service Exception."
610
  msgstr ""
611
 
612
- #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:319, src/addons/googlecloud.php:329, src/addons/googlecloud.php:339, src/addons/googlecloud.php:725, src/addons/googlecloud.php:904, src/addons/googlecloud.php:954, src/addons/googlecloud.php:998, src/addons/googlecloud.php:998, src/addons/googlecloud.php:1026, src/addons/googlecloud.php:1034, src/addons/googlecloud.php:1046
613
  msgid "Google Cloud"
614
  msgstr ""
615
 
616
- #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:339, src/addons/googlecloud.php:904, src/addons/googlecloud.php:954
617
  msgid "You do not have access to this bucket."
618
  msgstr ""
619
 
620
- #: src/addons/googlecloud.php:303, src/methods/googledrive.php:1283
621
  msgid "download: failed: file not found"
622
  msgstr ""
623
 
624
- #: src/addons/googlecloud.php:319
625
  msgid "You do not have access to this bucket"
626
  msgstr ""
627
 
628
- #: src/addons/googlecloud.php:329, src/addons/sftp.php:50, src/methods/addon-base-v2.php:74, src/methods/addon-base-v2.php:115, src/methods/addon-base-v2.php:157, src/methods/addon-base-v2.php:233, src/methods/addon-base-v2.php:322, src/methods/ftp.php:42, src/methods/googledrive.php:285, src/methods/googledrive.php:287, src/methods/stream-base.php:25, src/methods/stream-base.php:164, src/methods/stream-base.php:170, src/methods/stream-base.php:204, src/methods/stream-base.php:277
629
  msgid "No %s settings were found"
630
  msgstr ""
631
 
632
- #: src/addons/googlecloud.php:396
633
  msgid "Authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
634
  msgstr ""
635
 
@@ -637,7 +637,7 @@ msgstr ""
637
  msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
638
  msgstr ""
639
 
640
- #: src/addons/googlecloud.php:445, src/addons/migrator.php:590, src/admin.php:2394, src/admin.php:2415, src/admin.php:2423, src/class-updraftplus.php:1075, src/class-updraftplus.php:1081, src/class-updraftplus.php:4440, src/class-updraftplus.php:4442, src/class-updraftplus.php:4604, src/class-updraftplus.php:4611, src/class-updraftplus.php:4682, src/methods/googledrive.php:486, src/methods/s3.php:351
641
  msgid "Error: %s"
642
  msgstr ""
643
 
@@ -645,171 +645,171 @@ msgstr ""
645
  msgid "Authorization failed"
646
  msgstr ""
647
 
648
- #: src/addons/googlecloud.php:514, src/addons/googlecloud.php:515, src/addons/googlecloud.php:873, src/methods/googledrive.php:704, src/methods/googledrive.php:705, src/methods/googledrive.php:715, src/methods/googledrive.php:716
649
  msgid "Account is not authorized."
650
  msgstr ""
651
 
652
- #: src/addons/googlecloud.php:548
653
  msgid "Have not yet obtained an access token from Google - you need to authorize or re-authorize your connection to Google Cloud."
654
  msgstr ""
655
 
656
- #: src/addons/googlecloud.php:697
657
  msgid "But no bucket was defined, so backups may not complete. Please enter a bucket name in the %s settings and save settings."
658
  msgstr ""
659
 
660
- #: src/addons/googlecloud.php:699
661
  msgid "But no %s settings were found. Please complete all fields in %s settings and save the settings."
662
  msgstr ""
663
 
664
- #: src/addons/googlecloud.php:705, src/addons/onedrive.php:927, src/addons/onedrive.php:938, src/methods/googledrive.php:525, src/methods/googledrive.php:538
665
  msgid "However, subsequent access attempts failed:"
666
  msgstr ""
667
 
668
- #: src/addons/googlecloud.php:725, src/addons/googlecloud.php:846, src/addons/onedrive.php:959, src/addons/sftp.php:590, src/addons/sftp.php:594, src/addons/wp-cli.php:516, src/methods/addon-base-v2.php:362, src/methods/cloudfiles.php:570, src/methods/googledrive.php:558, src/methods/openstack-base.php:527, src/methods/s3.php:1213, src/methods/stream-base.php:371
669
  msgid "Success"
670
  msgstr ""
671
 
672
- #: src/addons/googlecloud.php:725, src/addons/onedrive.php:959, src/methods/googledrive.php:558
673
  msgid "you have authenticated your %s account."
674
  msgstr ""
675
 
676
- #: src/addons/googlecloud.php:725, src/methods/googledrive.php:558
677
  msgid "Name: %s."
678
  msgstr ""
679
 
680
- #: src/addons/googlecloud.php:766
681
  msgid "You must save and authenticate before you can test your settings."
682
  msgstr ""
683
 
684
- #: src/addons/googlecloud.php:783, src/addons/googlecloud.php:817, src/addons/googlecloud.php:823, src/addons/sftp.php:552, src/admin.php:3553, src/admin.php:3589, src/admin.php:3599, src/methods/addon-base-v2.php:348, src/methods/stream-base.php:355
685
  msgid "Failed"
686
  msgstr ""
687
 
688
- #: src/addons/googlecloud.php:840, src/addons/googlecloud.php:854, src/methods/s3.php:1211, src/methods/s3.php:1223
689
  msgid "Failure"
690
  msgstr ""
691
 
692
- #: src/addons/googlecloud.php:840, src/addons/googlecloud.php:854, src/methods/s3.php:1211, src/methods/s3.php:1223
693
  msgid "We successfully accessed the bucket, but the attempt to create a file in it failed."
694
  msgstr ""
695
 
696
- #: src/addons/googlecloud.php:846, src/methods/s3.php:1213
697
  msgid "We accessed the bucket, and were able to create files within it."
698
  msgstr ""
699
 
700
- #: src/addons/googlecloud.php:915
701
  msgid "You must enter a project ID in order to be able to create a new bucket."
702
  msgstr ""
703
 
704
- #: src/addons/googlecloud.php:991, src/methods/dropbox.php:566
705
  msgid "%s logo"
706
  msgstr ""
707
 
708
- #: src/addons/googlecloud.php:992
709
  msgid "Do not confuse %s with %s - they are separate things."
710
  msgstr ""
711
 
712
- #: src/addons/googlecloud.php:998
713
  msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
714
  msgstr ""
715
 
716
- #: src/addons/googlecloud.php:1002, src/methods/googledrive.php:1326
717
  msgid "For longer help, including screenshots, follow this link. The description below is sufficient for more expert users."
718
  msgstr ""
719
 
720
- #: src/addons/googlecloud.php:1004
721
  msgid "Follow this link to your Google API Console, and there activate the Storage API and create a Client ID in the API Access section."
722
  msgstr ""
723
 
724
- #: src/addons/googlecloud.php:1004, src/methods/googledrive.php:1328
725
  msgid "Select 'Web Application' as the application type."
726
  msgstr ""
727
 
728
- #: src/addons/googlecloud.php:1004
729
  msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
730
  msgstr ""
731
 
732
- #: src/addons/googlecloud.php:1026, src/addons/onedrive.php:1197, src/methods/googledrive.php:1354
733
  msgid "Client ID"
734
  msgstr ""
735
 
736
- #: src/addons/googlecloud.php:1028, src/addons/googlecloud.php:1029, src/methods/googledrive.php:1355
737
  msgid "If Google later shows you the message \"invalid_client\", then you did not enter a valid client ID here."
738
  msgstr ""
739
 
740
- #: src/addons/googlecloud.php:1034, src/addons/onedrive.php:1201, src/methods/googledrive.php:1358
741
  msgid "Client Secret"
742
  msgstr ""
743
 
744
- #: src/addons/googlecloud.php:1039
745
  msgid "Project ID"
746
  msgstr ""
747
 
748
- #: src/addons/googlecloud.php:1041
749
  msgid "Enter the ID of the %s project you wish to use here."
750
  msgstr ""
751
 
752
- #: src/addons/googlecloud.php:1041, src/addons/googlecloud.php:1041
753
  msgid "N.B. This is only needed if you have not already created the bucket, and you wish UpdraftPlus to create it for you."
754
  msgstr ""
755
 
756
- #: src/addons/googlecloud.php:1041, src/addons/googlecloud.php:1041
757
  msgid "Otherwise, you can leave it blank."
758
  msgstr ""
759
 
760
- #: src/addons/googlecloud.php:1041, src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499, src/admin.php:1193, src/admin.php:2633, src/backup.php:3310, src/class-updraftplus.php:4703, src/class-updraftplus.php:4703, src/updraftplus.php:157
761
  msgid "Go here for more information."
762
  msgstr ""
763
 
764
- #: src/addons/googlecloud.php:1045
765
  msgid "Bucket"
766
  msgstr ""
767
 
768
- #: src/addons/googlecloud.php:1046
769
  msgid "Enter the name of the %s bucket you wish to use here."
770
  msgstr ""
771
 
772
- #: src/addons/googlecloud.php:1046
773
  msgid "See Google's guidelines on bucket naming by following this link."
774
  msgstr ""
775
 
776
- #: src/addons/googlecloud.php:1046
777
  msgid "You must use a bucket name that is unique, for all %s users."
778
  msgstr ""
779
 
780
- #: src/addons/googlecloud.php:1049, src/addons/s3-enhanced.php:59
781
  msgid "Storage class"
782
  msgstr ""
783
 
784
- #: src/addons/googlecloud.php:1049, src/addons/s3-enhanced.php:59
785
  msgid "Read more about storage classes"
786
  msgstr ""
787
 
788
- #: src/addons/googlecloud.php:1049, src/addons/googlecloud.php:1062, src/addons/s3-enhanced.php:59, src/addons/s3-enhanced.php:69
789
  msgid "(Read more)"
790
  msgstr ""
791
 
792
- #: src/addons/googlecloud.php:1051, src/addons/googlecloud.php:1057, src/addons/googlecloud.php:1064, src/addons/googlecloud.php:1070
793
  msgid "This setting applies only when a new bucket is being created."
794
  msgstr ""
795
 
796
- #: src/addons/googlecloud.php:1051, src/addons/googlecloud.php:1057
797
  msgid "Note that Google do not support every storage class in every location - you should read their documentation to learn about current availability."
798
  msgstr ""
799
 
800
- #: src/addons/googlecloud.php:1062
801
  msgid "Bucket location"
802
  msgstr ""
803
 
804
- #: src/addons/googlecloud.php:1062
805
  msgid "Read more about bucket locations"
806
  msgstr ""
807
 
808
- #: src/addons/googlecloud.php:1081, src/methods/googledrive.php:1399
809
  msgid "<strong>(You appear to be already authenticated,</strong> though you can authenticate again to refresh your access if you've had a problem)."
810
  msgstr ""
811
 
812
- #: src/addons/googlecloud.php:1115, src/addons/onedrive.php:1268, src/methods/dropbox.php:657, src/methods/googledrive.php:1410
813
  msgid "Account holder's name: %s."
814
  msgstr ""
815
 
@@ -821,7 +821,7 @@ msgstr ""
821
  msgid "Supported backup plugins: %s"
822
  msgstr ""
823
 
824
- #: src/addons/importer.php:276, src/admin.php:4168, src/includes/class-backup-history.php:499
825
  msgid "Backup created by: %s."
826
  msgstr ""
827
 
@@ -845,43 +845,43 @@ msgstr ""
845
  msgid "No incremental backup of your files is possible, as no suitable existing backup was found to add increments to."
846
  msgstr ""
847
 
848
- #: src/addons/incremental.php:339, src/addons/reporting.php:261, src/admin.php:4100
849
  msgid "None"
850
  msgstr ""
851
 
852
- #: src/addons/incremental.php:340, src/admin.php:3809, src/updraftplus.php:99
853
  msgid "Every hour"
854
  msgstr ""
855
 
856
- #: src/addons/incremental.php:341, src/addons/incremental.php:342, src/addons/incremental.php:343, src/addons/incremental.php:344, src/admin.php:3810, src/admin.php:3811, src/admin.php:3812, src/admin.php:3813, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
857
  msgid "Every %s hours"
858
  msgstr ""
859
 
860
- #: src/addons/incremental.php:345, src/admin.php:3814
861
  msgid "Daily"
862
  msgstr ""
863
 
864
- #: src/addons/incremental.php:346, src/admin.php:3815
865
  msgid "Weekly"
866
  msgstr ""
867
 
868
- #: src/addons/incremental.php:347, src/admin.php:3816
869
  msgid "Fortnightly"
870
  msgstr ""
871
 
872
- #: src/addons/incremental.php:348, src/admin.php:3817
873
  msgid "Monthly"
874
  msgstr ""
875
 
876
- #: src/addons/incremental.php:362
877
  msgid "And then add an incremental backup"
878
  msgstr ""
879
 
880
- #: src/addons/incremental.php:374
881
  msgid "Tell me more about incremental backups"
882
  msgstr ""
883
 
884
- #: src/addons/incremental.php:374
885
  msgid "Tell me more"
886
  msgstr ""
887
 
@@ -905,7 +905,7 @@ msgstr ""
905
  msgid "Please make sure that you have made a note of the password!"
906
  msgstr ""
907
 
908
- #: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:458, src/addons/webdav.php:194, src/admin.php:978, src/admin.php:3028, src/methods/openstack2.php:164, src/methods/updraftvault.php:388, src/templates/wp-admin/settings/updraftcentral-connect.php:50
909
  msgid "Password"
910
  msgstr ""
911
 
@@ -977,369 +977,369 @@ msgstr ""
977
  msgid "Read this article to see step-by-step how it's done."
978
  msgstr ""
979
 
980
- #: src/addons/migrator.php:232, src/addons/migrator.php:1767, src/addons/migrator.php:1788
981
  msgid "back"
982
  msgstr ""
983
 
984
- #: src/addons/migrator.php:233
985
  msgid "Restore an existing backup set onto this site"
986
  msgstr ""
987
 
988
- #: src/addons/migrator.php:236
989
- msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
990
  msgstr ""
991
 
992
- #: src/addons/migrator.php:239
993
  msgid "This site has no backups to restore from yet."
994
  msgstr ""
995
 
996
- #: src/addons/migrator.php:274
997
  msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
998
  msgstr ""
999
 
1000
- #: src/addons/migrator.php:274, src/admin.php:664, src/admin.php:858, src/admin.php:4270
1001
  msgid "Restore"
1002
  msgstr ""
1003
 
1004
- #: src/addons/migrator.php:278
1005
  msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
1006
  msgstr ""
1007
 
1008
- #: src/addons/migrator.php:307
1009
  msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
1010
  msgstr ""
1011
 
1012
- #: src/addons/migrator.php:334, src/addons/migrator.php:379, src/templates/wp-admin/advanced/search-replace.php:7, src/templates/wp-admin/advanced/tools-menu.php:18
1013
  msgid "Search / replace database"
1014
  msgstr ""
1015
 
1016
- #: src/addons/migrator.php:335, src/addons/migrator.php:387
1017
  msgid "Search for"
1018
  msgstr ""
1019
 
1020
- #: src/addons/migrator.php:336, src/addons/migrator.php:388
1021
  msgid "Replace with"
1022
  msgstr ""
1023
 
1024
- #: src/addons/migrator.php:340, src/addons/moredatabase.php:89, src/addons/moredatabase.php:91, src/addons/moredatabase.php:93, src/addons/sftp.php:521, src/addons/sftp.php:525, src/addons/sftp.php:529, src/addons/webdav.php:254, src/admin.php:877, src/includes/class-remote-send.php:542, src/methods/addon-base-v2.php:340, src/methods/cloudfiles-new.php:179, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:514, src/methods/cloudfiles.php:519, src/methods/ftp.php:417, src/methods/ftp.php:421, src/methods/openstack2.php:180, src/methods/openstack2.php:185, src/methods/openstack2.php:190, src/methods/openstack2.php:195, src/methods/s3.php:1147, src/methods/s3.php:1151
1025
  msgid "Failure: No %s was given."
1026
  msgstr ""
1027
 
1028
- #: src/addons/migrator.php:340
1029
  msgid "search term"
1030
  msgstr ""
1031
 
1032
- #: src/addons/migrator.php:343, src/addons/migrator.php:358
1033
  msgid "Return to UpdraftPlus Configuration"
1034
  msgstr ""
1035
 
1036
- #: src/addons/migrator.php:380
1037
  msgid "This can easily destroy your site; so, use it with care!"
1038
  msgstr ""
1039
 
1040
- #: src/addons/migrator.php:381
1041
  msgid "A search/replace cannot be undone - are you sure you want to do this?"
1042
  msgstr ""
1043
 
1044
- #: src/addons/migrator.php:389
1045
  msgid "Rows per batch"
1046
  msgstr ""
1047
 
1048
- #: src/addons/migrator.php:390
1049
  msgid "These tables only"
1050
  msgstr ""
1051
 
1052
- #: src/addons/migrator.php:390
1053
  msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
1054
  msgstr ""
1055
 
1056
- #: src/addons/migrator.php:392
1057
  msgid "Go"
1058
  msgstr ""
1059
 
1060
- #: src/addons/migrator.php:409
1061
  msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
1062
  msgstr ""
1063
 
1064
- #: src/addons/migrator.php:420
1065
  msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use below search and replace to search/replace the site address so that the site can be visited without https."
1066
  msgstr ""
1067
 
1068
- #: src/addons/migrator.php:431
1069
  msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use below search and replace so that the non-https links are automatically replaced."
1070
  msgstr ""
1071
 
1072
- #: src/addons/migrator.php:442
1073
  msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
1074
  msgstr ""
1075
 
1076
- #: src/addons/migrator.php:447
1077
  msgid "Processed plugin:"
1078
  msgstr ""
1079
 
1080
- #: src/addons/migrator.php:457
1081
  msgid "Network activating theme:"
1082
  msgstr ""
1083
 
1084
- #: src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499
1085
  msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
1086
  msgstr ""
1087
 
1088
- #: src/addons/migrator.php:493
1089
  msgid "WordPress core"
1090
  msgstr ""
1091
 
1092
- #: src/addons/migrator.php:496
1093
  msgid "other content from wp-content"
1094
  msgstr ""
1095
 
1096
- #: src/addons/migrator.php:499, src/addons/multisite.php:694
1097
  msgid "Must-use plugins"
1098
  msgstr ""
1099
 
1100
- #: src/addons/migrator.php:504, src/addons/migrator.php:506
1101
  msgid "Importing a single site into a multisite install"
1102
  msgstr ""
1103
 
1104
- #: src/addons/migrator.php:504, src/templates/wp-admin/settings/downloading-and-restoring.php:72, src/templates/wp-admin/settings/form-contents.php:183, src/templates/wp-admin/settings/tab-backups.php:74
1105
  msgid "This feature requires %s version %s or later"
1106
  msgstr ""
1107
 
1108
- #: src/addons/migrator.php:506
1109
  msgid "This feature is not compatible with %s"
1110
  msgstr ""
1111
 
1112
- #: src/addons/migrator.php:512
1113
  msgid "Information needed to continue:"
1114
  msgstr ""
1115
 
1116
- #: src/addons/migrator.php:513
1117
  msgid "Enter details for where this new site is to live within your multisite install:"
1118
  msgstr ""
1119
 
1120
- #: src/addons/migrator.php:518, src/addons/migrator.php:520
1121
  msgid "You must use lower-case letters or numbers for the site path, only."
1122
  msgstr ""
1123
 
1124
- #: src/addons/migrator.php:528
1125
  msgid "Attribute imported content to user"
1126
  msgstr ""
1127
 
1128
- #: src/addons/migrator.php:564
1129
  msgid "Database restoration options:"
1130
  msgstr ""
1131
 
1132
- #: src/addons/migrator.php:565
1133
  msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
1134
  msgstr ""
1135
 
1136
- #: src/addons/migrator.php:565
1137
  msgid "Search and replace site location in the database (migrate)"
1138
  msgstr ""
1139
 
1140
- #: src/addons/migrator.php:573
1141
  msgid "Migrated site (from UpdraftPlus)"
1142
  msgstr ""
1143
 
1144
- #: src/addons/migrator.php:576
1145
  msgid "Required information for restoring this backup was not given (%s)"
1146
  msgstr ""
1147
 
1148
- #: src/addons/migrator.php:598
1149
  msgid "New site:"
1150
  msgstr ""
1151
 
1152
- #: src/addons/migrator.php:634, src/addons/migrator.php:635
1153
  msgid "Error when creating new site at your chosen address:"
1154
  msgstr ""
1155
 
1156
- #: src/addons/migrator.php:921, src/addons/migrator.php:1300
1157
  msgid "Failed: the %s operation was not able to start."
1158
  msgstr ""
1159
 
1160
- #: src/addons/migrator.php:921, src/addons/migrator.php:923
1161
  msgid "search and replace"
1162
  msgstr ""
1163
 
1164
- #: src/addons/migrator.php:923, src/addons/migrator.php:1302
1165
  msgid "Failed: we did not understand the result returned by the %s operation."
1166
  msgstr ""
1167
 
1168
- #: src/addons/migrator.php:963
1169
  msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
1170
  msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
1171
  msgstr[0] ""
1172
  msgstr[1] ""
1173
 
1174
- #: src/addons/migrator.php:1063
1175
  msgid "Database: search and replace site URL"
1176
  msgstr ""
1177
 
1178
- #: src/addons/migrator.php:1103, src/addons/migrator.php:1107, src/addons/migrator.php:1111, src/addons/migrator.php:1116, src/addons/migrator.php:1120, src/addons/migrator.php:1125
1179
  msgid "Error: unexpected empty parameter (%s, %s)"
1180
  msgstr ""
1181
 
1182
- #: src/addons/migrator.php:1139
1183
  msgid "Nothing to do: the site URL is already: %s"
1184
  msgstr ""
1185
 
1186
- #: src/addons/migrator.php:1150
1187
  msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
1188
  msgstr ""
1189
 
1190
- #: src/addons/migrator.php:1158
1191
  msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
1192
  msgstr ""
1193
 
1194
- #: src/addons/migrator.php:1205
1195
  msgid "Could not get list of tables"
1196
  msgstr ""
1197
 
1198
- #: src/addons/migrator.php:1227, src/addons/migrator.php:1270, src/addons/migrator.php:1404
1199
  msgid "Search and replacing table:"
1200
  msgstr ""
1201
 
1202
- #: src/addons/migrator.php:1227
1203
  msgid "skipped (not in list)"
1204
  msgstr ""
1205
 
1206
- #: src/addons/migrator.php:1270
1207
  msgid "already done"
1208
  msgstr ""
1209
 
1210
- #: src/addons/migrator.php:1316
1211
  msgid "Tables examined:"
1212
  msgstr ""
1213
 
1214
- #: src/addons/migrator.php:1317
1215
  msgid "Rows examined:"
1216
  msgstr ""
1217
 
1218
- #: src/addons/migrator.php:1318
1219
  msgid "Changes made:"
1220
  msgstr ""
1221
 
1222
- #: src/addons/migrator.php:1319
1223
  msgid "SQL update commands run:"
1224
  msgstr ""
1225
 
1226
- #: src/addons/migrator.php:1320, src/admin.php:822
1227
  msgid "Errors:"
1228
  msgstr ""
1229
 
1230
- #: src/addons/migrator.php:1321
1231
  msgid "Time taken (seconds):"
1232
  msgstr ""
1233
 
1234
- #: src/addons/migrator.php:1335, src/restorer.php:3075
1235
  msgid "the database query being run was:"
1236
  msgstr ""
1237
 
1238
- #: src/addons/migrator.php:1447
1239
  msgid "rows: %d"
1240
  msgstr ""
1241
 
1242
- #: src/addons/migrator.php:1549, src/backup.php:470, src/backup.php:2008, src/class-updraftplus.php:2275, src/class-updraftplus.php:2342, src/includes/class-storage-methods-interface.php:366, src/restorer.php:563
1243
  msgid "A PHP exception (%s) has occurred: %s"
1244
  msgstr ""
1245
 
1246
- #: src/addons/migrator.php:1556, src/backup.php:476, src/backup.php:2017, src/class-updraftplus.php:2284, src/class-updraftplus.php:2349, src/includes/class-storage-methods-interface.php:375, src/restorer.php:577
1247
  msgid "A PHP fatal error (%s) has occurred: %s"
1248
  msgstr ""
1249
 
1250
- #: src/addons/migrator.php:1591
1251
  msgid "\"%s\" has no primary key, manual change needed on row %s."
1252
  msgstr ""
1253
 
1254
- #: src/addons/migrator.php:1768
1255
  msgid "Send a backup to another site"
1256
  msgstr ""
1257
 
1258
- #: src/addons/migrator.php:1772
1259
  msgid "Add a site"
1260
  msgstr ""
1261
 
1262
- #: src/addons/migrator.php:1777
1263
  msgid "To add a site as a destination for sending to, enter that site's key below."
1264
  msgstr ""
1265
 
1266
- #: src/addons/migrator.php:1777
1267
  msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
1268
  msgstr ""
1269
 
1270
- #: src/addons/migrator.php:1777
1271
  msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
1272
  msgstr ""
1273
 
1274
- #: src/addons/migrator.php:1777
1275
  msgid "How do I get a site's key?"
1276
  msgstr ""
1277
 
1278
- #: src/addons/migrator.php:1781
1279
  msgid "Site key"
1280
  msgstr ""
1281
 
1282
- #: src/addons/migrator.php:1781
1283
  msgid "Paste key here"
1284
  msgstr ""
1285
 
1286
- #: src/addons/migrator.php:1781, src/admin.php:870
1287
  msgid "Add site"
1288
  msgstr ""
1289
 
1290
- #: src/addons/migrator.php:1789
1291
  msgid "Receive a backup from a remote site"
1292
  msgstr ""
1293
 
1294
- #: src/addons/migrator.php:1791
1295
  msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
1296
  msgstr ""
1297
 
1298
- #: src/addons/migrator.php:1793
1299
  msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
1300
  msgstr ""
1301
 
1302
- #: src/addons/migrator.php:1794
1303
  msgid "Enter your chosen name"
1304
  msgstr ""
1305
 
1306
- #: src/addons/migrator.php:1794, src/addons/sftp.php:466, src/admin.php:876, src/admin.php:5431, src/templates/wp-admin/settings/temporary-clone.php:63
1307
  msgid "Key"
1308
  msgstr ""
1309
 
1310
- #: src/addons/migrator.php:1796, src/central/bootstrap.php:559
1311
  msgid "Encryption key size:"
1312
  msgstr ""
1313
 
1314
- #: src/addons/migrator.php:1798, src/addons/migrator.php:1799, src/addons/migrator.php:1801, src/central/bootstrap.php:561, src/central/bootstrap.php:562, src/central/bootstrap.php:564
1315
  msgid "%s bits"
1316
  msgstr ""
1317
 
1318
- #: src/addons/migrator.php:1798, src/central/bootstrap.php:561
1319
  msgid "easy to break, fastest"
1320
  msgstr ""
1321
 
1322
- #: src/addons/migrator.php:1799, src/central/bootstrap.php:562
1323
  msgid "faster (possibility for slow PHP installs)"
1324
  msgstr ""
1325
 
1326
- #: src/addons/migrator.php:1800, src/central/bootstrap.php:563
1327
  msgid "%s bytes"
1328
  msgstr ""
1329
 
1330
- #: src/addons/migrator.php:1800, src/central/bootstrap.php:563
1331
  msgid "recommended"
1332
  msgstr ""
1333
 
1334
- #: src/addons/migrator.php:1801, src/central/bootstrap.php:564
1335
  msgid "slower, strongest"
1336
  msgstr ""
1337
 
1338
- #: src/addons/migrator.php:1804
1339
  msgid "Create key"
1340
  msgstr ""
1341
 
1342
- #: src/addons/migrator.php:1809
1343
  msgid "Your new key:"
1344
  msgstr ""
1345
 
@@ -1375,7 +1375,7 @@ msgstr ""
1375
  msgid "%s total table(s) found; %s with the indicated prefix."
1376
  msgstr ""
1377
 
1378
- #: src/addons/moredatabase.php:144, src/admin.php:1690
1379
  msgid "Messages:"
1380
  msgstr ""
1381
 
@@ -1427,7 +1427,7 @@ msgstr ""
1427
  msgid "Enter username."
1428
  msgstr ""
1429
 
1430
- #: src/addons/moredatabase.php:240, src/addons/sftp.php:451, src/addons/webdav.php:188, src/admin.php:977, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519, src/methods/openstack2.php:158
1431
  msgid "Username"
1432
  msgstr ""
1433
 
@@ -1447,7 +1447,7 @@ msgstr ""
1447
  msgid "Enter database."
1448
  msgstr ""
1449
 
1450
- #: src/addons/moredatabase.php:242, src/addons/reporting.php:276, src/addons/wp-cli.php:432, src/admin.php:357, src/admin.php:4075, src/admin.php:4128, src/admin.php:4706, src/includes/class-remote-send.php:411, src/includes/class-wpadmin-commands.php:156, src/includes/class-wpadmin-commands.php:596, src/restorer.php:540, src/templates/wp-admin/settings/delete-and-restore-modals.php:81, src/templates/wp-admin/settings/delete-and-restore-modals.php:82, src/templates/wp-admin/settings/take-backup.php:34
1451
  msgid "Database"
1452
  msgstr ""
1453
 
@@ -1491,19 +1491,19 @@ msgstr ""
1491
  msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
1492
  msgstr ""
1493
 
1494
- #: src/addons/moredatabase.php:388
1495
  msgid "Encryption error occurred when encrypting database. Encryption aborted."
1496
  msgstr ""
1497
 
1498
- #: src/addons/moredatabase.php:406
1499
  msgid "You should backup all tables unless you are an expert in the internals of the WordPress database."
1500
  msgstr ""
1501
 
1502
- #: src/addons/moredatabase.php:413
1503
  msgid "WordPress database"
1504
  msgstr ""
1505
 
1506
- #: src/addons/moredatabase.php:414
1507
  msgid "tables"
1508
  msgstr ""
1509
 
@@ -1511,7 +1511,7 @@ msgstr ""
1511
  msgid "(None configured)"
1512
  msgstr ""
1513
 
1514
- #: src/addons/morefiles.php:85, src/admin.php:885
1515
  msgctxt "(verb)"
1516
  msgid "Download"
1517
  msgstr ""
@@ -1592,7 +1592,7 @@ msgstr ""
1592
  msgid "Exclude these:"
1593
  msgstr ""
1594
 
1595
- #: src/addons/morefiles.php:347, src/admin.php:3929
1596
  msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
1597
  msgstr ""
1598
 
@@ -1628,7 +1628,7 @@ msgstr ""
1628
  msgid "Go up a directory"
1629
  msgstr ""
1630
 
1631
- #: src/addons/morefiles.php:875, src/admin.php:851, src/templates/wp-admin/settings/delete-and-restore-modals.php:94
1632
  msgid "Cancel"
1633
  msgstr ""
1634
 
@@ -1644,11 +1644,11 @@ msgstr ""
1644
  msgid "(as many as you like)"
1645
  msgstr ""
1646
 
1647
- #: src/addons/morestorage.php:81, src/admin.php:931
1648
  msgid "Currently enabled"
1649
  msgstr ""
1650
 
1651
- #: src/addons/morestorage.php:81, src/admin.php:932
1652
  msgid "Currently disabled"
1653
  msgstr ""
1654
 
@@ -1668,7 +1668,7 @@ msgstr ""
1668
  msgid "(Nothing has been logged yet)"
1669
  msgstr ""
1670
 
1671
- #: src/addons/multisite.php:96, src/addons/multisite.php:738, src/options.php:74
1672
  msgid "UpdraftPlus Backups"
1673
  msgstr ""
1674
 
@@ -1676,27 +1676,27 @@ msgstr ""
1676
  msgid "Multisite Install"
1677
  msgstr ""
1678
 
1679
- #: src/addons/multisite.php:502, src/class-updraftplus.php:1897
1680
  msgid "Uploads"
1681
  msgstr ""
1682
 
1683
- #: src/addons/multisite.php:603
1684
  msgid "Which site to restore"
1685
  msgstr ""
1686
 
1687
- #: src/addons/multisite.php:607
1688
  msgid "All sites"
1689
  msgstr ""
1690
 
1691
- #: src/addons/multisite.php:612
1692
  msgid "may include some site-wide data"
1693
  msgstr ""
1694
 
1695
- #: src/addons/multisite.php:621
1696
  msgid "Read more..."
1697
  msgstr ""
1698
 
1699
- #: src/addons/multisite.php:701
1700
  msgid "Blog uploads"
1701
  msgstr ""
1702
 
@@ -1708,123 +1708,123 @@ msgstr ""
1708
  msgid "Account full: your %s account has only %d bytes left, but the file to be uploaded has %d bytes remaining (total size: %d bytes)"
1709
  msgstr ""
1710
 
1711
- #: src/addons/onedrive.php:463
1712
  msgid "%s download: failed: file not found"
1713
  msgstr ""
1714
 
1715
- #: src/addons/onedrive.php:703, src/udaddons/updraftplus-addons.php:1000
1716
  msgid "An error response was received; HTTP code:"
1717
  msgstr ""
1718
 
1719
- #: src/addons/onedrive.php:716, src/addons/onedrive.php:736, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1013, src/udaddons/updraftplus-addons.php:1026
1720
  msgid "This most likely means that you share a webserver with a hacked website that has been used in previous attacks."
1721
  msgstr ""
1722
 
1723
- #: src/addons/onedrive.php:716, src/udaddons/updraftplus-addons.php:1013, src/udaddons/updraftplus-addons.php:1026
1724
  msgid "To remove any block, please go here."
1725
  msgstr ""
1726
 
1727
- #: src/addons/onedrive.php:716, src/udaddons/updraftplus-addons.php:1013
1728
  msgid "Your IP address:"
1729
  msgstr ""
1730
 
1731
- #: src/addons/onedrive.php:736, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1026
1732
  msgid "UpdraftPlus.com has responded with 'Access Denied'."
1733
  msgstr ""
1734
 
1735
- #: src/addons/onedrive.php:736, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1026
1736
  msgid "It appears that your web server's IP Address (%s) is blocked."
1737
  msgstr ""
1738
 
1739
- #: src/addons/onedrive.php:736, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717
1740
  msgid "To remove the block, please go here."
1741
  msgstr ""
1742
 
1743
- #: src/addons/onedrive.php:743
1744
  msgid "Please re-authorize the connection to your %s account."
1745
  msgstr ""
1746
 
1747
- #: src/addons/onedrive.php:752
1748
  msgid "Account is not authorized (%s)."
1749
  msgstr ""
1750
 
1751
- #: src/addons/onedrive.php:884, src/class-updraftplus.php:542, src/methods/dropbox.php:238, src/methods/dropbox.php:741, src/methods/dropbox.php:762, src/methods/dropbox.php:776, src/methods/dropbox.php:789, src/methods/dropbox.php:931
1752
  msgid "%s error: %s"
1753
  msgstr ""
1754
 
1755
- #: src/addons/onedrive.php:884
1756
  msgid "Authentication"
1757
  msgstr ""
1758
 
1759
- #: src/addons/onedrive.php:913, src/methods/dropbox.php:830, src/methods/dropbox.php:839, src/methods/googledrive.php:522
1760
  msgid "Your %s quota usage: %s %% used, %s available"
1761
  msgstr ""
1762
 
1763
- #: src/addons/onedrive.php:921, src/methods/dropbox.php:807
1764
  msgid "Your %s account name: %s"
1765
  msgstr ""
1766
 
1767
- #: src/addons/onedrive.php:959, src/addons/onedrive.php:1197, src/addons/onedrive.php:1201
1768
  msgid "OneDrive"
1769
  msgstr ""
1770
 
1771
- #: src/addons/onedrive.php:1057, src/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php:118
1772
  msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
1773
  msgstr ""
1774
 
1775
- #: src/addons/onedrive.php:1116, src/addons/onedrive.php:1118
1776
  msgid "authorization failed:"
1777
  msgstr ""
1778
 
1779
- #: src/addons/onedrive.php:1145
1780
  msgid "This site uses a URL which is either non-HTTPS, or is localhost or 127.0.0.1 URL. As such, you must use the main %s %s App to authenticate with your account."
1781
  msgstr ""
1782
 
1783
- #: src/addons/onedrive.php:1153
1784
  msgid "You must add the following as the authorized redirect URI in your OneDrive console (under \"API Settings\") when asked"
1785
  msgstr ""
1786
 
1787
- #: src/addons/onedrive.php:1161
1788
  msgid "Create OneDrive credentials in your OneDrive developer console."
1789
  msgstr ""
1790
 
1791
- #: src/addons/onedrive.php:1177, src/methods/dropbox.php:575, src/methods/googledrive.php:1335
1792
  msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
1793
  msgstr ""
1794
 
1795
- #: src/addons/onedrive.php:1177, src/methods/dropbox.php:575, src/methods/googledrive.php:1335
1796
  msgid "this privacy policy"
1797
  msgstr ""
1798
 
1799
- #: src/addons/onedrive.php:1198
1800
  msgid "If OneDrive later shows you the message \"unauthorized_client\", then you did not enter a valid client ID here."
1801
  msgstr ""
1802
 
1803
- #: src/addons/onedrive.php:1206, src/restorer.php:1351
1804
  msgid "folder"
1805
  msgstr ""
1806
 
1807
- #: src/addons/onedrive.php:1208
1808
  msgid "N.B. %s is not case-sensitive."
1809
  msgstr ""
1810
 
1811
- #: src/addons/onedrive.php:1213
1812
  msgid "Account type"
1813
  msgstr ""
1814
 
1815
- #: src/addons/onedrive.php:1216
1816
  msgid "OneDrive International"
1817
  msgstr ""
1818
 
1819
- #: src/addons/onedrive.php:1217
1820
  msgid "OneDrive Germany"
1821
  msgstr ""
1822
 
1823
- #: src/addons/onedrive.php:1225, src/methods/dropbox.php:600
1824
  msgid "Authenticate with %s"
1825
  msgstr ""
1826
 
1827
- #: src/addons/onedrive.php:1232, src/methods/dropbox.php:604
1828
  msgid "(You appear to be already authenticated)."
1829
  msgstr ""
1830
 
@@ -1832,7 +1832,7 @@ msgstr ""
1832
  msgid "Your label for this backup (optional)"
1833
  msgstr ""
1834
 
1835
- #: src/addons/reporting.php:86, src/addons/reporting.php:197, src/class-updraftplus.php:3449, src/class-updraftplus.php:4520
1836
  msgid "Backup of:"
1837
  msgstr ""
1838
 
@@ -1852,7 +1852,7 @@ msgstr ""
1852
  msgid "Backup made by %s"
1853
  msgstr ""
1854
 
1855
- #: src/addons/reporting.php:198, src/class-updraftplus.php:3452
1856
  msgid "Latest status:"
1857
  msgstr ""
1858
 
@@ -1880,11 +1880,11 @@ msgstr ""
1880
  msgid "Time taken:"
1881
  msgstr ""
1882
 
1883
- #: src/addons/reporting.php:239, src/admin.php:4088
1884
  msgid "Uploaded to:"
1885
  msgstr ""
1886
 
1887
- #: src/addons/reporting.php:281, src/class-updraftplus.php:3402
1888
  msgid "The log file has been attached to this email."
1889
  msgstr ""
1890
 
@@ -1916,11 +1916,11 @@ msgstr ""
1916
  msgid "Log all messages to syslog (only server admins are likely to want this)"
1917
  msgstr ""
1918
 
1919
- #: src/addons/reporting.php:539, src/admin.php:806
1920
  msgid "To send to more than one address, separate each address with a comma."
1921
  msgstr ""
1922
 
1923
- #: src/addons/reporting.php:541, src/admin.php:800
1924
  msgid "Send a report only when there are warnings/errors"
1925
  msgstr ""
1926
 
@@ -1928,7 +1928,7 @@ msgstr ""
1928
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1929
  msgstr ""
1930
 
1931
- #: src/addons/reporting.php:543, src/admin.php:801
1932
  msgid "When the Email storage method is enabled, also send the backup"
1933
  msgstr ""
1934
 
@@ -1940,7 +1940,7 @@ msgstr ""
1940
  msgid "Use this option to only send database backups when sending to email, and skip other components."
1941
  msgstr ""
1942
 
1943
- #: src/addons/reporting.php:545, src/admin.php:804
1944
  msgid "Only email the database backup"
1945
  msgstr ""
1946
 
@@ -1992,7 +1992,7 @@ msgstr ""
1992
  msgid "AWS authentication failed"
1993
  msgstr ""
1994
 
1995
- #: src/addons/s3-enhanced.php:185, src/methods/openstack2.php:150, src/methods/s3.php:1193
1996
  msgid "Region"
1997
  msgstr ""
1998
 
@@ -2000,7 +2000,7 @@ msgstr ""
2000
  msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another AWS user may already have taken your name)."
2001
  msgstr ""
2002
 
2003
- #: src/addons/s3-enhanced.php:212, src/methods/s3.php:1201
2004
  msgid "The error reported by %s was:"
2005
  msgstr ""
2006
 
@@ -2337,11 +2337,11 @@ msgstr ""
2337
  msgid "No previous backup found to add an increment to."
2338
  msgstr ""
2339
 
2340
- #: src/addons/wp-cli.php:110, src/admin.php:809
2341
  msgid "You have chosen to backup a database, but no tables have been selected"
2342
  msgstr ""
2343
 
2344
- #: src/addons/wp-cli.php:116, src/admin.php:807
2345
  msgid "If you exclude both the database and the files, then you have excluded everything!"
2346
  msgstr ""
2347
 
@@ -2357,11 +2357,11 @@ msgstr ""
2357
  msgid "Invalid Job Id"
2358
  msgstr ""
2359
 
2360
- #: src/addons/wp-cli.php:372, src/templates/wp-admin/settings/existing-backups-table.php:99
2361
  msgid "Backup sent to remote site - not available for download."
2362
  msgstr ""
2363
 
2364
- #: src/addons/wp-cli.php:374, src/templates/wp-admin/settings/existing-backups-table.php:100
2365
  msgid "Site"
2366
  msgstr ""
2367
 
@@ -2373,27 +2373,27 @@ msgstr ""
2373
  msgid "Latest full backup found; identifier:"
2374
  msgstr ""
2375
 
2376
- #: src/addons/wp-cli.php:430, src/admin.php:4122, src/admin.php:4170
2377
  msgid "unknown source"
2378
  msgstr ""
2379
 
2380
- #: src/addons/wp-cli.php:432, src/admin.php:4128
2381
  msgid "Database (created by %s)"
2382
  msgstr ""
2383
 
2384
- #: src/addons/wp-cli.php:438, src/admin.php:4130
2385
  msgid "External database"
2386
  msgstr ""
2387
 
2388
- #: src/addons/wp-cli.php:450, src/admin.php:4174
2389
  msgid "Files and database WordPress backup (created by %s)"
2390
  msgstr ""
2391
 
2392
- #: src/addons/wp-cli.php:450, src/admin.php:4174
2393
  msgid "Files backup (created by %s)"
2394
  msgstr ""
2395
 
2396
- #: src/addons/wp-cli.php:519, src/admin.php:826, src/class-updraftplus.php:1415, src/class-updraftplus.php:1459, src/includes/class-filesystem-functions.php:420, src/includes/class-storage-methods-interface.php:326, src/methods/addon-base-v2.php:93, src/methods/addon-base-v2.php:98, src/methods/addon-base-v2.php:243, src/methods/addon-base-v2.php:263, src/methods/googledrive.php:1243, src/methods/stream-base.php:220, src/restorer.php:3259, src/restorer.php:3284, src/restorer.php:3365, src/udaddons/options.php:225, src/updraftplus.php:157
2397
  msgid "Error"
2398
  msgstr ""
2399
 
@@ -2417,7 +2417,7 @@ msgstr ""
2417
  msgid "UpdraftPlus Restoration: Progress"
2418
  msgstr ""
2419
 
2420
- #: src/addons/wp-cli.php:667, src/admin.php:4713
2421
  msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
2422
  msgstr ""
2423
 
@@ -2445,1426 +2445,1474 @@ msgstr ""
2445
  msgid "There are no incremental backup restore points available."
2446
  msgstr ""
2447
 
2448
- #: src/admin.php:91
2449
  msgid "template not found"
2450
  msgstr ""
2451
 
2452
- #: src/admin.php:316, src/admin.php:337, src/admin.php:344, src/admin.php:389, src/admin.php:420
2453
  msgid "Nothing currently scheduled"
2454
  msgstr ""
2455
 
2456
- #: src/admin.php:326
2457
  msgid "At the same time as the files backup"
2458
  msgstr ""
2459
 
2460
- #: src/admin.php:347, src/admin.php:5400, src/templates/wp-admin/settings/take-backup.php:24
2461
  msgid "Files"
2462
  msgstr ""
2463
 
2464
- #: src/admin.php:347, src/class-updraftplus.php:3356
2465
  msgid "Files and database"
2466
  msgstr ""
2467
 
2468
- #: src/admin.php:503
2469
  msgid "UpdraftPlus"
2470
  msgstr ""
2471
 
2472
- #: src/admin.php:504
2473
  msgid "UpdraftPlus News"
2474
  msgstr ""
2475
 
2476
- #: src/admin.php:505
2477
  msgid "Dismiss all UpdraftPlus news"
2478
  msgstr ""
2479
 
2480
- #: src/admin.php:506
2481
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
2482
  msgstr ""
2483
 
2484
- #: src/admin.php:577
2485
  msgid "You can test upgrading your site on an instant copy using UpdraftClone credits"
2486
  msgstr ""
2487
 
2488
- #: src/admin.php:577
2489
  msgid "go here to learn more"
2490
  msgstr ""
2491
 
2492
- #: src/admin.php:577
2493
  msgid "dismiss notice"
2494
  msgstr ""
2495
 
2496
- #: src/admin.php:589
2497
  msgid "You can test running your site on a different PHP (or WordPress) version using UpdraftClone credits."
2498
  msgstr ""
2499
 
2500
- #: src/admin.php:589
2501
  msgid "Dismiss notice"
2502
  msgstr ""
2503
 
2504
- #: src/admin.php:664, src/admin.php:4690
2505
  msgid "Backup"
2506
  msgstr ""
2507
 
2508
- #: src/admin.php:672, src/admin.php:2836
2509
  msgid "Migrate / Clone"
2510
  msgstr ""
2511
 
2512
- #: src/admin.php:680, src/admin.php:1125, src/admin.php:2837
2513
  msgid "Settings"
2514
  msgstr ""
2515
 
2516
- #: src/admin.php:688, src/admin.php:2838
2517
  msgid "Advanced Tools"
2518
  msgstr ""
2519
 
2520
- #: src/admin.php:696
2521
  msgid "Extensions"
2522
  msgstr ""
2523
 
2524
- #: src/admin.php:802
2525
  msgid "Be aware that mail servers tend to have size limits; typically around %s Mb; backups larger than any limits will likely not arrive."
2526
  msgstr ""
2527
 
2528
- #: src/admin.php:803
2529
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
2530
  msgstr ""
2531
 
2532
- #: src/admin.php:805
2533
  msgid "Rescanning remote and local storage for backup sets..."
2534
  msgstr ""
2535
 
2536
- #: src/admin.php:808
2537
  msgid "You have chosen to backup files, but no file entities have been selected"
2538
  msgstr ""
2539
 
2540
- #: src/admin.php:810
2541
  msgid "The restore operation has begun. Do not close your browser until it reports itself as having finished."
2542
  msgstr ""
2543
 
2544
- #: src/admin.php:812
2545
  msgid "The web server returned an error code (try again, or check your web server logs)"
2546
  msgstr ""
2547
 
2548
- #: src/admin.php:813
2549
  msgid "The new user's RackSpace console password is (this will not be shown again):"
2550
  msgstr ""
2551
 
2552
- #: src/admin.php:814
2553
  msgid "Trying..."
2554
  msgstr ""
2555
 
2556
- #: src/admin.php:815
2557
  msgid "Fetching..."
2558
  msgstr ""
2559
 
2560
- #: src/admin.php:816
2561
  msgid "calculating..."
2562
  msgstr ""
2563
 
2564
- #: src/admin.php:817
2565
  msgid "Begun looking for this entity"
2566
  msgstr ""
2567
 
2568
- #: src/admin.php:818
2569
  msgid "Some files are still downloading or being processed - please wait."
2570
  msgstr ""
2571
 
2572
- #: src/admin.php:819
2573
  msgid "Processing files - please wait..."
2574
  msgstr ""
2575
 
2576
- #: src/admin.php:820
2577
  msgid "Error: the server sent an empty response."
2578
  msgstr ""
2579
 
2580
- #: src/admin.php:821
2581
  msgid "Warnings:"
2582
  msgstr ""
2583
 
2584
- #: src/admin.php:823
2585
  msgid "Error: the server sent us a response which we did not understand."
2586
  msgstr ""
2587
 
2588
- #: src/admin.php:824, src/restorer.php:247
2589
  msgid "Error data:"
2590
  msgstr ""
2591
 
2592
- #: src/admin.php:827, src/admin.php:1988, src/templates/wp-admin/settings/downloading-and-restoring.php:21, src/templates/wp-admin/settings/tab-backups.php:21, src/templates/wp-admin/settings/tab-backups.php:44
2593
- msgid "Existing Backups"
2594
  msgstr ""
2595
 
2596
- #: src/admin.php:828, src/admin.php:2289
2597
  msgid "File ready."
2598
  msgstr ""
2599
 
2600
- #: src/admin.php:829, src/admin.php:2616, src/admin.php:3520, src/admin.php:4638, src/admin.php:4650, src/admin.php:4661, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:137
2601
  msgid "Actions"
2602
  msgstr ""
2603
 
2604
- #: src/admin.php:830
2605
  msgid "Delete from your web server"
2606
  msgstr ""
2607
 
2608
- #: src/admin.php:831
2609
  msgid "Download to your computer"
2610
  msgstr ""
2611
 
2612
- #: src/admin.php:832
2613
  msgid "Browse contents"
2614
  msgstr ""
2615
 
2616
- #: src/admin.php:833
2617
  msgid "Download error: the server sent us a response which we did not understand."
2618
  msgstr ""
2619
 
2620
- #: src/admin.php:834
2621
  msgid "Requesting start of backup..."
2622
  msgstr ""
2623
 
2624
- #: src/admin.php:835
2625
  msgid "PHP information"
2626
  msgstr ""
2627
 
2628
- #: src/admin.php:836, src/admin.php:3229
2629
  msgid "Delete Old Directories"
2630
  msgstr ""
2631
 
2632
- #: src/admin.php:837
2633
  msgid "Raw backup history"
2634
  msgstr ""
2635
 
2636
- #: src/admin.php:838, src/admin.php:839, src/includes/class-backup-history.php:506
2637
  msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
2638
  msgstr ""
2639
 
2640
- #: src/admin.php:838
2641
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
2642
  msgstr ""
2643
 
2644
- #: src/admin.php:839, src/includes/class-backup-history.php:506
2645
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
2646
  msgstr ""
2647
 
2648
- #: src/admin.php:840
2649
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
2650
  msgstr ""
2651
 
2652
- #: src/admin.php:841
2653
  msgid "Upload error:"
2654
  msgstr ""
2655
 
2656
- #: src/admin.php:842
2657
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
2658
  msgstr ""
2659
 
2660
- #: src/admin.php:843
2661
  msgid "Upload error"
2662
  msgstr ""
2663
 
2664
- #: src/admin.php:844
2665
  msgid "Follow this link to attempt decryption and download the database file to your computer."
2666
  msgstr ""
2667
 
2668
- #: src/admin.php:845
2669
  msgid "This decryption key will be attempted:"
2670
  msgstr ""
2671
 
2672
- #: src/admin.php:846
2673
  msgid "Unknown server response:"
2674
  msgstr ""
2675
 
2676
- #: src/admin.php:847
2677
  msgid "Unknown server response status:"
2678
  msgstr ""
2679
 
2680
- #: src/admin.php:848
2681
  msgid "The file was uploaded."
2682
  msgstr ""
2683
 
2684
- #: src/admin.php:850, src/templates/wp-admin/settings/take-backup.php:51
2685
  msgid "Backup Now"
2686
  msgstr ""
2687
 
2688
- #: src/admin.php:852, src/admin.php:3550, src/admin.php:3584, src/admin.php:4354, src/includes/class-remote-send.php:646, src/templates/wp-admin/settings/existing-backups-table.php:153, src/templates/wp-admin/settings/file-backup-exclude.php:11
2689
  msgid "Delete"
2690
  msgstr ""
2691
 
2692
- #: src/admin.php:853, src/central/bootstrap.php:582
2693
  msgid "Create"
2694
  msgstr ""
2695
 
2696
- #: src/admin.php:854, src/admin.php:4334
2697
  msgid "Upload"
2698
  msgstr ""
2699
 
2700
- #: src/admin.php:855
2701
  msgid "You did not select any components to restore. Please select at least one, and then try again."
2702
  msgstr ""
2703
 
2704
- #: src/admin.php:857, src/includes/updraftplus-tour.php:96
2705
  msgid "Close"
2706
  msgstr ""
2707
 
2708
- #: src/admin.php:859, src/admin.php:3788
2709
  msgid "Download log file"
2710
  msgstr ""
2711
 
2712
- #: src/admin.php:861, src/admin.php:887, src/admin.php:888
2713
  msgid "You have made changes to your settings, and not saved."
2714
  msgstr ""
2715
 
2716
- #: src/admin.php:862
2717
  msgid "Saving..."
2718
  msgstr ""
2719
 
2720
- #: src/admin.php:863, src/admin.php:2959, src/methods/updraftvault.php:334, src/methods/updraftvault.php:389, src/templates/wp-admin/settings/temporary-clone.php:82
2721
  msgid "Connect"
2722
  msgstr ""
2723
 
2724
- #: src/admin.php:864
2725
  msgid "Connecting..."
2726
  msgstr ""
2727
 
2728
- #: src/admin.php:865, src/methods/updraftvault.php:419, src/methods/updraftvault.php:489
2729
  msgid "Disconnect"
2730
  msgstr ""
2731
 
2732
- #: src/admin.php:866
2733
  msgid "Disconnecting..."
2734
  msgstr ""
2735
 
2736
- #: src/admin.php:867
2737
  msgid "Counting..."
2738
  msgstr ""
2739
 
2740
- #: src/admin.php:868
2741
  msgid "Update quota count"
2742
  msgstr ""
2743
 
2744
- #: src/admin.php:869
2745
  msgid "Adding..."
2746
  msgstr ""
2747
 
2748
- #: src/admin.php:871
2749
  msgid "Resetting..."
2750
  msgstr ""
2751
 
2752
- #: src/admin.php:872
2753
  msgid "Creating..."
2754
  msgstr ""
2755
 
2756
- #: src/admin.php:872
2757
  msgid "your PHP install lacks the openssl module; as a result, this can take minutes; if nothing has happened by then, then you should either try a smaller key size, or ask your web hosting company how to enable this PHP module on your setup."
2758
  msgstr ""
2759
 
2760
- #: src/admin.php:873, src/includes/class-remote-send.php:616
2761
  msgid "Send to site:"
2762
  msgstr ""
2763
 
2764
- #: src/admin.php:874, src/includes/class-remote-send.php:377
2765
  msgid "You should check that the remote site is online, not firewalled, does not have security modules that may be blocking access, has UpdraftPlus version %s or later active and that the keys have been entered correctly."
2766
  msgstr ""
2767
 
2768
- #: src/admin.php:875
2769
  msgid "Please give this key a name (e.g. indicate the site it is for):"
2770
  msgstr ""
2771
 
2772
- #: src/admin.php:877
2773
  msgid "key name"
2774
  msgstr ""
2775
 
2776
- #: src/admin.php:878, src/templates/wp-admin/settings/existing-backups-table.php:159
2777
  msgid "Deleting..."
2778
  msgstr ""
2779
 
2780
- #: src/admin.php:879
2781
  msgid "Please enter a valid URL"
2782
  msgstr ""
2783
 
2784
- #: src/admin.php:880
2785
  msgid "We requested to delete the file, but could not understand the server's response"
2786
  msgstr ""
2787
 
2788
- #: src/admin.php:881, src/includes/class-remote-send.php:407
2789
  msgid "Testing connection..."
2790
  msgstr ""
2791
 
2792
- #: src/admin.php:882, src/includes/class-remote-send.php:438, src/includes/class-remote-send.php:622
2793
  msgid "Send"
2794
  msgstr ""
2795
 
2796
- #: src/admin.php:886
2797
  msgid "With UpdraftPlus Premium, you can directly download individual files from here."
2798
  msgstr ""
2799
 
2800
- #: src/admin.php:887
2801
  msgid "You should save your changes to ensure that they are used for making your backup."
2802
  msgstr ""
2803
 
2804
- #: src/admin.php:888
2805
  msgid "Your export file will be of your displayed settings, not your saved ones."
2806
  msgstr ""
2807
 
2808
- #: src/admin.php:891
2809
  msgid "day"
2810
  msgstr ""
2811
 
2812
- #: src/admin.php:892
2813
  msgid "in the month"
2814
  msgstr ""
2815
 
2816
- #: src/admin.php:893
2817
  msgid "day(s)"
2818
  msgstr ""
2819
 
2820
- #: src/admin.php:894
2821
  msgid "hour(s)"
2822
  msgstr ""
2823
 
2824
- #: src/admin.php:895
2825
  msgid "week(s)"
2826
  msgstr ""
2827
 
2828
- #: src/admin.php:896
2829
  msgid "For backups older than"
2830
  msgstr ""
2831
 
2832
- #: src/admin.php:898
2833
  msgid "Processing..."
2834
  msgstr ""
2835
 
2836
- #: src/admin.php:899
2837
  msgid "Please fill in the required information."
2838
  msgstr ""
2839
 
2840
- #: src/admin.php:900, src/methods/backup-module.php:315
2841
  msgid "Test %s Settings"
2842
  msgstr ""
2843
 
2844
- #: src/admin.php:901
2845
  msgid "Testing %s Settings..."
2846
  msgstr ""
2847
 
2848
- #: src/admin.php:902
2849
  msgid "%s settings test result:"
2850
  msgstr ""
2851
 
2852
- #: src/admin.php:903
2853
  msgid "Nothing yet logged"
2854
  msgstr ""
2855
 
2856
- #: src/admin.php:904
2857
  msgid "You have not yet selected a file to import."
2858
  msgstr ""
2859
 
2860
- #: src/admin.php:905
2861
  msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
2862
  msgstr ""
2863
 
2864
- #: src/admin.php:908
2865
  msgid "Importing..."
2866
  msgstr ""
2867
 
2868
- #: src/admin.php:909
2869
  msgid "This will import data from:"
2870
  msgstr ""
2871
 
2872
- #: src/admin.php:910
2873
  msgid "Which was exported on:"
2874
  msgstr ""
2875
 
2876
- #: src/admin.php:911
2877
  msgid "Do you want to carry out the import?"
2878
  msgstr ""
2879
 
2880
- #: src/admin.php:912
2881
  msgid "Complete"
2882
  msgstr ""
2883
 
2884
- #: src/admin.php:913, src/admin.php:3292
2885
  msgid "The backup has finished running"
2886
  msgstr ""
2887
 
2888
- #: src/admin.php:914
2889
  msgid "The backup was aborted"
2890
  msgstr ""
2891
 
2892
- #: src/admin.php:916
2893
  msgid "remote files deleted"
2894
  msgstr ""
2895
 
2896
- #: src/admin.php:917
2897
  msgid "HTTP code:"
2898
  msgstr ""
2899
 
2900
- #: src/admin.php:918
2901
  msgid "The file failed to upload. Please check the following:"
2902
  msgstr ""
2903
 
2904
- #: src/admin.php:918
2905
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
2906
  msgstr ""
2907
 
2908
- #: src/admin.php:918
2909
  msgid "The available memory on the server."
2910
  msgstr ""
2911
 
2912
- #: src/admin.php:918
2913
  msgid "That you are attempting to upload a zip file previously created by UpdraftPlus."
2914
  msgstr ""
2915
 
2916
- #: src/admin.php:918
2917
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
2918
  msgstr ""
2919
 
2920
- #: src/admin.php:919
2921
  msgid "Browsing zip file"
2922
  msgstr ""
2923
 
2924
- #: src/admin.php:920
2925
  msgid "Select a file to view information about it"
2926
  msgstr ""
2927
 
2928
- #: src/admin.php:921
2929
  msgid "Search"
2930
  msgstr ""
2931
 
2932
- #: src/admin.php:922
2933
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
2934
  msgstr ""
2935
 
2936
- #: src/admin.php:923
2937
  msgid "Loading log file"
2938
  msgstr ""
2939
 
2940
- #: src/admin.php:926
2941
  msgid "Please enter a valid URL e.g http://example.com"
2942
  msgstr ""
2943
 
2944
- #: src/admin.php:933
2945
  msgid "Local backup upload has started; please check the log file to see the upload progress"
2946
  msgstr ""
2947
 
2948
- #: src/admin.php:934
2949
  msgid "You must select at least one remote storage destination to upload this backup set to."
2950
  msgstr ""
2951
 
2952
- #: src/admin.php:935
2953
  msgid "(already uploaded)"
2954
  msgstr ""
2955
 
2956
- #: src/admin.php:936
2957
  msgid "Please specify the Microsoft OneDrive folder name, not the URL."
2958
  msgstr ""
2959
 
2960
- #: src/admin.php:937, src/templates/wp-admin/settings/updraftcentral-connect.php:9
2961
  msgid "UpdraftCentral Cloud"
2962
  msgstr ""
2963
 
2964
- #: src/admin.php:938
2965
  msgid "Connected. Requesting UpdraftCentral Key."
2966
  msgstr ""
2967
 
2968
- #: src/admin.php:939
2969
  msgid "Key created. Adding site to UpdraftCentral Cloud."
2970
  msgstr ""
2971
 
2972
- #: src/admin.php:940
2973
  msgid "Login successful."
2974
  msgstr ""
2975
 
2976
- #: src/admin.php:940, src/admin.php:942
2977
  msgid "Please follow this link to open %s in a new window."
2978
  msgstr ""
2979
 
2980
- #: src/admin.php:941
2981
  msgid "Login successful; reloading information."
2982
  msgstr ""
2983
 
2984
- #: src/admin.php:942
2985
  msgid "Registration successful."
2986
  msgstr ""
2987
 
2988
- #: src/admin.php:943
2989
  msgid "Both email and password fields are required."
2990
  msgstr ""
2991
 
2992
- #: src/admin.php:944
2993
  msgid "An email is required and needs to be in a valid format."
2994
  msgstr ""
2995
 
2996
- #: src/admin.php:945
2997
  msgid "Trouble connecting? Try using an alternative method in the advanced security options."
2998
  msgstr ""
2999
 
3000
- #: src/admin.php:946
3001
  msgid "Verifying one-time password..."
3002
  msgstr ""
3003
 
3004
- #: src/admin.php:947
3005
  msgid "Perhaps you would want to login instead."
3006
  msgstr ""
3007
 
3008
- #: src/admin.php:948
3009
  msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
3010
  msgstr ""
3011
 
3012
- #: src/admin.php:949
3013
  msgid "Please wait while you are redirected to UpdraftCentral Cloud."
3014
  msgstr ""
3015
 
3016
- #: src/admin.php:950
3017
  msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
3018
  msgstr ""
3019
 
3020
- #: src/admin.php:951
3021
  msgid "You can also close this wizard."
3022
  msgstr ""
3023
 
3024
- #: src/admin.php:952
3025
  msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
3026
  msgstr ""
3027
 
3028
- #: src/admin.php:954
3029
  msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
3030
  msgstr ""
3031
 
3032
- #: src/admin.php:955
3033
  msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
3034
  msgstr ""
3035
 
3036
- #: src/admin.php:956
3037
  msgid "The preparation of the clone data has been aborted."
3038
  msgstr ""
3039
 
3040
- #: src/admin.php:958
3041
  msgid "Are you sure you want to remove this exclusion rule?"
3042
  msgstr ""
3043
 
3044
- #: src/admin.php:959
3045
  msgid "Please select a file/folder which you would like to exclude"
3046
  msgstr ""
3047
 
3048
- #: src/admin.php:960
3049
  msgid "Please enter a file extension, like zip"
3050
  msgstr ""
3051
 
3052
- #: src/admin.php:961
3053
  msgid "Please enter a valid file extension"
3054
  msgstr ""
3055
 
3056
- #: src/admin.php:962
3057
  msgid "Please enter characters that begin the filename which you would like to exclude"
3058
  msgstr ""
3059
 
3060
- #: src/admin.php:963
3061
  msgid "Please enter a valid file name prefix"
3062
  msgstr ""
3063
 
3064
- #: src/admin.php:964
3065
  msgid "The exclusion rule which you are trying to add already exists"
3066
  msgstr ""
3067
 
3068
- #: src/admin.php:965
3069
  msgid "UpdraftClone key is required."
3070
  msgstr ""
3071
 
3072
- #: src/admin.php:966, src/templates/wp-admin/settings/backupnow-modal.php:40
3073
  msgid "Include your files in the backup"
3074
  msgstr ""
3075
 
3076
- #: src/admin.php:967
3077
  msgid "File backup options"
3078
  msgstr ""
3079
 
3080
- #: src/admin.php:968
3081
  msgid "HTML was detected in the response. You may have a security module on your webserver blocking the restoration operation."
3082
  msgstr ""
3083
 
3084
- #: src/admin.php:969
3085
  msgid "You have not selected a restore path for your chosen backups"
3086
  msgstr ""
3087
 
3088
- #: src/admin.php:970
3089
  msgid "Try UpdraftVault!"
3090
  msgstr ""
3091
 
3092
- #: src/admin.php:971, src/includes/updraftplus-tour.php:132, src/includes/updraftplus-tour.php:184
3093
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
3094
  msgstr ""
3095
 
3096
- #: src/admin.php:972, src/includes/updraftplus-tour.php:133, src/includes/updraftplus-tour.php:161, src/includes/updraftplus-tour.php:185, src/templates/wp-admin/settings/temporary-clone.php:22
3097
  msgid "Find out more here."
3098
  msgstr ""
3099
 
3100
- #: src/admin.php:974
3101
  msgid "Try it - 1 month for $1!"
3102
  msgstr ""
3103
 
3104
- #: src/admin.php:976
3105
  msgid "credentials"
3106
  msgstr ""
3107
 
3108
- #: src/admin.php:979
3109
  msgid "last activity: %d seconds ago"
3110
  msgstr ""
3111
 
3112
- #: src/admin.php:980
3113
  msgid "no recent activity; will offer resumption after: %d seconds"
3114
  msgstr ""
3115
 
3116
- #: src/admin.php:981
3117
  msgid "Restoring %s1 files out of %s2"
3118
  msgstr ""
3119
 
3120
- #: src/admin.php:982
3121
  msgid "Restoring table: %s"
3122
  msgstr ""
3123
 
3124
- #: src/admin.php:983, src/admin.php:4710
3125
  msgid "Finished"
3126
  msgstr ""
3127
 
3128
- #: src/admin.php:984
3129
  msgid "Begun"
3130
  msgstr ""
3131
 
3132
- #: src/admin.php:985
3133
  msgid "Downloading backup files if needed"
3134
  msgstr ""
3135
 
3136
- #: src/admin.php:986
3137
  msgid "Preparing backup files"
3138
  msgstr ""
3139
 
3140
- #: src/admin.php:987
3141
  msgid "Attempts by the browser to contact the website failed."
3142
  msgstr ""
3143
 
3144
- #: src/admin.php:988
3145
  msgid "Restore error:"
3146
  msgstr ""
3147
 
3148
- #: src/admin.php:1127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3149
  msgid "Add-Ons / Pro Support"
3150
  msgstr ""
3151
 
3152
- #: src/admin.php:1174
3153
  msgid "An error occurred when fetching storage module options: "
3154
  msgstr ""
3155
 
3156
- #: src/admin.php:1179, src/includes/class-commands.php:466, src/templates/wp-admin/settings/take-backup.php:13
3157
  msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
3158
  msgstr ""
3159
 
3160
- #: src/admin.php:1184
3161
  msgid "Welcome to UpdraftPlus!"
3162
  msgstr ""
3163
 
3164
- #: src/admin.php:1184
3165
  msgid "To make a backup, just press the Backup Now button."
3166
  msgstr ""
3167
 
3168
- #: src/admin.php:1184
3169
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
3170
  msgstr ""
3171
 
3172
- #: src/admin.php:1188, src/class-updraftplus.php:892
3173
  msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
3174
  msgstr ""
3175
 
3176
- #: src/admin.php:1193
3177
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
3178
  msgstr ""
3179
 
3180
- #: src/admin.php:1199
3181
  msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
3182
  msgstr ""
3183
 
3184
- #: src/admin.php:1203
3185
  msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
3186
  msgstr ""
3187
 
3188
- #: src/admin.php:1207
3189
  msgid "Your website is hosted using the %s web server."
3190
  msgstr ""
3191
 
3192
- #: src/admin.php:1207
3193
  msgid "Please consult this FAQ if you have problems backing up."
3194
  msgstr ""
3195
 
3196
- #: src/admin.php:1211, src/admin.php:1264
3197
  msgid "Notice"
3198
  msgstr ""
3199
 
3200
- #: src/admin.php:1211
3201
  msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
3202
  msgstr ""
3203
 
3204
- #: src/admin.php:1216
3205
  msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
3206
  msgstr ""
3207
 
3208
- #: src/admin.php:1216
3209
  msgid "Read this page for a guide to possible causes and how to fix it."
3210
  msgstr ""
3211
 
3212
- #: src/admin.php:1236, src/admin.php:1257, src/admin.php:1281, src/class-updraftplus.php:594, src/class-updraftplus.php:629, src/class-updraftplus.php:634, src/class-updraftplus.php:639
3213
  msgid "UpdraftPlus notice:"
3214
  msgstr ""
3215
 
3216
- #: src/admin.php:1236
3217
  msgid "%s has been chosen for remote storage, but you are not currently connected."
3218
  msgstr ""
3219
 
3220
- #: src/admin.php:1236
3221
  msgid "Go to the remote storage settings in order to connect."
3222
  msgstr ""
3223
 
3224
- #: src/admin.php:1264
3225
  msgid "Connection to your %1$s account was successful. However, we were not able to register this site with %2$s, as there are no available %2$s licences on the account."
3226
  msgstr ""
3227
 
3228
- #: src/admin.php:1383, src/admin.php:1393
3229
  msgid "Error: invalid path"
3230
  msgstr ""
3231
 
3232
- #: src/admin.php:1743, src/includes/class-wpadmin-commands.php:581
3233
  msgid "Backup set not found"
3234
  msgstr ""
3235
 
3236
- #: src/admin.php:1829, src/admin.php:1851
3237
- msgid "Did not know how to delete from this cloud service."
 
 
 
 
 
 
 
 
3238
  msgstr ""
3239
 
3240
- #: src/admin.php:1932
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3241
  msgid "Backup sets removed:"
3242
  msgstr ""
3243
 
3244
- #: src/admin.php:1933
3245
  msgid "Local files deleted:"
3246
  msgstr ""
3247
 
3248
- #: src/admin.php:1934
3249
  msgid "Remote files deleted:"
3250
  msgstr ""
3251
 
3252
- #: src/admin.php:2029
3253
  msgid "Job deleted"
3254
  msgstr ""
3255
 
3256
- #: src/admin.php:2037
3257
  msgid "Could not find that job - perhaps it has already finished?"
3258
  msgstr ""
3259
 
3260
- #: src/admin.php:2132, src/admin.php:2155, src/includes/class-commands.php:836
3261
  msgid "Start backup"
3262
  msgstr ""
3263
 
3264
- #: src/admin.php:2132, src/includes/class-commands.php:836
3265
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
3266
  msgstr ""
3267
 
3268
- #: src/admin.php:2139
3269
  msgid "No suitable backup set (that already contains a full backup of all the requested file component types) was found, to add increments to. Aborting this backup."
3270
  msgstr ""
3271
 
3272
- #: src/admin.php:2219, src/admin.php:2223, src/class-updraftplus.php:629
3273
  msgid "The log file could not be read."
3274
  msgstr ""
3275
 
3276
- #: src/admin.php:2270
3277
  msgid "Download failed"
3278
  msgstr ""
3279
 
3280
- #: src/admin.php:2300
3281
  msgid "Download in progress"
3282
  msgstr ""
3283
 
3284
- #: src/admin.php:2303
3285
  msgid "No local copy present."
3286
  msgstr ""
3287
 
3288
- #: src/admin.php:2357, src/backup.php:1204
3289
  msgid "Backup directory (%s) is not writable, or does not exist."
3290
  msgstr ""
3291
 
3292
- #: src/admin.php:2357
3293
  msgid "You will find more information about this in the Settings section."
3294
  msgstr ""
3295
 
3296
- #: src/admin.php:2394
3297
  msgid "This file could not be uploaded"
3298
  msgstr ""
3299
 
3300
- #: src/admin.php:2409
3301
  msgid "This backup was created by %s, and can be imported."
3302
  msgstr ""
3303
 
3304
- #: src/admin.php:2415
3305
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
3306
  msgstr ""
3307
 
3308
- #: src/admin.php:2423
3309
  msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
3310
  msgstr ""
3311
 
3312
- #: src/admin.php:2515
3313
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
3314
  msgstr ""
3315
 
3316
- #: src/admin.php:2607
3317
  msgid "Backup directory could not be created"
3318
  msgstr ""
3319
 
3320
- #: src/admin.php:2614
3321
  msgid "Backup directory successfully created."
3322
  msgstr ""
3323
 
3324
- #: src/admin.php:2616, src/admin.php:3520, src/admin.php:4638, src/admin.php:4650, src/admin.php:4661, src/admin.php:4881, src/admin.php:5773
3325
  msgid "Return to UpdraftPlus configuration"
3326
  msgstr ""
3327
 
3328
- #: src/admin.php:2628, src/class-updraftplus.php:4615, src/restorer.php:2933
3329
- msgid "Warning:"
3330
- msgstr ""
3331
-
3332
- #: src/admin.php:2628
3333
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
3334
  msgstr ""
3335
 
3336
- #: src/admin.php:2631
3337
  msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
3338
  msgstr ""
3339
 
3340
- #: src/admin.php:2646
3341
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
3342
  msgstr ""
3343
 
3344
- #: src/admin.php:2646
3345
  msgid "To fix this problem go here."
3346
  msgstr ""
3347
 
3348
- #: src/admin.php:2648
3349
  msgid "For even more features and personal support, check out "
3350
  msgstr ""
3351
 
3352
- #: src/admin.php:2650
3353
  msgid "Your backup has been restored."
3354
  msgstr ""
3355
 
3356
- #: src/admin.php:2675
3357
  msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
3358
  msgstr ""
3359
 
3360
- #: src/admin.php:2675
3361
  msgid "Current limit is:"
3362
  msgstr ""
3363
 
3364
- #: src/admin.php:2736
3365
  msgid "Backup Contents And Schedule"
3366
  msgstr ""
3367
 
3368
- #: src/admin.php:2835
3369
  msgid "Backup / Restore"
3370
  msgstr ""
3371
 
3372
- #: src/admin.php:2839
3373
  msgid "Premium / Extensions"
3374
  msgstr ""
3375
 
3376
- #: src/admin.php:2906
3377
  msgid "%s minutes, %s seconds"
3378
  msgstr ""
3379
 
3380
- #: src/admin.php:2909
3381
  msgid "Unfinished restoration"
3382
  msgstr ""
3383
 
3384
- #: src/admin.php:2910
3385
  msgid "You have an unfinished restoration operation, begun %s ago."
3386
  msgstr ""
3387
 
3388
- #: src/admin.php:2918, src/admin.php:2920
3389
  msgid "Continue restoration"
3390
  msgstr ""
3391
 
3392
- #: src/admin.php:2922, src/templates/wp-admin/notices/autobackup-notice.php:16, src/templates/wp-admin/notices/autobackup-notice.php:18, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
3393
  msgid "Dismiss"
3394
  msgstr ""
3395
 
3396
- #: src/admin.php:2946
3397
  msgid "Not yet got an account (it's free)? Go get one!"
3398
  msgstr ""
3399
 
3400
- #: src/admin.php:2957
3401
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
3402
  msgstr ""
3403
 
3404
- #: src/admin.php:2969, src/includes/class-commands.php:907, src/includes/class-commands.php:956, src/includes/class-commands.php:958, src/templates/wp-admin/settings/temporary-clone.php:83, src/templates/wp-admin/settings/updraftcentral-connect.php:71
3405
  msgid "Processing"
3406
  msgstr ""
3407
 
3408
- #: src/admin.php:3012
3409
  msgid "Connect with your UpdraftPlus.Com account"
3410
  msgstr ""
3411
 
3412
- #: src/admin.php:3018, src/methods/updraftvault.php:387, src/templates/wp-admin/settings/form-contents.php:256, src/templates/wp-admin/settings/updraftcentral-connect.php:44
3413
  msgid "Email"
3414
  msgstr ""
3415
 
3416
- #: src/admin.php:3033
3417
  msgid "Forgotten your details?"
3418
  msgstr ""
3419
 
3420
- #: src/admin.php:3045
3421
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
3422
  msgstr ""
3423
 
3424
- #: src/admin.php:3056
3425
  msgid "Add this website to UpdraftCentral (remote, centralised control) - free for up to 5 sites."
3426
  msgstr ""
3427
 
3428
- #: src/admin.php:3056
3429
  msgid "Learn more about UpdraftCentral"
3430
  msgstr ""
3431
 
3432
- #: src/admin.php:3082, src/templates/wp-admin/settings/updraftcentral-connect.php:56
3433
  msgid "One Time Password (check your OTP app to get this password)"
3434
  msgstr ""
3435
 
3436
- #: src/admin.php:3153
3437
  msgid "Latest UpdraftPlus.com news:"
3438
  msgstr ""
3439
 
3440
- #: src/admin.php:3180
3441
  msgid "Download most recently modified log file"
3442
  msgstr ""
3443
 
3444
- #: src/admin.php:3223
3445
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
3446
  msgstr ""
3447
 
3448
- #: src/admin.php:3292, src/admin.php:4364
3449
  msgid "View Log"
3450
  msgstr ""
3451
 
3452
- #: src/admin.php:3332
3453
  msgid "Backup begun"
3454
  msgstr ""
3455
 
3456
- #: src/admin.php:3337
3457
  msgid "Creating file backup zips"
3458
  msgstr ""
3459
 
3460
- #: src/admin.php:3350
3461
  msgid "Created file backup zips"
3462
  msgstr ""
3463
 
3464
- #: src/admin.php:3355
3465
  msgid "Clone server being provisioned and booted (can take several minutes)"
3466
  msgstr ""
3467
 
3468
- #: src/admin.php:3359
3469
  msgid "Uploading files to remote storage"
3470
  msgstr ""
3471
 
3472
- #: src/admin.php:3360
3473
  msgid "Sending files to remote site"
3474
  msgstr ""
3475
 
3476
- #: src/admin.php:3367
3477
  msgid "(%s%%, file %s of %s)"
3478
  msgstr ""
3479
 
3480
- #: src/admin.php:3372
3481
  msgid "Pruning old backup sets"
3482
  msgstr ""
3483
 
3484
- #: src/admin.php:3376
3485
  msgid "Waiting until scheduled time to retry because of errors"
3486
  msgstr ""
3487
 
3488
- #: src/admin.php:3381
3489
  msgid "Backup finished"
3490
  msgstr ""
3491
 
3492
- #: src/admin.php:3394
3493
  msgid "Created database backup"
3494
  msgstr ""
3495
 
3496
- #: src/admin.php:3405
3497
  msgid "Creating database backup"
3498
  msgstr ""
3499
 
3500
- #: src/admin.php:3407
3501
  msgid "table: %s"
3502
  msgstr ""
3503
 
3504
- #: src/admin.php:3420
3505
  msgid "Encrypting database"
3506
  msgstr ""
3507
 
3508
- #: src/admin.php:3428
3509
  msgid "Encrypted database"
3510
  msgstr ""
3511
 
3512
- #: src/admin.php:3430, src/central/bootstrap.php:461, src/central/bootstrap.php:468, src/methods/updraftvault.php:437, src/methods/updraftvault.php:483, src/methods/updraftvault.php:566
3513
  msgid "Unknown"
3514
  msgstr ""
3515
 
3516
- #: src/admin.php:3447
3517
  msgid "next resumption: %d (after %ss)"
3518
  msgstr ""
3519
 
3520
- #: src/admin.php:3448
3521
  msgid "last activity: %ss ago"
3522
  msgstr ""
3523
 
3524
- #: src/admin.php:3468
3525
  msgid "Job ID: %s"
3526
  msgstr ""
3527
 
3528
- #: src/admin.php:3482, src/admin.php:3774
3529
  msgid "Warning: %s"
3530
  msgstr ""
3531
 
3532
- #: src/admin.php:3502
3533
  msgid "show log"
3534
  msgstr ""
3535
 
3536
- #: src/admin.php:3503
3537
  msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
3538
  msgstr ""
3539
 
3540
- #: src/admin.php:3503
3541
  msgid "stop"
3542
  msgstr ""
3543
 
3544
- #: src/admin.php:3513, src/admin.php:3513
3545
  msgid "Remove old directories"
3546
  msgstr ""
3547
 
3548
- #: src/admin.php:3516
3549
  msgid "Old directories successfully removed."
3550
  msgstr ""
3551
 
3552
- #: src/admin.php:3518
3553
  msgid "Old directory removal failed for some reason. You may want to do this manually."
3554
  msgstr ""
3555
 
3556
- #: src/admin.php:3557, src/admin.php:3592, src/admin.php:3596, src/includes/class-remote-send.php:407, src/includes/class-storage-methods-interface.php:317, src/restorer.php:398, src/restorer.php:3263, src/restorer.php:3368
3557
  msgid "OK"
3558
  msgstr ""
3559
 
3560
- #: src/admin.php:3641
3561
  msgid "The request to the filesystem to create the directory failed."
3562
  msgstr ""
3563
 
3564
- #: src/admin.php:3655
3565
  msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
3566
  msgstr ""
3567
 
3568
- #: src/admin.php:3660
3569
  msgid "The folder exists, but your webserver does not have permission to write to it."
3570
  msgstr ""
3571
 
3572
- #: src/admin.php:3660
3573
  msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
3574
  msgstr ""
3575
 
3576
- #: src/admin.php:3762
3577
  msgid "incremental backup; base backup: %s"
3578
  msgstr ""
3579
 
3580
- #: src/admin.php:3792
3581
  msgid "No backup has been completed"
3582
  msgstr ""
3583
 
3584
- #: src/admin.php:3808
3585
  msgctxt "i.e. Non-automatic"
3586
  msgid "Manual"
3587
  msgstr ""
3588
 
3589
- #: src/admin.php:3827
3590
  msgid "Backup directory specified is writable, which is good."
3591
  msgstr ""
3592
 
3593
- #: src/admin.php:3831
3594
  msgid "Backup directory specified does <b>not</b> exist."
3595
  msgstr ""
3596
 
3597
- #: src/admin.php:3833
3598
  msgid "Backup directory specified exists, but is <b>not</b> writable."
3599
  msgstr ""
3600
 
3601
- #: src/admin.php:3835
3602
  msgid "Follow this link to attempt to create the directory and set the permissions"
3603
  msgstr ""
3604
 
3605
- #: src/admin.php:3835
3606
  msgid "or, to reset this option"
3607
  msgstr ""
3608
 
3609
- #: src/admin.php:3835
3610
  msgid "press here"
3611
  msgstr ""
3612
 
3613
- #: src/admin.php:3835
3614
  msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
3615
  msgstr ""
3616
 
3617
- #: src/admin.php:3915
3618
  msgid "Your wp-content directory server path: %s"
3619
  msgstr ""
3620
 
3621
- #: src/admin.php:3915
3622
  msgid "Any other directories found inside wp-content"
3623
  msgstr ""
3624
 
3625
- #: src/admin.php:3926
3626
  msgid "Exclude these from"
3627
  msgstr ""
3628
 
3629
- #: src/admin.php:4014
3630
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
3631
  msgstr ""
3632
 
3633
- #: src/admin.php:4016
3634
  msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
3635
  msgstr ""
3636
 
3637
- #: src/admin.php:4019
3638
  msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
3639
  msgstr ""
3640
 
3641
- #: src/admin.php:4057, src/templates/wp-admin/settings/backupnow-modal.php:60, src/templates/wp-admin/settings/existing-backups-table.php:71, src/templates/wp-admin/settings/existing-backups-table.php:74
3642
  msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
3643
  msgstr ""
3644
 
3645
- #: src/admin.php:4105
3646
  msgid "Total backup size:"
3647
  msgstr ""
3648
 
3649
- #: src/admin.php:4171, src/includes/class-wpadmin-commands.php:161, src/restorer.php:2132
3650
  msgid "Backup created by unknown source (%s) - cannot be restored."
3651
  msgstr ""
3652
 
3653
- #: src/admin.php:4200
3654
  msgid "Press here to download or browse"
3655
  msgstr ""
3656
 
3657
- #: src/admin.php:4207
3658
  msgid "(%d archive(s) in set, total %s)."
3659
  msgstr ""
3660
 
3661
- #: src/admin.php:4211
3662
  msgid "You appear to be missing one or more archives from this multi-archive set."
3663
  msgstr ""
3664
 
3665
- #: src/admin.php:4240, src/admin.php:4242
3666
  msgid "(Not finished)"
3667
  msgstr ""
3668
 
3669
- #: src/admin.php:4242
3670
  msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
3671
  msgstr ""
3672
 
3673
- #: src/admin.php:4267
3674
  msgid "(backup set imported from remote location)"
3675
  msgstr ""
3676
 
3677
- #: src/admin.php:4270
3678
  msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
3679
  msgstr ""
3680
 
3681
- #: src/admin.php:4334
3682
  msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
3683
  msgstr ""
3684
 
3685
- #: src/admin.php:4354
3686
  msgid "Delete this backup set"
3687
  msgstr ""
3688
 
3689
- #: src/admin.php:4588, src/admin.php:4597
3690
  msgid "Sufficient information about the in-progress restoration operation could not be found."
3691
  msgstr ""
3692
 
3693
- #: src/admin.php:4690, src/templates/wp-admin/settings/delete-and-restore-modals.php:30
3694
  msgid "UpdraftPlus Restoration"
3695
  msgstr ""
3696
 
3697
- #: src/admin.php:4699
3698
  msgid "The restore operation has begun (%s). Do not close this page until it reports itself as having finished."
3699
  msgstr ""
3700
 
3701
- #: src/admin.php:4700
3702
  msgid "Restoration progress:"
3703
  msgstr ""
3704
 
3705
- #: src/admin.php:4703
3706
  msgid "Verifying"
3707
  msgstr ""
3708
 
3709
- #: src/admin.php:4709
3710
  msgid "Cleaning"
3711
  msgstr ""
3712
 
3713
- #: src/admin.php:4716
3714
  msgid "Activity log"
3715
  msgstr ""
3716
 
3717
- #: src/admin.php:4722, src/templates/wp-admin/settings/delete-and-restore-modals.php:96
3718
  msgid "1. Component selection"
3719
  msgstr ""
3720
 
3721
- #: src/admin.php:4723, src/templates/wp-admin/settings/delete-and-restore-modals.php:97
3722
  msgid "2. Verifications"
3723
  msgstr ""
3724
 
3725
- #: src/admin.php:4724, src/templates/wp-admin/settings/delete-and-restore-modals.php:98
3726
  msgid "3. Restoration"
3727
  msgstr ""
3728
 
3729
- #: src/admin.php:4805
3730
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3731
  msgstr ""
3732
 
3733
- #: src/admin.php:4806
3734
  msgid "Backup does not exist in the backup history"
3735
  msgstr ""
3736
 
3737
- #: src/admin.php:4842
3738
  msgid "ABORT: Could not find the information on which entities to restore."
3739
  msgstr ""
3740
 
3741
- #: src/admin.php:4842
3742
  msgid "If making a request for support, please include this information:"
3743
  msgstr ""
3744
 
3745
- #: src/admin.php:5044
3746
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
3747
  msgstr ""
3748
 
3749
- #: src/admin.php:5044
3750
  msgid "settings"
3751
  msgstr ""
3752
 
3753
- #: src/admin.php:5044
3754
  msgid "Not got any remote storage?"
3755
  msgstr ""
3756
 
3757
- #: src/admin.php:5044
3758
  msgid "Check out UpdraftPlus Vault."
3759
  msgstr ""
3760
 
3761
- #: src/admin.php:5046
3762
  msgid "Send this backup to remote storage"
3763
  msgstr ""
3764
 
3765
- #: src/admin.php:5136
3766
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
3767
  msgstr ""
3768
 
3769
- #: src/admin.php:5143, src/templates/wp-admin/settings/take-backup.php:51
3770
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3771
  msgstr ""
3772
 
3773
- #: src/admin.php:5172
3774
  msgid "Your settings have been saved."
3775
  msgstr ""
3776
 
3777
- #: src/admin.php:5177
3778
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3779
  msgstr ""
3780
 
3781
- #: src/admin.php:5225
3782
  msgid "authentication error"
3783
  msgstr ""
3784
 
3785
- #: src/admin.php:5229
3786
  msgid "Remote storage method and instance id are required for authentication."
3787
  msgstr ""
3788
 
3789
- #: src/admin.php:5294
3790
  msgid "Your settings have been wiped."
3791
  msgstr ""
3792
 
3793
- #: src/admin.php:5393
3794
  msgid "Known backups (raw)"
3795
  msgstr ""
3796
 
3797
- #: src/admin.php:5428
3798
  msgid "Options (raw)"
3799
  msgstr ""
3800
 
3801
- #: src/admin.php:5431
3802
  msgid "Value"
3803
  msgstr ""
3804
 
3805
- #: src/admin.php:5584
3806
  msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
3807
  msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
3808
  msgstr[0] ""
3809
  msgstr[1] ""
3810
 
3811
- #: src/admin.php:5584, src/methods/openstack2.php:144, src/restorer.php:251, src/restorer.php:253, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/templates/wp-admin/settings/updraftcentral-connect.php:14
3812
- msgid "Follow this link for more information"
3813
- msgstr ""
3814
-
3815
- #: src/admin.php:5610, src/admin.php:5614, src/templates/wp-admin/advanced/site-info.php:45, src/templates/wp-admin/advanced/site-info.php:51, src/templates/wp-admin/advanced/site-info.php:58, src/templates/wp-admin/advanced/site-info.php:59
3816
  msgid "%s version:"
3817
  msgstr ""
3818
 
3819
- #: src/admin.php:5618
3820
  msgid "Clone region:"
3821
  msgstr ""
3822
 
3823
- #: src/admin.php:5632
3824
  msgid "Clone:"
3825
  msgstr ""
3826
 
3827
- #: src/admin.php:5634
3828
  msgid "This current site"
3829
  msgstr ""
3830
 
3831
- #: src/admin.php:5635
3832
  msgid "An empty WordPress install"
3833
  msgstr ""
3834
 
3835
- #: src/admin.php:5649
3836
  msgid "Clone package:"
3837
  msgstr ""
3838
 
3839
- #: src/admin.php:5663
3840
- msgid "Forbid non-administrators to login to WordPress on your clone"
3841
  msgstr ""
3842
 
3843
- #: src/admin.php:5687
3844
- msgid "(current version)"
3845
  msgstr ""
3846
 
3847
- #: src/admin.php:5707
3848
  msgid "Your clone has started and will be available at the following URLs once it is ready."
3849
  msgstr ""
3850
 
3851
- #: src/admin.php:5708
3852
  msgid "Front page:"
3853
  msgstr ""
3854
 
3855
- #: src/admin.php:5709
3856
  msgid "Dashboard:"
3857
  msgstr ""
3858
 
3859
- #: src/admin.php:5711, src/admin.php:5714
3860
  msgid "You can find your temporary clone information in your updraftplus.com account here."
3861
  msgstr ""
3862
 
3863
- #: src/admin.php:5713
3864
  msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
3865
  msgstr ""
3866
 
3867
- #: src/admin.php:5771, src/admin.php:5773
3868
  msgid "You have requested saving to remote storage (%s), but without entering any settings for that storage."
3869
  msgstr ""
3870
 
@@ -3916,55 +3964,55 @@ msgstr ""
3916
  msgid "Failed to open database file for reading:"
3917
  msgstr ""
3918
 
3919
- #: src/backup.php:1736
3920
  msgid "An error occurred whilst closing the final database file"
3921
  msgstr ""
3922
 
3923
- #: src/backup.php:2049
3924
  msgid "Could not open the backup file for writing"
3925
  msgstr ""
3926
 
3927
- #: src/backup.php:2161
3928
  msgid "Infinite recursion: consult your log for more information"
3929
  msgstr ""
3930
 
3931
- #: src/backup.php:2194
3932
  msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
3933
  msgstr ""
3934
 
3935
- #: src/backup.php:2216
3936
  msgid "Failed to open directory (check the file permissions and ownership): %s"
3937
  msgstr ""
3938
 
3939
- #: src/backup.php:2281
3940
  msgid "%s: unreadable file - could not be backed up"
3941
  msgstr ""
3942
 
3943
- #: src/backup.php:2967, src/backup.php:3259
3944
  msgid "Failed to open the zip file (%s) - %s"
3945
  msgstr ""
3946
 
3947
- #: src/backup.php:2993
3948
  msgid "A very large file was encountered: %s (size: %s Mb)"
3949
  msgstr ""
3950
 
3951
- #: src/backup.php:3303, src/class-updraftplus.php:905
3952
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
3953
  msgstr ""
3954
 
3955
- #: src/backup.php:3310
3956
  msgid "The zip engine returned the message: %s."
3957
  msgstr ""
3958
 
3959
- #: src/backup.php:3312
3960
  msgid "A zip error occurred"
3961
  msgstr ""
3962
 
3963
- #: src/backup.php:3314
3964
  msgid "your web hosting account appears to be full; please see: %s"
3965
  msgstr ""
3966
 
3967
- #: src/backup.php:3316
3968
  msgid "check your log for more details."
3969
  msgstr ""
3970
 
@@ -4028,131 +4076,131 @@ msgstr ""
4028
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
4029
  msgstr ""
4030
 
4031
- #: src/central/bootstrap.php:363, src/central/bootstrap.php:374
4032
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
4033
  msgstr ""
4034
 
4035
- #: src/central/bootstrap.php:417, src/includes/class-remote-send.php:517
4036
  msgid "Key created successfully."
4037
  msgstr ""
4038
 
4039
- #: src/central/bootstrap.php:417
4040
  msgid "You must copy and paste this key now - it cannot be shown again."
4041
  msgstr ""
4042
 
4043
- #: src/central/bootstrap.php:438
4044
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
4045
  msgstr ""
4046
 
4047
- #: src/central/bootstrap.php:470
4048
  msgid "Access this site as user:"
4049
  msgstr ""
4050
 
4051
- #: src/central/bootstrap.php:470
4052
  msgid "Public key was sent to:"
4053
  msgstr ""
4054
 
4055
- #: src/central/bootstrap.php:473
4056
  msgid "Created:"
4057
  msgstr ""
4058
 
4059
- #: src/central/bootstrap.php:475
4060
  msgid "Key size: %d bits"
4061
  msgstr ""
4062
 
4063
- #: src/central/bootstrap.php:480
4064
  msgid "Delete..."
4065
  msgstr ""
4066
 
4067
- #: src/central/bootstrap.php:488
4068
  msgid "Manage existing keys (%d)..."
4069
  msgstr ""
4070
 
4071
- #: src/central/bootstrap.php:493
4072
  msgid "Key description"
4073
  msgstr ""
4074
 
4075
- #: src/central/bootstrap.php:494
4076
  msgid "Details"
4077
  msgstr ""
4078
 
4079
- #: src/central/bootstrap.php:519
4080
  msgid "Connect this site to an UpdraftCentral dashboard found at..."
4081
  msgstr ""
4082
 
4083
- #: src/central/bootstrap.php:528
4084
  msgid "UpdraftPlus.Com"
4085
  msgstr ""
4086
 
4087
- #: src/central/bootstrap.php:530
4088
  msgid "i.e. if you have %s there"
4089
  msgstr ""
4090
 
4091
- #: src/central/bootstrap.php:530
4092
  msgid "an account"
4093
  msgstr ""
4094
 
4095
- #: src/central/bootstrap.php:536
4096
  msgid "Self-hosted dashboard"
4097
  msgstr ""
4098
 
4099
- #: src/central/bootstrap.php:538
4100
  msgid "A website where you have installed %s"
4101
  msgstr ""
4102
 
4103
- #: src/central/bootstrap.php:541
4104
  msgid "Enter the URL where your self-hosted install of UpdraftCentral is located:"
4105
  msgstr ""
4106
 
4107
- #: src/central/bootstrap.php:543
4108
  msgid "URL for the site of your UpdraftCentral dashboard"
4109
  msgstr ""
4110
 
4111
- #: src/central/bootstrap.php:544, src/includes/updraftplus-tour.php:92, src/templates/wp-admin/settings/delete-and-restore-modals.php:100
4112
  msgid "Next"
4113
  msgstr ""
4114
 
4115
- #: src/central/bootstrap.php:550
4116
  msgid "UpdraftCentral dashboard connection details"
4117
  msgstr ""
4118
 
4119
- #: src/central/bootstrap.php:552
4120
  msgid "Description"
4121
  msgstr ""
4122
 
4123
- #: src/central/bootstrap.php:553
4124
  msgid "Enter any description"
4125
  msgstr ""
4126
 
4127
- #: src/central/bootstrap.php:570
4128
  msgid "Use the alternative method for making a connection with the dashboard."
4129
  msgstr ""
4130
 
4131
- #: src/central/bootstrap.php:571
4132
  msgid "More information..."
4133
  msgstr ""
4134
 
4135
- #: src/central/bootstrap.php:587, src/methods/updraftvault.php:381, src/methods/updraftvault.php:395, src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-heading.php:4
4136
  msgid "Back..."
4137
  msgstr ""
4138
 
4139
- #: src/central/bootstrap.php:606
4140
  msgid "View recent UpdraftCentral log events"
4141
  msgstr ""
4142
 
4143
- #: src/central/bootstrap.php:620
4144
  msgid "UpdraftCentral (Remote Control)"
4145
  msgstr ""
4146
 
4147
- #: src/central/bootstrap.php:622
4148
  msgid "UpdraftCentral enables control of your WordPress sites (including management of backups and updates) from a central dashboard."
4149
  msgstr ""
4150
 
4151
- #: src/central/bootstrap.php:622
4152
  msgid "Read more about it here."
4153
  msgstr ""
4154
 
4155
- #: src/central/bootstrap.php:627
4156
  msgid "Create another key"
4157
  msgstr ""
4158
 
@@ -4168,426 +4216,470 @@ msgstr ""
4168
  msgid "Unable to install %s. Make sure that the zip file is a valid %s file and a previous version of this %s does not exist. If you wish to overwrite an existing %s then you will have to manually delete it from the %s folder on the remote website and try uploading the file again."
4169
  msgstr ""
4170
 
4171
- #: src/central/modules/media.php:365
4172
  msgid "Failed to attach media."
4173
  msgstr ""
4174
 
4175
- #: src/central/modules/media.php:367
4176
  msgid "Media has been attached to post."
4177
  msgstr ""
4178
 
4179
- #: src/central/modules/media.php:375
4180
  msgid "Failed to detach media."
4181
  msgstr ""
4182
 
4183
- #: src/central/modules/media.php:377
4184
  msgid "Media has been detached from post."
4185
  msgstr ""
4186
 
4187
- #: src/central/modules/media.php:390
4188
  msgid "Failed to delete selected media."
4189
  msgstr ""
4190
 
4191
- #: src/central/modules/media.php:393
4192
  msgid "Selected media has been deleted successfully."
4193
  msgstr ""
4194
 
4195
- #: src/central/modules/media.php:455
4196
  msgid "Unattached"
4197
  msgstr ""
4198
 
4199
- #: src/class-updraftplus.php:204
 
 
 
 
 
 
 
 
 
 
 
 
4200
  msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
4201
  msgstr ""
4202
 
4203
- #: src/class-updraftplus.php:594, src/class-updraftplus.php:639
4204
  msgid "The given file was not found, or could not be read."
4205
  msgstr ""
4206
 
4207
- #: src/class-updraftplus.php:634
 
 
 
 
 
 
 
 
4208
  msgid "No log files were found."
4209
  msgstr ""
4210
 
4211
- #: src/class-updraftplus.php:889
4212
  msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
4213
  msgstr ""
4214
 
4215
- #: src/class-updraftplus.php:918
4216
  msgid "Your free disk space is very low - only %s Mb remain"
4217
  msgstr ""
4218
 
4219
- #: src/class-updraftplus.php:1257
4220
  msgid "%s Error: Failed to open local file"
4221
  msgstr ""
4222
 
4223
- #: src/class-updraftplus.php:1372
4224
  msgid "%s error - failed to re-assemble chunks"
4225
  msgstr ""
4226
 
4227
- #: src/class-updraftplus.php:1415, src/class-updraftplus.php:1459, src/methods/cloudfiles.php:378, src/methods/stream-base.php:296
4228
  msgid "Error opening local file: Failed to download"
4229
  msgstr ""
4230
 
4231
- #: src/class-updraftplus.php:1483, src/methods/cloudfiles.php:408
4232
  msgid "Error - failed to download the file"
4233
  msgstr ""
4234
 
4235
- #: src/class-updraftplus.php:1796, src/class-updraftplus.php:1798
4236
  msgid "files: %s"
4237
  msgstr ""
4238
 
4239
- #: src/class-updraftplus.php:1852
4240
  msgid "External database (%s)"
4241
  msgstr ""
4242
 
4243
- #: src/class-updraftplus.php:1855
4244
  msgid "Size: %s MB"
4245
  msgstr ""
4246
 
4247
- #: src/class-updraftplus.php:1860, src/class-updraftplus.php:1865
4248
  msgid "%s checksum: %s"
4249
  msgstr ""
4250
 
4251
- #: src/class-updraftplus.php:1895
4252
  msgid "Plugins"
4253
  msgstr ""
4254
 
4255
- #: src/class-updraftplus.php:1896
4256
  msgid "Themes"
4257
  msgstr ""
4258
 
4259
- #: src/class-updraftplus.php:1912
4260
  msgid "Others"
4261
  msgstr ""
4262
 
4263
- #: src/class-updraftplus.php:2146
4264
  msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
4265
  msgstr ""
4266
 
4267
- #: src/class-updraftplus.php:2221
4268
  msgid "The backup is being aborted for a repeated failure to progress."
4269
  msgstr ""
4270
 
4271
- #: src/class-updraftplus.php:2950
4272
  msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
4273
  msgstr ""
4274
 
4275
- #: src/class-updraftplus.php:3262, src/class-updraftplus.php:3354
4276
  msgid "The backup was aborted by the user"
4277
  msgstr ""
4278
 
4279
- #: src/class-updraftplus.php:3269
4280
  msgid "The backup apparently succeeded and is now complete"
4281
  msgstr ""
4282
 
4283
- #: src/class-updraftplus.php:3275
4284
  msgid "The backup apparently succeeded (with warnings) and is now complete"
4285
  msgstr ""
4286
 
4287
- #: src/class-updraftplus.php:3281
4288
  msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
4289
  msgstr ""
4290
 
4291
- #: src/class-updraftplus.php:3281
4292
  msgid "Your clone will now deploy this data to re-create your site."
4293
  msgstr ""
4294
 
4295
- #: src/class-updraftplus.php:3292
4296
  msgid "The backup attempt has finished, apparently unsuccessfully"
4297
  msgstr ""
4298
 
4299
- #: src/class-updraftplus.php:3296
4300
  msgid "The backup has not finished; a resumption is scheduled"
4301
  msgstr ""
4302
 
4303
- #: src/class-updraftplus.php:3349
4304
  msgid "Full backup"
4305
  msgstr ""
4306
 
4307
- #: src/class-updraftplus.php:3349
4308
  msgid "Incremental"
4309
  msgstr ""
4310
 
4311
- #: src/class-updraftplus.php:3358
4312
  msgid "Files (database backup has not completed)"
4313
  msgstr ""
4314
 
4315
- #: src/class-updraftplus.php:3358
4316
  msgid "Files only (database was not part of this particular schedule)"
4317
  msgstr ""
4318
 
4319
- #: src/class-updraftplus.php:3361
4320
  msgid "Database (files backup has not completed)"
4321
  msgstr ""
4322
 
4323
- #: src/class-updraftplus.php:3361
4324
  msgid "Database only (files were not part of this particular schedule)"
4325
  msgstr ""
4326
 
4327
- #: src/class-updraftplus.php:3363
4328
  msgid "Incomplete"
4329
  msgstr ""
4330
 
4331
- #: src/class-updraftplus.php:3366
4332
  msgid "Unknown/unexpected error - please raise a support request"
4333
  msgstr ""
4334
 
4335
- #: src/class-updraftplus.php:3375
4336
  msgid "Errors encountered:"
4337
  msgstr ""
4338
 
4339
- #: src/class-updraftplus.php:3393
4340
  msgid "Warnings encountered:"
4341
  msgstr ""
4342
 
4343
- #: src/class-updraftplus.php:3408
4344
  msgid "Backed up: %s"
4345
  msgstr ""
4346
 
4347
- #: src/class-updraftplus.php:3417
4348
  msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
4349
  msgstr ""
4350
 
4351
- #: src/class-updraftplus.php:3417
4352
  msgid "read more at %s"
4353
  msgstr ""
4354
 
4355
- #: src/class-updraftplus.php:3450
4356
  msgid "WordPress backup is complete"
4357
  msgstr ""
4358
 
4359
- #: src/class-updraftplus.php:3451
4360
  msgid "Backup contains:"
4361
  msgstr ""
4362
 
4363
- #: src/class-updraftplus.php:3982
4364
  msgid "Could not read the directory"
4365
  msgstr ""
4366
 
4367
- #: src/class-updraftplus.php:3998
4368
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
4369
  msgstr ""
4370
 
4371
- #: src/class-updraftplus.php:4440, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:1026
4372
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
4373
  msgstr ""
4374
 
4375
- #: src/class-updraftplus.php:4442
4376
  msgid "Decryption failed. The database file is encrypted."
4377
  msgstr ""
4378
 
4379
- #: src/class-updraftplus.php:4452, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:1039
4380
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
4381
  msgstr ""
4382
 
4383
- #: src/class-updraftplus.php:4459
4384
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
4385
  msgstr ""
4386
 
4387
- #: src/class-updraftplus.php:4467
4388
  msgid "Failed to open database file."
4389
  msgstr ""
4390
 
4391
- #: src/class-updraftplus.php:4520
4392
  msgid "(version: %s)"
4393
  msgstr ""
4394
 
4395
- #: src/class-updraftplus.php:4533
4396
  msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
4397
  msgstr ""
4398
 
4399
- #: src/class-updraftplus.php:4538
4400
  msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
4401
  msgstr ""
4402
 
4403
- #: src/class-updraftplus.php:4540
4404
  msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
4405
  msgstr ""
4406
 
4407
- #: src/class-updraftplus.php:4540, src/class-updraftplus.php:4542
4408
  msgid "the migrator add-on"
4409
  msgstr ""
4410
 
4411
- #: src/class-updraftplus.php:4542
4412
  msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
4413
  msgstr ""
4414
 
4415
- #: src/class-updraftplus.php:4551, src/class-updraftplus.php:4571
4416
  msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
4417
  msgstr ""
4418
 
4419
- #: src/class-updraftplus.php:4554
4420
  msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
4421
  msgstr ""
4422
 
4423
- #: src/class-updraftplus.php:4559, src/restorer.php:1675
4424
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
4425
  msgstr ""
4426
 
4427
- #: src/class-updraftplus.php:4559, src/restorer.php:1675
4428
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
4429
  msgstr ""
4430
 
4431
- #: src/class-updraftplus.php:4580, src/class-updraftplus.php:4587
4432
  msgid "%s version: %s"
4433
  msgstr ""
4434
 
4435
- #: src/class-updraftplus.php:4581
4436
  msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
4437
  msgstr ""
4438
 
4439
- #: src/class-updraftplus.php:4588
4440
  msgid "The site in this backup was running on a webserver with version %s of %s. "
4441
  msgstr ""
4442
 
4443
- #: src/class-updraftplus.php:4588
4444
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
4445
  msgstr ""
4446
 
4447
- #: src/class-updraftplus.php:4588
4448
  msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
4449
  msgstr ""
4450
 
4451
- #: src/class-updraftplus.php:4588
4452
  msgid "Any support requests to do with %s should be raised with your web hosting company."
4453
  msgstr ""
4454
 
4455
- #: src/class-updraftplus.php:4593, src/restorer.php:2393, src/restorer.php:2508, src/restorer.php:2540
 
 
 
 
 
 
 
 
4456
  msgid "Old table prefix:"
4457
  msgstr ""
4458
 
4459
- #: src/class-updraftplus.php:4596
4460
  msgid "Backup label:"
4461
  msgstr ""
4462
 
4463
- #: src/class-updraftplus.php:4604, src/class-updraftplus.php:4607, src/restorer.php:720
4464
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
4465
  msgstr ""
4466
 
4467
- #: src/class-updraftplus.php:4607
4468
  msgid "It will be imported as a new site."
4469
  msgstr ""
4470
 
4471
- #: src/class-updraftplus.php:4607
4472
  msgid "Please read this link for important information on this process."
4473
  msgstr ""
4474
 
4475
- #: src/class-updraftplus.php:4611, src/restorer.php:2404
4476
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
4477
  msgstr ""
4478
 
4479
- #: src/class-updraftplus.php:4615
4480
  msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
4481
  msgstr ""
4482
 
4483
- #: src/class-updraftplus.php:4615
4484
  msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
4485
  msgstr ""
4486
 
4487
- #: src/class-updraftplus.php:4622, src/restorer.php:2410
4488
  msgid "Site information:"
4489
  msgstr ""
4490
 
4491
- #: src/class-updraftplus.php:4682
4492
  msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
4493
  msgstr ""
4494
 
4495
- #: src/class-updraftplus.php:4682
4496
  msgid "You must upgrade MySQL to be able to use this database."
4497
  msgstr ""
4498
 
4499
- #: src/class-updraftplus.php:4703
4500
  msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
4501
  msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
4502
  msgstr[0] ""
4503
  msgstr[1] ""
4504
 
4505
- #: src/class-updraftplus.php:4703
4506
  msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
4507
  msgstr ""
4508
 
4509
- #: src/class-updraftplus.php:4713
4510
  msgid "Your chosen character set to use instead:"
4511
  msgstr ""
4512
 
4513
- #: src/class-updraftplus.php:4737
4514
  msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
4515
  msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
4516
  msgstr[0] ""
4517
  msgstr[1] ""
4518
 
4519
- #: src/class-updraftplus.php:4737
4520
  msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
4521
  msgstr ""
4522
 
4523
- #: src/class-updraftplus.php:4760
4524
  msgid "Your chosen replacement collation"
4525
  msgstr ""
4526
 
4527
- #: src/class-updraftplus.php:4783
4528
  msgid "Choose a default for each table"
4529
  msgstr ""
4530
 
4531
- #: src/class-updraftplus.php:4836
4532
  msgid "This database backup is missing core WordPress tables: %s"
4533
  msgstr ""
4534
 
4535
- #: src/class-updraftplus.php:4839
4536
  msgid "This database backup has the following WordPress tables excluded: %s"
4537
  msgstr ""
4538
 
4539
- #: src/class-updraftplus.php:4844
4540
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
4541
  msgstr ""
4542
 
4543
- #: src/includes/class-backup-history.php:130
 
 
 
 
4544
  msgid "You have not yet made any backups."
4545
  msgstr ""
4546
 
4547
- #: src/includes/class-backup-history.php:675
4548
  msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
4549
  msgstr ""
4550
 
4551
- #: src/includes/class-commands.php:405
4552
  msgid "%s add-on not found"
4553
  msgstr ""
4554
 
4555
- #: src/includes/class-commands.php:793, src/methods/updraftvault.php:667, src/udaddons/options.php:219
4556
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4557
  msgstr ""
4558
 
4559
- #: src/includes/class-commands.php:895, src/includes/class-commands.php:944
4560
  msgid "Available temporary clone tokens:"
4561
  msgstr ""
4562
 
4563
- #: src/includes/class-commands.php:896
4564
  msgid "You can buy more temporary clone tokens here."
4565
  msgstr ""
4566
 
4567
- #: src/includes/class-commands.php:906
4568
  msgid "Create clone"
4569
  msgstr ""
4570
 
4571
- #: src/includes/class-commands.php:913
4572
  msgid "Current clones"
4573
  msgstr ""
4574
 
4575
- #: src/includes/class-commands.php:913
4576
  msgid "manage"
4577
  msgstr ""
4578
 
4579
- #: src/includes/class-commands.php:956
4580
  msgid "No backup will be started. The creation of your clone should now begin, and your WordPress username and password will be displayed below when ready."
4581
  msgstr ""
4582
 
4583
- #: src/includes/class-commands.php:956, src/includes/class-commands.php:958
4584
  msgid "N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
4585
  msgstr ""
4586
 
4587
- #: src/includes/class-commands.php:958
4588
  msgid "The creation of your data for creating the clone should now begin."
4589
  msgstr ""
4590
 
 
 
 
 
 
 
 
 
 
 
 
 
4591
  #: src/includes/class-filesystem-functions.php:105, src/templates/wp-admin/advanced/site-info.php:38
4592
  msgid "refresh"
4593
  msgstr ""
@@ -4604,15 +4696,15 @@ msgstr ""
4604
  msgid "Web-server disk space in use by UpdraftPlus"
4605
  msgstr ""
4606
 
4607
- #: src/includes/class-filesystem-functions.php:285, src/methods/ftp.php:335
4608
  msgid "Your web server's PHP installation has these functions disabled: %s."
4609
  msgstr ""
4610
 
4611
- #: src/includes/class-filesystem-functions.php:285, src/methods/ftp.php:335, src/restorer.php:2163
4612
  msgid "Your hosting company must enable these functions before %s can work."
4613
  msgstr ""
4614
 
4615
- #: src/includes/class-filesystem-functions.php:285, src/restorer.php:2163
4616
  msgid "restoration"
4617
  msgstr ""
4618
 
@@ -5245,19 +5337,19 @@ msgstr ""
5245
  msgid "failed to list files"
5246
  msgstr ""
5247
 
5248
- #: src/methods/addon-base-v2.php:226
5249
  msgid "This storage method does not allow downloading"
5250
  msgstr ""
5251
 
5252
- #: src/methods/addon-base-v2.php:243, src/methods/addon-base-v2.php:263
5253
  msgid "Failed to download %s"
5254
  msgstr ""
5255
 
5256
- #: src/methods/addon-base-v2.php:257
5257
  msgid "Failed to download"
5258
  msgstr ""
5259
 
5260
- #: src/methods/addon-base-v2.php:365, src/methods/stream-base.php:374
5261
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
5262
  msgstr ""
5263
 
@@ -5301,19 +5393,19 @@ msgstr ""
5301
  msgid "Follow this link to remove these settings for %s."
5302
  msgstr ""
5303
 
5304
- #: src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:435, src/methods/openstack-base.php:568, src/methods/s3.php:879
5305
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support."
5306
  msgstr ""
5307
 
5308
- #: src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:435, src/methods/openstack-base.php:568, src/methods/s3.php:879
5309
  msgid "UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative."
5310
  msgstr ""
5311
 
5312
- #: src/methods/cloudfiles-new.php:98, src/methods/cloudfiles.php:441
5313
  msgid "Get your API key <a href=\"https://mycloud.rackspace.com/\" target=\"_blank\">from your Rackspace Cloud console</a> (<a href=\"http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key\" target=\"_blank\">read instructions here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist."
5314
  msgstr ""
5315
 
5316
- #: src/methods/cloudfiles-new.php:98, src/methods/cloudfiles.php:441, src/methods/openstack2.php:120
5317
  msgid "Also, you should read this important FAQ."
5318
  msgstr ""
5319
 
@@ -5333,19 +5425,19 @@ msgstr ""
5333
  msgid "To create a new Rackspace API sub-user and API key that has access only to this Rackspace container, use this add-on."
5334
  msgstr ""
5335
 
5336
- #: src/methods/cloudfiles-new.php:137, src/methods/cloudfiles.php:482
5337
  msgid "Cloud Files API Key"
5338
  msgstr ""
5339
 
5340
- #: src/methods/cloudfiles-new.php:179, src/methods/cloudfiles.php:514, src/methods/s3.php:1147
5341
  msgid "API key"
5342
  msgstr ""
5343
 
5344
- #: src/methods/cloudfiles.php:93, src/methods/cloudfiles.php:97, src/methods/cloudfiles.php:282, src/methods/cloudfiles.php:330, src/methods/cloudfiles.php:334
5345
  msgid "authentication failed"
5346
  msgstr ""
5347
 
5348
- #: src/methods/cloudfiles.php:101, src/methods/cloudfiles.php:338, src/methods/cloudfiles.php:350
5349
  msgid "error - failed to create and access the container"
5350
  msgstr ""
5351
 
@@ -5357,43 +5449,43 @@ msgstr ""
5357
  msgid "error - failed to upload file"
5358
  msgstr ""
5359
 
5360
- #: src/methods/cloudfiles.php:238, src/methods/openstack-base.php:44, src/methods/openstack-base.php:349, src/methods/openstack-base.php:414, src/methods/openstack-base.php:487, src/methods/openstack-base.php:490, src/methods/openstack-base.php:508, src/methods/openstack-base.php:513
5361
  msgid "%s authentication failed"
5362
  msgstr ""
5363
 
5364
- #: src/methods/cloudfiles.php:395, src/methods/openstack-base.php:452
5365
  msgid "Error downloading remote file: Failed to download"
5366
  msgstr ""
5367
 
5368
- #: src/methods/cloudfiles.php:404
5369
  msgid "Error - no such file exists."
5370
  msgstr ""
5371
 
5372
- #: src/methods/cloudfiles.php:458
5373
  msgid "US or UK Cloud"
5374
  msgstr ""
5375
 
5376
- #: src/methods/cloudfiles.php:471
5377
  msgid "Rackspace Storage Region"
5378
  msgstr ""
5379
 
5380
- #: src/methods/cloudfiles.php:478
5381
  msgid "Cloud Files username"
5382
  msgstr ""
5383
 
5384
- #: src/methods/cloudfiles.php:490
5385
  msgid "Cloud Files"
5386
  msgstr ""
5387
 
5388
- #: src/methods/cloudfiles.php:539, src/methods/openstack-base.php:469
5389
  msgid "Failure: No container details were given."
5390
  msgstr ""
5391
 
5392
- #: src/methods/cloudfiles.php:566
5393
  msgid "Cloud Files error - we accessed the container, but failed to create a file within it"
5394
  msgstr ""
5395
 
5396
- #: src/methods/cloudfiles.php:570, src/methods/openstack-base.php:527
5397
  msgid "We accessed the container, and were able to create files within it."
5398
  msgstr ""
5399
 
@@ -5421,67 +5513,67 @@ msgstr ""
5421
  msgid "did not return the expected response - check your log file for more details"
5422
  msgstr ""
5423
 
5424
- #: src/methods/dropbox.php:302, src/methods/dropbox.php:317
5425
  msgid "failed to upload file to %s (see log file for more)"
5426
  msgstr ""
5427
 
5428
- #: src/methods/dropbox.php:372
5429
  msgid "%s returned an unexpected HTTP response: %s"
5430
  msgstr ""
5431
 
5432
- #: src/methods/dropbox.php:434
5433
  msgid "You do not appear to be authenticated with %s (whilst deleting)"
5434
  msgstr ""
5435
 
5436
- #: src/methods/dropbox.php:442
5437
  msgid "Failed to access %s when deleting (see log file for more)"
5438
  msgstr ""
5439
 
5440
- #: src/methods/dropbox.php:475
5441
  msgid "You do not appear to be authenticated with %s"
5442
  msgstr ""
5443
 
5444
- #: src/methods/dropbox.php:592, src/methods/dropbox.php:594
5445
  msgid "Need to use sub-folders?"
5446
  msgstr ""
5447
 
5448
- #: src/methods/dropbox.php:592, src/methods/dropbox.php:594
5449
  msgid "Backups are saved in"
5450
  msgstr ""
5451
 
5452
- #: src/methods/dropbox.php:592, src/methods/dropbox.php:594
5453
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
5454
  msgstr ""
5455
 
5456
- #: src/methods/dropbox.php:592, src/methods/dropbox.php:594
5457
  msgid "there's an add-on for that."
5458
  msgstr ""
5459
 
5460
- #: src/methods/dropbox.php:600
5461
  msgid "Dropbox"
5462
  msgstr ""
5463
 
5464
- #: src/methods/dropbox.php:625
5465
  msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
5466
  msgstr ""
5467
 
5468
- #: src/methods/dropbox.php:741, src/methods/dropbox.php:762
5469
  msgid "%s authentication"
5470
  msgstr ""
5471
 
5472
- #: src/methods/dropbox.php:776
5473
  msgid "%s de-authentication"
5474
  msgstr ""
5475
 
5476
- #: src/methods/dropbox.php:792, src/methods/dropbox.php:794
5477
  msgid "Success:"
5478
  msgstr ""
5479
 
5480
- #: src/methods/dropbox.php:792, src/methods/dropbox.php:794
5481
  msgid "you have authenticated your %s account"
5482
  msgstr ""
5483
 
5484
- #: src/methods/dropbox.php:797, src/methods/dropbox.php:819
5485
  msgid "though part of the returned information was not as expected - your mileage may vary"
5486
  msgstr ""
5487
 
@@ -5521,7 +5613,7 @@ msgstr ""
5521
  msgid "Reporting"
5522
  msgstr ""
5523
 
5524
- #: src/methods/ftp.php:121, src/methods/ftp.php:281
5525
  msgid "login failure"
5526
  msgstr ""
5527
 
@@ -5533,75 +5625,75 @@ msgstr ""
5533
  msgid "%s login failure"
5534
  msgstr ""
5535
 
5536
- #: src/methods/ftp.php:330
5537
  msgid "regular non-encrypted FTP"
5538
  msgstr ""
5539
 
5540
- #: src/methods/ftp.php:331
5541
  msgid "encrypted FTP (implicit encryption)"
5542
  msgstr ""
5543
 
5544
- #: src/methods/ftp.php:332
5545
  msgid "encrypted FTP (explicit encryption)"
5546
  msgstr ""
5547
 
5548
- #: src/methods/ftp.php:341
5549
  msgid "If you want encryption (e.g. you are storing sensitive business data), then an add-on is available."
5550
  msgstr ""
5551
 
5552
- #: src/methods/ftp.php:362
5553
  msgid "FTP server"
5554
  msgstr ""
5555
 
5556
- #: src/methods/ftp.php:367
5557
  msgid "FTP login"
5558
  msgstr ""
5559
 
5560
- #: src/methods/ftp.php:372
5561
  msgid "FTP password"
5562
  msgstr ""
5563
 
5564
- #: src/methods/ftp.php:377
5565
  msgid "Remote path"
5566
  msgstr ""
5567
 
5568
- #: src/methods/ftp.php:378, src/methods/ftp.php:378
5569
  msgid "Needs to already exist"
5570
  msgstr ""
5571
 
5572
- #: src/methods/ftp.php:382
5573
  msgid "Passive mode"
5574
  msgstr ""
5575
 
5576
- #: src/methods/ftp.php:384, src/methods/ftp.php:384
5577
  msgid "Almost all FTP servers will want passive mode; but if you need active mode, then uncheck this."
5578
  msgstr ""
5579
 
5580
- #: src/methods/ftp.php:413
5581
  msgid "Failure: No server details were given."
5582
  msgstr ""
5583
 
5584
- #: src/methods/ftp.php:417
5585
  msgid "login"
5586
  msgstr ""
5587
 
5588
- #: src/methods/ftp.php:421, src/methods/openstack2.php:185
5589
  msgid "password"
5590
  msgstr ""
5591
 
5592
- #: src/methods/ftp.php:431
5593
  msgid "Failure: we did not successfully log in with those credentials."
5594
  msgstr ""
5595
 
5596
- #: src/methods/ftp.php:440
5597
  msgid "Success: we successfully logged in, and confirmed our ability to create a file in the given directory (login type:"
5598
  msgstr ""
5599
 
5600
- #: src/methods/ftp.php:443
5601
  msgid "Failure: we successfully logged in, but were not able to create a file in the given directory."
5602
  msgstr ""
5603
 
5604
- #: src/methods/ftp.php:445
5605
  msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
5606
  msgstr ""
5607
 
@@ -5613,7 +5705,7 @@ msgstr ""
5613
  msgid "The client has been deleted from the Google Drive API console. Please create a new Google Drive project and reconnect with UpdraftPlus."
5614
  msgstr ""
5615
 
5616
- #: src/methods/googledrive.php:600, src/methods/googledrive.php:662, src/methods/googledrive.php:678, src/methods/googledrive.php:680, src/methods/stream-base.php:220
5617
  msgid "Failed to upload to %s"
5618
  msgstr ""
5619
 
@@ -5633,47 +5725,47 @@ msgstr ""
5633
  msgid "Have not yet obtained an access token from Google - you need to authorise or re-authorise your connection to Google Drive."
5634
  msgstr ""
5635
 
5636
- #: src/methods/googledrive.php:1321
5637
  msgid "%s does not allow authorisation of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
5638
  msgstr ""
5639
 
5640
- #: src/methods/googledrive.php:1328
5641
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
5642
  msgstr ""
5643
 
5644
- #: src/methods/googledrive.php:1328
5645
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
5646
  msgstr ""
5647
 
5648
- #: src/methods/googledrive.php:1328
5649
  msgid "N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site."
5650
  msgstr ""
5651
 
5652
- #: src/methods/googledrive.php:1374
5653
  msgid "<strong>This is NOT a folder name</strong>."
5654
  msgstr ""
5655
 
5656
- #: src/methods/googledrive.php:1374
5657
  msgid "It is an ID number internal to Google Drive"
5658
  msgstr ""
5659
 
5660
- #: src/methods/googledrive.php:1387
5661
  msgid "To be able to set a custom folder name, use UpdraftPlus Premium."
5662
  msgstr ""
5663
 
5664
- #: src/methods/googledrive.php:1394
5665
  msgid "Authenticate with Google"
5666
  msgstr ""
5667
 
5668
- #: src/methods/googledrive.php:1404
5669
  msgid "To de-authorize UpdraftPlus (all sites) from accessing your Google Drive, follow this link to your Google account settings."
5670
  msgstr ""
5671
 
5672
- #: src/methods/openstack-base.php:48, src/methods/openstack-base.php:122, src/methods/openstack-base.php:129, src/methods/openstack-base.php:353, src/methods/openstack-base.php:418
5673
  msgid "%s error - failed to access the container"
5674
  msgstr ""
5675
 
5676
- #: src/methods/openstack-base.php:56, src/methods/openstack-base.php:361, src/methods/openstack-base.php:430
5677
  msgid "Could not access %s container"
5678
  msgstr ""
5679
 
@@ -5681,15 +5773,15 @@ msgstr ""
5681
  msgid "%s error - failed to upload file"
5682
  msgstr ""
5683
 
5684
- #: src/methods/openstack-base.php:438
5685
  msgid "The %s object was not found"
5686
  msgstr ""
5687
 
5688
- #: src/methods/openstack-base.php:522
5689
  msgid "%s error - we accessed the container, but failed to create a file within it"
5690
  msgstr ""
5691
 
5692
- #: src/methods/openstack-base.php:523, src/methods/openstack-base.php:528
5693
  msgid "Region: %s"
5694
  msgstr ""
5695
 
@@ -5759,7 +5851,7 @@ msgstr ""
5759
  msgid "%s re-assembly error (%s): (see log file for more)"
5760
  msgstr ""
5761
 
5762
- #: src/methods/s3.php:495, src/methods/s3.php:691, src/methods/s3.php:795
5763
  msgid "Error: Failed to access bucket %s. Check your permissions and credentials."
5764
  msgstr ""
5765
 
@@ -5767,71 +5859,71 @@ msgstr ""
5767
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials."
5768
  msgstr ""
5769
 
5770
- #: src/methods/s3.php:776, src/methods/s3.php:820
5771
  msgid "Error: Failed to download %s. Check your permissions and credentials."
5772
  msgstr ""
5773
 
5774
- #: src/methods/s3.php:788
5775
  msgid "%s Error: Failed to download %s. Check your permissions and credentials."
5776
  msgstr ""
5777
 
5778
- #: src/methods/s3.php:866
5779
  msgid "... and many more!"
5780
  msgstr ""
5781
 
5782
- #: src/methods/s3.php:875
5783
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
5784
  msgstr ""
5785
 
5786
- #: src/methods/s3.php:885
5787
  msgid "Get your access key and secret key from your <a href=\"%s\">%s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist."
5788
  msgstr ""
5789
 
5790
- #: src/methods/s3.php:887
5791
  msgid "If you see errors about SSL certificates, then please go here for help."
5792
  msgstr ""
5793
 
5794
- #: src/methods/s3.php:889
5795
  msgid "Other %s FAQs."
5796
  msgstr ""
5797
 
5798
- #: src/methods/s3.php:939
5799
  msgid "To create a new IAM sub-user and access key that has access only to this bucket, use this add-on."
5800
  msgstr ""
5801
 
5802
- #: src/methods/s3.php:948
5803
  msgid "%s access key"
5804
  msgstr ""
5805
 
5806
- #: src/methods/s3.php:952
5807
  msgid "%s secret key"
5808
  msgstr ""
5809
 
5810
- #: src/methods/s3.php:956
5811
  msgid "%s location"
5812
  msgstr ""
5813
 
5814
- #: src/methods/s3.php:957
5815
  msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
5816
  msgstr ""
5817
 
5818
- #: src/methods/s3.php:1151
5819
  msgid "API secret"
5820
  msgstr ""
5821
 
5822
- #: src/methods/s3.php:1202
5823
  msgid "The AWS access key looks to be wrong (valid %s access keys begin with \"AK\")"
5824
  msgstr ""
5825
 
5826
- #: src/methods/s3.php:1216
5827
  msgid "The communication with %s was encrypted."
5828
  msgstr ""
5829
 
5830
- #: src/methods/s3.php:1218
5831
  msgid "The communication with %s was not encrypted."
5832
  msgstr ""
5833
 
5834
- #: src/methods/s3.php:1223
5835
  msgid "Please check your access credentials."
5836
  msgstr ""
5837
 
@@ -5839,23 +5931,23 @@ msgstr ""
5839
  msgid "S3 (Compatible)"
5840
  msgstr ""
5841
 
5842
- #: src/methods/stream-base.php:126, src/methods/stream-base.php:130
5843
  msgid "Chunk %s: A %s error occurred"
5844
  msgstr ""
5845
 
5846
- #: src/methods/stream-base.php:303
5847
  msgid "Error opening remote file: Failed to download"
5848
  msgstr ""
5849
 
5850
- #: src/methods/stream-base.php:319
5851
  msgid "Download chunk size failed to change to %d"
5852
  msgstr ""
5853
 
5854
- #: src/methods/stream-base.php:322
5855
  msgid "Download chunk size successfully changed to %d"
5856
  msgstr ""
5857
 
5858
- #: src/methods/stream-base.php:334
5859
  msgid "Local write failed: Failed to download"
5860
  msgstr ""
5861
 
@@ -6079,302 +6171,314 @@ msgstr ""
6079
  msgid "(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility)."
6080
  msgstr ""
6081
 
6082
- #: src/restorer.php:241
6083
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
6084
  msgstr ""
6085
 
6086
- #: src/restorer.php:369
6087
  msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
6088
  msgstr ""
6089
 
6090
- #: src/restorer.php:380
6091
  msgid "Looking for %s archive: file name: %s"
6092
  msgstr ""
6093
 
6094
- #: src/restorer.php:383
6095
  msgid "Skipping: this archive was already restored."
6096
  msgstr ""
6097
 
6098
- #: src/restorer.php:395
6099
  msgid "Archive is expected to be size:"
6100
  msgstr ""
6101
 
6102
- #: src/restorer.php:400
6103
  msgid "file is size:"
6104
  msgstr ""
6105
 
6106
- #: src/restorer.php:403
6107
  msgid "The backup records do not contain information about the proper size of this file."
6108
  msgstr ""
6109
 
6110
- #: src/restorer.php:406, src/restorer.php:407
6111
  msgid "Could not find one of the files for restoration"
6112
  msgstr ""
6113
 
6114
- #: src/restorer.php:496
6115
  msgid "Final checks"
6116
  msgstr ""
6117
 
6118
- #: src/restorer.php:589
6119
  msgid "Error message"
6120
  msgstr ""
6121
 
6122
- #: src/restorer.php:705
6123
  msgid "UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually."
6124
  msgstr ""
6125
 
6126
- #: src/restorer.php:706
6127
  msgid "Backup file not available."
6128
  msgstr ""
6129
 
6130
- #: src/restorer.php:707
6131
  msgid "Copying this entity failed."
6132
  msgstr ""
6133
 
6134
- #: src/restorer.php:708
6135
  msgid "Unpacking backup..."
6136
  msgstr ""
6137
 
6138
- #: src/restorer.php:709
6139
  msgid "Decrypting database (can take a while)..."
6140
  msgstr ""
6141
 
6142
- #: src/restorer.php:710
6143
  msgid "Database successfully decrypted."
6144
  msgstr ""
6145
 
6146
- #: src/restorer.php:711
6147
  msgid "Moving old data out of the way..."
6148
  msgstr ""
6149
 
6150
- #: src/restorer.php:712
6151
  msgid "Moving unpacked backup into place..."
6152
  msgstr ""
6153
 
6154
- #: src/restorer.php:713
6155
  msgid "Restoring the database (on a large site this can take a long time - if it times out (which can happen if your web hosting company has configured your hosting to limit resources) then you should use a different method, such as phpMyAdmin)..."
6156
  msgstr ""
6157
 
6158
- #: src/restorer.php:714
6159
  msgid "Cleaning up rubbish..."
6160
  msgstr ""
6161
 
6162
- #: src/restorer.php:715
6163
  msgid "Could not move old files out of the way."
6164
  msgstr ""
6165
 
6166
- #: src/restorer.php:715
6167
  msgid "You should check the file ownerships and permissions in your WordPress installation"
6168
  msgstr ""
6169
 
6170
- #: src/restorer.php:716
6171
  msgid "Could not delete old path."
6172
  msgstr ""
6173
 
6174
- #: src/restorer.php:717
6175
  msgid "Could not move new files into place. Check your wp-content/upgrade folder."
6176
  msgstr ""
6177
 
6178
- #: src/restorer.php:718
6179
  msgid "Could not move the files into place. Check your file permissions."
6180
  msgstr ""
6181
 
6182
- #: src/restorer.php:719
6183
  msgid "Failed to delete working directory after restoring."
6184
  msgstr ""
6185
 
6186
- #: src/restorer.php:721
6187
  msgid "Failed to unpack the archive"
6188
  msgstr ""
6189
 
6190
- #: src/restorer.php:722
6191
  msgid "Failed to read the manifest file from backup."
6192
  msgstr ""
6193
 
6194
- #: src/restorer.php:723
6195
  msgid "Failed to find a manifest file in the backup."
6196
  msgstr ""
6197
 
6198
- #: src/restorer.php:724
6199
  msgid "Failed to read from the working directory."
6200
  msgstr ""
6201
 
6202
- #: src/restorer.php:1018
6203
  msgid "Failed to create a temporary directory"
6204
  msgstr ""
6205
 
6206
- #: src/restorer.php:1034
6207
  msgid "Failed to write out the decrypted database to the filesystem"
6208
  msgstr ""
6209
 
6210
- #: src/restorer.php:1115
6211
  msgid "The directory does not exist, and the attempt to create it failed"
6212
  msgstr ""
6213
 
6214
- #: src/restorer.php:1118
6215
  msgid "The directory does not exist"
6216
  msgstr ""
6217
 
6218
- #: src/restorer.php:1159
6219
  msgid "wp-config.php from backup: will restore as wp-config-backup.php"
6220
  msgstr ""
6221
 
6222
- #: src/restorer.php:1166
6223
  msgid "wp-config.php from backup: restoring (as per user's request)"
6224
  msgstr ""
6225
 
6226
- #: src/restorer.php:1351, src/restorer.php:1359
6227
  msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
6228
  msgstr ""
6229
 
6230
- #: src/restorer.php:1359
6231
  msgid "file"
6232
  msgstr ""
6233
 
6234
- #: src/restorer.php:1375
6235
  msgid "Existing unremoved folders from a previous restore exist (please use the \"Delete Old Directories\" button to delete them before trying again): %s"
6236
  msgstr ""
6237
 
6238
- #: src/restorer.php:1383
6239
  msgid "This version of UpdraftPlus does not know how to handle this type of foreign backup"
6240
  msgstr ""
6241
 
6242
- #: src/restorer.php:1488, src/restorer.php:1536
6243
  msgid "The WordPress content folder (wp-content) was not found in this zip file."
6244
  msgstr ""
6245
 
6246
- #: src/restorer.php:1629
6247
  msgid "Files found:"
6248
  msgstr ""
6249
 
6250
- #: src/restorer.php:2052
6251
  msgid "Please supply the requested information, and then continue."
6252
  msgstr ""
6253
 
6254
- #: src/restorer.php:2125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6255
  msgid "Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method."
6256
  msgstr ""
6257
 
6258
- #: src/restorer.php:2148
6259
  msgid "Failed to find database file"
6260
  msgstr ""
6261
 
6262
- #: src/restorer.php:2169
6263
  msgid "Failed to open database file"
6264
  msgstr ""
6265
 
6266
- #: src/restorer.php:2267, src/restorer.php:2309
6267
  msgid "Your database user does not have permission to drop tables"
6268
  msgstr ""
6269
 
6270
- #: src/restorer.php:2270
6271
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
6272
  msgstr ""
6273
 
6274
- #: src/restorer.php:2314
6275
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
6276
  msgstr ""
6277
 
6278
- #: src/restorer.php:2363
6279
  msgid "Backup of: %s"
6280
  msgstr ""
6281
 
6282
- #: src/restorer.php:2370
6283
  msgid "Backup created by:"
6284
  msgstr ""
6285
 
6286
- #: src/restorer.php:2375
6287
  msgid "Site home:"
6288
  msgstr ""
6289
 
6290
- #: src/restorer.php:2381
6291
  msgid "Content URL:"
6292
  msgstr ""
6293
 
6294
- #: src/restorer.php:2386
6295
  msgid "Uploads URL:"
6296
  msgstr ""
6297
 
6298
- #: src/restorer.php:2396
6299
  msgid "Skipped tables:"
6300
  msgstr ""
6301
 
6302
- #: src/restorer.php:2451
6303
  msgid "Split line to avoid exceeding maximum packet size"
6304
  msgstr ""
6305
 
6306
- #: src/restorer.php:2482, src/restorer.php:3038, src/restorer.php:3105, src/restorer.php:3122
6307
  msgid "An error occurred on the first %s command - aborting run"
6308
  msgstr ""
6309
 
6310
- #: src/restorer.php:2595
6311
- msgid "Requested table engine (%s) is not present - changing to MyISAM."
6312
- msgstr ""
6313
-
6314
- #: src/restorer.php:2609
6315
- msgid "Requested table character set (%s) is not present - changing to %s."
6316
- msgstr ""
6317
-
6318
- #: src/restorer.php:2625
6319
- msgid "Found and replaced existing table foreign key constraints as the table prefix has changed."
6320
- msgstr ""
6321
-
6322
- #: src/restorer.php:2668
6323
- msgid "Requested table collation (%1$s) is not present - changing to %2$s."
6324
- msgid_plural "Requested table collations (%1$s) are not present - changing to %2$s."
6325
- msgstr[0] ""
6326
- msgstr[1] ""
6327
-
6328
- #: src/restorer.php:2670
6329
- msgid "Processing table (%s)"
6330
- msgstr ""
6331
-
6332
- #: src/restorer.php:2674
6333
- msgid "will restore as:"
6334
- msgstr ""
6335
-
6336
- #: src/restorer.php:2720
6337
  msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
6338
  msgstr ""
6339
 
6340
- #: src/restorer.php:2726
6341
  msgid "Requested character set (%s) is not present - changing to %s."
6342
  msgstr ""
6343
 
6344
- #: src/restorer.php:2828
6345
- msgid "Skipping table: %s already restored on a prior run; next table to restore: %s"
6346
  msgstr ""
6347
 
6348
- #: src/restorer.php:2933
 
 
 
 
6349
  msgid "An SQL line that is larger than the maximum packet size and cannot be split was found; this line will not be processed, but will be dropped: %s"
6350
  msgstr ""
6351
 
6352
- #: src/restorer.php:3075
6353
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
6354
  msgid "An error (%s) occurred:"
6355
  msgstr ""
6356
 
6357
- #: src/restorer.php:3093
6358
  msgid "The Database connection has been closed and cannot be reopened."
6359
  msgstr ""
6360
 
6361
- #: src/restorer.php:3120
6362
  msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
6363
  msgstr ""
6364
 
6365
- #: src/restorer.php:3120
6366
  msgid "This database needs to be deployed on MySQL version %s or later."
6367
  msgstr ""
6368
 
6369
- #: src/restorer.php:3122
6370
  msgid "To use this backup, your database server needs to support the %s character set."
6371
  msgstr ""
6372
 
6373
- #: src/restorer.php:3127
6374
  msgid "Too many database errors have occurred - aborting"
6375
  msgstr ""
6376
 
6377
- #: src/restorer.php:3257, src/restorer.php:3332
6378
  msgid "Table prefix has changed: changing %s table field(s) accordingly:"
6379
  msgstr ""
6380
 
@@ -6742,6 +6846,10 @@ msgstr ""
6742
  msgid "You will need to restore it manually."
6743
  msgstr ""
6744
 
 
 
 
 
6745
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27
6746
  msgid "Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here."
6747
  msgstr ""
@@ -6834,51 +6942,59 @@ msgstr ""
6834
  msgid "Add an exclusion rule"
6835
  msgstr ""
6836
 
6837
- #: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:62
6838
  msgid "Backup date"
6839
  msgstr ""
6840
 
6841
- #: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:95
6842
  msgid "Backup data (click to download)"
6843
  msgstr ""
6844
 
6845
- #: src/templates/wp-admin/settings/existing-backups-table.php:85
6846
  msgid "remote site"
6847
  msgstr ""
6848
 
6849
- #: src/templates/wp-admin/settings/existing-backups-table.php:87
6850
  msgid "Remote storage: %s"
6851
  msgstr ""
6852
 
6853
- #: src/templates/wp-admin/settings/existing-backups-table.php:152
 
 
 
 
 
 
 
 
6854
  msgid "Actions upon selected backups"
6855
  msgstr ""
6856
 
6857
- #: src/templates/wp-admin/settings/existing-backups-table.php:153
6858
  msgid "Delete selected backups"
6859
  msgstr ""
6860
 
6861
- #: src/templates/wp-admin/settings/existing-backups-table.php:154
6862
  msgid "Select all backups"
6863
  msgstr ""
6864
 
6865
- #: src/templates/wp-admin/settings/existing-backups-table.php:154
6866
  msgid "Select all"
6867
  msgstr ""
6868
 
6869
- #: src/templates/wp-admin/settings/existing-backups-table.php:155
6870
  msgid "Deselect all backups"
6871
  msgstr ""
6872
 
6873
- #: src/templates/wp-admin/settings/existing-backups-table.php:155
6874
  msgid "Deselect"
6875
  msgstr ""
6876
 
6877
- #: src/templates/wp-admin/settings/existing-backups-table.php:156
6878
  msgid "Use ctrl / cmd + press to select several items, or ctrl / cmd + shift + press to select all in between"
6879
  msgstr ""
6880
 
6881
- #: src/templates/wp-admin/settings/existing-backups-table.php:159
6882
  msgid "Please allow time for the communications with the remote storage to complete."
6883
  msgstr ""
6884
 
@@ -7052,7 +7168,7 @@ msgid "Show expert settings"
7052
  msgstr ""
7053
 
7054
  #: src/templates/wp-admin/settings/form-contents.php:294
7055
- msgid "click this to show some further options; don't bother with this unless you have a problem or are curious."
7056
  msgstr ""
7057
 
7058
  #: src/templates/wp-admin/settings/form-contents.php:304
21
  msgid "WordPress core (only)"
22
  msgstr ""
23
 
24
+ #: src/addons/autobackup.php:139, src/addons/autobackup.php:1068
25
  msgid "UpdraftPlus Automatic Backups"
26
  msgstr ""
27
 
28
+ #: src/addons/autobackup.php:157, src/addons/autobackup.php:1048, src/admin.php:858
29
  msgid "Automatic backup before update"
30
  msgstr ""
31
 
32
+ #: src/addons/autobackup.php:322
33
  msgid "Automatically backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
34
  msgstr ""
35
 
36
+ #: src/addons/autobackup.php:324, src/addons/autobackup.php:1107
37
  msgid "Remember this choice for next time (you will still have the chance to change it)"
38
  msgstr ""
39
 
40
+ #: src/addons/autobackup.php:325, src/addons/autobackup.php:1112, src/addons/lockadmin.php:160
41
  msgid "Read more about how this works..."
42
  msgstr ""
43
 
44
+ #: src/addons/autobackup.php:364
45
  msgid "Creating %s and database backup with UpdraftPlus..."
46
  msgstr ""
47
 
48
+ #: src/addons/autobackup.php:364, src/addons/autobackup.php:458
49
  msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
50
  msgstr ""
51
 
52
+ #: src/addons/autobackup.php:365, src/addons/autobackup.php:460, src/admin.php:3194, src/admin.php:3200, src/templates/wp-admin/settings/take-backup.php:71
53
  msgid "Last log message"
54
  msgstr ""
55
 
56
+ #: src/addons/autobackup.php:368, src/addons/autobackup.php:465
57
  msgid "Starting automatic backup..."
58
  msgstr ""
59
 
60
+ #: src/addons/autobackup.php:370, src/addons/autobackup.php:462, src/admin.php:809, src/methods/remotesend.php:69, src/methods/remotesend.php:77, src/methods/remotesend.php:239, src/methods/remotesend.php:255
61
  msgid "Unexpected response:"
62
  msgstr ""
63
 
64
+ #: src/addons/autobackup.php:417
65
  msgid "plugins"
66
  msgstr ""
67
 
68
+ #: src/addons/autobackup.php:424
69
  msgid "themes"
70
  msgstr ""
71
 
72
+ #: src/addons/autobackup.php:458
73
  msgid "Creating database backup with UpdraftPlus..."
74
  msgstr ""
75
 
76
+ #: src/addons/autobackup.php:467, src/addons/autobackup.php:598, src/addons/autobackup.php:649
77
  msgid "Automatic Backup"
78
  msgstr ""
79
 
80
+ #: src/addons/autobackup.php:522
81
  msgid "Creating backup with UpdraftPlus..."
82
  msgstr ""
83
 
84
+ #: src/addons/autobackup.php:551
85
  msgid "Errors have occurred:"
86
  msgstr ""
87
 
88
+ #: src/addons/autobackup.php:570, src/addons/autobackup.php:572
89
  msgid "Backup succeeded"
90
  msgstr ""
91
 
92
+ #: src/addons/autobackup.php:570, src/addons/autobackup.php:572
93
  msgid "(view log...)"
94
  msgstr ""
95
 
96
+ #: src/addons/autobackup.php:570, src/addons/autobackup.php:572
97
  msgid "now proceeding with the updates..."
98
  msgstr ""
99
 
100
+ #: src/addons/autobackup.php:1094, src/admin.php:1012
101
  msgid "Be safe with an automatic backup"
102
  msgstr ""
103
 
104
+ #: src/addons/autobackup.php:1102
105
  msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
106
  msgstr ""
107
 
108
+ #: src/addons/autobackup.php:1119
109
  msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
110
  msgstr ""
111
 
112
+ #: src/addons/autobackup.php:1126, src/admin.php:854
113
  msgid "Proceed with update"
114
  msgstr ""
115
 
116
+ #: src/addons/azure.php:260, src/methods/addon-base-v2.php:258, src/methods/openstack-base.php:460, src/methods/stream-base.php:304, src/methods/stream-base.php:311, src/methods/stream-base.php:342
117
  msgid "%s Error"
118
  msgstr ""
119
 
120
+ #: src/addons/azure.php:260, src/class-updraftplus.php:4282, src/methods/googledrive.php:1251, src/methods/s3.php:351
121
  msgid "File not found"
122
  msgstr ""
123
 
124
+ #: src/addons/azure.php:406
125
  msgid "Could not access container"
126
  msgstr ""
127
 
128
+ #: src/addons/azure.php:413, src/methods/stream-base.php:152, src/methods/stream-base.php:157
129
  msgid "Upload failed"
130
  msgstr ""
131
 
132
+ #: src/addons/azure.php:436, src/addons/backblaze.php:548, src/addons/googlecloud.php:846, src/methods/s3.php:1238
133
  msgid "Delete failed:"
134
  msgstr ""
135
 
136
+ #: src/addons/azure.php:552
137
  msgid "Could not create the container"
138
  msgstr ""
139
 
140
+ #: src/addons/azure.php:589
141
  msgid "Microsoft Azure is not compatible with sites hosted on a localhost or 127.0.0.1 URL - their developer console forbids these (current URL is: %s)."
142
  msgstr ""
143
 
144
+ #: src/addons/azure.php:591
145
  msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
146
  msgstr ""
147
 
148
+ #: src/addons/azure.php:597, src/addons/migrator.php:957, src/admin.php:1189, src/admin.php:1194, src/admin.php:1200, src/admin.php:1204, src/admin.php:1208, src/admin.php:1217, src/admin.php:4065, src/admin.php:4072, src/admin.php:4074, src/admin.php:5652, src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:443, src/methods/ftp.php:343, src/methods/openstack-base.php:576, src/methods/s3.php:883, src/methods/s3.php:887, src/methods/updraftvault.php:321, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/udaddons/updraftplus-addons.php:301
149
  msgid "Warning"
150
  msgstr ""
151
 
152
+ #: src/addons/azure.php:597, src/admin.php:4065, src/methods/updraftvault.php:321
153
  msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
154
  msgstr ""
155
 
156
+ #: src/addons/azure.php:600
157
  msgid "Create Azure credentials in your Azure developer console."
158
  msgstr ""
159
 
160
+ #: src/addons/azure.php:601, src/addons/onedrive.php:1169, src/includes/class-remote-send.php:395
161
  msgid "For longer help, including screenshots, follow this link."
162
  msgstr ""
163
 
164
+ #: src/addons/azure.php:619
165
  msgid "%s Account Name"
166
  msgstr ""
167
 
168
+ #: src/addons/azure.php:619, src/addons/azure.php:623, src/addons/azure.php:628, src/addons/azure.php:633
169
  msgid "Azure"
170
  msgstr ""
171
 
172
+ #: src/addons/azure.php:620, src/addons/azure.php:620
173
  msgid "This is not your Azure login - see the instructions if needing more guidance."
174
  msgstr ""
175
 
176
+ #: src/addons/azure.php:623
177
  msgid "%s Key"
178
  msgstr ""
179
 
180
+ #: src/addons/azure.php:628
181
  msgid "%s Container"
182
  msgstr ""
183
 
184
+ #: src/addons/azure.php:629
185
  msgid "Enter the path of the %s you wish to use here."
186
  msgstr ""
187
 
188
+ #: src/addons/azure.php:629
189
  msgid "See Microsoft's guidelines on container naming by following this link."
190
  msgstr ""
191
 
192
+ #: src/addons/azure.php:633
193
  msgid "%s Prefix"
194
  msgstr ""
195
 
196
+ #: src/addons/azure.php:633
197
  msgid "optional"
198
  msgstr ""
199
 
200
+ #: src/addons/azure.php:634
201
  msgid "You can enter the path of any %s virtual folder you wish to use here."
202
  msgstr ""
203
 
204
+ #: src/addons/azure.php:634, src/addons/google-enhanced.php:77, src/addons/onedrive.php:1209
205
  msgid "If you leave it blank, then the backup will be placed in the root of your %s"
206
  msgstr ""
207
 
208
+ #: src/addons/azure.php:634
209
  msgid "container"
210
  msgstr ""
211
 
212
+ #: src/addons/azure.php:637
213
  msgid "Azure Account"
214
  msgstr ""
215
 
216
+ #: src/addons/azure.php:640
217
  msgid "Azure Global"
218
  msgstr ""
219
 
220
+ #: src/addons/azure.php:641
221
  msgid "Azure Germany"
222
  msgstr ""
223
 
224
+ #: src/addons/azure.php:642
225
  msgid "Azure Government"
226
  msgstr ""
227
 
228
+ #: src/addons/azure.php:643
229
  msgid "Azure China"
230
  msgstr ""
231
 
232
+ #: src/addons/backblaze.php:198, src/admin.php:2269
233
  msgid "Error: unexpected file read fail"
234
  msgstr ""
235
 
236
+ #: src/addons/backblaze.php:205, src/addons/backblaze.php:230, src/addons/cloudfiles-enhanced.php:123, src/addons/migrator.php:903, src/addons/migrator.php:1199, src/addons/migrator.php:1277, src/addons/migrator.php:1326, src/addons/migrator.php:1580, src/addons/s3-enhanced.php:161, src/addons/s3-enhanced.php:166, src/addons/s3-enhanced.php:168, src/addons/sftp.php:922, src/addons/webdav.php:204, src/admin.php:89, src/admin.php:823, src/includes/class-remote-send.php:325, src/includes/class-remote-send.php:371, src/includes/class-remote-send.php:377, src/includes/class-remote-send.php:442, src/includes/class-remote-send.php:500, src/includes/class-remote-send.php:527, src/includes/class-remote-send.php:555, src/includes/class-remote-send.php:565, src/includes/class-remote-send.php:570, src/includes/class-remote-send.php:582, src/methods/remotesend.php:74, src/methods/remotesend.php:252, src/methods/updraftvault.php:564, src/restorer.php:412, src/restorer.php:440, src/restorer.php:2069
237
  msgid "Error:"
238
  msgstr ""
239
 
240
+ #: src/addons/backblaze.php:472
241
  msgid "Account ID"
242
  msgstr ""
243
 
244
+ #: src/addons/backblaze.php:473
245
  msgid "Account Key"
246
  msgstr ""
247
 
248
+ #: src/addons/backblaze.php:495
249
  msgid "Invalid bucket name"
250
  msgstr ""
251
 
252
+ #: src/addons/backblaze.php:517, src/methods/s3.php:1207
253
  msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another %s user may already have taken your name)."
254
  msgstr ""
255
 
256
+ #: src/addons/backblaze.php:601, src/methods/cloudfiles.php:232, src/methods/dropbox.php:355, src/methods/openstack-base.php:117
257
  msgid "No settings were found"
258
  msgstr ""
259
 
260
+ #: src/addons/backblaze.php:649
261
  msgid "For help configuring %s, including screenshots, follow this link."
262
  msgstr ""
263
 
264
+ #: src/addons/backblaze.php:670
265
  msgid "Master Application Key ID"
266
  msgstr ""
267
 
268
+ #: src/addons/backblaze.php:672
269
  msgid "Get these settings from %s, or sign up %s."
270
  msgstr ""
271
 
272
+ #: src/addons/backblaze.php:672, src/addons/backblaze.php:672
273
  msgid "here"
274
  msgstr ""
275
 
276
+ #: src/addons/backblaze.php:677
277
  msgid "Application key"
278
  msgstr ""
279
 
280
+ #: src/addons/backblaze.php:682
281
  msgid "Bucket application key ID"
282
  msgstr ""
283
 
284
+ #: src/addons/backblaze.php:683, src/addons/backblaze.php:684
285
  msgid "This is needed if, and only if, your application key was a bucket-specific application key (not a master key)"
286
  msgstr ""
287
 
288
+ #: src/addons/backblaze.php:689
289
  msgid "Backup path"
290
  msgstr ""
291
 
292
+ #: src/addons/backblaze.php:690
293
  msgid "Bucket name"
294
  msgstr ""
295
 
296
+ #: src/addons/backblaze.php:690
297
  msgid "some/path"
298
  msgstr ""
299
 
300
+ #: src/addons/backblaze.php:691
301
  msgid "There are limits upon which path-names are valid. Spaces are not allowed."
302
  msgstr ""
303
 
309
  msgid "Adds enhanced capabilities for Rackspace Cloud Files users"
310
  msgstr ""
311
 
312
+ #: src/addons/cloudfiles-enhanced.php:44, src/methods/cloudfiles-new.php:113, src/methods/cloudfiles.php:469
313
  msgid "US (default)"
314
  msgstr ""
315
 
316
+ #: src/addons/cloudfiles-enhanced.php:45, src/methods/cloudfiles-new.php:114, src/methods/cloudfiles.php:470
317
  msgid "UK"
318
  msgstr ""
319
 
365
  msgid "You need to enter a valid new email address"
366
  msgstr ""
367
 
368
+ #: src/addons/cloudfiles-enhanced.php:120, src/addons/cloudfiles-enhanced.php:133, src/addons/cloudfiles-enhanced.php:137, src/methods/cloudfiles.php:557, src/methods/cloudfiles.php:560, src/methods/cloudfiles.php:563
369
  msgid "Cloud Files authentication failed"
370
  msgstr ""
371
 
372
+ #: src/addons/cloudfiles-enhanced.php:160, src/addons/s3-enhanced.php:237, src/methods/cloudfiles-new.php:37, src/methods/openstack-base.php:489, src/methods/openstack-base.php:491, src/methods/openstack-base.php:512, src/methods/openstack2.php:33
373
  msgid "Authorisation failed (check your credentials)"
374
  msgstr ""
375
 
376
+ #: src/addons/cloudfiles-enhanced.php:162
377
  msgid "Conflict: that user or email address already exists"
378
  msgstr ""
379
 
380
+ #: src/addons/cloudfiles-enhanced.php:164, src/addons/cloudfiles-enhanced.php:167, src/addons/cloudfiles-enhanced.php:171, src/addons/cloudfiles-enhanced.php:183, src/addons/cloudfiles-enhanced.php:190, src/addons/cloudfiles-enhanced.php:194
381
  msgid "Cloud Files operation failed (%s)"
382
  msgstr ""
383
 
384
+ #: src/addons/cloudfiles-enhanced.php:205, src/addons/s3-enhanced.php:334
385
  msgid "Username: %s"
386
  msgstr ""
387
 
388
+ #: src/addons/cloudfiles-enhanced.php:205
389
  msgid "Password: %s"
390
  msgstr ""
391
 
392
+ #: src/addons/cloudfiles-enhanced.php:205
393
  msgid "API Key: %s"
394
  msgstr ""
395
 
396
+ #: src/addons/cloudfiles-enhanced.php:273
397
  msgid "Create new API user and container"
398
  msgstr ""
399
 
400
+ #: src/addons/cloudfiles-enhanced.php:276
401
  msgid "Enter your Rackspace admin username/API key (so that Rackspace can authenticate your permission to create new users), and enter a new (unique) username and email address for the new user and a container name."
402
  msgstr ""
403
 
404
+ #: src/addons/cloudfiles-enhanced.php:284
405
  msgid "US or UK Rackspace Account"
406
  msgstr ""
407
 
408
+ #: src/addons/cloudfiles-enhanced.php:285, src/methods/cloudfiles-new.php:110
409
  msgid "Accounts created at rackspacecloud.com are US accounts; accounts created at rackspace.co.uk are UK accounts."
410
  msgstr ""
411
 
412
+ #: src/addons/cloudfiles-enhanced.php:289
413
  msgid "Admin Username"
414
  msgstr ""
415
 
416
+ #: src/addons/cloudfiles-enhanced.php:292
417
  msgid "Admin API Key"
418
  msgstr ""
419
 
420
+ #: src/addons/cloudfiles-enhanced.php:295
421
  msgid "New User's Username"
422
  msgstr ""
423
 
424
+ #: src/addons/cloudfiles-enhanced.php:298
425
  msgid "New User's Email Address"
426
  msgstr ""
427
 
428
+ #: src/addons/cloudfiles-enhanced.php:301, src/methods/cloudfiles-new.php:119
429
  msgid "Cloud Files Storage Region"
430
  msgstr ""
431
 
432
+ #: src/addons/cloudfiles-enhanced.php:305, src/methods/cloudfiles-new.php:142, src/methods/cloudfiles.php:495
433
  msgid "Cloud Files Container"
434
  msgstr ""
435
 
437
  msgid "Store at"
438
  msgstr ""
439
 
440
+ #: src/addons/fixtime.php:305
441
  msgid "Add an additional database retention rule"
442
  msgstr ""
443
 
444
+ #: src/addons/fixtime.php:305, src/addons/fixtime.php:310
445
  msgid "Add an additional retention rule..."
446
  msgstr ""
447
 
448
+ #: src/addons/fixtime.php:310
449
  msgid "Add an additional file retention rule"
450
  msgstr ""
451
 
452
+ #: src/addons/fixtime.php:447
453
  msgid "(at same time as files backup)"
454
  msgstr ""
455
 
456
+ #: src/addons/fixtime.php:552
457
  msgid "Day to run backups"
458
  msgstr ""
459
 
460
+ #: src/addons/fixtime.php:570
461
  msgid "starting from next time it is"
462
  msgstr ""
463
 
464
+ #: src/addons/fixtime.php:570
465
  msgid "Start time"
466
  msgstr ""
467
 
468
+ #: src/addons/fixtime.php:570
469
  msgid "Enter in format HH:MM (e.g. 14:22)."
470
  msgstr ""
471
 
472
+ #: src/addons/fixtime.php:570
473
  msgid "The time zone used is that from your WordPress settings, in Settings -> General."
474
  msgstr ""
475
 
476
+ #: src/addons/google-enhanced.php:75, src/methods/googledrive.php:285, src/methods/googledrive.php:287, src/methods/googledrive.php:558, src/methods/googledrive.php:600, src/methods/googledrive.php:643, src/methods/googledrive.php:650, src/methods/googledrive.php:662, src/methods/googledrive.php:678, src/methods/googledrive.php:680, src/methods/googledrive.php:1322, src/methods/googledrive.php:1329, src/methods/googledrive.php:1329, src/methods/googledrive.php:1362, src/methods/googledrive.php:1366, src/methods/googledrive.php:1377, src/methods/googledrive.php:1388
477
  msgid "Google Drive"
478
  msgstr ""
479
 
480
+ #: src/addons/google-enhanced.php:75, src/methods/googledrive.php:1377, src/methods/googledrive.php:1388
481
  msgid "Folder"
482
  msgstr ""
483
 
484
+ #: src/addons/google-enhanced.php:77, src/addons/onedrive.php:1209
485
  msgid "Enter the path of the %s folder you wish to use here."
486
  msgstr ""
487
 
488
+ #: src/addons/google-enhanced.php:77, src/addons/googlecloud.php:1040, src/addons/onedrive.php:1209
489
  msgid "e.g. %s"
490
  msgstr ""
491
 
597
  msgid "Frankfurt"
598
  msgstr ""
599
 
600
+ #: src/addons/googlecloud.php:125, src/addons/googlecloud.php:796, src/methods/s3.php:1181
601
  msgid "Failure: No bucket details were given."
602
  msgstr ""
603
 
604
+ #: src/addons/googlecloud.php:208, src/addons/googlecloud.php:213, src/methods/cloudfiles.php:128, src/methods/googledrive.php:1166, src/methods/googledrive.php:1171
605
  msgid "Error: Failed to open local file"
606
  msgstr ""
607
 
608
+ #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:317, src/addons/googlecloud.php:335, src/addons/googlecloud.php:900, src/addons/googlecloud.php:950
609
  msgid "%s Service Exception."
610
  msgstr ""
611
 
612
+ #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:317, src/addons/googlecloud.php:325, src/addons/googlecloud.php:335, src/addons/googlecloud.php:721, src/addons/googlecloud.php:900, src/addons/googlecloud.php:950, src/addons/googlecloud.php:992, src/addons/googlecloud.php:992, src/addons/googlecloud.php:1020, src/addons/googlecloud.php:1028, src/addons/googlecloud.php:1040
613
  msgid "Google Cloud"
614
  msgstr ""
615
 
616
+ #: src/addons/googlecloud.php:264, src/addons/googlecloud.php:335, src/addons/googlecloud.php:900, src/addons/googlecloud.php:950
617
  msgid "You do not have access to this bucket."
618
  msgstr ""
619
 
620
+ #: src/addons/googlecloud.php:301, src/methods/googledrive.php:1291
621
  msgid "download: failed: file not found"
622
  msgstr ""
623
 
624
+ #: src/addons/googlecloud.php:317
625
  msgid "You do not have access to this bucket"
626
  msgstr ""
627
 
628
+ #: src/addons/googlecloud.php:325, src/addons/sftp.php:50, src/methods/addon-base-v2.php:74, src/methods/addon-base-v2.php:115, src/methods/addon-base-v2.php:157, src/methods/addon-base-v2.php:234, src/methods/addon-base-v2.php:323, src/methods/ftp.php:42, src/methods/googledrive.php:285, src/methods/googledrive.php:287, src/methods/stream-base.php:33, src/methods/stream-base.php:172, src/methods/stream-base.php:178, src/methods/stream-base.php:212, src/methods/stream-base.php:285
629
  msgid "No %s settings were found"
630
  msgstr ""
631
 
632
+ #: src/addons/googlecloud.php:397
633
  msgid "Authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
634
  msgstr ""
635
 
637
  msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
638
  msgstr ""
639
 
640
+ #: src/addons/googlecloud.php:445, src/addons/migrator.php:585, src/admin.php:2452, src/admin.php:2473, src/admin.php:2481, src/class-updraftplus.php:1101, src/class-updraftplus.php:1107, src/class-updraftplus.php:4493, src/class-updraftplus.php:4495, src/class-updraftplus.php:4661, src/class-updraftplus.php:4668, src/class-updraftplus.php:4742, src/methods/googledrive.php:486, src/methods/s3.php:351
641
  msgid "Error: %s"
642
  msgstr ""
643
 
645
  msgid "Authorization failed"
646
  msgstr ""
647
 
648
+ #: src/addons/googlecloud.php:510, src/addons/googlecloud.php:511, src/addons/googlecloud.php:869, src/methods/googledrive.php:704, src/methods/googledrive.php:705, src/methods/googledrive.php:715, src/methods/googledrive.php:716
649
  msgid "Account is not authorized."
650
  msgstr ""
651
 
652
+ #: src/addons/googlecloud.php:544
653
  msgid "Have not yet obtained an access token from Google - you need to authorize or re-authorize your connection to Google Cloud."
654
  msgstr ""
655
 
656
+ #: src/addons/googlecloud.php:693
657
  msgid "But no bucket was defined, so backups may not complete. Please enter a bucket name in the %s settings and save settings."
658
  msgstr ""
659
 
660
+ #: src/addons/googlecloud.php:695
661
  msgid "But no %s settings were found. Please complete all fields in %s settings and save the settings."
662
  msgstr ""
663
 
664
+ #: src/addons/googlecloud.php:701, src/addons/onedrive.php:928, src/addons/onedrive.php:939, src/methods/googledrive.php:525, src/methods/googledrive.php:538
665
  msgid "However, subsequent access attempts failed:"
666
  msgstr ""
667
 
668
+ #: src/addons/googlecloud.php:721, src/addons/googlecloud.php:842, src/addons/onedrive.php:960, src/addons/sftp.php:590, src/addons/sftp.php:594, src/addons/wp-cli.php:516, src/methods/addon-base-v2.php:363, src/methods/cloudfiles.php:578, src/methods/googledrive.php:558, src/methods/openstack-base.php:535, src/methods/s3.php:1221, src/methods/stream-base.php:379
669
  msgid "Success"
670
  msgstr ""
671
 
672
+ #: src/addons/googlecloud.php:721, src/addons/onedrive.php:960, src/methods/googledrive.php:558
673
  msgid "you have authenticated your %s account."
674
  msgstr ""
675
 
676
+ #: src/addons/googlecloud.php:721, src/methods/googledrive.php:558
677
  msgid "Name: %s."
678
  msgstr ""
679
 
680
+ #: src/addons/googlecloud.php:762
681
  msgid "You must save and authenticate before you can test your settings."
682
  msgstr ""
683
 
684
+ #: src/addons/googlecloud.php:779, src/addons/googlecloud.php:813, src/addons/googlecloud.php:819, src/addons/sftp.php:552, src/admin.php:3611, src/admin.php:3647, src/admin.php:3657, src/methods/addon-base-v2.php:349, src/methods/stream-base.php:363
685
  msgid "Failed"
686
  msgstr ""
687
 
688
+ #: src/addons/googlecloud.php:836, src/addons/googlecloud.php:850, src/methods/s3.php:1219, src/methods/s3.php:1231
689
  msgid "Failure"
690
  msgstr ""
691
 
692
+ #: src/addons/googlecloud.php:836, src/addons/googlecloud.php:850, src/methods/s3.php:1219, src/methods/s3.php:1231
693
  msgid "We successfully accessed the bucket, but the attempt to create a file in it failed."
694
  msgstr ""
695
 
696
+ #: src/addons/googlecloud.php:842, src/methods/s3.php:1221
697
  msgid "We accessed the bucket, and were able to create files within it."
698
  msgstr ""
699
 
700
+ #: src/addons/googlecloud.php:911
701
  msgid "You must enter a project ID in order to be able to create a new bucket."
702
  msgstr ""
703
 
704
+ #: src/addons/googlecloud.php:985, src/methods/dropbox.php:576
705
  msgid "%s logo"
706
  msgstr ""
707
 
708
+ #: src/addons/googlecloud.php:986
709
  msgid "Do not confuse %s with %s - they are separate things."
710
  msgstr ""
711
 
712
+ #: src/addons/googlecloud.php:992
713
  msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
714
  msgstr ""
715
 
716
+ #: src/addons/googlecloud.php:996, src/methods/googledrive.php:1334
717
  msgid "For longer help, including screenshots, follow this link. The description below is sufficient for more expert users."
718
  msgstr ""
719
 
720
+ #: src/addons/googlecloud.php:998
721
  msgid "Follow this link to your Google API Console, and there activate the Storage API and create a Client ID in the API Access section."
722
  msgstr ""
723
 
724
+ #: src/addons/googlecloud.php:998, src/methods/googledrive.php:1336
725
  msgid "Select 'Web Application' as the application type."
726
  msgstr ""
727
 
728
+ #: src/addons/googlecloud.php:998
729
  msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
730
  msgstr ""
731
 
732
+ #: src/addons/googlecloud.php:1020, src/addons/onedrive.php:1198, src/methods/googledrive.php:1362
733
  msgid "Client ID"
734
  msgstr ""
735
 
736
+ #: src/addons/googlecloud.php:1022, src/addons/googlecloud.php:1023, src/methods/googledrive.php:1363
737
  msgid "If Google later shows you the message \"invalid_client\", then you did not enter a valid client ID here."
738
  msgstr ""
739
 
740
+ #: src/addons/googlecloud.php:1028, src/addons/onedrive.php:1202, src/methods/googledrive.php:1366
741
  msgid "Client Secret"
742
  msgstr ""
743
 
744
+ #: src/addons/googlecloud.php:1033
745
  msgid "Project ID"
746
  msgstr ""
747
 
748
+ #: src/addons/googlecloud.php:1035
749
  msgid "Enter the ID of the %s project you wish to use here."
750
  msgstr ""
751
 
752
+ #: src/addons/googlecloud.php:1035, src/addons/googlecloud.php:1035
753
  msgid "N.B. This is only needed if you have not already created the bucket, and you wish UpdraftPlus to create it for you."
754
  msgstr ""
755
 
756
+ #: src/addons/googlecloud.php:1035, src/addons/googlecloud.php:1035
757
  msgid "Otherwise, you can leave it blank."
758
  msgstr ""
759
 
760
+ #: src/addons/googlecloud.php:1035, src/addons/migrator.php:490, src/addons/migrator.php:493, src/addons/migrator.php:496, src/admin.php:1194, src/admin.php:2691, src/backup.php:3313, src/class-updraftplus.php:4765, src/class-updraftplus.php:4765, src/updraftplus.php:157
761
  msgid "Go here for more information."
762
  msgstr ""
763
 
764
+ #: src/addons/googlecloud.php:1039
765
  msgid "Bucket"
766
  msgstr ""
767
 
768
+ #: src/addons/googlecloud.php:1040
769
  msgid "Enter the name of the %s bucket you wish to use here."
770
  msgstr ""
771
 
772
+ #: src/addons/googlecloud.php:1040
773
  msgid "See Google's guidelines on bucket naming by following this link."
774
  msgstr ""
775
 
776
+ #: src/addons/googlecloud.php:1040
777
  msgid "You must use a bucket name that is unique, for all %s users."
778
  msgstr ""
779
 
780
+ #: src/addons/googlecloud.php:1043, src/addons/s3-enhanced.php:59
781
  msgid "Storage class"
782
  msgstr ""
783
 
784
+ #: src/addons/googlecloud.php:1043, src/addons/s3-enhanced.php:59
785
  msgid "Read more about storage classes"
786
  msgstr ""
787
 
788
+ #: src/addons/googlecloud.php:1043, src/addons/googlecloud.php:1056, src/addons/s3-enhanced.php:59, src/addons/s3-enhanced.php:69
789
  msgid "(Read more)"
790
  msgstr ""
791
 
792
+ #: src/addons/googlecloud.php:1045, src/addons/googlecloud.php:1051, src/addons/googlecloud.php:1058, src/addons/googlecloud.php:1064
793
  msgid "This setting applies only when a new bucket is being created."
794
  msgstr ""
795
 
796
+ #: src/addons/googlecloud.php:1045, src/addons/googlecloud.php:1051
797
  msgid "Note that Google do not support every storage class in every location - you should read their documentation to learn about current availability."
798
  msgstr ""
799
 
800
+ #: src/addons/googlecloud.php:1056
801
  msgid "Bucket location"
802
  msgstr ""
803
 
804
+ #: src/addons/googlecloud.php:1056
805
  msgid "Read more about bucket locations"
806
  msgstr ""
807
 
808
+ #: src/addons/googlecloud.php:1075, src/methods/googledrive.php:1407
809
  msgid "<strong>(You appear to be already authenticated,</strong> though you can authenticate again to refresh your access if you've had a problem)."
810
  msgstr ""
811
 
812
+ #: src/addons/googlecloud.php:1109, src/addons/onedrive.php:1269, src/methods/dropbox.php:667, src/methods/googledrive.php:1418
813
  msgid "Account holder's name: %s."
814
  msgstr ""
815
 
821
  msgid "Supported backup plugins: %s"
822
  msgstr ""
823
 
824
+ #: src/addons/importer.php:276, src/admin.php:4226, src/includes/class-backup-history.php:506
825
  msgid "Backup created by: %s."
826
  msgstr ""
827
 
845
  msgid "No incremental backup of your files is possible, as no suitable existing backup was found to add increments to."
846
  msgstr ""
847
 
848
+ #: src/addons/incremental.php:328, src/addons/reporting.php:261, src/admin.php:4158
849
  msgid "None"
850
  msgstr ""
851
 
852
+ #: src/addons/incremental.php:329, src/admin.php:3867, src/updraftplus.php:99
853
  msgid "Every hour"
854
  msgstr ""
855
 
856
+ #: src/addons/incremental.php:330, src/addons/incremental.php:331, src/addons/incremental.php:332, src/addons/incremental.php:333, src/admin.php:3868, src/admin.php:3869, src/admin.php:3870, src/admin.php:3871, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
857
  msgid "Every %s hours"
858
  msgstr ""
859
 
860
+ #: src/addons/incremental.php:334, src/admin.php:3872
861
  msgid "Daily"
862
  msgstr ""
863
 
864
+ #: src/addons/incremental.php:335, src/admin.php:3873
865
  msgid "Weekly"
866
  msgstr ""
867
 
868
+ #: src/addons/incremental.php:336, src/admin.php:3874
869
  msgid "Fortnightly"
870
  msgstr ""
871
 
872
+ #: src/addons/incremental.php:337, src/admin.php:3875
873
  msgid "Monthly"
874
  msgstr ""
875
 
876
+ #: src/addons/incremental.php:351
877
  msgid "And then add an incremental backup"
878
  msgstr ""
879
 
880
+ #: src/addons/incremental.php:363
881
  msgid "Tell me more about incremental backups"
882
  msgstr ""
883
 
884
+ #: src/addons/incremental.php:363
885
  msgid "Tell me more"
886
  msgstr ""
887
 
905
  msgid "Please make sure that you have made a note of the password!"
906
  msgstr ""
907
 
908
+ #: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:458, src/addons/webdav.php:194, src/admin.php:976, src/admin.php:3086, src/methods/openstack2.php:164, src/methods/updraftvault.php:388, src/templates/wp-admin/settings/updraftcentral-connect.php:50
909
  msgid "Password"
910
  msgstr ""
911
 
977
  msgid "Read this article to see step-by-step how it's done."
978
  msgstr ""
979
 
980
+ #: src/addons/migrator.php:229, src/addons/migrator.php:1756, src/addons/migrator.php:1777
981
  msgid "back"
982
  msgstr ""
983
 
984
+ #: src/addons/migrator.php:230
985
  msgid "Restore an existing backup set onto this site"
986
  msgstr ""
987
 
988
+ #: src/addons/migrator.php:233
989
+ msgid "To import a backup set, go to the \"Existing backups\" section in the \"Backup/Restore\" tab"
990
  msgstr ""
991
 
992
+ #: src/addons/migrator.php:236
993
  msgid "This site has no backups to restore from yet."
994
  msgstr ""
995
 
996
+ #: src/addons/migrator.php:271
997
  msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
998
  msgstr ""
999
 
1000
+ #: src/addons/migrator.php:271, src/admin.php:662, src/admin.php:856, src/admin.php:4328
1001
  msgid "Restore"
1002
  msgstr ""
1003
 
1004
+ #: src/addons/migrator.php:275
1005
  msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
1006
  msgstr ""
1007
 
1008
+ #: src/addons/migrator.php:304
1009
  msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
1010
  msgstr ""
1011
 
1012
+ #: src/addons/migrator.php:331, src/addons/migrator.php:376, src/templates/wp-admin/advanced/search-replace.php:7, src/templates/wp-admin/advanced/tools-menu.php:18
1013
  msgid "Search / replace database"
1014
  msgstr ""
1015
 
1016
+ #: src/addons/migrator.php:332, src/addons/migrator.php:384
1017
  msgid "Search for"
1018
  msgstr ""
1019
 
1020
+ #: src/addons/migrator.php:333, src/addons/migrator.php:385
1021
  msgid "Replace with"
1022
  msgstr ""
1023
 
1024
+ #: src/addons/migrator.php:337, src/addons/moredatabase.php:89, src/addons/moredatabase.php:91, src/addons/moredatabase.php:93, src/addons/sftp.php:521, src/addons/sftp.php:525, src/addons/sftp.php:529, src/addons/webdav.php:254, src/admin.php:875, src/includes/class-remote-send.php:542, src/methods/addon-base-v2.php:341, src/methods/cloudfiles-new.php:179, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:522, src/methods/cloudfiles.php:527, src/methods/ftp.php:425, src/methods/ftp.php:429, src/methods/openstack2.php:180, src/methods/openstack2.php:185, src/methods/openstack2.php:190, src/methods/openstack2.php:195, src/methods/s3.php:1155, src/methods/s3.php:1159
1025
  msgid "Failure: No %s was given."
1026
  msgstr ""
1027
 
1028
+ #: src/addons/migrator.php:337
1029
  msgid "search term"
1030
  msgstr ""
1031
 
1032
+ #: src/addons/migrator.php:340, src/addons/migrator.php:355
1033
  msgid "Return to UpdraftPlus Configuration"
1034
  msgstr ""
1035
 
1036
+ #: src/addons/migrator.php:377
1037
  msgid "This can easily destroy your site; so, use it with care!"
1038
  msgstr ""
1039
 
1040
+ #: src/addons/migrator.php:378
1041
  msgid "A search/replace cannot be undone - are you sure you want to do this?"
1042
  msgstr ""
1043
 
1044
+ #: src/addons/migrator.php:386
1045
  msgid "Rows per batch"
1046
  msgstr ""
1047
 
1048
+ #: src/addons/migrator.php:387
1049
  msgid "These tables only"
1050
  msgstr ""
1051
 
1052
+ #: src/addons/migrator.php:387
1053
  msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
1054
  msgstr ""
1055
 
1056
+ #: src/addons/migrator.php:389
1057
  msgid "Go"
1058
  msgstr ""
1059
 
1060
+ #: src/addons/migrator.php:406
1061
  msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
1062
  msgstr ""
1063
 
1064
+ #: src/addons/migrator.php:417
1065
  msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use below search and replace to search/replace the site address so that the site can be visited without https."
1066
  msgstr ""
1067
 
1068
+ #: src/addons/migrator.php:428
1069
  msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use below search and replace so that the non-https links are automatically replaced."
1070
  msgstr ""
1071
 
1072
+ #: src/addons/migrator.php:439
1073
  msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
1074
  msgstr ""
1075
 
1076
+ #: src/addons/migrator.php:444
1077
  msgid "Processed plugin:"
1078
  msgstr ""
1079
 
1080
+ #: src/addons/migrator.php:454
1081
  msgid "Network activating theme:"
1082
  msgstr ""
1083
 
1084
+ #: src/addons/migrator.php:490, src/addons/migrator.php:493, src/addons/migrator.php:496
1085
  msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
1086
  msgstr ""
1087
 
1088
+ #: src/addons/migrator.php:490
1089
  msgid "WordPress core"
1090
  msgstr ""
1091
 
1092
+ #: src/addons/migrator.php:493
1093
  msgid "other content from wp-content"
1094
  msgstr ""
1095
 
1096
+ #: src/addons/migrator.php:496, src/addons/multisite.php:731
1097
  msgid "Must-use plugins"
1098
  msgstr ""
1099
 
1100
+ #: src/addons/migrator.php:501, src/addons/migrator.php:503
1101
  msgid "Importing a single site into a multisite install"
1102
  msgstr ""
1103
 
1104
+ #: src/addons/migrator.php:501, src/templates/wp-admin/settings/downloading-and-restoring.php:72, src/templates/wp-admin/settings/form-contents.php:183, src/templates/wp-admin/settings/tab-backups.php:74
1105
  msgid "This feature requires %s version %s or later"
1106
  msgstr ""
1107
 
1108
+ #: src/addons/migrator.php:503
1109
  msgid "This feature is not compatible with %s"
1110
  msgstr ""
1111
 
1112
+ #: src/addons/migrator.php:509
1113
  msgid "Information needed to continue:"
1114
  msgstr ""
1115
 
1116
+ #: src/addons/migrator.php:510
1117
  msgid "Enter details for where this new site is to live within your multisite install:"
1118
  msgstr ""
1119
 
1120
+ #: src/addons/migrator.php:515, src/addons/migrator.php:517
1121
  msgid "You must use lower-case letters or numbers for the site path, only."
1122
  msgstr ""
1123
 
1124
+ #: src/addons/migrator.php:525
1125
  msgid "Attribute imported content to user"
1126
  msgstr ""
1127
 
1128
+ #: src/addons/migrator.php:561
1129
  msgid "Database restoration options:"
1130
  msgstr ""
1131
 
1132
+ #: src/addons/migrator.php:562
1133
  msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
1134
  msgstr ""
1135
 
1136
+ #: src/addons/migrator.php:562
1137
  msgid "Search and replace site location in the database (migrate)"
1138
  msgstr ""
1139
 
1140
+ #: src/addons/migrator.php:570
1141
  msgid "Migrated site (from UpdraftPlus)"
1142
  msgstr ""
1143
 
1144
+ #: src/addons/migrator.php:573
1145
  msgid "Required information for restoring this backup was not given (%s)"
1146
  msgstr ""
1147
 
1148
+ #: src/addons/migrator.php:593
1149
  msgid "New site:"
1150
  msgstr ""
1151
 
1152
+ #: src/addons/migrator.php:629, src/addons/migrator.php:630
1153
  msgid "Error when creating new site at your chosen address:"
1154
  msgstr ""
1155
 
1156
+ #: src/addons/migrator.php:916, src/addons/migrator.php:1291
1157
  msgid "Failed: the %s operation was not able to start."
1158
  msgstr ""
1159
 
1160
+ #: src/addons/migrator.php:916, src/addons/migrator.php:918
1161
  msgid "search and replace"
1162
  msgstr ""
1163
 
1164
+ #: src/addons/migrator.php:918, src/addons/migrator.php:1293
1165
  msgid "Failed: we did not understand the result returned by the %s operation."
1166
  msgstr ""
1167
 
1168
+ #: src/addons/migrator.php:957
1169
  msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
1170
  msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
1171
  msgstr[0] ""
1172
  msgstr[1] ""
1173
 
1174
+ #: src/addons/migrator.php:1057
1175
  msgid "Database: search and replace site URL"
1176
  msgstr ""
1177
 
1178
+ #: src/addons/migrator.php:1097, src/addons/migrator.php:1101, src/addons/migrator.php:1105, src/addons/migrator.php:1110, src/addons/migrator.php:1114, src/addons/migrator.php:1119
1179
  msgid "Error: unexpected empty parameter (%s, %s)"
1180
  msgstr ""
1181
 
1182
+ #: src/addons/migrator.php:1133
1183
  msgid "Nothing to do: the site URL is already: %s"
1184
  msgstr ""
1185
 
1186
+ #: src/addons/migrator.php:1144
1187
  msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
1188
  msgstr ""
1189
 
1190
+ #: src/addons/migrator.php:1152
1191
  msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
1192
  msgstr ""
1193
 
1194
+ #: src/addons/migrator.php:1199
1195
  msgid "Could not get list of tables"
1196
  msgstr ""
1197
 
1198
+ #: src/addons/migrator.php:1221, src/addons/migrator.php:1261, src/addons/migrator.php:1395
1199
  msgid "Search and replacing table:"
1200
  msgstr ""
1201
 
1202
+ #: src/addons/migrator.php:1221
1203
  msgid "skipped (not in list)"
1204
  msgstr ""
1205
 
1206
+ #: src/addons/migrator.php:1261
1207
  msgid "already done"
1208
  msgstr ""
1209
 
1210
+ #: src/addons/migrator.php:1307
1211
  msgid "Tables examined:"
1212
  msgstr ""
1213
 
1214
+ #: src/addons/migrator.php:1308
1215
  msgid "Rows examined:"
1216
  msgstr ""
1217
 
1218
+ #: src/addons/migrator.php:1309
1219
  msgid "Changes made:"
1220
  msgstr ""
1221
 
1222
+ #: src/addons/migrator.php:1310
1223
  msgid "SQL update commands run:"
1224
  msgstr ""
1225
 
1226
+ #: src/addons/migrator.php:1311, src/admin.php:820
1227
  msgid "Errors:"
1228
  msgstr ""
1229
 
1230
+ #: src/addons/migrator.php:1312
1231
  msgid "Time taken (seconds):"
1232
  msgstr ""
1233
 
1234
+ #: src/addons/migrator.php:1326, src/restorer.php:3160
1235
  msgid "the database query being run was:"
1236
  msgstr ""
1237
 
1238
+ #: src/addons/migrator.php:1436
1239
  msgid "rows: %d"
1240
  msgstr ""
1241
 
1242
+ #: src/addons/migrator.php:1538, src/backup.php:470, src/backup.php:2010, src/class-updraftplus.php:2301, src/class-updraftplus.php:2368, src/includes/class-storage-methods-interface.php:366, src/restorer.php:575
1243
  msgid "A PHP exception (%s) has occurred: %s"
1244
  msgstr ""
1245
 
1246
+ #: src/addons/migrator.php:1545, src/backup.php:476, src/backup.php:2019, src/class-updraftplus.php:2310, src/class-updraftplus.php:2375, src/includes/class-storage-methods-interface.php:375, src/restorer.php:589
1247
  msgid "A PHP fatal error (%s) has occurred: %s"
1248
  msgstr ""
1249
 
1250
+ #: src/addons/migrator.php:1580
1251
  msgid "\"%s\" has no primary key, manual change needed on row %s."
1252
  msgstr ""
1253
 
1254
+ #: src/addons/migrator.php:1757
1255
  msgid "Send a backup to another site"
1256
  msgstr ""
1257
 
1258
+ #: src/addons/migrator.php:1761
1259
  msgid "Add a site"
1260
  msgstr ""
1261
 
1262
+ #: src/addons/migrator.php:1766
1263
  msgid "To add a site as a destination for sending to, enter that site's key below."
1264
  msgstr ""
1265
 
1266
+ #: src/addons/migrator.php:1766
1267
  msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
1268
  msgstr ""
1269
 
1270
+ #: src/addons/migrator.php:1766
1271
  msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
1272
  msgstr ""
1273
 
1274
+ #: src/addons/migrator.php:1766
1275
  msgid "How do I get a site's key?"
1276
  msgstr ""
1277
 
1278
+ #: src/addons/migrator.php:1770
1279
  msgid "Site key"
1280
  msgstr ""
1281
 
1282
+ #: src/addons/migrator.php:1770
1283
  msgid "Paste key here"
1284
  msgstr ""
1285
 
1286
+ #: src/addons/migrator.php:1770, src/admin.php:868
1287
  msgid "Add site"
1288
  msgstr ""
1289
 
1290
+ #: src/addons/migrator.php:1778
1291
  msgid "Receive a backup from a remote site"
1292
  msgstr ""
1293
 
1294
+ #: src/addons/migrator.php:1780
1295
  msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
1296
  msgstr ""
1297
 
1298
+ #: src/addons/migrator.php:1782
1299
  msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
1300
  msgstr ""
1301
 
1302
+ #: src/addons/migrator.php:1783
1303
  msgid "Enter your chosen name"
1304
  msgstr ""
1305
 
1306
+ #: src/addons/migrator.php:1783, src/addons/sftp.php:466, src/admin.php:874, src/admin.php:5499, src/templates/wp-admin/settings/temporary-clone.php:63
1307
  msgid "Key"
1308
  msgstr ""
1309
 
1310
+ #: src/addons/migrator.php:1785, src/central/bootstrap.php:557
1311
  msgid "Encryption key size:"
1312
  msgstr ""
1313
 
1314
+ #: src/addons/migrator.php:1787, src/addons/migrator.php:1788, src/addons/migrator.php:1790, src/central/bootstrap.php:559, src/central/bootstrap.php:560, src/central/bootstrap.php:562
1315
  msgid "%s bits"
1316
  msgstr ""
1317
 
1318
+ #: src/addons/migrator.php:1787, src/central/bootstrap.php:559
1319
  msgid "easy to break, fastest"
1320
  msgstr ""
1321
 
1322
+ #: src/addons/migrator.php:1788, src/central/bootstrap.php:560
1323
  msgid "faster (possibility for slow PHP installs)"
1324
  msgstr ""
1325
 
1326
+ #: src/addons/migrator.php:1789, src/central/bootstrap.php:561
1327
  msgid "%s bytes"
1328
  msgstr ""
1329
 
1330
+ #: src/addons/migrator.php:1789, src/central/bootstrap.php:561
1331
  msgid "recommended"
1332
  msgstr ""
1333
 
1334
+ #: src/addons/migrator.php:1790, src/central/bootstrap.php:562
1335
  msgid "slower, strongest"
1336
  msgstr ""
1337
 
1338
+ #: src/addons/migrator.php:1793
1339
  msgid "Create key"
1340
  msgstr ""
1341
 
1342
+ #: src/addons/migrator.php:1798
1343
  msgid "Your new key:"
1344
  msgstr ""
1345
 
1375
  msgid "%s total table(s) found; %s with the indicated prefix."
1376
  msgstr ""
1377
 
1378
+ #: src/addons/moredatabase.php:144, src/admin.php:1691
1379
  msgid "Messages:"
1380
  msgstr ""
1381
 
1427
  msgid "Enter username."
1428
  msgstr ""
1429
 
1430
+ #: src/addons/moredatabase.php:240, src/addons/sftp.php:451, src/addons/webdav.php:188, src/admin.php:975, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:527, src/methods/openstack2.php:158
1431
  msgid "Username"
1432
  msgstr ""
1433
 
1447
  msgid "Enter database."
1448
  msgstr ""
1449
 
1450
+ #: src/addons/moredatabase.php:242, src/addons/reporting.php:276, src/addons/wp-cli.php:432, src/admin.php:355, src/admin.php:4133, src/admin.php:4186, src/admin.php:4764, src/includes/class-remote-send.php:411, src/includes/class-wpadmin-commands.php:156, src/includes/class-wpadmin-commands.php:596, src/restorer.php:552, src/templates/wp-admin/settings/delete-and-restore-modals.php:81, src/templates/wp-admin/settings/delete-and-restore-modals.php:82, src/templates/wp-admin/settings/take-backup.php:34
1451
  msgid "Database"
1452
  msgstr ""
1453
 
1491
  msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
1492
  msgstr ""
1493
 
1494
+ #: src/addons/moredatabase.php:387
1495
  msgid "Encryption error occurred when encrypting database. Encryption aborted."
1496
  msgstr ""
1497
 
1498
+ #: src/addons/moredatabase.php:405
1499
  msgid "You should backup all tables unless you are an expert in the internals of the WordPress database."
1500
  msgstr ""
1501
 
1502
+ #: src/addons/moredatabase.php:412
1503
  msgid "WordPress database"
1504
  msgstr ""
1505
 
1506
+ #: src/addons/moredatabase.php:413
1507
  msgid "tables"
1508
  msgstr ""
1509
 
1511
  msgid "(None configured)"
1512
  msgstr ""
1513
 
1514
+ #: src/addons/morefiles.php:85, src/admin.php:883
1515
  msgctxt "(verb)"
1516
  msgid "Download"
1517
  msgstr ""
1592
  msgid "Exclude these:"
1593
  msgstr ""
1594
 
1595
+ #: src/addons/morefiles.php:347, src/admin.php:3987
1596
  msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
1597
  msgstr ""
1598
 
1628
  msgid "Go up a directory"
1629
  msgstr ""
1630
 
1631
+ #: src/addons/morefiles.php:875, src/admin.php:849, src/templates/wp-admin/settings/delete-and-restore-modals.php:94
1632
  msgid "Cancel"
1633
  msgstr ""
1634
 
1644
  msgid "(as many as you like)"
1645
  msgstr ""
1646
 
1647
+ #: src/addons/morestorage.php:81, src/admin.php:929
1648
  msgid "Currently enabled"
1649
  msgstr ""
1650
 
1651
+ #: src/addons/morestorage.php:81, src/admin.php:930
1652
  msgid "Currently disabled"
1653
  msgstr ""
1654
 
1668
  msgid "(Nothing has been logged yet)"
1669
  msgstr ""
1670
 
1671
+ #: src/addons/multisite.php:96, src/addons/multisite.php:775, src/options.php:74
1672
  msgid "UpdraftPlus Backups"
1673
  msgstr ""
1674
 
1676
  msgid "Multisite Install"
1677
  msgstr ""
1678
 
1679
+ #: src/addons/multisite.php:503, src/class-updraftplus.php:1923
1680
  msgid "Uploads"
1681
  msgstr ""
1682
 
1683
+ #: src/addons/multisite.php:640
1684
  msgid "Which site to restore"
1685
  msgstr ""
1686
 
1687
+ #: src/addons/multisite.php:644
1688
  msgid "All sites"
1689
  msgstr ""
1690
 
1691
+ #: src/addons/multisite.php:649
1692
  msgid "may include some site-wide data"
1693
  msgstr ""
1694
 
1695
+ #: src/addons/multisite.php:658
1696
  msgid "Read more..."
1697
  msgstr ""
1698
 
1699
+ #: src/addons/multisite.php:738
1700
  msgid "Blog uploads"
1701
  msgstr ""
1702
 
1708
  msgid "Account full: your %s account has only %d bytes left, but the file to be uploaded has %d bytes remaining (total size: %d bytes)"
1709
  msgstr ""
1710
 
1711
+ #: src/addons/onedrive.php:468
1712
  msgid "%s download: failed: file not found"
1713
  msgstr ""
1714
 
1715
+ #: src/addons/onedrive.php:704, src/udaddons/updraftplus-addons.php:1000
1716
  msgid "An error response was received; HTTP code:"
1717
  msgstr ""
1718
 
1719
+ #: src/addons/onedrive.php:717, src/addons/onedrive.php:737, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1013, src/udaddons/updraftplus-addons.php:1026
1720
  msgid "This most likely means that you share a webserver with a hacked website that has been used in previous attacks."
1721
  msgstr ""
1722
 
1723
+ #: src/addons/onedrive.php:717, src/udaddons/updraftplus-addons.php:1013, src/udaddons/updraftplus-addons.php:1026
1724
  msgid "To remove any block, please go here."
1725
  msgstr ""
1726
 
1727
+ #: src/addons/onedrive.php:717, src/udaddons/updraftplus-addons.php:1013
1728
  msgid "Your IP address:"
1729
  msgstr ""
1730
 
1731
+ #: src/addons/onedrive.php:737, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1026
1732
  msgid "UpdraftPlus.com has responded with 'Access Denied'."
1733
  msgstr ""
1734
 
1735
+ #: src/addons/onedrive.php:737, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717, src/udaddons/updraftplus-addons.php:1026
1736
  msgid "It appears that your web server's IP Address (%s) is blocked."
1737
  msgstr ""
1738
 
1739
+ #: src/addons/onedrive.php:737, src/includes/updraftplus-login.php:55, src/methods/updraftvault.php:717
1740
  msgid "To remove the block, please go here."
1741
  msgstr ""
1742
 
1743
+ #: src/addons/onedrive.php:744
1744
  msgid "Please re-authorize the connection to your %s account."
1745
  msgstr ""
1746
 
1747
+ #: src/addons/onedrive.php:753
1748
  msgid "Account is not authorized (%s)."
1749
  msgstr ""
1750
 
1751
+ #: src/addons/onedrive.php:885, src/class-updraftplus.php:543, src/methods/dropbox.php:238, src/methods/dropbox.php:751, src/methods/dropbox.php:772, src/methods/dropbox.php:786, src/methods/dropbox.php:799, src/methods/dropbox.php:941
1752
  msgid "%s error: %s"
1753
  msgstr ""
1754
 
1755
+ #: src/addons/onedrive.php:885
1756
  msgid "Authentication"
1757
  msgstr ""
1758
 
1759
+ #: src/addons/onedrive.php:914, src/methods/dropbox.php:840, src/methods/dropbox.php:849, src/methods/googledrive.php:522
1760
  msgid "Your %s quota usage: %s %% used, %s available"
1761
  msgstr ""
1762
 
1763
+ #: src/addons/onedrive.php:922, src/methods/dropbox.php:817
1764
  msgid "Your %s account name: %s"
1765
  msgstr ""
1766
 
1767
+ #: src/addons/onedrive.php:960, src/addons/onedrive.php:1198, src/addons/onedrive.php:1202
1768
  msgid "OneDrive"
1769
  msgstr ""
1770
 
1771
+ #: src/addons/onedrive.php:1058, src/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php:118
1772
  msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
1773
  msgstr ""
1774
 
1775
+ #: src/addons/onedrive.php:1117, src/addons/onedrive.php:1119
1776
  msgid "authorization failed:"
1777
  msgstr ""
1778
 
1779
+ #: src/addons/onedrive.php:1146
1780
  msgid "This site uses a URL which is either non-HTTPS, or is localhost or 127.0.0.1 URL. As such, you must use the main %s %s App to authenticate with your account."
1781
  msgstr ""
1782
 
1783
+ #: src/addons/onedrive.php:1154
1784
  msgid "You must add the following as the authorized redirect URI in your OneDrive console (under \"API Settings\") when asked"
1785
  msgstr ""
1786
 
1787
+ #: src/addons/onedrive.php:1162
1788
  msgid "Create OneDrive credentials in your OneDrive developer console."
1789
  msgstr ""
1790
 
1791
+ #: src/addons/onedrive.php:1178, src/methods/dropbox.php:585, src/methods/googledrive.php:1343
1792
  msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
1793
  msgstr ""
1794
 
1795
+ #: src/addons/onedrive.php:1178, src/methods/dropbox.php:585, src/methods/googledrive.php:1343
1796
  msgid "this privacy policy"
1797
  msgstr ""
1798
 
1799
+ #: src/addons/onedrive.php:1199
1800
  msgid "If OneDrive later shows you the message \"unauthorized_client\", then you did not enter a valid client ID here."
1801
  msgstr ""
1802
 
1803
+ #: src/addons/onedrive.php:1207, src/restorer.php:1363
1804
  msgid "folder"
1805
  msgstr ""
1806
 
1807
+ #: src/addons/onedrive.php:1209
1808
  msgid "N.B. %s is not case-sensitive."
1809
  msgstr ""
1810
 
1811
+ #: src/addons/onedrive.php:1214
1812
  msgid "Account type"
1813
  msgstr ""
1814
 
1815
+ #: src/addons/onedrive.php:1217
1816
  msgid "OneDrive International"
1817
  msgstr ""
1818
 
1819
+ #: src/addons/onedrive.php:1218
1820
  msgid "OneDrive Germany"
1821
  msgstr ""
1822
 
1823
+ #: src/addons/onedrive.php:1226, src/methods/dropbox.php:610
1824
  msgid "Authenticate with %s"
1825
  msgstr ""
1826
 
1827
+ #: src/addons/onedrive.php:1233, src/methods/dropbox.php:614
1828
  msgid "(You appear to be already authenticated)."
1829
  msgstr ""
1830
 
1832
  msgid "Your label for this backup (optional)"
1833
  msgstr ""
1834
 
1835
+ #: src/addons/reporting.php:86, src/addons/reporting.php:197, src/class-updraftplus.php:3475, src/class-updraftplus.php:4575
1836
  msgid "Backup of:"
1837
  msgstr ""
1838
 
1852
  msgid "Backup made by %s"
1853
  msgstr ""
1854
 
1855
+ #: src/addons/reporting.php:198, src/class-updraftplus.php:3478
1856
  msgid "Latest status:"
1857
  msgstr ""
1858
 
1880
  msgid "Time taken:"
1881
  msgstr ""
1882
 
1883
+ #: src/addons/reporting.php:239, src/admin.php:4146
1884
  msgid "Uploaded to:"
1885
  msgstr ""
1886
 
1887
+ #: src/addons/reporting.php:281, src/class-updraftplus.php:3428
1888
  msgid "The log file has been attached to this email."
1889
  msgstr ""
1890
 
1916
  msgid "Log all messages to syslog (only server admins are likely to want this)"
1917
  msgstr ""
1918
 
1919
+ #: src/addons/reporting.php:539, src/admin.php:804
1920
  msgid "To send to more than one address, separate each address with a comma."
1921
  msgstr ""
1922
 
1923
+ #: src/addons/reporting.php:541, src/admin.php:798
1924
  msgid "Send a report only when there are warnings/errors"
1925
  msgstr ""
1926
 
1928
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1929
  msgstr ""
1930
 
1931
+ #: src/addons/reporting.php:543, src/admin.php:799
1932
  msgid "When the Email storage method is enabled, also send the backup"
1933
  msgstr ""
1934
 
1940
  msgid "Use this option to only send database backups when sending to email, and skip other components."
1941
  msgstr ""
1942
 
1943
+ #: src/addons/reporting.php:545, src/admin.php:802
1944
  msgid "Only email the database backup"
1945
  msgstr ""
1946
 
1992
  msgid "AWS authentication failed"
1993
  msgstr ""
1994
 
1995
+ #: src/addons/s3-enhanced.php:185, src/methods/openstack2.php:150, src/methods/s3.php:1201
1996
  msgid "Region"
1997
  msgstr ""
1998
 
2000
  msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another AWS user may already have taken your name)."
2001
  msgstr ""
2002
 
2003
+ #: src/addons/s3-enhanced.php:212, src/methods/s3.php:1209
2004
  msgid "The error reported by %s was:"
2005
  msgstr ""
2006
 
2337
  msgid "No previous backup found to add an increment to."
2338
  msgstr ""
2339
 
2340
+ #: src/addons/wp-cli.php:110, src/admin.php:807
2341
  msgid "You have chosen to backup a database, but no tables have been selected"
2342
  msgstr ""
2343
 
2344
+ #: src/addons/wp-cli.php:116, src/admin.php:805
2345
  msgid "If you exclude both the database and the files, then you have excluded everything!"
2346
  msgstr ""
2347
 
2357
  msgid "Invalid Job Id"
2358
  msgstr ""
2359
 
2360
+ #: src/addons/wp-cli.php:372, src/templates/wp-admin/settings/existing-backups-table.php:105
2361
  msgid "Backup sent to remote site - not available for download."
2362
  msgstr ""
2363
 
2364
+ #: src/addons/wp-cli.php:374, src/templates/wp-admin/settings/existing-backups-table.php:106
2365
  msgid "Site"
2366
  msgstr ""
2367
 
2373
  msgid "Latest full backup found; identifier:"
2374
  msgstr ""
2375
 
2376
+ #: src/addons/wp-cli.php:430, src/admin.php:4180, src/admin.php:4228
2377
  msgid "unknown source"
2378
  msgstr ""
2379
 
2380
+ #: src/addons/wp-cli.php:432, src/admin.php:4186
2381
  msgid "Database (created by %s)"
2382
  msgstr ""
2383
 
2384
+ #: src/addons/wp-cli.php:438, src/admin.php:4188
2385
  msgid "External database"
2386
  msgstr ""
2387
 
2388
+ #: src/addons/wp-cli.php:450, src/admin.php:4232
2389
  msgid "Files and database WordPress backup (created by %s)"
2390
  msgstr ""
2391
 
2392
+ #: src/addons/wp-cli.php:450, src/admin.php:4232
2393
  msgid "Files backup (created by %s)"
2394
  msgstr ""
2395
 
2396
+ #: src/addons/wp-cli.php:519, src/admin.php:824, src/class-updraftplus.php:1441, src/class-updraftplus.php:1485, src/includes/class-filesystem-functions.php:420, src/includes/class-storage-methods-interface.php:326, src/methods/addon-base-v2.php:93, src/methods/addon-base-v2.php:98, src/methods/addon-base-v2.php:244, src/methods/addon-base-v2.php:264, src/methods/googledrive.php:1251, src/methods/stream-base.php:228, src/restorer.php:3344, src/restorer.php:3369, src/restorer.php:3465, src/udaddons/options.php:225, src/updraftplus.php:157
2397
  msgid "Error"
2398
  msgstr ""
2399
 
2417
  msgid "UpdraftPlus Restoration: Progress"
2418
  msgstr ""
2419
 
2420
+ #: src/addons/wp-cli.php:667, src/admin.php:4771
2421
  msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
2422
  msgstr ""
2423
 
2445
  msgid "There are no incremental backup restore points available."
2446
  msgstr ""
2447
 
2448
+ #: src/admin.php:89
2449
  msgid "template not found"
2450
  msgstr ""
2451
 
2452
+ #: src/admin.php:314, src/admin.php:335, src/admin.php:342, src/admin.php:387, src/admin.php:418
2453
  msgid "Nothing currently scheduled"
2454
  msgstr ""
2455
 
2456
+ #: src/admin.php:324
2457
  msgid "At the same time as the files backup"
2458
  msgstr ""
2459
 
2460
+ #: src/admin.php:345, src/admin.php:5468, src/templates/wp-admin/settings/take-backup.php:24
2461
  msgid "Files"
2462
  msgstr ""
2463
 
2464
+ #: src/admin.php:345, src/class-updraftplus.php:3382
2465
  msgid "Files and database"
2466
  msgstr ""
2467
 
2468
+ #: src/admin.php:501
2469
  msgid "UpdraftPlus"
2470
  msgstr ""
2471
 
2472
+ #: src/admin.php:502
2473
  msgid "UpdraftPlus News"
2474
  msgstr ""
2475
 
2476
+ #: src/admin.php:503
2477
  msgid "Dismiss all UpdraftPlus news"
2478
  msgstr ""
2479
 
2480
+ #: src/admin.php:504
2481
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
2482
  msgstr ""
2483
 
2484
+ #: src/admin.php:575
2485
  msgid "You can test upgrading your site on an instant copy using UpdraftClone credits"
2486
  msgstr ""
2487
 
2488
+ #: src/admin.php:575
2489
  msgid "go here to learn more"
2490
  msgstr ""
2491
 
2492
+ #: src/admin.php:575
2493
  msgid "dismiss notice"
2494
  msgstr ""
2495
 
2496
+ #: src/admin.php:587
2497
  msgid "You can test running your site on a different PHP (or WordPress) version using UpdraftClone credits."
2498
  msgstr ""
2499
 
2500
+ #: src/admin.php:587
2501
  msgid "Dismiss notice"
2502
  msgstr ""
2503
 
2504
+ #: src/admin.php:662, src/admin.php:4748
2505
  msgid "Backup"
2506
  msgstr ""
2507
 
2508
+ #: src/admin.php:670, src/admin.php:2894
2509
  msgid "Migrate / Clone"
2510
  msgstr ""
2511
 
2512
+ #: src/admin.php:678, src/admin.php:1126, src/admin.php:2895
2513
  msgid "Settings"
2514
  msgstr ""
2515
 
2516
+ #: src/admin.php:686, src/admin.php:2896
2517
  msgid "Advanced Tools"
2518
  msgstr ""
2519
 
2520
+ #: src/admin.php:694
2521
  msgid "Extensions"
2522
  msgstr ""
2523
 
2524
+ #: src/admin.php:800
2525
  msgid "Be aware that mail servers tend to have size limits; typically around %s Mb; backups larger than any limits will likely not arrive."
2526
  msgstr ""
2527
 
2528
+ #: src/admin.php:801
2529
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
2530
  msgstr ""
2531
 
2532
+ #: src/admin.php:803
2533
  msgid "Rescanning remote and local storage for backup sets..."
2534
  msgstr ""
2535
 
2536
+ #: src/admin.php:806
2537
  msgid "You have chosen to backup files, but no file entities have been selected"
2538
  msgstr ""
2539
 
2540
+ #: src/admin.php:808
2541
  msgid "The restore operation has begun. Do not close your browser until it reports itself as having finished."
2542
  msgstr ""
2543
 
2544
+ #: src/admin.php:810
2545
  msgid "The web server returned an error code (try again, or check your web server logs)"
2546
  msgstr ""
2547
 
2548
+ #: src/admin.php:811
2549
  msgid "The new user's RackSpace console password is (this will not be shown again):"
2550
  msgstr ""
2551
 
2552
+ #: src/admin.php:812
2553
  msgid "Trying..."
2554
  msgstr ""
2555
 
2556
+ #: src/admin.php:813
2557
  msgid "Fetching..."
2558
  msgstr ""
2559
 
2560
+ #: src/admin.php:814
2561
  msgid "calculating..."
2562
  msgstr ""
2563
 
2564
+ #: src/admin.php:815
2565
  msgid "Begun looking for this entity"
2566
  msgstr ""
2567
 
2568
+ #: src/admin.php:816
2569
  msgid "Some files are still downloading or being processed - please wait."
2570
  msgstr ""
2571
 
2572
+ #: src/admin.php:817
2573
  msgid "Processing files - please wait..."
2574
  msgstr ""
2575
 
2576
+ #: src/admin.php:818
2577
  msgid "Error: the server sent an empty response."
2578
  msgstr ""
2579
 
2580
+ #: src/admin.php:819
2581
  msgid "Warnings:"
2582
  msgstr ""
2583
 
2584
+ #: src/admin.php:821
2585
  msgid "Error: the server sent us a response which we did not understand."
2586
  msgstr ""
2587
 
2588
+ #: src/admin.php:822, src/restorer.php:259
2589
  msgid "Error data:"
2590
  msgstr ""
2591
 
2592
+ #: src/admin.php:825, src/admin.php:2046
2593
+ msgid "Existing backups"
2594
  msgstr ""
2595
 
2596
+ #: src/admin.php:826, src/admin.php:2347
2597
  msgid "File ready."
2598
  msgstr ""
2599
 
2600
+ #: src/admin.php:827, src/admin.php:2674, src/admin.php:3578, src/admin.php:4696, src/admin.php:4708, src/admin.php:4719, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:143
2601
  msgid "Actions"
2602
  msgstr ""
2603
 
2604
+ #: src/admin.php:828
2605
  msgid "Delete from your web server"
2606
  msgstr ""
2607
 
2608
+ #: src/admin.php:829
2609
  msgid "Download to your computer"
2610
  msgstr ""
2611
 
2612
+ #: src/admin.php:830
2613
  msgid "Browse contents"
2614
  msgstr ""
2615
 
2616
+ #: src/admin.php:831
2617
  msgid "Download error: the server sent us a response which we did not understand."
2618
  msgstr ""
2619
 
2620
+ #: src/admin.php:832
2621
  msgid "Requesting start of backup..."
2622
  msgstr ""
2623
 
2624
+ #: src/admin.php:833
2625
  msgid "PHP information"
2626
  msgstr ""
2627
 
2628
+ #: src/admin.php:834, src/admin.php:3287
2629
  msgid "Delete Old Directories"
2630
  msgstr ""
2631
 
2632
+ #: src/admin.php:835
2633
  msgid "Raw backup history"
2634
  msgstr ""
2635
 
2636
+ #: src/admin.php:836, src/admin.php:837, src/includes/class-backup-history.php:513
2637
  msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
2638
  msgstr ""
2639
 
2640
+ #: src/admin.php:836
2641
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
2642
  msgstr ""
2643
 
2644
+ #: src/admin.php:837, src/includes/class-backup-history.php:513
2645
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
2646
  msgstr ""
2647
 
2648
+ #: src/admin.php:838
2649
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
2650
  msgstr ""
2651
 
2652
+ #: src/admin.php:839
2653
  msgid "Upload error:"
2654
  msgstr ""
2655
 
2656
+ #: src/admin.php:840
2657
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
2658
  msgstr ""
2659
 
2660
+ #: src/admin.php:841
2661
  msgid "Upload error"
2662
  msgstr ""
2663
 
2664
+ #: src/admin.php:842
2665
  msgid "Follow this link to attempt decryption and download the database file to your computer."
2666
  msgstr ""
2667
 
2668
+ #: src/admin.php:843
2669
  msgid "This decryption key will be attempted:"
2670
  msgstr ""
2671
 
2672
+ #: src/admin.php:844
2673
  msgid "Unknown server response:"
2674
  msgstr ""
2675
 
2676
+ #: src/admin.php:845
2677
  msgid "Unknown server response status:"
2678
  msgstr ""
2679
 
2680
+ #: src/admin.php:846
2681
  msgid "The file was uploaded."
2682
  msgstr ""
2683
 
2684
+ #: src/admin.php:848, src/templates/wp-admin/settings/take-backup.php:51
2685
  msgid "Backup Now"
2686
  msgstr ""
2687
 
2688
+ #: src/admin.php:850, src/admin.php:3608, src/admin.php:3642, src/admin.php:4412, src/includes/class-remote-send.php:646, src/templates/wp-admin/settings/existing-backups-table.php:168, src/templates/wp-admin/settings/file-backup-exclude.php:11
2689
  msgid "Delete"
2690
  msgstr ""
2691
 
2692
+ #: src/admin.php:851, src/central/bootstrap.php:580
2693
  msgid "Create"
2694
  msgstr ""
2695
 
2696
+ #: src/admin.php:852, src/admin.php:4392
2697
  msgid "Upload"
2698
  msgstr ""
2699
 
2700
+ #: src/admin.php:853
2701
  msgid "You did not select any components to restore. Please select at least one, and then try again."
2702
  msgstr ""
2703
 
2704
+ #: src/admin.php:855, src/includes/updraftplus-tour.php:96
2705
  msgid "Close"
2706
  msgstr ""
2707
 
2708
+ #: src/admin.php:857, src/admin.php:3846
2709
  msgid "Download log file"
2710
  msgstr ""
2711
 
2712
+ #: src/admin.php:859, src/admin.php:885, src/admin.php:886
2713
  msgid "You have made changes to your settings, and not saved."
2714
  msgstr ""
2715
 
2716
+ #: src/admin.php:860
2717
  msgid "Saving..."
2718
  msgstr ""
2719
 
2720
+ #: src/admin.php:861, src/admin.php:3017, src/methods/updraftvault.php:334, src/methods/updraftvault.php:389, src/templates/wp-admin/settings/temporary-clone.php:82
2721
  msgid "Connect"
2722
  msgstr ""
2723
 
2724
+ #: src/admin.php:862
2725
  msgid "Connecting..."
2726
  msgstr ""
2727
 
2728
+ #: src/admin.php:863, src/methods/updraftvault.php:419, src/methods/updraftvault.php:489
2729
  msgid "Disconnect"
2730
  msgstr ""
2731
 
2732
+ #: src/admin.php:864
2733
  msgid "Disconnecting..."
2734
  msgstr ""
2735
 
2736
+ #: src/admin.php:865
2737
  msgid "Counting..."
2738
  msgstr ""
2739
 
2740
+ #: src/admin.php:866
2741
  msgid "Update quota count"
2742
  msgstr ""
2743
 
2744
+ #: src/admin.php:867
2745
  msgid "Adding..."
2746
  msgstr ""
2747
 
2748
+ #: src/admin.php:869
2749
  msgid "Resetting..."
2750
  msgstr ""
2751
 
2752
+ #: src/admin.php:870
2753
  msgid "Creating..."
2754
  msgstr ""
2755
 
2756
+ #: src/admin.php:870
2757
  msgid "your PHP install lacks the openssl module; as a result, this can take minutes; if nothing has happened by then, then you should either try a smaller key size, or ask your web hosting company how to enable this PHP module on your setup."
2758
  msgstr ""
2759
 
2760
+ #: src/admin.php:871, src/includes/class-remote-send.php:616
2761
  msgid "Send to site:"
2762
  msgstr ""
2763
 
2764
+ #: src/admin.php:872, src/includes/class-remote-send.php:377
2765
  msgid "You should check that the remote site is online, not firewalled, does not have security modules that may be blocking access, has UpdraftPlus version %s or later active and that the keys have been entered correctly."
2766
  msgstr ""
2767
 
2768
+ #: src/admin.php:873
2769
  msgid "Please give this key a name (e.g. indicate the site it is for):"
2770
  msgstr ""
2771
 
2772
+ #: src/admin.php:875
2773
  msgid "key name"
2774
  msgstr ""
2775
 
2776
+ #: src/admin.php:876, src/templates/wp-admin/settings/existing-backups-table.php:174
2777
  msgid "Deleting..."
2778
  msgstr ""
2779
 
2780
+ #: src/admin.php:877
2781
  msgid "Please enter a valid URL"
2782
  msgstr ""
2783
 
2784
+ #: src/admin.php:878
2785
  msgid "We requested to delete the file, but could not understand the server's response"
2786
  msgstr ""
2787
 
2788
+ #: src/admin.php:879, src/includes/class-remote-send.php:407
2789
  msgid "Testing connection..."
2790
  msgstr ""
2791
 
2792
+ #: src/admin.php:880, src/includes/class-remote-send.php:438, src/includes/class-remote-send.php:622
2793
  msgid "Send"
2794
  msgstr ""
2795
 
2796
+ #: src/admin.php:884
2797
  msgid "With UpdraftPlus Premium, you can directly download individual files from here."
2798
  msgstr ""
2799
 
2800
+ #: src/admin.php:885
2801
  msgid "You should save your changes to ensure that they are used for making your backup."
2802
  msgstr ""
2803
 
2804
+ #: src/admin.php:886
2805
  msgid "Your export file will be of your displayed settings, not your saved ones."
2806
  msgstr ""
2807
 
2808
+ #: src/admin.php:889
2809
  msgid "day"
2810
  msgstr ""
2811
 
2812
+ #: src/admin.php:890
2813
  msgid "in the month"
2814
  msgstr ""
2815
 
2816
+ #: src/admin.php:891
2817
  msgid "day(s)"
2818
  msgstr ""
2819
 
2820
+ #: src/admin.php:892
2821
  msgid "hour(s)"
2822
  msgstr ""
2823
 
2824
+ #: src/admin.php:893
2825
  msgid "week(s)"
2826
  msgstr ""
2827
 
2828
+ #: src/admin.php:894
2829
  msgid "For backups older than"
2830
  msgstr ""
2831
 
2832
+ #: src/admin.php:896
2833
  msgid "Processing..."
2834
  msgstr ""
2835
 
2836
+ #: src/admin.php:897
2837
  msgid "Please fill in the required information."
2838
  msgstr ""
2839
 
2840
+ #: src/admin.php:898, src/methods/backup-module.php:315
2841
  msgid "Test %s Settings"
2842
  msgstr ""
2843
 
2844
+ #: src/admin.php:899
2845
  msgid "Testing %s Settings..."
2846
  msgstr ""
2847
 
2848
+ #: src/admin.php:900
2849
  msgid "%s settings test result:"
2850
  msgstr ""
2851
 
2852
+ #: src/admin.php:901
2853
  msgid "Nothing yet logged"
2854
  msgstr ""
2855
 
2856
+ #: src/admin.php:902
2857
  msgid "You have not yet selected a file to import."
2858
  msgstr ""
2859
 
2860
+ #: src/admin.php:903
2861
  msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
2862
  msgstr ""
2863
 
2864
+ #: src/admin.php:906
2865
  msgid "Importing..."
2866
  msgstr ""
2867
 
2868
+ #: src/admin.php:907
2869
  msgid "This will import data from:"
2870
  msgstr ""
2871
 
2872
+ #: src/admin.php:908
2873
  msgid "Which was exported on:"
2874
  msgstr ""
2875
 
2876
+ #: src/admin.php:909
2877
  msgid "Do you want to carry out the import?"
2878
  msgstr ""
2879
 
2880
+ #: src/admin.php:910
2881
  msgid "Complete"
2882
  msgstr ""
2883
 
2884
+ #: src/admin.php:911, src/admin.php:3350
2885
  msgid "The backup has finished running"
2886
  msgstr ""
2887
 
2888
+ #: src/admin.php:912
2889
  msgid "The backup was aborted"
2890
  msgstr ""
2891
 
2892
+ #: src/admin.php:914
2893
  msgid "remote files deleted"
2894
  msgstr ""
2895
 
2896
+ #: src/admin.php:915
2897
  msgid "HTTP code:"
2898
  msgstr ""
2899
 
2900
+ #: src/admin.php:916
2901
  msgid "The file failed to upload. Please check the following:"
2902
  msgstr ""
2903
 
2904
+ #: src/admin.php:916
2905
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
2906
  msgstr ""
2907
 
2908
+ #: src/admin.php:916
2909
  msgid "The available memory on the server."
2910
  msgstr ""
2911
 
2912
+ #: src/admin.php:916
2913
  msgid "That you are attempting to upload a zip file previously created by UpdraftPlus."
2914
  msgstr ""
2915
 
2916
+ #: src/admin.php:916
2917
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
2918
  msgstr ""
2919
 
2920
+ #: src/admin.php:917
2921
  msgid "Browsing zip file"
2922
  msgstr ""
2923
 
2924
+ #: src/admin.php:918
2925
  msgid "Select a file to view information about it"
2926
  msgstr ""
2927
 
2928
+ #: src/admin.php:919
2929
  msgid "Search"
2930
  msgstr ""
2931
 
2932
+ #: src/admin.php:920
2933
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
2934
  msgstr ""
2935
 
2936
+ #: src/admin.php:921
2937
  msgid "Loading log file"
2938
  msgstr ""
2939
 
2940
+ #: src/admin.php:924
2941
  msgid "Please enter a valid URL e.g http://example.com"
2942
  msgstr ""
2943
 
2944
+ #: src/admin.php:931
2945
  msgid "Local backup upload has started; please check the log file to see the upload progress"
2946
  msgstr ""
2947
 
2948
+ #: src/admin.php:932
2949
  msgid "You must select at least one remote storage destination to upload this backup set to."
2950
  msgstr ""
2951
 
2952
+ #: src/admin.php:933
2953
  msgid "(already uploaded)"
2954
  msgstr ""
2955
 
2956
+ #: src/admin.php:934
2957
  msgid "Please specify the Microsoft OneDrive folder name, not the URL."
2958
  msgstr ""
2959
 
2960
+ #: src/admin.php:935, src/templates/wp-admin/settings/updraftcentral-connect.php:9
2961
  msgid "UpdraftCentral Cloud"
2962
  msgstr ""
2963
 
2964
+ #: src/admin.php:936
2965
  msgid "Connected. Requesting UpdraftCentral Key."
2966
  msgstr ""
2967
 
2968
+ #: src/admin.php:937
2969
  msgid "Key created. Adding site to UpdraftCentral Cloud."
2970
  msgstr ""
2971
 
2972
+ #: src/admin.php:938
2973
  msgid "Login successful."
2974
  msgstr ""
2975
 
2976
+ #: src/admin.php:938, src/admin.php:940
2977
  msgid "Please follow this link to open %s in a new window."
2978
  msgstr ""
2979
 
2980
+ #: src/admin.php:939
2981
  msgid "Login successful; reloading information."
2982
  msgstr ""
2983
 
2984
+ #: src/admin.php:940
2985
  msgid "Registration successful."
2986
  msgstr ""
2987
 
2988
+ #: src/admin.php:941
2989
  msgid "Both email and password fields are required."
2990
  msgstr ""
2991
 
2992
+ #: src/admin.php:942
2993
  msgid "An email is required and needs to be in a valid format."
2994
  msgstr ""
2995
 
2996
+ #: src/admin.php:943
2997
  msgid "Trouble connecting? Try using an alternative method in the advanced security options."
2998
  msgstr ""
2999
 
3000
+ #: src/admin.php:944
3001
  msgid "Verifying one-time password..."
3002
  msgstr ""
3003
 
3004
+ #: src/admin.php:945
3005
  msgid "Perhaps you would want to login instead."
3006
  msgstr ""
3007
 
3008
+ #: src/admin.php:946
3009
  msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
3010
  msgstr ""
3011
 
3012
+ #: src/admin.php:947
3013
  msgid "Please wait while you are redirected to UpdraftCentral Cloud."
3014
  msgstr ""
3015
 
3016
+ #: src/admin.php:948
3017
  msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
3018
  msgstr ""
3019
 
3020
+ #: src/admin.php:949
3021
  msgid "You can also close this wizard."
3022
  msgstr ""
3023
 
3024
+ #: src/admin.php:950
3025
  msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
3026
  msgstr ""
3027
 
3028
+ #: src/admin.php:952
3029
  msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
3030
  msgstr ""
3031
 
3032
+ #: src/admin.php:953
3033
  msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
3034
  msgstr ""
3035
 
3036
+ #: src/admin.php:954
3037
  msgid "The preparation of the clone data has been aborted."
3038
  msgstr ""
3039
 
3040
+ #: src/admin.php:956
3041
  msgid "Are you sure you want to remove this exclusion rule?"
3042
  msgstr ""
3043
 
3044
+ #: src/admin.php:957
3045
  msgid "Please select a file/folder which you would like to exclude"
3046
  msgstr ""
3047
 
3048
+ #: src/admin.php:958
3049
  msgid "Please enter a file extension, like zip"
3050
  msgstr ""
3051
 
3052
+ #: src/admin.php:959
3053
  msgid "Please enter a valid file extension"
3054
  msgstr ""
3055
 
3056
+ #: src/admin.php:960
3057
  msgid "Please enter characters that begin the filename which you would like to exclude"
3058
  msgstr ""
3059
 
3060
+ #: src/admin.php:961
3061
  msgid "Please enter a valid file name prefix"
3062
  msgstr ""
3063
 
3064
+ #: src/admin.php:962
3065
  msgid "The exclusion rule which you are trying to add already exists"
3066
  msgstr ""
3067
 
3068
+ #: src/admin.php:963
3069
  msgid "UpdraftClone key is required."
3070
  msgstr ""
3071
 
3072
+ #: src/admin.php:964, src/templates/wp-admin/settings/backupnow-modal.php:40
3073
  msgid "Include your files in the backup"
3074
  msgstr ""
3075
 
3076
+ #: src/admin.php:965
3077
  msgid "File backup options"
3078
  msgstr ""
3079
 
3080
+ #: src/admin.php:966
3081
  msgid "HTML was detected in the response. You may have a security module on your webserver blocking the restoration operation."
3082
  msgstr ""
3083
 
3084
+ #: src/admin.php:967
3085
  msgid "You have not selected a restore path for your chosen backups"
3086
  msgstr ""
3087
 
3088
+ #: src/admin.php:968
3089
  msgid "Try UpdraftVault!"
3090
  msgstr ""
3091
 
3092
+ #: src/admin.php:969, src/includes/updraftplus-tour.php:132, src/includes/updraftplus-tour.php:184
3093
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
3094
  msgstr ""
3095
 
3096
+ #: src/admin.php:970, src/includes/updraftplus-tour.php:133, src/includes/updraftplus-tour.php:161, src/includes/updraftplus-tour.php:185, src/templates/wp-admin/settings/temporary-clone.php:22
3097
  msgid "Find out more here."
3098
  msgstr ""
3099
 
3100
+ #: src/admin.php:972
3101
  msgid "Try it - 1 month for $1!"
3102
  msgstr ""
3103
 
3104
+ #: src/admin.php:974
3105
  msgid "credentials"
3106
  msgstr ""
3107
 
3108
+ #: src/admin.php:977
3109
  msgid "last activity: %d seconds ago"
3110
  msgstr ""
3111
 
3112
+ #: src/admin.php:978
3113
  msgid "no recent activity; will offer resumption after: %d seconds"
3114
  msgstr ""
3115
 
3116
+ #: src/admin.php:979
3117
  msgid "Restoring %s1 files out of %s2"
3118
  msgstr ""
3119
 
3120
+ #: src/admin.php:980
3121
  msgid "Restoring table: %s"
3122
  msgstr ""
3123
 
3124
+ #: src/admin.php:981, src/admin.php:4768
3125
  msgid "Finished"
3126
  msgstr ""
3127
 
3128
+ #: src/admin.php:982
3129
  msgid "Begun"
3130
  msgstr ""
3131
 
3132
+ #: src/admin.php:983
3133
  msgid "Downloading backup files if needed"
3134
  msgstr ""
3135
 
3136
+ #: src/admin.php:984
3137
  msgid "Preparing backup files"
3138
  msgstr ""
3139
 
3140
+ #: src/admin.php:985
3141
  msgid "Attempts by the browser to contact the website failed."
3142
  msgstr ""
3143
 
3144
+ #: src/admin.php:986
3145
  msgid "Restore error:"
3146
  msgstr ""
3147
 
3148
+ #: src/admin.php:987, src/admin.php:2686, src/class-updraftplus.php:4672, src/restorer.php:3018
3149
+ msgid "Warning:"
3150
+ msgstr ""
3151
+
3152
+ #: src/admin.php:987
3153
+ msgid "Attempts by the browser to access some pages have returned a \"not found (404)\" error. This could mean that your .htaccess file has incorrect contents, is missing, or that your webserver is missing an equivalent mechanism."
3154
+ msgstr ""
3155
+
3156
+ #: src/admin.php:987
3157
+ msgid "Missing pages:"
3158
+ msgstr ""
3159
+
3160
+ #: src/admin.php:987, src/admin.php:5652, src/methods/openstack2.php:144, src/restorer.php:263, src/restorer.php:265, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/templates/wp-admin/settings/updraftcentral-connect.php:14
3161
+ msgid "Follow this link for more information"
3162
+ msgstr ""
3163
+
3164
+ #: src/admin.php:988
3165
+ msgid "Please check the error log for more details"
3166
+ msgstr ""
3167
+
3168
+ #: src/admin.php:1128
3169
  msgid "Add-Ons / Pro Support"
3170
  msgstr ""
3171
 
3172
+ #: src/admin.php:1175
3173
  msgid "An error occurred when fetching storage module options: "
3174
  msgstr ""
3175
 
3176
+ #: src/admin.php:1180, src/includes/class-commands.php:469, src/templates/wp-admin/settings/take-backup.php:13
3177
  msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
3178
  msgstr ""
3179
 
3180
+ #: src/admin.php:1185
3181
  msgid "Welcome to UpdraftPlus!"
3182
  msgstr ""
3183
 
3184
+ #: src/admin.php:1185
3185
  msgid "To make a backup, just press the Backup Now button."
3186
  msgstr ""
3187
 
3188
+ #: src/admin.php:1185
3189
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
3190
  msgstr ""
3191
 
3192
+ #: src/admin.php:1189, src/class-updraftplus.php:918
3193
  msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
3194
  msgstr ""
3195
 
3196
+ #: src/admin.php:1194
3197
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
3198
  msgstr ""
3199
 
3200
+ #: src/admin.php:1200
3201
  msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
3202
  msgstr ""
3203
 
3204
+ #: src/admin.php:1204
3205
  msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
3206
  msgstr ""
3207
 
3208
+ #: src/admin.php:1208
3209
  msgid "Your website is hosted using the %s web server."
3210
  msgstr ""
3211
 
3212
+ #: src/admin.php:1208
3213
  msgid "Please consult this FAQ if you have problems backing up."
3214
  msgstr ""
3215
 
3216
+ #: src/admin.php:1212, src/admin.php:1265
3217
  msgid "Notice"
3218
  msgstr ""
3219
 
3220
+ #: src/admin.php:1212
3221
  msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
3222
  msgstr ""
3223
 
3224
+ #: src/admin.php:1217
3225
  msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
3226
  msgstr ""
3227
 
3228
+ #: src/admin.php:1217
3229
  msgid "Read this page for a guide to possible causes and how to fix it."
3230
  msgstr ""
3231
 
3232
+ #: src/admin.php:1237, src/admin.php:1258, src/admin.php:1282, src/class-updraftplus.php:595, src/class-updraftplus.php:655, src/class-updraftplus.php:660, src/class-updraftplus.php:665
3233
  msgid "UpdraftPlus notice:"
3234
  msgstr ""
3235
 
3236
+ #: src/admin.php:1237
3237
  msgid "%s has been chosen for remote storage, but you are not currently connected."
3238
  msgstr ""
3239
 
3240
+ #: src/admin.php:1237
3241
  msgid "Go to the remote storage settings in order to connect."
3242
  msgstr ""
3243
 
3244
+ #: src/admin.php:1265
3245
  msgid "Connection to your %1$s account was successful. However, we were not able to register this site with %2$s, as there are no available %2$s licences on the account."
3246
  msgstr ""
3247
 
3248
+ #: src/admin.php:1384, src/admin.php:1394
3249
  msgid "Error: invalid path"
3250
  msgstr ""
3251
 
3252
+ #: src/admin.php:1746, src/includes/class-wpadmin-commands.php:581
3253
  msgid "Backup set not found"
3254
  msgstr ""
3255
 
3256
+ #: src/admin.php:1963
3257
+ msgid "The authentication failed for '%s'."
3258
+ msgstr ""
3259
+
3260
+ #: src/admin.php:1963
3261
+ msgid "Please check your credentials."
3262
+ msgstr ""
3263
+
3264
+ #: src/admin.php:1966
3265
+ msgid "We were unable to access '%s'."
3266
  msgstr ""
3267
 
3268
+ #: src/admin.php:1966
3269
+ msgid "Service unavailable."
3270
+ msgstr ""
3271
+
3272
+ #: src/admin.php:1969
3273
+ msgid "We were unable to access the folder/container for '%s'."
3274
+ msgstr ""
3275
+
3276
+ #: src/admin.php:1969, src/admin.php:1972
3277
+ msgid "Please check your permissions."
3278
+ msgstr ""
3279
+
3280
+ #: src/admin.php:1972
3281
+ msgid "We were unable to access a file on '%s'."
3282
+ msgstr ""
3283
+
3284
+ #: src/admin.php:1975
3285
+ msgid "We were unable to delete a file on '%s'."
3286
+ msgstr ""
3287
+
3288
+ #: src/admin.php:1975
3289
+ msgid "The file may no longer exist or you may not have permission to delete."
3290
+ msgstr ""
3291
+
3292
+ #: src/admin.php:1978
3293
+ msgid "An error occurred while attempting to delete from '%s'."
3294
+ msgstr ""
3295
+
3296
+ #: src/admin.php:1988
3297
  msgid "Backup sets removed:"
3298
  msgstr ""
3299
 
3300
+ #: src/admin.php:1989
3301
  msgid "Local files deleted:"
3302
  msgstr ""
3303
 
3304
+ #: src/admin.php:1990
3305
  msgid "Remote files deleted:"
3306
  msgstr ""
3307
 
3308
+ #: src/admin.php:2087
3309
  msgid "Job deleted"
3310
  msgstr ""
3311
 
3312
+ #: src/admin.php:2095
3313
  msgid "Could not find that job - perhaps it has already finished?"
3314
  msgstr ""
3315
 
3316
+ #: src/admin.php:2190, src/admin.php:2213, src/includes/class-commands.php:839
3317
  msgid "Start backup"
3318
  msgstr ""
3319
 
3320
+ #: src/admin.php:2190, src/includes/class-commands.php:839
3321
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
3322
  msgstr ""
3323
 
3324
+ #: src/admin.php:2197
3325
  msgid "No suitable backup set (that already contains a full backup of all the requested file component types) was found, to add increments to. Aborting this backup."
3326
  msgstr ""
3327
 
3328
+ #: src/admin.php:2277, src/admin.php:2281, src/class-updraftplus.php:655
3329
  msgid "The log file could not be read."
3330
  msgstr ""
3331
 
3332
+ #: src/admin.php:2328
3333
  msgid "Download failed"
3334
  msgstr ""
3335
 
3336
+ #: src/admin.php:2358
3337
  msgid "Download in progress"
3338
  msgstr ""
3339
 
3340
+ #: src/admin.php:2361
3341
  msgid "No local copy present."
3342
  msgstr ""
3343
 
3344
+ #: src/admin.php:2415, src/backup.php:1204
3345
  msgid "Backup directory (%s) is not writable, or does not exist."
3346
  msgstr ""
3347
 
3348
+ #: src/admin.php:2415
3349
  msgid "You will find more information about this in the Settings section."
3350
  msgstr ""
3351
 
3352
+ #: src/admin.php:2452
3353
  msgid "This file could not be uploaded"
3354
  msgstr ""
3355
 
3356
+ #: src/admin.php:2467
3357
  msgid "This backup was created by %s, and can be imported."
3358
  msgstr ""
3359
 
3360
+ #: src/admin.php:2473
3361
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
3362
  msgstr ""
3363
 
3364
+ #: src/admin.php:2481
3365
  msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
3366
  msgstr ""
3367
 
3368
+ #: src/admin.php:2573
3369
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
3370
  msgstr ""
3371
 
3372
+ #: src/admin.php:2665
3373
  msgid "Backup directory could not be created"
3374
  msgstr ""
3375
 
3376
+ #: src/admin.php:2672
3377
  msgid "Backup directory successfully created."
3378
  msgstr ""
3379
 
3380
+ #: src/admin.php:2674, src/admin.php:3578, src/admin.php:4696, src/admin.php:4708, src/admin.php:4719, src/admin.php:4948, src/admin.php:5851
3381
  msgid "Return to UpdraftPlus configuration"
3382
  msgstr ""
3383
 
3384
+ #: src/admin.php:2686
 
 
 
 
3385
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
3386
  msgstr ""
3387
 
3388
+ #: src/admin.php:2689
3389
  msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
3390
  msgstr ""
3391
 
3392
+ #: src/admin.php:2704
3393
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
3394
  msgstr ""
3395
 
3396
+ #: src/admin.php:2704
3397
  msgid "To fix this problem go here."
3398
  msgstr ""
3399
 
3400
+ #: src/admin.php:2706
3401
  msgid "For even more features and personal support, check out "
3402
  msgstr ""
3403
 
3404
+ #: src/admin.php:2708
3405
  msgid "Your backup has been restored."
3406
  msgstr ""
3407
 
3408
+ #: src/admin.php:2733
3409
  msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
3410
  msgstr ""
3411
 
3412
+ #: src/admin.php:2733
3413
  msgid "Current limit is:"
3414
  msgstr ""
3415
 
3416
+ #: src/admin.php:2794
3417
  msgid "Backup Contents And Schedule"
3418
  msgstr ""
3419
 
3420
+ #: src/admin.php:2893
3421
  msgid "Backup / Restore"
3422
  msgstr ""
3423
 
3424
+ #: src/admin.php:2897
3425
  msgid "Premium / Extensions"
3426
  msgstr ""
3427
 
3428
+ #: src/admin.php:2964
3429
  msgid "%s minutes, %s seconds"
3430
  msgstr ""
3431
 
3432
+ #: src/admin.php:2967
3433
  msgid "Unfinished restoration"
3434
  msgstr ""
3435
 
3436
+ #: src/admin.php:2968
3437
  msgid "You have an unfinished restoration operation, begun %s ago."
3438
  msgstr ""
3439
 
3440
+ #: src/admin.php:2976, src/admin.php:2978
3441
  msgid "Continue restoration"
3442
  msgstr ""
3443
 
3444
+ #: src/admin.php:2980, src/templates/wp-admin/notices/autobackup-notice.php:16, src/templates/wp-admin/notices/autobackup-notice.php:18, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
3445
  msgid "Dismiss"
3446
  msgstr ""
3447
 
3448
+ #: src/admin.php:3004
3449
  msgid "Not yet got an account (it's free)? Go get one!"
3450
  msgstr ""
3451
 
3452
+ #: src/admin.php:3015
3453
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
3454
  msgstr ""
3455
 
3456
+ #: src/admin.php:3027, src/includes/class-commands.php:911, src/includes/class-commands.php:960, src/includes/class-commands.php:962, src/templates/wp-admin/settings/temporary-clone.php:83, src/templates/wp-admin/settings/updraftcentral-connect.php:71
3457
  msgid "Processing"
3458
  msgstr ""
3459
 
3460
+ #: src/admin.php:3070
3461
  msgid "Connect with your UpdraftPlus.Com account"
3462
  msgstr ""
3463
 
3464
+ #: src/admin.php:3076, src/methods/updraftvault.php:387, src/templates/wp-admin/settings/form-contents.php:256, src/templates/wp-admin/settings/updraftcentral-connect.php:44
3465
  msgid "Email"
3466
  msgstr ""
3467
 
3468
+ #: src/admin.php:3091
3469
  msgid "Forgotten your details?"
3470
  msgstr ""
3471
 
3472
+ #: src/admin.php:3103
3473
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
3474
  msgstr ""
3475
 
3476
+ #: src/admin.php:3114
3477
  msgid "Add this website to UpdraftCentral (remote, centralised control) - free for up to 5 sites."
3478
  msgstr ""
3479
 
3480
+ #: src/admin.php:3114
3481
  msgid "Learn more about UpdraftCentral"
3482
  msgstr ""
3483
 
3484
+ #: src/admin.php:3140, src/templates/wp-admin/settings/updraftcentral-connect.php:56
3485
  msgid "One Time Password (check your OTP app to get this password)"
3486
  msgstr ""
3487
 
3488
+ #: src/admin.php:3211
3489
  msgid "Latest UpdraftPlus.com news:"
3490
  msgstr ""
3491
 
3492
+ #: src/admin.php:3238
3493
  msgid "Download most recently modified log file"
3494
  msgstr ""
3495
 
3496
+ #: src/admin.php:3281
3497
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
3498
  msgstr ""
3499
 
3500
+ #: src/admin.php:3350, src/admin.php:4422
3501
  msgid "View Log"
3502
  msgstr ""
3503
 
3504
+ #: src/admin.php:3390
3505
  msgid "Backup begun"
3506
  msgstr ""
3507
 
3508
+ #: src/admin.php:3395
3509
  msgid "Creating file backup zips"
3510
  msgstr ""
3511
 
3512
+ #: src/admin.php:3408
3513
  msgid "Created file backup zips"
3514
  msgstr ""
3515
 
3516
+ #: src/admin.php:3413
3517
  msgid "Clone server being provisioned and booted (can take several minutes)"
3518
  msgstr ""
3519
 
3520
+ #: src/admin.php:3417
3521
  msgid "Uploading files to remote storage"
3522
  msgstr ""
3523
 
3524
+ #: src/admin.php:3418
3525
  msgid "Sending files to remote site"
3526
  msgstr ""
3527
 
3528
+ #: src/admin.php:3425
3529
  msgid "(%s%%, file %s of %s)"
3530
  msgstr ""
3531
 
3532
+ #: src/admin.php:3430
3533
  msgid "Pruning old backup sets"
3534
  msgstr ""
3535
 
3536
+ #: src/admin.php:3434
3537
  msgid "Waiting until scheduled time to retry because of errors"
3538
  msgstr ""
3539
 
3540
+ #: src/admin.php:3439
3541
  msgid "Backup finished"
3542
  msgstr ""
3543
 
3544
+ #: src/admin.php:3452
3545
  msgid "Created database backup"
3546
  msgstr ""
3547
 
3548
+ #: src/admin.php:3463
3549
  msgid "Creating database backup"
3550
  msgstr ""
3551
 
3552
+ #: src/admin.php:3465
3553
  msgid "table: %s"
3554
  msgstr ""
3555
 
3556
+ #: src/admin.php:3478
3557
  msgid "Encrypting database"
3558
  msgstr ""
3559
 
3560
+ #: src/admin.php:3486
3561
  msgid "Encrypted database"
3562
  msgstr ""
3563
 
3564
+ #: src/admin.php:3488, src/central/bootstrap.php:459, src/central/bootstrap.php:466, src/methods/updraftvault.php:437, src/methods/updraftvault.php:483, src/methods/updraftvault.php:566
3565
  msgid "Unknown"
3566
  msgstr ""
3567
 
3568
+ #: src/admin.php:3505
3569
  msgid "next resumption: %d (after %ss)"
3570
  msgstr ""
3571
 
3572
+ #: src/admin.php:3506
3573
  msgid "last activity: %ss ago"
3574
  msgstr ""
3575
 
3576
+ #: src/admin.php:3526
3577
  msgid "Job ID: %s"
3578
  msgstr ""
3579
 
3580
+ #: src/admin.php:3540, src/admin.php:3832
3581
  msgid "Warning: %s"
3582
  msgstr ""
3583
 
3584
+ #: src/admin.php:3560
3585
  msgid "show log"
3586
  msgstr ""
3587
 
3588
+ #: src/admin.php:3561
3589
  msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
3590
  msgstr ""
3591
 
3592
+ #: src/admin.php:3561
3593
  msgid "stop"
3594
  msgstr ""
3595
 
3596
+ #: src/admin.php:3571, src/admin.php:3571
3597
  msgid "Remove old directories"
3598
  msgstr ""
3599
 
3600
+ #: src/admin.php:3574
3601
  msgid "Old directories successfully removed."
3602
  msgstr ""
3603
 
3604
+ #: src/admin.php:3576
3605
  msgid "Old directory removal failed for some reason. You may want to do this manually."
3606
  msgstr ""
3607
 
3608
+ #: src/admin.php:3615, src/admin.php:3650, src/admin.php:3654, src/includes/class-remote-send.php:407, src/includes/class-storage-methods-interface.php:317, src/restorer.php:410, src/restorer.php:3348, src/restorer.php:3468
3609
  msgid "OK"
3610
  msgstr ""
3611
 
3612
+ #: src/admin.php:3699
3613
  msgid "The request to the filesystem to create the directory failed."
3614
  msgstr ""
3615
 
3616
+ #: src/admin.php:3713
3617
  msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
3618
  msgstr ""
3619
 
3620
+ #: src/admin.php:3718
3621
  msgid "The folder exists, but your webserver does not have permission to write to it."
3622
  msgstr ""
3623
 
3624
+ #: src/admin.php:3718
3625
  msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
3626
  msgstr ""
3627
 
3628
+ #: src/admin.php:3820
3629
  msgid "incremental backup; base backup: %s"
3630
  msgstr ""
3631
 
3632
+ #: src/admin.php:3850
3633
  msgid "No backup has been completed"
3634
  msgstr ""
3635
 
3636
+ #: src/admin.php:3866
3637
  msgctxt "i.e. Non-automatic"
3638
  msgid "Manual"
3639
  msgstr ""
3640
 
3641
+ #: src/admin.php:3885
3642
  msgid "Backup directory specified is writable, which is good."
3643
  msgstr ""
3644
 
3645
+ #: src/admin.php:3889
3646
  msgid "Backup directory specified does <b>not</b> exist."
3647
  msgstr ""
3648
 
3649
+ #: src/admin.php:3891
3650
  msgid "Backup directory specified exists, but is <b>not</b> writable."
3651
  msgstr ""
3652
 
3653
+ #: src/admin.php:3893
3654
  msgid "Follow this link to attempt to create the directory and set the permissions"
3655
  msgstr ""
3656
 
3657
+ #: src/admin.php:3893
3658
  msgid "or, to reset this option"
3659
  msgstr ""
3660
 
3661
+ #: src/admin.php:3893
3662
  msgid "press here"
3663
  msgstr ""
3664
 
3665
+ #: src/admin.php:3893
3666
  msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
3667
  msgstr ""
3668
 
3669
+ #: src/admin.php:3973
3670
  msgid "Your wp-content directory server path: %s"
3671
  msgstr ""
3672
 
3673
+ #: src/admin.php:3973
3674
  msgid "Any other directories found inside wp-content"
3675
  msgstr ""
3676
 
3677
+ #: src/admin.php:3984
3678
  msgid "Exclude these from"
3679
  msgstr ""
3680
 
3681
+ #: src/admin.php:4072
3682
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
3683
  msgstr ""
3684
 
3685
+ #: src/admin.php:4074
3686
  msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
3687
  msgstr ""
3688
 
3689
+ #: src/admin.php:4077
3690
  msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
3691
  msgstr ""
3692
 
3693
+ #: src/admin.php:4115, src/templates/wp-admin/settings/backupnow-modal.php:60, src/templates/wp-admin/settings/existing-backups-table.php:77, src/templates/wp-admin/settings/existing-backups-table.php:80
3694
  msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
3695
  msgstr ""
3696
 
3697
+ #: src/admin.php:4163
3698
  msgid "Total backup size:"
3699
  msgstr ""
3700
 
3701
+ #: src/admin.php:4229, src/includes/class-wpadmin-commands.php:161, src/restorer.php:2352
3702
  msgid "Backup created by unknown source (%s) - cannot be restored."
3703
  msgstr ""
3704
 
3705
+ #: src/admin.php:4258
3706
  msgid "Press here to download or browse"
3707
  msgstr ""
3708
 
3709
+ #: src/admin.php:4265
3710
  msgid "(%d archive(s) in set, total %s)."
3711
  msgstr ""
3712
 
3713
+ #: src/admin.php:4269
3714
  msgid "You appear to be missing one or more archives from this multi-archive set."
3715
  msgstr ""
3716
 
3717
+ #: src/admin.php:4298, src/admin.php:4300
3718
  msgid "(Not finished)"
3719
  msgstr ""
3720
 
3721
+ #: src/admin.php:4300
3722
  msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
3723
  msgstr ""
3724
 
3725
+ #: src/admin.php:4325
3726
  msgid "(backup set imported from remote location)"
3727
  msgstr ""
3728
 
3729
+ #: src/admin.php:4328
3730
  msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
3731
  msgstr ""
3732
 
3733
+ #: src/admin.php:4392
3734
  msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
3735
  msgstr ""
3736
 
3737
+ #: src/admin.php:4412
3738
  msgid "Delete this backup set"
3739
  msgstr ""
3740
 
3741
+ #: src/admin.php:4646, src/admin.php:4655
3742
  msgid "Sufficient information about the in-progress restoration operation could not be found."
3743
  msgstr ""
3744
 
3745
+ #: src/admin.php:4748, src/templates/wp-admin/settings/delete-and-restore-modals.php:30
3746
  msgid "UpdraftPlus Restoration"
3747
  msgstr ""
3748
 
3749
+ #: src/admin.php:4757
3750
  msgid "The restore operation has begun (%s). Do not close this page until it reports itself as having finished."
3751
  msgstr ""
3752
 
3753
+ #: src/admin.php:4758
3754
  msgid "Restoration progress:"
3755
  msgstr ""
3756
 
3757
+ #: src/admin.php:4761
3758
  msgid "Verifying"
3759
  msgstr ""
3760
 
3761
+ #: src/admin.php:4767
3762
  msgid "Cleaning"
3763
  msgstr ""
3764
 
3765
+ #: src/admin.php:4774
3766
  msgid "Activity log"
3767
  msgstr ""
3768
 
3769
+ #: src/admin.php:4780, src/templates/wp-admin/settings/delete-and-restore-modals.php:96
3770
  msgid "1. Component selection"
3771
  msgstr ""
3772
 
3773
+ #: src/admin.php:4781, src/templates/wp-admin/settings/delete-and-restore-modals.php:97
3774
  msgid "2. Verifications"
3775
  msgstr ""
3776
 
3777
+ #: src/admin.php:4782, src/templates/wp-admin/settings/delete-and-restore-modals.php:98
3778
  msgid "3. Restoration"
3779
  msgstr ""
3780
 
3781
+ #: src/admin.php:4863
3782
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3783
  msgstr ""
3784
 
3785
+ #: src/admin.php:4864
3786
  msgid "Backup does not exist in the backup history"
3787
  msgstr ""
3788
 
3789
+ #: src/admin.php:4900
3790
  msgid "ABORT: Could not find the information on which entities to restore."
3791
  msgstr ""
3792
 
3793
+ #: src/admin.php:4900
3794
  msgid "If making a request for support, please include this information:"
3795
  msgstr ""
3796
 
3797
+ #: src/admin.php:5112
3798
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
3799
  msgstr ""
3800
 
3801
+ #: src/admin.php:5112
3802
  msgid "settings"
3803
  msgstr ""
3804
 
3805
+ #: src/admin.php:5112
3806
  msgid "Not got any remote storage?"
3807
  msgstr ""
3808
 
3809
+ #: src/admin.php:5112
3810
  msgid "Check out UpdraftPlus Vault."
3811
  msgstr ""
3812
 
3813
+ #: src/admin.php:5114
3814
  msgid "Send this backup to remote storage"
3815
  msgstr ""
3816
 
3817
+ #: src/admin.php:5204
3818
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
3819
  msgstr ""
3820
 
3821
+ #: src/admin.php:5211, src/templates/wp-admin/settings/take-backup.php:51
3822
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3823
  msgstr ""
3824
 
3825
+ #: src/admin.php:5240
3826
  msgid "Your settings have been saved."
3827
  msgstr ""
3828
 
3829
+ #: src/admin.php:5245
3830
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3831
  msgstr ""
3832
 
3833
+ #: src/admin.php:5293
3834
  msgid "authentication error"
3835
  msgstr ""
3836
 
3837
+ #: src/admin.php:5297
3838
  msgid "Remote storage method and instance id are required for authentication."
3839
  msgstr ""
3840
 
3841
+ #: src/admin.php:5362
3842
  msgid "Your settings have been wiped."
3843
  msgstr ""
3844
 
3845
+ #: src/admin.php:5461
3846
  msgid "Known backups (raw)"
3847
  msgstr ""
3848
 
3849
+ #: src/admin.php:5496
3850
  msgid "Options (raw)"
3851
  msgstr ""
3852
 
3853
+ #: src/admin.php:5499
3854
  msgid "Value"
3855
  msgstr ""
3856
 
3857
+ #: src/admin.php:5652
3858
  msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
3859
  msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
3860
  msgstr[0] ""
3861
  msgstr[1] ""
3862
 
3863
+ #: src/admin.php:5681, src/admin.php:5685, src/templates/wp-admin/advanced/site-info.php:45, src/templates/wp-admin/advanced/site-info.php:51, src/templates/wp-admin/advanced/site-info.php:58, src/templates/wp-admin/advanced/site-info.php:59
 
 
 
 
3864
  msgid "%s version:"
3865
  msgstr ""
3866
 
3867
+ #: src/admin.php:5689
3868
  msgid "Clone region:"
3869
  msgstr ""
3870
 
3871
+ #: src/admin.php:5703
3872
  msgid "Clone:"
3873
  msgstr ""
3874
 
3875
+ #: src/admin.php:5705
3876
  msgid "This current site"
3877
  msgstr ""
3878
 
3879
+ #: src/admin.php:5706
3880
  msgid "An empty WordPress install"
3881
  msgstr ""
3882
 
3883
+ #: src/admin.php:5721
3884
  msgid "Clone package:"
3885
  msgstr ""
3886
 
3887
+ #: src/admin.php:5726, src/admin.php:5765
3888
+ msgid "(current version)"
3889
  msgstr ""
3890
 
3891
+ #: src/admin.php:5741
3892
+ msgid "Forbid non-administrators to login to WordPress on your clone"
3893
  msgstr ""
3894
 
3895
+ #: src/admin.php:5785
3896
  msgid "Your clone has started and will be available at the following URLs once it is ready."
3897
  msgstr ""
3898
 
3899
+ #: src/admin.php:5786
3900
  msgid "Front page:"
3901
  msgstr ""
3902
 
3903
+ #: src/admin.php:5787
3904
  msgid "Dashboard:"
3905
  msgstr ""
3906
 
3907
+ #: src/admin.php:5789, src/admin.php:5792
3908
  msgid "You can find your temporary clone information in your updraftplus.com account here."
3909
  msgstr ""
3910
 
3911
+ #: src/admin.php:5791
3912
  msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
3913
  msgstr ""
3914
 
3915
+ #: src/admin.php:5849, src/admin.php:5851
3916
  msgid "You have requested saving to remote storage (%s), but without entering any settings for that storage."
3917
  msgstr ""
3918
 
3964
  msgid "Failed to open database file for reading:"
3965
  msgstr ""
3966
 
3967
+ #: src/backup.php:1738
3968
  msgid "An error occurred whilst closing the final database file"
3969
  msgstr ""
3970
 
3971
+ #: src/backup.php:2051
3972
  msgid "Could not open the backup file for writing"
3973
  msgstr ""
3974
 
3975
+ #: src/backup.php:2163
3976
  msgid "Infinite recursion: consult your log for more information"
3977
  msgstr ""
3978
 
3979
+ #: src/backup.php:2196
3980
  msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
3981
  msgstr ""
3982
 
3983
+ #: src/backup.php:2218
3984
  msgid "Failed to open directory (check the file permissions and ownership): %s"
3985
  msgstr ""
3986
 
3987
+ #: src/backup.php:2283
3988
  msgid "%s: unreadable file - could not be backed up"
3989
  msgstr ""
3990
 
3991
+ #: src/backup.php:2969, src/backup.php:3262
3992
  msgid "Failed to open the zip file (%s) - %s"
3993
  msgstr ""
3994
 
3995
+ #: src/backup.php:2995
3996
  msgid "A very large file was encountered: %s (size: %s Mb)"
3997
  msgstr ""
3998
 
3999
+ #: src/backup.php:3306, src/class-updraftplus.php:931
4000
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
4001
  msgstr ""
4002
 
4003
+ #: src/backup.php:3313
4004
  msgid "The zip engine returned the message: %s."
4005
  msgstr ""
4006
 
4007
+ #: src/backup.php:3315
4008
  msgid "A zip error occurred"
4009
  msgstr ""
4010
 
4011
+ #: src/backup.php:3317
4012
  msgid "your web hosting account appears to be full; please see: %s"
4013
  msgstr ""
4014
 
4015
+ #: src/backup.php:3319
4016
  msgid "check your log for more details."
4017
  msgstr ""
4018
 
4076
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
4077
  msgstr ""
4078
 
4079
+ #: src/central/bootstrap.php:361, src/central/bootstrap.php:372
4080
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
4081
  msgstr ""
4082
 
4083
+ #: src/central/bootstrap.php:415, src/includes/class-remote-send.php:517
4084
  msgid "Key created successfully."
4085
  msgstr ""
4086
 
4087
+ #: src/central/bootstrap.php:415
4088
  msgid "You must copy and paste this key now - it cannot be shown again."
4089
  msgstr ""
4090
 
4091
+ #: src/central/bootstrap.php:436
4092
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
4093
  msgstr ""
4094
 
4095
+ #: src/central/bootstrap.php:468
4096
  msgid "Access this site as user:"
4097
  msgstr ""
4098
 
4099
+ #: src/central/bootstrap.php:468
4100
  msgid "Public key was sent to:"
4101
  msgstr ""
4102
 
4103
+ #: src/central/bootstrap.php:471
4104
  msgid "Created:"
4105
  msgstr ""
4106
 
4107
+ #: src/central/bootstrap.php:473
4108
  msgid "Key size: %d bits"
4109
  msgstr ""
4110
 
4111
+ #: src/central/bootstrap.php:478
4112
  msgid "Delete..."
4113
  msgstr ""
4114
 
4115
+ #: src/central/bootstrap.php:486
4116
  msgid "Manage existing keys (%d)..."
4117
  msgstr ""
4118
 
4119
+ #: src/central/bootstrap.php:491
4120
  msgid "Key description"
4121
  msgstr ""
4122
 
4123
+ #: src/central/bootstrap.php:492
4124
  msgid "Details"
4125
  msgstr ""
4126
 
4127
+ #: src/central/bootstrap.php:517
4128
  msgid "Connect this site to an UpdraftCentral dashboard found at..."
4129
  msgstr ""
4130
 
4131
+ #: src/central/bootstrap.php:526
4132
  msgid "UpdraftPlus.Com"
4133
  msgstr ""
4134
 
4135
+ #: src/central/bootstrap.php:528
4136
  msgid "i.e. if you have %s there"
4137
  msgstr ""
4138
 
4139
+ #: src/central/bootstrap.php:528
4140
  msgid "an account"
4141
  msgstr ""
4142
 
4143
+ #: src/central/bootstrap.php:534
4144
  msgid "Self-hosted dashboard"
4145
  msgstr ""
4146
 
4147
+ #: src/central/bootstrap.php:536
4148
  msgid "A website where you have installed %s"
4149
  msgstr ""
4150
 
4151
+ #: src/central/bootstrap.php:539
4152
  msgid "Enter the URL where your self-hosted install of UpdraftCentral is located:"
4153
  msgstr ""
4154
 
4155
+ #: src/central/bootstrap.php:541
4156
  msgid "URL for the site of your UpdraftCentral dashboard"
4157
  msgstr ""
4158
 
4159
+ #: src/central/bootstrap.php:542, src/includes/updraftplus-tour.php:92, src/templates/wp-admin/settings/delete-and-restore-modals.php:100
4160
  msgid "Next"
4161
  msgstr ""
4162
 
4163
+ #: src/central/bootstrap.php:548
4164
  msgid "UpdraftCentral dashboard connection details"
4165
  msgstr ""
4166
 
4167
+ #: src/central/bootstrap.php:550
4168
  msgid "Description"
4169
  msgstr ""
4170
 
4171
+ #: src/central/bootstrap.php:551
4172
  msgid "Enter any description"
4173
  msgstr ""
4174
 
4175
+ #: src/central/bootstrap.php:568
4176
  msgid "Use the alternative method for making a connection with the dashboard."
4177
  msgstr ""
4178
 
4179
+ #: src/central/bootstrap.php:569
4180
  msgid "More information..."
4181
  msgstr ""
4182
 
4183
+ #: src/central/bootstrap.php:585, src/methods/updraftvault.php:381, src/methods/updraftvault.php:395, src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-heading.php:4
4184
  msgid "Back..."
4185
  msgstr ""
4186
 
4187
+ #: src/central/bootstrap.php:604
4188
  msgid "View recent UpdraftCentral log events"
4189
  msgstr ""
4190
 
4191
+ #: src/central/bootstrap.php:618
4192
  msgid "UpdraftCentral (Remote Control)"
4193
  msgstr ""
4194
 
4195
+ #: src/central/bootstrap.php:620
4196
  msgid "UpdraftCentral enables control of your WordPress sites (including management of backups and updates) from a central dashboard."
4197
  msgstr ""
4198
 
4199
+ #: src/central/bootstrap.php:620
4200
  msgid "Read more about it here."
4201
  msgstr ""
4202
 
4203
+ #: src/central/bootstrap.php:625
4204
  msgid "Create another key"
4205
  msgstr ""
4206
 
4216
  msgid "Unable to install %s. Make sure that the zip file is a valid %s file and a previous version of this %s does not exist. If you wish to overwrite an existing %s then you will have to manually delete it from the %s folder on the remote website and try uploading the file again."
4217
  msgstr ""
4218
 
4219
+ #: src/central/modules/media.php:364
4220
  msgid "Failed to attach media."
4221
  msgstr ""
4222
 
4223
+ #: src/central/modules/media.php:366
4224
  msgid "Media has been attached to post."
4225
  msgstr ""
4226
 
4227
+ #: src/central/modules/media.php:374
4228
  msgid "Failed to detach media."
4229
  msgstr ""
4230
 
4231
+ #: src/central/modules/media.php:376
4232
  msgid "Media has been detached from post."
4233
  msgstr ""
4234
 
4235
+ #: src/central/modules/media.php:389
4236
  msgid "Failed to delete selected media."
4237
  msgstr ""
4238
 
4239
+ #: src/central/modules/media.php:392
4240
  msgid "Selected media has been deleted successfully."
4241
  msgstr ""
4242
 
4243
+ #: src/central/modules/media.php:454
4244
  msgid "Unattached"
4245
  msgstr ""
4246
 
4247
+ #: src/central/modules/posts.php:177
4248
+ msgid "Default template"
4249
+ msgstr ""
4250
+
4251
+ #: src/central/modules/posts.php:745, src/central/modules/posts.php:810
4252
+ msgid "$result->get_error_message"
4253
+ msgstr ""
4254
+
4255
+ #: src/central/modules/posts.php:1048
4256
+ msgid "Expected parameter(s) missing."
4257
+ msgstr ""
4258
+
4259
+ #: src/class-updraftplus.php:205
4260
  msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
4261
  msgstr ""
4262
 
4263
+ #: src/class-updraftplus.php:595, src/class-updraftplus.php:665
4264
  msgid "The given file was not found, or could not be read."
4265
  msgstr ""
4266
 
4267
+ #: src/class-updraftplus.php:630
4268
+ msgid "Under Maintenance"
4269
+ msgstr ""
4270
+
4271
+ #: src/class-updraftplus.php:630
4272
+ msgid "Briefly unavailable for scheduled maintenance. Check back in a minute."
4273
+ msgstr ""
4274
+
4275
+ #: src/class-updraftplus.php:660
4276
  msgid "No log files were found."
4277
  msgstr ""
4278
 
4279
+ #: src/class-updraftplus.php:915
4280
  msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
4281
  msgstr ""
4282
 
4283
+ #: src/class-updraftplus.php:944
4284
  msgid "Your free disk space is very low - only %s Mb remain"
4285
  msgstr ""
4286
 
4287
+ #: src/class-updraftplus.php:1283
4288
  msgid "%s Error: Failed to open local file"
4289
  msgstr ""
4290
 
4291
+ #: src/class-updraftplus.php:1398
4292
  msgid "%s error - failed to re-assemble chunks"
4293
  msgstr ""
4294
 
4295
+ #: src/class-updraftplus.php:1441, src/class-updraftplus.php:1485, src/methods/cloudfiles.php:386, src/methods/stream-base.php:304
4296
  msgid "Error opening local file: Failed to download"
4297
  msgstr ""
4298
 
4299
+ #: src/class-updraftplus.php:1509, src/methods/cloudfiles.php:416
4300
  msgid "Error - failed to download the file"
4301
  msgstr ""
4302
 
4303
+ #: src/class-updraftplus.php:1822, src/class-updraftplus.php:1824
4304
  msgid "files: %s"
4305
  msgstr ""
4306
 
4307
+ #: src/class-updraftplus.php:1878
4308
  msgid "External database (%s)"
4309
  msgstr ""
4310
 
4311
+ #: src/class-updraftplus.php:1881
4312
  msgid "Size: %s MB"
4313
  msgstr ""
4314
 
4315
+ #: src/class-updraftplus.php:1886, src/class-updraftplus.php:1891
4316
  msgid "%s checksum: %s"
4317
  msgstr ""
4318
 
4319
+ #: src/class-updraftplus.php:1921
4320
  msgid "Plugins"
4321
  msgstr ""
4322
 
4323
+ #: src/class-updraftplus.php:1922
4324
  msgid "Themes"
4325
  msgstr ""
4326
 
4327
+ #: src/class-updraftplus.php:1938
4328
  msgid "Others"
4329
  msgstr ""
4330
 
4331
+ #: src/class-updraftplus.php:2172
4332
  msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
4333
  msgstr ""
4334
 
4335
+ #: src/class-updraftplus.php:2247
4336
  msgid "The backup is being aborted for a repeated failure to progress."
4337
  msgstr ""
4338
 
4339
+ #: src/class-updraftplus.php:2976
4340
  msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
4341
  msgstr ""
4342
 
4343
+ #: src/class-updraftplus.php:3288, src/class-updraftplus.php:3380
4344
  msgid "The backup was aborted by the user"
4345
  msgstr ""
4346
 
4347
+ #: src/class-updraftplus.php:3295
4348
  msgid "The backup apparently succeeded and is now complete"
4349
  msgstr ""
4350
 
4351
+ #: src/class-updraftplus.php:3301
4352
  msgid "The backup apparently succeeded (with warnings) and is now complete"
4353
  msgstr ""
4354
 
4355
+ #: src/class-updraftplus.php:3307
4356
  msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
4357
  msgstr ""
4358
 
4359
+ #: src/class-updraftplus.php:3307
4360
  msgid "Your clone will now deploy this data to re-create your site."
4361
  msgstr ""
4362
 
4363
+ #: src/class-updraftplus.php:3318
4364
  msgid "The backup attempt has finished, apparently unsuccessfully"
4365
  msgstr ""
4366
 
4367
+ #: src/class-updraftplus.php:3322
4368
  msgid "The backup has not finished; a resumption is scheduled"
4369
  msgstr ""
4370
 
4371
+ #: src/class-updraftplus.php:3375
4372
  msgid "Full backup"
4373
  msgstr ""
4374
 
4375
+ #: src/class-updraftplus.php:3375
4376
  msgid "Incremental"
4377
  msgstr ""
4378
 
4379
+ #: src/class-updraftplus.php:3384
4380
  msgid "Files (database backup has not completed)"
4381
  msgstr ""
4382
 
4383
+ #: src/class-updraftplus.php:3384
4384
  msgid "Files only (database was not part of this particular schedule)"
4385
  msgstr ""
4386
 
4387
+ #: src/class-updraftplus.php:3387
4388
  msgid "Database (files backup has not completed)"
4389
  msgstr ""
4390
 
4391
+ #: src/class-updraftplus.php:3387
4392
  msgid "Database only (files were not part of this particular schedule)"
4393
  msgstr ""
4394
 
4395
+ #: src/class-updraftplus.php:3389
4396
  msgid "Incomplete"
4397
  msgstr ""
4398
 
4399
+ #: src/class-updraftplus.php:3392
4400
  msgid "Unknown/unexpected error - please raise a support request"
4401
  msgstr ""
4402
 
4403
+ #: src/class-updraftplus.php:3401
4404
  msgid "Errors encountered:"
4405
  msgstr ""
4406
 
4407
+ #: src/class-updraftplus.php:3419
4408
  msgid "Warnings encountered:"
4409
  msgstr ""
4410
 
4411
+ #: src/class-updraftplus.php:3434
4412
  msgid "Backed up: %s"
4413
  msgstr ""
4414
 
4415
+ #: src/class-updraftplus.php:3443
4416
  msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
4417
  msgstr ""
4418
 
4419
+ #: src/class-updraftplus.php:3443
4420
  msgid "read more at %s"
4421
  msgstr ""
4422
 
4423
+ #: src/class-updraftplus.php:3476
4424
  msgid "WordPress backup is complete"
4425
  msgstr ""
4426
 
4427
+ #: src/class-updraftplus.php:3477
4428
  msgid "Backup contains:"
4429
  msgstr ""
4430
 
4431
+ #: src/class-updraftplus.php:4008
4432
  msgid "Could not read the directory"
4433
  msgstr ""
4434
 
4435
+ #: src/class-updraftplus.php:4024
4436
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
4437
  msgstr ""
4438
 
4439
+ #: src/class-updraftplus.php:4493, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:1038
4440
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
4441
  msgstr ""
4442
 
4443
+ #: src/class-updraftplus.php:4495
4444
  msgid "Decryption failed. The database file is encrypted."
4445
  msgstr ""
4446
 
4447
+ #: src/class-updraftplus.php:4505, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:1051
4448
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
4449
  msgstr ""
4450
 
4451
+ #: src/class-updraftplus.php:4512
4452
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
4453
  msgstr ""
4454
 
4455
+ #: src/class-updraftplus.php:4520
4456
  msgid "Failed to open database file."
4457
  msgstr ""
4458
 
4459
+ #: src/class-updraftplus.php:4575
4460
  msgid "(version: %s)"
4461
  msgstr ""
4462
 
4463
+ #: src/class-updraftplus.php:4588
4464
  msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
4465
  msgstr ""
4466
 
4467
+ #: src/class-updraftplus.php:4593
4468
  msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
4469
  msgstr ""
4470
 
4471
+ #: src/class-updraftplus.php:4595
4472
  msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
4473
  msgstr ""
4474
 
4475
+ #: src/class-updraftplus.php:4595, src/class-updraftplus.php:4597
4476
  msgid "the migrator add-on"
4477
  msgstr ""
4478
 
4479
+ #: src/class-updraftplus.php:4597
4480
  msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
4481
  msgstr ""
4482
 
4483
+ #: src/class-updraftplus.php:4606, src/class-updraftplus.php:4626
4484
  msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
4485
  msgstr ""
4486
 
4487
+ #: src/class-updraftplus.php:4609
4488
  msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
4489
  msgstr ""
4490
 
4491
+ #: src/class-updraftplus.php:4614, src/restorer.php:1687
4492
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
4493
  msgstr ""
4494
 
4495
+ #: src/class-updraftplus.php:4614, src/restorer.php:1687
4496
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
4497
  msgstr ""
4498
 
4499
+ #: src/class-updraftplus.php:4635, src/class-updraftplus.php:4642
4500
  msgid "%s version: %s"
4501
  msgstr ""
4502
 
4503
+ #: src/class-updraftplus.php:4636
4504
  msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
4505
  msgstr ""
4506
 
4507
+ #: src/class-updraftplus.php:4643, src/class-updraftplus.php:4645
4508
  msgid "The site in this backup was running on a webserver with version %s of %s. "
4509
  msgstr ""
4510
 
4511
+ #: src/class-updraftplus.php:4643
4512
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
4513
  msgstr ""
4514
 
4515
+ #: src/class-updraftplus.php:4643
4516
  msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
4517
  msgstr ""
4518
 
4519
+ #: src/class-updraftplus.php:4643, src/class-updraftplus.php:4645
4520
  msgid "Any support requests to do with %s should be raised with your web hosting company."
4521
  msgstr ""
4522
 
4523
+ #: src/class-updraftplus.php:4645
4524
+ msgid "This is older than the server which you are now restoring onto (version %s)."
4525
+ msgstr ""
4526
+
4527
+ #: src/class-updraftplus.php:4645
4528
+ msgid "You should only proceed if you have checked and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the new %s version."
4529
+ msgstr ""
4530
+
4531
+ #: src/class-updraftplus.php:4650, src/restorer.php:2175, src/restorer.php:2611, src/restorer.php:2730
4532
  msgid "Old table prefix:"
4533
  msgstr ""
4534
 
4535
+ #: src/class-updraftplus.php:4653
4536
  msgid "Backup label:"
4537
  msgstr ""
4538
 
4539
+ #: src/class-updraftplus.php:4661, src/class-updraftplus.php:4664, src/restorer.php:732
4540
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
4541
  msgstr ""
4542
 
4543
+ #: src/class-updraftplus.php:4664
4544
  msgid "It will be imported as a new site."
4545
  msgstr ""
4546
 
4547
+ #: src/class-updraftplus.php:4664
4548
  msgid "Please read this link for important information on this process."
4549
  msgstr ""
4550
 
4551
+ #: src/class-updraftplus.php:4668, src/restorer.php:2622
4552
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
4553
  msgstr ""
4554
 
4555
+ #: src/class-updraftplus.php:4672
4556
  msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
4557
  msgstr ""
4558
 
4559
+ #: src/class-updraftplus.php:4672
4560
  msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
4561
  msgstr ""
4562
 
4563
+ #: src/class-updraftplus.php:4679, src/restorer.php:2628
4564
  msgid "Site information:"
4565
  msgstr ""
4566
 
4567
+ #: src/class-updraftplus.php:4742
4568
  msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
4569
  msgstr ""
4570
 
4571
+ #: src/class-updraftplus.php:4742
4572
  msgid "You must upgrade MySQL to be able to use this database."
4573
  msgstr ""
4574
 
4575
+ #: src/class-updraftplus.php:4765
4576
  msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
4577
  msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
4578
  msgstr[0] ""
4579
  msgstr[1] ""
4580
 
4581
+ #: src/class-updraftplus.php:4765
4582
  msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
4583
  msgstr ""
4584
 
4585
+ #: src/class-updraftplus.php:4775
4586
  msgid "Your chosen character set to use instead:"
4587
  msgstr ""
4588
 
4589
+ #: src/class-updraftplus.php:4799
4590
  msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
4591
  msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
4592
  msgstr[0] ""
4593
  msgstr[1] ""
4594
 
4595
+ #: src/class-updraftplus.php:4799
4596
  msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
4597
  msgstr ""
4598
 
4599
+ #: src/class-updraftplus.php:4822
4600
  msgid "Your chosen replacement collation"
4601
  msgstr ""
4602
 
4603
+ #: src/class-updraftplus.php:4845
4604
  msgid "Choose a default for each table"
4605
  msgstr ""
4606
 
4607
+ #: src/class-updraftplus.php:4898
4608
  msgid "This database backup is missing core WordPress tables: %s"
4609
  msgstr ""
4610
 
4611
+ #: src/class-updraftplus.php:4901
4612
  msgid "This database backup has the following WordPress tables excluded: %s"
4613
  msgstr ""
4614
 
4615
+ #: src/class-updraftplus.php:4906
4616
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
4617
  msgstr ""
4618
 
4619
+ #: src/class-updraftplus.php:4911
4620
+ msgid "If you do not want to restore all your tables, then choose some to exclude here."
4621
+ msgstr ""
4622
+
4623
+ #: src/includes/class-backup-history.php:131
4624
  msgid "You have not yet made any backups."
4625
  msgstr ""
4626
 
4627
+ #: src/includes/class-backup-history.php:682
4628
  msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
4629
  msgstr ""
4630
 
4631
+ #: src/includes/class-commands.php:408
4632
  msgid "%s add-on not found"
4633
  msgstr ""
4634
 
4635
+ #: src/includes/class-commands.php:796, src/methods/updraftvault.php:667, src/udaddons/options.php:219
4636
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4637
  msgstr ""
4638
 
4639
+ #: src/includes/class-commands.php:898, src/includes/class-commands.php:948
4640
  msgid "Available temporary clone tokens:"
4641
  msgstr ""
4642
 
4643
+ #: src/includes/class-commands.php:899
4644
  msgid "You can buy more temporary clone tokens here."
4645
  msgstr ""
4646
 
4647
+ #: src/includes/class-commands.php:910
4648
  msgid "Create clone"
4649
  msgstr ""
4650
 
4651
+ #: src/includes/class-commands.php:917
4652
  msgid "Current clones"
4653
  msgstr ""
4654
 
4655
+ #: src/includes/class-commands.php:917
4656
  msgid "manage"
4657
  msgstr ""
4658
 
4659
+ #: src/includes/class-commands.php:960
4660
  msgid "No backup will be started. The creation of your clone should now begin, and your WordPress username and password will be displayed below when ready."
4661
  msgstr ""
4662
 
4663
+ #: src/includes/class-commands.php:960, src/includes/class-commands.php:962
4664
  msgid "N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
4665
  msgstr ""
4666
 
4667
+ #: src/includes/class-commands.php:962
4668
  msgid "The creation of your data for creating the clone should now begin."
4669
  msgstr ""
4670
 
4671
+ #: src/includes/class-database-utility.php:566
4672
+ msgid "An error occurred while attempting to check the support of stored routines creation (%s %s)"
4673
+ msgstr ""
4674
+
4675
+ #: src/includes/class-database-utility.php:634
4676
+ msgid "An error occurred while attempting to retrieve routine status (%s %s)"
4677
+ msgstr ""
4678
+
4679
+ #: src/includes/class-database-utility.php:643
4680
+ msgid "An error occurred while attempting to retrieve the routine SQL/DDL statement (%s %s)"
4681
+ msgstr ""
4682
+
4683
  #: src/includes/class-filesystem-functions.php:105, src/templates/wp-admin/advanced/site-info.php:38
4684
  msgid "refresh"
4685
  msgstr ""
4696
  msgid "Web-server disk space in use by UpdraftPlus"
4697
  msgstr ""
4698
 
4699
+ #: src/includes/class-filesystem-functions.php:285, src/methods/ftp.php:343
4700
  msgid "Your web server's PHP installation has these functions disabled: %s."
4701
  msgstr ""
4702
 
4703
+ #: src/includes/class-filesystem-functions.php:285, src/methods/ftp.php:343, src/restorer.php:2383
4704
  msgid "Your hosting company must enable these functions before %s can work."
4705
  msgstr ""
4706
 
4707
+ #: src/includes/class-filesystem-functions.php:285, src/restorer.php:2383
4708
  msgid "restoration"
4709
  msgstr ""
4710
 
5337
  msgid "failed to list files"
5338
  msgstr ""
5339
 
5340
+ #: src/methods/addon-base-v2.php:227
5341
  msgid "This storage method does not allow downloading"
5342
  msgstr ""
5343
 
5344
+ #: src/methods/addon-base-v2.php:244, src/methods/addon-base-v2.php:264
5345
  msgid "Failed to download %s"
5346
  msgstr ""
5347
 
5348
+ #: src/methods/addon-base-v2.php:258
5349
  msgid "Failed to download"
5350
  msgstr ""
5351
 
5352
+ #: src/methods/addon-base-v2.php:366, src/methods/stream-base.php:382
5353
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
5354
  msgstr ""
5355
 
5393
  msgid "Follow this link to remove these settings for %s."
5394
  msgstr ""
5395
 
5396
+ #: src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:443, src/methods/openstack-base.php:576, src/methods/s3.php:887
5397
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support."
5398
  msgstr ""
5399
 
5400
+ #: src/methods/cloudfiles-new.php:96, src/methods/cloudfiles.php:443, src/methods/openstack-base.php:576, src/methods/s3.php:887
5401
  msgid "UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative."
5402
  msgstr ""
5403
 
5404
+ #: src/methods/cloudfiles-new.php:98, src/methods/cloudfiles.php:449
5405
  msgid "Get your API key <a href=\"https://mycloud.rackspace.com/\" target=\"_blank\">from your Rackspace Cloud console</a> (<a href=\"http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key\" target=\"_blank\">read instructions here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist."
5406
  msgstr ""
5407
 
5408
+ #: src/methods/cloudfiles-new.php:98, src/methods/cloudfiles.php:449, src/methods/openstack2.php:120
5409
  msgid "Also, you should read this important FAQ."
5410
  msgstr ""
5411
 
5425
  msgid "To create a new Rackspace API sub-user and API key that has access only to this Rackspace container, use this add-on."
5426
  msgstr ""
5427
 
5428
+ #: src/methods/cloudfiles-new.php:137, src/methods/cloudfiles.php:490
5429
  msgid "Cloud Files API Key"
5430
  msgstr ""
5431
 
5432
+ #: src/methods/cloudfiles-new.php:179, src/methods/cloudfiles.php:522, src/methods/s3.php:1155
5433
  msgid "API key"
5434
  msgstr ""
5435
 
5436
+ #: src/methods/cloudfiles.php:93, src/methods/cloudfiles.php:97, src/methods/cloudfiles.php:290, src/methods/cloudfiles.php:338, src/methods/cloudfiles.php:342
5437
  msgid "authentication failed"
5438
  msgstr ""
5439
 
5440
+ #: src/methods/cloudfiles.php:101, src/methods/cloudfiles.php:346, src/methods/cloudfiles.php:358
5441
  msgid "error - failed to create and access the container"
5442
  msgstr ""
5443
 
5449
  msgid "error - failed to upload file"
5450
  msgstr ""
5451
 
5452
+ #: src/methods/cloudfiles.php:238, src/methods/openstack-base.php:44, src/methods/openstack-base.php:357, src/methods/openstack-base.php:422, src/methods/openstack-base.php:495, src/methods/openstack-base.php:498, src/methods/openstack-base.php:516, src/methods/openstack-base.php:521
5453
  msgid "%s authentication failed"
5454
  msgstr ""
5455
 
5456
+ #: src/methods/cloudfiles.php:403, src/methods/openstack-base.php:460
5457
  msgid "Error downloading remote file: Failed to download"
5458
  msgstr ""
5459
 
5460
+ #: src/methods/cloudfiles.php:412
5461
  msgid "Error - no such file exists."
5462
  msgstr ""
5463
 
5464
+ #: src/methods/cloudfiles.php:466
5465
  msgid "US or UK Cloud"
5466
  msgstr ""
5467
 
5468
+ #: src/methods/cloudfiles.php:479
5469
  msgid "Rackspace Storage Region"
5470
  msgstr ""
5471
 
5472
+ #: src/methods/cloudfiles.php:486
5473
  msgid "Cloud Files username"
5474
  msgstr ""
5475
 
5476
+ #: src/methods/cloudfiles.php:498
5477
  msgid "Cloud Files"
5478
  msgstr ""
5479
 
5480
+ #: src/methods/cloudfiles.php:547, src/methods/openstack-base.php:477
5481
  msgid "Failure: No container details were given."
5482
  msgstr ""
5483
 
5484
+ #: src/methods/cloudfiles.php:574
5485
  msgid "Cloud Files error - we accessed the container, but failed to create a file within it"
5486
  msgstr ""
5487
 
5488
+ #: src/methods/cloudfiles.php:578, src/methods/openstack-base.php:535
5489
  msgid "We accessed the container, and were able to create files within it."
5490
  msgstr ""
5491
 
5513
  msgid "did not return the expected response - check your log file for more details"
5514
  msgstr ""
5515
 
5516
+ #: src/methods/dropbox.php:303, src/methods/dropbox.php:318
5517
  msgid "failed to upload file to %s (see log file for more)"
5518
  msgstr ""
5519
 
5520
+ #: src/methods/dropbox.php:373
5521
  msgid "%s returned an unexpected HTTP response: %s"
5522
  msgstr ""
5523
 
5524
+ #: src/methods/dropbox.php:443
5525
  msgid "You do not appear to be authenticated with %s (whilst deleting)"
5526
  msgstr ""
5527
 
5528
+ #: src/methods/dropbox.php:451
5529
  msgid "Failed to access %s when deleting (see log file for more)"
5530
  msgstr ""
5531
 
5532
+ #: src/methods/dropbox.php:485
5533
  msgid "You do not appear to be authenticated with %s"
5534
  msgstr ""
5535
 
5536
+ #: src/methods/dropbox.php:602, src/methods/dropbox.php:604
5537
  msgid "Need to use sub-folders?"
5538
  msgstr ""
5539
 
5540
+ #: src/methods/dropbox.php:602, src/methods/dropbox.php:604
5541
  msgid "Backups are saved in"
5542
  msgstr ""
5543
 
5544
+ #: src/methods/dropbox.php:602, src/methods/dropbox.php:604
5545
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
5546
  msgstr ""
5547
 
5548
+ #: src/methods/dropbox.php:602, src/methods/dropbox.php:604
5549
  msgid "there's an add-on for that."
5550
  msgstr ""
5551
 
5552
+ #: src/methods/dropbox.php:610
5553
  msgid "Dropbox"
5554
  msgstr ""
5555
 
5556
+ #: src/methods/dropbox.php:635
5557
  msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
5558
  msgstr ""
5559
 
5560
+ #: src/methods/dropbox.php:751, src/methods/dropbox.php:772
5561
  msgid "%s authentication"
5562
  msgstr ""
5563
 
5564
+ #: src/methods/dropbox.php:786
5565
  msgid "%s de-authentication"
5566
  msgstr ""
5567
 
5568
+ #: src/methods/dropbox.php:802, src/methods/dropbox.php:804
5569
  msgid "Success:"
5570
  msgstr ""
5571
 
5572
+ #: src/methods/dropbox.php:802, src/methods/dropbox.php:804
5573
  msgid "you have authenticated your %s account"
5574
  msgstr ""
5575
 
5576
+ #: src/methods/dropbox.php:807, src/methods/dropbox.php:829
5577
  msgid "though part of the returned information was not as expected - your mileage may vary"
5578
  msgstr ""
5579
 
5613
  msgid "Reporting"
5614
  msgstr ""
5615
 
5616
+ #: src/methods/ftp.php:121, src/methods/ftp.php:289
5617
  msgid "login failure"
5618
  msgstr ""
5619
 
5625
  msgid "%s login failure"
5626
  msgstr ""
5627
 
5628
+ #: src/methods/ftp.php:338
5629
  msgid "regular non-encrypted FTP"
5630
  msgstr ""
5631
 
5632
+ #: src/methods/ftp.php:339
5633
  msgid "encrypted FTP (implicit encryption)"
5634
  msgstr ""
5635
 
5636
+ #: src/methods/ftp.php:340
5637
  msgid "encrypted FTP (explicit encryption)"
5638
  msgstr ""
5639
 
5640
+ #: src/methods/ftp.php:349
5641
  msgid "If you want encryption (e.g. you are storing sensitive business data), then an add-on is available."
5642
  msgstr ""
5643
 
5644
+ #: src/methods/ftp.php:370
5645
  msgid "FTP server"
5646
  msgstr ""
5647
 
5648
+ #: src/methods/ftp.php:375
5649
  msgid "FTP login"
5650
  msgstr ""
5651
 
5652
+ #: src/methods/ftp.php:380
5653
  msgid "FTP password"
5654
  msgstr ""
5655
 
5656
+ #: src/methods/ftp.php:385
5657
  msgid "Remote path"
5658
  msgstr ""
5659
 
5660
+ #: src/methods/ftp.php:386, src/methods/ftp.php:386
5661
  msgid "Needs to already exist"
5662
  msgstr ""
5663
 
5664
+ #: src/methods/ftp.php:390
5665
  msgid "Passive mode"
5666
  msgstr ""
5667
 
5668
+ #: src/methods/ftp.php:392, src/methods/ftp.php:392
5669
  msgid "Almost all FTP servers will want passive mode; but if you need active mode, then uncheck this."
5670
  msgstr ""
5671
 
5672
+ #: src/methods/ftp.php:421
5673
  msgid "Failure: No server details were given."
5674
  msgstr ""
5675
 
5676
+ #: src/methods/ftp.php:425
5677
  msgid "login"
5678
  msgstr ""
5679
 
5680
+ #: src/methods/ftp.php:429, src/methods/openstack2.php:185
5681
  msgid "password"
5682
  msgstr ""
5683
 
5684
+ #: src/methods/ftp.php:439
5685
  msgid "Failure: we did not successfully log in with those credentials."
5686
  msgstr ""
5687
 
5688
+ #: src/methods/ftp.php:448
5689
  msgid "Success: we successfully logged in, and confirmed our ability to create a file in the given directory (login type:"
5690
  msgstr ""
5691
 
5692
+ #: src/methods/ftp.php:451
5693
  msgid "Failure: we successfully logged in, but were not able to create a file in the given directory."
5694
  msgstr ""
5695
 
5696
+ #: src/methods/ftp.php:453
5697
  msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
5698
  msgstr ""
5699
 
5705
  msgid "The client has been deleted from the Google Drive API console. Please create a new Google Drive project and reconnect with UpdraftPlus."
5706
  msgstr ""
5707
 
5708
+ #: src/methods/googledrive.php:600, src/methods/googledrive.php:662, src/methods/googledrive.php:678, src/methods/googledrive.php:680, src/methods/stream-base.php:228
5709
  msgid "Failed to upload to %s"
5710
  msgstr ""
5711
 
5725
  msgid "Have not yet obtained an access token from Google - you need to authorise or re-authorise your connection to Google Drive."
5726
  msgstr ""
5727
 
5728
+ #: src/methods/googledrive.php:1329
5729
  msgid "%s does not allow authorisation of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
5730
  msgstr ""
5731
 
5732
+ #: src/methods/googledrive.php:1336
5733
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
5734
  msgstr ""
5735
 
5736
+ #: src/methods/googledrive.php:1336
5737
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
5738
  msgstr ""
5739
 
5740
+ #: src/methods/googledrive.php:1336
5741
  msgid "N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site."
5742
  msgstr ""
5743
 
5744
+ #: src/methods/googledrive.php:1382
5745
  msgid "<strong>This is NOT a folder name</strong>."
5746
  msgstr ""
5747
 
5748
+ #: src/methods/googledrive.php:1382
5749
  msgid "It is an ID number internal to Google Drive"
5750
  msgstr ""
5751
 
5752
+ #: src/methods/googledrive.php:1395
5753
  msgid "To be able to set a custom folder name, use UpdraftPlus Premium."
5754
  msgstr ""
5755
 
5756
+ #: src/methods/googledrive.php:1402
5757
  msgid "Authenticate with Google"
5758
  msgstr ""
5759
 
5760
+ #: src/methods/googledrive.php:1412
5761
  msgid "To de-authorize UpdraftPlus (all sites) from accessing your Google Drive, follow this link to your Google account settings."
5762
  msgstr ""
5763
 
5764
+ #: src/methods/openstack-base.php:48, src/methods/openstack-base.php:122, src/methods/openstack-base.php:129, src/methods/openstack-base.php:361, src/methods/openstack-base.php:426
5765
  msgid "%s error - failed to access the container"
5766
  msgstr ""
5767
 
5768
+ #: src/methods/openstack-base.php:56, src/methods/openstack-base.php:369, src/methods/openstack-base.php:438
5769
  msgid "Could not access %s container"
5770
  msgstr ""
5771
 
5773
  msgid "%s error - failed to upload file"
5774
  msgstr ""
5775
 
5776
+ #: src/methods/openstack-base.php:446
5777
  msgid "The %s object was not found"
5778
  msgstr ""
5779
 
5780
+ #: src/methods/openstack-base.php:530
5781
  msgid "%s error - we accessed the container, but failed to create a file within it"
5782
  msgstr ""
5783
 
5784
+ #: src/methods/openstack-base.php:531, src/methods/openstack-base.php:536
5785
  msgid "Region: %s"
5786
  msgstr ""
5787
 
5851
  msgid "%s re-assembly error (%s): (see log file for more)"
5852
  msgstr ""
5853
 
5854
+ #: src/methods/s3.php:495, src/methods/s3.php:699, src/methods/s3.php:803
5855
  msgid "Error: Failed to access bucket %s. Check your permissions and credentials."
5856
  msgstr ""
5857
 
5859
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials."
5860
  msgstr ""
5861
 
5862
+ #: src/methods/s3.php:784, src/methods/s3.php:828
5863
  msgid "Error: Failed to download %s. Check your permissions and credentials."
5864
  msgstr ""
5865
 
5866
+ #: src/methods/s3.php:796
5867
  msgid "%s Error: Failed to download %s. Check your permissions and credentials."
5868
  msgstr ""
5869
 
5870
+ #: src/methods/s3.php:874
5871
  msgid "... and many more!"
5872
  msgstr ""
5873
 
5874
+ #: src/methods/s3.php:883
5875
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
5876
  msgstr ""
5877
 
5878
+ #: src/methods/s3.php:893
5879
  msgid "Get your access key and secret key from your <a href=\"%s\">%s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist."
5880
  msgstr ""
5881
 
5882
+ #: src/methods/s3.php:895
5883
  msgid "If you see errors about SSL certificates, then please go here for help."
5884
  msgstr ""
5885
 
5886
+ #: src/methods/s3.php:897
5887
  msgid "Other %s FAQs."
5888
  msgstr ""
5889
 
5890
+ #: src/methods/s3.php:947
5891
  msgid "To create a new IAM sub-user and access key that has access only to this bucket, use this add-on."
5892
  msgstr ""
5893
 
5894
+ #: src/methods/s3.php:956
5895
  msgid "%s access key"
5896
  msgstr ""
5897
 
5898
+ #: src/methods/s3.php:960
5899
  msgid "%s secret key"
5900
  msgstr ""
5901
 
5902
+ #: src/methods/s3.php:964
5903
  msgid "%s location"
5904
  msgstr ""
5905
 
5906
+ #: src/methods/s3.php:965
5907
  msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
5908
  msgstr ""
5909
 
5910
+ #: src/methods/s3.php:1159
5911
  msgid "API secret"
5912
  msgstr ""
5913
 
5914
+ #: src/methods/s3.php:1210
5915
  msgid "The AWS access key looks to be wrong (valid %s access keys begin with \"AK\")"
5916
  msgstr ""
5917
 
5918
+ #: src/methods/s3.php:1224
5919
  msgid "The communication with %s was encrypted."
5920
  msgstr ""
5921
 
5922
+ #: src/methods/s3.php:1226
5923
  msgid "The communication with %s was not encrypted."
5924
  msgstr ""
5925
 
5926
+ #: src/methods/s3.php:1231
5927
  msgid "Please check your access credentials."
5928
  msgstr ""
5929
 
5931
  msgid "S3 (Compatible)"
5932
  msgstr ""
5933
 
5934
+ #: src/methods/stream-base.php:134, src/methods/stream-base.php:138
5935
  msgid "Chunk %s: A %s error occurred"
5936
  msgstr ""
5937
 
5938
+ #: src/methods/stream-base.php:311
5939
  msgid "Error opening remote file: Failed to download"
5940
  msgstr ""
5941
 
5942
+ #: src/methods/stream-base.php:327
5943
  msgid "Download chunk size failed to change to %d"
5944
  msgstr ""
5945
 
5946
+ #: src/methods/stream-base.php:330
5947
  msgid "Download chunk size successfully changed to %d"
5948
  msgstr ""
5949
 
5950
+ #: src/methods/stream-base.php:342
5951
  msgid "Local write failed: Failed to download"
5952
  msgstr ""
5953
 
6171
  msgid "(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility)."
6172
  msgstr ""
6173
 
6174
+ #: src/restorer.php:253
6175
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
6176
  msgstr ""
6177
 
6178
+ #: src/restorer.php:381
6179
  msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
6180
  msgstr ""
6181
 
6182
+ #: src/restorer.php:392
6183
  msgid "Looking for %s archive: file name: %s"
6184
  msgstr ""
6185
 
6186
+ #: src/restorer.php:395
6187
  msgid "Skipping: this archive was already restored."
6188
  msgstr ""
6189
 
6190
+ #: src/restorer.php:407
6191
  msgid "Archive is expected to be size:"
6192
  msgstr ""
6193
 
6194
+ #: src/restorer.php:412
6195
  msgid "file is size:"
6196
  msgstr ""
6197
 
6198
+ #: src/restorer.php:415
6199
  msgid "The backup records do not contain information about the proper size of this file."
6200
  msgstr ""
6201
 
6202
+ #: src/restorer.php:418, src/restorer.php:419
6203
  msgid "Could not find one of the files for restoration"
6204
  msgstr ""
6205
 
6206
+ #: src/restorer.php:508
6207
  msgid "Final checks"
6208
  msgstr ""
6209
 
6210
+ #: src/restorer.php:601
6211
  msgid "Error message"
6212
  msgstr ""
6213
 
6214
+ #: src/restorer.php:717
6215
  msgid "UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually."
6216
  msgstr ""
6217
 
6218
+ #: src/restorer.php:718
6219
  msgid "Backup file not available."
6220
  msgstr ""
6221
 
6222
+ #: src/restorer.php:719
6223
  msgid "Copying this entity failed."
6224
  msgstr ""
6225
 
6226
+ #: src/restorer.php:720
6227
  msgid "Unpacking backup..."
6228
  msgstr ""
6229
 
6230
+ #: src/restorer.php:721
6231
  msgid "Decrypting database (can take a while)..."
6232
  msgstr ""
6233
 
6234
+ #: src/restorer.php:722
6235
  msgid "Database successfully decrypted."
6236
  msgstr ""
6237
 
6238
+ #: src/restorer.php:723
6239
  msgid "Moving old data out of the way..."
6240
  msgstr ""
6241
 
6242
+ #: src/restorer.php:724
6243
  msgid "Moving unpacked backup into place..."
6244
  msgstr ""
6245
 
6246
+ #: src/restorer.php:725
6247
  msgid "Restoring the database (on a large site this can take a long time - if it times out (which can happen if your web hosting company has configured your hosting to limit resources) then you should use a different method, such as phpMyAdmin)..."
6248
  msgstr ""
6249
 
6250
+ #: src/restorer.php:726
6251
  msgid "Cleaning up rubbish..."
6252
  msgstr ""
6253
 
6254
+ #: src/restorer.php:727
6255
  msgid "Could not move old files out of the way."
6256
  msgstr ""
6257
 
6258
+ #: src/restorer.php:727
6259
  msgid "You should check the file ownerships and permissions in your WordPress installation"
6260
  msgstr ""
6261
 
6262
+ #: src/restorer.php:728
6263
  msgid "Could not delete old path."
6264
  msgstr ""
6265
 
6266
+ #: src/restorer.php:729
6267
  msgid "Could not move new files into place. Check your wp-content/upgrade folder."
6268
  msgstr ""
6269
 
6270
+ #: src/restorer.php:730
6271
  msgid "Could not move the files into place. Check your file permissions."
6272
  msgstr ""
6273
 
6274
+ #: src/restorer.php:731
6275
  msgid "Failed to delete working directory after restoring."
6276
  msgstr ""
6277
 
6278
+ #: src/restorer.php:733
6279
  msgid "Failed to unpack the archive"
6280
  msgstr ""
6281
 
6282
+ #: src/restorer.php:734
6283
  msgid "Failed to read the manifest file from backup."
6284
  msgstr ""
6285
 
6286
+ #: src/restorer.php:735
6287
  msgid "Failed to find a manifest file in the backup."
6288
  msgstr ""
6289
 
6290
+ #: src/restorer.php:736
6291
  msgid "Failed to read from the working directory."
6292
  msgstr ""
6293
 
6294
+ #: src/restorer.php:1030
6295
  msgid "Failed to create a temporary directory"
6296
  msgstr ""
6297
 
6298
+ #: src/restorer.php:1046
6299
  msgid "Failed to write out the decrypted database to the filesystem"
6300
  msgstr ""
6301
 
6302
+ #: src/restorer.php:1127
6303
  msgid "The directory does not exist, and the attempt to create it failed"
6304
  msgstr ""
6305
 
6306
+ #: src/restorer.php:1130
6307
  msgid "The directory does not exist"
6308
  msgstr ""
6309
 
6310
+ #: src/restorer.php:1171
6311
  msgid "wp-config.php from backup: will restore as wp-config-backup.php"
6312
  msgstr ""
6313
 
6314
+ #: src/restorer.php:1178
6315
  msgid "wp-config.php from backup: restoring (as per user's request)"
6316
  msgstr ""
6317
 
6318
+ #: src/restorer.php:1363, src/restorer.php:1371
6319
  msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
6320
  msgstr ""
6321
 
6322
+ #: src/restorer.php:1371
6323
  msgid "file"
6324
  msgstr ""
6325
 
6326
+ #: src/restorer.php:1387
6327
  msgid "Existing unremoved folders from a previous restore exist (please use the \"Delete Old Directories\" button to delete them before trying again): %s"
6328
  msgstr ""
6329
 
6330
+ #: src/restorer.php:1395
6331
  msgid "This version of UpdraftPlus does not know how to handle this type of foreign backup"
6332
  msgstr ""
6333
 
6334
+ #: src/restorer.php:1500, src/restorer.php:1548
6335
  msgid "The WordPress content folder (wp-content) was not found in this zip file."
6336
  msgstr ""
6337
 
6338
+ #: src/restorer.php:1641
6339
  msgid "Files found:"
6340
  msgstr ""
6341
 
6342
+ #: src/restorer.php:2064
6343
  msgid "Please supply the requested information, and then continue."
6344
  msgstr ""
6345
 
6346
+ #: src/restorer.php:2134
6347
+ msgid "An error occurred while attempting to retrieve the MySQL global log_bin_trust_function_creators variable %s"
6348
+ msgstr ""
6349
+
6350
+ #: src/restorer.php:2141
6351
+ msgid "An error occurred while attempting to set a new value to the MySQL global log_bin_trust_function_creators variable %s"
6352
+ msgstr ""
6353
+
6354
+ #: src/restorer.php:2224
6355
+ msgid "Requested table engine (%s) is not present - changing to MyISAM."
6356
+ msgstr ""
6357
+
6358
+ #: src/restorer.php:2238
6359
+ msgid "Requested table character set (%s) is not present - changing to %s."
6360
+ msgstr ""
6361
+
6362
+ #: src/restorer.php:2254
6363
+ msgid "Found and replaced existing table foreign key constraints as the table prefix has changed."
6364
+ msgstr ""
6365
+
6366
+ #: src/restorer.php:2297
6367
+ msgid "Requested table collation (%1$s) is not present - changing to %2$s."
6368
+ msgid_plural "Requested table collations (%1$s) are not present - changing to %2$s."
6369
+ msgstr[0] ""
6370
+ msgstr[1] ""
6371
+
6372
+ #: src/restorer.php:2299
6373
+ msgid "Processing table (%s)"
6374
+ msgstr ""
6375
+
6376
+ #: src/restorer.php:2303
6377
+ msgid "will restore as:"
6378
+ msgstr ""
6379
+
6380
+ #: src/restorer.php:2345
6381
  msgid "Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method."
6382
  msgstr ""
6383
 
6384
+ #: src/restorer.php:2368
6385
  msgid "Failed to find database file"
6386
  msgstr ""
6387
 
6388
+ #: src/restorer.php:2389
6389
  msgid "Failed to open database file"
6390
  msgstr ""
6391
 
6392
+ #: src/restorer.php:2485, src/restorer.php:2527
6393
  msgid "Your database user does not have permission to drop tables"
6394
  msgstr ""
6395
 
6396
+ #: src/restorer.php:2488
6397
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
6398
  msgstr ""
6399
 
6400
+ #: src/restorer.php:2532
6401
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
6402
  msgstr ""
6403
 
6404
+ #: src/restorer.php:2581
6405
  msgid "Backup of: %s"
6406
  msgstr ""
6407
 
6408
+ #: src/restorer.php:2588
6409
  msgid "Backup created by:"
6410
  msgstr ""
6411
 
6412
+ #: src/restorer.php:2593
6413
  msgid "Site home:"
6414
  msgstr ""
6415
 
6416
+ #: src/restorer.php:2599
6417
  msgid "Content URL:"
6418
  msgstr ""
6419
 
6420
+ #: src/restorer.php:2604
6421
  msgid "Uploads URL:"
6422
  msgstr ""
6423
 
6424
+ #: src/restorer.php:2614
6425
  msgid "Skipped tables:"
6426
  msgstr ""
6427
 
6428
+ #: src/restorer.php:2673
6429
  msgid "Split line to avoid exceeding maximum packet size"
6430
  msgstr ""
6431
 
6432
+ #: src/restorer.php:2704, src/restorer.php:3123, src/restorer.php:3190, src/restorer.php:3207
6433
  msgid "An error occurred on the first %s command - aborting run"
6434
  msgstr ""
6435
 
6436
+ #: src/restorer.php:2796
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6437
  msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
6438
  msgstr ""
6439
 
6440
+ #: src/restorer.php:2802
6441
  msgid "Requested character set (%s) is not present - changing to %s."
6442
  msgstr ""
6443
 
6444
+ #: src/restorer.php:2910
6445
+ msgid "Skipping table %s: user has chosen not to restore this table"
6446
  msgstr ""
6447
 
6448
+ #: src/restorer.php:2913
6449
+ msgid "Skipping table %s: already restored on a prior run; next table to restore: %s"
6450
+ msgstr ""
6451
+
6452
+ #: src/restorer.php:3018
6453
  msgid "An SQL line that is larger than the maximum packet size and cannot be split was found; this line will not be processed, but will be dropped: %s"
6454
  msgstr ""
6455
 
6456
+ #: src/restorer.php:3160
6457
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
6458
  msgid "An error (%s) occurred:"
6459
  msgstr ""
6460
 
6461
+ #: src/restorer.php:3178
6462
  msgid "The Database connection has been closed and cannot be reopened."
6463
  msgstr ""
6464
 
6465
+ #: src/restorer.php:3205
6466
  msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
6467
  msgstr ""
6468
 
6469
+ #: src/restorer.php:3205
6470
  msgid "This database needs to be deployed on MySQL version %s or later."
6471
  msgstr ""
6472
 
6473
+ #: src/restorer.php:3207
6474
  msgid "To use this backup, your database server needs to support the %s character set."
6475
  msgstr ""
6476
 
6477
+ #: src/restorer.php:3212
6478
  msgid "Too many database errors have occurred - aborting"
6479
  msgstr ""
6480
 
6481
+ #: src/restorer.php:3342, src/restorer.php:3432
6482
  msgid "Table prefix has changed: changing %s table field(s) accordingly:"
6483
  msgstr ""
6484
 
6846
  msgid "You will need to restore it manually."
6847
  msgstr ""
6848
 
6849
+ #: src/templates/wp-admin/settings/downloading-and-restoring.php:21, src/templates/wp-admin/settings/tab-backups.php:21, src/templates/wp-admin/settings/tab-backups.php:44
6850
+ msgid "Existing Backups"
6851
+ msgstr ""
6852
+
6853
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27
6854
  msgid "Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here."
6855
  msgstr ""
6942
  msgid "Add an exclusion rule"
6943
  msgstr ""
6944
 
6945
+ #: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:68
6946
  msgid "Backup date"
6947
  msgstr ""
6948
 
6949
+ #: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:101
6950
  msgid "Backup data (click to download)"
6951
  msgstr ""
6952
 
6953
+ #: src/templates/wp-admin/settings/existing-backups-table.php:91
6954
  msgid "remote site"
6955
  msgstr ""
6956
 
6957
+ #: src/templates/wp-admin/settings/existing-backups-table.php:93
6958
  msgid "Remote storage: %s"
6959
  msgstr ""
6960
 
6961
+ #: src/templates/wp-admin/settings/existing-backups-table.php:159
6962
+ msgid "Show more backups..."
6963
+ msgstr ""
6964
+
6965
+ #: src/templates/wp-admin/settings/existing-backups-table.php:159
6966
+ msgid "Show all backups..."
6967
+ msgstr ""
6968
+
6969
+ #: src/templates/wp-admin/settings/existing-backups-table.php:167
6970
  msgid "Actions upon selected backups"
6971
  msgstr ""
6972
 
6973
+ #: src/templates/wp-admin/settings/existing-backups-table.php:168
6974
  msgid "Delete selected backups"
6975
  msgstr ""
6976
 
6977
+ #: src/templates/wp-admin/settings/existing-backups-table.php:169
6978
  msgid "Select all backups"
6979
  msgstr ""
6980
 
6981
+ #: src/templates/wp-admin/settings/existing-backups-table.php:169
6982
  msgid "Select all"
6983
  msgstr ""
6984
 
6985
+ #: src/templates/wp-admin/settings/existing-backups-table.php:170
6986
  msgid "Deselect all backups"
6987
  msgstr ""
6988
 
6989
+ #: src/templates/wp-admin/settings/existing-backups-table.php:170
6990
  msgid "Deselect"
6991
  msgstr ""
6992
 
6993
+ #: src/templates/wp-admin/settings/existing-backups-table.php:171
6994
  msgid "Use ctrl / cmd + press to select several items, or ctrl / cmd + shift + press to select all in between"
6995
  msgstr ""
6996
 
6997
+ #: src/templates/wp-admin/settings/existing-backups-table.php:174
6998
  msgid "Please allow time for the communications with the remote storage to complete."
6999
  msgstr ""
7000
 
7168
  msgstr ""
7169
 
7170
  #: src/templates/wp-admin/settings/form-contents.php:294
7171
+ msgid "open this to show some further options; don't bother with this unless you have a problem or are curious."
7172
  msgstr ""
7173
 
7174
  #: src/templates/wp-admin/settings/form-contents.php:304
methods/addon-base-v2.php CHANGED
@@ -198,11 +198,12 @@ abstract class UpdraftPlus_RemoteStorage_Addons_Base_v2 extends UpdraftPlus_Back
198
  foreach ($files as $file) {
199
  $this->log("Delete remote: $file");
200
  try {
201
- if (!$this->do_delete($file)) {
202
- $ret = false;
203
- $this->log("Delete failed");
204
- } else {
205
  $this->log("$file: Delete succeeded");
 
 
206
  }
207
  } catch (Exception $e) {
208
  $this->log('ERROR: '.$file.': Failed to delete file: '.$e->getMessage().' (code: '.$e->getCode().', line: '.$e->getLine().', file: '.$e->getFile().')');
198
  foreach ($files as $file) {
199
  $this->log("Delete remote: $file");
200
  try {
201
+ $ret = $this->do_delete($file);
202
+
203
+ if (true === $ret) {
 
204
  $this->log("$file: Delete succeeded");
205
+ } else {
206
+ $this->log("Delete failed");
207
  }
208
  } catch (Exception $e) {
209
  $this->log('ERROR: '.$file.': Failed to delete file: '.$e->getMessage().' (code: '.$e->getCode().', line: '.$e->getLine().', file: '.$e->getFile().')');
methods/backup-module.php CHANGED
@@ -645,7 +645,7 @@ abstract class UpdraftPlus_BackupModule {
645
 
646
  $prefix = $this->get_storage_label();
647
 
648
- $updraftplus->log("$prefix: $line", $level, $uniq_id = false, $skip_dblog = false);
649
  }
650
 
651
  /**
645
 
646
  $prefix = $this->get_storage_label();
647
 
648
+ $updraftplus->log("$prefix: $line", $level, $uniq_id, $skip_dblog);
649
  }
650
 
651
  /**
methods/cloudfiles.php CHANGED
@@ -263,7 +263,15 @@ class UpdraftPlus_BackupModule_cloudfiles_oldsdk extends UpdraftPlus_BackupModul
263
  return $results;
264
 
265
  }
266
-
 
 
 
 
 
 
 
 
267
  public function delete($files, $cloudfilesarr = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
268
 
269
  if (is_string($files)) $files =array($files);
@@ -280,7 +288,7 @@ class UpdraftPlus_BackupModule_cloudfiles_oldsdk extends UpdraftPlus_BackupModul
280
  } catch (Exception $e) {
281
  $this->log('authentication failed ('.$e->getMessage().')');
282
  $this->log(__('authentication failed', 'updraftplus').' ('.$e->getMessage().')', 'error');
283
- return false;
284
  }
285
  }
286
 
@@ -310,7 +318,7 @@ class UpdraftPlus_BackupModule_cloudfiles_oldsdk extends UpdraftPlus_BackupModul
310
  $this->log('Deleted: '.$fpath);
311
  } catch (Exception $e) {
312
  $this->log('delete failed: '.$e->getMessage());
313
- $ret = false;
314
  }
315
  }
316
  return $ret;
263
  return $results;
264
 
265
  }
266
+
267
+ /**
268
+ * Delete a single file from the service using the CloudFiles API
269
+ *
270
+ * @param Array $files - array of file paths to delete
271
+ * @param Array $cloudfilesarr - CloudFiles container and object details
272
+ * @param Array $sizeinfo - unused here
273
+ * @return Boolean|String - either a boolean true or an error code string
274
+ */
275
  public function delete($files, $cloudfilesarr = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
276
 
277
  if (is_string($files)) $files =array($files);
288
  } catch (Exception $e) {
289
  $this->log('authentication failed ('.$e->getMessage().')');
290
  $this->log(__('authentication failed', 'updraftplus').' ('.$e->getMessage().')', 'error');
291
+ return 'authentication_fail';
292
  }
293
  }
294
 
318
  $this->log('Deleted: '.$fpath);
319
  } catch (Exception $e) {
320
  $this->log('delete failed: '.$e->getMessage());
321
+ $ret = 'file_delete_error';
322
  }
323
  }
324
  return $ret;
methods/dropbox.php CHANGED
@@ -250,13 +250,13 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
250
  $filesize = $filesize/1024;
251
  $microtime = microtime(true);
252
 
253
- if ($upload_id = $this->jobdata_get('upload_id_'.$hash, null, 'updraf_dbid_'.$hash)) {
254
  // Resume
255
- $offset = $this->jobdata_get('upload_offset_'.$hash, null, 'updraf_dbof_'.$hash);
256
- $this->log("This is a resumption: $offset bytes had already been uploaded");
257
  } else {
258
  $offset = 0;
259
- $upload_id = null;
260
  }
261
 
262
  // We don't actually abort now - there's no harm in letting it try and then fail
@@ -291,6 +291,7 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
291
  $dropbox_wanted = (int) $matches[2];
292
  $this->log("not yet aligned: tried=$we_tried, wanted=$dropbox_wanted; will attempt recovery");
293
  $this->uploaded_offset = $dropbox_wanted;
 
294
  try {
295
  $dropbox->chunkedUpload($updraft_dir.'/'.$file, '', $ufile, true, $dropbox_wanted, $upload_id, array($this, 'chunked_callback'));
296
  } catch (Exception $e) {
@@ -423,6 +424,14 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
423
  return apply_filters('updraftplus_dropbox_defaults', array('Z3Q3ZmkwbnplNHA0Zzlx', 'bTY0bm9iNmY4eWhjODRt'));
424
  }
425
 
 
 
 
 
 
 
 
 
426
  public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
427
 
428
  if (is_string($files)) $files = array($files);
@@ -432,7 +441,7 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
432
  if (empty($opts['tk_access_token'])) {
433
  $this->log('You do not appear to be authenticated with Dropbox (3)');
434
  $this->log(sprintf(__('You do not appear to be authenticated with %s (whilst deleting)', 'updraftplus'), 'Dropbox'), 'warning');
435
- return false;
436
  }
437
 
438
  try {
@@ -440,7 +449,7 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
440
  } catch (Exception $e) {
441
  $this->log($e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
442
  $this->log(sprintf(__('Failed to access %s when deleting (see log file for more)', 'updraftplus'), 'Dropbox'), 'warning');
443
- return false;
444
  }
445
  if (false === $dropbox) return false;
446
 
@@ -457,8 +466,9 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
457
 
458
  if (isset($file_success)) {
459
  $this->log('delete succeeded');
 
460
  } else {
461
- return false;
462
  }
463
  }
464
 
250
  $filesize = $filesize/1024;
251
  $microtime = microtime(true);
252
 
253
+ if ('None' != ($upload_id = $this->jobdata_get('upload_id_'.$hash, 'None', 'updraf_dbid_'.$hash))) {
254
  // Resume
255
+ $offset = $this->jobdata_get('upload_offset_'.$hash, 0, 'updraf_dbof_'.$hash);
256
+ if ($offset) $this->log("This is a resumption: $offset bytes had already been uploaded");
257
  } else {
258
  $offset = 0;
259
+ $upload_id = 'None';
260
  }
261
 
262
  // We don't actually abort now - there's no harm in letting it try and then fail
291
  $dropbox_wanted = (int) $matches[2];
292
  $this->log("not yet aligned: tried=$we_tried, wanted=$dropbox_wanted; will attempt recovery");
293
  $this->uploaded_offset = $dropbox_wanted;
294
+ $upload_id = $this->jobdata_get('upload_id_'.$hash, 'None', 'updraf_dbid_'.$hash);
295
  try {
296
  $dropbox->chunkedUpload($updraft_dir.'/'.$file, '', $ufile, true, $dropbox_wanted, $upload_id, array($this, 'chunked_callback'));
297
  } catch (Exception $e) {
424
  return apply_filters('updraftplus_dropbox_defaults', array('Z3Q3ZmkwbnplNHA0Zzlx', 'bTY0bm9iNmY4eWhjODRt'));
425
  }
426
 
427
+ /**
428
+ * Delete a single file from the service using the Dropbox API
429
+ *
430
+ * @param Array $files - array of filenames to delete
431
+ * @param Array $data - unused here
432
+ * @param Array $sizeinfo - unused here
433
+ * @return Boolean|String - either a boolean true or an error code string
434
+ */
435
  public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
436
 
437
  if (is_string($files)) $files = array($files);
441
  if (empty($opts['tk_access_token'])) {
442
  $this->log('You do not appear to be authenticated with Dropbox (3)');
443
  $this->log(sprintf(__('You do not appear to be authenticated with %s (whilst deleting)', 'updraftplus'), 'Dropbox'), 'warning');
444
+ return 'authentication_fail';
445
  }
446
 
447
  try {
449
  } catch (Exception $e) {
450
  $this->log($e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
451
  $this->log(sprintf(__('Failed to access %s when deleting (see log file for more)', 'updraftplus'), 'Dropbox'), 'warning');
452
+ return 'service_unavailable';
453
  }
454
  if (false === $dropbox) return false;
455
 
466
 
467
  if (isset($file_success)) {
468
  $this->log('delete succeeded');
469
+ return true;
470
  } else {
471
+ return 'file_delete_error';
472
  }
473
  }
474
 
methods/ftp.php CHANGED
@@ -211,6 +211,14 @@ class UpdraftPlus_BackupModule_ftp extends UpdraftPlus_BackupModule {
211
 
212
  }
213
 
 
 
 
 
 
 
 
 
214
  public function delete($files, $ftparr = array(), $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
215
 
216
  global $updraftplus;
@@ -234,7 +242,7 @@ class UpdraftPlus_BackupModule_ftp extends UpdraftPlus_BackupModule {
234
  if (is_wp_error($ftp) || !$ftp->connect()) {
235
  if (is_wp_error($ftp)) $updraftplus->log_wp_error($ftp);
236
  $this->log("Failure: we did not successfully log in with those credentials (host=".$opts['host'].").");
237
- return false;
238
  }
239
 
240
  }
@@ -247,7 +255,7 @@ class UpdraftPlus_BackupModule_ftp extends UpdraftPlus_BackupModule {
247
  $this->log("delete: succeeded (${ftp_remote_path}${file})");
248
  } else {
249
  $this->log("delete: failed (${ftp_remote_path}${file})");
250
- $ret = false;
251
  }
252
  }
253
  return $ret;
211
 
212
  }
213
 
214
+ /**
215
+ * Delete a single file from the service using FTP protocols
216
+ *
217
+ * @param Array $files - array of file names to delete
218
+ * @param Array $ftparr - FTP details/credentials
219
+ * @param Array $sizeinfo - unused here
220
+ * @return Boolean|String - either a boolean true or an error code string
221
+ */
222
  public function delete($files, $ftparr = array(), $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
223
 
224
  global $updraftplus;
242
  if (is_wp_error($ftp) || !$ftp->connect()) {
243
  if (is_wp_error($ftp)) $updraftplus->log_wp_error($ftp);
244
  $this->log("Failure: we did not successfully log in with those credentials (host=".$opts['host'].").");
245
+ return 'authentication_fail';
246
  }
247
 
248
  }
255
  $this->log("delete: succeeded (${ftp_remote_path}${file})");
256
  } else {
257
  $this->log("delete: failed (${ftp_remote_path}${file})");
258
+ $ret = 'file_delete_error';
259
  }
260
  }
261
  return $ret;
methods/googledrive.php CHANGED
@@ -640,7 +640,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
640
  if ($filesize > $available_quota) {
641
  $already_failed = true;
642
  $this->log("File upload expected to fail: file ($file_name) size is $filesize b, whereas available quota is only $available_quota b");
643
- $this->log(sprintf(__("Account full: your %s account has only %d bytes left, but the file to be uploaded is %d bytes", 'updraftplus'), __('Google Drive', 'updraftplus'), $available_quota, $filesize), +'error');
644
  }
645
  }
646
 
@@ -1007,6 +1007,14 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
1007
  return $result;
1008
  }
1009
 
 
 
 
 
 
 
 
 
1010
  public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
1011
 
1012
  if (is_string($files)) $files = array($files);
@@ -1014,7 +1022,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
1014
  $storage = $this->bootstrap();
1015
  if (is_wp_error($storage)) {
1016
  $this->log("delete: failed due to storage error: ".$storage->get_error_code()." (".$storage->get_error_message().")");
1017
- return false;
1018
  }
1019
 
1020
  if (false == $storage) return $storage;
@@ -1026,7 +1034,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
1026
  $sub_items = $this->get_subitems($parent_id, 'file');
1027
  } catch (Exception $e) {
1028
  $this->log("delete: failed to access parent folder: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
1029
- return false;
1030
  }
1031
 
1032
  $ret = true;
@@ -1044,7 +1052,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
1044
  }
1045
  } catch (Exception $e) {
1046
  $this->log("delete: exception: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
1047
- $ret = false;
1048
  continue;
1049
  }
1050
  }
640
  if ($filesize > $available_quota) {
641
  $already_failed = true;
642
  $this->log("File upload expected to fail: file ($file_name) size is $filesize b, whereas available quota is only $available_quota b");
643
+ $this->log(sprintf(__("Account full: your %s account has only %d bytes left, but the file to be uploaded is %d bytes", 'updraftplus'), __('Google Drive', 'updraftplus'), $available_quota, $filesize), 'error');
644
  }
645
  }
646
 
1007
  return $result;
1008
  }
1009
 
1010
+ /**
1011
+ * Delete a single file from the service using GoogleDrive API
1012
+ *
1013
+ * @param Array|String $files - array of file names to delete
1014
+ * @param Array $data - unused here
1015
+ * @param Array $sizeinfo - unused here
1016
+ * @return Boolean|String - either a boolean true or an error code string
1017
+ */
1018
  public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
1019
 
1020
  if (is_string($files)) $files = array($files);
1022
  $storage = $this->bootstrap();
1023
  if (is_wp_error($storage)) {
1024
  $this->log("delete: failed due to storage error: ".$storage->get_error_code()." (".$storage->get_error_message().")");
1025
+ return 'service_unavailable';
1026
  }
1027
 
1028
  if (false == $storage) return $storage;
1034
  $sub_items = $this->get_subitems($parent_id, 'file');
1035
  } catch (Exception $e) {
1036
  $this->log("delete: failed to access parent folder: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
1037
+ return 'container_access_error';
1038
  }
1039
 
1040
  $ret = true;
1052
  }
1053
  } catch (Exception $e) {
1054
  $this->log("delete: exception: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
1055
+ $ret = 'file_delete_error';
1056
  continue;
1057
  }
1058
  }
methods/openstack-base.php CHANGED
@@ -330,7 +330,15 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
330
 
331
  return true;
332
  }
333
-
 
 
 
 
 
 
 
 
334
  public function delete($files, $data = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
335
 
336
  global $updraftplus;
@@ -347,11 +355,11 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
347
  } catch (AuthenticationError $e) {
348
  $updraftplus->log($this->desc.' authentication failed ('.$e->getMessage().')');
349
  $updraftplus->log(sprintf(__('%s authentication failed', 'updraftplus'), $this->desc).' ('.$e->getMessage().')', 'error');
350
- return false;
351
  } catch (Exception $e) {
352
  $updraftplus->log($this->desc.' error - failed to access the container ('.$e->getMessage().')');
353
  $updraftplus->log(sprintf(__('%s error - failed to access the container', 'updraftplus'), $this->desc).' ('.$e->getMessage().')', 'error');
354
- return false;
355
  }
356
  // Get the container
357
  try {
@@ -359,7 +367,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
359
  } catch (Exception $e) {
360
  $updraftplus->log('Could not access '.$this->desc.' container ('.get_class($e).', '.$e->getMessage().')');
361
  $updraftplus->log(sprintf(__('Could not access %s container', 'updraftplus'), $this->desc).' ('.get_class($e).', '.$e->getMessage().')', 'error');
362
- return false;
363
  }
364
 
365
  }
@@ -395,7 +403,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
395
  $updraftplus->log($this->desc.': Deleted: '.$file);
396
  } catch (Exception $e) {
397
  $updraftplus->log($this->desc.' delete failed: '.$e->getMessage());
398
- $ret = false;
399
  }
400
  }
401
  return $ret;
330
 
331
  return true;
332
  }
333
+
334
+ /**
335
+ * Delete a single file from the service using OpenStack API
336
+ *
337
+ * @param Array|String $files - array of file names to delete
338
+ * @param Array $data - service object and container details
339
+ * @param Array $sizeinfo - unused here
340
+ * @return Boolean|String - either a boolean true or an error code string
341
+ */
342
  public function delete($files, $data = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
343
 
344
  global $updraftplus;
355
  } catch (AuthenticationError $e) {
356
  $updraftplus->log($this->desc.' authentication failed ('.$e->getMessage().')');
357
  $updraftplus->log(sprintf(__('%s authentication failed', 'updraftplus'), $this->desc).' ('.$e->getMessage().')', 'error');
358
+ return 'authentication_fail';
359
  } catch (Exception $e) {
360
  $updraftplus->log($this->desc.' error - failed to access the container ('.$e->getMessage().')');
361
  $updraftplus->log(sprintf(__('%s error - failed to access the container', 'updraftplus'), $this->desc).' ('.$e->getMessage().')', 'error');
362
+ return 'service_unavailable';
363
  }
364
  // Get the container
365
  try {
367
  } catch (Exception $e) {
368
  $updraftplus->log('Could not access '.$this->desc.' container ('.get_class($e).', '.$e->getMessage().')');
369
  $updraftplus->log(sprintf(__('Could not access %s container', 'updraftplus'), $this->desc).' ('.get_class($e).', '.$e->getMessage().')', 'error');
370
+ return 'container_access_error';
371
  }
372
 
373
  }
403
  $updraftplus->log($this->desc.': Deleted: '.$file);
404
  } catch (Exception $e) {
405
  $updraftplus->log($this->desc.' delete failed: '.$e->getMessage());
406
+ $ret = 'file_delete_error';
407
  }
408
  }
409
  return $ret;
methods/s3.php CHANGED
@@ -647,7 +647,15 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
647
  return $results;
648
 
649
  }
650
-
 
 
 
 
 
 
 
 
651
  public function delete($files, $s3arr = false, $sizeinfo = array()) {
652
 
653
  global $updraftplus;
@@ -689,7 +697,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
689
  if (!$bucket_exists) {
690
  $this->log("Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
691
  $this->log(sprintf(__('Error: Failed to access bucket %s. Check your permissions and credentials.', 'updraftplus'), $bucket_name), 'error');
692
- return false;
693
  }
694
  }
695
 
@@ -717,7 +725,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
717
  } catch (Exception $e) {
718
  $this->log("delete failed (".get_class($e)."): ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
719
  $storage->setExceptions(false);
720
- $ret = false;
721
  }
722
  $storage->setExceptions(false);
723
 
647
  return $results;
648
 
649
  }
650
+
651
+ /**
652
+ * Delete a single file from the service using S3
653
+ *
654
+ * @param Array|String $files - array of file names to delete
655
+ * @param Array $s3arr - s3 service object and container details
656
+ * @param Array $sizeinfo - size of files to delete, used for quota calculation
657
+ * @return Boolean|String - either a boolean true or an error code string
658
+ */
659
  public function delete($files, $s3arr = false, $sizeinfo = array()) {
660
 
661
  global $updraftplus;
697
  if (!$bucket_exists) {
698
  $this->log("Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
699
  $this->log(sprintf(__('Error: Failed to access bucket %s. Check your permissions and credentials.', 'updraftplus'), $bucket_name), 'error');
700
+ return 'container_access_error';
701
  }
702
  }
703
 
725
  } catch (Exception $e) {
726
  $this->log("delete failed (".get_class($e)."): ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
727
  $storage->setExceptions(false);
728
+ $ret = 'file_delete_error';
729
  }
730
  $storage->setExceptions(false);
731
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: Backup with UpdraftPlus, DavidAnderson, DNutbourne, aporter, snigh
3
  Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
4
  Requires at least: 3.2
5
  Tested up to: 5.4
6
- Stable tag: 1.16.22
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
@@ -166,7 +166,33 @@ Unfortunately not; since this is free software, there’s no warranty and no gua
166
 
167
  The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
168
 
169
- N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.17.x of the free version correspond to changes made in 2.16.17.x of the paid version.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
 
171
  = 1.16.22 - 17/Feb/2020 =
172
 
@@ -992,4 +1018,4 @@ Furthermore, reliance upon any non-English translation is at your own risk. Updr
992
  We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
993
 
994
  == Upgrade Notice ==
995
- * 1.16.22: Fix a regression with some S3-compatible providers caused by a previous switch to virtual-hosted style bucket referencing. Various other small tweaks and improvements. A recommended update for all.
3
  Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
4
  Requires at least: 3.2
5
  Tested up to: 5.4
6
+ Stable tag: 1.16.23
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
166
 
167
  The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
168
 
169
+ N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.23.x of the free version correspond to changes made in 2.16.23.x of the paid version.
170
+
171
+ = 1.16.23 - 01/Apr/2020 =
172
+
173
+ * FEATURE: Post module handler for UpdraftCentral
174
+ * FEATURE: Added the ability to select which database tables you want to restore
175
+ * FIX: An apparent change in Dropbox API behaviour at a recent date was causing uploads to Dropbox to be corrupted in some circumstances in versions 1.16.21-22.
176
+ * TWEAK: The "Backup now" options were all unselected after trying to take a manual incremental backup with no possible entities for increments
177
+ * TWEAK: When importing a single site into a multisite remove UpdraftPlus options and cron to prevent unwanted backups
178
+ * TWEAK: Auto select clone package based on size of the selected backup
179
+ * TWEAK: Prevent PHP notice when logging a Google Drive account full condition
180
+ * TWEAK: Prevent a PHP notice when Azure is deleting files on PHP 7.4
181
+ * TWEAK: Prevent potential PHP notice if returned OneDrive quota is zero
182
+ * TWEAK: When restoring a single site that is part of a multisite only put that single site in maintenance mode not the entire network
183
+ * TWEAK: Remove filesize warning from the log if we successfully added the file to the zip to prevent user concern
184
+ * TWEAK: Add page_visit_history table to list of those with low-priority data and search/replace unnecessary
185
+ * TWEAK: Add a warning message when restoring/migrating from an older PHP version to a newer version
186
+ * TWEAK: Set 'NO_AUTO_VALUE_ON_ZERO' sql mode on restorations, for better compatibility with MySQL 8
187
+ * TWEAK: Add WordFence logging tables to list of optional tables
188
+ * TWEAK: If the Google Cloud revoke call fails try again once
189
+ * TWEAK: Catch file closed errors during uploads to Dropbox to prevent unwanted errors in the backup log and prevent user concern
190
+ * TWEAK: Get list of supported UpdraftClone regions from updraftplus.com
191
+ * TWEAK: Logging in backup modules will now correctly pass on arguments to main log function
192
+ * TWEAK: Change OneDrive 'account full, expected to fail' error message to a recoverable warning
193
+ * TWEAK: Detect non-homepage 404s and provide FAQ link after a restore
194
+ * TWEAK: Add paging to the existing backups table to prevent long loading times for sites with a large amount of backups
195
+ * TWEAK: Remove unwanted padding on some buttons
196
 
197
  = 1.16.22 - 17/Feb/2020 =
198
 
1018
  We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
1019
 
1020
  == Upgrade Notice ==
1021
+ * 1.16.23: Added the ability to select which database tables you want to restore. Various other small tweaks and improvements. A recommended update for all.
restorer.php CHANGED
@@ -48,6 +48,8 @@ class Updraft_Restorer {
48
 
49
  private $restore_this_table = array();
50
 
 
 
51
  private $line = 0;
52
 
53
  private $statements_run = 0;
@@ -56,6 +58,8 @@ class Updraft_Restorer {
56
 
57
  private $import_table_prefix = null;
58
 
 
 
59
  private $table_name = '';
60
 
61
  private $continuation_data;
@@ -65,6 +69,8 @@ class Updraft_Restorer {
65
  private $current_type = '';
66
 
67
  private $previous_table_name = '';
 
 
68
 
69
  // Constants for use with the move_backup_in method
70
  // These can't be arbitrarily changed; there is legacy code doing bitwise operations and numerical comparisons, and possibly legacy code still using the values directly.
@@ -78,7 +84,9 @@ class Updraft_Restorer {
78
  public $skin = null;
79
 
80
  public $strings = array();
81
-
 
 
82
  /**
83
  * Constructor
84
  *
@@ -133,6 +141,10 @@ class Updraft_Restorer {
133
  }
134
  }
135
 
 
 
 
 
136
  // Restore in the most helpful order
137
  uksort($backup_set, array('UpdraftPlus_Manipulation_Functions', 'sort_restoration_entities'));
138
 
@@ -2100,6 +2112,214 @@ class Updraft_Restorer {
2100
  return $updraftplus->option_filter_get('rewrite_rules');
2101
  }
2102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2103
  /**
2104
  * Restore the database backup
2105
  *
@@ -2182,16 +2402,14 @@ class Updraft_Restorer {
2182
  }
2183
  }
2184
 
2185
- UpdraftPlus_Database_Utility::set_sql_mode(array(), $this->use_wpdb() ? null : $this->mysql_dbh);
2186
 
2187
  // Find the supported engines - in case the dump had something else (case seen: saved from MariaDB with engine Aria; imported into plain MySQL without)
2188
- $supported_engines = $wpdb->get_results("SHOW ENGINES", OBJECT_K);
2189
- $supported_charsets = $wpdb->get_results("SHOW CHARACTER SET", OBJECT_K);
2190
- $db_supported_collations_res = $wpdb->get_results('SHOW COLLATION', OBJECT_K);
2191
- $supported_collations = (null !== $db_supported_collations_res) ? $db_supported_collations_res : array();
2192
- $updraft_restorer_collate = isset($this->restore_options['updraft_restorer_collate']) ? $this->restore_options['updraft_restorer_collate'] : '';
2193
 
2194
- $engine = '';
2195
 
2196
  $this->errors = 0;
2197
  $this->statements_run = 0;
@@ -2316,7 +2534,7 @@ class Updraft_Restorer {
2316
  }
2317
  }
2318
 
2319
- $restoring_table = '';
2320
 
2321
  $this->max_allowed_packet = $updraftplus->max_packet_size();
2322
 
@@ -2431,6 +2649,10 @@ class Updraft_Restorer {
2431
  $delimiter_regex = str_replace(array('$', '#', '/'), array('\$', '\#', '\/'), $delimiter);
2432
  } elseif (preg_match('/^\s*create trigger /i', $sql_line.$buffer)) {
2433
  $sql_type = 9;
 
 
 
 
2434
  }
2435
 
2436
  // Deal with case where adding this line will take us over the MySQL max_allowed_packet limit - must split, if we can (if it looks like consecutive rows)
@@ -2464,7 +2686,7 @@ class Updraft_Restorer {
2464
  //
2465
  // $wpdb->query("CREATE TRIGGER `civicrm_acl_after_insert` AFTER INSERT ON `civicrm_acl` FOR EACH ROW BEGIN IF (@civicrm_disable_logging IS NULL OR @civicrm_disable_logging = 0 ) THEN INSERT INTO log_civicrm_acl (`id`, `name`, `deny`, `entity_table`, `entity_id`, `operation`, `object_table`, `object_id`, `acl_table`, `acl_id`, `is_active`, log_conn_id, log_user_id, log_action) VALUES ( NEW.`id`, NEW.`name`, NEW.`deny`, NEW.`entity_table`, NEW.`entity_id`, NEW.`operation`, NEW.`object_table`, NEW.`object_id`, NEW.`acl_table`, NEW.`acl_id`, NEW.`is_active`, COALESCE(@uniqueID, LEFT(CONCAT('c_', unix_timestamp()/3600, CONNECTION_ID()), 17)), @civicrm_user_id, 'insert'); END IF; END"));
2466
 
2467
- if ((3 == $sql_type && !preg_match('/\)\s*'.$delimiter_regex.'$/', substr($sql_line, -5, 5))) || (3 != $sql_type && 9 != $sql_type && 10 != $sql_type && substr($sql_line, -strlen($delimiter), strlen($delimiter)) != $delimiter) || (9 == $sql_type && !preg_match('/END\s*('.$delimiter_regex.')?\s*$/', $sql_line))) continue;
2468
 
2469
  $this->line++;
2470
 
@@ -2476,7 +2698,7 @@ class Updraft_Restorer {
2476
  $sql_line = '';
2477
  $sql_type = -1;
2478
  // If this is the very first SQL line of the options table, we need to bail; it's essential
2479
- if (0 == $this->insert_statements_run && $restoring_table && $restoring_table == $import_table_prefix.'options') {
2480
  $updraftplus->log("Leaving maintenance mode");
2481
  $this->maintenance_mode(false);
2482
  return new WP_Error('initial_db_error', sprintf(__('An error occurred on the first %s command - aborting run', 'updraftplus'), 'INSERT (options)'));
@@ -2488,10 +2710,10 @@ class Updraft_Restorer {
2488
  if (preg_match('/^\s*drop table (if exists )?\`?([^\`]*)\`?\s*'.$delimiter_regex.'/i', $sql_line, $matches)) {
2489
  $sql_type = 1;
2490
 
2491
- if (!isset($printed_new_table_prefix)) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
2492
  $import_table_prefix = $this->pre_sql_actions($import_table_prefix);
2493
  if (false === $import_table_prefix || is_wp_error($import_table_prefix)) return $import_table_prefix;
2494
- $printed_new_table_prefix = true;
2495
  }
2496
 
2497
  $this->table_name = $matches[2];
@@ -2534,159 +2756,13 @@ class Updraft_Restorer {
2534
  continue;
2535
  }
2536
 
2537
- // Legacy, less reliable - in case it was not caught before. We added it in here (CREATE) as well as in DROP because of SQL dumps which lack DROP statements.
2538
- if ('' == $this->old_table_prefix && preg_match('/^([a-z0-9]+)_.*$/i', $this->table_name, $tmatches)) {
2539
- $this->old_table_prefix = $tmatches[1].'_';
2540
- $updraftplus->log(__('Old table prefix:', 'updraftplus').' '.$this->old_table_prefix, 'notice-restore', 'old-table-prefix');
2541
- $updraftplus->log("Old table prefix (detected from creating first table): ".$this->old_table_prefix);
2542
- }
2543
-
2544
- // MySQL 4.1 outputs TYPE=, but accepts ENGINE=; 5.1 onwards accept *only* ENGINE=
2545
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace('TYPE=', 'ENGINE=', $sql_line);
2546
-
2547
- if (empty($printed_new_table_prefix)) {
2548
  $import_table_prefix = $this->pre_sql_actions($import_table_prefix);
2549
  if (false === $import_table_prefix || is_wp_error($import_table_prefix)) return $import_table_prefix;
2550
- $printed_new_table_prefix = true;
2551
- }
2552
-
2553
- $this->new_table_name = $this->old_table_prefix ? UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $this->table_name) : $this->table_name;
2554
-
2555
- // This CREATE TABLE command may be the de-facto mark for the end of processing a previous table (which is so if this is not the first table in the SQL dump)
2556
- if ($restoring_table) {
2557
-
2558
- // Attempt to reconnect if the DB connection dropped (may not succeed, of course - but that will soon become evident)
2559
- $updraftplus->check_db_connection($this->wpdb_obj);
2560
-
2561
- // After restoring the options table, we can set old_siteurl if on legacy (i.e. not already set)
2562
- if ($restoring_table == $import_table_prefix.'options') {
2563
- if ('' == $this->old_siteurl || '' == $this->old_home || '' == $this->old_content) {
2564
- global $updraftplus_addons_migrator;
2565
- if (!empty($updraftplus_addons_migrator->new_blogid)) switch_to_blog($updraftplus_addons_migrator->new_blogid);
2566
-
2567
- if ('' == $this->old_siteurl) {
2568
- $this->old_siteurl = untrailingslashit($wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name='siteurl'")->option_value);
2569
- do_action('updraftplus_restore_db_record_old_siteurl', $this->old_siteurl);
2570
- }
2571
- if ('' == $this->old_home) {
2572
- $this->old_home = untrailingslashit($wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name='home'")->option_value);
2573
- do_action('updraftplus_restore_db_record_old_home', $this->old_home);
2574
- }
2575
- if ('' == $this->old_content) {
2576
- $this->old_content = $this->old_siteurl.'/wp-content';
2577
- do_action('updraftplus_restore_db_record_old_content', $this->old_content);
2578
- }
2579
- if (!empty($updraftplus_addons_migrator->new_blogid)) restore_current_blog();
2580
- }
2581
- }
2582
-
2583
- if ($restoring_table != $this->new_table_name) $this->restored_table($restoring_table, $import_table_prefix, $this->old_table_prefix, $engine);
2584
-
2585
- }
2586
- $engine = "(?)";
2587
- $engine_change_message = '';
2588
- if (preg_match('/ENGINE=([^\s;]+)/', $sql_line, $eng_match)) {
2589
- $engine = $eng_match[1];
2590
- if (isset($supported_engines[$engine])) {
2591
- if ('myisam' == strtolower($engine)) {
2592
- $sql_line = preg_replace('/PAGE_CHECKSUM=\d\s?/', '', $sql_line, 1);
2593
- }
2594
- } else {
2595
- $engine_change_message = sprintf(__('Requested table engine (%s) is not present - changing to MyISAM.', 'updraftplus'), $engine)."<br>";
2596
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace("ENGINE=$engine", "ENGINE=MyISAM", $sql_line);
2597
- $engine = "MyISAM";
2598
- // Remove (M)aria options
2599
- if ('maria' == strtolower($engine) || 'aria' == strtolower($engine)) {
2600
- $sql_line = preg_replace('/PAGE_CHECKSUM=\d\s?/', '', $sql_line, 1);
2601
- $sql_line = preg_replace('/TRANSACTIONAL=\d\s?/', '', $sql_line, 1);
2602
- }
2603
- }
2604
  }
2605
- $charset_change_message = '';
2606
- if (preg_match('/ CHARSET=([^\s;]+)/i', $sql_line, $charset_match)) {
2607
- $charset = $charset_match[1];
2608
- if (!isset($supported_charsets[$charset])) {
2609
- $charset_change_message = sprintf(__('Requested table character set (%s) is not present - changing to %s.', 'updraftplus'), esc_html($charset), esc_html($this->restore_options['updraft_restorer_charset']));
2610
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace("CHARSET=$charset", "CHARSET=".$this->restore_options['updraft_restorer_charset'], $sql_line);
2611
- // Allow default COLLLATE to database
2612
- if (preg_match('/ COLLATE=([^\s;]+)/i', $sql_line, $collate_match)) {
2613
- $collate = $collate_match[1];
2614
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace(" COLLATE=$collate", "", $sql_line);
2615
- }
2616
- }
2617
- }
2618
- // If the table prefix has changed and key constraints are found, make sure they are updated
2619
- $constraint_change_message = '';
2620
- if ($this->old_table_prefix != $import_table_prefix && (preg_match_all('/ FOREIGN KEY \([a-zA-z0-9_\', ]+\) REFERENCES \'?([a-zA-z0-9_]+)\'? /i', $sql_line, $constraint_matches))) {
2621
- foreach ($constraint_matches[0] as $constraint) {
2622
- $updated_constraint = str_replace($this->old_table_prefix, $import_table_prefix, $constraint);
2623
- $sql_line = str_replace($constraint, $updated_constraint, $sql_line);
2624
- }
2625
- $constraint_change_message = __('Found and replaced existing table foreign key constraints as the table prefix has changed.', 'updraftplus');
2626
- }
2627
- $collate_change_message = '';
2628
- $unsupported_collates_in_sql_line = array();
2629
- if (!empty($updraft_restorer_collate) && preg_match('/ COLLATE=([a-zA-Z0-9._-]+)/i', $sql_line, $collate_match)) {
2630
- $collate = $collate_match[1];
2631
- if (!isset($supported_collations[$collate])) {
2632
- $unsupported_collates_in_sql_line[] = $collate;
2633
- if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2634
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace("COLLATE=$collate", "", $sql_line, false);
2635
- } else {
2636
- $sql_line = UpdraftPlus_Manipulation_Functions::str_lreplace("COLLATE=$collate", "COLLATE=".$updraft_restorer_collate, $sql_line, false);
2637
- }
2638
- }
2639
- }
2640
- if (!empty($updraft_restorer_collate) && preg_match_all('/ COLLATE ([a-zA-Z0-9._-]+) /i', $sql_line, $collate_matches)) {
2641
- $collates = array_unique($collate_matches[1]);
2642
- foreach ($collates as $collate) {
2643
- if (!isset($supported_collations[$collate])) {
2644
- $unsupported_collates_in_sql_line[] = $collate;
2645
- if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2646
- $sql_line = str_ireplace("COLLATE $collate ", "", $sql_line);
2647
- } else {
2648
- $sql_line = str_ireplace("COLLATE $collate ", "COLLATE ".$updraft_restorer_collate." ", $sql_line);
2649
- }
2650
- }
2651
- }
2652
- }
2653
- if (!empty($updraft_restorer_collate) && preg_match_all('/ COLLATE ([a-zA-Z0-9._-]+),/i', $sql_line, $collate_matches)) {
2654
- $collates = array_unique($collate_matches[1]);
2655
- foreach ($collates as $collate) {
2656
- if (!isset($supported_collations[$collate])) {
2657
- $unsupported_collates_in_sql_line[] = $collate;
2658
- if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2659
- $sql_line = str_ireplace("COLLATE $collate,", ",", $sql_line);
2660
- } else {
2661
- $sql_line = str_ireplace("COLLATE $collate,", "COLLATE ".$updraft_restorer_collate.",", $sql_line);
2662
- }
2663
- }
2664
- }
2665
- }
2666
- if (count($unsupported_collates_in_sql_line) > 0) {
2667
- $unsupported_unique_collates_in_sql_line = array_unique($unsupported_collates_in_sql_line);
2668
- $collate_change_message = sprintf(_n('Requested table collation (%1$s) is not present - changing to %2$s.', 'Requested table collations (%1$s) are not present - changing to %2$s.', count($unsupported_unique_collates_in_sql_line), 'updraftplus'), esc_html(implode(', ', $unsupported_unique_collates_in_sql_line)), esc_html($this->restore_options['updraft_restorer_collate']));
2669
- }
2670
- $print_line = sprintf(__('Processing table (%s)', 'updraftplus'), $engine).": ".$this->table_name;
2671
- $logline = "Processing table ($engine): ".$this->table_name;
2672
- if ('' != $this->old_table_prefix && $import_table_prefix != $this->old_table_prefix) {
2673
- if ($this->restore_this_table($this->table_name)) {
2674
- $print_line .= ' - '.__('will restore as:', 'updraftplus').' '.htmlspecialchars($this->new_table_name);
2675
- $logline .= " - will restore as: ".$this->new_table_name;
2676
- } else {
2677
- $logline .= ' - skipping';
2678
- }
2679
- $sql_line = UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $sql_line);
2680
 
2681
- $this->restored_table_names[] = $this->new_table_name;
2682
- }
2683
- $updraftplus->log($logline);
2684
- $updraftplus->log($print_line, 'notice-restore');
2685
- $restoring_table = $this->new_table_name;
2686
- if ($charset_change_message) $updraftplus->log($charset_change_message, 'notice-restore');
2687
- if ($constraint_change_message) $updraftplus->log($constraint_change_message, 'notice-restore');
2688
- if ($collate_change_message) $updraftplus->log($collate_change_message, 'notice-restore');
2689
- if ($engine_change_message) $updraftplus->log($engine_change_message, 'notice-restore');
2690
 
2691
  } elseif (preg_match('/^\s*(insert into \`?([^\`]*)\`?\s+(values|\())/i', $sql_line, $matches)) {
2692
  $sql_type = 3;
@@ -2728,10 +2804,16 @@ class Updraft_Restorer {
2728
  } elseif (preg_match('/^\s*create trigger /i', $sql_line)) {
2729
  $sql_type = 9;
2730
  // If the statement is not yet complete, then continue (to get the next line)
2731
- if (!preg_match('/END\s*('.$delimiter_regex.')?\s*$/', $sql_line)) continue;
 
 
2732
  $updraftplus->log_restore_update(array('type' => 'state', 'stage' => 'db', 'data' => array('stage' => 'trigger', 'table' => '')));
2733
  if ('' != $this->old_table_prefix && $import_table_prefix != $this->old_table_prefix) $sql_line = UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $sql_line);
2734
- if (';' !== $delimiter) $sql_line = preg_replace('/END\s*'.$delimiter_regex.'\s*$/', 'END', $sql_line);
 
 
 
 
2735
  if ($this->triggers_forbidden) $updraftplus->log("Database user lacks permission to create triggers; statement will not be executed ($sql_line)");
2736
  } elseif (preg_match('/^\s*drop trigger /i', $sql_line)) {
2737
  // Avoid sending unrecognised delimiters to the SQL server (this only affects backups created outside UD; we use ";;" which is cunningly compatible)
@@ -2785,7 +2867,7 @@ class Updraft_Restorer {
2785
  }
2786
  $this->maintenance_mode(false);
2787
 
2788
- if ($restoring_table) $this->restored_table($restoring_table, $import_table_prefix, $this->old_table_prefix, $engine);
2789
 
2790
  // drop the dummy restored tables
2791
  if ($this->is_dummy_db_restore) $this->drop_tables($this->restored_table_names);
@@ -2824,8 +2906,11 @@ class Updraft_Restorer {
2824
  $skip_table = false;
2825
  $last_table = isset($this->continuation_data['last_processed_db_table']) ? $this->continuation_data['last_processed_db_table'] : '';
2826
 
2827
- if (!empty($last_table) && !empty($table_name) && $table_name != $last_table) {
2828
- if (empty($this->previous_table_name) || $table_name != $this->previous_table_name) $updraftplus->log(sprintf(__('Skipping table: %s already restored on a prior run; next table to restore: %s', 'updraftplus'), $table_name, $last_table), 'notice-restore');
 
 
 
2829
  $skip_table = true;
2830
  } elseif (!empty($last_table) && !empty($table_name) && $table_name == $last_table) {
2831
  unset($this->continuation_data['last_processed_db_table']);
@@ -3321,6 +3406,21 @@ class Updraft_Restorer {
3321
  $wpdb->query("DELETE FROM $new_table_name WHERE option_name = 'jetpack_options'");
3322
  }
3323
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3324
  }
3325
 
3326
  } elseif ($import_table_prefix != $old_table_prefix && preg_match('/^([\d+]_)?usermeta$/', substr($table, strlen($import_table_prefix)), $matches)) {
48
 
49
  private $restore_this_table = array();
50
 
51
+ private $restoring_table = '';
52
+
53
  private $line = 0;
54
 
55
  private $statements_run = 0;
58
 
59
  private $import_table_prefix = null;
60
 
61
+ private $table_engine = '';
62
+
63
  private $table_name = '';
64
 
65
  private $continuation_data;
69
  private $current_type = '';
70
 
71
  private $previous_table_name = '';
72
+
73
+ private $tables_to_restore = array();
74
 
75
  // Constants for use with the move_backup_in method
76
  // These can't be arbitrarily changed; there is legacy code doing bitwise operations and numerical comparisons, and possibly legacy code still using the values directly.
84
  public $skin = null;
85
 
86
  public $strings = array();
87
+
88
+ private $printed_new_table_prefix = false;
89
+
90
  /**
91
  * Constructor
92
  *
141
  }
142
  }
143
 
144
+ if (isset($restore_options['updraft_restore_table_options']) && !empty($restore_options['updraft_restore_table_options'])) {
145
+ $this->tables_to_restore = $restore_options['updraft_restore_table_options'];
146
+ }
147
+
148
  // Restore in the most helpful order
149
  uksort($backup_set, array('UpdraftPlus_Manipulation_Functions', 'sort_restoration_entities'));
150
 
2112
  return $updraftplus->option_filter_get('rewrite_rules');
2113
  }
2114
 
2115
+ /**
2116
+ * Assign a value to log_bin_trust_function_creators system variable and return its previous value
2117
+ *
2118
+ * @see https://mariadb.com/kb/en/library/binary-logging-of-stored-routines/
2119
+ * @see https://dev.mysql.com/doc/refman/8.0/en/stored-programs-logging.html
2120
+ *
2121
+ * @param String $value It can only be set to ON or OFF
2122
+ * @return String|WP_Error the variable value before it got assigned a new value, or WP_Error object on failure
2123
+ */
2124
+ private function set_log_bin_trust_function_creators($value) {
2125
+
2126
+ global $wpdb;
2127
+ static $saved_value = null;
2128
+ static $initial_value = null;
2129
+
2130
+ $old_val = $wpdb->suppress_errors();
2131
+ try {
2132
+ if (is_null($initial_value) || is_wp_error($initial_value)) {
2133
+ $creators_val = $wpdb->get_var("SELECT @@GLOBAL.log_bin_trust_function_creators");
2134
+ if (is_null($creators_val)) throw new Exception(sprintf(__('An error occurred while attempting to retrieve the MySQL global log_bin_trust_function_creators variable %s', 'updraftplus'), '('. $wpdb->last_error.' - '.$wpdb->last_query.')'), 0);
2135
+ $initial_value = '1' === $creators_val || 'on' === strtolower($creators_val) ? 'ON' : 'OFF';
2136
+ }
2137
+ if ((is_null($saved_value) || ($saved_value != $value))) {
2138
+ $res = $wpdb->query("SET GLOBAL log_bin_trust_function_creators = ".$value);
2139
+ if (false === $res) {
2140
+ $saved_value = null;
2141
+ throw new Exception(sprintf(__('An error occurred while attempting to set a new value to the MySQL global log_bin_trust_function_creators variable %s', 'updraftplus'), '('. $wpdb->last_error.' - '.$wpdb->last_query.')'), 0);
2142
+ }
2143
+ if (!is_null($saved_value)) {
2144
+ $initial_value = $saved_value;
2145
+ }
2146
+ $saved_value = $value;
2147
+ }
2148
+ } catch (Exception $ex) {
2149
+ $initial_value = new WP_Error('log_bin_trust_function_creators', $ex->getMessage());
2150
+ }
2151
+ $wpdb->suppress_errors($old_val);
2152
+
2153
+ return $initial_value;
2154
+ }
2155
+
2156
+ /**
2157
+ * Prepare the create table statement before sending it to the query execution
2158
+ *
2159
+ * @param String $create_table_statement an SQL create table statement in which some part of the SQL is going to be parsed and/or replaced
2160
+ * @param String $import_table_prefix table prefix to use
2161
+ * @param Array $supported_engines the list of supported DB engines
2162
+ * @param Array $supported_charsets the list of supported DB charsets
2163
+ * @param Array $supported_collations the list of supported DB collations
2164
+ * @return String the processed create table statement that may have been transformed, sanitised or cleaned
2165
+ */
2166
+ private function prepare_create_table($create_table_statement, $import_table_prefix, $supported_engines, $supported_charsets, $supported_collations) {
2167
+
2168
+ global $updraftplus, $wpdb;
2169
+
2170
+ $updraft_restorer_collate = isset($this->restore_options['updraft_restorer_collate']) ? $this->restore_options['updraft_restorer_collate'] : '';
2171
+
2172
+ // Legacy, less reliable - in case it was not caught before. We added it in here (CREATE) as well as in DROP because of SQL dumps which lack DROP statements.
2173
+ if ('' == $this->old_table_prefix && preg_match('/^([a-z0-9]+)_.*$/i', $this->table_name, $tmatches)) {
2174
+ $this->old_table_prefix = $tmatches[1].'_';
2175
+ $updraftplus->log(__('Old table prefix:', 'updraftplus').' '.$this->old_table_prefix, 'notice-restore', 'old-table-prefix');
2176
+ $updraftplus->log("Old table prefix (detected from creating first table): ".$this->old_table_prefix);
2177
+ }
2178
+
2179
+ // MySQL 4.1 outputs TYPE=, but accepts ENGINE=; 5.1 onwards accept *only* ENGINE=
2180
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace('TYPE=', 'ENGINE=', $create_table_statement);
2181
+
2182
+ $this->new_table_name = $this->old_table_prefix ? UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $this->table_name) : $this->table_name;
2183
+
2184
+ // This CREATE TABLE command may be the de-facto mark for the end of processing a previous table (which is so if this is not the first table in the SQL dump)
2185
+ if ($this->restoring_table) {
2186
+
2187
+ // Attempt to reconnect if the DB connection dropped (may not succeed, of course - but that will soon become evident)
2188
+ $updraftplus->check_db_connection($this->wpdb_obj);
2189
+
2190
+ // After restoring the options table, we can set old_siteurl if on legacy (i.e. not already set)
2191
+ if ($this->restoring_table == $import_table_prefix.'options') {
2192
+ if ('' == $this->old_siteurl || '' == $this->old_home || '' == $this->old_content) {
2193
+ global $updraftplus_addons_migrator;
2194
+ if (!empty($updraftplus_addons_migrator->new_blogid)) switch_to_blog($updraftplus_addons_migrator->new_blogid);
2195
+
2196
+ if ('' == $this->old_siteurl) {
2197
+ $this->old_siteurl = untrailingslashit($wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name='siteurl'")->option_value);
2198
+ do_action('updraftplus_restore_db_record_old_siteurl', $this->old_siteurl);
2199
+ }
2200
+ if ('' == $this->old_home) {
2201
+ $this->old_home = untrailingslashit($wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name='home'")->option_value);
2202
+ do_action('updraftplus_restore_db_record_old_home', $this->old_home);
2203
+ }
2204
+ if ('' == $this->old_content) {
2205
+ $this->old_content = $this->old_siteurl.'/wp-content';
2206
+ do_action('updraftplus_restore_db_record_old_content', $this->old_content);
2207
+ }
2208
+ if (!empty($updraftplus_addons_migrator->new_blogid)) restore_current_blog();
2209
+ }
2210
+ }
2211
+
2212
+ if ($this->restoring_table != $this->new_table_name) $this->restored_table($this->restoring_table, $import_table_prefix, $this->old_table_prefix, $this->table_engine);
2213
+
2214
+ }
2215
+ $this->table_engine = "(?)";
2216
+ $engine_change_message = '';
2217
+ if (preg_match('/ENGINE=([^\s;]+)/', $create_table_statement, $eng_match)) {
2218
+ $this->table_engine = $eng_match[1];
2219
+ if (isset($supported_engines[strtolower($this->table_engine)])) {
2220
+ if ('myisam' == strtolower($this->table_engine)) {
2221
+ $create_table_statement = preg_replace('/PAGE_CHECKSUM=\d\s?/', '', $create_table_statement, 1);
2222
+ }
2223
+ } else {
2224
+ $engine_change_message = sprintf(__('Requested table engine (%s) is not present - changing to MyISAM.', 'updraftplus'), $this->table_engine)."<br>";
2225
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace("ENGINE=$this->table_engine", "ENGINE=MyISAM", $create_table_statement);
2226
+ $this->table_engine = "MyISAM";
2227
+ // Remove (M)aria options
2228
+ if ('maria' == strtolower($this->table_engine) || 'aria' == strtolower($this->table_engine) || 'myisam' == strtolower($this->table_engine)) {
2229
+ $create_table_statement = preg_replace('/PAGE_CHECKSUM=\d\s?/', '', $create_table_statement, 1);
2230
+ $create_table_statement = preg_replace('/TRANSACTIONAL=\d\s?/', '', $create_table_statement, 1);
2231
+ }
2232
+ }
2233
+ }
2234
+ $charset_change_message = '';
2235
+ if (preg_match('/ CHARSET=([^\s;]+)/i', $create_table_statement, $charset_match)) {
2236
+ $charset = $charset_match[1];
2237
+ if (!isset($supported_charsets[strtolower($charset)])) {
2238
+ $charset_change_message = sprintf(__('Requested table character set (%s) is not present - changing to %s.', 'updraftplus'), esc_html($charset), esc_html($this->restore_options['updraft_restorer_charset']));
2239
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace("CHARSET=$charset", "CHARSET=".$this->restore_options['updraft_restorer_charset'], $create_table_statement);
2240
+ // Allow default COLLLATE to database
2241
+ if (preg_match('/ COLLATE=([^\s;]+)/i', $create_table_statement, $collate_match)) {
2242
+ $collate = $collate_match[1];
2243
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace(" COLLATE=$collate", "", $create_table_statement);
2244
+ }
2245
+ }
2246
+ }
2247
+ // If the table prefix has changed and key constraints are found, make sure they are updated
2248
+ $constraint_change_message = '';
2249
+ if ($this->old_table_prefix != $import_table_prefix && (preg_match_all('/ FOREIGN KEY \([a-zA-z0-9_\', ]+\) REFERENCES \'?([a-zA-z0-9_]+)\'? /i', $create_table_statement, $constraint_matches))) {
2250
+ foreach ($constraint_matches[0] as $constraint) {
2251
+ $updated_constraint = str_replace($this->old_table_prefix, $import_table_prefix, $constraint);
2252
+ $create_table_statement = str_replace($constraint, $updated_constraint, $create_table_statement);
2253
+ }
2254
+ $constraint_change_message = __('Found and replaced existing table foreign key constraints as the table prefix has changed.', 'updraftplus');
2255
+ }
2256
+ $collate_change_message = '';
2257
+ $unsupported_collates_in_sql_line = array();
2258
+ if (!empty($updraft_restorer_collate) && preg_match('/ COLLATE=([a-zA-Z0-9._-]+)/i', $create_table_statement, $collate_match)) {
2259
+ $collate = $collate_match[1];
2260
+ if (!isset($supported_collations[strtolower($collate)])) {
2261
+ $unsupported_collates_in_sql_line[] = $collate;
2262
+ if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2263
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace("COLLATE=$collate", "", $create_table_statement, false);
2264
+ } else {
2265
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_lreplace("COLLATE=$collate", "COLLATE=".$updraft_restorer_collate, $create_table_statement, false);
2266
+ }
2267
+ }
2268
+ }
2269
+ if (!empty($updraft_restorer_collate) && preg_match_all('/ COLLATE ([a-zA-Z0-9._-]+) /i', $create_table_statement, $collate_matches)) {
2270
+ $collates = array_unique($collate_matches[1]);
2271
+ foreach ($collates as $collate) {
2272
+ if (!isset($supported_collations[strtolower($collate)])) {
2273
+ $unsupported_collates_in_sql_line[] = $collate;
2274
+ if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2275
+ $create_table_statement = str_ireplace("COLLATE $collate ", "", $create_table_statement);
2276
+ } else {
2277
+ $create_table_statement = str_ireplace("COLLATE $collate ", "COLLATE ".$updraft_restorer_collate." ", $create_table_statement);
2278
+ }
2279
+ }
2280
+ }
2281
+ }
2282
+ if (!empty($updraft_restorer_collate) && preg_match_all('/ COLLATE ([a-zA-Z0-9._-]+),/i', $create_table_statement, $collate_matches)) {
2283
+ $collates = array_unique($collate_matches[1]);
2284
+ foreach ($collates as $collate) {
2285
+ if (!isset($supported_collations[strtolower($collate)])) {
2286
+ $unsupported_collates_in_sql_line[] = $collate;
2287
+ if ('choose_a_default_for_each_table' == $updraft_restorer_collate) {
2288
+ $create_table_statement = str_ireplace("COLLATE $collate,", ",", $create_table_statement);
2289
+ } else {
2290
+ $create_table_statement = str_ireplace("COLLATE $collate,", "COLLATE ".$updraft_restorer_collate.",", $create_table_statement);
2291
+ }
2292
+ }
2293
+ }
2294
+ }
2295
+ if (count($unsupported_collates_in_sql_line) > 0) {
2296
+ $unsupported_unique_collates_in_sql_line = array_unique($unsupported_collates_in_sql_line);
2297
+ $collate_change_message = sprintf(_n('Requested table collation (%1$s) is not present - changing to %2$s.', 'Requested table collations (%1$s) are not present - changing to %2$s.', count($unsupported_unique_collates_in_sql_line), 'updraftplus'), esc_html(implode(', ', $unsupported_unique_collates_in_sql_line)), esc_html($this->restore_options['updraft_restorer_collate']));
2298
+ }
2299
+ $print_line = sprintf(__('Processing table (%s)', 'updraftplus'), $this->table_engine).": ".$this->table_name;
2300
+ $logline = "Processing table ($this->table_engine): ".$this->table_name;
2301
+ if ('' != $this->old_table_prefix && $import_table_prefix != $this->old_table_prefix) {
2302
+ if ($this->restore_this_table($this->table_name)) {
2303
+ $print_line .= ' - '.__('will restore as:', 'updraftplus').' '.htmlspecialchars($this->new_table_name);
2304
+ $logline .= " - will restore as: ".$this->new_table_name;
2305
+ } else {
2306
+ $logline .= ' - skipping';
2307
+ }
2308
+ $create_table_statement = UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $create_table_statement);
2309
+
2310
+ $this->restored_table_names[] = $this->new_table_name;
2311
+ }
2312
+
2313
+ $updraftplus->log($logline);
2314
+ $updraftplus->log($print_line, 'notice-restore');
2315
+ $this->restoring_table = $this->new_table_name;
2316
+ if ($charset_change_message) $updraftplus->log($charset_change_message, 'notice-restore');
2317
+ if ($constraint_change_message) $updraftplus->log($constraint_change_message, 'notice-restore');
2318
+ if ($collate_change_message) $updraftplus->log($collate_change_message, 'notice-restore');
2319
+ if ($engine_change_message) $updraftplus->log($engine_change_message, 'notice-restore');
2320
+ return $create_table_statement;
2321
+ }
2322
+
2323
  /**
2324
  * Restore the database backup
2325
  *
2402
  }
2403
  }
2404
 
2405
+ UpdraftPlus_Database_Utility::set_sql_mode(array('NO_AUTO_VALUE_ON_ZERO'), $this->use_wpdb() ? null : $this->mysql_dbh);
2406
 
2407
  // Find the supported engines - in case the dump had something else (case seen: saved from MariaDB with engine Aria; imported into plain MySQL without)
2408
+ $supported_engines = array_change_key_case((array) $wpdb->get_results("SHOW ENGINES", OBJECT_K));
2409
+ $supported_charsets = array_change_key_case((array) $wpdb->get_results("SHOW CHARACTER SET", OBJECT_K));
2410
+ $supported_collations = array_change_key_case((array) $wpdb->get_results('SHOW COLLATION', OBJECT_K));
 
 
2411
 
2412
+ $this->table_engine = '';
2413
 
2414
  $this->errors = 0;
2415
  $this->statements_run = 0;
2534
  }
2535
  }
2536
 
2537
+ $this->restoring_table = '';
2538
 
2539
  $this->max_allowed_packet = $updraftplus->max_packet_size();
2540
 
2649
  $delimiter_regex = str_replace(array('$', '#', '/'), array('\$', '\#', '\/'), $delimiter);
2650
  } elseif (preg_match('/^\s*create trigger /i', $sql_line.$buffer)) {
2651
  $sql_type = 9;
2652
+ $buffer = $buffer."\n";
2653
+ } elseif (preg_match("/^[^'\"]*create[^'\"]*(?:definer\s*=\s*(?:`.{1,17}`@`[^\s]+`|'.{1,17}'@'[^\s]+').+?)?(?:function(?:\s\s*if\s\s*not\s\s*exists)?|procedure)\s*`([^\r\n]+)`/is", $sql_line.$buffer)) {
2654
+ $sql_type = 12;
2655
+ $buffer = $buffer."\n"; // need to do this so that the functions/procedures which have double dash and/or shell comment style (i.e -- comment, # comment) doesn't block the rest of the code in the routines body and also because we want to keep the routines as it is or in multiline (in a form that people prefer) so they who will edit it later don't get surprised by the look of it in a single line/one line
2656
  }
2657
 
2658
  // Deal with case where adding this line will take us over the MySQL max_allowed_packet limit - must split, if we can (if it looks like consecutive rows)
2686
  //
2687
  // $wpdb->query("CREATE TRIGGER `civicrm_acl_after_insert` AFTER INSERT ON `civicrm_acl` FOR EACH ROW BEGIN IF (@civicrm_disable_logging IS NULL OR @civicrm_disable_logging = 0 ) THEN INSERT INTO log_civicrm_acl (`id`, `name`, `deny`, `entity_table`, `entity_id`, `operation`, `object_table`, `object_id`, `acl_table`, `acl_id`, `is_active`, log_conn_id, log_user_id, log_action) VALUES ( NEW.`id`, NEW.`name`, NEW.`deny`, NEW.`entity_table`, NEW.`entity_id`, NEW.`operation`, NEW.`object_table`, NEW.`object_id`, NEW.`acl_table`, NEW.`acl_id`, NEW.`is_active`, COALESCE(@uniqueID, LEFT(CONCAT('c_', unix_timestamp()/3600, CONNECTION_ID()), 17)), @civicrm_user_id, 'insert'); END IF; END"));
2688
 
2689
+ if ((3 == $sql_type && !preg_match('/\)\s*'.$delimiter_regex.'$/', substr($sql_line, -5, 5))) || (!in_array($sql_type, array(3, 9, 10, 12)) && substr($sql_line, -strlen($delimiter), strlen($delimiter)) != $delimiter) || (9 == $sql_type && !preg_match('/(?:END)?\s*'.$delimiter_regex.'\s*$/', $sql_line))) continue;
2690
 
2691
  $this->line++;
2692
 
2698
  $sql_line = '';
2699
  $sql_type = -1;
2700
  // If this is the very first SQL line of the options table, we need to bail; it's essential
2701
+ if (0 == $this->insert_statements_run && $this->restoring_table && $this->restoring_table == $import_table_prefix.'options') {
2702
  $updraftplus->log("Leaving maintenance mode");
2703
  $this->maintenance_mode(false);
2704
  return new WP_Error('initial_db_error', sprintf(__('An error occurred on the first %s command - aborting run', 'updraftplus'), 'INSERT (options)'));
2710
  if (preg_match('/^\s*drop table (if exists )?\`?([^\`]*)\`?\s*'.$delimiter_regex.'/i', $sql_line, $matches)) {
2711
  $sql_type = 1;
2712
 
2713
+ if (!$this->printed_new_table_prefix) {
2714
  $import_table_prefix = $this->pre_sql_actions($import_table_prefix);
2715
  if (false === $import_table_prefix || is_wp_error($import_table_prefix)) return $import_table_prefix;
2716
+ $this->printed_new_table_prefix = true;
2717
  }
2718
 
2719
  $this->table_name = $matches[2];
2756
  continue;
2757
  }
2758
 
2759
+ if (!$this->printed_new_table_prefix) {
 
 
 
 
 
 
 
 
 
 
2760
  $import_table_prefix = $this->pre_sql_actions($import_table_prefix);
2761
  if (false === $import_table_prefix || is_wp_error($import_table_prefix)) return $import_table_prefix;
2762
+ $this->printed_new_table_prefix = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2763
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2764
 
2765
+ $sql_line = $this->prepare_create_table($sql_line, $import_table_prefix, $supported_engines, $supported_charsets, $supported_collations);
 
 
 
 
 
 
 
 
2766
 
2767
  } elseif (preg_match('/^\s*(insert into \`?([^\`]*)\`?\s+(values|\())/i', $sql_line, $matches)) {
2768
  $sql_type = 3;
2804
  } elseif (preg_match('/^\s*create trigger /i', $sql_line)) {
2805
  $sql_type = 9;
2806
  // If the statement is not yet complete, then continue (to get the next line)
2807
+ if (!preg_match('/(?:END)?\s*'.$delimiter_regex.'\s*$/', $sql_line)) continue;
2808
+ // If it's a comment then continue;
2809
+ if (preg_match('/(?:--|#).+?'.$delimiter_regex.'\s*$/i', $buffer)) continue;
2810
  $updraftplus->log_restore_update(array('type' => 'state', 'stage' => 'db', 'data' => array('stage' => 'trigger', 'table' => '')));
2811
  if ('' != $this->old_table_prefix && $import_table_prefix != $this->old_table_prefix) $sql_line = UpdraftPlus_Manipulation_Functions::str_replace_once($this->old_table_prefix, $import_table_prefix, $sql_line);
2812
+ if (';' !== $delimiter) {
2813
+ $sql_line = preg_replace('/END\s*'.$delimiter_regex.'\s*$/', 'END', $sql_line);
2814
+ // handle trigger statement which doesn't include begin and end in the trigger body, and remove the delimiter
2815
+ $sql_line = preg_replace('/\s*'.$delimiter_regex.'\s*$/', '', $sql_line);
2816
+ }
2817
  if ($this->triggers_forbidden) $updraftplus->log("Database user lacks permission to create triggers; statement will not be executed ($sql_line)");
2818
  } elseif (preg_match('/^\s*drop trigger /i', $sql_line)) {
2819
  // Avoid sending unrecognised delimiters to the SQL server (this only affects backups created outside UD; we use ";;" which is cunningly compatible)
2867
  }
2868
  $this->maintenance_mode(false);
2869
 
2870
+ if ($this->restoring_table) $this->restored_table($this->restoring_table, $import_table_prefix, $this->old_table_prefix, $this->table_engine);
2871
 
2872
  // drop the dummy restored tables
2873
  if ($this->is_dummy_db_restore) $this->drop_tables($this->restored_table_names);
2906
  $skip_table = false;
2907
  $last_table = isset($this->continuation_data['last_processed_db_table']) ? $this->continuation_data['last_processed_db_table'] : '';
2908
 
2909
+ if (!empty($this->tables_to_restore) && !in_array($table_name, $this->tables_to_restore)) {
2910
+ if (empty($this->previous_table_name) || $table_name != $this->previous_table_name) $updraftplus->log(sprintf(__('Skipping table %s: user has chosen not to restore this table', 'updraftplus'), $table_name), 'notice-restore');
2911
+ $skip_table = true;
2912
+ } elseif (!empty($last_table) && !empty($table_name) && $table_name != $last_table) {
2913
+ if (empty($this->previous_table_name) || $table_name != $this->previous_table_name) $updraftplus->log(sprintf(__('Skipping table %s: already restored on a prior run; next table to restore: %s', 'updraftplus'), $table_name, $last_table), 'notice-restore');
2914
  $skip_table = true;
2915
  } elseif (!empty($last_table) && !empty($table_name) && $table_name == $last_table) {
2916
  unset($this->continuation_data['last_processed_db_table']);
3406
  $wpdb->query("DELETE FROM $new_table_name WHERE option_name = 'jetpack_options'");
3407
  }
3408
 
3409
+ // if we are importing a single site into a multisite (which means we have the multisite add-on) we need to clear our saved options and crons to prevent unwanted backups
3410
+ if (isset($this->restore_options['updraftplus_migrate_blogname'])) {
3411
+ $wpdb->query("DELETE FROM {$import_table_prefix}{$mprefix}options WHERE option_name LIKE 'updraft_%'");
3412
+ $crons = maybe_unserialize($wpdb->get_var("SELECT option_value FROM {$import_table_prefix}{$mprefix}options WHERE option_name = 'cron'"));
3413
+ foreach ($crons as $timestamp => $cron) {
3414
+ if (!is_array($cron)) continue;
3415
+ foreach (array_keys($cron) as $key) {
3416
+ if (false !== strpos($key, 'updraft_')) unset($crons[$timestamp][$key]);
3417
+ if (empty($crons[$timestamp])) unset($crons[$timestamp]);
3418
+ }
3419
+ }
3420
+ $crons = serialize($crons);
3421
+ $wpdb->query($wpdb->prepare("UPDATE {$import_table_prefix}{$mprefix}options SET option_value='%s' WHERE option_name='cron'", $crons));
3422
+ }
3423
+
3424
  }
3425
 
3426
  } elseif ($import_table_prefix != $old_table_prefix && preg_match('/^([\d+]_)?usermeta$/', substr($table, strlen($import_table_prefix)), $matches)) {
templates/wp-admin/settings/existing-backups-table.php CHANGED
@@ -21,7 +21,13 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
21
  </thead>
22
  <tbody>
23
  <?php
24
-
 
 
 
 
 
 
25
  foreach ($backup_history as $key => $backup) {
26
 
27
  $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
@@ -146,6 +152,15 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
146
  <?php } ?>
147
 
148
  </tbody>
 
 
 
 
 
 
 
 
 
149
  </table>
150
  <?php if (!defined('UPDRAFTCENTRAL_COMMAND')) : ?>
151
  <div id="ud_massactions">
21
  </thead>
22
  <tbody>
23
  <?php
24
+
25
+ if (!defined('UPDRAFTCENTRAL_COMMAND') && $backup_count <= count($backup_history) - 1) {
26
+ $backup_history = array_slice($backup_history, 0, $backup_count, true);
27
+ } else {
28
+ $show_paging_actions = true;
29
+ }
30
+
31
  foreach ($backup_history as $key => $backup) {
32
 
33
  $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
152
  <?php } ?>
153
 
154
  </tbody>
155
+ <?php if (!$show_paging_actions) : ?>
156
+ <tfoot>
157
+ <tr class="updraft_existing_backups_page_actions">
158
+ <td colspan="4" style="text-align: center;">
159
+ <a class="updraft-load-more-backups"><?php _e('Show more backups...', 'updraftplus');?></a> | <a class="updraft-load-all-backups"><?php _e('Show all backups...', 'updraftplus');?></a>
160
+ </td>
161
+ </tr>
162
+ </tfoot>
163
+ <?php endif; ?>
164
  </table>
165
  <?php if (!defined('UPDRAFTCENTRAL_COMMAND')) : ?>
166
  <div id="ud_massactions">
templates/wp-admin/settings/form-contents.php CHANGED
@@ -291,7 +291,7 @@ foreach ($default_options as $k => $v) {
291
 
292
  <tr>
293
  <th><?php _e('Expert settings', 'updraftplus');?>:</th>
294
- <td><a class="enableexpertmode" href="<?php echo UpdraftPlus::get_current_clean_url();?>#enableexpertmode"><?php _e('Show expert settings', 'updraftplus');?></a> - <?php _e("click this to show some further options; don't bother with this unless you have a problem or are curious.", 'updraftplus');?> <?php do_action('updraftplus_expertsettingsdescription'); ?></td>
295
  </tr>
296
  <?php
297
  $delete_local = UpdraftPlus_Options::get_updraft_option('updraft_delete_local', 1);
291
 
292
  <tr>
293
  <th><?php _e('Expert settings', 'updraftplus');?>:</th>
294
+ <td><a class="enableexpertmode" href="<?php echo UpdraftPlus::get_current_clean_url();?>#enableexpertmode"><?php _e('Show expert settings', 'updraftplus');?></a> - <?php _e("open this to show some further options; don't bother with this unless you have a problem or are curious.", 'updraftplus');?> <?php do_action('updraftplus_expertsettingsdescription'); ?></td>
295
  </tr>
296
  <?php
297
  $delete_local = UpdraftPlus_Options::get_updraft_option('updraft_delete_local', 1);
updraftplus.php CHANGED
@@ -5,7 +5,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
5
  Plugin URI: https://updraftplus.com
6
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
7
  Author: UpdraftPlus.Com, DavidAnderson
8
- Version: 1.16.22
9
  Donate link: https://david.dw-perspective.org.uk/donate
10
  License: GPLv3 or later
11
  Text Domain: updraftplus
@@ -45,7 +45,7 @@ define('UPDRAFT_DEFAULT_UPLOADS_EXCLUDE', 'backup*,*backups,backwpup*,wp-clone,s
45
 
46
  // The following can go in your wp-config.php
47
  // Tables whose data can be skipped without significant loss, if (and only if) the attempt to back them up fails (e.g. bwps_log, from WordPress Better Security, is log data; but individual entries can be huge and cause out-of-memory fatal errors on low-resource environments). Comma-separate the table names (without the WordPress table prefix).
48
- if (!defined('UPDRAFTPLUS_DATA_OPTIONAL_TABLES')) define('UPDRAFTPLUS_DATA_OPTIONAL_TABLES', 'bwps_log,statpress,slim_stats,redirection_logs,Counterize,Counterize_Referers,Counterize_UserAgents,wbz404_logs,wbz404_redirects,tts_trafficstats,tts_referrer_stats,wponlinebackup_generations,svisitor_stat,simple_feed_stats,itsec_log,relevanssi_log,blc_instances,wysija_email_user_stat,woocommerce_sessions,et_bloom_stats,redirection_404,lbakut_activity_log,stream_meta');
49
  if (!defined('UPDRAFTPLUS_ZIP_EXECUTABLE')) define('UPDRAFTPLUS_ZIP_EXECUTABLE', "/usr/bin/zip,/bin/zip,/usr/local/bin/zip,/usr/sfw/bin/zip,/usr/xdg4/bin/zip,/opt/bin/zip");
50
  if (!defined('UPDRAFTPLUS_MYSQLDUMP_EXECUTABLE')) define('UPDRAFTPLUS_MYSQLDUMP_EXECUTABLE', updraftplus_build_mysqldump_list());
51
  // If any individual file size is greater than this, then a warning is given
5
  Plugin URI: https://updraftplus.com
6
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
7
  Author: UpdraftPlus.Com, DavidAnderson
8
+ Version: 1.16.23
9
  Donate link: https://david.dw-perspective.org.uk/donate
10
  License: GPLv3 or later
11
  Text Domain: updraftplus
45
 
46
  // The following can go in your wp-config.php
47
  // Tables whose data can be skipped without significant loss, if (and only if) the attempt to back them up fails (e.g. bwps_log, from WordPress Better Security, is log data; but individual entries can be huge and cause out-of-memory fatal errors on low-resource environments). Comma-separate the table names (without the WordPress table prefix).
48
+ if (!defined('UPDRAFTPLUS_DATA_OPTIONAL_TABLES')) define('UPDRAFTPLUS_DATA_OPTIONAL_TABLES', 'bwps_log,statpress,slim_stats,redirection_logs,Counterize,Counterize_Referers,Counterize_UserAgents,wbz404_logs,wbz404_redirects,tts_trafficstats,tts_referrer_stats,wponlinebackup_generations,svisitor_stat,simple_feed_stats,itsec_log,relevanssi_log,blc_instances,wysija_email_user_stat,woocommerce_sessions,et_bloom_stats,redirection_404,lbakut_activity_log,stream_meta,wfFileMods,wffilemods,wfBlockedIPLog,wfblockediplog,page_visit_history');
49
  if (!defined('UPDRAFTPLUS_ZIP_EXECUTABLE')) define('UPDRAFTPLUS_ZIP_EXECUTABLE', "/usr/bin/zip,/bin/zip,/usr/local/bin/zip,/usr/sfw/bin/zip,/usr/xdg4/bin/zip,/opt/bin/zip");
50
  if (!defined('UPDRAFTPLUS_MYSQLDUMP_EXECUTABLE')) define('UPDRAFTPLUS_MYSQLDUMP_EXECUTABLE', updraftplus_build_mysqldump_list());
51
  // If any individual file size is greater than this, then a warning is given
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit74ddf1058990793d8e8d129bae6818ef::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  $includePaths[] = get_include_path();
@@ -31,7 +31,7 @@ class ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
- call_user_func(\Composer\Autoload\ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInitd56ba48c31cd16567b66dd0f477c61cc
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
- $includeFiles = Composer\Autoload\ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
- composerRequired56ba48c31cd16567b66dd0f477c61cc($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
- function composerRequired56ba48c31cd16567b66dd0f477c61cc($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit74ddf1058990793d8e8d129bae6818ef
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit74ddf1058990793d8e8d129bae6818ef', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit74ddf1058990793d8e8d129bae6818ef', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  $includePaths[] = get_include_path();
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
+ call_user_func(\Composer\Autoload\ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
+ $includeFiles = Composer\Autoload\ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
+ composerRequire74ddf1058990793d8e8d129bae6818ef($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
+ function composerRequire74ddf1058990793d8e8d129bae6818ef($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc
8
  {
9
  public static $files = array (
10
  'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
@@ -146,10 +146,10 @@ class ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc
146
  public static function getInitializer(ClassLoader $loader)
147
  {
148
  return \Closure::bind(function () use ($loader) {
149
- $loader->prefixLengthsPsr4 = ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::$prefixLengthsPsr4;
150
- $loader->prefixDirsPsr4 = ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::$prefixDirsPsr4;
151
- $loader->prefixesPsr0 = ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::$prefixesPsr0;
152
- $loader->classMap = ComposerStaticInitd56ba48c31cd16567b66dd0f477c61cc::$classMap;
153
 
154
  }, null, ClassLoader::class);
155
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit74ddf1058990793d8e8d129bae6818ef
8
  {
9
  public static $files = array (
10
  'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
146
  public static function getInitializer(ClassLoader $loader)
147
  {
148
  return \Closure::bind(function () use ($loader) {
149
+ $loader->prefixLengthsPsr4 = ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::$prefixLengthsPsr4;
150
+ $loader->prefixDirsPsr4 = ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::$prefixDirsPsr4;
151
+ $loader->prefixesPsr0 = ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::$prefixesPsr0;
152
+ $loader->classMap = ComposerStaticInit74ddf1058990793d8e8d129bae6818ef::$classMap;
153
 
154
  }, null, ClassLoader::class);
155
  }
vendor/composer/installed.json CHANGED
@@ -709,23 +709,23 @@
709
  },
710
  {
711
  "name": "symfony/process",
712
- "version": "v3.4.37",
713
- "version_normalized": "3.4.37.0",
714
  "source": {
715
  "type": "git",
716
  "url": "https://github.com/symfony/process.git",
717
- "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a"
718
  },
719
  "dist": {
720
  "type": "zip",
721
- "url": "https://api.github.com/repos/symfony/process/zipball/5b9d2bcffe4678911a4c941c00b7c161252cf09a",
722
- "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a",
723
  "shasum": ""
724
  },
725
  "require": {
726
  "php": "^5.5.9|>=7.0.8"
727
  },
728
- "time": "2020-01-01T11:03:25+00:00",
729
  "type": "library",
730
  "extra": {
731
  "branch-alias": {
709
  },
710
  {
711
  "name": "symfony/process",
712
+ "version": "v3.4.38",
713
+ "version_normalized": "3.4.38.0",
714
  "source": {
715
  "type": "git",
716
  "url": "https://github.com/symfony/process.git",
717
+ "reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da"
718
  },
719
  "dist": {
720
  "type": "zip",
721
+ "url": "https://api.github.com/repos/symfony/process/zipball/b03b02dcea26ba4c65c16a73bab4f00c186b13da",
722
+ "reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da",
723
  "shasum": ""
724
  },
725
  "require": {
726
  "php": "^5.5.9|>=7.0.8"
727
  },
728
+ "time": "2020-02-04T08:04:52+00:00",
729
  "type": "library",
730
  "extra": {
731
  "branch-alias": {