a:6:{i:0;s:9271:"				<div class="h1"><h1>Hong Kong Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.jachintravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.jachintravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Hong Kong Tour Package</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">Duration </td>
						<td class="p5px pl0px vat">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Hong Kong</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.jachintravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hong Kong Tour Package - 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="24407"/>
						</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_10/296660/47426.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/296660/47426.jpg"  height="150"  width="150"    alt="Hong Kong Tour Package" title="Hong Kong Tour Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Rumours of Hong Kong's demise have been greatly exaggerated. More than 10 years after its handover from Britain to China, this entrepreneurial, irrepressible and singular trading city is booming again. After plagues real, financial and political, normal service has resumed. This tiny territory is punching well above its size and weight once more, only these days with a self-confidence it never had under its former masters. Hong Kong has never been busier.<br />
<br />
This tiny territory is punching well above its size and weight once more, only these days with a self-confidence it never had under its former masters. Hong Kong has never been busier.<br />
<br />
Nor has it ever felt as comfortable with its status, as a part once again of its original motherland but separate, too, largely governing its own affairs and much better off for it. Almost 7 million people call a territory of 1100 sq km home, squeezing onto only 10% of the available land space.<br />
<br />
A flood of mainland and international visitors, meanwhile, crowds in to see what all the fuss is about. Multitudes seek standing or sitting room here, bringing with them smog, odour, clutter and clatter.<br />
<br />
The package free form all India.<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> Delhi to Port Blair
								</p>
								<p class="aj">Departure from Delhi to Port Blair, On arrival at Port Blair airport, meet & greet at the airport with our representative. Transfers to hotel. Check in the Hotel / Resort. Afternoon at leisure. Evening, the Light and Sound Show at Cellular Jail where the saga of the freedom struggle brought alive back to the hotel. Overnight at the Port Blair with 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> Hongkong
								</p>
								<p class="aj">After breakfast at hotel, leave for Hongkong airport, Upon arrival at Hong Kong Airport, meet & greet at airport and transfer to your hotel Check in hotel rest of the day at leisure, later in the night proceed for Dinner in Indian restaurant.<br />
<br />
Overnight at Hong Kong.</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> Disneyland
								</p>
								<p class="aj">After Breakfast at hotel. Shuttle transfer to Disneyland. Enjoy full day in Disneyland. Evening proceed to Indian restaurant for Dinner after dinner return back to hotel. Overnight at Hong Kong.</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> Hongkong to Macau
								</p>
								<p class="aj">After Breakfast, get ready for the morning half day city tour, and then proceed for the Ferry from Hongkong to Macau, arrive Macau. Shuttle transfers to Macau hotel and rest of the day at leisure, then Proceed to dinner in Indian restaurant. Overnight at Macau.</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> Macau City
								</p>
								<p class="aj">After Breakfast at hotel, proceed for Half day Macau City tour with lunch. Visiting A-ma Temple, Fishmenwharf, Ruins of St.Paul Church, Macau Tower outside looking, Statue of Western Kun Yam, Goden Lotus square, Area of Nan Van Lake. Evening Proceed to Indian restaurant for Dinner, after dinner back to hotel. Overnight at Macau.</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> Check out
								</p>
								<p class="aj">Breakfast at hotel. Check out and free shuttle from hotel to airport ferry terminal. Board flight back to India.</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">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.jachintravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hong Kong Tour Package - 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="24407"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Hong Kong Tour Package - 5 Nights / 6 Days Tour Packages";i:2;s:119:"book hong kong tour package - 5 nights / 6 days tour packages, forts and palaces tour packages, hong kong tour packages";i:3;s:150:"JACHIN TRAVELS offers Hong Kong Tour Package - 5 Nights / 6 Days tour package, budget Forts and Palaces tour packages for Hong Kong at exciting price.";i:4;s:1592:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Hong Kong"        
		                 },
		      "description": "Rumours of Hong Kong's demise have been greatly exaggerated. More than 10 years after its handover from Britain to China, this entrepreneurial, irrepressible and singular trading city is booming again. After plagues real, financial and political, normal service has resumed. This tiny territory is punching well above its size and weight once more, only these days with a self-confidence it never had under its former masters. Hong Kong has never been busier.

This tiny territory is punching well above its size and weight once more, only these days with a self-confidence it never had under its former masters. Hong Kong has never been busier.

Nor has it ever felt as comfortable with its status, as a part once again of its original motherland but separate, too, largely governing its own affairs and much better off for it. Almost 7 million people call a territory of 1100 sq km home, squeezing onto only 10% of the available land space.

A flood of mainland and international visitors, meanwhile, crowds in to see what all the fuss is about. Multitudes seek standing or sitting room here, bringing with them smog, odour, clutter and clatter.

The package free form all India.",
		      "name": "Hong Kong Tour Package",
		      "telephone": "+91-8527093369"
		    }
		    </script>
			";i:5;N;}