<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
#
# 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.
#
-->
<plist version="1.0">
<dict>
	<key>KeyboardDisplayRequiresUserAction</key>
	<true/>
	<key>SuppressesIncrementalRendering</key>
	<false/>
	<key>UIWebViewBounce</key>
	<true/>
	<key>TopActivityIndicator</key>
	<string>gray</string>
	<key>EnableLocation</key>
	<false/>
	<key>EnableViewportScale</key>
	<false/>
	<key>AutoHideSplashScreen</key>
	<true/>
	<key>ShowSplashScreenSpinner</key>
	<true/>
	<key>MediaPlaybackRequiresUserAction</key>
	<false/>
	<key>AllowInlineMediaPlayback</key>
	<false/>
	<key>OpenAllWhitelistURLsInWebView</key>
	<false/>
	<key>BackupWebStorage</key>
	<true/>
	<key>ExternalHosts</key>
	<array/>
	<key>Plugins</key>
	<dict>
		<key>Device</key>
		<string>CDVDevice</string>
		<key>Logger</key>
		<string>CDVLogger</string>
		<key>Compass</key>
		<string>CDVLocation</string>
		<key>Accelerometer</key>
		<string>CDVAccelerometer</string>
		<key>Camera</key>
		<string>CDVCamera</string>
		<key>NetworkStatus</key>
		<string>CDVConnection</string>
		<key>Contacts</key>
		<string>CDVContacts</string>
		<key>Debug Console</key>
		<string>CDVDebugConsole</string>
		<key>Echo</key>
		<string>CDVEcho</string>
		<key>File</key>
		<string>CDVFile</string>
		<key>FileTransfer</key>
		<string>CDVFileTransfer</string>
		<key>Geolocation</key>
		<string>CDVLocation</string>
		<key>Notification</key>
		<string>CDVNotification</string>
		<key>Media</key>
		<string>CDVSound</string>
		<key>Capture</key>
		<string>CDVCapture</string>
		<key>SplashScreen</key>
		<string>CDVSplashScreen</string>
		<key>Battery</key>
		<string>CDVBattery</string>
	</dict>
</dict>
</plist>
