a:6:{i:0;s:14346:"				<div class="h1"><h1>Singapore and Kuala Lumpur</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidaymasti.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Singapore and Kuala Lumpur</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Tour Code </td>
						<td class="p5px pl0px vat">4253</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kuala Lumpur, Singapore</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore and Kuala Lumpur - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="46862"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_2/30465/92001.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30465/92001.jpg"  width="150" height="150"    alt="Singapore and Kuala Lumpur" title="Singapore and Kuala Lumpur" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Travel Insurance (mandatory for person above 60 years of age)<br />
Any Service not mentioned in Inclusions<br />
Surcharge (if Applicable)<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival at Kuala Lumpur
								</p>
								<p class="aj">On your arrival at Kuala Lumpur International Airport, complete the formalities and meet our local representative at specified area for your transfer to the hotel. En-route halt at an Indian Restaurant for having dinner. Check-in at hotel and retire to a relaxed night. Stay overnight at hotel in Kuala Lumpur.</p>					
									<p><b>Meals : </b> Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Sun way Lagoon
								</p>
								<p class="aj">Take a fill at morning breakfast at hotel and set out for a fun filled day at Sun way Lagoon. Divided into 5 Theme Parks being Water Park, Amusement Park, Extreme Park, Scream Park and Wildlife Park, this exciting theme park makes for a great day for everyone. Indulge in numerous fun activities, pump up your adrenaline at roller-coaster rides and catch live performances and enjoy supreme stunts and actions with great visual effects. Visit the Wildlife Park to witness more than 150 species of animals from across the globe and get to the Scream Park to meet spooky dark creatures that will terrify you of the dark, blood curling creatures! Later proceed for dinner at an Indian Restaurant and return to hotel for a relaxed sleep. </p>					
									<p><b>Meals : </b> Breakfast</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> City Tour
								</p>
								<p class="aj">Charge yourself with the morning breakfast and proceed to see the major city landmarks via KL City Tour. Drive past the National Mosque and National Monument, an imposing sculpture in bronze in honour to the Malaysian history. Take a photo stop at King’s Palace- residence of the elected king of Malaysia, old railway station and the most renowned Petronas Twin Towers- the national symbol of Malaysia. Experience history and heritage of Malaysia at National Museum, visit Independence Square and buy traditional handicrafts from Handicraft Center or a short visit to Chocolate Factory. Rest of the day is at leisure. You can go for some shopping in Kuala Lumpur’s famous local markets or you can opt for a delightful KL Tower visit (at an extra cost). <br />
<br />
Witness the beauty of this majestic city post sunset. See the sky kissing buildings sparkling in lights. Visit KL Tower, the second tallest freestanding tower in the world with a height of 421 meters. Get up to observation deck and take panoramic city views from here. Later enjoy dinner at an Indian Restaurant and return to hotel. </p>					
									<p><b>Meals : </b>  MAP (Breakfast + Dinner)</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Genting Highlands
								</p>
								<p class="aj">After morning breakfast at hotel, pack your bags and check out from the hotel. Drive to Genting Highlands. Enjoy the changing landscapes from sky scraping skyline to Malaysian countryside followed by the highlands. En-route visit Batu Caves, the famous Hindu shrine in Malaysia with a huge statue of Lord Murugan at front and 272 steep stairs. After a short stop over, further your drive to the highlands. Take a cable car from Skyway station for a relaxing, scenic ride up to Genting Highlands. Check in at hotel on arrival (1500-1600 hrs), refresh and set out to the Indoor Theme Park to enjoy various amusement rides and activities. Spend some ‘chilling’ time at the Snow World and if interested, you can also visit Casino-De-Genting, the largest and only land-based casino in Asia (at your own expense). Use your dinner coupons for having dinner and later return to hotel. </p>					
									<p><b>Meals : </b> Breakfast + Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Kuala Lumpur to Singapore
								</p>
								<p class="aj">Wake up to a beautiful morning in the green hills under the bright blue sky. Watch out for the clouds that may come to you right through the window! Enjoy the stunning outside views and have your fill at morning breakfast at the hotel. Pack your bags and check out from the hotel. Transfer to Kuala Lumpur Airport for your flight to Singapore. On your arrival at Singapore Airport, our local tour representative will meet and transfer you to the hotel. Check-in and relax. <br />
<br />
In the evening, get ready to experience Singapore’s Exclusive Attraction- Night Safari! It is world’s first nocturnal zoo and renowned for its unique breeding and research methods. Witness varied species of animals in their natural environment and get close to them via joy tram ride passing through the night zoo. Later have dinner and return to the hotel. <br />
<br />
Stay overnight at hotel in Singapore.</p>					
									<p><b>Meals : </b> Breakfast + Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Singapore City Tour
								</p>
								<p class="aj">After morning breakfast at hotel, proceed for Singapore City Tour. Drive round the CBD passing through Cricket Club, Parliament House, Supreme Court, etc and see the glamorous Orchard Road with its wall to wall showrooms of best brands. Visit China Town’s grand Buddha Tooth relic Temple and Hindu shrines adorned with flowers. See the awe inspiring Gem Gallery and further to Singapore’s major landmark- Marina Bay. Witness the sheer exuberance here, the majestic Marina Bay Sands, the wonderful architecture of Esplanade and Merlion- Singapore’s iconic attraction. Also stop at Little India to see the creative and thoughtful setting of this area. <br />
<br />
After the City Tour, proceed for Afternoon Trip to Sentosa Island, Asia’s Favourite Playground. Visit the Underwater World Oceanarium to venture into the ocean depths, meet the friendly dolphins at Dolphin Lagoon, get introduced to the beautiful world of butterflies and insects at the Butterfly Park & Insect Kingdom, enjoy a thrilling 4D Magix Show and get on the super-fun Luge & Skyride. See the Wings of Time show and proceed for dinner. <br />
<br />
Stay overnight at hotel in Singapore.</p>					
									<p><b>Meals : </b> Breakfast + Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Singapore City Tour
								</p>
								<p class="aj">Take morning breakfast and set out for a super fun-filled day at Universal Studios. Divided into seven zones including Jurassic Park, Shriek, Sci-Fi City, New York, Hollywood, Madagascar and Ancient Egypt, it is one of the best Theme Parks of Asia. With rides for all ages, it makes for a perfect outing for everyone. Take rides like Battlestar Galactica, Accelerator, Revenge of the Mummy, Canopy Flyer, Jurassic Park Rapids Adventure, Enchanted Airways and Magic Potion Spin that will leave you at the extreme stage of adrenaline rush. Enjoy house entertainment like Water world, Shriek 4D Adventure, Donkey Live and Light, Camera and Action, etc. and indulge in exciting activities like Treasure Hunters, Amber Rock Climb, Dino-Soarin, and King Julien’s Beach Party-Go-Round and much more. After an excitement filled day, have dinner using your dinner coupons of Local Indian Restaurant. <br />
<br />
Stay overnight at hotel in Singapore.</p>					
									<p><b>Meals : </b> Breakfast + Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 8:</b> Singapore - Departure to Delhi
								</p>
								<p class="aj">Today morning have a fill at breakfast, pack your bags and check out from the hotel. Today your vacation ends and you get transferred to airport for your flight back to Delhi. On your return, we would like to receive your feedback about the trip.<br />
<br />
Return Home with Wonderful Memories</p>					
									<p><b>Meals : </b> Breakfast</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Travel Insurance (mandatory for person above 60 years of age)</li><li>
Any Service not mentioned in Inclusions</li><li>
Surcharge (if Applicable)</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore and Kuala Lumpur - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="46862"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Singapore and Kuala Lumpur - 7 Nights / 8 Days Tour Packages";i:2;s:137:"book singapore and kuala lumpur - 7 nights / 8 days tour packages, forts and palaces tour packages, kuala lumpur, singapore tour packages";i:3;s:167:"Holiday Masti offers Singapore and Kuala Lumpur - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for Kuala Lumpur, Singapore at exciting price.";i:4;s:550:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Singapore"        
		                 },
		      "description": "Travel Insurance (mandatory for person above 60 years of age)
Any Service not mentioned in Inclusions
Surcharge (if Applicable)",
		      "name": "Singapore and Kuala Lumpur",
		      "telephone": "+91-8090952150"
		    }
		    </script>
			";i:5;N;}