Warning, /frameworks/syntax-highlighting/autotests/reference/devicedetect.vcl.ref is written in an unsupported language. File is not indexed.
0001 <Comment>#</Comment><br/> 0002 <Comment># Copyright (c) 2016-2018 Varnish Cache project</Comment><br/> 0003 <Comment># Copyright (c) 2012-2016 Varnish Software AS</Comment><br/> 0004 <Comment>#</Comment><br/> 0005 <Comment># </Comment><SPDX Tag>SPDX-License-Identifier:</SPDX Tag><SPDX Value> </SPDX Value><SPDX License>BSD-2-Clause</SPDX License><br/> 0006 <Comment>#</Comment><br/> 0007 <Comment># Redistribution and use in source and binary forms, with or without</Comment><br/> 0008 <Comment># modification, are permitted provided that the following conditions</Comment><br/> 0009 <Comment># are met:</Comment><br/> 0010 <Comment># 1. Redistributions of source code must retain the above copyright</Comment><br/> 0011 <Comment># notice, this list of conditions and the following disclaimer.</Comment><br/> 0012 <Comment># 2. Redistributions in binary form must reproduce the above copyright</Comment><br/> 0013 <Comment># notice, this list of conditions and the following disclaimer in the</Comment><br/> 0014 <Comment># documentation and/or other materials provided with the distribution.</Comment><br/> 0015 <Comment>#</Comment><br/> 0016 <Comment># THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</Comment><br/> 0017 <Comment># ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</Comment><br/> 0018 <Comment># IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</Comment><br/> 0019 <Comment># ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE</Comment><br/> 0020 <Comment># FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</Comment><br/> 0021 <Comment># DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</Comment><br/> 0022 <Comment># OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</Comment><br/> 0023 <Comment># HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</Comment><br/> 0024 <Comment># LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</Comment><br/> 0025 <Comment># OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</Comment><br/> 0026 <Comment># SUCH DAMAGE.</Comment><br/> 0027 <Comment>#</Comment><br/> 0028 <Comment># detectdevice.vcl - regex based device detection for Varnish</Comment><br/> 0029 <Comment># https://github.com/varnishcache/varnish-devicedetect/</Comment><br/> 0030 <Comment>#</Comment><br/> 0031 <Comment># Original author: Lasse Karstensen <lkarsten@varnish-software.com></Comment><br/> 0032 <Normal Text></Normal Text><br/> 0033 <Keyword>sub</Keyword><Normal Text> devicedetect </Normal Text><Region Marker>{</Region Marker><br/> 0034 <Normal Text> </Normal Text><Keyword>unset</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text>;</Normal Text><br/> 0035 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"pc"</String><Normal Text>;</Normal Text><br/> 0036 <Normal Text></Normal Text><br/> 0037 <Normal Text> </Normal Text><Comment># Handle that a cookie may override the detection alltogether.</Comment><br/> 0038 <Normal Text> </Normal Text><Condition Keyword>if</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.Cookie</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)X-UA-Device-force"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0039 <Normal Text> </Normal Text><Comment>/* ;?? means zero or one ;, non-greedy to match the first. */</Comment><br/> 0040 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Standard VCL Function>regsub</Standard VCL Function><Normal Text>(</Normal Text><HTTP Header>req.http.Cookie</HTTP Header><Normal Text>, </Normal Text><String>"(?i).*X-UA-Device-force=([^;]+);??.*"</String><Normal Text>, </Normal Text><String>"\1"</String><Normal Text>);</Normal Text><br/> 0041 <Normal Text> </Normal Text><Comment>/* Clean up our mess in the cookie header */</Comment><br/> 0042 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP Header>req.http.Cookie</HTTP Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Standard VCL Function>regsuball</Standard VCL Function><Normal Text>(</Normal Text><HTTP Header>req.http.Cookie</HTTP Header><Normal Text>, </Normal Text><String>"(^|; ) *X-UA-Device-force=[^;]+;? *"</String><Normal Text>, </Normal Text><String>"\1"</String><Normal Text>);</Normal Text><br/> 0043 <Normal Text> </Normal Text><Comment>/* If the cookie header is now empty, or just whitespace, unset it. */</Comment><br/> 0044 <Normal Text> </Normal Text><Condition Keyword>if</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.Cookie</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"^ *$"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>unset</Keyword><Normal Text> </Normal Text><HTTP Header>req.http.Cookie</HTTP Header><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0045 <Normal Text> </Normal Text><Region Marker>}</Region Marker><Normal Text> </Normal Text><Condition Keyword>else</Condition Keyword><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0046 <Normal Text> </Normal Text><Condition Keyword>if</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"\(compatible; Googlebot-Mobile/2.1; \+http://www.google.com/bot.html\)"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0047 <Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(Android|iPhone)"</String><Normal Text> </Normal Text><Logical Operator>&&</Logical Operator><Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"\(compatible.?; Googlebot/2.1.?; \+http://www.google.com/bot.html"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0048 <Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(iPhone|Windows Phone)"</String><Normal Text> </Normal Text><Logical Operator>&&</Logical Operator><Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"\(compatible; bingbot/2.0; \+http://www.bing.com/bingbot.htm"</String><Region Marker>))</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0049 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-bot"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0050 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)(ads|google|bing|msn|yandex|baidu|ro|career|seznam|)bot"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0051 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)(baidu|jike|symantec)spider"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0052 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)pingdom"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0053 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)facebookexternalhit"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0054 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)scanner"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0055 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)slurp"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0056 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)(web)crawler"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0057 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"bot"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0058 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)ipad"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-ipad"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0059 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)ip(hone|od)"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-iphone"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0060 <Normal Text> </Normal Text><Comment>/* how do we differ between an android phone and an android tablet?</Comment><br/> 0061 <Comment> http://stackoverflow.com/questions/5341637/how-do-detect-android-tablets-in-general-useragent */</Comment><br/> 0062 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)android.*(mobile|mini)"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-android"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0063 <Normal Text> </Normal Text><Comment>// android 3/honeycomb was just about tablet-only, and any phones will probably handle a bigger page layout.</Comment><br/> 0064 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)android 3"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-android"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0065 <Normal Text> </Normal Text><Comment>/* Opera Mobile */</Comment><br/> 0066 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Opera Mobi"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-smartphone"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0067 <Normal Text> </Normal Text><Comment>// May very well give false positives towards android tablets. Suggestions welcome.</Comment><br/> 0068 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)android"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-android"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0069 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"PlayBook; U; RIM Tablet"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-rim"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0070 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"hp-tablet.*TouchPad"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-hp"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0071 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Kindle/3"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-kindle"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0072 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Touch.+Tablet PC"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0073 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Windows NT [0-9.]+; ARM;"</String><Normal Text> </Normal Text><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0074 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"tablet-microsoft"</String><Normal Text>;</Normal Text><br/> 0075 <Normal Text> </Normal Text><Region Marker>}</Region Marker><br/> 0076 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Mobile.+Firefox"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-firefoxos"</String><Normal Text>; </Normal Text><Region Marker>}</Region Marker><br/> 0077 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"^HTC"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0078 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"Fennec"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0079 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"IEMobile"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0080 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"BlackBerry"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0081 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"BB10.*Mobile"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0082 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"GT-.*Build/GINGERBREAD"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0083 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"SymbianOS.*AppleWebKit"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0084 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-smartphone"</String><Normal Text>;</Normal Text><br/> 0085 <Normal Text> </Normal Text><Region Marker>}</Region Marker><br/> 0086 <Normal Text> </Normal Text><Condition Keyword>elsif</Condition Keyword><Normal Text> </Normal Text><Region Marker>(</Region Marker><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)symbian"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0087 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)^sonyericsson"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0088 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)^nokia"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0089 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)^samsung"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0090 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)^lg"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0091 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)bada"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0092 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)blazer"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0093 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)cellphone"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0094 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)iemobile"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0095 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)midp-2.0"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0096 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)u990"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0097 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)netfront"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0098 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)opera mini"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0099 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)palm"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0100 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)nintendo wii"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0101 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)playstation portable"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0102 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)portalmmm"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0103 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)proxinet"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0104 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)windows\ ?ce"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0105 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)winwap"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0106 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)eudoraweb"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0107 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)htc"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0108 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)240x320"</String><Normal Text> </Normal Text><Logical Operator>||</Logical Operator><br/> 0109 <Normal Text> </Normal Text><HTTP Header>req.http.User-Agent</HTTP Header><Normal Text> </Normal Text><Comparison Operator>~</Comparison Operator><Normal Text> </Normal Text><String>"(?i)avantgo"</String><Region Marker>)</Region Marker><Normal Text> </Normal Text><Region Marker>{</Region Marker><br/> 0110 <Normal Text> </Normal Text><Keyword>set</Keyword><Normal Text> </Normal Text><HTTP X- Header>req.http.X-UA-Device</HTTP X- Header><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"mobile-generic"</String><Normal Text>;</Normal Text><br/> 0111 <Normal Text> </Normal Text><Region Marker>}</Region Marker><br/> 0112 <Normal Text> </Normal Text><Region Marker>}</Region Marker><br/> 0113 <Region Marker>}</Region Marker><br/>