a:54:{s:9:"copyright";s:74:"© 2014 CactusThemes - Wordpress  themes and plugins. All rights reserved.";s:10:"custom_css";s:253:"iframe[name='google_conversion_frame']{display:none}
#main-nav.nav-style-1 .navbar-nav>li>a>.fa {
    display: none;
}
.item-thumbnail-video-inner iframe{ height:100%}

.cactus-rev-slider-default .tparrows:hover {
 background: none !important;
}";s:21:"google_analytics_code";s:1621:"<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 970096759;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/970096759/?value=0&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-52179345-2', 'auto');
  ga('send', 'pageview');

</script>

<script>(function() {
  var _fbq = window._fbq || (window._fbq = []);
  if (!_fbq.loaded) {
    var fbds = document.createElement('script');
    fbds.async = true;
    fbds.src = '//connect.facebook.net/en_US/fbds.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(fbds, s);
    _fbq.loaded = true;
  }
  _fbq.push(['addPixelId', '711222495615446']);
})();
window._fbq = window._fbq || [];
window._fbq.push(['track', 'PixelInitialized', {}]);
</script>
<noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/tr?id=711222495615446&amp;ev=PixelInitialized" /></noscript>";s:7:"favicon";s:78:"http://demo.cactusthemes.com/university/wp-content/uploads/2014/10/favicon.ico";s:10:"logo_image";s:96:"http://demo.cactusthemes.com/university/wp-content/uploads/2014/03/Logo-univeresity-final-1X.png";s:11:"retina_logo";s:96:"http://demo.cactusthemes.com/university/wp-content/uploads/2014/03/Logo-univeresity-final-2X.png";s:10:"login_logo";s:96:"http://demo.cactusthemes.com/university/wp-content/uploads/2014/03/Logo-univeresity-final-1X.png";s:11:"off_gototop";s:2:"on";s:11:"pre-loading";s:1:"2";s:10:"loading_bg";s:7:"#179bd7";s:18:"loading_spin_color";s:0:"";s:25:"shortcode_datetime_format";s:5:"MM/DD";s:11:"nice-scroll";s:2:"on";s:12:"main_color_1";s:7:"#179bd7";s:12:"main_color_2";s:7:"#253b80";s:9:"footer_bg";s:7:"#212327";s:9:"main_font";s:59:"Roboto:400,300,500,400italic,700,500italic/Script:latin-ext";s:12:"heading_font";s:6:"Bitter";s:9:"main_size";s:2:"13";s:13:"custom_font_1";s:0:"";s:13:"custom_font_2";s:0:"";s:14:"letter_spacing";s:0:"";s:22:"letter_spacing_heading";s:0:"";s:9:"nav_style";s:1:"1";s:16:"nav_callout_text";s:98:"<p>Call Us <strong>019394745893</strong></p>
<p>Opening Hour <strong>7:00am - 9:00pm</strong></p>";s:10:"nav_sticky";s:1:"1";s:15:"nav_logo_sticky";s:1:"1";s:17:"logo_image_sticky";s:0:"";s:11:"post_layout";s:5:"right";s:11:"page_layout";s:5:"right";s:15:"archive_sidebar";s:5:"right";s:13:"page404_title";s:0:"";s:15:"page404_content";s:0:"";s:18:"woocommerce_layout";s:4:"left";s:12:"woo_per_page";s:1:"8";s:12:"acc_facebook";s:1:"#";s:11:"acc_twitter";s:1:"#";s:12:"acc_linkedin";s:1:"#";s:10:"acc_tumblr";s:0:"";s:15:"acc_google-plus";s:1:"#";s:13:"acc_pinterest";s:0:"";s:11:"acc_youtube";s:0:"";s:10:"acc_flickr";s:0:"";s:16:"social_link_open";s:3:"off";s:14:"share_facebook";s:2:"on";s:13:"share_twitter";s:2:"on";s:14:"share_linkedin";s:3:"off";s:12:"share_tumblr";s:3:"off";s:17:"share_google_plus";s:2:"on";s:15:"share_pinterest";s:2:"on";s:11:"share_email";s:2:"on";s:15:"envato_username";s:0:"";s:10:"envato_api";s:0:"";s:18:"envato_auto_update";s:3:"off";}