<?xml version="1.0" encoding="UTF-8"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->


<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" version="2.0 Beta" viewmodes="fullscreen" id="http://YourDomain.com/cordova-web-ui-template">  
	<icon src="icon.png"/>  
	<content src="index.html"/>  
	<feature name="http://tizen.org/api/application" required="true"/>  
	<feature name="http://tizen.org/api/application.kill" required="true"/>  
	<feature name="http://tizen.org/api/application.launch" required="true"/>  
	<feature name="http://tizen.org/api/application.read" required="true"/>  
	<feature name="http://tizen.org/api/contact" required="true"/>  
	<feature name="http://tizen.org/api/contact.read" required="true"/>  
	<feature name="http://tizen.org/api/contact.write" required="true"/>  
	<feature name="http://tizen.org/api/systeminfo" required="true"/>  
	<feature name="http://tizen.org/api/time" required="true"/>  
	<feature name="http://tizen.org/api/time.read" required="true"/>  
	<feature name="http://tizen.org/api/time.write" required="true"/>  
	<feature name="http://tizen.org/api/tizen" required="true"/>  
	<name>cordova-web-ui-template</name>
</widget>
