Click here to Skip to main content
11,438,636 members (74,870 online)
Click here to Skip to main content
Articles » Web Development » ASP.NET » General » Downloads
Add your own
alternative version

Browser Detection using ASP.NET

, 6 May 2009 CPOL
Using and updating your machine.config file to better detect browser type in ASP.NET
        <!-- Periodic device updates replace this browser capabilities section.
			 Please document any changes you make to this section before installing device updates.
		-->
        <!-- For updates to this browser data visit CodeProject, at http://www.codeproject.com/aspnet/browsercaps.asp -->
        <browserCaps>
            <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <use var="HTTP_USER_AGENT" />

			browser=Unknown
			version=0.0
			majorversion=0
			minorversion=0
			frames=false
			tables=false
			cookies=false
			backgroundsounds=false
			vbscript=false
			javascript=false
			javaapplets=false
			activexcontrols=false
			win16=false
			win32=false
			beta=false
			ak=false
			sk=false
			aol=false
			crawler=false
			cdf=false
			gold=false
			authenticodeupdate=false
			tagwriter=System.Web.UI.Html32TextWriter
			ecmascriptversion=0.0
			msdomversion=0.0
			w3cdomversion=0.0
			platform=Unknown
			css1=false
			css2=false
			xml=false

			mobileDeviceManufacturer = "Unknown"
			mobileDeviceModel = "Unknown"

			gatewayVersion = "None"
			gatewayMajorVersion = "0"
			gatewayMinorVersion = "0"
			gatewayRevisionVersion = "0"

			preferredRenderingType = "html32"
			preferredRenderingMime = "text/html"
			preferredImageMime = "image/gif"

			defaultScreenCharactersWidth = "12"
			defaultScreenCharactersHeight = "6"
			defaultScreenPixelsWidth = "96"
			defaultScreenPixelsHeight = "72"
			defaultCharacterWidth = "8"
			defaultCharacterHeight = "12"
			screenBitDepth = "1"
			isColor = "false"
			inputType = "telephoneKeypad"

			numberOfSoftkeys = "0"
			maximumSoftkeyLabelLength = "5"

			canInitiateVoiceCall = "false"

			canSendMail = "true"
			hasBackButton = "true"
			rendersWmlDoAcceptsInline = "true"
			rendersWmlSelectsAsMenuCards = "false"
			rendersBreaksAfterWmlAnchor = "false"
			rendersBreaksAfterWmlInput = "false"
			rendersBreakBeforeWmlSelectAndInput = "false"
			requiresAttributeColonSubstitution = "false"
			requiresPhoneNumbersAsPlainText = "false"
			requiresUrlEncodedPostfieldValues = "false"
			requiredMetaTagNameValue = ""
			rendersBreaksAfterHtmlLists = "true"
			requiresUniqueHtmlCheckboxNames = "false"
			requiresUniqueHtmlInputNames = "false"
			requiresUniqueFilePathSuffix = "false"
			supportsCss = "false"
			hidesRightAlignedMultiselectScrollbars = "false"
			canRenderAfterInputOrSelectElement = "true"
			canRenderInputAndSelectElementsTogether = "true"
			canRenderOneventAndPrevElementsTogether = "true"
			canCombineFormsInDeck = "true"
			canRenderMixedSelects = "true"
			canRenderPostBackCards = "true"
			canRenderSetvarZeroWithMultiSelectionList = "true"
			supportsImageSubmit = "false"
			supportsSelectMultiple = "true"
			requiresHtmlAdaptiveErrorReporting = "false"
			requiresContentTypeMetaTag = "false"
			requiresDBCSCharacter = "false"
			requiresOutputOptimization = "false"
			supportsAccesskeyAttribute = "false"
			supportsInputIStyle = "false"
			supportsInputMode = "false"
			supportsIModeSymbols = "false"
			supportsJPhoneSymbols = "false"
			supportsJPhoneMultiMediaAttributes = "false"
			maximumRenderedPageSize = "2000"
			requiresSpecialViewStateEncoding = "false"
			requiresNoBreakInFormatting = "false"
			requiresLeadingPageBreak = "false"
			supportsQueryStringInFormAction = "true"
			supportsCacheControlMetaTag = "true"
			supportsUncheck = "true"
			canRenderEmptySelects = "true"
			supportsRedirectWithCookie = "true"
			supportsEmptyStringInCookieValue = "true"
			cachesAllResponsesWithExpires = "false"
			requiresNoSoftkeyLabels = "false"
			defaultSubmitButtonLimit = "1"
			
			supportsBold = "false"
			supportsItalic = "false"
			supportsFontSize = "false"
			supportsFontName = "false"
			supportsFontColor = "true"
			supportsBodyColor = "true"
			supportsDivAlign = "true"
			supportsDivNoWrap = "false"
			supportsCharacterEntityEncoding = "true"

			isMobileDevice="false"

			<!-- Added to check for windows 64 bit support: Owen Brady 6-12-05 -->
			win64=false

			<!-- Determine Operating System Platform-->
			<!-- Updated to match more Platforms: Owen Brady 6-12-05-->
			<filter>
				<case match="16bit|Windows 3\.1|Win16">
					platform="Win16"
				</case>
				<case match="Windows 95|Win95|Win 9x 4\.90|Windows 98|Win98|Windows ME|Windows 4\.90|WinME">
					platform="Win9X"
				</case>
				<!--
				Some cases the ce devices have "Windows NT Windows CE" in the useragent 
				Owen Brady 6-12-05
				-->
				<case match="Windows CE|WinCE">
					platform="WinCE"
				</case>
				<case match="Windows NT|WinNT|Windows XP|Windows NT 5\.0|Windows 2000|NT4\.0">
					platform="WinNT"
				</case> 				                    
				<case match="(?i-s:Mac_68000)|(?i-s:Macintosh.*68K)">
					platform="Mac68K"
				</case>
				<case match="(?i-s:mac_powerpc)|(?i-s:mac_ppc)|(?i-s:macintosh.*ppc)|(?i-s:ppc mac)|(?i-s:power macintosh)|(?i-s:powerpc)">
					platform="MacPPC"
				</case>
				<case match="(?i-s:OSF1 alpha)|(?i-s:OSF1 .* alpha)">
					platform="Alpha"
				</case>	
				<case match="(?i-s:NetBSD .* alpha)|(?i-s:OpenVMS\sAlpha)|(?i-s:OpenVMS\sDEC)">
					platform="Alpha"
				</case>				
				<case match="(i[3-6]86)">
					platform="Intel"
				</case>				
				<case match="(?i-s:SunOS)">
					platform="SunOS"
				</case>        
				<case match="(?i-s:IRIX)">
					platform="SGI IRIX"
				</case>
				<case match="(?i-s:WebTV)">
					platform=WebTV
				</case>
				<case match="(?i-s:OS/2)">
					platform="OS/2"
				</case>
				<case match="(?i-s:amigaos)|(?i-s:amiga os)">
					platform="Amiga"
				</case>				
				<case match="BeOS">
					platform="BeOS"
				</case>				
				<case match="X11|Unix">
					platform="UNIX"
				</case>
			</filter>
			
			<!-- Determine Platform -->			
			<filter>
				<case match="16bit|Windows 3.1|Win16">
					win16=true
				</case>
			<case match="Windows 95|Win95|Windows 98|Win98|Windows NT|WinNT|Win32">
					win32=true
				</case>
			</filter>
			
			<!-- Determine Browser -->
			<filter>
			
				<!-- WebTV -->
				<case match="WebTV/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
					browser=WebTV
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					tables=true
					cookies=true
					backgroundsounds=true
					isMobileDevice="true"

					<filter match="2" with="${minor}">
						javascript=true
						ecmascriptversion=1.0
						css1=true
					</filter>
					<filter match="2" with="${major}">
						javascript=true
						ecmascriptversion=1.0
						css1=true
						tagwriter=System.Web.UI.HtmlTextWriter
					</filter>					
					<filter match="^b" with="${letters}">
						beta=true
					</filter>
				</case>
				

				<!-- 
				Author:	Rob Eberhardt, http://slingfive.com/
				History:
					2004-11-19	improved detection of Safari, Konqueror &amp; Mozilla variants, added Opera detection
					2003-12-21	updated TagWriter info
					2003-12-03	first published
				-->
	
				<!-- GECKO Based Browsers (Netscape 6+, Mozilla/Firefox, ...) //-->
				<!-- Edited by Owen Brady:6-12-05 -->
				<case match="(Gecko/[-\d]+)">
					browser=Mozilla
					type=Gecko
					frames=true
					tables=true
					cookies=true
					javascript=true
					javaapplets=true
					ecmascriptversion=1.5
					w3cdomversion=1.0
					css1=true
					css2=true
					xml=true
					tagwriter=System.Web.UI.HtmlTextWriter					
					<filter>
						<case match="Gecko/(?'Gecko'\d+)">
							BrowserBuild=${Gecko}
						</case>
					</filter>
					<filter>
						<case match="rv:(?'version'(?'major'\d+)(?'minor'\.\d*)(?'revision'\.\d*)(?'letters'\w*))">
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}
							revisionversion=0${revision}
							<case match="^b" with="${letters}">
								beta=true
							</case>						
						</case>					
						<case match="rv:(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}
							<case match="^b" with="${letters}">
								beta=true
							</case>
						</case>
						<case match="m(?'version'\d+)\)">
							version=0.${version}
							majorversion=0
							minorversion=${version}
						</case>						
					</filter>
					<filter>
						<case match="^Mozilla/5\.0 Galeon/(?'version'(?'major'\d+)\.(?'minor'\d+)\.(?'revision'\d+))">
							browser=Galeon
							version=${version}
							majorversion=${major}
							minorversion=${minor}						
							revisionversion=${revision}
						</case>
						<case match="(Gecko/[-\d]+)(?'VendorProductToken' (?'browser'[^/\d]*)([\d]*)/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'revision'\.\d+)(?'letters'\w*)))">
							browser=${browser}
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}
							revisionversion=0${revision}
						</case>						
						<case match="(Gecko/[-\d]+)(?'VendorProductToken' (?'browser'[^/\d]*)([\d]*)/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)))">
							browser=${browser}
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}
						</case>
					</filter>
					<filter>
						<case match="Phoenix" with="%{browser}">
							browser="Firefox"
						</case>
						<case match="Firebird" with="%{browser}">
							browser="Firefox"
						</case>				
						<case match="Mozilla Firebird">
							browser="Firefox"
						</case>
						<case match="Netscape6" with="%{browser}">
							browser="Netscape"
						</case>
						<case match="CS 2000 7\.0" with="%{browser}">
							browser="CS 2000 7.0"
							version=7.0
							majorversion=7
							minorversion=0				
						</case>			
					</filter>	
				</case>
	
				<!-- AppleWebKit Based Browsers (Safari...) //-->
				<!-- Edited by Owen Brady:6-12-05 -->
				<case match="AppleWebKit|Safari|OmniWeb">
					<filter>
						browser=AppleWebKit
						version=${version}
						majorversion=0${major}
						minorversion=0.${minor}
						frames=true
						tables=true
						cookies=true
						javascript=true
						javaapplets=true
						ecmascriptversion=1.5
						w3cdomversion=1.0
						css1=true
						css2=true
						xml=true
						tagwriter=System.Web.UI.HtmlTextWriter
						platform="MacPPC"
						<case match="AppleWebKit/(?'version'(?'major'\d?)(?'minor'\d{2}))">
							browser="AppleWebKit"
							version=${version}
							majorversion=0${major}
							minorversion=0.${minor}
							<filter>
								<case match="OmniWeb/v(?'major1'\d?)(?'minor1'\d{2})">
									browser=OmniWeb
									version=${major1}.${minor1}
									majorversion=${major1}
									minorversion=${minor1}
								</case>	
								<case match="Safari/(?'version1'\d+)">
									browser=Safari
									version=0.${version1}
									majorversion=0
									minorversion=${version1}
								</case>					
							</filter>
						</case>
						<case match="OmniWeb">
							browser=OmniWeb
							<filter match="OmniWeb/\d+\.\d+-v(?'version'(?'major'\d?)(?'minor'\d{2}))">				
								version=${major}.${minor}
								majorversion=${major}
								minorversion=${minor}		
							</filter>
						</case>			
					</filter>
				</case>		
				
				<!-- iCab -->
				<!-- Edited by Owen Brady:6-12-05 -->			
				<case match="iCab/|iCab ">
					browser=iCab
					tagwriter=System.Web.UI.HtmlTextWriter
					frames=true
					tables=true
					cookies=true
					javascript=true
					javaapplets=true
					ecmascriptversion=1.5
					w3cdomversion=1.0
					css1=true
					css2=true
					xml=true
					<filter>
						<case match="iCab/\((?'version'(?'major'\d+)\.(?'minor'\d+\.\d+)(?'revision'\.\d+))|iCab.(?'version'(?'major'\d+)(?'minor'\.\d+)(?'revision'\.\d+))">
							version=${version}
							majorversion=${major}
							minorversion=${minor}
							revisionversion=${revision}  	
						</case>	
						<case match="iCab/\((?'version'(?'major'\d+)\.(?'minor'\d+\.\d+))|iCab.(?'version'(?'major'\d+)(?'minor'\.\d+))">
							version=${version}
							majorversion=${major}
							minorversion=${minor}
						</case>
					</filter>
				</case>			
	
				<!-- Konqueror //-->
				<!-- Edited by Owen Brady:6-12-05 -->
				<case match=".+[K|k]onqueror">
					browser=Konqueror
					tagwriter=System.Web.UI.HtmlTextWriter
					type=Konqueror
					frames=true
					tables=true
					cookies=true
					javascript=true
					javaapplets=true
					ecmascriptversion=1.5
					w3cdomversion=1.0
					css1=true
					css2=true
					xml=true
					<filter>
						<case match=".+[K|k]onqueror/(?'version'(?'major'\d+)(?'minor'(\.[\d])*)(?'letters'[^;]*));\s+(?'platform'[^;\)]*)(;|\))">
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}
							platform=${platform}
						</case>
						<case match="[K|k]onqueror/(?'version'(?'major'\d+)(?'minor'\.\d+))">
							version=${version}
							majorversion=0${major}
							minorversion=0${minor}					
						</case>
						<case match="[K|k]onqueror2">
							version=2.0
							majorversion=2
							minorversion=0				
						</case>							
					</filter>
					<filter>
						<case match=";.(?'Build'\d{8})">
						BrowserBuild =${Build}
						</case>
					</filter>
				</case>
	
				<!-- Opera -->				
				<case match="Opera[ /](?'version'(?'major'\d+)(?'minor'\.(?'minorint'\d+))(?'letters'\w*))">
					browser=Opera
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					frames=true
					tables=true
					cookies=true
					javascript=true
					ecmascriptversion=1.1
					isMobileDevice="true"

					<filter match="[7-9]" with="${major}">
						tagwriter=System.Web.UI.HtmlTextWriter
					</filter>
					<filter match="[4-9]" with="${major}">
						ecmascriptversion=1.3
						css1=true
						css2=true
						xml=true

						<filter match="[5-9]" with="${major}">
							w3cdomversion=1.0
						</filter>
					</filter>
					<filter>
						<case match="7" with="${major}">
							<filter>
								<case match="[5-9]" with="${minorint}">
									ecmascriptversion=1.5
								</case>
								<case>
									ecmascriptversion=1.4
								</case>
							</filter>
						</case>
						<case match="[8-9]" with="${major}">
							ecmascriptversion=1.5
						</case>
					</filter>
					<filter match="^b" with="${letters}">
					   beta=true
					</filter>
				</case>
				
				<!-- Pocket IE -->
				<case match="Windows CE">
					<!-- Pocket IE for Pocket PC -->
					<!-- Moved & Edited by Owen Brady: 6-12-05 -->				
					<filter>
						<case match="^Mozilla/\S* \(compatible; MSIE (?'majorVersion'\d*)(?'minorVersion'\.\d*);\D* Windows CE(;(?'deviceID' \D\w*))?(; (?'screenWidth'\d+)x(?'screenHeight'\d+))?">
							type = "Pocket IE"
							browser = "Pocket IE"
							platform = "WinCE"
							cookies = "true"
							backgroundsounds = "true"
							javaapplets = "false"
							javascript = "true"
							vbscript = "false"
							tables = "true"
							activexcontrols = "true"
							supportsImageSubmit = "true"
							requiresUniqueFilePathSuffix = "true"
							requiresContentTypeMetaTag = "true"
							optimumPageWeight = "4000"
							supportsBold = "true"
							supportsItalic = "true"
							supportsFontSize = "true"
							supportsFontName = "true"
							supportsFontColor = "true"
							supportsBodyColor = "true"
							supportsDivAlign = "true"
							supportsDivNoWrap = "false"
							mobileDeviceModel = "Pocket PC"
							maximumRenderedPageSize = "262144"
							isMobileDevice="true"
							majorVersion = ${majorVersion}
							minorVersion = ${minorVersion}	
							frames = "true"
							requiresLeadingPageBreak = "true"	
							tagwriter=System.Web.UI.HtmlTextWriter  						
							<filter>
								<case match="^$" with="${deviceID}">
									supportsQueryStringInFormAction = "false"
								</case>
								<case match=" Smartphone;" with="${deviceID}">
									minorVersion = ".1"
									frames = "false"
									mobileDeviceModel = "Smartphone"
								</case>
							</filter>
							version = ${majorVersion}${minorVersion}
							screenPixelsWidth = ${screenWidth}
							screenPixelsHeight = ${screenHeight}
							defaultCharacterWidth = "7"
							defaultCharacterHeight = "18"
							inputType = "virtualKeyboard"
						</case>
					</filter>
				</case>
				
				<!-- IE -->		
				<case match="^Mozilla[^(]*\(compatible; MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'.*)">

					browser=IE
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					<filter>
						<case with="${extra}" match="MSIECrawler">
							IsBot=true
						</case>
					</filter>
					<case match="^[5-9]\." with="${version}">
						frames=true
						tables=true
						cookies=true
						backgroundsounds=true
						vbscript=true
						javascript=true
						javaapplets=true
						activexcontrols=true
						tagwriter=System.Web.UI.HtmlTextWriter
						ecmascriptversion=1.2
						msdomversion=${major}${minor}
						w3cdomversion=1.0
						css1=true
						css2=true
						xml=true
						isMobileDevice="true"
						<filter with="${letters}" match="^b">
							beta=true
						</filter>
						<filter with="${extra}" match="Crawler">
							crawler=true
						</filter>
						<filter with="${extra}" match="Win64|WOW64"> 
							win64=true				
						</filter> 
						<filter>
							<!--try to pick out the newest version of the clr listed-->
							<!--Added by Owen Brady: 6-12-05 -->						
							<case match="NET CLR 2\.0\.(?'clrVersion'\d{5})">
								clrVersion="2.0.${clrVersion}"
							</case>
							<case match="NET CLR 1\.2\.(?'clrVersion'\d{5})|NET CLR 1\.2\.(?'clrVersion'\d{4})">
								clrVersion="1.2.${clrVersion}"
							</case>				
							<case match="NET CLR 1\.1\.4322">
								clrVersion="1.1.4322"
							</case>				       
							<case match="NET CLR 1\.1\.(?'clrVersion'\d{4})">
								clrVersion="1.1.${clrVersion}"
							</case>	
							<case match="NET CLR 1\.0\.3119">
								clrVersion="1.0.3119"
							</case>				
							<case match="NET CLR 1\.0\.3705">
								clrVersion="1.0.3705"
							</case>	
							<case match="NET CLR 1\.0\.2914">
								clrVersion="1.0.2914"
							</case>						
							<case match="NET CLR 1\.0\.(?'clrVersion'\d{4})">
								clrVersion="1.0.${clrVersion}"
							</case>
							<!--Couldn't find a match to the others so we default to the first one listed -->
							<case match="NET CLR (?'clrVersion'[0-9\.]*)">
								clrVersion=${clrVersion}
							</case>
						</filter> 
					</case>
					<case match="^4\." with="${version}">
						frames=true
						tables=true
						cookies=true
						backgroundsounds=true
						vbscript=true
						javascript=true
						javaapplets=true
						activexcontrols=true
						tagwriter=System.Web.UI.HtmlTextWriter
						ecmascriptversion=1.2
						msdomversion=4.0
						cdf=true
						css1=true

						<filter with="${letters}" match="^[ab]">
							beta=true
						</filter>
						<filter with="${extra}" match="Crawler">
							crawler=true
						</filter>
						<filter match="; AOL" with="${extra}">
							aol=true
						</filter>
						<filter match="; Update a;" with="${extra}">
							authenticodeupdate=true
						</filter>
					</case>
					<case match="^3\." with="${version}">
						frames=true
						tables=true
						cookies=true
						backgroundsounds=true
						vbscript=true
						javascript=true
						javaapplets=true
						activexcontrols=true
						ecmascriptversion=1.0
						css1=true

						<filter match="true" with="%{win16}">
							javaapplets=false
							activexcontrols=false
							<filter match="^a" with="${letters}">
								beta=true
								vbscript=false
								javascript=false
							</filter>
						</filter>
						<filter match="Mac68K|MacPPC" with="%{platform}">
							vbscript=false
							activexcontrols=false
						</filter>
						<filter match="^B" with="${letters}">
							beta=true
						</filter>
						<filter match="; AK;" with="${extra}">
							ak=true
						</filter>
						<filter match="; SK;" with="${extra}">
							sk=true
						</filter>
						<filter match="; Update a;" with="${extra}">
							authenticodeupdate=true
						</filter>
						<filter match="; AOL" with="${extra}">
							aol=true
						</filter>
					</case>
					<case match="^2\." with="${version}">
						tables=true
						cookies=true
						backgroundsounds=true

						<filter match="^b" with="${letters}">
							beta=true
						</filter>
						<filter match="; AOL" with="${extra}">
							aol=true
						</filter>
					</case>
					<case match="^1\.5" with="${version}">
						tables=true
						cookies=true
					</case>
				</case>
				
				<!-- Microsoft Windows Media Player -->
				<!-- Added by Owen Brady:6-12-05 -->
				<case match="Windows-Media-Player/(?'version'(?'major'\d+)\.(?'minor'\d+\.\d+)\.(?'revision'\d+))">
					Browser="Microsoft Media Player"
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					revisionversion=${revision}                   
					ecmascriptversion=1.2
					w3cdomversion=1.0    
					tagwriter=System.Web.UI.HtmlTextWriter                                      
					<filter match="9|10" with="${major}">	
						platform=WinNT				
					</filter>
				</case>	
				
				<!-- Pocket IE -->
				<case match="^Microsoft Pocket Internet Explorer/0.6">
					browser=PIE
					version=1.0
					majorversion=1
					minorversion=0
					tables=true
					backgroundsounds=true
					platform=WinCE
					isMobileDevice="true"

				</case>
				
				<!-- Pocket IE -->
				<case match="^Mozilla[^(]*\(compatible; MSPIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'.*)">
					browser=PIE
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					tables=true
					backgroundsounds=true
					cookies=true
					isMobileDevice="true"

					<case match="2\." with="${version}">
						frames=true
					</case>
				</case>
				
				<!-- Netscape -->
				<case match="^Mozilla/5\.0 \([^)]*\) (Gecko/[-\d]+ )?Netscape6/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
					browser=Netscape
					version=${version}
					majorversion=${major}
					minorversion=${minor}
					frames=true
					tables=true
					cookies=true
					javascript=true
					javaapplets=true
					ecmascriptversion=1.5
					w3cdomversion=1.0
					css1=true
					css2=true
					xml=true

					<filter match="^b" with="${letters}">
						beta=true
					</filter>
				</case>

				<!-- Oracle PowerBrowser -->
				<case match="^Mozilla/2\.01 \(Compatible\) Oracle\(tm\) PowerBrowser\(tm\)/1\.0a">
					browser=PowerBrowser
					version=1.5
					majorversion=1
					minorversion=.5
					frames=true
					tables=true
					cookies=true
					vbscript=true
					javascript=true
					javaapplets=true
					platform=Win95
				</case>
				
				<!-- General Catchall -->
				<!-- Owen Brady: 6-13-05 -->
				<case match="^Mozilla[^(]*\(compatible; (?'Browser'.+)/(?'version'(?'major'\d+)(?'minor'\.\d+)).*\)|^Mozilla[^(]*\(compatible; (?'Browser'.+) (?'version'(?'major'\d+)(?'minor'\.\d+)).*\)">
					browser="${Browser}"
					version=${version}
					majorversion=${major}
					minorversion=${minor}	
				</case>	
				<case match="^Mozilla[^(]*\(compatible; (?'Browser'.+);.*\)|^Mozilla[^(]*\(compatible; (?'Browser'.+)\)">
					browser="${Browser}"
				</case>
				
				<!-- Netscape -->
				<case match="^Mozilla/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
					browser=Netscape
					version=${version}
					majorversion=${major}
					minorversion=${minor}

					<filter match="^b" with="${letters}">
						beta=true
					</filter>
					<filter match="Gold" with="${letters}">
						gold=true
					</filter>
					<case match="^[4-9]\." with="${version}">
						frames=true
						tables=true
						cookies=true
						javascript=true
						javaapplets=true
						ecmascriptversion=1.2
						css1=true

						<filter match="^[5-9]*" with="${minor}">
							ecmascriptversion=1.3
						</filter>
					</case>
					<case match="^[2-3]\." with="${version}">
						frames=true
						tables=true
						cookies=true
						javascript=true
						javaapplets=true
						ecmascriptversion=1.1
					</case>
				</case>
			</filter>

			<!-- Default Unknown -->
			<filter>
				<case match="Unknown" with="%{browser}">
					type=Unknown
				</case>
				<case>
					type=%{browser}%{majorversion}
				</case>
			</filter>
			
			<!-- Screen caps. If the device sends screen attributes then lets dig in and get the gossip -->
			<use var="HTTP_X_UP_DEVCAP_SCREENCHARS" as="x_up_devcap_screenchars" />
			<filter>
				<case match="(?'screenCharsWidth'[1-9]\d*),(?'screenCharsHeight'[1-9]\d*)" with="%{x_up_devcap_screenchars}">
					screenCharactersWidth = ${screenCharsWidth}
					screenCharactersHeight = ${screenCharsHeight}
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_SCREENPIXELS" as="x_up_devcap_screenpixels" />
			<filter>
				<case match="(?'screenPixWidth'[1-9]\d*),(?'screenPixHeight'[1-9]\d*)" with="%{x_up_devcap_screenpixels}">
					screenPixelsWidth = ${screenPixWidth}
					screenPixelsHeight = ${screenPixHeight}
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_SCREENDEPTH" as="x_up_devcap_screendepth" />
			<filter>
				<case match="(?'screenDepth'\d+)" with="%{x_up_devcap_screendepth}">

				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_MSIZE" as="x_up_devcap_msize" />
			<filter>
				<case match="(?'width'\d+),(?'height'\d+)" with="%{x_up_devcap_msize}">
					characterWidth = ${width}
					characterHeight = ${height}
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_ISCOLOR" as="x_up_devcap_iscolor" />
			<filter>
				<case match="1" with="%{x_up_devcap_iscolor}">
					isColor = "true"
				</case>
				<case match="0" with="%{x_up_devcap_iscolor}">
					isColor = "false"
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_NUMSOFTKEYS" as="x_up_devcap_numsoftkeys" />
			<filter>
				<case match="(?'softkeys'\d+)" with="%{x_up_devcap_numsoftkeys}">
					numberOfSoftkeys = ${softkeys}
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_SOFTKEYSIZE" as="x_up_devcap_softkeysize" />
			<filter>
				<case match="(?'softkeySize'\d+)" with="%{x_up_devcap_softkeysize}">
					maximumSoftkeyLabelLength = ${softkeySize}
				</case>
			</filter>
			<use var="HTTP_X_UP_DEVCAP_MAX_PDU" as="x_up_devcap_max_pdu" />
			<filter>
				<case match="(?'maxDeckSize'\d+)" with="%{x_up_devcap_max_pdu}">
					maximumRenderedPageSize = ${maxDeckSize}
				</case>
			</filter>
			
			<use var="HTTP_VIA" as="via" />
			<filter>
				<case match="Nokia" with="%{via}">
					<filter>
						<case with="%{via}" match="(?'nokiaVersion'Nokia\D*(?'gatewayMajorVersion'\d+)(?'gatewayMinorVersion'\.\d+)[^,]*)">
							gatewayVersion = ${nokiaVersion}
							gatewayMajorVersion = ${gatewayMajorVersion}
							gatewayMinorVersion = ${gatewayMinorVersion}
						</case>
					</filter>
				</case>
			</filter>
			<filter>
				<case match="UP\.Link/(?'gatewayVersion'\S*)">
					<filter>
						<case match="Go\.Web">
							<!-- Ignore UP.Link in Go.Web user-agent -->
						</case>
						<case with="${gatewayVersion}" match="(?'gatewayMajorVersion'\d*)(?'gatewayMinorVersion'\.\d*)(?'gatewayRevisionVersion'\.\d*).*">
							gatewayVersion = UP.Link/${gatewayVersion}
							gatewayMajorVersion = ${gatewayMajorVersion}
							gatewayMinorVersion = ${gatewayMinorVersion}
							gatewayRevisionVersion= ${gatewayRevisionVersion}
						</case>							
						<case with="${gatewayVersion}" match="(?'gatewayMajorVersion'\d*)(?'gatewayMinorVersion'\.\d*).*">
							gatewayVersion = UP.Link/${gatewayVersion}
							gatewayMajorVersion = ${gatewayMajorVersion}
							gatewayMinorVersion = ${gatewayMinorVersion}
						</case>
					</filter>
				</case>
			</filter>
			<filter>
				<case match="Mozilla/(?'major'\d+)">
					<filter>
						<case match="[^0-3]" with="${major}">
							supportsCss = "true"
							supportsImageSubmit = "true"
							supportsBold = "true"
							supportsItalic = "true"
							supportsFontSize = "true"
							supportsFontName = "true"
							supportsFontColor = "true"
							supportsBodyColor = "true"
							supportsDivAlign = "true"
							supportsDivNoWrap = "true"
						</case>
					</filter>
				</case>
			</filter>
			<filter>
				<!-- Pocket IE -->
				<!-- Moved before IE Section-->
				<!-- Left the Stub so things do not fall though the cracks -->
				<case match="Windows CE">
					<filter>
						<case match="^Mozilla/\S* \(compatible; MSIE (?'majorVersion'\d*)(?'minorVersion'\.\d*);\D* Windows CE(;(?'deviceID' \D\w*))?(; (?'screenWidth'\d+)x(?'screenHeight'\d+))?">
						</case>
					</filter>
				</case>
				<!-- Microsoft Mobile Explorer -->
				<case match=".*MMEF.*">
					inputType = "telephoneKeypad"
					canInitiateVoiceCall = "true"
					browser = "Microsoft Mobile Explorer"
					type = "Microsoft Mobile Explorer"
					cookies = "true"
					isColor = "false"
					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredImageMime = "image/vnd.wap.wbmp"
					mobileDeviceManufacturer = "Microsoft"
					mobileDeviceModel = "Simulator"
					numberOfSoftkeys = "2"
					defaultScreenPixelsWidth = "120"
					defaultScreenPixelsHeight = "160"
					screenBitDepth = "1"
					defaultCharacterWidth = "5"
					defaultCharacterHeight = "15"
					canRenderSetvarZeroWithMultiSelectionList = "false"
					maximumRenderedPageSize = "4000"
					isMobileDevice="true"

					<filter>
						<case match="MobileExplorer/(?'majorVersion'\d*)(?'minorVersion'\.\d*) \((?'httpRequest'Mozilla/1.22; compatible; )*MMEF\d+; (?'manufacturer'[^;]*); (?'model'[^;\)]*)">
							version = ${majorVersion}${minorVersion}
							majorVersion = ${majorVersion}
							minorVersion = ${minorVersion}
							mobileDeviceManufacturer = ${manufacturer}
							mobileDeviceModel = ${model}

							<!-- HTML-oriented capabilities of the HTML MME browsers -->
							<filter match=".+" with="${httpRequest}">
								preferredRenderingType = "html32"
								preferredRenderingMime = "text/html"
								preferredImageMime = "image/gif"
								supportsImageSubmit = "true"
								supportsBold = "true"
								supportsItalic = "true"
								supportsFontSize = "true"
								supportsFontName = "true"
								supportsFontColor = "true"
								supportsBodyColor = "true"
								supportsDivAlign = "true"
								supportsDivNoWrap = "false"
							</filter>
						</case>
						<case match="Mozilla/.*\(compatible; MMEF(?'versionInfo'\d\d); Cell[pP]hone(([;,] (?'deviceID'[^;]*))(;(?'buildInfo'.*))*)*\)">
						
							canCombineFormsInDeck = "false"
							canRenderPostBackCards = "false"

							<filter match="(?'majorVersion'\d)(?'minorVersion'\d)" with="${versionInfo}">
								version = ${majorVersion}.${minorVersion}
								majorVersion = ${majorVersion}
								minorVersion = .${minorVersion}
							</filter>
							<filter>
								<case match="Benefon Q" with="${deviceID}">
									mobileDeviceManufacturer = "Benefon"
									mobileDeviceModel = "Q"
									screenPixelsWidth = "100"
									screenPixelsHeight = "48"
									screenCharactersWidth = "20"
									screenCharactersHeight = "4"
									screenBitDepth = "1"
								</case>
								<case match="Sony CMD-Z5" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "CMD-Z5"
									screenPixelsWidth = "96"
									screenPixelsHeight = "60"
									screenCharactersWidth = "20"
									screenCharactersHeight = "4"
									screenBitDepth = "2"
									requiresOutputOptimization = "true"
								</case>
								<case match="Sony CMD-J5" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "CMD-J5"
									screenPixelsWidth = "96"
									screenPixelsHeight = "65"
									screenCharactersWidth = "20"
									screenCharactersHeight = "4"
									screenBitDepth = "2"
									requiresOutputOptimization = "true"
								</case>
								<!-- Simulator skins -->
								<case match="GenericSmall" with="${deviceID}">
									mobileDeviceManufacturer = "Microsoft"
									mobileDeviceModel = "Generic Small Skin"
									screenPixelsWidth = "100"
									screenPixelsHeight = "60"
									screenBitDepth = "1"
								</case>
								<case match="GenericLarge" with="${deviceID}">
									mobileDeviceManufacturer = "Microsoft"
									mobileDeviceModel = "Generic Large Skin"
									screenPixelsWidth = "160"
									screenPixelsHeight = "240"
									screenBitDepth = "1"
								</case>
								<case match="GenericFlip" with="${deviceID}">
									mobileDeviceManufacturer = "Microsoft"
									mobileDeviceModel = "Generic Flip Skin"
									screenPixelsWidth = "160"
									screenPixelsHeight = "200"
									screenBitDepth = "1"
								</case>
								<case match="Generic3D" with="${deviceID}">
									mobileDeviceManufacturer = "Microsoft"
									mobileDeviceModel = "Generic 3D Skin"
									screenPixelsWidth = "128"
									screenPixelsHeight = "160"
									screenBitDepth = "1"
								</case>
							</filter>
							<filter>
								<case match="P(?'modelID'\w)\w(?'buildNumber'\d*)" with="${buildInfo}">
									version = %{version}.${buildNumber}
									<filter>
										<case match="^z" with="${modelID}">
											mobileDeviceModel = "CMD-Z5"
											screenPixelsWidth = "96"
											screenPixelsHeight = "60"
											screenCharactersWidth = "20"
											screenCharactersHeight = "4"
											requiresOutputOptimization = "true"
										</case>
										<case match="^j" with="${modelID}">
											mobileDeviceModel = "CMD-J5"
											screenPixelsWidth = "96"
											screenPixelsHeight = "65"
											screenCharactersWidth = "20"
											screenCharactersHeight = "4"
											requiresOutputOptimization = "true"
										</case>
									</filter>
								</case>
							</filter>
						</case>
					</filter>
				</case>
				
				<!-- AvantGo -->
				<case match="Mozilla/.* \(compatible; AvantGo .*\)">
					browser = "AvantGo"
					cachesAllResponsesWithExpires = "true"
					canSendMail = "false"
					inputType = "virtualKeyboard"
					isColor = "false"
					maximumRenderedPageSize = "2560"
					preferredImageMime = "image/jpeg"
					requiresLeadingPageBreak = "true"
					requiresUniqueHtmlCheckboxNames = "true"
					screenCharactersHeight = "13"
					screenCharactersWidth = "30"
					screenPixelsHeight = "150"
					screenPixelsWidth = "150"
					supportsBodyColor = "false"
					supportsBold = "true"
					supportsFontColor = "false"
					supportsImageSubmit = "true"
					requiredMetaTagNameValue = "HandheldFriendly"
					javascript = "false"
					isMobileDevice="true"

					<use var="HTTP_X_AVANTGO_VERSION" as="x_avantgo_version" />
					<filter>
						<case match="(?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*)" with="%{x_avantgo_version}">
							version = ${browserMajorVersion}${browserMinorVersion}
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
						</case>
					</filter>
				</case>
				
				<!-- Ericsson -->
				<case match="R380 (?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*) WAP1\.1">
					browser = "Ericsson"
					type = "Ericsson R380"
					version = ${browserMajorVersion}.${browserMinorVersion}
					majorVersion = ${browserMajorVersion}
	   
					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredImageMime = "image/vnd.wap.wbmp"
					inputType = "virtualKeyboard"
					canInitiateVoiceCall = "true"
					mobileDeviceManufacturer = "Ericsson"
					mobileDeviceModel = "R380"
					screenPixelsWidth = "310"
					screenPixelsHeight = "100"
					screenCharactersHeight = "7"
					screenBitDepth = "1"
					isColor = "false"
					maximumRenderedPageSize = "3000"
					isMobileDevice="true"
				</case>
				<case match="(Ericsson(?'deviceID'[^/]+)/(?'deviceVer'.*))|(Ericsson(?'deviceID'[^/]+)/)">
					browser = "Ericsson"
					type = "Ericsson ${deviceID}"

					mobileDeviceManufacturer = "Ericsson"
					mobileDeviceModel = ${deviceID}

					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredImageMime = "image/vnd.wap.wbmp"
					isColor = "false"
					inputType = "telephoneKeypad"
					numberOfSoftkeys = "2"
					canInitiateVoiceCall = "true"
					screenBitDepth = "1"

					defaultScreenCharactersWidth = "20"
					defaultScreenCharactersHeight = "4"
					defaultScreenPixelsWidth = "101"
					defaultScreenPixelsHeight = "52"
					maximumRenderedPageSize = "1600"
					isMobileDevice="true"

					<filter>
						<case match="SEMC-Browser/(?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*)">
							version = ${browserMajorVersion}${browserMinorVersion}
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
						</case>
					</filter>
					<filter>
						<case match="R320" with="${deviceID}">
							screenCharactersWidth = "20"
							screenCharactersHeight = "4"
							screenPixelsWidth = "101"
							screenPixelsHeight = "52"
							maximumRenderedPageSize = "3000"
						</case>
						<case match="T20" with="${deviceID}">
							canSendMail = "false"
							maximumRenderedPageSize = "1400"
							maximumSoftkeyLabelLength = "21"
							mobileDeviceModel = "T20, T20e, T29s"
							numberOfSoftkeys = "1"
							screenCharactersHeight = "3"
							screenCharactersWidth = "16"
							screenPixelsWidth = "101"
							screenPixelsHeight = "33"
							supportsBold = "true"
							supportsFontSize = "true"
							supportsRedirectWithCookie = "false"
						</case>
						<case match="T65" with="${deviceID}">
							maximumRenderedPageSize = "3000"
							maximumSoftkeyLabelLength = "21"
							mobileDeviceModel = "Ericsson T65"
							numberOfSoftkeys = "1"
							preferredImageMime = "image/vnd.wap.wbmp"
							preferredRenderingType = "wml12"
							requiresUniqueFilePathSuffix = "true"
							screenBitDepth = "8"
							screenCharactersHeight = "4"
							screenCharactersWidth = "16"
							screenPixelsHeight = "67"
							screenPixelsWidth = "101"
							supportsBold = "true"
							supportsFontSize = "true"
							supportsRedirectWithCookie = "false"
						</case>
						<case match="R520" with="${deviceID}">
							screenCharactersWidth = "20"
							screenCharactersHeight = "4"
							screenPixelsWidth = "101"
							screenPixelsHeight = "67"
							maximumRenderedPageSize = "1600"
							screenBitDepth = "2"
						</case>
						<case match="A2628" with="${deviceID}">
							screenCharactersWidth = "20"
							screenCharactersHeight = "4"
							screenPixelsWidth = "101"
							screenPixelsHeight = "54"
							maximumRenderedPageSize = "1600"
						</case>
						<case match="T39" with="${deviceID}">
							canInitiateVoiceCall = "true"
							inputType = "telephoneKeypad"
							maximumRenderedPageSize = "3000"
							maximumSoftkeyLabelLength = "21"
							mobileDeviceManufacturer = "Ericsson"
							mobileDeviceModel = "Ericsson T39"
							preferredImageMime = "image/gif"
							preferredRenderingMime = "text/vnd.wap.wml"
							preferredRenderingType = "wml12"
							screenBitDepth = "8"
							screenCharactersHeight = "3"
							screenCharactersWidth = "16"
							screenPixelsHeight = "54"
							screenPixelsWidth = "101"
							supportsFontSize = "true"
							supportsItalic = "false"
							supportsRedirectWithCookie = "false"
						</case>
					</filter>
				</case>
				
				<!-- GoAmerica Browsers -->
				<case match=".*Go\.Web/(?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*).*">
					browser = "Go.Web"
					type = "Go.Web"
					version = ${browserMajorVersion}${browserMinorVersion}
					majorVersion = ${browserMajorVersion}
					minorVersion = ${browserMinorVersion}
					cookies = "true"
					screenBitDepth = "2"
					javaapplets = "false"
					javascript = "false"
					vbscript = "false"
					requiredMetaTagNameValue = "HandheldFriendly"
					rendersBreaksAfterHtmlLists = "false"
					requiresUniqueHtmlCheckboxNames = "true"
					requiresAttributeColonSubstitution = "true"
					requiresNoBreakInFormatting = "true"
					supportsImageSubmit = "true"
					supportsSelectMultiple = "false"
					supportsBold = "true"
					supportsFontColor = "false"
					supportsBodyColor = "false"
					supportsDivAlign = "false"
					maximumRenderedPageSize = "6000"
					canSendMail = "false"
					isMobileDevice="true"

					<filter>
						<case match="WinCE">
							mobileDeviceModel = "Pocket PC"
							platform = "WinCE"
							inputType = "virtualKeyboard"
							defaultScreenPixelsWidth = "240"
							defaultScreenPixelsHeight = "320"
							defaultScreenCharactersWidth = "30"
							defaultScreenCharactersHeight = "14"
							isColor = "true"
							screenBitDepth = "16"
							cachesAllResponsesWithExpires = "true"

							supportsFontSize = "true"
							supportsFontName = "true"
							supportsFontColor = "true"

							supportsDivAlign = "true"
							supportsItalic = "true"
							supportsSelectMultiple = "true"
						</case>
						<case match=".*Palm.*">
							inputType = "virtualKeyboard"
							mobileDeviceManufacturer = "PalmOS-licensee"
							screenPixelsWidth = "160"
							screenPixelsHeight = "160"
							screenCharactersWidth = "36"
							screenCharactersHeight = "12"
							isColor = "false"
							tables = "false"
							supportsUncheck = "false"
							cachesAllResponsesWithExpires = "true"
						</case>
						<case match=".*RIM.*">
							inputType = "keyboard"
							mobileDeviceManufacturer = "RIM"
							isColor = "false"
							screenBitDepth = "1"
							<filter>
								<case match=".*RIM950.*">
									mobileDeviceModel = "950"
									screenCharactersWidth = "25"
									screenCharactersHeight = "5"
									screenPixelsWidth = "132"
									screenPixelsHeight = "64"
									cachesAllResponsesWithExpires = "true"
								</case>
								<case match=".*RIM850.*">
									mobileDeviceModel = "850"
									screenCharactersWidth = "25"
									screenCharactersHeight = "5"
									screenPixelsWidth = "132"
									screenPixelsHeight = "64"
								</case>
								<case match=".*RIM957.*">
									mobileDeviceModel = "957"
									screenCharactersWidth = "32"
									screenCharactersHeight = "15"
									screenPixelsWidth = "160"
									screenPixelsHeight = "160"
								</case>
								<case match=".*RIM857.*">
									mobileDeviceModel = "857"
									screenCharactersWidth = "32"
									screenCharactersHeight = "15"
									screenPixelsWidth = "160"
									screenPixelsHeight = "160"

									<filter>
										<!-- 6.2 or newer -->
										<case match="(6\.[2-9]\d*)|([7-9]\.\d+)" with="${browserMajorVersion}${browserMinorVersion}">
											canSendMail = "true"
											hidesRightAlignedMultiselectScrollbars = "true"
											requiresAttributeColonSubstitution = "false"
											requiresLeadingPageBreak = "true"
											requiresUniqueFilePathSuffix = "true"
											screenCharactersHeight = "16"
											screenCharactersWidth = "31"
											supportsUncheck = "false"
										</case>
									</filter>
								</case>
							</filter>
						</case>
					</filter>
				</case>
				
				<!-- Nokia -->
				<case match="Nokia.*">
					browser = "Nokia"
					version="0.0"
					majorversion="0"
					minorversion=".0"
					mobileDeviceManufacturer = "Nokia"
					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredImageMime = "image/vnd.wap.wbmp"
					defaultScreenCharactersWidth = "20"
					defaultScreenCharactersHeight = "4"
					defaultScreenPixelsWidth="90"
					defaultScreenPixelsHeight="40"
					screenBitDepth = "1"
					isColor = "false"
					inputType = "telephoneKeypad"
					numberOfSoftkeys = "2"
					hasBackButton = "false"
					rendersWmlDoAcceptsInline = "false"
					rendersBreaksAfterWmlInput = "true"
					requiresUniqueFilePathSuffix = "true"
					maximumRenderedPageSize = "1397"
					canInitiateVoiceCall = "true"
					requiresPhoneNumbersAsPlainText = "true"
					rendersBreaksAfterWmlAnchor = "true"
					canRenderOneventAndPrevElementsTogether = "false"
					canRenderPostBackCards = "false"
					canSendMail = "false"
					isMobileDevice="true"
					<filter>
						<case match="Opera[ /](?'version'(?'major'\d+)(?'minor'\.\d+))">
							browser=Opera
							version=${version}
							majorversion=${major}
							minorversion=${minor}					
						</case>
					</filter>
					<filter>
						<case match="Nokia\-WAP\-Toolkit\/(?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*)">
							<!-- Nokia Blueprint phone -->
							type = "Nokia WAP Toolkit"
							version = ${browserMajorVersion}.${browserMinorVersion}
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
							preferredRenderingType = "wml12"
							cookies = "true"
							mobileDeviceModel = "Blueprint Simulator"
							maximumRenderedPageSize = "65536"
							canInitiateVoiceCall = "false"
							rendersBreaksAfterWmlAnchor = "false"
						</case>
						<case match="Nokia\-MIT\-Browser\/(?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*)">
							<!-- Nokia WAP Simulator -->
							type = "Nokia Mobile Internet Toolkit"
							mobileDeviceModel = "WAP Simulator"
							version = ${browserMajorVersion}.${browserMinorVersion}
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
							canRenderOnEventAndPrevElementsTogether = "true" 
							canRenderPostBackCards = "true" 
							cookies = "true"
							hasBackButton = "true" 
							inputType = "virtualKeyboard" 
							maximumRenderedPageSize = "3584" 
							maximumSoftkeyLabelLength = "21" 
							rendersBreaksAfterWmlAnchor = "false" 
							requiresPhoneNumbersAsPlainText = "false" 
							screenBitDepth = "2" 
							screenCharactersHeight = "25" 
							screenCharactersWidth = "32" 
							screenPixelsHeight = "512" 
							screenPixelsWidth = "384" 
							supportsBold = "true" 
							supportsFontSize = "true" 
							supportsItalic = "true" 
							supportsRedirectWithCookie = "false" 
						</case>
						<case match="Nokia(?'Model'\d{4}i)|Nokia(?'Model'\d{4}I)|Nokia(?'Model'\d{4})">
							type = "Nokia ${Model}"
							mobileDeviceModel = "${Model}"
							<filter match="/2\.0 \((?'versionString'\d*\.\d*\.\d*|\d*\.\d*)|\/1\.0 \((?'versionString'\d*\.\d*\.\d*|\d*\.\d*)">
								version = ${versionString}
								<case with="${versionString}" match="(?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*).*">
									majorVersion = ${browserMajorVersion}
									minorVersion = ${browserMinorVersion}
								</case>	
							</filter>
							<case match="Nokia7110/1.0">
								type = "Nokia 7110"
								mobileDeviceModel = "7110"
								optimumPageWeight = "800"
								screenCharactersWidth="22"
								screenCharactersHeight="4"
								screenPixelsWidth="96"
								screenPixelsHeight="44"
							</case>
							<case match="Nokia6210/1.0">
								type = "Nokia 6210"
								mobileDeviceModel = "6210"
								screenCharactersWidth="22"
								screenCharactersHeight="4"
								screenPixelsWidth="96"
								screenPixelsHeight="41"
							</case>
							<case match="Nokia6250/1.0">
								type = "Nokia 6250"
								mobileDeviceModel = "6250"
								screenCharactersWidth="22"
								screenCharactersHeight="4"
								screenPixelsWidth="96"
								screenPixelsHeight="41"
							</case>
							<case match="Nokia6310/1.0">
								type = "Nokia 6310"
								mobileDeviceModel = "6310"
								canRenderOneventAndPrevElementsTogether = "true"
								canRenderPostBackCards = "true"
								cookies = "true"
								maximumRenderedPageSize = "2800"
								maximumSoftkeyLabelLength = "21"
								preferredRenderingType = "wml12"
								rendersBreaksAfterWmlAnchor = "false"
								rendersBreaksAfterWmlInput = "false"
								requiresPhoneNumbersAsPlainText = "false"
								screenBitDepth = "8"
								screenCharactersWidth = "18"
								screenPixelsHeight = "45"
								screenPixelsWidth = "92"
								screenCharactersHeight = "4"
							</case>
							<case match="Nokia8310/1.0">
								type = "Nokia 8310"
								mobileDeviceModel = "8310"
								canRenderOneventAndPrevElementsTogether = "true"
								canRenderPostBackCards = "true"
								maximumRenderedPageSize = "2700"
								maximumSoftkeyLabelLength = "21"
								preferredImageMime = "image/gif"
								preferredRenderingType = "wml12"
								rendersBreaksAfterWmlAnchor = "false"
								rendersBreaksAfterWmlInput = "false"
								requiresPhoneNumbersAsPlainText = "false"
								screenBitDepth = "8"
								screenCharactersHeight = "3"
								screenCharactersWidth = "16"
								screenPixelsHeight = "39"
								screenPixelsWidth = "78"
							</case>
							<case match="Nokia9110/1.0">
								type = "Nokia 9110"
								mobileDeviceModel = "9110i Communicator"
								screenPixelsWidth = "400"
								screenPixelsHeight = "180"
								screenCharactersWidth = "60"
								screenCharactersHeight = "8"
								screenBitDepth = "4"
								cookies = "true"
								inputType = "keyboard"
								maximumRenderedPageSize = "8192"
								rendersBreaksAfterWmlAnchor = "false"
							</case>
							<case match="Nokia-9110">
								canInitiateVoiceCall = "false"
								canSendMail = "true"
								inputType = "keyboard"
								maximumRenderedPageSize = "150000"
								mobileDeviceModel = "Nokia 9110"
								numberOfSoftkeys = "0"
								preferredImageMime = "image/jpeg"
								preferredRenderingMime = "text/html"
								preferredRenderingType = "html32"
								rendersBreaksAfterHtmlLists = "false"
								requiresAttributeColonSubstitution = "true"
								screenBitDepth = "8"
								screenCharactersHeight = "11"
								screenCharactersWidth = "57"
								screenPixelsHeight = "200"
								screenPixelsWidth = "540"
								supportsAccesskeyAttribute = "true"
								supportsBodyColor = "false"
								supportsBold = "true"
								supportsFontColor = "false"
								supportsFontSize = "true"
								supportsImageSubmit = "true"
								supportsInputStyle = "false"
								supportsItalic = "true"
								supportsSelectMultiple = "false"
								tables = "true"
							</case>
							<case match="Nokia3330/1.0">
								type = "Nokia 3330"
								mobileDeviceModel = "3330"
								hasBackButton = "true"
								screenPixelsWidth = "78"
								screenPixelsHeight = "39"
								screenCharactersWidth = "18"
								screenCharactersHeight = "3"
								maximumRenderedPageSize = "2800"
							</case>
							<case match="Nokia9210/1.0.*">
								type = "Nokia 9210"
								mobileDeviceModel = "9210 Communicator"
								requiresSpecialViewStateEncoding = "true"
								screenPixelsWidth = "490"
								screenPixelsHeight = "165"
								screenCharactersWidth = "75"
								screenCharactersHeight = "10"
								screenBitDepth = "12"
								isColor = "true"
								inputType = "keyboard"
								cookies = "true"
								maximumRenderedPageSize = "8192"
								rendersBreaksAfterWmlAnchor = "false"
								rendersBreaksAfterWmlInput = "false"
								supportsCacheControlMetaTag = "false"
								requiresNoSoftkeyLabels = "true"
							</case>
						</case>
					</filter>
				</case>
				<case match="EPOC32-WTL">
					browser = "EPOC"
					cachesAllResponsesWithExpires = "true"
					canSendMail = "false"
					cookies = "true"
					hidesRightAlignedMultiselectScrollbars = "true"
					inputType = "keyboard"
					isColor = "true"
					maximumRenderedPageSize = "150000"
					mobileDeviceManufacturer = "Nokia"
					mobileDeviceModel = "Nokia 9210"
					preferredImageMime = "image/jpeg"
					requiresAttributeColonSubstitution = "true"
					rendersBreaksAfterHtmlLists = "false"
					requiresUniqueFilePathSuffix = "true"
					screenBitDepth = "24"
					screenCharactersHeight = "10"
					screenCharactersWidth = "54"
					screenPixelsHeight = "170"
					screenPixelsWidth = "478"
					supportsBold = "true"
					supportsFontSize = "true"
					supportsImageSubmit = "true"
					supportsInputStyle = "false"
					supportsItalic = "true"
					supportsSelectMultiple = "false"
					tables = "true"
					isMobileDevice="true"
				</case>
				
				<!-- NTT DoCoMo -->
				<case match="DoCoMo/.*">
					javaapplets = "false"
					javascript = "false"
					vbscript = "false"
					tables = "false"

					browser = "i-mode"
					type = "i-mode"
					preferredRenderingType = "chtml10"
					inputType = "telephoneKeypad"
					canInitiateVoiceCall = "true"
					requiresHtmlAdaptiveErrorReporting = "true"
					cookies = "false"
					requiresOutputOptimization = "true"
					supportsAccesskeyAttribute = "true"
					supportsInputIStyle = "true"
					supportsIModeSymbols = "true"

					optimumPageWeight="700"

					defaultScreenCharactersWidth = "16"
					defaultScreenCharactersHeight = "6"
					defaultScreenPixelsWidth = "90"
					defaultScreenPixelsHeight = "70"
					screenBitDepth = "1"
					isColor = "false"
					maximumRenderedPageSize = "5120"
					isMobileDevice="true"
					supportsCharacterEntityEncoding = "false"

					<filter>
						<case match="(DoCoMo/(?'httpVersion'[^/]*?)/(?'deviceID'[^/]*)(/c(?'cacheSize'\d+))*)|(DoCoMo/(?'httpVersion'[^ ]*?) (?'deviceID'[^\x28]*)(\x28c(?'cacheSize'\d+))*)">
							<filter>
								<case match="^D\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Mitsubishi"
								</case>
								<case match="^ER\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Ericsson"
								</case>
								<case match="^F\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Fujitsu"
								</case>
								<case match="^N\d+" with="${deviceID}">
									mobileDeviceManufacturer = "NEC"
								</case>
								<case match="^NM\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Nokia"
								</case>
								<case match="^P\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
								</case>
								<case match="^SH\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Sharp"
								</case>
								<case match="^SO\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
								</case>
								<case match="^R\d+" with="${deviceID}">
									mobileDeviceManufacturer = "JRC"
								</case>
								<case match="^KO\d+" with="${deviceID}">
									mobileDeviceManufacturer = "Kokusai"
								</case>
							</filter>
							<filter>
								mobileDeviceModel = ${deviceID}

								<case match="D501i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "72"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="F501i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "112"
									screenPixelsHeight = "84"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="N501i" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "118"
									screenPixelsHeight = "128"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="P501i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "96"
									screenPixelsHeight = "120"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="D502i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "90"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="F502i$" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "91"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N502i$" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "118"
									screenPixelsHeight = "128"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="P502i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "96"
									screenPixelsHeight = "117"
									screenBitDepth = "2"
									isColor = "false"
									canRenderEmptySelects = "false"
								</case>
								<case match="NM502i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "111"
									screenPixelsHeight = "106"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="SO502i$" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "120"
									screenPixelsHeight = "120"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="F502it" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "91"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N502it" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "118"
									screenPixelsHeight = "128"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="SO502iWM" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "120"
									screenPixelsHeight = "113"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N821i" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "119"
									screenPixelsHeight = "128"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="P821i" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									maximumRenderedPageSize = "5000"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenCharactersHeight = "10"
									screenCharactersWidth = "20"
									screenPixelsHeight = "128"
									screenPixelsWidth = "118"
									screenBitDepth = "2"
									supportsBodyColor = "false"
									supportsFontColor = "false"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="D209i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "90"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="ER209i" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "6"
									screenPixelsWidth = "120"
									screenPixelsHeight = "72"
									screenBitDepth = "1"
									isColor = "false"
								</case>
								<case match="F209i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "91"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="KO209i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "96"
									screenPixelsHeight = "96"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N209i" with="${deviceID}">
									screenCharactersWidth = "18"
									screenCharactersHeight = "6"
									screenPixelsWidth = "108"
									screenPixelsHeight = "82"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="P209i$" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "87"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="P209iS" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "87"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="R209i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "72"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="R691i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "72"
									screenBitDepth = "2"
									isColor = "false"
								</case>
								<case match="F503i$" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "120"
									screenPixelsHeight = "130"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="F503iS" with="${deviceID}">
									screenCharactersWidth = "24"
									screenCharactersHeight = "12"
									screenPixelsWidth = "120"
									screenPixelsHeight = "130"
									screenBitDepth = "12"
									isColor = "true"
								</case>
								<case match="D503i$" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "132"
									screenPixelsHeight = "126"
									screenBitDepth = "12"
									isColor = "true"
								</case>
								<case match="D503iS$" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "7"
									screenCharactersWidth = "16"
									screenPixelsHeight = "126"
									screenPixelsWidth = "132"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="D210i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "96"
									screenPixelsHeight = "91"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="F210i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "96"
									screenPixelsHeight = "113"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N210i" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "8"
									screenPixelsWidth = "118"
									screenPixelsHeight = "113"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="N2001" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "10"
									screenCharactersWidth = "20"
									screenPixelsHeight = "128"
									screenPixelsWidth = "118"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="D211i" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "7"
									screenCharactersWidth = "16"
									screenPixelsHeight = "91"
									screenPixelsWidth = "100"
								</case>
								<case match="N211i" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "10"
									screenCharactersWidth = "20"
									screenPixelsHeight = "128"
									screenPixelsWidth = "118"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="P210i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "91"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="KO210i" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "8"
									screenPixelsWidth = "96"
									screenPixelsHeight = "96"
									screenBitDepth = "8"
									isColor = "true"
								</case>
								<case match="P2101V" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "9"
									screenPixelsWidth = "163"
									screenPixelsHeight = "182"
									screenBitDepth = "18"
									isColor = "true"
								</case>
								<case match="F211i$" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "7"
									screenCharactersWidth = "16"
									screenPixelsHeight = "113"
									screenPixelsWidth = "96"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="F671i$" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "8"
									screenCharactersHeight = "9"
									screenCharactersWidth = "20"
									screenPixelsHeight = "126"
									screenPixelsWidth = "120"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="N503iS" with="${deviceID}">
									isColor = "true"
									hidesRightAlignedMultiselectScrollbars = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenCharactersWidth = "20"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
									screenBitDepth = "12"
									screenCharactersHeight = "10"
									screenPixelsHeight = "128"
									screenPixelsWidth = "118"
								</case>
								<case match="N503i$" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "118"
									screenPixelsHeight = "128"
									screenBitDepth = "12"
									isColor = "true"
									hidesRightAlignedMultiselectScrollbars = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="SO503i$" with="${deviceID}">
									screenCharactersWidth = "16"
									screenCharactersHeight = "7"
									screenPixelsWidth = "120"
									screenPixelsHeight = "113"
									screenBitDepth = "16"
									isColor = "true"
								</case>
								<case match="P503iS" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "8"
									screenPixelsWidth = "120"
									screenPixelsHeight = "130"
									screenBitDepth = "8"
									isColor = "true"
									canRenderEmptySelects = "false"
									hidesRightAlignedMultiselectScrollbars = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									supportsFontSize = "true"
									supportsImageSubmit = "true"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="P503i$" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "8"
									screenPixelsWidth = "120"
									screenPixelsHeight = "130"
									screenBitDepth = "8"
									isColor = "true"
									canRenderEmptySelects = "false"
									hidesRightAlignedMultiselectScrollbars = "true"
									rendersBreaksAfterHtmlLists = "false"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									supportsFontSize = "true"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="N503i$" with="${deviceID}">
									screenCharactersWidth = "20"
									screenCharactersHeight = "10"
									screenPixelsWidth = "118"
									screenPixelsHeight = "128"
									screenBitDepth = "12"
									isColor = "true"
									hidesRightAlignedMultiselectScrollbars = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									requiresLeadingPageBreak = "true"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="SO210i$" with="${deviceID}">
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenCharactersWidth = "17"
									screenCharactersHeight = "7"
									screenPixelsWidth = "120"
									screenPixelsHeight = "113"
									screenBitDepth = "8"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
								<case match="SO503iS" with="${deviceID}">
									supportsRedirectWithCookie = "false"
									hidesRightAlignedMultiselectScrollbars = "true"
									isColor = "true"
									requiresAttributeColonSubstitution = "true"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenBitDepth = "16"
									screenCharactersHeight = "7"
									screenCharactersWidth = "17"
									screenPixelsHeight = "113"
									screenPixelsWidth = "120"
									supportsInputStyle = "true"
								</case>
								<case match="SH821i" with="${deviceID}">
									canRenderEmptySelects = "false"
									requiresHtmlAdaptiveErrorReporting = "false"
									screenCharactersWidth = "16"
									screenCharactersHeight = "6"
									screenPixelsWidth = "96"
									screenPixelsHeight = "78"
									screenBitDepth = "8"
									isColor = "true"
									supportsInputStyle = "true"
									supportsRedirectWithCookie = "false"
								</case>
							</filter>
							<filter match="\d+" with="${cacheSize}">
								maximumRenderedPageSize = ${cacheSize}000
							</filter>
						</case>
					</filter>
				</case>
				
				<!-- Xiino -->
				<case match="Xiino/.*">
					browser = "Xiino"
					canRenderEmptySelects = "false"
					canSendMail = "false"
					hidesRightAlignedMultiselectScrollbars = "true"
					inputType = "virtualKeyboard"
					isColor = "true"
					maximumRenderedPageSize = "65000"
					requiresAttributeColonSubstitution = "true"
					screenBitDepth = "8"
					screenCharactersHeight = "12"
					screenCharactersWidth = "30"
					screenPixelsHeight = "320"
					screenPixelsWidth = "320"
					supportsBold = "true"
					supportsFontSize = "true"
					supportsInputStyle = "false"
					isMobileDevice="true"
					supportsCharacterEntityEncoding = "false"
				</case>
				
				<!-- Casio -->
				<case match="CASSIOPEIA BE">
					browser = "CASSIOPEIA"
					cachesAllResponsesWithExpires = "true"
					hidesRightAlignedMultiselectScrollbars = "true"
					inputType = "virtualKeyboard"
					isColor = "true"
					maximumRenderedPageSize = "65000"
					mobileDeviceManufacturer = "Casio"
					mobileDeviceModel = "Casio BE-500"
					preferredImageMime = "image/gif"
					requiresContentTypeMetaTag = "true"
					requiresLeadingPageBreak = "true"
					requiresNoBreakInFormatting = "true"
					requiresUniqueFilePathSuffix = "true"
					screenBitDepth = "24"
					screenCharactersHeight = "50"
					screenCharactersWidth = "38"
					screenPixelsHeight = "320"
					screenPixelsWidth = "240"
					supportsCss = "false"
					supportsImageSubmit = "false"
					supportsInputStyle = "false"
					supportsItalic = "false"
					isMobileDevice="true"
					supportsCharacterEntityEncoding = "false"
				</case>
				
				<!-- Panasonic -->
				<case match="Panasonic-(?'deviceModel'.*)">
					browser = "Panasonic"
					canInitiateVoiceCall = "true"
					canSendMail = "false"
					maximumSoftkeyLabelLength = "16"
					mobileDeviceManufacturer = "Panasonic"
					mobileDeviceModel = ${deviceModel}
					numberOfSoftkeys = "2"
					preferredImageMime = "image/vnd.wap.wbmp"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredRenderingType = "wml12"
					rendersWmlDoAcceptsInline = "false"
					requiresUniqueFilePathSuffix = "true"
					screenCharactersHeight = "10"
					screenCharactersWidth = "16"
					screenPixelsHeight = "130"
					screenPixelsWidth = "100"
					supportsCacheControlMetaTag = "false"
					isMobileDevice="true"
				</case>
				
				<!-- J-Phone -->
				<case match="J-PHONE/.*">
					browser = "J-Phone"
					type = "J-Phone"
					javaapplets = "false"
					javascript = "false"
					vbscript = "false"
					tables = "true"

					preferredRenderingType = "html32"
					preferredImageMime = "image/png"
					canInitiateVoiceCall = "true"
					supportsAccesskeyAttribute = "true"
					supportsCharacterEntityEncoding = "false"

					defaultScreenCharactersWidth = "16"
					defaultScreenCharactersHeight = "7"
					defaultScreenPixelsWidth = "96"
					defaultScreenPixelsHeight = "84"
					defaultCharacterWidth = "12"
					defaultCharacterHeight = "12"
					screenBitDepth = "2"
					isColor = "false"
					
					supportsBold = "false"
					supportsItalic = "false"
					supportsFontSize = "false"
					supportsFontName = "false"

					supportsFontColor = "true"
					supportsBodyColor = "true"
					supportsDivAlign = "true"
					supportsDivNoWrap = "true"

					requiresHtmlAdaptiveErrorReporting = "true"
					requiresOutputOptimization = "true"
					supportsInputMode = "true"
					supportsJPhoneSymbols = "true"
					supportsJPhoneMultiMediaAttributes = "true"
					supportsQueryStringInFormAction = "false"
					maximumRenderedPageSize = "6000"

					optimumPageWeight="700"

					requiresContentTypeMetaTag = "true"
					isMobileDevice="true"

					<filter>
						<case match="J-PHONE/(?'majorVersion'\d)(?'minorVersion'\.\d)/(?'deviceModel'.*)">
							majorVersion = ${majorVersion}
							minorVersion = ${minorVersion}
							version = ${majorVersion}${minorVersion}

							mobileDeviceModel = ${deviceModel}

							<filter>
								<case match="^J-D\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Mitsubishi"
								</case>
								<case match="J-DN\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Denso"
								</case>
								<case match="J-K\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Kenwood"
								</case>
								<case match="J-N\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "NEC"
								</case>
								<case match="J-P\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Panasonic"
								</case>
								<case match="J-PE\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Pioneer"
								</case>
								<case match="J-SA\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Sanyo"
								</case>
								<case match="J-SH\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Sharp"
									<case match="J-SH07$" with="${deviceModel}">
										canRenderEmptySelects = "false"
										maximumRenderedPageSize = "12000"
										requiresHtmlAdaptiveErrorReporting = "false"
										screenCharactersHeight = "10"
										screenCharactersWidth = "20"
										supportsDivNoWrap = "false"
										supportsInputStyle = "false"
										supportsRedirectWithCookie = "false"
										requiresLeadingPageBreak = "true"
									</case>
								</case>
								<case match="J-T\d+" with="${deviceModel}">
									mobileDeviceManufacturer = "Toshiba"
									<filter>
										<case match="J-T06_a" with="${deviceModel}">
											maximumRenderedPageSize = "12000"
											mobileDeviceModel = "J-T06"
											requiresHtmlAdaptiveErrorReporting = "false"
											screenCharactersHeight = "8"
											screenCharactersWidth = "20"
											supportsDivNoWrap = "false"
											supportsInputStyle = "false"
											supportsRedirectWithCookie = "false"
										</case>
									</filter>
								</case>
							</filter>
						</case>
					</filter>
				</case>
				
				<!-- Palm MyPalm Browser on Palm VII -->
				<case match="Mozilla/2\.0 \(compatible; Elaine/(?'gatewayMajorVersion'\w*)(?'gatewayMinorVersion'\.\w*)\)">
					inputType = "virtualKeyboard"
					mobileDeviceManufacturer = "PalmOS-licensee"
					type = "MyPalm"
					browser = "MyPalm"
					gatewayVersion = ${gatewayMajorVersion}${gatewayMinorVersion}
					gatewayMajorVersion = ${gatewayMajorVersion}
					gatewayMinorVersion = ${gatewayMinorVersion}
					cookies = "false"
					javaapplets = "false"
					javascript = "false"
					vbscript = "false"
					tables = "false"
					hidesRightAlignedMultiselectScrollbars = "true"
					requiresHtmlAdaptiveErrorReporting = "true"
					requiredMetaTagNameValue = "PalmComputingPlatform"
					screenPixelsWidth = "160"
					screenPixelsHeight = "160"
					screenCharactersWidth = "36"
					screenCharactersHeight = "12"
					screenBitDepth = 2
					isColor = "false"
					supportsBold = "true"
					supportsItalic = "true"
					supportsFontSize = "true"
					supportsFontColor = "false"
					supportsBodyColor = "false"
					isMobileDevice="true"
					supportsEmptyStringInCookieValue = "false"

					<filter>
						<case match="^1\.0$" with="${gatewayMajorVersion}${gatewayMinorVersion}">
							type = "EarthLink"
							browser = "EarthLink"
							canSendMail = "false"
							cookies = "true"
							hidesRightAlignedMultiselectScrollbars = "false"
							maximumRenderedPageSize = "7000"
							preferredImageMime = "image/vnd.wap.wbmp"
							requiresUniqueFilePathSuffix = "true"
							requiresUniqueHtmlCheckboxNames = "true"
							requiresUniqueHtmlInputNames = "true"
							screenBitDepth = "4"
							screenCharactersHeight = "13"
							screenCharactersWidth = "30"
							supportsFontSize = "false"
							tables = "true"
						</case>
					</filter>
				</case>
				
				<!-- Handspring Blazer -->
				<case match="Blazer">
					browser = "Handspring Blazer"
					type = "Handspring Blazer"
					mobileDeviceManufacturer = "PalmOS-licensee"
					preferredRenderingType = "html32"
					preferredRenderingMime = "text/html"
					preferredImageMime = "image/gif"
					cookies = "true"
					inputType = "virtualKeyboard"
					screenPixelsWidth = "160"
					screenPixelsHeight = "160"
					screenCharactersWidth = "36"
					screenCharactersHeight = "12"
					isColor = "false"
					supportsBold = "true"
					supportsImageSubmit = "true"
					supportsItalic = "true"
					isMobileDevice="true"

					<filter match="UPG1 UP/\S* \(compatible; Blazer (?'browserMajorVersion'\d+)(?'browserMinorVersion'\.\d+)">
						majorVersion = ${browserMajorVersion}
						minorVersion = ${browserMinorVersion}
						version = ${browserMajorVersion}${browserMinorVersion}
					</filter>
				</case>

				<!-- EudoraWeb -->
				<case match="EudoraWeb (?'version'[^;\s]+)">
					browser = "EudoraWeb"
					type = "EudoraWeb"
					version = ${version}
					<filter>
						<case match="(?'browserMajorVersion'\d+)(?'browserMinorVersion'\.\d+)" with="${version}">
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
						</case>
					</filter>

					cookies = "true"
					javaapplets = "false"
					javascript = "false"
					vbscript = "false"
					tables = "false"
					canInitiateVoiceCall = "false"
					maximumRenderedPageSize = "30000"

					screenPixelsWidth = "160"
					screenPixelsHeight = "160"
					screenCharactersWidth = "36"
					screenCharactersHeight = "12"

					inputType = "virtualKeyboard"

					mobileDeviceManufacturer = "PalmOS-licensee"

					supportsBold = "true"
					supportsItalic = "true"
					isMobileDevice="true"

					<filter>
						<case match="pdQbrowser">
							mobileDeviceManufacturer = "Kyocera"
							mobileDeviceModel = "QCP 6035"
							canInitiateVoiceCall = "true"
						</case>
						<!-- version equal to or newer than 2.1 -->
						<case match="([3-9]\.\d+)|(2\.[1-9]\d*)" with="${version}">
							canInitiateVoiceCall = "true"
							hidesRightAlignedMultiselectScrollbars = "true"
							requiresAttributeColonSubstitution = "true"
							requiresUniqueFilePathSuffix = "true"
							requiresUniqueHtmlCheckboxNames = "true"
							screenCharactersHeight = "11"
							screenCharactersWidth = "30"
							supportsBodyColor = "false"
							supportsFontColor = "false"
							supportsFontSize = "true"
							tables = "true"
						</case>
					</filter>
				</case>
				
				<!-- Palmscape -->
				<case match="Palmscape/.*\(v. (?'version'[^;]+);">
					browser = "Palmscape"
					type = "Palmscape"
					mobileDeviceManufacturer = "PalmOS-licensee"
					isMobileDevice="true"
					supportsCharacterEntityEncoding = "false"

					<filter>
						version = ${version}
						<case match="(?'browserMajorVersion'\d+)(?'browserMinorVersion'\.\d+)" with="${version}">
							majorVersion = ${browserMajorVersion}
							minorVersion = ${browserMinorVersion}
						</case>
					</filter>

					screenPixelsWidth = "160"
					screenPixelsHeight = "160"
					screenCharactersWidth = "36"
					screenCharactersHeight = "12"

					inputType = "virtualKeyboard"
				</case>
				
				<!-- AU-System Demo WAP Browser -->
				<case match="AUS PALM WAPPER">
					browser = "AU-System Demo WAP Browser"
					type = "AU-System"
					mobileDeviceManufacturer = "PalmOS-licensee"

					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					preferredImageMime = "image/vnd.wap.wbmp"

					screenPixelsWidth = "160"
					screenPixelsHeight = "160"
					screenCharactersWidth = "36"
					screenCharactersHeight = "12"

					inputType = "virtualKeyboard"
					canSendMail = "false"
					requiresUniqueFilePathSuffix = "true"
					optimumPageWeight = "900"
					isMobileDevice="true"
				</case>
				
				<!-- Sharp PDA Browser -->
				<case match="sharp pda browser/(?'browserMajorVersion'\d+)(?'browserMinorVersion'\.\d+)">
					browser = "Sharp PDA Browser"
					type = "Sharp PDA Browser"
					mobileDeviceManufacturer = "Sharp"

					majorVersion = ${browserMajorVersion}
					minorVersion = ${browserMinorVersion}
					version = ${browserMajorVersion}${browserMinorVersion}
					isMobileDevice="true"
					supportsCharacterEntityEncoding = "false"

					<filter>
						<case match="MI-E1">
							mobileDeviceModel = "Zaurus MI-E1"
							screenPixelsWidth = "320"
							screenPixelsHeight = "240"
							defaultCharacterWidth = "7"
							defaultCharacterHeight = "18"
							screenBitDepth = "16"
							isColor = "true"
							inputType = "keyboard"
							cookies = "true"
							frames = "true"
							supportsFontSize = "true"
							tables = "true"
							supportsImageSubmit = "true"
							javascript = "false"
							requiresDBCSCharacter = "true"
						</case>
						<case match="MI-E21">
							cachesAllResponsesWithExpires = "true"
							canRenderEmptySelects = "false"
							hidesRightAlignedMultiselectScrollbars = "true"
							inputType = "keyboard"
							isColor = "true"
							maximumRenderedPageSize = "60000"
							mobileDeviceModel = "Zaurus MI-E21"
							requiresAttributeColonSubstitution = "true"
							requiresDBCSCharacter = "true"
							screenBitDepth = "16"
							screenCharactersHeight = "18"
							screenCharactersWidth = "40"
							screenPixelsHeight = "320"
							screenPixelsWidth = "240"
							supportsFontSize = "true"
							supportsInputStyle = "false"
							tables = "true"
						</case>
					</filter>
				</case>
				
				<!-- OpenWave Browsers -->
				<case match="(UP\.Browser)|(UP/)">
					browser = "Phone.com"
					inputType = "telephoneKeypad"
					canInitiateVoiceCall = "true"
					canSendMail = "false"
					cookies = "true"
					preferredRenderingType = "wml11"
					preferredRenderingMime = "text/vnd.wap.wml"
					rendersWmlDoAcceptsInline = "false"
					rendersWmlSelectsAsMenuCards = "true"
					rendersBreakBeforeWmlSelectAndInput = "true"
					supportsRedirectWithCookie = "false"

					optimumPageWeight = "700"
					isMobileDevice="true"

					<filter match="^$" with="%{x_up_devcap_screenchars}">
						defaultScreenCharactersWidth = "15"
						defaultScreenCharactersHeight = "4"
					</filter>
					<filter match="^$" with="%{x_up_devcap_screenpixels}">
						defaultScreenPixelsWidth = "120"
						defaultScreenPixelsHeight = "40"
					</filter>
					<filter match="^$" with="%{x_up_devcap_screendepth}">
						screenBitDepth = "1"
					</filter>
					<filter match="^$" with="%{x_up_devcap_iscolor}">
						isColor = "false"
					</filter>
					<filter match="^$" with="%{x_up_devcap_numsoftkeys}">
						numberOfSoftkeys = 2
					</filter>
					<filter match="^$" with="%{x_up_devcap_max_pdu}">
						maximumRenderedPageSize = 1492
					</filter>
					
					<!-- Phone.com 3.x, 4.x and 5.x -->
					<filter>
						<case match="((?'deviceID'\S*) UP/\S* UP\.Browser/(?'version'\S*))|((?'deviceID'\S*)/\S* UP(\.Browser)*/(?'version'\S*))|(UP\.Browser/(?'version'\S*)-(?'deviceID'\S*))|((?'deviceID'\S*) UP\.Browser/(?'version'\S*))|((?'deviceID'\S*)/(?'DeviceVersion'\S*) UP/(?'version'\S*))|((?'deviceID'\S*)/(?'DeviceVersion'\S*) UP.Browser/(?'version'\S*))">
							<filter with="${version}" match="(?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*).*">
								majorVersion = ${browserMajorVersion}
								minorVersion = ${browserMinorVersion}
							</filter>
							<filter>
								<case match="[45]" with="%{majorVersion}">
									type = "Phone.com %{majorVersion}.x Browser"
									preferredImageMime = "image/vnd.wap.wbmp"
									requiresUniqueFilePathSuffix = "true"
								</case>
								<case match="3" with="%{majorVersion}">
									type = "Phone.com 3.x Browser"
									preferredImageMime = "image/bmp"
									requiresUrlEncodedPostfieldValues = "true"
									requiresUniqueFilePathSuffix = "true"
									canRenderInputAndSelectElementsTogether = "false"
								</case>
							</filter>

							version = %{majorVersion}%{minorVersion}

							<filter match="UP\.Link/(?'gatewayVersion'\S*)">
								<case with="${gatewayVersion}" match="(?'gatewayMajorVersion'\d*)(?'gatewayMinorVersion'\.\d*).*">
									gatewayVersion = UP.Link/${gatewayVersion}
									gatewayMajorVersion = ${gatewayMajorVersion}
									gatewayMinorVersion = ${gatewayMinorVersion}
								</case>
							</filter>
							<filter>
								<case match="Alcatel-BE4" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									mobileDeviceModel = "301"
								</case>
								<case match="Alcatel-BE5" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									mobileDeviceModel = "501, 701"
									<filter>
										<case match="2\.0">
											maximumRenderedPageSize = "1900"
											maximumSoftkeyLabelLength = "0"
											mobileDeviceModel = "Alcatel One Touch 501"
											numberOfSoftkeys = "10"
											rendersWmlDoAcceptsInline = "true"
											requiresNoSoftkeyLabels = "true"
											screenBitDepth = "0"
											screenCharactersHeight = "6"
											screenCharactersWidth = "14"
											screenPixelsHeight = "60"
											screenPixelsWidth = "91"
											supportsBold = "true"
											tables = "true"
										</case>
									</filter>
								</case>
								<case match="Alcatel-BE3" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									mobileDeviceModel = "OneTouchDB@"
								</case>
								<case match="Alcatel-BF3" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									maximumRenderedPageSize = "1900"
									maximumSoftkeyLabelLength = "13"
									mobileDeviceModel = "Alcatel One Touch 311"
									numberOfSoftkeys = "10"
									rendersWmlDoAcceptsInline = "true"
									screenCharactersHeight = "5"
									screenCharactersWidth = "11"
									screenPixelsHeight = "65"
									screenPixelsWidth = "96"
								</case>
								<case match="Alcatel-BF4" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									maximumRenderedPageSize = "1900"
									maximumSoftkeyLabelLength = "13"
									mobileDeviceModel = "Alcatel One Touch 511"
									numberOfSoftkeys = "10"
									rendersWmlDoAcceptsInline = "true"
									screenCharactersHeight = "5"
									screenCharactersWidth = "11"
									screenPixelsHeight = "60"
									screenPixelsWidth = "89"
								</case>
								<case match="MOT-CB" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport P7389"
									numberOfSoftkeys = "1"
								</case>
								<case match="MOT-D8" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport 250/P7689"
								</case>
								<case match="MOT-CF" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Accompli 6188"
								</case>
								<case match="MOT-F6" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Accompli 008/6288"
									inputType = "virtualKeyboard"
								</case>
								<case match="MOT-BC" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Accompli 009"
									inputType = "keyboard"
								</case>
								<case match="MOT-DC" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "V3682, V50"
								</case>
								<case match="MOT-PAN-C" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport 270c"
								</case>
								<case match="MOT-C4" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "V2288, V2282"
									supportsCacheControlMetaTag = "false"
									canRenderMixedSelects = "false"
								</case>
								<case match="MCCA" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport 8767/ST7868"
								</case>
								<case match="MOT-2000" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "V60c"
								</case>
								<case match="MOT-P2K-C" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "V120c"
								</case>
								<case match="MOT-AF" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport 260/P7382i/P7389i"
									screenCharactersHeight = "4"

									<filter>
										<case match="4\.1\.8" with="${DeviceVersion}">
											mobileDeviceModel = "Timeport 260"
											cachesAllResponsesWithExpires = "true"
											maximumRenderedPageSize = "1900"
											maximumSoftkeyLabelLength = "5"
											screenBitDepth = "24"
											screenCharactersWidth = "16"
											screenPixelsHeight = "64"
											screenPixelsWidth = "96"
											supportsCacheControlMetaTag = "false"
											tables = "true"
										</case>
									</filter>
								</case>
								<case match="MOT-C2" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "V100, V.Box"
									inputType = "keyboard"
								</case>
								<case match="Philips-Xenium9@9" with="${deviceID}">
									mobileDeviceManufacturer = "Philips"
									mobileDeviceModel = "Xenium 9@9 TCD 998"
								</case>
								<case match="Sagem-959" with="${deviceID}">
									mobileDeviceManufacturer = "Sagem"
									mobileDeviceModel = "MW-959"
								</case>
								<case match="SAMSUNG-SGH-A300" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SGH-A300"
									maximumRenderedPageSize = "2000"
									maximumSoftkeyLabelLength = "19"
									screenCharactersHeight = "5"
									screenCharactersWidth = "13"
									screenPixelsHeight = "128"
									screenPixelsWidth = "128"
								</case>
								<case match="Samsung-SGH-N100/" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SGH-N100"
								</case>
								<case match="Sanyo-C304SA/" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C304SA"
								</case>
								<case match="SY11" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C304SA"
								</case>
								<case match="ST12" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C411ST"
								</case>
								<case match="SY14" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C412SA"
								</case>
								<case match="SIE-S40" with="${deviceID}">
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "S40, S42"
									maximumRenderedPageSize = "2048"
									cachesAllResponsesWithExpires = "true"
								</case>
								<case match="SIE-SL45" with="${deviceID}">
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "SL-45"
								</case>
								<case match="SIE-S35" with="${deviceID}">
									canRenderMixedSelects = "false"
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "S35"
								</case>
								<case match="SIE-ME45" with="${deviceID}">
									maximumRenderedPageSize = "2800"
									maximumSoftkeyLabelLength = "7"
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "ME45"
									preferredImageMime = "image/vnd.wap.wbmp"
									preferredRenderingType = "wml12"
									rendersBreakBeforeWmlSelectAndInput = "false"
									requiresUniqueFilePathSuffix = "true"
									screenCharactersHeight = "5"
									screenCharactersWidth = "16"
									screenPixelsHeight = "65"
									screenPixelsWidth = "101"
									supportsBold = "true"
									supportsFontSize = "true"
								</case>
								<case match="GM832" with="${deviceID}">
									mobileDeviceManufacturer = "Telit"
									mobileDeviceModel = "GM832"
								</case>
								<case match="Telit-GM910i" with="${deviceID}">
									mobileDeviceManufacturer = "Telit"
									mobileDeviceModel = "GM910i"
								</case>
								<case match="MOT-32" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "i85s, i50sx"
								</case>
								<case match="MOT-28" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "i700+, i1000+"
								</case>
								<case match="D2" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "D2"
								</case>
								<case match="P-PAT" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "P-PAT"
								</case>
								<case match="ALAZ" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									mobileDeviceModel = "OneTouch"
								</case>
								<case match="AUDIOVOX-CDM9100" with="${deviceID}">
									mobileDeviceManufacturer = "Audiovox"
									mobileDeviceModel = "CDM-9100"
								</case>
								<case match="HD-MMD1010" with="${deviceID}">
									mobileDeviceManufacturer = "Audiovox"
									mobileDeviceModel = "CDM-135"
								</case>
								<case match="TSCA" with="${deviceID}">
									mobileDeviceManufacturer = "Audiovox"
									mobileDeviceModel = "CDM-9000"
								</case>
								<case match="CA11" with="${deviceID}">
									mobileDeviceManufacturer = "Casio"
									mobileDeviceModel = "C303CA"
								</case>
								<case match="CA12" with="${deviceID}">
									mobileDeviceManufacturer = "Casio"
									mobileDeviceModel = "C311CA"
								</case>
								<case match="DN01" with="${deviceID}">
									mobileDeviceManufacturer = "Casio"
									mobileDeviceModel = "C202DE"
								</case>
								<case match="CA13" with="${deviceID}">
									mobileDeviceManufacturer = "Casio"
									mobileDeviceModel = "C409CA"
								</case>
								<case match="DN11" with="${deviceID}">
									mobileDeviceManufacturer = "Denso"
									mobileDeviceModel = "C402DE"
								</case>
								<case match="DS15" with="${deviceID}">
									mobileDeviceManufacturer = "Denso"
									mobileDeviceModel = "Touchpoint DS15"
								</case>
								<case match="DS1[34]" with="${deviceID}">
									mobileDeviceManufacturer = "Denso"
									mobileDeviceModel = "TouchPoint TP2200"
									screenCharactersWidth = 15
									screenCharactersHeight = 5
								</case>
								<case match="DS12" with="${deviceID}">
									mobileDeviceManufacturer = "Denso"
									mobileDeviceModel = "TouchPoint TP120"
								</case>
								<case match="DS10" with="${deviceID}">
									mobileDeviceManufacturer = "Denso"
									mobileDeviceModel = "Eagle 10"
								</case>
								<case match="ERK0" with="${deviceID}">
									mobileDeviceManufacturer = "Ericsson"
									mobileDeviceModel = "R280"
								</case>
								<case match="HI01" with="${deviceID}">
									mobileDeviceManufacturer = "Hitachi"
									mobileDeviceModel = "C201H"
								</case>
								<case match="HW01" with="${deviceID}">
									mobileDeviceManufacturer = "Hanwha"
									mobileDeviceModel = "S71"
								</case>
								<case match="HI11" with="${deviceID}">
									mobileDeviceManufacturer = "Hitachi"
									mobileDeviceModel = "C302H"
								</case>
								<case match="HI12" with="${deviceID}">
									mobileDeviceManufacturer = "Hitachi"
									mobileDeviceModel = "C309H"
								</case>
								<case match="HI13" with="${deviceID}">
									mobileDeviceManufacturer = "Hitachi"
									mobileDeviceModel = "C407H"
								</case>
								<case match="HI14" with="${deviceID}">
									mobileDeviceManufacturer = "Hitachi"
									mobileDeviceModel = "C451H"
								</case>
								<case match="HD03" with="${deviceID}">
									mobileDeviceManufacturer = "Hyundai"
									mobileDeviceModel = "HGC-R201"
								</case>
								<case match="HD02" with="${deviceID}">
									mobileDeviceManufacturer = "Hyundai"
									mobileDeviceModel = "P-21"
								</case>
								<case match="KCI1" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "702G"
								</case>
								<case match="KCI2" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "703G"
								</case>
								<case match="KC11" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "C307K"
								</case>
								<case match="KCT1" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "TK01"
								</case>
								<case match="KCT2" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "TK02"
								</case>
								<case match="KCT4" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "TK03"
								</case>
								<case match="KCT5" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "TK04"
								</case>
								<case match="KCT6" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "TK05"
								</case>
								<case match="KCC1" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "D303K"
								</case>
								<case match="KCC2" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "D304K"
								</case>
								<case match="QC06" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "QCP2035/2037"
								</case>
								<case match="QC07" with="${deviceID}">
									mobileDeviceManufacturer = "Kyocera"
									mobileDeviceModel = "QCP3035"
								</case>
								<case match="LG22" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "D-512"
								</case>
								<case match="LG05" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "DM-110"
								</case>
								<case match="LG21" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "TM-510"
									canRenderPostBackCards = "false"
								</case>
								<case match="LG13" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "DM-510"
								</case>
								<case match="LG11" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "P-100"
								</case>
								<case match="LG07" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGC-875F"
								</case>
								<case match="LG03" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGP-6800F"
								</case>
								<case match="LG04" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGP-7800F"
								</case>
								<case match="LG09" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGC-840F"
								</case>
								<case match="LG02" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGI-2100"
								</case>
								<case match="LG01" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "LGP-7300F"
								</case>
								<case match="LG10" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "SD-500"
								</case>
								<case match="LG06" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "Touchpoint TP1100"
								</case>
								<case match="LG08" with="${deviceID}">
									mobileDeviceManufacturer = "LG"
									mobileDeviceModel = "Touchpoint TP3000"
									inputType = "virtualKeyboard"
									canRenderAfterInputOrSelectElement = "false"
								</case>
								<case match="T250" with="${deviceID}">
									mobileDeviceManufacturer = "Mitsubishi"
									mobileDeviceModel = "T250"
								</case>
								<case match="MO01" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "i500+, i700+, i1000+"
								</case>
								<case match="MO02" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "i2000+"
								</case>
								<case match="MC01" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "StarTac ST786x, Talkabout T816x, Timeport P816x"
								</case>
								<case match="MCCC" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Talkabout V2267"
								</case>
								<case match="MCC9" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Talkabout V8162"
								</case>
								<case match="NK00" with="${deviceID}">
									mobileDeviceManufacturer = "Nokia"
									mobileDeviceModel = "3285/6180/6185"
									<!-- The following data is only likely to be valid for the 3285 -->
									maximumRenderedPageSize = "2252"
									maximumSoftkeyLabelLength = "6"
									mobileDeviceModel = "nokia 3285"
									preferredImageMime = "image/bmp"
									rendersWmlDoAcceptsInline = "true"
									supportsBold = "true"
									supportsRedirectWithCookie = "true"
									screenCharactersWidth = "15"
								</case>
								<case match="MAI[12]" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "704G"
								</case>
								<case match="MA1[12]" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "C308P"
								</case>
								<case match="MA13" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "C408P"
								</case>
								<case match="MAC1" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "D305P"
								</case>
								<case match="MAT1" with="${deviceID}">
									mobileDeviceManufacturer = "Panasonic"
									mobileDeviceModel = "TP01"
								</case>
								<case match="SC01" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-3500"
								</case>
								<case match="SC03" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-6100"
								</case>
								<case match="SC02" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-8500"
								</case>
								<case match="SC04" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-850"
								</case>
								<case match="SG08" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SGH-800"
								</case>
								<case match="SC13" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "Uproar M100"
								</case>
								<case match="SC11" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-N105"
								</case>
								<case match="SEC01" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-U03"
								</case>
								<case match="SC10" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "SCH-U02"
								</case>
								<case match="SY11" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C304A"
								</case>
								<case match="SY12" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C401SA"
								</case>
								<case match="ST11" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C403ST"
								</case>
								<case match="SY13" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "C405SA"
								</case>
								<case match="SYC1" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "D301SA"
								</case>
								<case match="SY01" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "SCP-4000"
								</case>
								<case match="SYT1" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "TS01"
								</case>
								<case match="SYT2" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "TS02"
								</case>
								<case match="SY02" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "SCP-4500"
								</case>
								<case match="SY03" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "SCP-5000"
								</case>
								<case match="SI01" with="${deviceID}">
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "S25"
								</case>
								<case match="SNI1" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "705G"
								</case>
								<case match="SN11" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "C305SN"
								</case>
								<case match="SN12" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "C404S"
								</case>
								<case match="SN1[34]" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "C406S"
								</case>
								<case match="SN1[56]" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "C413S"
								</case>
								<case match="SNC1" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "D306S"
								</case>
								<case match="TSC1" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "D302T"
								</case>
								<case match="TSI1" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "701G"
								</case>
								<case match="TS11" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "C301T"
								</case>
								<case match="TS12" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "C310T"
								</case>
								<case match="TS13" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "C410T"
								</case>
								<case match="TST1" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "TT01"
								</case>
								<case match="TST2" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "TT02"
								</case>
								<case match="TST3" with="${deviceID}">
									mobileDeviceManufacturer = "Toshiba"
									mobileDeviceModel = "TT03"
								</case>
								<case match="IG01" with="${deviceID}">
									mobileDeviceManufacturer = "NeoPoint"
									mobileDeviceModel = "NP1000"
								</case>
								<case match="IG02" with="${deviceID}">
									mobileDeviceManufacturer = "NeoPoint"
									mobileDeviceModel = "NP1660"
								</case>
								<case match="IG03" with="${deviceID}">
									mobileDeviceManufacturer = "NeoPoint"
									mobileDeviceModel = "NP2000"
								</case>
								<case match="QC31" with="${deviceID}">
									mobileDeviceManufacturer = "Qualcomm"
									mobileDeviceModel = "QCP-860, QCP-1960"
								</case>
								<case match="QC12" with="${deviceID}">
									mobileDeviceManufacturer = "Qualcomm"
									mobileDeviceModel = "QCP-1900, QCP-2700"
								</case>
								<case match="QC32" with="${deviceID}">
									mobileDeviceManufacturer = "Qualcomm"
									mobileDeviceModel = "QCP-2760"
								</case>
								<case match="SP01" with="${deviceID}">
									mobileDeviceManufacturer = "Mitsubishi"
									mobileDeviceModel = "MA120"
								</case>
								<case match="SH" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "Duette"
								</case>
								<!-- Simulator Skins -->
								<case match="UPG1" with="${deviceID}">
									mobileDeviceManufacturer = "OpenWave"
									mobileDeviceModel = "Generic Simulator"
								</case>
								<case match="OPWV1" with="${deviceID}">
									canInitiateVoiceCall = "false"
									inputType = "keyboard"
									maximumRenderedPageSize = "3584"
									maximumSoftkeyLabelLength = "9"
									mobileDeviceManufacturer = "Openwave"
									mobileDeviceModel = "Openwave 5.0 emulator"
									rendersBreakBeforeWmlSelectAndInput = "false"
									screenCharactersHeight = "7"
									screenCharactersWidth = "19"
									screenPixelsHeight = "188"
									screenPixelsWidth = "144"
									supportsBold = "true"
									supportsFontSize = "true"
									supportsItalic = "true"
								</case>
								<case match="ALAV" with="${deviceID}">
									mobileDeviceManufacturer = "Alcatel"
									mobileDeviceModel = "OneTouch"
								</case>
								<case match="IM1K" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "iDEN"
								</case>
								<case match="NT95" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"
									mobileDeviceModel = "cdmaOne"
								</case>
								<case match="MOT-2001" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Timeport 270c"
									screenCharactersWidth = "19"
									maximumRenderedPageSize = "1946"
									rendersWmlDoAcceptsInline = "true"
									requiresSpecialViewStateEncoding = "true"
									requiresUrlEncodedPostfieldValues ="true"
								</case>
								<case match="MOT-v200" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Motorola v200"
									hasBackButton = "false"
									inputType = "keyboard"
									maximumRenderedPageSize = "2000"
									preferredImageMime = "image/bmp"
									rendersWmlDoAcceptsInline = "true"
									requiresSpecialViewStateEncoding = "true"
									requiresUrlEncodedPostfieldValues = "true"
									supportsRedirectWithCookie = "true"
								</case>
								<case match="MOT-72" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Motorola i80s"
									hasBackButton = "false"
									maximumRenderedPageSize = "2900"
									maximumSoftkeyLabelLength = "7"
									numberOfSoftkeys = "4"
									rendersBreaksAfterWmlAnchor = "true"
									rendersWmlDoAcceptsInline = "true"
									requiresSpecialViewStateEncoding = "true"
									requiresUrlEncodedPostfieldValues = "true"
									screenCharactersHeight = "4"
									screenCharactersWidth = "13"
								</case>
								<case match="MOT-76" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"
									mobileDeviceModel = "Motorola i90c"
									maximumRenderedPageSize = "2969"
									maximumSoftkeyLabelLength = "7"
									preferredImageMime = "image/vnd.wap.wbmp"
									rendersWmlDoAcceptsInline = "true"
									requiresAttributeColonSubstitution = "true"
									screenCharactersWidth = "14"
								</case>
								<case match="Sanyo-SCP6000" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"									
									mobileDeviceModel = "Sanyo SCP-6000"
									canRenderInputAndSelectElementsTogether = "false"
									hasBackButton = "false"
									preferredImageMime = "image/bmp"
									preferredRenderingMime = "text/vnd.wap.wml"
									screenBitDepth = "1"
									supportsBold = "true"
									supportsRedirectWithCookie = "true"
									screenPixelsHeight = "120"
									screenPixelsWidth = "128"
									supportsBold = "true"
									<!-- MaximumRenderedPageSize = "3000" -->
									<!-- This is reported different by the device -->
								</case>
								<case match="MOT-D5" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"									
									mobileDeviceModel = "Motorola Talkabout 191/192/193"
									screenCharactersHeight = "4"
									screenCharactersWidth = "13"
									screenPixelsHeight = "51"
									screenPixelsWidth = "91"
									maximumRenderedPageSize = "2000"
									maximumSoftkeyLabelLength = "6"
									numberOfSoftkeys = "3"
								</case>
								<case match="MOT-F0" with="${deviceID}">
									mobileDeviceManufacturer = "Motorola"									
									mobileDeviceModel = "Motorola v50"
									screenCharactersHeight = "4"
									screenCharactersWidth = "16"
									screenPixelsHeight = "40"
									screenPixelsWidth = "96"
									maximumRenderedPageSize = "2000"
									numberOfSoftkeys = "3"
									rendersWmlDoAcceptsInline = "true"
									requiresSpecialViewStateEncoding = "true"
									requiresUrlEncodedPostfieldValues = "true"
								</case>
								<case match="SAMSUNG-SGH-A400" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"									
									mobileDeviceModel = "Samsung SGH-A400"
									screenCharactersHeight = "3"
									screenCharactersWidth = "13"
									screenPixelsHeight = "96"
									screenPixelsWidth = "128"
									maximumRenderedPageSize = "2000"
									maximumSoftkeyLabelLength = "6"
									rendersBreakBeforeWmlSelectAndInput = "false"
									requiresNoSoftkeyLabels = "true"
								</case>
								<case match="SEC03" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"									
									mobileDeviceModel = "Samsung SPH-i300"
									inputType = "virtualKeyboard"
									isColor = "false"
									maximumRenderedPageSize = "3000"
									maximumSoftkeyLabelLength = "7"
									preferredImageMime = "image/bmp"
									requiresUniqueFilePathSuffix = "true"
									screenBitDepth = "1"
									screenCharactersHeight = "10"
									screenCharactersWidth = "38"
									screenPixelsHeight = "240"
									screenPixelsWidth = "160"
									supportsBold = "true"
									supportsRedirectWithCookie = "true"
								</case>
								<case match="SIE-C3I" with="${deviceID}">
									canRenderMixedSelects = "false"
									mobileDeviceManufacturer = "Siemens"									
									mobileDeviceModel = "C35/M35"
									screenCharactersHeight = "4"
									screenCharactersWidth = "16"
									screenPixelsHeight = "56"
									screenPixelsWidth = "97"
									maximumSoftkeyLabelLength = "7"
									rendersBreakBeforeWmlSelectAndInput = "false"
									rendersWmlDoAcceptsInline = "true"
									requiresSpecialViewStateEncoding = "true"
									requiresUrlEncodedPostfieldValues = "true"
									supportsBold = "true"
								</case>
								<case match="SN17" with="${deviceID}">
									mobileDeviceManufacturer = "Sony"									
									mobileDeviceModel = "C1002S"
									screenCharactersHeight = "10"
									screenCharactersWidth = "20"
									screenPixelsHeight = "120"
									screenPixelsWidth = "120"
									maximumRenderedPageSize = "12000"
									numberOfSoftkeys = "3"
									rendersBreakBeforeWmlSelectAndInput = "false"
									screenBitDepth = "16"
									supportsRedirectWithCookie = "true"
									requiresSpecialViewStateEncoding = "true"
								</case>
								<case match="Sanyo-SCP4700" with="${deviceID}">
									mobileDeviceManufacturer = "Sanyo"									
									mobileDeviceModel = "Sanyo SCP 4700"
									screenCharactersHeight = "4"
									screenCharactersWidth = "15"
									screenPixelsHeight = "32"
									screenPixelsWidth = "91"
									maximumRenderedPageSize = "3072"
									supportsRedirectWithCookie = "true"
									preferredImageMime = "image/vnd.wap.wbmp"
								</case>
								<case match="SEC02" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"									
									mobileDeviceModel = "Samsung SPH-N200"
									screenCharactersHeight = "7"
									screenCharactersWidth = "15"
									screenPixelsHeight = "96"
									screenPixelsWidth = "128"
									maximumRenderedPageSize = "2867"
									preferredImageMime = "image/bmp"
									rendersBreaksAfterWmlAnchor = "true"
									rendersBreaksAfterWmlInput = "true"
									requiresUniqueFilePathSuffix = "true"
									supportsItalic = "true"
									supportsRedirectWithCookie = "true"
								</case>
								<case match="SY15" with="${deviceID}">
									maximumRenderedPageSize = "7500"
									mobileDeviceManufacturer = "Sanyo"
									mobileDeviceModel = "Sanyo C1001SA"
									preferredImageMime = "image/bmp"
									rendersBreakBeforeWmlSelectAndInput = "false"
									screenBitDepth = "1"
									screenCharactersHeight = "8"
									supportsRedirectWithCookie = "true"
									requiresSpecialViewStateEncoding = "true"
								</case>
								<case match="LGE-DB520" with="${deviceID}">
									maximumRenderedPageSize = "3072"
									mobileDeviceManufacturer = "Sprint"
									mobileDeviceModel = "TP5200"
									preferredImageMime = "image/vnd.wap.wbmp"
									preferredRenderingMime = "text/wnd.wap.wml"
									rendersBreakBeforeWmlSelectAndInput = "false"
									rendersBreaksAfterWmlInput = "true"
									supportsRedirectWithCookie = "true"
								</case>
								<case match="LGE-LG4600" with="${deviceID}">
									mobileDeviceManufacturer = "Sprint"
									mobileDeviceModel = "LG4600"
								</case>
								<!-- Some Catchalls-->
								<case match="SAMSUNG-(?'Model'\S*)" with="${deviceID}">
									mobileDeviceManufacturer = "Samsung"
									mobileDeviceModel = "${Model}"
								</case>					
								<case match="SIE-(?'Model'\S*)" with="${deviceID}">
									mobileDeviceManufacturer = "Siemens"
									mobileDeviceModel = "${Model}"
								</case>
								<case match="LGE-(?'Model'\S*)" with="${deviceID}">
									mobileDeviceManufacturer = "Sprint"
									mobileDeviceModel = "${Model}"
								</case>
								<case match="AUDIOVOX-(?'Model'\S*)" with="${deviceID}">
									mobileDeviceManufacturer = "Audiovox"
									mobileDeviceModel = "${Model}"
								</case>					
								mobileDeviceModel = "${deviceID}"								
							</filter>
						</case>
					</filter>
				</case>
				<!-- End OpenWave Browsers -->
				
				<!--  jBrowser  -->
				<!-- Added by Owen Brady: 6-12-05 -->
				<case match="^jBrowser">
					browser="Jataayu jBrowser"
					canSendMail="false"
					cookies="true"
					inputType="virtualKeyboard"
					isColor="true"
					isMobileDevice="true"
					maximumRenderedPageSize="10000"
					mobileDeviceManufacturer="Jataayu"
					mobileDeviceModel="jBrowser"
					preferredImageMime="image/jpeg"
					preferredRenderingMime="application/xhtml+xml"
					preferredRenderingType="wml20"
					requiresCommentInStyleElement="true"
					requiresHiddenFieldValues="true"
					requiresHtmlAdaptiveErrorReporting="true"
					requiresOnEnterForwardForCheckboxLists="true"
					requiresXhtmlCssSuppression="false"
					screenBitDepth="24"
					screenCharactersHeight="17"
					screenCharactersWidth="42"
					screenPixelsHeight="265"
					screenPixelsWidth="248"
					supportsBodyClassAttribute="false"
					supportsBold="true"
					supportsFontName="true"
					supportsFontSize="true"
					supportsItalic="true"
					supportsRedirectWithCookie="false"
					tables="true"
					type="Jataayu jBrowser"
					<case match="(PPC)">
						cookies="true"
						screenCharactersHeight="14"
						screenCharactersWidth="31"
						screenPixelsHeight="320"
						screenPixelsWidth="240"
						supportsStyleElement="true"
					</case>
				</case>
				
				<!--BlackBerry -->
				<!-- Added by Owen Brady: 6-16-05 -->
				<case match="BlackBerry">
					browser = "BlackBerry"
					type = "BlackBerry"
					isMobileDevice="true"
					<filter>
						<case match="BlackBerry(?'deviceID'\S*)/(?'version'(?'major'\d+)\.(?'minor'\d+)\.(?'revision'\d+))">
							type = "BlackBerry ${deviceID}"
							mobileDeviceModel = "${deviceID}"
							version=${version}
							majorversion=${major}
							minorversion=${minor}
							revisionversion=${revision}
						</case>
						<case match="BlackBerry/(?'version'(?'major'\d+)\.(?'minor'\d+)\.(?'revision'\d+))">
							version=${version}
							majorversion=${major}
							minorversion=${minor}
							revisionversion=${revision}						
						</case>
					</filter>
				</case>
			
				<case match="Mozilla">
					<!-- Assume this is a desktop browser -->
					isMobileDevice = "false"
					defaultScreenCharactersWidth = "80"
					defaultScreenCharactersHeight = "40"
					defaultScreenPixelsWidth = "640"
					defaultScreenPixelsHeight = "480"
					defaultCharacterWidth = "8"
					defaultCharacterHeight = "12"
					screenBitDepth = "8"
					isColor = "true"
					inputType = "keyboard"
				</case>
				
				 
			</filter>
			<filter>
				<!--begin Misc SHARP Browsers -->
				<!--Edited by Owen Brady: 06-13-05-->
				<case match="SHARP-TQ-(?'deviceID'\S*)/|SHARP-TQ-(?'deviceID'\S*)">
					mobileDeviceManufacturer = "SHARP"
					mobileDeviceModel = "${deviceID}"
					isMobileDevice="true"
				</case>
				
				<!--begin Misc Motorola Browsers-->
				<!--Edited by Owen Brady: 06-13-05-->
				<case match="MOT-(?'deviceID'\S*)/.*|MOT-(?'deviceID'\S*).*">
					mobileDeviceManufacturer = "Motorola"
					isMobileDevice="true"
					mobileDeviceModel = "${deviceID}"
					<filter>								
						<case match=" MIB/(?'version'(?'major'\d+)\.(?'minor'\d*)\.(?'revision'\d*))">
							browser = "Motorola Internet Browser"
							version=${version}
							majorversion=${major}
							minorversion=${minor}
							revisionversion=${revision}
						</case>				
						<case match=" MIB/(?'version'(?'major'\d+)\.(?'minor'\d*))">
							browser = "Motorola Internet Browser"
							version=${version}
							majorversion=${major}
							minorversion=${minor}
						</case>
					</filter>
					<filter>
						<case match="MOT-D5" with="${deviceID}">
							mobileDeviceModel = "Motorola Talkabout 191/192/193"
						</case>
						<case match="MOT-F0" with="${deviceID}">
							mobileDeviceModel = "Motorola v50"
						</case>
						<case match="MOT-32" with="${deviceID}">
							mobileDeviceModel = "i85s, i50sx"
						</case>
						<case match="MOT-28" with="${deviceID}">
							mobileDeviceModel = "i700+, i1000+"
						</case>
						<case match="MO01" with="${deviceID}">
							mobileDeviceModel = "i500+, i700+, i1000+"
						</case>
						<case match="MO02" with="${deviceID}">
							mobileDeviceModel = "i2000+"
						</case>
						<case match="MC01" with="${deviceID}">
							mobileDeviceModel = "StarTac ST786x, Talkabout T816x, Timeport P816x"
						</case>
						<case match="MCCC" with="${deviceID}">
							mobileDeviceModel = "Talkabout V2267"
						</case>
						<case match="MCC9" with="${deviceID}">
							mobileDeviceModel = "Talkabout V8162"
						</case>
						<case match="MOT-2001" with="${deviceID}">
							mobileDeviceModel = "Timeport 270c"
						</case>
						<case match="MOT-v200" with="${deviceID}">
							mobileDeviceModel = "Motorola v200"
						</case>
						<case match="MOT-72" with="${deviceID}">
							mobileDeviceModel = "Motorola i80s"
						</case>
						<case match="MOT-76" with="${deviceID}">
							mobileDeviceModel = "Motorola i90c"
						</case>			
						<case match="MOT-D8" with="${deviceID}">
							mobileDeviceModel = "Timeport 250/P7689"
						</case>
						<case match="MOT-CF" with="${deviceID}">
							mobileDeviceModel = "Accompli 6188"
						</case>
						<case match="MOT-F6" with="${deviceID}">
							mobileDeviceModel = "Accompli 008/6288"
						</case>
						<case match="MOT-BC" with="${deviceID}">
							mobileDeviceModel = "Accompli 009"
						</case>
						<case match="MOT-DC" with="${deviceID}">
							mobileDeviceModel = "V3682, V50"
						</case>
						<case match="MOT-PAN-C" with="${deviceID}">
							mobileDeviceModel = "Timeport 270c"
						</case>
						<case match="MOT-C4" with="${deviceID}">
							mobileDeviceModel = "V2288, V2282"
						</case>
						<case match="MOT-2000" with="${deviceID}">
							mobileDeviceModel = "V60c"
						</case>
						<case match="MOT-P2K-C" with="${deviceID}">
							mobileDeviceModel = "V120c"
						</case>
						<case match="MOT-AF" with="${deviceID}">
							mobileDeviceModel = "Timeport 260/P7382i/P7389i"
						</case>
						<case match="MOT-C2" with="${deviceID}">
							mobileDeviceModel = "V100, V.Box"
						</case>				
						<case match="MOT-1.2.0" with="${deviceID}">				
						</case>
						<case match="MOT-A-0A" with="${deviceID}">
						</case>
						<case match="MOT-MCCB" with="${deviceID}">
						</case>
						<case match="MOT-SAP4_" with="${deviceID}">
						</case>
						<case match="MOT-61" with="${deviceID}">
						</case>
						<case match="V500" with="${deviceID}">
							mobileDeviceModel = "V500"
						</case>
						<case match="V220" with="${deviceID}">
							mobileDeviceModel = "V220"
						</case>
						<case match="TA02" with="${deviceID}">				
							mobileDeviceModel = "C330"
						</case>								
					</filter>		
				</case>			
			</filter>
			
			<use var="HTTP_UA_COLOR" as="UA_color" />
			<filter>
				<case match="mono2" with="%{UA_color}">
					isColor = "false"
					screenBitDepth = "2"
				</case>
				<case match="mono4" with="%{UA_color}">
					isColor = "false"
					screenBitDepth = "4"
				</case>
				<case match="color8" with="%{UA_color}">
					isColor = "true"
					screenBitDepth = "8"
				</case>
				<case match="color16" with="%{UA_color}">
					isColor = "true"
					screenBitDepth = "16"
				</case>
				<case match="color24" with="%{UA_color}">
					isColor = "true"
					screenBitDepth = "24"
				</case>
				<case match="color32" with="%{UA_color}">
					isColor = "true"
					screenBitDepth = "32"
				</case>
			</filter>
			
			
			<use var="HTTP_UA_PIXELS" as="UA_pixels" />
			<filter>
				<case match="(?'screenWidth'\d+)x(?'screenHeight'\d+)" with="%{UA_pixels}">
					screenPixelsWidth = ${screenWidth}
					screenPixelsHeight = ${screenHeight}
				</case>
			</filter>
			<use var="HTTP_UA_VOICE" as="UA_voice" />
			<filter>
				<case match="(?i:TRUE)" with="%{UA_voice}">
					canInitiateVoiceCall = "true"
				</case>
			</filter>
			
			
			<use var="HTTP_X_JPHONE_COLOR" as="x_jphone_color" />
			<filter>
				<case match="(?'colorIndicator'[CG])(?'bitDepth'\d+)" with="%{x_jphone_color}">
					<filter match="C" with="${colorIndicator}">
						isColor = "true"
					</filter>
					<filter>
						<case match="65536" with="${bitDepth}">
							screenBitDepth = "16"
						</case>
						<case match="256" with="${bitDepth}">
							screenBitDepth = "8"
						</case>
						<case match="4" with="${bitDepth}">
							screenBitDepth = "2"
						</case>
					</filter>
				</case>
			</filter>
			
			
			<use var="HTTP_X_JPHONE_DISPLAY" as="x_jphone_display" />
			<filter>
				<case match="(?'screenWidth'\d+)\*(?'screenHeight'\d+)" with="%{x_jphone_display}">
					screenPixelsWidth = ${screenWidth}
					screenPixelsHeight = ${screenHeight}
				</case>
			</filter>
			
			
			<use var="HTTP_X_GA_MAX_TRANSFER" as="x_ga_max_transfer" />
			<filter>
				<case match="(?'maxPageSize'\d+)" with="%{x_ga_max_transfer}">
					maximumRenderedPageSize = ${maxPageSize}
				</case>
			</filter>
			
			
			<use var="HTTP_X_GA_TABLES" as="x_ga_tables" />
			<filter>
				<case match="(?i:FALSE)" with="%{x_ga_tables}">
					tables = "false"
				</case>
				<case match="(?i:TRUE)" with="%{x_ga_tables}">
					tables = "true"
				</case>
			</filter>
			
			
			<use var="HTTP_X_UP_DEVCAP_CHARSET" as="x_up_devcap_charset" />
			<filter>
				<case match="(?i)^Shift_JIS$" with="%{x_up_devcap_charset}">
					<filter>
						<case match="Phone.com 3.x Browser" with="%{type}">
							<filter>
								<case match="^.[012]" with="%{minorVersion}">
									canSendMail = "true"
								</case>
							</filter>
						</case>
					</filter>
				</case>
			</filter>
		</browserCaps>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Chris Maunder
Founder CodeProject
Canada Canada
Chris is the Co-founder, Administrator, Architect, Chief Editor and Shameless Hack who wrote and runs The Code Project. He's been programming since 1988 while pretending to be, in various guises, an astrophysicist, mathematician, physicist, hydrologist, geomorphologist, defence intelligence researcher and then, when all that got a bit rough on the nerves, a web developer. He is a Microsoft Visual C++ MVP both globally and for Canada locally.

His programming experience includes C/C++, C#, SQL, MFC, ASP, ASP.NET, and far, far too much FORTRAN. He has worked on PocketPCs, AIX mainframes, Sun workstations, and a CRAY YMP C90 behemoth but finds notebooks take up less desk space.

He dodges, he weaves, and he never gets enough sleep. He is kind to small animals.

Chris was born and bred in Australia but splits his time between Toronto and Melbourne, depending on the weather. For relaxation he is into road cycling, snowboarding, rock climbing, and storm chasing.
Follow on   Twitter   Google+   LinkedIn

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.150506.1 | Last Updated 6 May 2009
Article Copyright 2004 by Chris Maunder
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid