Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 5 April 2021

Byju’s acquires Indian tutor Aakash for nearly $1 billion

Why did Byju’s raise over $1 billion last year and is already inching closer to securing another half a billion dollars? We are getting some answers today.

Byju’s said on Monday it has acquired Aakash Educational, a 33-year-old chain of physical coaching centres, as the Indian online learning giant looks to further consolidate its leadership position in the world’s second largest internet market.

The Indian startup paid “close to $1 billion” in cash and equity for the acquisition, which is one of the largest in the edtech space, three people familiar with the matter told TechCrunch. (EY advised the firms on the transaction; Bloomberg first reported about the two firms talking in January.)

Backed by Blackstone, Aakash owns and operates more than 200 physical tutoring centres across the country aimed at students preparing to qualify for top engineering and medical colleges.

The decades-old firm has made some of its offering available online in recent years, but the pandemic’s recent shift to students’ preferences made Aakash and Byju’s explore a deal six-seven months ago, executives from the firm told TechCrunch in a joint interview. (They declined to comment on the financial aspects of the deal.)

Aakash Chaudhry, Managing Director and Co-promoter of Aakash Educational, said the two firms joining forces will offer “very substantial and value-additive services to students.” The leadership at Aakash Educational will stay with the firm after the acquisition.

The acquisition will enable the two entities to build the largest omni-channel for students in India, he said. “Students who have wanted to access physical classrooms have gotten that from us. And those who wanted to access content and learning online has been served by Byju’s. Together, we will leverage the physical location and technology and online learning and offer students that is unique,” he said.

The future of education will blend offline and online experiences, said Byju Raveendran, co-founder and chief executive of the eponymous startup, in an interview. And Byju, a teacher himself (and pictured above), would know. Prior to launching the online platform, Raveendran took classes for hundreds of students at stadiums.

For several of Byju’s offerings such as test-preparation, he said, an online-only model is still a few years away. Monday’s deal is also aimed at expanding the reach of Byju’s and Aakash Educational in smaller towns and cities, the executives said.

Amit Dixit, Co-head of Asia Acquisitions and Head of India Private Equity at Blackstone, which acquired a 37.5% stake in Aakash for about $183 million in 2019, said that an “omni-channel will be the winning model in test prep and tutoring, and we look forward to being a part of the partnership between the two foremost companies in Indian supplementary education – Aakash and Byju’s.”

Funding received by Indian education startups in recent years. (Image and data compiled by Blume Ventures)

The userbase of Byju’s — which prepares students pursuing undergraduate and graduate-level courses — has grown substantially since last year, now serving over 80 million users, 5.5 million of whom are paying subscribers. Byju’s, which is profitable, generated revenue of over $100 million in the U.S. last year, Deborah Quazzo, managing partner of GSV Ventures (which has backed the Indian startup), said at a session held by Indian venture fund Blume Ventures last month.

The startup has used the past two years to grow inorganically as well, through acquisitions. In 2019, it acquired U.S.-based Osmo for $120 million, and last year, it bought kids-focused coding platform WhiteHat Jr for $300 million. Ravendran said the startup is looking to acquire more firms. TechCrunch reported last week that the startup is holding acquisition talks with California-headquartered startup Epic for “significantly more than $300 million.”



from TechCrunch https://ift.tt/3sPuIOw
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support