Merge pull request #453 from owncloud/improve_action_bar_pr_392_with_develop
[pub/Android/ownCloud.git] / doc / rfc6352-CardDAV-Spec.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <!-- saved from url=(0041)http://tools.ietf.org/html/rfc6352#page-7 -->
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head profile="http://dublincore.org/documents/2008/08/04/dc-html/"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="robots" content="index,follow"><meta name="creator" content="rfcmarkup version 1.96"><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"><meta name="DC.Identifier" content="urn:ietf:rfc:6352"><meta name="DC.Description.Abstract" content="This document defines extensions to the Web Distributed Authoring and\nVersioning (WebDAV) protocol to specify a standard way of accessing,\nmanaging, and sharing contact information based on the vCard format.\n[STANDARDS-TRACK]"><meta name="DC.Creator" content="Cyrus Daboo &lt;cyrus@daboo.name&gt;"><meta name="DC.Date.Issued" content="August, 2011"><meta name="DC.Title" content="CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)"><link rel="icon" href="http://tools.ietf.org/images/rfc.png" type="image/png"><link rel="shortcut icon" href="http://tools.ietf.org/images/rfc.png" type="image/png"><title>RFC 6352 - CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title> <style type="text/css">body{margin:0px 8px;font-size:1em;}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:bold;line-height:0pt;display:inline;white-space:pre;font-family:monospace;font-size:1em;font-weight:bold;}pre{font-size:1em;margin-top:0px;margin-bottom:0px;}.pre{white-space:pre;font-family:monospace;}.header{font-weight:bold;}.newpage{page-break-before:always;}.invisible{text-decoration:none;color:white;}@media print{body{font-size:10.5pt;}h1,h2,h3,h4,h5,h6{font-size:10.5pt;}a:link,a:visited{color:inherit;text-decoration:none;}.noprint{display:none;}}@media screen{.grey,.grey a:link,.grey a:visited{color:#777;}.docinfo{background-color:#EEE;}.top{border-top:7px solid #EEE;}.bgwhite{background-color:white;}.bgred{background-color:#F44;}.bggrey{background-color:#666;}.bgbrown{background-color:#840;}.bgorange{background-color:#FA0;}.bgyellow{background-color:#EE0;}.bgmagenta{background-color:#F4F;}.bgblue{background-color:#66F;}.bgcyan{background-color:#4DD;}.bggreen{background-color:#4F4;}.legend{font-size:90%;}.cplate{font-size:70%;border:solid grey 1px;}}</style> <!--[if IE]><style>
4 body {
5 font-size: 13px;
6 margin: 10px 10px;
7 }
8 </style> <![endif]--><script type="text/javascript"><!--
9 function addHeaderTags() {
10 var spans = document.getElementsByTagName("span");
11 for (var i=0; i < spans.length; i++) {
12 var elem = spans[i];
13 if (elem) {
14 var level = elem.getAttribute("class");
15 if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
16 elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";
17 }
18 }
19 }
20 }
21 var legend_html = "Colour legend:<br /> <table> <tr><td>Unknown:</td> <td><span class='cplate bgwhite'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft:</td> <td><span class='cplate bgred'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Informational:</td> <td><span class='cplate bgorange'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Experimental:</td> <td><span class='cplate bgyellow'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Best Common Practice:</td><td><span class='cplate bgmagenta'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Proposed Standard:</td><td><span class='cplate bgblue'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft Standard:</td> <td><span class='cplate bgcyan'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Standard:</td> <td><span class='cplate bggreen'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Historic:</td> <td><span class='cplate bggrey'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Obsolete:</td> <td><span class='cplate bgbrown'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> </table>";
22 function showElem(id) {
23 var elem = document.getElementById(id);
24 elem.innerHTML = eval(id+"_html");
25 elem.style.visibility='visible';
26 }
27 function hideElem(id) {
28 var elem = document.getElementById(id);
29 elem.style.visibility='hidden';
30 elem.innerHTML = "";
31 }
32 // -->
33 </script> </head><body onload="addHeaderTags()"><div style="height: 13px;"><div onmouseover="this.style.cursor=&#39;pointer&#39;;" onclick="showElem(&#39;legend&#39;);" onmouseout="hideElem(&#39;legend&#39;)" style="height: 6px; position: absolute;" class="pre noprint docinfo bgblue" title="Click for colour legend."></div><div id="legend" class="docinfo noprint pre legend" style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; " onmouseover="showElem(&#39;legend&#39;);" onmouseout="hideElem(&#39;legend&#39;);"></div></div><span class="pre noprint docinfo top">[<a href="http://tools.ietf.org/html/" title="Document search and retrieval page">Docs</a>] [<a href="http://tools.ietf.org/rfc/rfc6352.txt" title="Plaintext version of this document">txt</a>|<a href="http://tools.ietf.org/pdf/rfc6352" title="PDF version of this document">pdf</a>] [<a href="http://tools.ietf.org/html/draft-ietf-vcarddav-carddav" title="draft-ietf-vcarddav-carddav">draft-ietf-vcardd...</a>] [<a href="http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=rfc6352" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://tools.ietf.org/rfcdiff?url2=rfc6352" title="Side-by-side diff">Diff2</a>] </span><br><span class="pre noprint docinfo"></span><br><span class="pre noprint docinfo">PROPOSED STANDARD</span><br><span class="pre noprint docinfo"></span><br><pre>Internet Engineering Task Force (IETF) C. Daboo
34 Request for Comments: 6352 Apple
35 Category: Standards Track August 2011
36 ISSN: 2070-1721
37
38
39 <span class="h1"><h1>CardDAV: vCard Extensions to</h1></span>
40 <span class="h1"><h1>Web Distributed Authoring and Versioning (WebDAV)</h1></span>
41
42 Abstract
43
44 This document defines extensions to the Web Distributed Authoring and
45 Versioning (WebDAV) protocol to specify a standard way of accessing,
46 managing, and sharing contact information based on the vCard format.
47
48 Status of This Memo
49
50 This is an Internet Standards Track document.
51
52 This document is a product of the Internet Engineering Task Force
53 (IETF). It represents the consensus of the IETF community. It has
54 received public review and has been approved for publication by the
55 Internet Engineering Steering Group (IESG). Further information on
56 Internet Standards is available in <a href="http://tools.ietf.org/html/rfc5741#section-2">Section&nbsp;2 of RFC 5741</a>.
57
58 Information about the current status of this document, any errata,
59 and how to provide feedback on it may be obtained at
60 <a href="http://www.rfc-editor.org/info/rfc6352">http://www.rfc-editor.org/info/rfc6352</a>.
61
62 Copyright Notice
63
64 Copyright (c) 2011 IETF Trust and the persons identified as the
65 document authors. All rights reserved.
66
67 This document is subject to <a href="http://tools.ietf.org/html/bcp78">BCP 78</a> and the IETF Trust's Legal
68 Provisions Relating to IETF Documents
69 (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
70 publication of this document. Please review these documents
71 carefully, as they describe your rights and restrictions with respect
72 to this document. Code Components extracted from this document must
73 include Simplified BSD License text as described in <a href="http://tools.ietf.org/html/rfc6352#section-4">Section 4</a>.e of
74 the Trust Legal Provisions and are provided without warranty as
75 described in the Simplified BSD License.
76
77 This document may contain material from IETF Documents or IETF
78 Contributions published or made publicly available before November
79 10, 2008. The person(s) controlling the copyright in some of this
80 material may not have granted the IETF Trust the right to allow
81
82
83
84 <span class="grey">Daboo Standards Track [Page 1]</span>
85 </pre><pre class="newpage"><a name="page-2" id="page-2" href="http://tools.ietf.org/html/rfc6352#page-2" class="invisible"> </a>
86 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
87
88
89 modifications of such material outside the IETF Standards Process.
90 Without obtaining an adequate license from the person(s) controlling
91 the copyright in such materials, this document may not be modified
92 outside the IETF Standards Process, and derivative works of it may
93 not be created outside the IETF Standards Process, except to format
94 it for publication as an RFC or to translate it into languages other
95 than English.
96
97 Table of Contents
98
99 <a href="http://tools.ietf.org/html/rfc6352#section-1">1</a>. Introduction and Overview . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-4">4</a>
100 <a href="http://tools.ietf.org/html/rfc6352#section-2">2</a>. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-5">5</a>
101 <a href="http://tools.ietf.org/html/rfc6352#section-3">3</a>. Requirements Overview . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-6">6</a>
102 <a href="http://tools.ietf.org/html/rfc6352#section-4">4</a>. Address Book Data Model . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
103 <a href="http://tools.ietf.org/html/rfc6352#section-4.1">4.1</a>. Address Book Server . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
104 <a href="http://tools.ietf.org/html/rfc6352#section-5">5</a>. Address Book Resources . . . . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
105 <a href="http://tools.ietf.org/html/rfc6352#section-5.1">5.1</a>. Address Object Resources . . . . . . . . . . . . . . . . . <a href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html">7</a>
106 <a href="http://tools.ietf.org/html/rfc6352#section-5.1.1">5.1.1</a>. Data Type Conversion . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-8">8</a>
107 <a href="http://tools.ietf.org/html/rfc6352#section-5.1.1.1">5.1.1.1</a>. Additional Precondition for GET . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-8">8</a>
108 <a href="http://tools.ietf.org/html/rfc6352#section-5.2">5.2</a>. Address Book Collections . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-9">9</a>
109 <a href="http://tools.ietf.org/html/rfc6352#section-6">6</a>. Address Book Feature . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
110 <a href="http://tools.ietf.org/html/rfc6352#section-6.1">6.1</a>. Address Book Support . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
111 6.1.1. Example: Using OPTIONS for the Discovery of
112 Support for CardDAV . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
113 <a href="http://tools.ietf.org/html/rfc6352#section-6.2">6.2</a>. Address Book Properties . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
114 <a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">6.2.1</a>. CARDDAV:addressbook-description Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-10">10</a>
115 <a href="http://tools.ietf.org/html/rfc6352#section-6.2.2">6.2.2</a>. CARDDAV:supported-address-data Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-11">11</a>
116 <a href="http://tools.ietf.org/html/rfc6352#section-6.2.3">6.2.3</a>. CARDDAV:max-resource-size Property . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-12">12</a>
117 <a href="http://tools.ietf.org/html/rfc6352#section-6.3">6.3</a>. Creating Resources . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-13">13</a>
118 <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">6.3.1</a>. Extended MKCOL Method . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-13">13</a>
119 <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1.1">6.3.1.1</a>. Example - Successful MKCOL Request . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-14">14</a>
120 <a href="http://tools.ietf.org/html/rfc6352#section-6.3.2">6.3.2</a>. Creating Address Object Resources . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-15">15</a>
121 6.3.2.1. Additional Preconditions for PUT, COPY, and
122 MOVE . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-16">16</a>
123 <a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.2">6.3.2.2</a>. Non-Standard vCard Properties and Parameters . . . <a href="http://tools.ietf.org/html/rfc6352#page-17">17</a>
124 <a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.3">6.3.2.3</a>. Address Object Resource Entity Tag . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
125 <a href="http://tools.ietf.org/html/rfc6352#section-7">7</a>. Address Book Access Control . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
126 <a href="http://tools.ietf.org/html/rfc6352#section-7.1">7.1</a>. Additional Principal Properties . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-18">18</a>
127 <a href="http://tools.ietf.org/html/rfc6352#section-7.1.1">7.1.1</a>. CARDDAV:addressbook-home-set Property . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-19">19</a>
128 <a href="http://tools.ietf.org/html/rfc6352#section-7.1.2">7.1.2</a>. CARDDAV:principal-address Property . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-19">19</a>
129 <a href="http://tools.ietf.org/html/rfc6352#section-8">8</a>. Address Book Reports . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-20">20</a>
130 <a href="http://tools.ietf.org/html/rfc6352#section-8.1">8.1</a>. REPORT Method . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-20">20</a>
131 <a href="http://tools.ietf.org/html/rfc6352#section-8.2">8.2</a>. Ordinary Collections . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-21">21</a>
132 <a href="http://tools.ietf.org/html/rfc6352#section-8.3">8.3</a>. Searching Text: Collations . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-21">21</a>
133 <a href="http://tools.ietf.org/html/rfc6352#section-8.3.1">8.3.1</a>. CARDDAV:supported-collation-set Property . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-22">22</a>
134 <a href="http://tools.ietf.org/html/rfc6352#section-8.4">8.4</a>. Partial Retrieval . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
135 <a href="http://tools.ietf.org/html/rfc6352#section-8.5">8.5</a>. Non-Standard Properties and Parameters . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
136
137
138
139
140 <span class="grey">Daboo Standards Track [Page 2]</span>
141 </pre><pre class="newpage"><a name="page-3" id="page-3" href="http://tools.ietf.org/html/rfc6352#page-3" class="invisible"> </a>
142 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
143
144
145 <a href="http://tools.ietf.org/html/rfc6352#section-8.6">8.6</a>. CARDDAV:addressbook-query Report . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-23">23</a>
146 <a href="http://tools.ietf.org/html/rfc6352#section-8.6.1">8.6.1</a>. Limiting Results . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-25">25</a>
147 <a href="http://tools.ietf.org/html/rfc6352#section-8.6.2">8.6.2</a>. Truncation of Results . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-25">25</a>
148 8.6.3. Example: Partial Retrieval of vCards Matching
149 NICKNAME . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-26">26</a>
150 8.6.4. Example: Partial Retrieval of vCards Matching a
151 Full Name or Email Address . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-27">27</a>
152 <a href="http://tools.ietf.org/html/rfc6352#section-8.6.5">8.6.5</a>. Example: Truncated Results . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-29">29</a>
153 <a href="http://tools.ietf.org/html/rfc6352#section-8.7">8.7</a>. CARDDAV:addressbook-multiget Report . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-31">31</a>
154 <a href="http://tools.ietf.org/html/rfc6352#section-8.7.1">8.7.1</a>. Example: CARDDAV:addressbook-multiget Report . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-32">32</a>
155 <a href="http://tools.ietf.org/html/rfc6352#section-8.7.2">8.7.2</a>. Example: CARDDAV:addressbook-multiget Report . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-33">33</a>
156 <a href="http://tools.ietf.org/html/rfc6352#section-9">9</a>. Client Guidelines . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-34">34</a>
157 <a href="http://tools.ietf.org/html/rfc6352#section-9.1">9.1</a>. Restrict the Properties Returned . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-34">34</a>
158 <a href="http://tools.ietf.org/html/rfc6352#section-9.2">9.2</a>. Avoiding Lost Updates . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
159 <a href="http://tools.ietf.org/html/rfc6352#section-9.3">9.3</a>. Client Configuration . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
160 <a href="http://tools.ietf.org/html/rfc6352#section-9.4">9.4</a>. Finding Other Users' Address Books . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-35">35</a>
161 <a href="http://tools.ietf.org/html/rfc6352#section-10">10</a>. XML Element Definitions . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
162 <a href="http://tools.ietf.org/html/rfc6352#section-10.1">10.1</a>. CARDDAV:addressbook XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
163 <a href="http://tools.ietf.org/html/rfc6352#section-10.2">10.2</a>. CARDDAV:supported-collation XML Element . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-36">36</a>
164 <a href="http://tools.ietf.org/html/rfc6352#section-10.3">10.3</a>. CARDDAV:addressbook-query XML Element . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-37">37</a>
165 <a href="http://tools.ietf.org/html/rfc6352#section-10.4">10.4</a>. CARDDAV:address-data XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-37">37</a>
166 <a href="http://tools.ietf.org/html/rfc6352#section-10.4.1">10.4.1</a>. CARDDAV:allprop XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-39">39</a>
167 <a href="http://tools.ietf.org/html/rfc6352#section-10.4.2">10.4.2</a>. CARDDAV:prop XML Element . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-39">39</a>
168 <a href="http://tools.ietf.org/html/rfc6352#section-10.5">10.5</a>. CARDDAV:filter XML Element . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-40">40</a>
169 <a href="http://tools.ietf.org/html/rfc6352#section-10.5.1">10.5.1</a>. CARDDAV:prop-filter XML Element . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-40">40</a>
170 <a href="http://tools.ietf.org/html/rfc6352#section-10.5.2">10.5.2</a>. CARDDAV:param-filter XML Element . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-41">41</a>
171 <a href="http://tools.ietf.org/html/rfc6352#section-10.5.3">10.5.3</a>. CARDDAV:is-not-defined XML Element . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-42">42</a>
172 <a href="http://tools.ietf.org/html/rfc6352#section-10.5.4">10.5.4</a>. CARDDAV:text-match XML Element . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-42">42</a>
173 <a href="http://tools.ietf.org/html/rfc6352#section-10.6">10.6</a>. CARDDAV:limit XML Element . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-43">43</a>
174 <a href="http://tools.ietf.org/html/rfc6352#section-10.6.1">10.6.1</a>. CARDDAV:nresults XML Element . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-44">44</a>
175 <a href="http://tools.ietf.org/html/rfc6352#section-10.7">10.7</a>. CARDDAV:addressbook-multiget XML Element . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-44">44</a>
176 <a href="http://tools.ietf.org/html/rfc6352#section-11">11</a>. Service Discovery via SRV Records . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
177 <a href="http://tools.ietf.org/html/rfc6352#section-12">12</a>. Internationalization Considerations . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
178 <a href="http://tools.ietf.org/html/rfc6352#section-13">13</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-45">45</a>
179 <a href="http://tools.ietf.org/html/rfc6352#section-14">14</a>. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
180 <a href="http://tools.ietf.org/html/rfc6352#section-14.1">14.1</a>. Namespace Registration . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
181 <a href="http://tools.ietf.org/html/rfc6352#section-15">15</a>. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-46">46</a>
182 <a href="http://tools.ietf.org/html/rfc6352#section-16">16</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-47">47</a>
183 <a href="http://tools.ietf.org/html/rfc6352#section-16.1">16.1</a>. Normative References . . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-47">47</a>
184 <a href="http://tools.ietf.org/html/rfc6352#section-16.2">16.2</a>. Informative References . . . . . . . . . . . . . . . . . . <a href="http://tools.ietf.org/html/rfc6352#page-48">48</a>
185
186
187
188
189
190
191
192
193
194
195
196 <span class="grey">Daboo Standards Track [Page 3]</span>
197 </pre><pre class="newpage"><a name="page-4" id="page-4" href="http://tools.ietf.org/html/rfc6352#page-4" class="invisible"> </a>
198 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
199
200
201 <span class="h2"><h2><a name="section-1">1</a>. Introduction and Overview</h2></span>
202
203 Address books containing contact information are a key component of
204 personal information management tools, such as email, calendaring and
205 scheduling, and instant messaging clients. To date several protocols
206 have been used for remote access to contact data, including the
207 Lightweight Directory Access Protocol (LDAP) [<a href="http://tools.ietf.org/html/rfc4510" title="&quot;Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map&quot;">RFC4510</a>], Internet
208 Message Support Protocol [<a href="http://tools.ietf.org/html/rfc6352#ref-IMSP" title="&quot;IMSP - Internet Message Support Protocol&quot;">IMSP</a>], and Application Configuration Access
209 Protocol (ACAP) [<a href="http://tools.ietf.org/html/rfc2244" title="&quot;ACAP -- Application Configuration Access Protocol&quot;">RFC2244</a>], together with SyncML used for
210 synchronization of such data.
211
212 WebDAV [<a href="http://tools.ietf.org/html/rfc4918" title="&quot;HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)&quot;">RFC4918</a>] offers a number of advantages as a framework or
213 basis for address book access and management. Most of these
214 advantages boil down to a significant reduction in the costs of
215 design, implementation, interoperability testing, and deployment.
216
217 The key features of address book support with WebDAV are:
218
219 1. Ability to use multiple address books with hierarchical layout.
220
221 2. Ability to control access to individual address books and address
222 entries as per WebDAV Access Control List (ACL) [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>].
223
224 3. Principal collections can be used to enumerate and query other
225 users on the system as per WebDAV ACL [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>].
226
227 4. Server-side searching of address data, avoiding the need for
228 clients to download an entire address book in order to do a quick
229 address 'expansion' operation.
230
231 5. Well-defined internationalization support through WebDAV's use of
232 XML.
233
234 6. Use of vCards [<a href="http://tools.ietf.org/html/rfc2426" title="&quot;vCard MIME Directory Profile&quot;">RFC2426</a>] for well-defined address schema to
235 enhance client interoperability.
236
237 7. Many limited clients (e.g., mobile devices) contain an HTTP stack
238 that makes implementing WebDAV much easier than other protocols.
239
240 The key disadvantage of address book support in WebDAV is:
241
242 1. Lack of change notification. Many of the alternative protocols
243 also lack this ability. However, an extension for push
244 notifications could easily be developed.
245
246 vCard is a MIME directory profile aimed at encapsulating personal
247 addressing and contact information about people. The specification
248 of vCard was originally done by the Versit consortium, with a
249
250
251
252 <span class="grey">Daboo Standards Track [Page 4]</span>
253 </pre><pre class="newpage"><a name="page-5" id="page-5" href="http://tools.ietf.org/html/rfc6352#page-5" class="invisible"> </a>
254 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
255
256
257 subsequent 3.0 version standardized by the IETF [<a href="http://tools.ietf.org/html/rfc2426" title="&quot;vCard MIME Directory Profile&quot;">RFC2426</a>]. vCard is
258 in widespread use in email clients and mobile devices as a means of
259 encapsulating address information for transport via email or for
260 import/export and synchronization operations.
261
262 An update to vCard -- vCard v4 -- is currently being developed
263 [<a href="http://tools.ietf.org/html/rfc6350" title="&quot;vCard Format Specification&quot;">RFC6350</a>] and is compatible with this specification.
264
265 <span class="h2"><h2><a name="section-2">2</a>. Conventions</h2></span>
266
267 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
268 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
269 document are to be interpreted as described in [<a href="http://tools.ietf.org/html/rfc2119" title="&quot;Key words for use in RFCs to Indicate Requirement Levels&quot;">RFC2119</a>].
270
271 The term "protected" is used in the Conformance field of property
272 definitions as defined in <a href="http://tools.ietf.org/html/rfc4918#section-15">Section&nbsp;15 of [RFC4918]</a>.
273
274 This document uses XML DTD fragments ([<a href="http://tools.ietf.org/html/rfc6352#ref-W3C.REC-xml-20081126">W3C.REC-xml-20081126</a>], <a href="http://tools.ietf.org/html/rfc6352#section-3.2">Section</a>
275 <a href="http://tools.ietf.org/html/rfc6352#section-3.2">3.2</a>) as a purely notational convention. WebDAV request and response
276 bodies cannot be validated by a DTD due to the specific extensibility
277 rules defined in <a href="http://tools.ietf.org/html/rfc4918#section-17">Section&nbsp;17 of [RFC4918]</a> and due to the fact that all
278 XML elements defined by that specification use the XML namespace name
279 "DAV:". In particular:
280
281 1. Element names use the "DAV:" namespace.
282
283 2. Element ordering is irrelevant unless explicitly stated.
284
285 3. Extension elements (elements not already defined as valid child
286 elements) may be added anywhere, except when explicitly stated
287 otherwise.
288
289 4. Extension attributes (attributes not already defined as valid for
290 this element) may be added anywhere, except when explicitly
291 stated otherwise.
292
293 The namespace "urn:ietf:params:xml:ns:carddav" is reserved for the
294 XML elements defined in this specification, its revisions, and
295 related CardDAV specifications. XML elements defined by individual
296 implementations MUST NOT use the "urn:ietf:params:xml:ns:carddav"
297 namespace, and instead should use a namespace that they control.
298
299 When XML element types in the namespaces "DAV:" and
300 "urn:ietf:params:xml:ns:carddav" are referenced in this document
301 outside of the context of an XML fragment, the strings "DAV:" and
302 "CARDDAV:" will be prefixed to the element types, respectively.
303
304
305
306
307
308 <span class="grey">Daboo Standards Track [Page 5]</span>
309 </pre><pre class="newpage"><a name="page-6" id="page-6" href="http://tools.ietf.org/html/rfc6352#page-6" class="invisible"> </a>
310 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
311
312
313 This document inherits, and sometimes extends, DTD productions from
314 <a href="http://tools.ietf.org/html/rfc4918#section-14">Section&nbsp;14 of [RFC4918]</a>.
315
316 Also, note that some CardDAV XML element names are identical to
317 WebDAV XML element names, though their namespace differs. Care must
318 be taken not to confuse the two sets of names.
319
320 <span class="h2"><h2><a name="section-3">3</a>. Requirements Overview</h2></span>
321
322 This section lists what functionality is required of a CardDAV
323 server. To advertise support for CardDAV, a server:
324
325 o MUST support vCard v3 [<a href="http://tools.ietf.org/html/rfc2426" title="&quot;vCard MIME Directory Profile&quot;">RFC2426</a>] as a media type for the address
326 object resource format;
327
328 o MUST support WebDAV Class 3 [<a href="http://tools.ietf.org/html/rfc4918" title="&quot;HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)&quot;">RFC4918</a>];
329
330 o MUST support WebDAV ACL [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>];
331
332 o MUST support secure transport as defined in [<a href="http://tools.ietf.org/html/rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>] using
333 Transport Layer Security (TLS) [<a href="http://tools.ietf.org/html/rfc5246" title="&quot;The Transport Layer Security (TLS) Protocol Version 1.2&quot;">RFC5246</a>] and using the certificate
334 validation procedures described in [<a href="http://tools.ietf.org/html/rfc5280" title="&quot;Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile&quot;">RFC5280</a>];
335
336 o MUST support ETags [<a href="http://tools.ietf.org/html/rfc2616" title="&quot;Hypertext Transfer Protocol -- HTTP/1.1&quot;">RFC2616</a>] with additional requirements
337 specified in <a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.3">Section 6.3.2.3</a> of this document;
338
339 o MUST support all address book reports defined in <a href="http://tools.ietf.org/html/rfc6352#section-8">Section 8</a> of this
340 document; and
341
342 o MUST advertise support on all address book collections and address
343 object resources for the address book reports in the
344 DAV:supported-report-set property, as defined in Versioning
345 Extensions to WebDAV [<a href="http://tools.ietf.org/html/rfc3253" title="&quot;Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)&quot;">RFC3253</a>].
346
347 In addition, a server:
348
349 o SHOULD support vCard v4 [<a href="http://tools.ietf.org/html/rfc6350" title="&quot;vCard Format Specification&quot;">RFC6350</a>] as a media type for the address
350 object resource format;
351
352 o SHOULD support the extended MKCOL method [<a href="http://tools.ietf.org/html/rfc5689" title="&quot;Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)&quot;">RFC5689</a>] to create
353 address book collections as defined in <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">Section 6.3.1</a> of this
354 document.
355
356 o SHOULD support the DAV:current-user-principal-URL property as
357 defined in [<a href="http://tools.ietf.org/html/rfc5397" title="&quot;WebDAV Current Principal Extension&quot;">RFC5397</a>] to give clients a fast way to locate user
358 principals.
359
360
361
362
363
364 <span class="grey">Daboo Standards Track [Page 6]</span>
365 </pre><pre class="newpage"><a name="page-7" id="page-7" href="./rfc6352-CardDAV-Spec_files/rfc6352-CardDAV-Spec.html" class="invisible"> </a>
366 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
367
368
369 <span class="h2"><h2><a name="section-4">4</a>. Address Book Data Model</h2></span>
370
371 As a brief overview, a CardDAV address book is modeled as a WebDAV
372 collection with a well-defined structure; each of these address book
373 collections contains a number of resources representing address
374 objects as their direct child resources. Each resource representing
375 an address object is called an "address object resource". Each
376 address object resource and each address book collection can be
377 individually locked and have individual WebDAV properties.
378 Requirements derived from this model are provided in Sections <a href="http://tools.ietf.org/html/rfc6352#section-5.1">5.1</a> and
379 5.2.
380
381 <span class="h3"><h3><a name="section-4.1">4.1</a>. Address Book Server</h3></span>
382
383 A CardDAV server is an address-aware engine combined with a WebDAV
384 server. The server may include address data in some parts of its URL
385 namespace and non-address data in other parts.
386
387 A WebDAV server can advertise itself as a CardDAV server if it
388 supports the functionality defined in this specification at any point
389 within the root of its repository. That might mean that address data
390 is spread throughout the repository and mixed with non-address data
391 in nearby collections (e.g., address data may be found in /lisa/
392 addressbook/ as well as in /bernard/addressbook/, and non-address
393 data in /lisa/calendars/). Or, it might mean that address data can
394 be found only in certain sections of the repository (e.g.,
395 /addressbooks/user/). Address book features are only required in the
396 repository sections that are or contain address objects. So, a
397 repository confining address data to the /carddav/ collection would
398 only need to support the CardDAV required features within that
399 collection.
400
401 The CardDAV server is the canonical location for address data and
402 state information. Clients may submit requests to change data or
403 download data. Clients may store address objects offline and attempt
404 to synchronize at a later time. Address data on the server can
405 change between the time of last synchronization and when attempting
406 an update, as address book collections may be shared and accessible
407 via multiple clients. Entity tags and locking help this work.
408
409 <span class="h2"><h2><a name="section-5">5</a>. Address Book Resources</h2></span>
410
411 <span class="h3"><h3><a name="section-5.1">5.1</a>. Address Object Resources</h3></span>
412
413 This specification uses vCard as the default format for address or
414 contact information being stored on the server. However, this
415 specification does allow other formats for address data provided that
416 the server advertises support for those additional formats as
417
418
419
420 <span class="grey">Daboo Standards Track [Page 7]</span>
421 </pre><pre class="newpage"><a name="page-8" id="page-8" href="http://tools.ietf.org/html/rfc6352#page-8" class="invisible"> </a>
422 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
423
424
425 described below. The requirements in this section pertain to vCard
426 address data or formats that follow the semantics of vCard data.
427
428 Address object resources contained in address book collections MUST
429 contain a single vCard component only.
430
431 vCard components in an address book collection MUST have a UID
432 property value that MUST be unique in the scope of the address book
433 collection in which it is contained.
434
435 <span class="h4"><h4><a name="section-5.1.1">5.1.1</a>. Data Type Conversion</h4></span>
436
437 Servers might support more than one primary media type for address
438 object resources, for example, vCard v3.0 and vCard v4.0. In such
439 cases, servers have to accept all media types that they advertise via
440 the CARDDAV:supported-address-data WebDAV property (see
441 <a href="http://tools.ietf.org/html/rfc6352#section-6.2.2">Section 6.2.2</a>).
442
443 However, clients can use standard HTTP content negotiation behavior
444 (the Accept request header defined in <a href="http://tools.ietf.org/html/rfc2616#section-14.1">Section&nbsp;14.1 of [RFC2616]</a>) to
445 request that an address object resource's data be returned in a
446 specific media type format. For example, a client merely capable of
447 handling vCard v3.0 would only want to have address object resources
448 returned in v3.0 format.
449
450 Additionally, REPORT requests, defined later in this specification,
451 allow for the return of address object resource data within an XML
452 response body. Again, the client can use content negotiation to
453 request that data be returned in a specific media type by specifying
454 appropriate attributes on the CARDDAV:address-data XML element used
455 in the request body (see <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>).
456
457 In some cases, it might not be possible for a server to convert from
458 one media type to another. When that happens, the server MUST return
459 the CARDDAV:supported-address-data-conversion precondition (see
460 below) in the response body (when the failure to convert applies to
461 the entire response) or use that same precondition code in the
462 DAV:response XML element in the response for the targeted address
463 object resource when one of the REPORTs defined below is used. See
464 <a href="http://tools.ietf.org/html/rfc6352#section-8.7.2">Section 8.7.2</a> for an example of this.
465
466 <span class="h5"><h5><a name="section-5.1.1.1">5.1.1.1</a>. Additional Precondition for GET</h5></span>
467
468 This specification creates additional preconditions for the GET
469 method.
470
471
472
473
474
475
476 <span class="grey">Daboo Standards Track [Page 8]</span>
477 </pre><pre class="newpage"><a name="page-9" id="page-9" href="http://tools.ietf.org/html/rfc6352#page-9" class="invisible"> </a>
478 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
479
480
481 The new precondition is:
482
483 (CARDDAV:supported-address-data-conversion): The resource targeted
484 by the GET request can be converted to the media type specified in
485 the Accept request header included with the request.
486
487 <span class="h3"><h3><a name="section-5.2">5.2</a>. Address Book Collections</h3></span>
488
489 Address book collections appear to clients as a WebDAV collection
490 resource, identified by a URL. An address book collection MUST
491 report the DAV:collection and CARDDAV:addressbook XML elements in the
492 value of the DAV:resourcetype property. The element type declaration
493 for CARDDAV:addressbook is:
494
495 &lt;!ELEMENT addressbook EMPTY&gt;
496
497 An address book collection can be created through provisioning (e.g.,
498 automatically created when a user's account is provisioned), or it
499 can be created with the extended MKCOL method (see <a href="http://tools.ietf.org/html/rfc6352#section-6.3.1">Section 6.3.1</a>).
500 This can be used by a user to create additional address books (e.g.,
501 "soccer team members") or for users to share an address book (e.g.,
502 "sales team contacts"). However, note that this document doesn't
503 define what extra address book collections are for. Users must rely
504 on non-standard cues to find out what an address book collection is
505 for, or use the CARDDAV:addressbook-description property defined in
506 <a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">Section 6.2.1</a> to provide such a cue.
507
508 The following restrictions are applied to the resources within an
509 address book collection:
510
511 a. Address book collections MUST only contain address object
512 resources and collections that are not address book collections.
513 That is, the only "top-level" non-collection resources allowed in
514 an address book collection are address object resources. This
515 ensures that address book clients do not have to deal with non-
516 address data in an address book collection, though they do have
517 to distinguish between address object resources and collections
518 when using standard WebDAV techniques to examine the contents of
519 a collection.
520
521 b. Collections contained in address book collections MUST NOT
522 contain address book collections at any depth. That is,
523 "nesting" of address book collections within other address book
524 collections at any depth is not allowed. This specification does
525 not define how collections contained in an address book
526 collection are used or how they relate to any address object
527 resources contained in the address book collection.
528
529
530
531
532 <span class="grey">Daboo Standards Track [Page 9]</span>
533 </pre><pre class="newpage"><a name="page-10" id="page-10" href="http://tools.ietf.org/html/rfc6352#page-10" class="invisible"> </a>
534 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
535
536
537 Multiple address book collections MAY be children of the same
538 collection.
539
540 <span class="h2"><h2><a name="section-6">6</a>. Address Book Feature</h2></span>
541
542 <span class="h3"><h3><a name="section-6.1">6.1</a>. Address Book Support</h3></span>
543
544 A server supporting the features described in this document MUST
545 include "addressbook" as a field in the DAV response header from an
546 OPTIONS request on any resource that supports any address book
547 properties, reports, or methods. A value of "addressbook" in the DAV
548 response header MUST indicate that the server supports all MUST level
549 requirements and REQUIRED features specified in this document.
550
551 <span class="h4"><h4><a name="section-6.1.1">6.1.1</a>. Example: Using OPTIONS for the Discovery of Support for CardDAV</h4></span>
552
553 &gt;&gt; Request &lt;&lt;
554
555 OPTIONS /addressbooks/users/ HTTP/1.1
556 Host: addressbook.example.com
557
558 &gt;&gt; Response &lt;&lt;
559
560 HTTP/1.1 200 OK
561 Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE
562 Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, REPORT, ACL
563 DAV: 1, 2, 3, access-control, addressbook
564 DAV: extended-mkcol
565 Date: Sat, 11 Nov 2006 09:32:12 GMT
566 Content-Length: 0
567
568 In this example, the OPTIONS response indicates that the server
569 supports CardDAV in this namespace; therefore, the '/addressbooks/
570 users/' collection may be used as a parent for address book
571 collections as the extended MKCOL method is available and as a
572 possible target for REPORT requests for address book reports.
573
574 <span class="h3"><h3><a name="section-6.2">6.2</a>. Address Book Properties</h3></span>
575
576 <span class="h4"><h4><a name="section-6.2.1">6.2.1</a>. CARDDAV:addressbook-description Property</h4></span>
577
578 Name: addressbook-description
579
580 Namespace: urn:ietf:params:xml:ns:carddav
581
582 Purpose: Provides a human-readable description of the address book
583 collection.
584
585
586
587
588 <span class="grey">Daboo Standards Track [Page 10]</span>
589 </pre><pre class="newpage"><a name="page-11" id="page-11" href="http://tools.ietf.org/html/rfc6352#page-11" class="invisible"> </a>
590 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
591
592
593 Value: Any text.
594
595 Protected: SHOULD NOT be protected so that users can specify a
596 description.
597
598 COPY/MOVE behavior: This property value SHOULD be preserved in COPY
599 and MOVE operations.
600
601 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
602 request.
603
604 Description: This property contains a description of the address
605 book collection that is suitable for presentation to a user. The
606 xml:lang attribute can be used to add a language tag for the value
607 of this property.
608
609 Definition:
610
611 &lt;!ELEMENT addressbook-description (#PCDATA)&gt;
612 &lt;!-- PCDATA value: string --&gt;
613
614 Example:
615
616 &lt;C:addressbook-description xml:lang="fr-CA"
617 xmlns:C="urn:ietf:params:xml:ns:carddav"
618 &gt;Adresses de Oliver Daboo&lt;/C:addressbook-description&gt;
619
620 <span class="h4"><h4><a name="section-6.2.2">6.2.2</a>. CARDDAV:supported-address-data Property</h4></span>
621
622 Name: supported-address-data
623
624 Namespace: urn:ietf:params:xml:ns:carddav
625
626 Purpose: Specifies what media types are allowed for address object
627 resources in an address book collection.
628
629 Protected: MUST be protected as it indicates the level of support
630 provided by the server.
631
632 COPY/MOVE behavior: This property value MUST be preserved in COPY
633 and MOVE operations.
634
635 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
636 request.
637
638 Description: The CARDDAV:supported-address-data property is used to
639 specify the media type supported for the address object resources
640 contained in a given address book collection (e.g., vCard version
641
642
643
644 <span class="grey">Daboo Standards Track [Page 11]</span>
645 </pre><pre class="newpage"><a name="page-12" id="page-12" href="http://tools.ietf.org/html/rfc6352#page-12" class="invisible"> </a>
646 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
647
648
649 3.0). Any attempt by the client to store address object resources
650 with a media type not listed in this property MUST result in an
651 error, with the CARDDAV:supported-address-data precondition
652 (<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.1">Section 6.3.2.1</a>) being violated. In the absence of this
653 property, the server MUST only accept data with the media type
654 "text/vcard" and vCard version 3.0, and clients can assume that is
655 all the server will accept.
656
657 Definition:
658
659 &lt;!ELEMENT supported-address-data (address-data-type+)&gt;
660
661 &lt;!ELEMENT address-data-type EMPTY&gt;
662 &lt;!ATTLIST address-data-type content-type CDATA "text/vcard"
663 version CDATA "3.0"&gt;
664 &lt;!-- content-type value: a MIME media type --&gt;
665 &lt;!-- version value: a version string --&gt;
666
667 Example:
668
669 &lt;C:supported-address-data
670 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
671 &lt;C:address-data-type content-type="text/vcard" version="3.0"/&gt;
672 &lt;/C:supported-address-data&gt;
673
674 <span class="h4"><h4><a name="section-6.2.3">6.2.3</a>. CARDDAV:max-resource-size Property</h4></span>
675
676 Name: max-resource-size
677
678 Namespace: urn:ietf:params:xml:ns:carddav
679
680 Purpose: Provides a numeric value indicating the maximum size in
681 octets of a resource that the server is willing to accept when an
682 address object resource is stored in an address book collection.
683
684 Value: Any text representing a numeric value.
685
686 Protected: MUST be protected as it indicates limits provided by the
687 server.
688
689 COPY/MOVE behavior: This property value MUST be preserved in COPY
690 and MOVE operations.
691
692 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
693 request.
694
695
696
697
698
699
700 <span class="grey">Daboo Standards Track [Page 12]</span>
701 </pre><pre class="newpage"><a name="page-13" id="page-13" href="http://tools.ietf.org/html/rfc6352#page-13" class="invisible"> </a>
702 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
703
704
705 Description: The CARDDAV:max-resource-size is used to specify a
706 numeric value that represents the maximum size in octets that the
707 server is willing to accept when an address object resource is
708 stored in an address book collection. Any attempt to store an
709 address book object resource exceeding this size MUST result in an
710 error, with the CARDDAV:max-resource-size precondition
711 (<a href="http://tools.ietf.org/html/rfc6352#section-6.3.2.1">Section 6.3.2.1</a>) being violated. In the absence of this
712 property, the client can assume that the server will allow storing
713 a resource of any reasonable size.
714
715 Definition:
716
717 &lt;!ELEMENT max-resource-size (#PCDATA)&gt;
718 &lt;!-- PCDATA value: a numeric value (positive decimal integer) --&gt;
719
720 Example:
721
722 &lt;C:max-resource-size xmlns:C="urn:ietf:params:xml:ns:carddav"
723 &gt;102400&lt;/C:max-resource-size&gt;
724
725 <span class="h3"><h3><a name="section-6.3">6.3</a>. Creating Resources</h3></span>
726
727 Address book collections and address object resources may be created
728 by either a CardDAV client or the CardDAV server. This specification
729 defines restrictions and a data model that both clients and servers
730 MUST adhere to when manipulating such address data.
731
732 <span class="h4"><h4><a name="section-6.3.1">6.3.1</a>. Extended MKCOL Method</h4></span>
733
734 An HTTP request using the extended MKCOL method [<a href="http://tools.ietf.org/html/rfc5689" title="&quot;Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)&quot;">RFC5689</a>] can be used
735 to create a new address book collection resource. A server MAY
736 restrict address book collection creation to particular collections.
737
738 To create an address book, the client sends an extended MKCOL request
739 to the server and in the body of the request sets the
740 DAV:resourcetype property to the resource type for an address book
741 collection as defined in <a href="http://tools.ietf.org/html/rfc6352#section-5.2">Section 5.2</a>.
742
743 Support for creating address books on the server is only RECOMMENDED
744 and not REQUIRED because some address book stores only support one
745 address book per user (or principal), and those are typically pre-
746 created for each account. However, servers and clients are strongly
747 encouraged to support address book creation whenever possible to
748 allow users to create multiple address book collections to help
749 organize their data better.
750
751
752
753
754
755
756 <span class="grey">Daboo Standards Track [Page 13]</span>
757 </pre><pre class="newpage"><a name="page-14" id="page-14" href="http://tools.ietf.org/html/rfc6352#page-14" class="invisible"> </a>
758 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
759
760
761 The DAV:displayname property can be used for a human-readable name of
762 the address book. Clients can either specify the value of the
763 DAV:displayname property in the request body of the extended MKCOL
764 request or, alternatively, issue a PROPPATCH request to change the
765 DAV:displayname property to the appropriate value immediately after
766 using the extended MKCOL request. When displaying address book
767 collections to users, clients SHOULD check the DAV:displayname
768 property and use that value as the name of the address book. In the
769 event that the DAV:displayname property is not set, the client MAY
770 use the last part of the address book collection URI as the name;
771 however, that path segment may be "opaque" and not represent any
772 meaningful human-readable text.
773
774 <span class="h5"><h5><a name="section-6.3.1.1">6.3.1.1</a>. Example - Successful MKCOL Request</h5></span>
775
776 This example creates an address book collection called /home/lisa/
777 addressbook/ on the server addressbook.example.com with specific
778 values for the properties DAV:resourcetype, DAV:displayname, and
779 CARDDAV:addressbook-description.
780
781 &gt;&gt; Request &lt;&lt;
782
783 MKCOL /home/lisa/addressbook/ HTTP/1.1
784 Host: addressbook.example.com
785 Content-Type: text/xml; charset="utf-8"
786 Content-Length: xxx
787
788 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
789 &lt;D:mkcol xmlns:D="DAV:"
790 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
791 &lt;D:set&gt;
792 &lt;D:prop&gt;
793 &lt;D:resourcetype&gt;
794 &lt;D:collection/&gt;
795 &lt;C:addressbook/&gt;
796 &lt;/D:resourcetype&gt;
797 &lt;D:displayname&gt;Lisa's Contacts&lt;/D:displayname&gt;
798 &lt;C:addressbook-description xml:lang="en"
799 &gt;My primary address book.&lt;/C:addressbook-description&gt;
800 &lt;/D:prop&gt;
801 &lt;/D:set&gt;
802 &lt;/D:mkcol&gt;
803
804
805
806
807
808
809
810
811
812 <span class="grey">Daboo Standards Track [Page 14]</span>
813 </pre><pre class="newpage"><a name="page-15" id="page-15" href="http://tools.ietf.org/html/rfc6352#page-15" class="invisible"> </a>
814 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
815
816
817 &gt;&gt; Response &lt;&lt;
818
819 HTTP/1.1 201 Created
820 Cache-Control: no-cache
821 Date: Sat, 11 Nov 2006 09:32:12 GMT
822 Content-Type: application/xml; charset="utf-8"
823 Content-Length: xxxx
824
825 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
826 &lt;D:mkcol-response xmlns:D="DAV:"
827 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
828 &lt;D:propstat&gt;
829 &lt;D:prop&gt;
830 &lt;D:resourcetype/&gt;
831 &lt;D:displayname/&gt;
832 &lt;C:addressbook-description/&gt;
833 &lt;/D:prop&gt;
834 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
835 &lt;/D:propstat&gt;
836 &lt;/D:mkcol-response&gt;
837
838 <span class="h4"><h4><a name="section-6.3.2">6.3.2</a>. Creating Address Object Resources</h4></span>
839
840 Clients populate address book collections with address object
841 resources. The URL for each address object resource is entirely
842 arbitrary and does not need to bear a specific relationship (but
843 might) to the address object resource's vCard properties or other
844 metadata. New address object resources MUST be created with a PUT
845 request targeted at an unmapped URI. A PUT request targeted at a
846 mapped URI updates an existing address object resource.
847
848 When servers create new resources, it's not hard for the server to
849 choose a unique URL. It's slightly tougher for clients, because a
850 client might not want to examine all resources in the collection and
851 might not want to lock the entire collection to ensure that a new one
852 isn't created with a name collision. However, there is an HTTP
853 feature to mitigate this. If the client intends to create a new
854 address resource, the client SHOULD use the HTTP header "If-None-
855 Match: *" on the PUT request. The Request-URI on the PUT request
856 MUST include the target collection, where the resource is to be
857 created, plus the name of the resource in the last path segment. The
858 "If-None-Match" header ensures that the client will not inadvertently
859 overwrite an existing resource even if the last path segment turned
860 out to already be used.
861
862
863
864
865
866
867
868 <span class="grey">Daboo Standards Track [Page 15]</span>
869 </pre><pre class="newpage"><a name="page-16" id="page-16" href="http://tools.ietf.org/html/rfc6352#page-16" class="invisible"> </a>
870 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
871
872
873 &gt;&gt; Request &lt;&lt;
874
875 PUT /lisa/addressbook/newvcard.vcf HTTP/1.1
876 If-None-Match: *
877 Host: addressbook.example.com
878 Content-Type: text/vcard
879 Content-Length: xxx
880
881 BEGIN:VCARD
882 VERSION:3.0
883 FN:Cyrus Daboo
884 N:Daboo;Cyrus
885 ADR;TYPE=POSTAL:;2822 Email HQ;Suite 2821;RFCVille;PA;15213;USA
886 EMAIL;TYPE=INTERNET,PREF:cyrus@example.com
887 NICKNAME:me
888 NOTE:Example VCard.
889 ORG:Self Employed
890 TEL;TYPE=WORK,VOICE:412 605 0499
891 TEL;TYPE=FAX:412 605 0705
892 URL:http://www.example.com
893 UID:1234-5678-9000-1
894 END:VCARD
895
896 &gt;&gt; Response &lt;&lt;
897
898 HTTP/1.1 201 Created
899 Date: Thu, 02 Sep 2004 16:53:32 GMT
900 Content-Length: 0
901 ETag: "123456789-000-111"
902
903 The request to change an existing address object resource without
904 overwriting a change made on the server uses a specific ETag in an
905 "If-Match" header, rather than the "If-None-Match" header.
906
907 File names for vCards are commonly suffixed by ".vcf", and clients
908 may choose to use the same convention for URLs.
909
910 <span class="h5"><h5><a name="section-6.3.2.1">6.3.2.1</a>. Additional Preconditions for PUT, COPY, and MOVE</h5></span>
911
912 This specification creates additional preconditions for the PUT,
913 COPY, and MOVE methods. These preconditions apply:
914
915 o When a PUT operation of an address object resource into an address
916 book collection occurs.
917
918 o When a COPY or MOVE operation of an address object resource into
919 an address book collection occurs.
920
921
922
923
924 <span class="grey">Daboo Standards Track [Page 16]</span>
925 </pre><pre class="newpage"><a name="page-17" id="page-17" href="http://tools.ietf.org/html/rfc6352#page-17" class="invisible"> </a>
926 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
927
928
929 The new preconditions are:
930
931 (CARDDAV:supported-address-data): The resource submitted in the
932 PUT request, or targeted by a COPY or MOVE request, MUST be a
933 supported media type (i.e., vCard) for address object resources.
934
935 (CARDDAV:valid-address-data): The resource submitted in the PUT
936 request, or targeted by a COPY or MOVE request, MUST be valid data
937 for the media type being specified (i.e., MUST contain valid vCard
938 data).
939
940 (CARDDAV:no-uid-conflict): The resource submitted in the PUT
941 request, or targeted by a COPY or MOVE request, MUST NOT specify a
942 vCard UID property value already in use in the targeted address
943 book collection or overwrite an existing address object resource
944 with one that has a different UID property value. Servers SHOULD
945 report the URL of the resource that is already making use of the
946 same UID property value in the DAV:href element.
947
948 &lt;!ELEMENT no-uid-conflict (DAV:href)&gt;
949
950 (CARDDAV:addressbook-collection-location-ok): In a COPY or MOVE
951 request, when the Request-URI is an address book collection, the
952 URI targeted by the Destination HTTP Request header MUST identify
953 a location where an address book collection can be created.
954
955 (CARDDAV:max-resource-size): The resource submitted in the PUT
956 request, or targeted by a COPY or MOVE request, MUST have a size
957 in octets less than or equal to the value of the
958 CARDDAV:max-resource-size property value (<a href="http://tools.ietf.org/html/rfc6352#section-6.2.3">Section 6.2.3</a>) on the
959 address book collection where the resource will be stored.
960
961 <span class="h5"><h5><a name="section-6.3.2.2">6.3.2.2</a>. Non-Standard vCard Properties and Parameters</h5></span>
962
963 vCard provides a "standard mechanism for doing non-standard things".
964 This extension support allows implementers to make use of non-
965 standard vCard properties and parameters whose names are prefixed
966 with the text "X-".
967
968 Servers MUST support the use of non-standard properties and
969 parameters in address object resources stored via the PUT method.
970
971 Servers may need to enforce rules for their own "private" properties
972 or parameters, so servers MAY reject any attempt by the client to
973 change those or use values for those outside of any restrictions the
974 server may have. A server SHOULD ensure that any "private"
975
976
977
978
979
980 <span class="grey">Daboo Standards Track [Page 17]</span>
981 </pre><pre class="newpage"><a name="page-18" id="page-18" href="http://tools.ietf.org/html/rfc6352#page-18" class="invisible"> </a>
982 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
983
984
985 properties or parameters it uses follow the convention of including a
986 vendor ID in the "X-" name, as described in <a href="http://tools.ietf.org/html/rfc2426#section-3.8">Section&nbsp;3.8 of [RFC2426]</a>,
987 e.g., "X-ABC-PRIVATE".
988
989 <span class="h5"><h5><a name="section-6.3.2.3">6.3.2.3</a>. Address Object Resource Entity Tag</h5></span>
990
991 The DAV:getetag property MUST be defined and set to a strong entity
992 tag on all address object resources.
993
994 A response to a GET request targeted at an address object resource
995 MUST contain an ETag response header field indicating the current
996 value of the strong entity tag of the address object resource.
997
998 Servers SHOULD return a strong entity tag (ETag header) in a PUT
999 response when the stored address object resource is equivalent by
1000 octet equality to the address object resource submitted in the body
1001 of the PUT request. This allows clients to reliably use the returned
1002 strong entity tag for data synchronization purposes. For instance,
1003 the client can do a PROPFIND request on the stored address object
1004 resource, have the DAV:getetag property returned, compare that value
1005 with the strong entity tag it received on the PUT response, and know
1006 that if they are equal, then the address object resource on the
1007 server has not been changed.
1008
1009 In the case where the data stored by a server as a result of a PUT
1010 request is not equivalent by octet equality to the submitted address
1011 object resource, the behavior of the ETag response header is not
1012 specified here, with the exception that a strong entity tag MUST NOT
1013 be returned in the response. As a result, a client may need to
1014 retrieve the modified address object resource (and ETag) as a basis
1015 for further changes, rather than use the address object resource it
1016 had sent with the PUT request.
1017
1018 <span class="h2"><h2><a name="section-7">7</a>. Address Book Access Control</h2></span>
1019
1020 CardDAV servers MUST support and adhere to the requirements of WebDAV
1021 ACL [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>]. WebDAV ACL provides a framework for an extensible set
1022 of privileges that can be applied to WebDAV collections and ordinary
1023 resources.
1024
1025 <span class="h3"><h3><a name="section-7.1">7.1</a>. Additional Principal Properties</h3></span>
1026
1027 This section defines additional properties for WebDAV principal
1028 resources as defined in [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>].
1029
1030
1031
1032
1033
1034
1035
1036 <span class="grey">Daboo Standards Track [Page 18]</span>
1037 </pre><pre class="newpage"><a name="page-19" id="page-19" href="http://tools.ietf.org/html/rfc6352#page-19" class="invisible"> </a>
1038 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1039
1040
1041 <span class="h4"><h4><a name="section-7.1.1">7.1.1</a>. CARDDAV:addressbook-home-set Property</h4></span>
1042
1043 Name: addressbook-home-set
1044
1045 Namespace: urn:ietf:params:xml:ns:carddav
1046
1047 Purpose: Identifies the URL of any WebDAV collections that contain
1048 address book collections owned by the associated principal
1049 resource.
1050
1051 Protected: MAY be protected if the server has fixed locations in
1052 which address books are created.
1053
1054 COPY/MOVE behavior: This property value MUST be preserved in COPY
1055 and MOVE operations.
1056
1057 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
1058 request.
1059
1060 Description: The CARDDAV:addressbook-home-set property is meant to
1061 allow users to easily find the address book collections owned by
1062 the principal. Typically, users will group all the address book
1063 collections that they own under a common collection. This
1064 property specifies the URL of collections that are either address
1065 book collections or ordinary collections that have child or
1066 descendant address book collections owned by the principal.
1067
1068 Definition:
1069
1070 &lt;!ELEMENT addressbook-home-set (DAV:href*)&gt;
1071
1072 Example:
1073
1074 &lt;C:addressbook-home-set xmlns:D="DAV:"
1075 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1076 &lt;D:href&gt;/bernard/addresses/&lt;/D:href&gt;
1077 &lt;/C:addressbook-home-set&gt;
1078
1079 <span class="h4"><h4><a name="section-7.1.2">7.1.2</a>. CARDDAV:principal-address Property</h4></span>
1080
1081 Name: principal-address
1082
1083 Namespace: urn:ietf:params:xml:ns:carddav
1084
1085 Purpose: Identifies the URL of an address object resource that
1086 corresponds to the user represented by the principal.
1087
1088
1089
1090
1091
1092 <span class="grey">Daboo Standards Track [Page 19]</span>
1093 </pre><pre class="newpage"><a name="page-20" id="page-20" href="http://tools.ietf.org/html/rfc6352#page-20" class="invisible"> </a>
1094 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1095
1096
1097 Protected: MAY be protected if the server provides a fixed location
1098 for principal addresses.
1099
1100 COPY/MOVE behavior: This property value MUST be preserved in COPY
1101 and MOVE operations.
1102
1103 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
1104 request.
1105
1106 Description: The CARDDAV:principal-address property is meant to
1107 allow users to easily find contact information for users
1108 represented by principals on the system. This property specifies
1109 the URL of the resource containing the corresponding contact
1110 information. The resource could be an address object resource in
1111 an address book collection, or it could be a resource in a
1112 "regular" collection.
1113
1114 Definition:
1115
1116 &lt;!ELEMENT principal-address (DAV:href)&gt;
1117
1118 Example:
1119
1120 &lt;C:principal-address xmlns:D="DAV:"
1121 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1122 &lt;D:href&gt;/system/cyrus.vcf&lt;/D:href&gt;
1123 &lt;/C:principal-address&gt;
1124
1125 <span class="h2"><h2><a name="section-8">8</a>. Address Book Reports</h2></span>
1126
1127 This section defines the reports that CardDAV servers MUST support on
1128 address book collections and address object resources.
1129
1130 CardDAV servers MUST advertise support for these reports on all
1131 address book collections and address object resources with the
1132 DAV:supported-report-set property defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.1.5">Section&nbsp;3.1.5 of
1133 [RFC3253]</a>. CardDAV servers MAY also advertise support for these
1134 reports on ordinary collections.
1135
1136 Some of these reports allow address data (from possibly multiple
1137 resources) to be returned.
1138
1139 <span class="h3"><h3><a name="section-8.1">8.1</a>. REPORT Method</h3></span>
1140
1141 The REPORT method (defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.6">Section&nbsp;3.6 of [RFC3253]</a>) provides an
1142 extensible mechanism for obtaining information about a resource.
1143 Unlike the PROPFIND method, which returns the value of one or more
1144 named properties, the REPORT method can involve more complex
1145
1146
1147
1148 <span class="grey">Daboo Standards Track [Page 20]</span>
1149 </pre><pre class="newpage"><a name="page-21" id="page-21" href="http://tools.ietf.org/html/rfc6352#page-21" class="invisible"> </a>
1150 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1151
1152
1153 processing. REPORT is valuable in cases where the server has access
1154 to all of the information needed to perform the complex request (such
1155 as a query), and where it would require multiple requests for the
1156 client to retrieve the information needed to perform the same
1157 request.
1158
1159 A server that supports this specification MUST support the
1160 DAV:expand-property report (defined in <a href="http://tools.ietf.org/html/rfc3253#section-3.8">Section&nbsp;3.8 of [RFC3253]</a>).
1161
1162 <span class="h3"><h3><a name="section-8.2">8.2</a>. Ordinary Collections</h3></span>
1163
1164 Servers MAY support the reports defined in this document on ordinary
1165 collections (collections that are not address book collections) in
1166 addition to address book collections or address object resources. In
1167 computing responses to the reports on ordinary collections, servers
1168 MUST only consider address object resources contained in address book
1169 collections that are targeted by the REPORT based on the value of the
1170 Depth request header.
1171
1172 <span class="h3"><h3><a name="section-8.3">8.3</a>. Searching Text: Collations</h3></span>
1173
1174 Some of the reports defined in this section do text matches of
1175 character strings provided by the client and compared to stored
1176 address data. Since vCard data is by default encoded in the UTF-8
1177 charset and may include characters outside of the US-ASCII charset
1178 range in some property and parameter values, there is a need to
1179 ensure that text matching follows well-defined rules.
1180
1181 To deal with this, this specification makes use of the IANA Collation
1182 Registry defined in [<a href="http://tools.ietf.org/html/rfc4790" title="&quot;Internet Application Protocol Collation Registry&quot;">RFC4790</a>] to specify collations that may be used
1183 to carry out the text comparison operations with a well-defined rule.
1184
1185 Collations supported by the server MUST support "equality" and
1186 "substring" match operations as per <a href="http://tools.ietf.org/html/rfc4790#section-4.2">[RFC4790], Section&nbsp;4.2</a>, including
1187 the "prefix" and "suffix" options for "substring" matching. CardDAV
1188 uses these match options for "equals", "contains", "starts-with", and
1189 "ends-with" match operations.
1190
1191 CardDAV servers are REQUIRED to support the "i;ascii-casemap"
1192 [<a href="http://tools.ietf.org/html/rfc4790" title="&quot;Internet Application Protocol Collation Registry&quot;">RFC4790</a>] and "i;unicode-casemap" [<a href="http://tools.ietf.org/html/rfc5051" title="&quot;i;unicode-casemap - Simple Unicode Collation Algorithm&quot;">RFC5051</a>] collations and MAY
1193 support other collations.
1194
1195 Servers MUST advertise the set of collations that they support via
1196 the CARDDAV:supported-collation-set property defined on any resource
1197 that supports reports that use collations.
1198
1199
1200
1201
1202
1203
1204 <span class="grey">Daboo Standards Track [Page 21]</span>
1205 </pre><pre class="newpage"><a name="page-22" id="page-22" href="http://tools.ietf.org/html/rfc6352#page-22" class="invisible"> </a>
1206 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1207
1208
1209 In the absence of a collation explicitly specified by the client, or
1210 if the client specifies the "default" collation identifier (as
1211 defined in <a href="http://tools.ietf.org/html/rfc4790#section-3.1">[RFC4790], Section&nbsp;3.1</a>), the server MUST default to using
1212 "i;unicode-casemap" as the collation.
1213
1214 Wildcards (as defined in <a href="http://tools.ietf.org/html/rfc4790#section-3.2">[RFC4790], Section&nbsp;3.2</a>) MUST NOT be used in
1215 the collation identifier.
1216
1217 If the client chooses a collation not supported by the server, the
1218 server MUST respond with a CARDDAV:supported-collation precondition
1219 error response.
1220
1221 <span class="h4"><h4><a name="section-8.3.1">8.3.1</a>. CARDDAV:supported-collation-set Property</h4></span>
1222
1223 Name: supported-collation-set
1224
1225 Namespace: urn:ietf:params:xml:ns:carddav
1226
1227 Purpose: Identifies the set of collations supported by the server
1228 for text matching operations.
1229
1230 Protected: MUST be protected as it indicates support provided by the
1231 server.
1232
1233 COPY/MOVE behavior: This property value MUST be preserved in COPY
1234 and MOVE operations.
1235
1236 allprop behavior: SHOULD NOT be returned by a PROPFIND DAV:allprop
1237 request.
1238
1239 Description: The CARDDAV:supported-collation-set property contains
1240 two or more CARDDAV:supported-collation elements that specify the
1241 identifiers of the collations supported by the server.
1242
1243 Definition:
1244
1245 &lt;!ELEMENT supported-collation-set (
1246 supported-collation
1247 supported-collation
1248 supported-collation*)&gt;
1249 &lt;!-- Both "i;ascii-casemap" and "i;unicode-casemap"
1250 will be present --&gt;
1251
1252 &lt;!ELEMENT supported-collation (#PCDATA)&gt;
1253
1254
1255
1256
1257
1258
1259
1260 <span class="grey">Daboo Standards Track [Page 22]</span>
1261 </pre><pre class="newpage"><a name="page-23" id="page-23" href="http://tools.ietf.org/html/rfc6352#page-23" class="invisible"> </a>
1262 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1263
1264
1265 Example:
1266
1267 &lt;C:supported-collation-set
1268 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1269 &lt;C:supported-collation&gt;i;ascii-casemap&lt;/C:supported-collation&gt;
1270 &lt;C:supported-collation&gt;i;octet&lt;/C:supported-collation&gt;
1271 &lt;C:supported-collation&gt;i;unicode-casemap&lt;/C:supported-collation&gt;
1272 &lt;/C:supported-collation-set&gt;
1273
1274 <span class="h3"><h3><a name="section-8.4">8.4</a>. Partial Retrieval</h3></span>
1275
1276 Some address book reports defined in this document allow partial
1277 retrieval of address object resources. A CardDAV client can specify
1278 what information to return in the body of an address book REPORT
1279 request.
1280
1281 A CardDAV client can request particular WebDAV property values, all
1282 WebDAV property values, or a list of the names of the resource's
1283 WebDAV properties. A CardDAV client can also request address data to
1284 be returned and whether all vCard properties should be returned or
1285 only particular ones. See CARDDAV:address-data in <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>.
1286
1287 <span class="h3"><h3><a name="section-8.5">8.5</a>. Non-Standard Properties and Parameters</h3></span>
1288
1289 Servers MUST support the use of non-standard vCard property or
1290 parameter names in the CARDDAV:address-data XML element in address
1291 book REPORT requests to allow clients to request that non-standard
1292 properties and parameters be returned in the address data provided in
1293 the response.
1294
1295 Servers MAY support the use of non-standard vCard property or
1296 parameter names in the CARDDAV:prop-filter and CARDDAV:param-filter
1297 XML elements specified in the CARDDAV:filter XML element of address
1298 book REPORT requests.
1299
1300 Servers MUST fail with the CARDDAV:supported-filter precondition if
1301 an address book REPORT request uses a CARDDAV:prop-filter or
1302 CARDDAV:param-filter XML element that makes reference to a non-
1303 standard vCard property or parameter name on which the server does
1304 not support queries.
1305
1306 <span class="h3"><h3><a name="section-8.6">8.6</a>. CARDDAV:addressbook-query Report</h3></span>
1307
1308 The CARDDAV:addressbook-query REPORT performs a search for all
1309 address object resources that match a specified filter. The response
1310 of this report will contain all the WebDAV properties and address
1311 object resource data specified in the request. In the case of the
1312
1313
1314
1315
1316 <span class="grey">Daboo Standards Track [Page 23]</span>
1317 </pre><pre class="newpage"><a name="page-24" id="page-24" href="http://tools.ietf.org/html/rfc6352#page-24" class="invisible"> </a>
1318 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1319
1320
1321 CARDDAV:address-data XML element, one can explicitly specify the
1322 vCard properties that should be returned in the address object
1323 resource data that matches the filter.
1324
1325 The format of this report is modeled on the PROPFIND method. The
1326 request and response bodies of the CARDDAV:addressbook-query report
1327 use XML elements that are also used by PROPFIND. In particular, the
1328 request can include XML elements to request WebDAV properties to be
1329 returned. When that occurs, the response should follow the same
1330 behavior as PROPFIND with respect to the DAV:multistatus response
1331 elements used to return specific WebDAV property results. For
1332 instance, a request to retrieve the value of a WebDAV property that
1333 does not exist is an error and MUST be noted with a response XML
1334 element that contains a 404 (Not Found) status value.
1335
1336 Support for the CARDDAV:addressbook-query REPORT is REQUIRED.
1337
1338 Marshalling:
1339
1340 The request body MUST be a CARDDAV:addressbook-query XML element
1341 as defined in <a href="http://tools.ietf.org/html/rfc6352#section-10.3">Section 10.3</a>.
1342
1343 The request MUST include a Depth header. The scope of the query
1344 is determined by the value of the Depth header. For example, to
1345 query all address object resources in an address book collection,
1346 the REPORT would use the address book collection as the Request-
1347 URI and specify a Depth of 1 or infinity.
1348
1349 The response body for a successful request MUST be a
1350 DAV:multistatus XML element (i.e., the response uses the same
1351 format as the response for PROPFIND). In the case where there are
1352 no response elements, the returned DAV:multistatus XML element is
1353 empty.
1354
1355 The response body for a successful CARDDAV:addressbook-query
1356 REPORT request MUST contain a DAV:response element for each
1357 address object that matched the search filter. Address data is
1358 returned in the CARDDAV:address-data XML element inside the
1359 DAV:propstat XML element.
1360
1361 Preconditions:
1362
1363 (CARDDAV:supported-address-data): The attributes "content-type"
1364 and "version" of the CARDDAV:address-data XML element (see
1365 <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>) specify a media type supported by the server for
1366 address object resources.
1367
1368
1369
1370
1371
1372 <span class="grey">Daboo Standards Track [Page 24]</span>
1373 </pre><pre class="newpage"><a name="page-25" id="page-25" href="http://tools.ietf.org/html/rfc6352#page-25" class="invisible"> </a>
1374 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1375
1376
1377 (CARDDAV:supported-filter): The CARDDAV:prop-filter (see
1378 <a href="http://tools.ietf.org/html/rfc6352#section-10.5.1">Section 10.5.1</a>) and CARDDAV:param-filter (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5.2">Section 10.5.2</a>) XML
1379 elements used in the CARDDAV:filter XML element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5">Section 10.5</a>)
1380 in the REPORT request only make reference to vCard properties and
1381 parameters for which queries are supported by the server. That
1382 is, if the CARDDAV:filter element attempts to reference an
1383 unsupported vCard property or parameter, this precondition is
1384 violated. A server SHOULD report the CARDDAV:prop-filter or
1385 CARDDAV:param-filter for which it does not provide support.
1386
1387 &lt;!ELEMENT supported-filter (prop-filter*,
1388 param-filter*)&gt;
1389
1390 (CARDDAV:supported-collation): Any XML attribute specifying a
1391 collation MUST specify a collation supported by the server as
1392 described in <a href="http://tools.ietf.org/html/rfc6352#section-8.3">Section 8.3</a>.
1393
1394 Postconditions:
1395
1396 (DAV:number-of-matches-within-limits): The number of matching
1397 address object resources must fall within server-specific,
1398 predefined limits. For example, this condition might be triggered
1399 if a search specification would cause the return of an extremely
1400 large number of responses.
1401
1402 <span class="h4"><h4><a name="section-8.6.1">8.6.1</a>. Limiting Results</h4></span>
1403
1404 A client can limit the number of results returned by the server
1405 through use of the CARDDAV:limit element in the request body. This
1406 is useful when clients are only interested in a few matches or only
1407 have limited space to display results to users and thus don't need
1408 the overhead of receiving more than that. When the results are
1409 truncated by the server, the server MUST follow the rules below for
1410 indicating a result set truncation to the client.
1411
1412 <span class="h4"><h4><a name="section-8.6.2">8.6.2</a>. Truncation of Results</h4></span>
1413
1414 A server MAY limit the number of resources in a response, for
1415 example, to limit the amount of work expended in processing a query,
1416 or as the result of an explicit limit set by the client. If the
1417 result set is truncated because of such a limit, the response MUST
1418 use status code 207 (Multi-Status), return a DAV:multistatus response
1419 body, and indicate a status of 507 (Insufficient Storage) for the
1420 Request-URI. That DAV:response element SHOULD include a DAV:error
1421 element with the DAV:number-of-matches-within-limits precondition, as
1422 defined in <a href="http://tools.ietf.org/html/rfc3744#section-9.2">[RFC3744], Section&nbsp;9.2</a>.
1423
1424
1425
1426
1427
1428 <span class="grey">Daboo Standards Track [Page 25]</span>
1429 </pre><pre class="newpage"><a name="page-26" id="page-26" href="http://tools.ietf.org/html/rfc6352#page-26" class="invisible"> </a>
1430 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1431
1432
1433 The server SHOULD also include the partial results in additional
1434 DAV:response elements. If a client-requested limit is being applied,
1435 the 507 response for the Request-URI MUST NOT be included in
1436 calculating the limit (e.g., if the client requests that only a
1437 single result be returned, and multiple matches are present, then the
1438 DAV:multistatus response will include one DAV:response for the
1439 matching resource and one DAV:response for the 507 status on the
1440 Request-URI).
1441
1442 <span class="h4"><h4><a name="section-8.6.3">8.6.3</a>. Example: Partial Retrieval of vCards Matching NICKNAME</h4></span>
1443
1444 In this example, the client requests that the server search for
1445 address object resources that contain a NICKNAME property whose value
1446 equals some specific text and return specific vCard properties for
1447 those vCards found. In addition, the DAV:getetag property is also
1448 requested and returned as part of the response.
1449
1450 &gt;&gt; Request &lt;&lt;
1451
1452 REPORT /home/bernard/addressbook/ HTTP/1.1
1453 Host: addressbook.example.com
1454 Depth: 1
1455 Content-Type: text/xml; charset="utf-8"
1456 Content-Length: xxxx
1457
1458 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1459 &lt;C:addressbook-query xmlns:D="DAV:"
1460 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1461 &lt;D:prop&gt;
1462 &lt;D:getetag/&gt;
1463 &lt;C:address-data&gt;
1464 &lt;C:prop name="VERSION"/&gt;
1465 &lt;C:prop name="UID"/&gt;
1466 &lt;C:prop name="NICKNAME"/&gt;
1467 &lt;C:prop name="EMAIL"/&gt;
1468 &lt;C:prop name="FN"/&gt;
1469 &lt;/C:address-data&gt;
1470 &lt;/D:prop&gt;
1471 &lt;C:filter&gt;
1472 &lt;C:prop-filter name="NICKNAME"&gt;
1473 &lt;C:text-match collation="i;unicode-casemap"
1474 match-type="equals"
1475 &gt;me&lt;/C:text-match&gt;
1476 &lt;/C:prop-filter&gt;
1477 &lt;/C:filter&gt;
1478 &lt;/C:addressbook-query&gt;
1479
1480
1481
1482
1483
1484 <span class="grey">Daboo Standards Track [Page 26]</span>
1485 </pre><pre class="newpage"><a name="page-27" id="page-27" href="http://tools.ietf.org/html/rfc6352#page-27" class="invisible"> </a>
1486 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1487
1488
1489 &gt;&gt; Response &lt;&lt;
1490
1491 HTTP/1.1 207 Multi-Status
1492 Date: Sat, 11 Nov 2006 09:32:12 GMT
1493 Content-Type: text/xml; charset="utf-8"
1494 Content-Length: xxxx
1495
1496 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1497 &lt;D:multistatus xmlns:D="DAV:"
1498 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1499 &lt;D:response&gt;
1500 &lt;D:href&gt;/home/bernard/addressbook/v102.vcf&lt;/D:href&gt;
1501 &lt;D:propstat&gt;
1502 &lt;D:prop&gt;
1503 &lt;D:getetag&gt;"23ba4d-ff11fb"&lt;/D:getetag&gt;
1504 &lt;C:address-data&gt;BEGIN:VCARD
1505 VERSION:3.0
1506 NICKNAME:me
1507 UID:34222-232@example.com
1508 FN:Cyrus Daboo
1509 EMAIL:daboo@example.com
1510 END:VCARD
1511 &lt;/C:address-data&gt;
1512 &lt;/D:prop&gt;
1513 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1514 &lt;/D:propstat&gt;
1515 &lt;/D:response&gt;
1516 &lt;/D:multistatus&gt;
1517
1518 <span class="h4"><h4><a name="section-8.6.4">8.6.4</a>. Example: Partial Retrieval of vCards Matching a Full Name or</h4></span>
1519 Email Address
1520
1521 In this example, the client requests that the server search for
1522 address object resources that contain a FN property whose value
1523 contains some specific text or that contain an EMAIL property whose
1524 value contains other text and return specific vCard properties for
1525 those vCards found. In addition, the DAV:getetag property is also
1526 requested and returned as part of the response.
1527
1528 &gt;&gt; Request &lt;&lt;
1529
1530 REPORT /home/bernard/addressbook/ HTTP/1.1
1531 Host: addressbook.example.com
1532 Depth: 1
1533 Content-Type: text/xml; charset="utf-8"
1534 Content-Length: xxxx
1535
1536
1537
1538
1539
1540 <span class="grey">Daboo Standards Track [Page 27]</span>
1541 </pre><pre class="newpage"><a name="page-28" id="page-28" href="http://tools.ietf.org/html/rfc6352#page-28" class="invisible"> </a>
1542 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1543
1544
1545 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1546 &lt;C:addressbook-query xmlns:D="DAV:"
1547 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1548 &lt;D:prop&gt;
1549 &lt;D:getetag/&gt;
1550 &lt;C:address-data&gt;
1551 &lt;C:prop name="VERSION"/&gt;
1552 &lt;C:prop name="UID"/&gt;
1553 &lt;C:prop name="NICKNAME"/&gt;
1554 &lt;C:prop name="EMAIL"/&gt;
1555 &lt;C:prop name="FN"/&gt;
1556 &lt;/C:address-data&gt;
1557 &lt;/D:prop&gt;
1558 &lt;C:filter test="anyof"&gt;
1559 &lt;C:prop-filter name="FN"&gt;
1560 &lt;C:text-match collation="i;unicode-casemap"
1561 match-type="contains"
1562 &gt;daboo&lt;/C:text-match&gt;
1563 &lt;/C:prop-filter&gt;
1564 &lt;C:prop-filter name="EMAIL"&gt;
1565 &lt;C:text-match collation="i;unicode-casemap"
1566 match-type="contains"
1567 &gt;daboo&lt;/C:text-match&gt;
1568 &lt;/C:prop-filter&gt;
1569 &lt;/C:filter&gt;
1570 &lt;/C:addressbook-query&gt;
1571
1572 &gt;&gt; Response &lt;&lt;
1573
1574 HTTP/1.1 207 Multi-Status
1575 Date: Sat, 11 Nov 2006 09:32:12 GMT
1576 Content-Type: text/xml; charset="utf-8"
1577 Content-Length: xxxx
1578
1579 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1580 &lt;D:multistatus xmlns:D="DAV:"
1581 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1582 &lt;D:response&gt;
1583 &lt;D:href&gt;/home/bernard/addressbook/v102.vcf&lt;/D:href&gt;
1584 &lt;D:propstat&gt;
1585 &lt;D:prop&gt;
1586 &lt;D:getetag&gt;"23ba4d-ff11fb"&lt;/D:getetag&gt;
1587 &lt;C:address-data&gt;BEGIN:VCARD
1588 VERSION:3.0
1589 NICKNAME:me
1590 UID:34222-232@example.com
1591 FN:David Boo
1592 EMAIL:daboo@example.com
1593
1594
1595
1596 <span class="grey">Daboo Standards Track [Page 28]</span>
1597 </pre><pre class="newpage"><a name="page-29" id="page-29" href="http://tools.ietf.org/html/rfc6352#page-29" class="invisible"> </a>
1598 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1599
1600
1601 END:VCARD
1602 &lt;/C:address-data&gt;
1603 &lt;/D:prop&gt;
1604 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1605 &lt;/D:propstat&gt;
1606 &lt;/D:response&gt;
1607 &lt;D:response&gt;
1608 &lt;D:href&gt;/home/bernard/addressbook/v104.vcf&lt;/D:href&gt;
1609 &lt;D:propstat&gt;
1610 &lt;D:prop&gt;
1611 &lt;D:getetag&gt;"23ba4d-ff11fc"&lt;/D:getetag&gt;
1612 &lt;C:address-data&gt;BEGIN:VCARD
1613 VERSION:3.0
1614 NICKNAME:oliver
1615 UID:34222-23222@example.com
1616 FN:Oliver Daboo
1617 EMAIL:oliver@example.com
1618 END:VCARD
1619 &lt;/C:address-data&gt;
1620 &lt;/D:prop&gt;
1621 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1622 &lt;/D:propstat&gt;
1623 &lt;/D:response&gt;
1624 &lt;/D:multistatus&gt;
1625
1626 <span class="h4"><h4><a name="section-8.6.5">8.6.5</a>. Example: Truncated Results</h4></span>
1627
1628 In this example, the client requests that the server search for
1629 address object resources that contain a FN property whose value
1630 contains some specific text and return the DAV:getetag property for
1631 two results only. The server response includes a 507 status for the
1632 Request-URI indicating that there were more than two resources that
1633 matched the query, but that the server truncated the result set as
1634 requested by the client.
1635
1636 &gt;&gt; Request &lt;&lt;
1637
1638 REPORT /home/bernard/addressbook/ HTTP/1.1
1639 Host: addressbook.example.com
1640 Depth: 1
1641 Content-Type: text/xml; charset="utf-8"
1642 Content-Length: xxxx
1643
1644 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1645 &lt;C:addressbook-query xmlns:D="DAV:"
1646 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1647
1648
1649
1650
1651
1652 <span class="grey">Daboo Standards Track [Page 29]</span>
1653 </pre><pre class="newpage"><a name="page-30" id="page-30" href="http://tools.ietf.org/html/rfc6352#page-30" class="invisible"> </a>
1654 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1655
1656
1657 &lt;D:prop&gt;
1658 &lt;D:getetag/&gt;
1659 &lt;/D:prop&gt;
1660 &lt;C:filter test="anyof"&gt;
1661 &lt;C:prop-filter name="FN"&gt;
1662 &lt;C:text-match collation="i;unicode-casemap"
1663 match-type="contains"
1664 &gt;daboo&lt;/C:text-match&gt;
1665 &lt;/C:prop-filter&gt;
1666 &lt;/C:filter&gt;
1667 &lt;C:limit&gt;
1668 &lt;C:nresults&gt;2&lt;/C:nresults&gt;
1669 &lt;/C:limit&gt;
1670 &lt;/C:addressbook-query&gt;
1671
1672 &gt;&gt; Response &lt;&lt;
1673
1674 HTTP/1.1 207 Multi-Status
1675 Date: Sat, 11 Nov 2006 09:32:12 GMT
1676 Content-Type: text/xml; charset="utf-8"
1677 Content-Length: xxxx
1678
1679 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1680 &lt;D:multistatus xmlns:D="DAV:"
1681 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1682 &lt;D:response&gt;
1683 &lt;D:href&gt;/home/bernard/addressbook/&lt;/D:href&gt;
1684 &lt;D:status&gt;HTTP/1.1 507 Insufficient Storage&lt;/D:status&gt;
1685 &lt;D:error&gt;&lt;D:number-of-matches-within-limits/&gt;&lt;/D:error&gt;
1686 &lt;D:responsedescription xml:lang="en"&gt;
1687 Only two matching records were returned
1688 &lt;/D:responsedescription&gt;
1689 &lt;/D:response&gt;
1690 &lt;D:response&gt;
1691 &lt;D:href&gt;/home/bernard/addressbook/v102.vcf&lt;/D:href&gt;
1692 &lt;D:propstat&gt;
1693 &lt;D:prop&gt;
1694 &lt;D:getetag&gt;"23ba4d-ff11fb"&lt;/D:getetag&gt;
1695 &lt;/D:prop&gt;
1696 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1697 &lt;/D:propstat&gt;
1698 &lt;/D:response&gt;
1699 &lt;D:response&gt;
1700 &lt;D:href&gt;/home/bernard/addressbook/v104.vcf&lt;/D:href&gt;
1701 &lt;D:propstat&gt;
1702 &lt;D:prop&gt;
1703 &lt;D:getetag&gt;"23ba4d-ff11fc"&lt;/D:getetag&gt;
1704 &lt;/D:prop&gt;
1705
1706
1707
1708 <span class="grey">Daboo Standards Track [Page 30]</span>
1709 </pre><pre class="newpage"><a name="page-31" id="page-31" href="http://tools.ietf.org/html/rfc6352#page-31" class="invisible"> </a>
1710 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1711
1712
1713 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1714 &lt;/D:propstat&gt;
1715 &lt;/D:response&gt;
1716 &lt;/D:multistatus&gt;
1717
1718 <span class="h3"><h3><a name="section-8.7">8.7</a>. CARDDAV:addressbook-multiget Report</h3></span>
1719
1720 The CARDDAV:addressbook-multiget REPORT is used to retrieve specific
1721 address object resources from within a collection, if the Request-URI
1722 is a collection, or to retrieve a specific address object resource,
1723 if the Request-URI is an address object resource. This report is
1724 similar to the CARDDAV:addressbook-query REPORT (see <a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>),
1725 except that it takes a list of DAV:href elements instead of a
1726 CARDDAV:filter element to determine which address object resources to
1727 return.
1728
1729 Support for the addressbook-multiget REPORT is REQUIRED.
1730
1731 Marshalling:
1732
1733 The request body MUST be a CARDDAV:addressbook-multiget XML
1734 element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.7">Section 10.7</a>), which MUST contain at least one
1735 DAV:href XML element and one optional CARDDAV:address-data element
1736 as defined in <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>. If DAV:href elements are present, the
1737 scope of the request is the set of resources identified by these
1738 elements, which all need to be members (not necessarily internal
1739 members) of the resource identified by the Request-URI.
1740 Otherwise, the scope is the resource identified by the Request-URI
1741 itself.
1742
1743 The request MUST include a Depth: 0 header; however, the actual
1744 scope of the REPORT is determined as described above.
1745
1746 The response body for a successful request MUST be a
1747 DAV:multistatus XML element.
1748
1749 The response body for a successful CARDDAV:addressbook-multiget
1750 REPORT request MUST contain a DAV:response element for each
1751 address object resource referenced by the provided set of DAV:href
1752 elements. Address data is returned in the CARDDAV:address-data
1753 element inside the DAV:prop element.
1754
1755 In the case of an error accessing any of the provided DAV:href
1756 resources, the server MUST return the appropriate error status
1757 code in the DAV:status element of the corresponding DAV:response
1758 element.
1759
1760
1761
1762
1763
1764 <span class="grey">Daboo Standards Track [Page 31]</span>
1765 </pre><pre class="newpage"><a name="page-32" id="page-32" href="http://tools.ietf.org/html/rfc6352#page-32" class="invisible"> </a>
1766 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1767
1768
1769 Preconditions:
1770
1771 (CARDDAV:supported-address-data): The attributes "content-type"
1772 and "version" of the CARDDAV:address-data XML elements (see
1773 <a href="http://tools.ietf.org/html/rfc6352#section-10.4">Section 10.4</a>) specify a media type supported by the server for
1774 address object resources.
1775
1776 Postconditions:
1777
1778 None.
1779
1780 <span class="h4"><h4><a name="section-8.7.1">8.7.1</a>. Example: CARDDAV:addressbook-multiget Report</h4></span>
1781
1782 In this example, the client requests the server to return specific
1783 vCard properties of the address components referenced by specific
1784 URIs. In addition, the DAV:getetag property is also requested and
1785 returned as part of the response. Note that, in this example, the
1786 resource at
1787 http://addressbook.example.com/home/bernard/addressbook/vcf1.vcf does
1788 not exist, resulting in an error status response.
1789
1790 &gt;&gt; Request &lt;&lt;
1791
1792 REPORT /home/bernard/addressbook/ HTTP/1.1
1793 Host: addressbook.example.com
1794 Depth: 1
1795 Content-Type: text/xml; charset="utf-8"
1796 Content-Length: xxxx
1797
1798 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1799 &lt;C:addressbook-multiget xmlns:D="DAV:"
1800 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1801 &lt;D:prop&gt;
1802 &lt;D:getetag/&gt;
1803 &lt;C:address-data&gt;
1804 &lt;C:prop name="VERSION"/&gt;
1805 &lt;C:prop name="UID"/&gt;
1806 &lt;C:prop name="NICKNAME"/&gt;
1807 &lt;C:prop name="EMAIL"/&gt;
1808 &lt;C:prop name="FN"/&gt;
1809 &lt;/C:address-data&gt;
1810 &lt;/D:prop&gt;
1811 &lt;D:href&gt;/home/bernard/addressbook/vcf102.vcf&lt;/D:href&gt;
1812 &lt;D:href&gt;/home/bernard/addressbook/vcf1.vcf&lt;/D:href&gt;
1813 &lt;/C:addressbook-multiget&gt;
1814
1815
1816
1817
1818
1819
1820 <span class="grey">Daboo Standards Track [Page 32]</span>
1821 </pre><pre class="newpage"><a name="page-33" id="page-33" href="http://tools.ietf.org/html/rfc6352#page-33" class="invisible"> </a>
1822 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1823
1824
1825 &gt;&gt; Response &lt;&lt;
1826
1827 HTTP/1.1 207 Multi-Status
1828 Date: Sat, 11 Nov 2006 09:32:12 GMT
1829 Content-Type: text/xml; charset="utf-8"
1830 Content-Length: xxxx
1831
1832 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1833 &lt;D:multistatus xmlns:D="DAV:"
1834 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1835 &lt;D:response&gt;
1836 &lt;D:href&gt;/home/bernard/addressbook/vcf102.vcf&lt;/D:href&gt;
1837 &lt;D:propstat&gt;
1838 &lt;D:prop&gt;
1839 &lt;D:getetag&gt;"23ba4d-ff11fb"&lt;/D:getetag&gt;
1840 &lt;C:address-data&gt;BEGIN:VCARD
1841 VERSION:3.0
1842 NICKNAME:me
1843 UID:34222-232@example.com
1844 FN:Cyrus Daboo
1845 EMAIL:daboo@example.com
1846 END:VCARD
1847 &lt;/C:address-data&gt;
1848 &lt;/D:prop&gt;
1849 &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
1850 &lt;/D:propstat&gt;
1851 &lt;/D:response&gt;
1852 &lt;D:response&gt;
1853 &lt;D:href&gt;/home/bernard/addressbook/vcf1.vcf&lt;/D:href&gt;
1854 &lt;D:status&gt;HTTP/1.1 404 Resource not found&lt;/D:status&gt;
1855 &lt;/D:response&gt;
1856 &lt;/D:multistatus&gt;
1857
1858 <span class="h4"><h4><a name="section-8.7.2">8.7.2</a>. Example: CARDDAV:addressbook-multiget Report</h4></span>
1859
1860 In this example, the client requests the server to return vCard v4.0
1861 data of the address components referenced by specific URIs. In
1862 addition, the DAV:getetag property is also requested and returned as
1863 part of the response. Note that, in this example, the resource at
1864 http://addressbook.example.com/home/bernard/addressbook/vcf3.vcf
1865 exists but in a media type format that the server is unable to
1866 convert, resulting in an error status response.
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876 <span class="grey">Daboo Standards Track [Page 33]</span>
1877 </pre><pre class="newpage"><a name="page-34" id="page-34" href="http://tools.ietf.org/html/rfc6352#page-34" class="invisible"> </a>
1878 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1879
1880
1881 &gt;&gt; Request &lt;&lt;
1882
1883 REPORT /home/bernard/addressbook/ HTTP/1.1
1884 Host: addressbook.example.com
1885 Depth: 1
1886 Content-Type: text/xml; charset="utf-8"
1887 Content-Length: xxxx
1888
1889 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1890 &lt;C:addressbook-multiget xmlns:D="DAV:"
1891 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1892 &lt;D:prop&gt;
1893 &lt;D:getetag/&gt;
1894 &lt;C:address-data content-type='text/vcard' version='4.0'/&gt;
1895 &lt;/D:prop&gt;
1896 &lt;D:href&gt;/home/bernard/addressbook/vcf3.vcf&lt;/D:href&gt;
1897 &lt;/C:addressbook-multiget&gt;
1898
1899 &gt;&gt; Response &lt;&lt;
1900
1901 HTTP/1.1 207 Multi-Status
1902 Date: Sat, 11 Nov 2006 09:32:12 GMT
1903 Content-Type: text/xml; charset="utf-8"
1904 Content-Length: xxxx
1905
1906 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1907 &lt;D:multistatus xmlns:D="DAV:"
1908 xmlns:C="urn:ietf:params:xml:ns:carddav"&gt;
1909 &lt;D:response&gt;
1910 &lt;D:href&gt;/home/bernard/addressbook/vcf3.vcf&lt;/D:href&gt;
1911 &lt;D:status&gt;HTTP/1.1 415 Unsupported Media Type&lt;/D:status&gt;
1912 &lt;D:error&gt;&lt;C:supported-address-data-conversion/&gt;&lt;/D:error&gt;
1913 &lt;D:responsedescription&gt;Unable to convert from vCard v3.0
1914 to vCard v4.0&lt;/D:responsedescription&gt;
1915 &lt;/D:response&gt;
1916 &lt;/D:multistatus&gt;
1917
1918 <span class="h2"><h2><a name="section-9">9</a>. Client Guidelines</h2></span>
1919
1920 <span class="h3"><h3><a name="section-9.1">9.1</a>. Restrict the Properties Returned</h3></span>
1921
1922 Clients may not need all the properties in a vCard object when
1923 presenting information to the user, or looking up specific items for
1924 their email address, for example. Since some property data can be
1925 large (e.g., PHOTO or SOUND with in-line content) clients can choose
1926 to ignore those by only requesting the specific items it knows it
1927 will use, through use of the CARDDAV:address-data XML element in the
1928 relevant reports.
1929
1930
1931
1932 <span class="grey">Daboo Standards Track [Page 34]</span>
1933 </pre><pre class="newpage"><a name="page-35" id="page-35" href="http://tools.ietf.org/html/rfc6352#page-35" class="invisible"> </a>
1934 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1935
1936
1937 However, if a client needs to make a change to a vCard, it can only
1938 change the entire vCard data via a PUT request. There is no way to
1939 incrementally make a change to a set of properties within a vCard
1940 object resource. As a result, the client will have to cache the
1941 entire set of properties on a resource that is being changed.
1942
1943 <span class="h3"><h3><a name="section-9.2">9.2</a>. Avoiding Lost Updates</h3></span>
1944
1945 When resources are accessed by multiple clients, the possibility of
1946 clients overwriting each other's changes exists. To alleviate this,
1947 clients SHOULD use the If-Match request header on PUT requests with
1948 the ETag of the previously retrieved resource data to check whether
1949 the resource was modified since it was previously retrieved. If a
1950 precondition failure occurs, clients need to reload the resource and
1951 go through their own merge or conflict resolution process before
1952 writing back the data (again using the If-Match check).
1953
1954 <span class="h3"><h3><a name="section-9.3">9.3</a>. Client Configuration</h3></span>
1955
1956 When CardDAV clients need to be configured, the key piece of
1957 information that they require is the principal-URL of the user whose
1958 address book information is desired. Servers SHOULD support the
1959 DAV:current-user-principal-URL property as defined in [<a href="http://tools.ietf.org/html/rfc5397" title="&quot;WebDAV Current Principal Extension&quot;">RFC5397</a>] to
1960 give clients a fast way to locate user principals.
1961
1962 Given support for SRV records (<a href="http://tools.ietf.org/html/rfc6352#section-11">Section 11</a>) and DAV:current-user-
1963 principal-URL [<a href="http://tools.ietf.org/html/rfc5397" title="&quot;WebDAV Current Principal Extension&quot;">RFC5397</a>], users only need enter a user identifier,
1964 host name, and password to configure their client. The client would
1965 take the host name and do an SRV lookup to locate the CardDAV server,
1966 then execute an authenticated PROPFIND on the root/resource looking
1967 for the DAV:current-user-principal-URL property. The value returned
1968 gives the client direct access to the user's principal-URL and from
1969 there all the related CardDAV properties needed to locate address
1970 books.
1971
1972 <span class="h3"><h3><a name="section-9.4">9.4</a>. Finding Other Users' Address Books</h3></span>
1973
1974 For use cases of address book sharing, one might wish to find the
1975 address book belonging to another user. To find other users' address
1976 books on the same server, the DAV:principal-property-search REPORT
1977 [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>] can be used to search principals for matching properties
1978 and return specified properties for the matching principal resources.
1979 To search for an address book owned by a user named "Laurie", the
1980 REPORT request body would look like this:
1981
1982
1983
1984
1985
1986
1987
1988 <span class="grey">Daboo Standards Track [Page 35]</span>
1989 </pre><pre class="newpage"><a name="page-36" id="page-36" href="http://tools.ietf.org/html/rfc6352#page-36" class="invisible"> </a>
1990 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
1991
1992
1993 &lt;?xml version="1.0" encoding="utf-8" ?&gt;
1994 &lt;D:principal-property-search xmlns:D="DAV:"&gt;
1995 &lt;D:property-search&gt;
1996 &lt;D:prop&gt;
1997 &lt;D:displayname/&gt;
1998 &lt;/D:prop&gt;
1999 &lt;D:match&gt;Laurie&lt;/D:match&gt;
2000 &lt;/D:property-search&gt;
2001 &lt;D:prop&gt;
2002 &lt;C:addressbook-home-set
2003 xmlns:C="urn:ietf:params:xml:ns:carddav"/&gt;
2004 &lt;D:displayname/&gt;
2005 &lt;/D:prop&gt;
2006 &lt;/D:principal-property-search&gt;
2007
2008 The server performs a case-sensitive or caseless search for a
2009 matching string subset of "Laurie" within the DAV:displayname
2010 property. Thus, the server might return "Laurie Dusseault", "Laurier
2011 Desruisseaux", or "Wilfrid Laurier" all as matching DAV:displayname
2012 values, and the address books for each of these.
2013
2014 <span class="h2"><h2><a name="section-10">10</a>. XML Element Definitions</h2></span>
2015
2016 <span class="h3"><h3><a name="section-10.1">10.1</a>. CARDDAV:addressbook XML Element</h3></span>
2017
2018 Name: addressbook
2019
2020 Namespace: urn:ietf:params:xml:ns:carddav
2021
2022 Purpose: Specifies the resource type of an address book collection.
2023
2024 Description: See <a href="http://tools.ietf.org/html/rfc6352#section-5.2">Section 5.2</a>.
2025
2026 Definition:
2027
2028 &lt;!ELEMENT addressbook EMPTY&gt;
2029
2030 <span class="h3"><h3><a name="section-10.2">10.2</a>. CARDDAV:supported-collation XML Element</h3></span>
2031
2032 Name: supported-collation
2033
2034 Namespace: urn:ietf:params:xml:ns:carddav
2035
2036 Purpose: Identifies a single collation via its collation identifier
2037 as defined by [<a href="http://tools.ietf.org/html/rfc4790" title="&quot;Internet Application Protocol Collation Registry&quot;">RFC4790</a>].
2038
2039 Description: The CARDDAV:supported-collation contains the text of a
2040 collation identifier as described in <a href="http://tools.ietf.org/html/rfc6352#section-8.3.1">Section 8.3.1</a>.
2041
2042
2043
2044 <span class="grey">Daboo Standards Track [Page 36]</span>
2045 </pre><pre class="newpage"><a name="page-37" id="page-37" href="http://tools.ietf.org/html/rfc6352#page-37" class="invisible"> </a>
2046 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2047
2048
2049 Definition:
2050
2051 &lt;!ELEMENT supported-collation (#PCDATA)&gt;
2052 &lt;!-- PCDATA value: collation identifier --&gt;
2053
2054 <span class="h3"><h3><a name="section-10.3">10.3</a>. CARDDAV:addressbook-query XML Element</h3></span>
2055
2056 Name: addressbook-query
2057
2058 Namespace: urn:ietf:params:xml:ns:carddav
2059
2060 Purpose: Defines a report for querying address book data
2061
2062 Description: See <a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>.
2063
2064 Definition:
2065
2066 &lt;!ELEMENT addressbook-query ((DAV:allprop |
2067 DAV:propname |
2068 DAV:prop)?, filter, limit?)&gt;
2069
2070 <span class="h3"><h3><a name="section-10.4">10.4</a>. CARDDAV:address-data XML Element</h3></span>
2071
2072 Name: address-data
2073
2074 Namespace: urn:ietf:params:xml:ns:carddav
2075
2076 Purpose: Specifies one of the following:
2077
2078 1. The parts of an address object resource that should be
2079 returned by a given address book REPORT request, and the media
2080 type and version for the returned data; or
2081
2082 2. The content of an address object resource in a response to an
2083 address book REPORT request.
2084
2085 Description: When used in an address book REPORT request, the
2086 CARDDAV:address-data XML element specifies which parts of address
2087 object resources need to be returned in the response. If the
2088 CARDDAV:address-data XML element doesn't contain any CARDDAV:prop
2089 elements, address object resources will be returned in their
2090 entirety. Additionally, a media type and version can be specified
2091 to request that the server return the data in that format if
2092 possible.
2093
2094 Finally, when used in an address book REPORT response, the
2095 CARDDAV:address-data XML element specifies the content of an
2096 address object resource. Given that XML parsers normalize the
2097
2098
2099
2100 <span class="grey">Daboo Standards Track [Page 37]</span>
2101 </pre><pre class="newpage"><a name="page-38" id="page-38" href="http://tools.ietf.org/html/rfc6352#page-38" class="invisible"> </a>
2102 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2103
2104
2105 two-character sequence CRLF (US-ASCII decimal 13 and US-ASCII
2106 decimal 10) to a single LF character (US-ASCII decimal 10), the CR
2107 character (US-ASCII decimal 13) MAY be omitted in address object
2108 resources specified in the CARDDAV:address-data XML element.
2109 Furthermore, address object resources specified in the
2110 CARDDAV:address-data XML element MAY be invalid per their media
2111 type specification if the CARDDAV:address-data XML element part of
2112 the address book REPORT request did not specify required vCard
2113 properties (e.g., UID, etc.) or specified a CARDDAV:prop XML
2114 element with the "novalue" attribute set to "yes".
2115
2116 Note: The CARDDAV:address-data XML element is specified in requests
2117 and responses inside the DAV:prop XML element as if it were a
2118 WebDAV property. However, the CARDDAV:address-data XML element is
2119 not a WebDAV property and as such it is not returned in PROPFIND
2120 responses nor used in PROPPATCH requests.
2121
2122 Note: The address data embedded within the CARDDAV:address-data XML
2123 element MUST follow the standard XML character data encoding
2124 rules, including use of &amp;lt;, &amp;gt;, &amp;amp; etc., entity encoding or
2125 the use of a &lt;![CDATA[ ... ]]&gt; construct. In the latter case, the
2126 vCard data cannot contain the character sequence "]]&gt;", which is
2127 the end delimiter for the CDATA section.
2128
2129 Definition:
2130
2131 &lt;!ELEMENT address-data (allprop | prop*)&gt;
2132
2133 when nested in the DAV:prop XML element in an address book
2134 REPORT request to specify which parts of address object
2135 resources should be returned in the response;
2136
2137 &lt;!ELEMENT address-data (#PCDATA)&gt;
2138 &lt;!-- PCDATA value: address data --&gt;
2139
2140 when nested in the DAV:prop XML element in an address book
2141 REPORT response to specify the content of a returned
2142 address object resource.
2143
2144 &lt;!ATTLIST address-data content-type CDATA "text/vcard"
2145 version CDATA "3.0"&gt;
2146 &lt;!-- content-type value: a MIME media type --&gt;
2147 &lt;!-- version value: a version string --&gt;
2148
2149 attributes can be used on each variant of the
2150 CALDAV:address-data XML element.
2151
2152
2153
2154
2155
2156 <span class="grey">Daboo Standards Track [Page 38]</span>
2157 </pre><pre class="newpage"><a name="page-39" id="page-39" href="http://tools.ietf.org/html/rfc6352#page-39" class="invisible"> </a>
2158 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2159
2160
2161 <span class="h4"><h4><a name="section-10.4.1">10.4.1</a>. CARDDAV:allprop XML Element</h4></span>
2162
2163 Name: allprop
2164
2165 Namespace: urn:ietf:params:xml:ns:carddav
2166
2167 Purpose: Specifies that all vCard properties shall be returned.
2168
2169 Description: This element can be used when the client wants all
2170 vCard properties of components returned by a report.
2171
2172 Definition:
2173
2174 &lt;!ELEMENT allprop EMPTY&gt;
2175
2176 Note: The CARDDAV:allprop element defined here has the same name as
2177 the DAV:allprop element defined in WebDAV. However, the
2178 CARDDAV:allprop element defined here uses the
2179 "urn:ietf:params:xml:ns:carddav" namespace, as opposed to the "DAV:"
2180 namespace used for the DAV:allprop element defined in WebDAV.
2181
2182 <span class="h4"><h4><a name="section-10.4.2">10.4.2</a>. CARDDAV:prop XML Element</h4></span>
2183
2184 Name: prop
2185
2186 Namespace: urn:ietf:params:xml:ns:carddav
2187
2188 Purpose: Defines which vCard properties to return in the response.
2189
2190 Description: The "name" attribute specifies the name of the vCard
2191 property to return (e.g., "NICKNAME"). The "novalue" attribute
2192 can be used by clients to request that the actual value of the
2193 property not be returned (if the "novalue" attribute is set to
2194 "yes"). In that case, the server will return just the vCard
2195 property name and any vCard parameters and a trailing ":" without
2196 the subsequent value data.
2197
2198 vCard allows a "group" prefix to appear before a property name in
2199 the vCard data. When the "name" attribute does not specify a
2200 group prefix, it MUST match properties in the vCard data without a
2201 group prefix or with any group prefix. When the "name" attribute
2202 includes a group prefix, it MUST match properties that have
2203 exactly the same group prefix and name. For example, a "name" set
2204 to "TEL" will match "TEL", "X-ABC.TEL", and "X-ABC-1.TEL" vCard
2205 properties. A "name" set to "X-ABC.TEL" will match an "X-ABC.TEL"
2206 vCard property only; it will not match "TEL" or "X-ABC-1.TEL".
2207
2208
2209
2210
2211
2212 <span class="grey">Daboo Standards Track [Page 39]</span>
2213 </pre><pre class="newpage"><a name="page-40" id="page-40" href="http://tools.ietf.org/html/rfc6352#page-40" class="invisible"> </a>
2214 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2215
2216
2217 Definition:
2218
2219 &lt;!ELEMENT prop EMPTY&gt;
2220
2221 &lt;!ATTLIST prop name CDATA #REQUIRED
2222 novalue (yes | no) "no"&gt;
2223 &lt;!-- name value: a vCard property name --&gt;
2224 &lt;!-- novalue value: "yes" or "no" --&gt;
2225
2226 Note: The CARDDAV:prop element defined here has the same name as the
2227 DAV:prop element defined in WebDAV. However, the CARDDAV:prop
2228 element defined here uses the "urn:ietf:params:xml:ns:carddav"
2229 namespace, as opposed to the "DAV:" namespace used for the DAV:prop
2230 element defined in WebDAV.
2231
2232 <span class="h3"><h3><a name="section-10.5">10.5</a>. CARDDAV:filter XML Element</h3></span>
2233
2234 Name: filter
2235
2236 Namespace: urn:ietf:params:xml:ns:carddav
2237
2238 Purpose: Determines which matching objects are returned.
2239
2240 Description: The "filter" element specifies the search filter used
2241 to match address objects that should be returned by a report. The
2242 "test" attribute specifies whether any (logical OR) or all
2243 (logical AND) of the prop-filter tests need to match in order for
2244 the overall filter to match.
2245
2246 Definition:
2247
2248 &lt;!ELEMENT filter (prop-filter*)&gt;
2249
2250 &lt;!ATTLIST filter test (anyof | allof) "anyof"&gt;
2251 &lt;!-- test value:
2252 anyof logical OR for prop-filter matches
2253 allof logical AND for prop-filter matches --&gt;
2254
2255 <span class="h4"><h4><a name="section-10.5.1">10.5.1</a>. CARDDAV:prop-filter XML Element</h4></span>
2256
2257 Name: prop-filter
2258
2259 Namespace: urn:ietf:params:xml:ns:carddav
2260
2261 Purpose: Limits the search to specific vCard properties.
2262
2263
2264
2265
2266
2267
2268 <span class="grey">Daboo Standards Track [Page 40]</span>
2269 </pre><pre class="newpage"><a name="page-41" id="page-41" href="http://tools.ietf.org/html/rfc6352#page-41" class="invisible"> </a>
2270 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2271
2272
2273 Description: The CARDDAV:prop-filter XML element specifies search
2274 criteria on a specific vCard property (e.g., "NICKNAME"). An
2275 address object is said to match a CARDDAV:prop-filter if:
2276
2277 * A vCard property of the type specified by the "name" attribute
2278 exists, and the CARDDAV:prop-filter is empty, or it matches any
2279 specified CARDDAV:text-match or CARDDAV:param-filter
2280 conditions. The "test" attribute specifies whether any
2281 (logical OR) or all (logical AND) of the text-filter and param-
2282 filter tests need to match in order for the overall filter to
2283 match.
2284
2285 or:
2286
2287 * A vCard property of the type specified by the "name" attribute
2288 does not exist, and the CARDDAV:is-not-defined element is
2289 specified.
2290
2291 vCard allows a "group" prefix to appear before a property name in
2292 the vCard data. When the "name" attribute does not specify a
2293 group prefix, it MUST match properties in the vCard data without a
2294 group prefix or with any group prefix. When the "name" attribute
2295 includes a group prefix, it MUST match properties that have
2296 exactly the same group prefix and name. For example, a "name" set
2297 to "TEL" will match "TEL", "X-ABC.TEL", "X-ABC-1.TEL" vCard
2298 properties. A "name" set to "X-ABC.TEL" will match an "X-ABC.TEL"
2299 vCard property only, it will not match "TEL" or "X-ABC-1.TEL".
2300
2301 Definition:
2302
2303 &lt;!ELEMENT prop-filter (is-not-defined |
2304 (text-match*, param-filter*))&gt;
2305
2306 &lt;!ATTLIST prop-filter name CDATA #REQUIRED
2307 test (anyof | allof) "anyof"&gt;
2308 &lt;!-- name value: a vCard property name (e.g., "NICKNAME")
2309 test value:
2310 anyof logical OR for text-match/param-filter matches
2311 allof logical AND for text-match/param-filter matches --&gt;
2312
2313 <span class="h4"><h4><a name="section-10.5.2">10.5.2</a>. CARDDAV:param-filter XML Element</h4></span>
2314
2315 Name: param-filter
2316
2317 Namespace: urn:ietf:params:xml:ns:carddav
2318
2319 Purpose: Limits the search to specific parameter values.
2320
2321
2322
2323
2324 <span class="grey">Daboo Standards Track [Page 41]</span>
2325 </pre><pre class="newpage"><a name="page-42" id="page-42" href="http://tools.ietf.org/html/rfc6352#page-42" class="invisible"> </a>
2326 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2327
2328
2329 Description: The CARDDAV:param-filter XML element specifies search
2330 criteria on a specific vCard property parameter (e.g., TYPE) in
2331 the scope of a given CARDDAV:prop-filter. A vCard property is
2332 said to match a CARDDAV:param-filter if:
2333
2334 * A parameter of the type specified by the "name" attribute
2335 exists, and the CARDDAV:param-filter is empty, or it matches
2336 the CARDDAV:text-match conditions if specified.
2337
2338 or:
2339
2340 * A parameter of the type specified by the "name" attribute does
2341 not exist, and the CARDDAV:is-not-defined element is specified.
2342
2343 Definition:
2344
2345 &lt;!ELEMENT param-filter (is-not-defined | text-match)?&gt;
2346
2347 &lt;!ATTLIST param-filter name CDATA #REQUIRED&gt;
2348 &lt;!-- name value: a property parameter name (e.g., "TYPE") --&gt;
2349
2350 <span class="h4"><h4><a name="section-10.5.3">10.5.3</a>. CARDDAV:is-not-defined XML Element</h4></span>
2351
2352 Name: is-not-defined
2353
2354 Namespace: urn:ietf:params:xml:ns:carddav
2355
2356 Purpose: Specifies that a match should occur if the enclosing vCard
2357 property or parameter does not exist.
2358
2359 Description: The CARDDAV:is-not-defined XML element specifies that a
2360 match occurs if the enclosing vCard property or parameter value
2361 specified in an address book REPORT request does not exist in the
2362 address data being tested.
2363
2364 Definition:
2365
2366 &lt;!ELEMENT is-not-defined EMPTY&gt;
2367
2368 <span class="h4"><h4><a name="section-10.5.4">10.5.4</a>. CARDDAV:text-match XML Element</h4></span>
2369
2370 Name: text-match
2371
2372 Namespace: urn:ietf:params:xml:ns:carddav
2373
2374 Purpose: Specifies a substring match on a vCard property or
2375 parameter value.
2376
2377
2378
2379
2380 <span class="grey">Daboo Standards Track [Page 42]</span>
2381 </pre><pre class="newpage"><a name="page-43" id="page-43" href="http://tools.ietf.org/html/rfc6352#page-43" class="invisible"> </a>
2382 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2383
2384
2385 Description: The CARDDAV:text-match XML element specifies text used
2386 for a substring match against the vCard property or parameter
2387 value specified in an address book REPORT request.
2388
2389 The "collation" attribute is used to select the collation that the
2390 server MUST use for character string matching. In the absence of
2391 this attribute, the server MUST use the "i;unicode-casemap"
2392 collation.
2393
2394 The "negate-condition" attribute is used to indicate that this
2395 test returns a match if the text matches, when the attribute value
2396 is set to "no", or return a match if the text does not match, if
2397 the attribute value is set to "yes". For example, this can be
2398 used to match components with a CATEGORIES property not set to
2399 PERSON.
2400
2401 The "match-type" attribute is used to indicate the type of match
2402 operation to use. Possible choices are:
2403
2404 "equals" - an exact match to the target string
2405
2406 "contains" - a substring match, matching anywhere within the
2407 target string
2408
2409 "starts-with" - a substring match, matching only at the start
2410 of the target string
2411
2412 "ends-with" - a substring match, matching only at the end of
2413 the target string
2414
2415 Definition:
2416
2417 &lt;!ELEMENT text-match (#PCDATA)&gt;
2418 &lt;!-- PCDATA value: string --&gt;
2419
2420 &lt;!ATTLIST text-match
2421 collation CDATA "i;unicode-casemap"
2422 negate-condition (yes | no) "no"
2423 match-type (equals|contains|starts-with|ends-with) "contains"&gt;
2424
2425 <span class="h3"><h3><a name="section-10.6">10.6</a>. CARDDAV:limit XML Element</h3></span>
2426
2427 Name: limit
2428
2429 Namespace: urn:ietf:params:xml:ns:carddav
2430
2431 Purpose: Specifies different types of limits that can be applied to
2432 the results returned by the server.
2433
2434
2435
2436 <span class="grey">Daboo Standards Track [Page 43]</span>
2437 </pre><pre class="newpage"><a name="page-44" id="page-44" href="http://tools.ietf.org/html/rfc6352#page-44" class="invisible"> </a>
2438 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2439
2440
2441 Description: The CARDDAV:limit XML element can be used to specify
2442 different types of limits that the client can request the server
2443 to apply to the results returned by the server. Currently, only
2444 the CARDDAV:nresults limit can be used; other types of limit could
2445 be defined in the future.
2446
2447 Definition:
2448
2449 &lt;!ELEMENT limit (nresults)&gt;
2450
2451 <span class="h4"><h4><a name="section-10.6.1">10.6.1</a>. CARDDAV:nresults XML Element</h4></span>
2452
2453 Name: nresults
2454
2455 Namespace: urn:ietf:params:xml:ns:carddav
2456
2457 Purpose: Specifies a limit on the number of results returned by the
2458 server.
2459
2460 Description: The CARDDAV:nresults XML element contains a requested
2461 maximum number of DAV:response elements to be returned in the
2462 response body of a query. The server MAY disregard this limit.
2463 The value of this element is an unsigned integer.
2464
2465 Definition:
2466
2467 &lt;!ELEMENT nresults (#PCDATA)&gt;
2468 &lt;!-- nresults value: unsigned integer, must be digits --&gt;
2469
2470 <span class="h3"><h3><a name="section-10.7">10.7</a>. CARDDAV:addressbook-multiget XML Element</h3></span>
2471
2472 Name: addressbook-multiget
2473
2474 Namespace: urn:ietf:params:xml:ns:carddav
2475
2476 Purpose: CardDAV report used to retrieve specific address objects
2477 via their URIs.
2478
2479 Description: See <a href="http://tools.ietf.org/html/rfc6352#section-8.7">Section 8.7</a>.
2480
2481 Definition:
2482
2483 &lt;!ELEMENT addressbook-multiget ((DAV:allprop |
2484 DAV:propname |
2485 DAV:prop)?,
2486 DAV:href+)&gt;
2487
2488
2489
2490
2491
2492 <span class="grey">Daboo Standards Track [Page 44]</span>
2493 </pre><pre class="newpage"><a name="page-45" id="page-45" href="http://tools.ietf.org/html/rfc6352#page-45" class="invisible"> </a>
2494 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2495
2496
2497 <span class="h2"><h2><a name="section-11">11</a>. Service Discovery via SRV Records</h2></span>
2498
2499 [<a name="ref-RFC2782" id="ref-RFC2782">RFC2782</a>] defines a DNS-based service discovery protocol that has
2500 been widely adopted as a means of locating particular services within
2501 a local area network and beyond, using SRV RRs.
2502
2503 This specification adds two service types for use with SRV records:
2504
2505 carddav: Identifies a CardDAV server that uses HTTP without TLS
2506 [<a href="http://tools.ietf.org/html/rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>].
2507
2508 carddavs: Identifies a CardDAV server that uses HTTP with TLS
2509 [<a href="http://tools.ietf.org/html/rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>].
2510
2511 Example: non-TLS service record
2512
2513 _carddav._tcp SRV 0 1 80 addressbook.example.com.
2514
2515 Example: TLS service
2516
2517 _carddavs._tcp SRV 0 1 443 addressbook.example.com.
2518
2519 <span class="h2"><h2><a name="section-12">12</a>. Internationalization Considerations</h2></span>
2520
2521 CardDAV allows internationalized strings to be stored and retrieved
2522 for the description of address book collections (see <a href="http://tools.ietf.org/html/rfc6352#section-6.2.1">Section 6.2.1</a>).
2523
2524 The CARDDAV:addressbook-query REPORT (<a href="http://tools.ietf.org/html/rfc6352#section-8.6">Section 8.6</a>) includes a text
2525 searching option controlled by the CARDDAV:text-match element and
2526 details of character handling are covered in the description of that
2527 element (see <a href="http://tools.ietf.org/html/rfc6352#section-10.5.4">Section 10.5.4</a>).
2528
2529 <span class="h2"><h2><a name="section-13">13</a>. Security Considerations</h2></span>
2530
2531 HTTP protocol transactions are sent in the clear over the network
2532 unless protection from snooping is negotiated. This can be
2533 accomplished by use of TLS as defined in [<a href="http://tools.ietf.org/html/rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>]. In particular,
2534 if HTTP Basic authentication [<a href="http://tools.ietf.org/html/rfc2617" title="&quot;HTTP Authentication: Basic and Digest Access Authentication&quot;">RFC2617</a>] is available, the server MUST
2535 allow TLS to be used at the same time, and it SHOULD prevent use of
2536 Basic authentication when TLS is not in use. Clients SHOULD use TLS
2537 whenever possible.
2538
2539 With the ACL extension [<a href="http://tools.ietf.org/html/rfc3744" title="&quot;Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol&quot;">RFC3744</a>] present, WebDAV allows control over
2540 who can access (read or write) any resource on the WebDAV server. In
2541 addition, WebDAV ACL provides for an "inheritance" mechanism, whereby
2542 resources may inherit access privileges from other resources. Often,
2543 the "other" resource is a parent collection of the resource itself.
2544 Servers are able to support address books that are "private"
2545
2546
2547
2548 <span class="grey">Daboo Standards Track [Page 45]</span>
2549 </pre><pre class="newpage"><a name="page-46" id="page-46" href="http://tools.ietf.org/html/rfc6352#page-46" class="invisible"> </a>
2550 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2551
2552
2553 (accessible only to the "owner"), "shared" (accessible to the owner
2554 and other specified authenticated users), and "public" (accessible to
2555 any authenticated or unauthenticated users). When provisioning
2556 address books of a particular type, servers MUST ensure that the
2557 correct privileges are applied on creation. In particular, private
2558 and shared address books MUST NOT be accessible by unauthenticated
2559 users (to prevent data from being automatically searched or indexed
2560 by web "crawlers").
2561
2562 Clients SHOULD warn users in an appropriate fashion when they copy or
2563 move address data from a private address book to a shared address
2564 book or public address book. Clients SHOULD provide a clear
2565 indication as to which address books are private, shared, or public.
2566 Clients SHOULD provide an appropriate warning when changing access
2567 privileges for a private or shared address book with data so as to
2568 allow unauthenticated users access.
2569
2570 This specification currently relies on standard HTTP authentication
2571 mechanisms for identifying users. These comprise Basic and Digest
2572 authentication [<a href="http://tools.ietf.org/html/rfc2617" title="&quot;HTTP Authentication: Basic and Digest Access Authentication&quot;">RFC2617</a>] as well as TLS [<a href="http://tools.ietf.org/html/rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>] using client-side
2573 certificates.
2574
2575 <span class="h2"><h2><a name="section-14">14</a>. IANA Consideration</h2></span>
2576
2577 This document uses a URN to describe a new XML namespace conforming
2578 to the registry mechanism described in [<a href="http://tools.ietf.org/html/rfc3688" title="&quot;The IETF XML Registry&quot;">RFC3688</a>].
2579
2580 <span class="h3"><h3><a name="section-14.1">14.1</a>. Namespace Registration</h3></span>
2581
2582 Registration request for the carddav namespace:
2583
2584 URI: urn:ietf:params:xml:ns:carddav
2585
2586 Registrant Contact: The IESG &lt;iesg@ietf.org&gt;
2587
2588 XML: None - not applicable for namespace registrations.
2589
2590 <span class="h2"><h2><a name="section-15">15</a>. Acknowledgments</h2></span>
2591
2592 Thanks go to Lisa Dusseault and Bernard Desruisseaux for their work
2593 on CalDAV, on which CardDAV is heavily based. The following
2594 individuals contributed their ideas and support for writing this
2595 specification: Mike Douglass, Stefan Eissing, Helge Hess, Arnaud
2596 Quillaud, Julian Reschke, Elias Sinderson, Greg Stein, Wilfredo
2597 Sanchez, and Simon Vaillancourt.
2598
2599
2600
2601
2602
2603
2604 <span class="grey">Daboo Standards Track [Page 46]</span>
2605 </pre><pre class="newpage"><a name="page-47" id="page-47" href="http://tools.ietf.org/html/rfc6352#page-47" class="invisible"> </a>
2606 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2607
2608
2609 <span class="h2"><h2><a name="section-16">16</a>. References</h2></span>
2610
2611 <span class="h3"><h3><a name="section-16.1">16.1</a>. Normative References</h3></span>
2612
2613 [<a name="ref-RFC2119" id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
2614 Requirement Levels", <a href="http://tools.ietf.org/html/bcp14">BCP 14</a>, <a href="http://tools.ietf.org/html/rfc2119">RFC 2119</a>, March 1997.
2615
2616 [<a name="ref-RFC2426" id="ref-RFC2426">RFC2426</a>] Dawson, F. and T. Howes, "vCard MIME Directory Profile",
2617 <a href="http://tools.ietf.org/html/rfc2426">RFC 2426</a>, September 1998.
2618
2619 [<a name="ref-RFC2616" id="ref-RFC2616">RFC2616</a>] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
2620 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
2621 Transfer Protocol -- HTTP/1.1", <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, June 1999.
2622
2623 [<a name="ref-RFC2617" id="ref-RFC2617">RFC2617</a>] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
2624 Leach, P., Luotonen, A., and L. Stewart, "HTTP
2625 Authentication: Basic and Digest Access Authentication",
2626 <a href="http://tools.ietf.org/html/rfc2617">RFC 2617</a>, June 1999.
2627
2628 [<a name="ref-RFC2782" id="ref-RFC2782">RFC2782</a>] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
2629 specifying the location of services (DNS SRV)", <a href="http://tools.ietf.org/html/rfc2782">RFC 2782</a>,
2630 February 2000.
2631
2632 [<a name="ref-RFC2818" id="ref-RFC2818">RFC2818</a>] Rescorla, E., "HTTP Over TLS", <a href="http://tools.ietf.org/html/rfc2818">RFC 2818</a>, May 2000.
2633
2634 [<a name="ref-RFC3253" id="ref-RFC3253">RFC3253</a>] Clemm, G., Amsden, J., Ellison, T., Kaler, C., and J.
2635 Whitehead, "Versioning Extensions to WebDAV
2636 (Web Distributed Authoring and Versioning)", <a href="http://tools.ietf.org/html/rfc3253">RFC 3253</a>,
2637 March 2002.
2638
2639 [<a name="ref-RFC3688" id="ref-RFC3688">RFC3688</a>] Mealling, M., "The IETF XML Registry", <a href="http://tools.ietf.org/html/bcp81">BCP 81</a>, <a href="http://tools.ietf.org/html/rfc3688">RFC 3688</a>,
2640 January 2004.
2641
2642 [<a name="ref-RFC3744" id="ref-RFC3744">RFC3744</a>] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
2643 Distributed Authoring and Versioning (WebDAV)
2644 Access Control Protocol", <a href="http://tools.ietf.org/html/rfc3744">RFC 3744</a>, May 2004.
2645
2646 [<a name="ref-RFC4790" id="ref-RFC4790">RFC4790</a>] Newman, C., Duerst, M., and A. Gulbrandsen, "Internet
2647 Application Protocol Collation Registry", <a href="http://tools.ietf.org/html/rfc4790">RFC 4790</a>,
2648 March 2007.
2649
2650 [<a name="ref-RFC4918" id="ref-RFC4918">RFC4918</a>] Dusseault, L., "HTTP Extensions for Web Distributed
2651 Authoring and Versioning (WebDAV)", <a href="http://tools.ietf.org/html/rfc4918">RFC 4918</a>, June 2007.
2652
2653 [<a name="ref-RFC5051" id="ref-RFC5051">RFC5051</a>] Crispin, M., "i;unicode-casemap - Simple Unicode Collation
2654 Algorithm", <a href="http://tools.ietf.org/html/rfc5051">RFC 5051</a>, October 2007.
2655
2656
2657
2658
2659
2660 <span class="grey">Daboo Standards Track [Page 47]</span>
2661 </pre><pre class="newpage"><a name="page-48" id="page-48" href="http://tools.ietf.org/html/rfc6352#page-48" class="invisible"> </a>
2662 <span class="grey"><a href="http://tools.ietf.org/html/rfc6352">RFC 6352</a> CardDAV August 2011</span>
2663
2664
2665 [<a name="ref-RFC5246" id="ref-RFC5246">RFC5246</a>] Dierks, T. and E. Rescorla, "The Transport Layer Security
2666 (TLS) Protocol Version 1.2", <a href="http://tools.ietf.org/html/rfc5246">RFC 5246</a>, August 2008.
2667
2668 [<a name="ref-RFC5280" id="ref-RFC5280">RFC5280</a>] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
2669 Housley, R., and W. Polk, "Internet X.509 Public Key
2670 Infrastructure Certificate and Certificate Revocation List
2671 (CRL) Profile", <a href="http://tools.ietf.org/html/rfc5280">RFC 5280</a>, May 2008.
2672
2673 [<a name="ref-RFC5397" id="ref-RFC5397">RFC5397</a>] Sanchez, W. and C. Daboo, "WebDAV Current Principal
2674 Extension", <a href="http://tools.ietf.org/html/rfc5397">RFC 5397</a>, December 2008.
2675
2676 [<a name="ref-RFC5689" id="ref-RFC5689">RFC5689</a>] Daboo, C., "Extended MKCOL for Web Distributed Authoring
2677 and Versioning (WebDAV)", <a href="http://tools.ietf.org/html/rfc5689">RFC 5689</a>, September 2009.
2678
2679 [<a name="ref-RFC6350" id="ref-RFC6350">RFC6350</a>] Perreault, S., "vCard Format Specification", <a href="http://tools.ietf.org/html/rfc6350">RFC 6350</a>,
2680 August 2011.
2681
2682 [<a name="ref-W3C.REC-xml-20081126" id="ref-W3C.REC-xml-20081126">W3C.REC-xml-20081126</a>]
2683 Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
2684 F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
2685 Edition)", World Wide Web Consortium Recommendation REC-
2686 xml-20081126, November 2008,
2687 &lt;<a href="http://www.w3.org/TR/2008/REC-xml-20081126">http://www.w3.org/TR/2008/REC-xml-20081126</a>&gt;.
2688
2689 <span class="h3"><h3><a name="section-16.2">16.2</a>. Informative References</h3></span>
2690
2691 [<a name="ref-IMSP" id="ref-IMSP">IMSP</a>] Myers, J., <a style="text-decoration: none" href="http://www.google.com/search?sitesearch=tools.ietf.org%2Fhtml%2F&q=inurl:draft-+%22IMSP+-+Internet+Message+Support+Protocol%22">"IMSP - Internet Message Support Protocol"</a>,
2692 Work in Progress, June 1995.
2693
2694 [<a name="ref-RFC2244" id="ref-RFC2244">RFC2244</a>] Newman, C. and J. Myers, "ACAP -- Application
2695 Configuration Access Protocol", <a href="http://tools.ietf.org/html/rfc2244">RFC 2244</a>, November 1997.
2696
2697 [<a name="ref-RFC4510" id="ref-RFC4510">RFC4510</a>] Zeilenga, K., "Lightweight Directory Access Protocol
2698 (LDAP): Technical Specification Road Map", <a href="http://tools.ietf.org/html/rfc4510">RFC 4510</a>,
2699 June 2006.
2700
2701 Author's Address
2702
2703 Cyrus Daboo
2704 Apple, Inc.
2705 1 Infinite Loop
2706 Cupertino, CA 95014
2707 USA
2708
2709 EMail: cyrus@daboo.name
2710 URI: <a href="http://www.apple.com/">http://www.apple.com/</a>
2711
2712
2713
2714
2715
2716 Daboo Standards Track [Page 48]
2717 </pre><pre class="newpage">
2718 </pre><br><span class="noprint"><small><small>Html markup produced by rfcmarkup 1.96, available from <a href="http://tools.ietf.org/tools/rfcmarkup/">http://tools.ietf.org/tools/rfcmarkup/</a> </small></small></span></body><style type="text/css" style="display: none !important; ">/*This block of style rules is inserted by AdBlock*/#RadAd_Skyscraper,#bbccom_leaderboard,#center_banner,#footer_adcode,#hbBHeaderSpon,#hiddenHeaderSpon,#navbar_adcode,#rightAds,#rightcolumn_adcode,#top-advertising,#topMPU,#tracker_advertorial,.ad-now,.dfpad,.prWrap,[id^="ad_block"],[id^="adbrite"],[id^="dclkAds"],[id^="ew"][id$="_bannerDiv"],[id^="konaLayer"],[src*="sixsigmatraffic.com"],a.kLink span[id^="preLoadWrap"].preLoadWrap,a[href^="http://ad."][href*=".doubleclick.net/"],a[href^="http://adserver.adpredictive.com"],div#adxLeaderboard,div#dir_ads_site,div#FFN_Banner_Holder,div#FFN_imBox_Container,div#p360-format-box,div#rm_container,div#tads table[align="center"][width="100%"],div#tooltipbox[class^="itxt"],div[class^="dms_ad_IDS"],div[id^="adKontekst_"],div[id^="google_ads_div"],div[id^="kona_"][id$="_wrapper"],div[id^="sponsorads"],div[id^="y5_direct"],embed[flashvars*="AdID"],iframe.chitikaAdBlock,iframe[id^="dapIfM"],iframe[id^="etarget"][id$="banner"],iframe[name^="AdBrite"],iframe[name^="google_ads_"],img[src^="http://cdn.adnxs.com"],ispan#ab_pointer,object#flashad,object#ve_threesixty_swf[name="ve_threesixty_swf"],script[src="//pagead2.googleadservices.com/pagead/show_ads.js"] + ins > ins > iframe,script[src="http://pagead2.googlesyndication.com/pagead/show_ads.js"] + ins > ins > iframe,table[cellpadding="0"][width="100%"] > * > * > * > div[id^="tpa"],#A9AdsMiddleBoxTop,#A9AdsOutOfStockWidgetTop,#A9AdsServicesWidgetTop,#ADSLOT_1,#ADSLOT_2,#ADSLOT_3,#ADSLOT_4,#ADSLOT_SKYSCRAPER,#ADVERTISE_HERE_ROW,#AD_CONTROL_22,#AD_ROW,#AD_newsblock,#ADgoogle_newsblock,#ADsmallWrapper,#Ad1,#Ad160x600,#Ad2,#Ad300x250,#Ad3Left,#Ad3Right,#Ad3TextAd,#AdA,#AdArea,#AdBanner_F1,#AdBar,#AdBar1,#AdBox2,#AdC,#AdContainer,#AdContainerTop,#AdContentModule_F,#AdDetails_GoogleLinksBottom,#AdDetails_InsureWith,#AdE,#AdF,#AdFrame4,#AdG,#AdH,#AdHeader,#AdI,#AdJ,#AdLeaderboardBottom,#AdLeaderboardTop,#AdMiddle,#AdMobileLink,#AdPopUp,#AdRectangle,#AdSenseDiv,#AdServer,#AdShowcase_F1,#AdSky23,#AdSkyscraper,#AdSpacing,#AdSponsor_SF,#AdSubsectionShowcase_F1,#AdTargetControl1_iframe,#AdText,#AdTop,#AdTopLeader,#Ad_BelowContent,#Ad_Block,#Ad_Center1,#Ad_Right1,#Ad_RightBottom,#Ad_RightTop,#Ad_Top,#Adbanner,#Adrectangle,#Ads,#AdsContent,#AdsRight,#AdsWrap,#Ads_BA_CAD,#Ads_BA_CAD2,#Ads_BA_CAD_box,#Ads_BA_SKY,#Ads_CAD,#Ads_OV_BS,#Ads_Special,#AdvertMPU23b,#AdvertPanel,#AdvertiseFrame,#Advertisement,#Advertisements,#Advertorial,#Advertorials,#AdvertsBottom,#AdvertsBottomR,#BANNER_160x600,#BANNER_300x250,#BANNER_728x90,#BannerAd,#BannerAdvert,#BigBoxAd,#BodyAd,#BotAd,#Bottom468x60AD,#ButtonAd,#CompanyDetailsNarrowGoogleAdsPresentationControl,#CompanyDetailsWideGoogleAdsPresentationControl,#ContentAd,#ContentAd1,#ContentAd2,#ContentAdPlaceHolder1,#ContentAdPlaceHolder2,#ContentAdXXL,#ContentPolepositionAds_Result,#CornerAd,#DartAd300x250,#DivAdEggHeadCafeTopBanner,#FIN_videoplayer_300x250ad,#FooterAd,#FooterAdContainer,#GoogleAd1,#GoogleAd2,#GoogleAd3,#GoogleAdsPlaceHolder,#GoogleAdsPresentationControl,#GoogleAdsense,#Google_Adsense_Main,#HEADERAD,#HOME_TOP_RIGHT_BOXAD,#HeaderAD,#HeaderAdsBlock,#HeaderAdsBlockFront,#HeaderBannerAdSpacer,#HeaderTextAd,#HeroAd,#HomeAd1,#HouseAd,#ID_Ad_Sky,#JobsearchResultsAds,#Journal_Ad_125,#Journal_Ad_300,#JuxtapozAds,#KH-contentAd,#LargeRectangleAd,#LeftAd,#LeftAd1,#LeftAdF1,#LeftAdF2,#LftAd,#LoungeAdsDiv,#LowerContentAd,#MainSponsoredLinks,#Nightly_adContainer,#NormalAdModule,#OpenXAds,#OverrideAdArea,#PREFOOTER_LEFT_BOXAD,#PREFOOTER_RIGHT_BOXAD,#PageLeaderAd,#RelevantAds,#RgtAd1,#RightAd,#RightBottom300x250AD,#RightNavTopAdSpot,#RightSponsoredAd,#SectionAd300-250,#SectionSponsorAd,#SideAdMpu,#SidebarAdContainer,#SkyAd,#SpecialAds,#SponsoredAd,#SponsoredLinks,#TL_footer_advertisement,#TOP_ADROW,#TOP_RIGHT_BOXAD,#Tadspacefoot,#Tadspacehead,#Tadspacemrec,#TextLinkAds,#ThreadAd,#Top468x60AD,#TopAd,#TopAdBox,#TopAdContainer,#TopAdDiv,#TopAdPos,#VM-MPU-adspace,#VM-footer-adspace,#VM-header-adspace,#VM-header-adwrap,#XEadLeaderboard,#XEadSkyscraper,#YahooAdParentContainer,#_ads,#abHeaderAdStreamer,#about_adsbottom,#abovepostads,#ad-120x600-sidebar,#ad-120x60Div,#ad-160x600,#ad-160x600-sidebar,#ad-250,#ad-250x300,#ad-300,#ad-300x250,#ad-300x250-sidebar,#ad-300x250Div,#ad-300x60-1,#ad-376x280,#ad-728,#ad-728x90,#ad-728x90-leaderboard-top,#ad-728x90-top0,#ad-ads,#ad-article,#ad-banner,#ad-banner-1,#ad-bigbox,#ad-billboard-bottom,#ad-block-125,#ad-bottom,#ad-bottom-wrapper,#ad-box,#ad-box-first,#ad-box-second,#ad-boxes,#ad-bs,#ad-buttons,#ad-colB-1,#ad-column,#ad-container,#ad-content,#ad-contentad,#ad-first-post,#ad-flex-first,#ad-footer,#ad-footprint-160x600,#ad-frame,#ad-front-footer,#ad-front-sponsoredlinks,#ad-fullbanner2,#ad-globalleaderboard,#ad-halfpage,#ad-header,#ad-header-728x90,#ad-horizontal-header,#ad-img,#ad-inner,#ad-label,#ad-leaderboard,#ad-leaderboard-bottom,#ad-leaderboard-container,#ad-leaderboard-spot,#ad-leaderboard-top,#ad-left,#ad-left-sidebar-ad-1,#ad-left-sidebar-ad-2,#ad-left-sidebar-ad-3,#ad-links-content,#ad-list-row,#ad-lrec,#ad-medium,#ad-medium-rectangle,#ad-medrec,#ad-middlethree,#ad-middletwo,#ad-module,#ad-mpu,#ad-mpu1-spot,#ad-mpu2,#ad-mpu2-spot,#ad-north,#ad-one,#ad-placard,#ad-placeholder,#ad-rectangle,#ad-right,#ad-right-sidebar-ad-1,#ad-right-sidebar-ad-2,#ad-righttop,#ad-row,#ad-side,#ad-side-text,#ad-sidebar,#ad-sky,#ad-skyscraper,#ad-slug-wrapper,#ad-small-banner,#ad-space,#ad-special,#ad-splash,#ad-sponsors,#ad-spot,#ad-squares,#ad-target,#ad-target-Leaderbord,#ad-teaser,#ad-text,#ad-top,#ad-top-banner,#ad-top-text-low,#ad-top-wrap,#ad-tower,#ad-trailerboard-spot,#ad-two,#ad-typ1,#ad-unit,#ad-west,#ad-wrap,#ad-wrap-right,#ad-wrapper,#ad-wrapper1,#ad-yahoo-simple,#ad-zone-1,#ad-zone-2,#ad-zone-inline,#ad01,#ad02,#ad1006,#ad11,#ad125BL,#ad125BR,#ad125TL,#ad125TR,#ad125x125,#ad160x600,#ad160x600right,#ad1Sp,#ad2,#ad2Sp,#ad3,#ad300,#ad300-250,#ad300X250,#ad300_x_250,#ad300x100Middle,#ad300x150,#ad300x250,#ad300x250Module,#ad300x60,#ad300x600,#ad300x600_callout,#ad336,#ad336x280,#ad375x85,#ad4,#ad468,#ad468x60,#ad468x60_top,#ad526x250,#ad600,#ad7,#ad728,#ad728Mid,#ad728Top,#ad728Wrapper,#ad728top,#ad728x90,#ad728x90_1,#ad90,#adBadges,#adBanner,#adBanner10,#adBanner120x600,#adBanner160x600,#adBanner2,#adBanner3,#adBanner336x280,#adBanner4,#adBanner728,#adBanner9,#adBannerTable,#adBannerTop,#adBar,#adBelt,#adBlock125,#adBlockTop,#adBlocks,#adBottbanner,#adBox,#adBox11,#adBox16,#adBox350,#adBox390,#adCirc300X200,#adCirc_620_100,#adCol,#adColumn,#adCompanionSubstitute,#adComponentWrapper,#adContainer,#adContainer_1,#adContainer_2,#adContainer_3,#adDiv,#adDiv300,#adDiv728,#adFiller,#adFps,#adFtofrs,#adGallery,#adGoogleText,#adGroup1,#adHeader,#adHeaderTop,#adIsland,#adL,#adLB,#adLabel,#adLayer,#adLeader,#adLeaderTop,#adLeaderboard,#adMPU,#adMediumRectangle,#adMiddle0Frontpage,#adMiniPremiere,#adMonster1,#adOuter,#adP,#adPlaceHolderRight,#adPlacer,#adPosOne,#adRight,#adRight2,#adSPLITCOLUMNTOPRIGHT,#adSenseModule,#adSenseWrapper,#adServer_marginal,#adSidebar,#adSidebarSq,#adSky,#adSkyscraper,#adSlider,#adSpace,#adSpace0,#adSpace1,#adSpace10,#adSpace11,#adSpace12,#adSpace13,#adSpace14,#adSpace15,#adSpace16,#adSpace17,#adSpace18,#adSpace19,#adSpace2,#adSpace20,#adSpace21,#adSpace22,#adSpace23,#adSpace24,#adSpace25,#adSpace3,#adSpace300_ifrMain,#adSpace4,#adSpace5,#adSpace6,#adSpace7,#adSpace8,#adSpace9,#adSpace_footer,#adSpace_right,#adSpace_top,#adSpacer,#adSpecial,#adSplotlightEm,#adSpot-Leader,#adSpot-banner,#adSpot-island,#adSpot-mrec1,#adSpot-sponsoredlinks,#adSpot-textbox1,#adSpot-widestrip,#adSpotAdvertorial,#adSpotIsland,#adSpotSponsoredLinks,#adSquare,#adStaticA,#adStrip,#adSuperAd,#adSuperPremiere,#adSuperSkyscraper,#adSuperbanner,#adTableCell,#adTag1,#adTag2,#adText,#adTextCustom,#adTextLink,#adText_container,#adTile,#adTop,#adTopContent,#adTopbanner,#adTopboxright,#adTower,#adUnit,#adWrapper,#adZoneTop,#ad_1,#ad_130x250_inhouse,#ad_160x160,#ad_160x600,#ad_190x90,#ad_2,#ad_3,#ad_300,#ad_300_250,#ad_300_250_1,#ad_300a,#ad_300b,#ad_300c,#ad_300x100_m_c,#ad_300x250,#ad_300x250_content_column,#ad_300x250_m_c,#ad_300x250m,#ad_300x90,#ad_4,#ad_468_60,#ad_468x60,#ad_5,#ad_728_foot,#ad_728x90,#ad_728x90_container,#ad_940,#ad_984,#ad_A,#ad_B,#ad_Banner,#ad_C,#ad_C2,#ad_D,#ad_E,#ad_F,#ad_G,#ad_H,#ad_I,#ad_J,#ad_K,#ad_L,#ad_M,#ad_N,#ad_O,#ad_P,#ad_YieldManager-300x250,#ad_YieldManager-728x90,#ad_after_navbar,#ad_anchor,#ad_area,#ad_banner,#ad_banner_top,#ad_banners,#ad_bar,#ad_bellow_post,#ad_bigsize_wrapper,#ad_block_1,#ad_block_2,#ad_bottom,#ad_box,#ad_box_colspan,#ad_box_top,#ad_branding,#ad_bs_area,#ad_buttons,#ad_center_monster,#ad_circ300x250,#ad_cna2,#ad_cont,#ad_container,#ad_container_marginal,#ad_container_side,#ad_container_sidebar,#ad_container_top,#ad_content_top,#ad_content_wrap,#ad_feature,#ad_firstpost,#ad_footer,#ad_front_three,#ad_fullbanner,#ad_gallery,#ad_global_header,#ad_h3,#ad_haha_1,#ad_haha_4,#ad_halfpage,#ad_head,#ad_header,#ad_holder,#ad_horizontal,#ad_horseshoe_left,#ad_horseshoe_right,#ad_horseshoe_spacer,#ad_horseshoe_top,#ad_hotpots,#ad_in_arti,#ad_island,#ad_label,#ad_large_rectangular,#ad_lastpost,#ad_layer2,#ad_leader,#ad_leaderBoard,#ad_leaderboard,#ad_leaderboard728x90,#ad_leaderboard_top,#ad_left,#ad_lnk,#ad_lrec,#ad_lwr_square,#ad_main,#ad_medium_rectangle,#ad_medium_rectangular,#ad_mediumrectangle,#ad_menu_header,#ad_message,#ad_middle,#ad_most_pop_234x60_req_wrapper,#ad_mpu,#ad_mpu300x250,#ad_mpuav,#ad_mrcontent,#ad_newsletter,#ad_overlay,#ad_play_300,#ad_rect,#ad_rect_body,#ad_rect_bottom,#ad_rectangle,#ad_rectangle_medium,#ad_related_links_div,#ad_related_links_div_program,#ad_replace_div_0,#ad_replace_div_1,#ad_report_leaderboard,#ad_report_rectangle,#ad_results,#ad_right,#ad_right_main,#ad_ros_tower,#ad_rr_1,#ad_sec,#ad_sec_div,#ad_sgd,#ad_sidebar,#ad_sidebar1,#ad_sidebar2,#ad_sidebar3,#ad_sky,#ad_skyscraper,#ad_skyscraper160x600,#ad_skyscraper_text,#ad_slot_leaderboard,#ad_slot_livesky,#ad_slot_sky_top,#ad_space,#ad_square,#ad_ss,#ad_table,#ad_term_bottom_place,#ad_text:not(textarea),#ad_thread_first_post_content,#ad_top,#ad_top_holder,#ad_tp_banner_1,#ad_tp_banner_2,#ad_txt,#ad_unit,#ad_vertical,#ad_wide,#ad_wide_box,#ad_widget,#ad_window,#ad_wrap,#ad_wrapper,#adaptvcompanion,#adbForum,#adbanner,#adbar,#adbig,#adbnr,#adboard,#adbody,#adbottom,#adbox,#adbox1,#adbox2,#adbutton,#adclear,#adcode,#adcode1,#adcode2,#adcode3,#adcode4,#adcolumnwrapper,#adcontainer,#adcontainer1,#adcontainerRight,#adcontainsm,#adcontent,#adcontent1,#adcontrolPushSite,#add_ciao2,#addbottomleft,#addiv-bottom,#addiv-top,#adfooter,#adfooter_728x90,#adframe:not(frameset),#adhead,#adhead_g,#adheader,#adhome,#adiframe1_iframe,#adiframe2_iframe,#adiframe3_iframe,#adimg,#adition_content_ad,#adlabel,#adlabelFooter,#adlayerContainer,#adlayerad,#adleaderboard,#adleaderboard_flex,#adleaderboardb,#adleaderboardb_flex,#adleft,#adlinks,#adlinkws,#adlrec,#admanager_leaderboard,#admid,#admiddle3center,#admiddle3left,#adposition,#adposition-C,#adposition-FPMM,#adposition1,#adposition2,#adposition3,#adposition4,#adrectangle,#adrectanglea,#adrectanglea_flex,#adrectangleb,#adrectangleb_flex,#adrig,#adright,#adright2,#adrighthome,#ads-468,#ads-area,#ads-block,#ads-bot,#ads-bottom,#ads-col,#ads-dell,#ads-horizontal,#ads-indextext,#ads-leaderboard1,#ads-lrec,#ads-menu,#ads-middle,#ads-prices,#ads-rhs,#ads-right,#ads-sponsored-boxes,#ads-top,#ads-vers7,#ads-wrapper,#ads120,#ads160left,#ads2,#ads300,#ads300-250,#ads300Bottom,#ads300Top,#ads315,#ads336x280,#ads7,#ads728bottom,#ads728top,#ads790,#adsContent,#adsDisplay,#adsHeader,#adsID,#ads_160,#ads_300,#ads_728,#ads_banner,#ads_belowforumlist,#ads_belownav,#ads_bottom,#ads_bottom_inner,#ads_bottom_outer,#ads_box,#ads_button,#ads_catDiv,#ads_container,#ads_footer,#ads_fullsize,#ads_header,#ads_html1,#ads_html2,#ads_inner,#ads_lb,#ads_medrect,#ads_notice,#ads_right,#ads_right_sidebar,#ads_sidebar_roadblock,#ads_space,#ads_text,#ads_top,#ads_watch_top_square,#ads_zone27,#adsbottom,#adsbox,#adsbox-left,#adsbox-right,#adscolumn,#adsd_contentad_r1,#adsd_contentad_r2,#adsd_contentad_r3,#adsd_topbanner,#adsd_txt_sky,#adsdiv,#adsense,#adsense-2,#adsense-header,#adsense-tag,#adsense-text,#adsense03,#adsense04,#adsense05,#adsense1,#adsenseLeft,#adsenseOne,#adsenseWrap,#adsense_article_left,#adsense_block,#adsense_box,#adsense_box_video,#adsense_inline,#adsense_leaderboard,#adsense_overlay,#adsense_placeholder_2,#adsenseheader,#adsensetopplay,#adsensewidget-3,#adserv,#adshometop,#adsimage,#adskinlink,#adsky,#adskyscraper,#adslider,#adslot,#adsmiddle,#adsonar,#adspace,#adspace-1,#adspace-300x250,#adspace300x250,#adspaceBox,#adspaceBox300,#adspace_header,#adspace_leaderboard,#adspacer,#adsponsorImg,#adspot,#adspot-1,#adspot-149x170,#adspot-1x4,#adspot-2,#adspot-295x60,#adspot-2a,#adspot-2b,#adspot-300x110-pos-1,#adspot-300x125,#adspot-300x250-pos-1,#adspot-300x250-pos-2,#adspot-468x60-pos-2,#adspot-a,#adspot300x250,#adspot_220x90,#adspot_300x250,#adspot_468x60,#adspot_728x90,#adsquare,#adsright,#adst,#adstop,#adt,#adtab,#adtag_right_side,#adtagfooter,#adtagheader,#adtagrightcol,#adtaily-widget-light,#adtech_googleslot_03c,#adtech_takeover,#adtext,#adtop,#adtophp,#adtxt,#adv-leaderboard,#adv-masthead,#adv-mpux,#adv300bottom,#adv300top,#adv728,#adv_google_300,#adv_google_728,#adv_sky,#adv_top_banner_wrapper,#adver1,#adver2,#adver3,#adver4,#adver5,#adver6,#adver7,#advert-1,#advert-120,#advert-boomer,#advert-display,#advert-header,#advert-leaderboard,#advert-links-bottom,#advert-skyscraper,#advert-top,#advert1,#advertBanner,#advertContainer,#advertDB,#advertRight,#advertSection,#advert_125x125,#advert_250x250,#advert_box,#advert_home01,#advert_leaderboard,#advert_lrec_format,#advert_mid,#advert_mpu,#advert_mpu_1,#advert_right_skyscraper,#advert_sky,#advertbox,#advertbox2 { display:none !important; } #advertbox3,#advertbox4,#adverthome,#advertise,#advertise-here-sidebar,#advertise-now,#advertise1,#advertiseHere,#advertisement160x600,#advertisement728x90,#advertisementLigatus,#advertisementPrio2,#advertisementRight,#advertisementRightcolumn0,#advertisementRightcolumn1,#advertisementsarticle,#advertiser-container,#advertiserLinks,#advertisers,#advertising,#advertising-banner,#advertising-caption,#advertising-container,#advertising-control,#advertising-skyscraper,#advertising-top,#advertising2,#advertisingModule160x600,#advertisingModule728x90,#advertisingTopWrapper,#advertising_btm,#advertising_contentad,#advertising_horiz_cont,#advertisment,#advertismentElementInUniversalbox,#advertorial,#advertorial_red_listblock,#adverts,#adverts-top-container,#adverts-top-left,#adverts-top-middle,#adverts-top-right,#advertsingle,#advertspace,#advheader,#advt,#advtext,#advtop,#adwhitepaperwidget,#adwin_rec,#adwith,#adwords-4-container,#adwrapper,#adxBigAd,#adxMiddle5,#adxSponLink,#adxSponLinkA,#adxtop,#adz,#adzbanner,#adzerk,#adzerk1,#adzone,#adzoneBANNER,#adzoneheader,#affinityBannerAd,#after-content-ads,#after-header-ad-left,#after-header-ad-right,#after-header-ads,#agi-ad300x250,#agi-ad300x250overlay,#agi-sponsored,#alert_ads,#anchorAd,#annoying_ad,#ap_adframe,#ap_cu_overlay,#ap_cu_wrapper,#apiBackgroundAd,#apiTopAdWrap,#apmNADiv,#apolload,#araHealthSponsorAd,#area-adcenter,#area1ads,#article-ad,#article-ad-container,#article-box-ad,#articleAdReplacement,#articleLeftAdColumn,#articleSideAd,#article_ad,#article_ad_container,#article_box_ad,#articlead1,#articlead2,#asinglead,#atlasAdDivGame,#awds-nt1-ad,#babAdTop,#banner-300x250,#banner-ad,#banner-ad-container,#banner-ads,#banner250x250,#banner300x250,#banner468x60,#banner728x90,#bannerAd,#bannerAdTop,#bannerAdWrapper,#bannerAd_ctr,#banner_300_250,#banner_ad,#banner_ad_footer,#banner_ad_module,#banner_admicro,#banner_ads,#banner_content_ad,#banner_topad,#bannerad,#bannerad2,#baseAdvertising,#basket-adContainer,#bbccom_mpu,#bbo_ad1,#bg-footer-ads,#bg-footer-ads2,#bg_YieldManager-160x600,#bg_YieldManager-300x250,#bg_YieldManager-728x90,#bigAd,#bigBoxAd,#bigad300outer,#bigadbox,#bigadframe,#bigadspot,#billboard_ad,#block-ad_cube-1,#block-openads-0,#block-openads-1,#block-openads-2,#block-openads-3,#block-openads-4,#block-openads-5,#block-thewrap_ads_250x300-0,#block_advert,#blog-ad,#blog_ad_content,#blog_ad_opa,#blog_ad_right,#blog_ad_top,#blox-big-ad,#blox-big-ad-bottom,#blox-big-ad-top,#blox-halfpage-ad,#blox-tile-ad,#blox-tower-ad,#body_728_ad,#book-ad,#botad,#bott_ad2,#bott_ad2_300,#bottom-ad,#bottom-ad-container,#bottom-ad-wrapper,#bottom-ads,#bottomAd,#bottomAdCCBucket,#bottomAdContainer,#bottomAdSense,#bottomAdSenseDiv,#bottomAds,#bottomContentAd,#bottomRightAd,#bottomRightAdSpace,#bottom_ad,#bottom_ad_area,#bottom_ad_unit,#bottom_ads,#bottom_banner_ad,#bottom_overture,#bottom_sponsor_ads,#bottom_sponsored_links,#bottom_text_ad,#bottomad,#bottomads,#bottomadsense,#bottomadwrapper,#bottomleaderboardad,#box-ad-section,#box-content-ad,#box-googleadsense-1,#box-googleadsense-r,#box1ad,#boxAd300,#boxAdContainer,#boxAdvert,#box_ad,#box_advertisment,#box_mod_googleadsense,#boxad1,#boxad2,#boxad3,#boxad4,#boxad5,#bpAd,#bps-header-ad-container,#btnAds,#btnads,#btr_horiz_ad,#burn_header_ad,#button-ads-horizontal,#button-ads-vertical,#buttonAdWrapper1,#buttonAdWrapper2,#buttonAds,#buttonAdsContainer,#button_ad_container,#button_ad_wrap,#button_ads,#buttonad,#buy-sell-ads,#c4ad-Middle1,#c_ad_sb,#c_ad_sky,#caAdLarger,#catad,#category-ad,#cellAd,#channel_ad,#channel_ads,#ciHomeRHSAdslot,#circ_ad,#closeable-ad,#cmn_ad_box,#cmn_toolbar_ad,#cnnAboveFoldBelowAd,#cnnRR336ad,#cnnSponsoredPods,#cnnTopAd,#cnnVPAd,#col3_advertising,#colAd,#colRightAd,#collapseobj_adsection,#column4-google-ads,#comments-ad-container,#commercial_ads,#common_right_ad_wrapper,#common_right_lower_ad_wrapper,#common_right_lower_adspace,#common_right_lower_player_ad_wrapper,#common_right_lower_player_adspace,#common_right_player_ad_wrapper,#common_right_player_adspace,#common_right_right_adspace,#common_top_adspace,#comp_AdsLeaderboardTop,#companion-ad,#companionAdDiv,#companionad,#container-righttopads,#container-topleftads,#containerLocalAds,#containerLocalAdsInner,#containerMrecAd,#containerSqAd,#content-ad-header,#content-header-ad,#content-left-ad,#content-right-ad,#contentAd,#contentBoxad,#contentTopAds2,#content_ad,#content_ad_square,#content_ad_top,#content_ads_content,#content_box_300body_sponsoredoffers,#content_box_adright300_google,#content_lower_center_right_ad,#content_mpu,#contentad,#contentad_imtext,#contentad_right,#contentads,#contentinlineAd,#contents_post_ad,#contextad,#contextual-ads,#contextual-ads-block,#contextualad,#coverADS,#coverads,#ctl00_Adspace_Top_Height,#ctl00_BottomAd,#ctl00_ContentMain_BanManAd468_BanManAd,#ctl00_ContentPlaceHolder1_blockAdd_divAdvert,#ctl00_ContentRightColumn_RightColumn_Ad1_BanManAd,#ctl00_ContentRightColumn_RightColumn_Ad2_BanManAd,#ctl00_ContentRightColumn_RightColumn_PremiumAd1_ucBanMan_BanManAd,#ctl00_LHTowerAd,#ctl00_LeftHandAd,#ctl00_MasterHolder_IBanner_adHolder,#ctl00_TopAd,#ctl00_TowerAd,#ctl00_VBanner_adHolder,#ctl00__Content__RepeaterReplies_ctl03__AdReply,#ctl00_abot_bb,#ctl00_adFooter,#ctl00_advert_LargeMPU_div_AdPlaceHolder,#ctl00_atop_bt,#ctl00_cphMain_hlAd1,#ctl00_cphMain_hlAd2,#ctl00_cphMain_hlAd3,#ctl00_ctl00_MainPlaceHolder_itvAdSkyscraper,#ctl00_ctl00_ctl00_Main_Main_PlaceHolderGoogleTopBanner_MPTopBannerAd,#ctl00_ctl00_ctl00_Main_Main_SideBar_MPSideAd,#ctl00_dlTilesAds,#ctl00_m_skinTracker_m_adLBL,#ctl00_phCrackerMain_ucAffiliateAdvertDisplayMiddle_pnlAffiliateAdvert,#ctl00_phCrackerMain_ucAffiliateAdvertDisplayRight_pnlAffiliateAdvert,#ctl00_topAd,#ctrlsponsored,#cubeAd,#cube_ads,#cube_ads_inner,#cubead,#cubead-2,#currencies-sponsored-by,#custom-advert-leadboard-spacer,#dAdverts,#dItemBox_ads,#dart_160x600,#dc-display-right-ad-1,#dcadSpot-Leader,#dcadSpot-LeaderFooter,#dcol-sponsored,#defer-adright,#detail_page_vid_topads,#div-gpt-ad-1,#div-gpt-ad-2,#div-gpt-ad-3,#div-gpt-ad-4,#divAd,#divAdBox,#divAdWrapper,#divAdvertisement,#divBottomad1,#divBottomad2,#divDoubleAd,#divLeftAd12,#divLeftRecAd,#divMenuAds,#divWNAdHeader,#divWrapper_Ad,#div_ad_leaderboard,#div_video_ads,#dlads,#dni-header-ad,#dnn_adLeaderBoard2008,#dnn_ad_banner,#download_ads,#dp_ads1,#ds-mpu,#ds_ad_north_leaderboard,#editorsmpu,#em_ad_superbanner,#embedded-ad,#evotopTen_advert,#ex-ligatus,#exads,#extra-search-ads,#fb_adbox,#fb_rightadpanel,#featAds,#featuread,#featured-advertisements,#featuredAdContainer2,#featuredAds,#featured_ad_links,#feed_links_ad_container,#file_sponsored_link,#first-300-ad,#first-adlayer,#first_ad_unit,#firstad,#fl_hdrAd,#flash_ads_1,#flexiad,#floatingAd,#floating_ad_container,#foot-ad-1,#footad,#footer-ad,#footer-ads,#footer-advert,#footer-adverts,#footer-sponsored,#footerAd,#footerAdDiv,#footerAds,#footerAdvertisement,#footerAdverts,#footer_ad,#footer_ad_01,#footer_ad_block,#footer_ad_container,#footer_ad_modules,#footer_ads,#footer_adspace,#footer_text_ad,#footerad,#footerads,#footeradsbox,#forum_top_ad,#four_ads,#fpad1,#fpad2,#fpv_companionad,#fr_ad_center,#frame_admain,#frnAdSky,#frnBannerAd,#frnContentAd,#front_advert,#front_mpu,#ft-ad,#ft-ad-1,#ft-ad-container,#ft_mpu,#fullsizebanner_468x60,#fusionad,#fw-advertisement,#g_ad,#g_adsense,#ga_300x250,#gad,#gad2,#gad3,#gad5,#galleries-tower-ad,#gallery-ad,#gallery-ad-m0,#gallery-random-ad,#gallery_ads,#game-info-ad,#gamead,#gameads,#gasense,#gglads,#global_header_ad_area,#gm-ad-lrec,#gmi-ResourcePageAd,#gmi-ResourcePageLowerAd,#goad1,#goads,#gooadtop,#google-ad,#google-ad-art,#google-ad-table-right,#google-ad-tower,#google-ads,#google-ads-bottom,#google-ads-header,#google-ads-left-side,#google-adsense-mpusize,#googleAd,#googleAdArea,#googleAds,#googleAdsSml,#googleAdsense,#googleAdsenseBanner,#googleAdsenseBannerBlog,#googleAdwordsModule,#googleAfcContainer,#googleSearchAds,#googleShoppingAdsRight,#googleShoppingAdsTop,#googleSubAds,#google_ad,#google_ad_container,#google_ad_inline,#google_ad_test,#google_ads,#google_ads_aCol,#google_ads_frame1,#google_ads_frame1_anchor,#google_ads_frame2,#google_ads_frame2_anchor,#google_ads_frame3,#google_ads_frame3_anchor,#google_ads_test,#google_ads_top,#google_adsense_home_468x60_1,#googlead,#googlead-sidebar-middle,#googlead-sidebar-top,#googlead2,#googleadbox,#googleads,#googleads_mpu_injection,#googleadsense,#googlesponsor,#gpt-ad-halfpage,#gpt-ad-rectangle1,#gpt-ad-rectangle2,#gpt-ad-skyscraper,#gpt-ad-story_rectangle3,#grid_ad,#gsyadrectangleload,#gsyadrightload,#gsyadtop,#gsyadtopload,#gtopadvts,#half-page-ad,#halfPageAd,#halfe-page-ad-box,#hd-ads,#hd-banner-ad,#hdtv_ad_ss,#head-ad,#head-ad-1,#headAd,#head_ad,#head_advert,#headad,#header-ad,#header-ad-left,#header-ad-rectangle-container,#header-ad-right,#header-ad2010,#header-ads,#header-adspace,#header-advert,#header-advertisement,#header-advertising,#header-adverts,#headerAd,#headerAdBackground,#headerAdContainer,#headerAdWrap,#headerAds,#headerAdsWrapper,#headerTopAd,#header_ad,#header_ad_728_90,#header_ad_container,#header_adcode,#header_ads,#header_advertisement_top,#header_flag_ad,#header_leaderboard_ad_container,#header_publicidad,#headerad,#headeradbox,#headerads,#headeradsbox,#headeradvertholder,#headeradwrap,#headline_ad,#headlinesAdBlock,#hiddenadAC,#hideads,#hl-sponsored-results,#hly_ad_side_bar_tower_left,#hly_inner_page_google_ad,#home-advert-module,#home-rectangle-ad,#home-top-ads,#homeMPU,#homeTopRightAd,#home_ad,#home_bottom_ad,#home_contentad,#home_feature_ad,#home_lower_center_right_ad,#home_mpu,#home_spensoredlinks,#homead,#homepage-ad,#homepageAdsTop,#homepageFooterAd,#homepage_right_ad,#homepage_right_ad_container,#homepage_top_ads,#hometop_234x60ad,#hor_ad,#horizad,#horizontal-banner-ad,#horizontal_ad,#horizontal_ad_top,#horizontalads,#hot-deals-ad,#houseAd,#hp-header-ad,#hp-mpu,#hp-right-ad,#hp-store-ad,#hpV2_300x250Ad,#hpV2_googAds,#hp_ad300x250,#ibt_local_ad728,#icePage_SearchLinks_AdRightDiv,#icePage_SearchLinks_DownloadToolbarAdRightDiv,#icePage_SearchResults_ads0_SponsoredLink,#icePage_SearchResults_ads1_SponsoredLink,#icePage_SearchResults_ads2_SponsoredLink,#icePage_SearchResults_ads3_SponsoredLink,#icePage_SearchResults_ads4_SponsoredLink,#idSponsoredresultend,#idSponsoredresultstart,#imu_ad_module,#in_serp_ad,#inadspace,#indexad,#inline-story-ad,#inlineAd,#inlinead,#inlinegoogleads,#inlist-ad-block,#inner-advert-row,#inner-top-ads,#innerpage-ad,#inside-page-ad,#insider_ad_wrapper,#instoryad,#instoryadtext,#instoryadwrap,#int-ad,#interstitial_ad_wrapper,#iqadtile8,#islandAd,#j_ad,#ji_medShowAdBox,#jmp-ad-buttons,#joead,#joead2,#ka_adRightSkyscraperWide,#ka_samplead,#kaufDA-widget,#kdz_ad1,#kdz_ad2,#keyadvertcontainer,#landing-adserver,#lapho-top-ad-1,#largead,#lateAd,#layerAds_layerDiv,#layerTLDADSERV,#layer_ad_content,#layer_ad_main,#layerad,#leader-board-ad,#leaderAd,#leaderAdContainer,#leader_ad,#leader_board_ad,#leaderad,#leaderad_section,#leaderboard-ad,#leaderboard-bottom-ad,#leaderboard_ad,#leaderboard_ad_gam,#left-ad-1,#left-ad-2,#left-ad-col,#left-ad-skin,#left-bottom-ad,#left-lower-adverts,#left-lower-adverts-container,#leftAdContainer,#leftAd_rdr,#leftAdvert,#leftSectionAd300-100,#left_ad,#left_adspace,#leftad,#leftads,#leftcolAd,#lg-banner-ad,#ligatus,#linkAds,#linkads,#live-ad,#logoAd,#longAdSpace,#long_advertisement,#lowerAdvertisementImg,#lowerads,#lowerthirdad,#lowertop-adverts,#lowertop-adverts-container,#lpAdPanel,#lrecad,#lsadvert-left_menu_1,#lsadvert-left_menu_2,#lsadvert-top,#mBannerAd,#main-ad,#main-ad160x600,#main-ad160x600-img,#main-ad728x90,#main-advert1,#main-advert2,#main-advert3,#main-bottom-ad,#main-tj-ad,#mainAd,#mainAdUnit,#mainAdvert,#main_ad,#main_rec_ad,#main_top_ad_container,#marketing-promo,#mastAd,#mastAdvert,#mastad,#mastercardAd,#masthead_ad,#masthead_topad,#medRecAd,#media_ad,#mediaplayer_adburner,#mediumAdvertisement,#medrectad,#menuAds,#menubanner-ad-content,#mi_story_assets_ad,#mid-ad300x250,#mid-table-ad,#midRightTextAds,#mid_ad_div,#mid_ad_title,#mid_mpu,#midadd,#midadspace,#middle-ad,#middle_ad,#middle_body_advertising,#middlead,#middleads,#midrect_ad,#midstrip_ad,#mini-ad,#mochila-column-right-ad-300x250,#mochila-column-right-ad-300x250-1,#module-google_ads,#module_ad,#module_box_ad,#module_sky_scraper,#monsterAd,#moogleAd,#moreads,#most_popular_ad,#motionAd,#mpu,#mpu-advert,#mpu-cont,#mpu300250,#mpuAd,#mpuDiv,#mpuSlot,#mpuWrapper,#mpuWrapperAd,#mpu_banner,#mpu_firstpost,#mpu_holder,#mpu_text_ad,#mpuad,#mpubox,#mr_banner_topad,#mrecAdContainer,#msAds,#ms_ad,#msad,#multiLinkAdContainer,#multi_ad,#my-ads,#myads_HeaderButton,#n_sponsor_ads,#namecom_ad_hosting_main,#narrow_ad_unit,#natadad300x250,#national_microlink_ads,#nationalad,#navi_banner_ad_780,#nba160PromoAd,#nba300Ad,#nbaGI300ad,#nbaHouseAnd600Ad,#nbaLeft600Ad,#nbaMidAds,#nbaVid300Ad,#nbcAd300x250,#new_topad,#newads,#news_advertorial_content,#news_advertorial_top,#ng_rtcol_ad,#noresults_ad_container,#noresultsads,#northad,#northbanner-advert,#northbanner-advert-container,#ns_ad1,#ns_ad2,#ns_ad3,#oanda_ads,#onespot-ads,#online_ad,#ovadsense,#p-googleadsense,#page-header-ad,#page-top-ad,#pageAds,#pageAdsDiv,#pageBannerAd,#page_ad,#page_content_top_ad,#pagelet_adbox,#pagelet_netego_ads,#pagelet_search_ads2,#panelAd,#pb_report_ad,#pcworldAdBottom,#pcworldAdTop,#pinball_ad,#player-below-advert,#player_ad,#player_ads,#pmad-in1,#pod-ad-video-page,#populate_ad_bottom,#populate_ad_left,#portlet-advertisement-left,#portlet-advertisement-right,#post-promo-ad,#post5_adbox,#post_ad,#premium_ad,#priceGrabberAd,#prime-ad-space,#print_ads,#printads,#product-adsense,#promo-ad,#promoAds,#ps-vertical-ads,#pub468x60,#publicidad,#pushdown_ad,#qm-ad-big-box,#qm-ad-sky,#qm-dvdad,#quigo_ad,#r1SoftAd,#rail_ad1,#rail_ad2,#realEstateAds,#rectAd,#rect_ad,#rectangle-ad,#rectangleAd,#rectangle_ad,#refine-300-ad,#region-node-advert,#region-top-ad,#relocation_ad_container,#rh-ad-container,#rh_tower_ad,#rhapsodyAd,#rhs_ads,#rhsadvert,#right-ad,#right-ad-col,#right-ad-skin,#right-ad-title,#right-ad1,#right-ads-3,#right-advert,#right-box-ad,#right-featured-ad,#right-mpu-1-ad-container,#right-uppder-adverts,#right-uppder-adverts-container,#rightAd,#rightAd300x250,#rightAd300x250Lower,#rightAdBar,#rightAdColumn,#rightAd_rdr,#rightAdsDiv,#rightColAd,#rightColumnMpuAd,#rightColumnSkyAd,#right_ad,#right_ad_wrapper,#right_ads,#right_advertisement,#right_advertising,#right_column_ad_container,#right_column_ads,#right_column_adverts,#right_column_internal_ad_container,#right_column_top_ad_unit,#rightad,#rightadContainer,#rightads,#rightadvertbar-doubleclickads,#rightbar-ad,#rightcolhouseads,#rightcolumn_300x250ad,#rightgoogleads,#rightinfoad,#rightside-ads,#rightside_ad,#righttop-adverts,#righttop-adverts-container,#rm_ad_text,#ros_ad,#rotatingads,#row2AdContainer,#rprightHeaderAd,#rr_MSads,#rt-ad,#rt-ad-top,#rt-ad468,#rtMod_ad,#rtmod_ad,#sAdsBox,#sb-ad-sq,#sb_ad_links,#sb_advert,#search-google-ads,#search-sponsored-links,#search-sponsored-links-top,#searchAdSenseBox,#searchAdSenseBoxAd,#searchAdSkyscraperBox,#search_ads,#search_result_ad,#sec_adspace,#second-adlayer,#secondBoxAdContainer,#secondrowads,#sect-ad-300x100,#sect-ad-300x250-2,#section-ad-1-728,#section-ad-300-250,#section-ad-4-160,#section-blog-ad,#section-container-ddc_ads,#section_advertisements,#section_advertorial_feature,#servfail-ads,#sew-ad1,#shoppingads,#show-ad,#showAd,#showad,#side-ad,#side-ad-container,#side-ads,#sideAd,#sideAd1,#sideAd2,#sideAdSub,#sideBarAd,#side_ad,#side_ad_wrapper,#side_ads_by_google,#side_sky_ad,#sidead,#sideads,#sideadtop-to,#sidebar-125x125-ads,#sidebar-125x125-ads-below-index,#sidebar-ad,#sidebar-ad-boxes,#sidebar-ad-space,#sidebar-ad-wrap,#sidebar-ad3,#sidebar-ads,#sidebar-adv,#sidebar2ads,#sidebar_ad,#sidebar_ad_widget,#sidebar_ads,#sidebar_ads_180,#sidebar_sponsoredresult_body,#sidebar_txt_ad_links,#sidebarad,#sidebaradpane,#sidebarads,#sidebaradver_advertistxt,#sideline-ad,#single-mpu { display:none !important; } #singlead,#site-ad-container,#site-leaderboard-ads,#site_top_ad,#sitead,#sky-ad,#skyAd,#skyAdContainer,#skyScrapperAd,#skyWrapperAds,#sky_ad,#sky_advert,#skyads,#skyadwrap,#skyline_ad,#skyscrapeAd,#skyscraper-ad,#skyscraperAd,#skyscraperAdContainer,#skyscraper_ad,#skyscraper_advert,#skyscraperad,#slide_ad,#sliderAdHolder,#slideshow_ad_300x250,#sm-banner-ad,#small_ad,#small_ad_banners_vertical,#small_ads,#smallerAd,#some-ads,#some-more-ads,#specialAd_one,#specialAd_two,#specialadvertisingreport_container,#specials_ads,#speeds_ads,#speeds_ads_fstitem,#speedtest_mrec_ad,#sphereAd,#sponlink,#sponlinks,#sponsAds,#sponsLinks,#sponseredlinks,#sponsorAd1,#sponsorAd2,#sponsorAdDiv,#sponsorLinks,#sponsorTextLink,#sponsor_banderole,#sponsor_deals,#sponsored,#sponsored-ads,#sponsored-features,#sponsored-links,#sponsored-listings,#sponsored-resources,#sponsored1,#sponsoredBox1,#sponsoredBox2,#sponsoredLinks,#sponsoredList,#sponsoredResults,#sponsoredResultsWide,#sponsoredSiteMainline,#sponsoredSiteSidebar,#sponsored_ads_v4,#sponsored_container,#sponsored_content,#sponsored_game_row_listing,#sponsored_head,#sponsored_links,#sponsored_v12,#sponsoredads,#sponsoredlinks,#sponsoredlinks_cntr,#sponsoredlinkslabel,#sponsoredresults_top,#sponsoredwellcontainerbottom,#sponsoredwellcontainertop,#sponsorlink,#spotlightAds,#spotlightad,#sqAd,#squareAd,#squareAdSpace,#squareAds,#square_ad,#start_middle_container_advertisment,#sticky-ad,#stickyBottomAd,#story-90-728-area,#story-ad-a,#story-ad-b,#story-leaderboard-ad,#story-sponsoredlinks,#storyAd,#storyAdWrap,#storyad2,#subpage-ad-right,#subpage-ad-top,#swads,#synch-ad,#systemad_background,#tabAdvertising,#takeoverad,#tblAd,#tbl_googlead,#tcwAd,#td-GblHdrAds,#template_ad_leaderboard,#tertiary_advertising,#test_adunit_160_article,#text-ad,#text-ads,#text-link-ads,#textAd,#textAds,#text_ad,#text_ads,#text_advert,#textad,#textad3,#textad_block,#the-last-ad-standing,#thefooterad,#themis-ads,#tile-ad,#tmglBannerAd,#tmp2_promo_ad,#toolbarSlideUpAd,#top-ad,#top-ad-container,#top-ad-menu,#top-ads,#top-ads-tabs,#top-advertisement,#top-banner-ad,#top-search-ad-wrapper,#topAd,#topAd728x90,#topAdBanner,#topAdBox,#topAdContainer,#topAdSenseDiv,#topAdcontainer,#topAds,#topAdsContainer,#topAdvert,#topBannerAd,#topBannerAdContainer,#topContentAdTeaser,#topNavLeaderboardAdHolder,#topOverallAdArea,#topRightBlockAdSense,#topSponsoredLinks,#top_ad,#top_ad_area,#top_ad_banner,#top_ad_game,#top_ad_unit,#top_ad_wrapper,#top_ad_zone,#top_ads,#top_advertise,#top_advertising,#top_rectangle_ad,#top_right_ad,#top_wide_ad,#topad,#topad1,#topad2,#topad_left,#topad_right,#topadbar,#topadblock,#topaddwide,#topads,#topadsense,#topadspace,#topadwrap,#topadzone,#topbanner_ad,#topbannerad,#topbar-ad,#topcustomad,#topleaderboardad,#topnav-ad-shell,#topnavad,#toprightAdvert,#toprightad,#topsponsored,#toptextad,#tour300Ad,#tour728Ad,#tourSponsoredLinksContainer,#towerad,#ts-ad_module,#ttp_ad_slot1,#ttp_ad_slot2,#twogamesAd,#txfPageMediaAdvertVideo,#txt_link_ads,#txtads,#undergameAd,#upperAdvertisementImg,#upperMpu,#upper_small_ad,#upperad,#urban_contentad_1,#urban_contentad_2,#urban_contentad_article,#v_ad,#vert-ads,#vert_ad,#vert_ad_placeholder,#vertical_ad,#vertical_ads,#videoAd,#videoAdvert,#video_ads_overdiv,#video_advert2,#video_advert3,#video_cnv_ad,#video_overlay_ad,#videoadlogo,#viewads,#viewportAds,#viewvid_ad300x250,#wXcds12-ad,#wall_advert,#wallpaper-ad-link,#wallpaperAd_left,#wallpaperAd_right,#walltopad,#weblink_ads_container,#welcomeAdsContainer,#welcome_ad_mrec,#welcome_advertisement,#wf_ContentAd,#wf_FrontSingleAd,#wf_SingleAd,#wf_bottomContentAd,#wgtAd,#whatsnews_top_ad,#whitepaper-ad,#whoisRightAdContainer,#wide_ad_unit_top,#wideskyscraper_160x600_left,#wideskyscraper_160x600_right,#widget_Adverts,#widget_advertisement,#widgetwidget_adserve2,#wrapAdRight,#wrapAdTop,#wrapperAdsTopLeft,#wrapperAdsTopRight,#xColAds,#y-ad-units,#y708-ad-expedia,#y708-ad-lrec,#y708-ad-partners,#y708-ad-ysm,#y708-advertorial-marketplace,#yahoo-ads,#yahoo-sponsors,#yahooSponsored,#yahoo_ads,#yahoo_ads_2010,#yahoo_text_ad,#yahooad-tbl,#yan-sponsored,#yatadsky,#ybf-ads,#yfi_fp_ad_mort,#yfi_fp_ad_nns,#yfi_pf_ad_mort,#ygrp-sponsored-links,#ymap_adbanner,#yn-gmy-ad-lrec,#yreSponsoredLinks,#ysm_ad_iframe,#zoneAdserverMrec,#zoneAdserverSuper,.ADBAR,.ADPod,.AD_ALBUM_ITEMLIST,.AD_MOVIE_ITEM,.AD_MOVIE_ITEMLIST,.AD_MOVIE_ITEMROW,.ADbox,.Ad-300x100,.Ad-Container-976x166,.Ad-Header,.Ad-MPU,.Ad-Wrapper-300x100,.Ad1,.Ad120x600,.Ad160x600,.Ad160x600left,.Ad160x600right,.Ad2,.Ad247x90,.Ad300x,.Ad300x250,.Ad300x250L,.Ad728x90,.AdBorder,.AdBox,.AdBox7,.AdContainerBox308,.AdContainerModule,.AdHeader,.AdHere,.AdInfo,.AdInline,.AdMedium,.AdPlaceHolder,.AdProS728x90Container,.AdProduct,.AdRingtone,.AdSense,.AdSenseLeft,.AdSlot,.AdSpace,.AdTextSmallFont,.AdTitle,.AdUnit,.AdUnit300,.Ad_C,.Ad_D_Wrapper,.Ad_E_Wrapper,.Ad_Right,.Ads,.AdsBottom,.AdsBoxBottom,.AdsBoxSection,.AdsBoxTop,.AdsLinks1,.AdsLinks2,.AdsRec,.Advert,.Advert300x250,.AdvertMidPage,.AdvertiseWithUs,.Advertisement,.AdvertisementTextTag,.Advman_Widget,.ArticleAd,.ArticleInlineAd,.BCA_Advertisement,.BannerAd,.BigBoxAd,.BlockAd,.BlueTxtAdvert,.BottomAdContainer,.BottomAffiliate,.BoxAd,.CG_adkit_leaderboard,.CG_details_ad_dropzone,.CWReviewsProdInfoAd,.ComAread,.CommentAd,.ContentAd,.ContentAds,.DAWRadvertisement,.DeptAd,.DisplayAd,.FT_Ad,.FeaturedAdIndexAd,.FlatAds,.GOOGLE_AD,.GoogleAd,.GoogleAdSenseBottomModule,.GoogleAdSenseRightModule,.HPG_Ad_B,.HPNewAdsBannerDiv,.HPRoundedAd,.HomeContentAd,.IABAdSpace,.InArticleAd,.IndexRightAd,.LazyLoadAd,.LeftAd,.LeftButtonAdSlot,.LeftTowerAd,.M2Advertisement,.MD_adZone,.MOS-ad-hack,.MPU,.MPUHolder,.MPUTitleWrapperClass,.MREC_ads,.MiddleAd,.MiddleAdContainer,.MiddleAdvert,.NewsAds,.OAS,.OpaqueAdBanner,.OpenXad,.PU_DoubleClickAdsContent,.Post5ad,.Post8ad,.Post9ad,.RBboxAd,.RW_ad300,.RectangleAd,.RelatedAds,.Right300x250AD,.RightAd1,.RightAdvertiseArea,.RightAdvertisement,.RightGoogleAFC,.RightRailAd,.RightRailTop300x250Ad,.RightSponsoredAdTitle,.RightTowerAd,.STR_AdBlock,.SectionSponsor,.SideAdCol,.SidebarAd,.SidebarAdvert,.SitesGoogleAdsModule,.SkyAdContainer,.SponsoredAdTitle,.SponsoredContent,.SponsoredLinkItemTD,.SponsoredLinks,.SponsoredLinksGrayBox,.SponsoredLinksModule,.SponsoredLinksPadding,.SponsoredLinksPanel,.Sponsored_link,.SquareAd,.StandardAdLeft,.StandardAdRight,.TRU-onsite-ads-leaderboard,.TextAd,.TheEagleGoogleAdSense300x250,.TopAd,.TopAdContainer,.TopAdL,.TopAdR,.TopBannerAd,.UIWashFrame_SidebarAds,.UnderAd,.VerticalAd,.Video-Ad,.VideoAd,.WidgetAdvertiser,.a160x600,.a728x90,.ad-120x60,.ad-120x600,.ad-160,.ad-160x600,.ad-160x600x1,.ad-160x600x2,.ad-160x600x3,.ad-250,.ad-300,.ad-300-block,.ad-300-blog,.ad-300x100,.ad-300x250,.ad-300x250-first,.ad-300x250-right0,.ad-300x600,.ad-350,.ad-355x75,.ad-600,.ad-635x40,.ad-728,.ad-728x90,.ad-728x90-1,.ad-728x90-top0,.ad-728x90_forum,.ad-90x600,.ad-above-header,.ad-adlink-bottom,.ad-adlink-side,.ad-area,.ad-background,.ad-banner,.ad-banner-smaller,.ad-bigsize,.ad-block,.ad-block-square,.ad-blog2biz,.ad-body,.ad-bottom,.ad-box,.ad-break,.ad-btn,.ad-btn-heading,.ad-button,.ad-cell,.ad-column,.ad-container,.ad-container-300x250,.ad-container-728x90,.ad-container-994x282,.ad-content,.ad-context,.ad-disclaimer,.ad-display,.ad-div,.ad-enabled,.ad-feedback,.ad-filler,.ad-flex,.ad-footer,.ad-footer-leaderboard,.ad-forum,.ad-google,.ad-graphic-large,.ad-gray,.ad-hdr,.ad-head,.ad-header,.ad-heading,.ad-holder,.ad-homeleaderboard,.ad-img,.ad-in-post,.ad-index-main,.ad-inline,.ad-island,.ad-label,.ad-leaderboard,.ad-left,.ad-links,.ad-lrec,.ad-medium,.ad-medium-two,.ad-mpl,.ad-mpu,.ad-msn,.ad-note,.ad-notice,.ad-other,.ad-permalink,.ad-place-active,.ad-placeholder,.ad-postText,.ad-poster,.ad-priority,.ad-rect,.ad-rectangle,.ad-rectangle-text,.ad-related,.ad-rh,.ad-ri,.ad-right,.ad-right-header,.ad-right-txt,.ad-row,.ad-section,.ad-show-label,.ad-side,.ad-sidebar,.ad-sidebar-outer,.ad-sidebar300,.ad-sky,.ad-skyscr,.ad-skyscraper,.ad-slot,.ad-slot-234-60,.ad-slot-300-250,.ad-slot-728-90,.ad-source,.ad-space,.ad-space-mpu-box,.ad-space-topbanner,.ad-spot,.ad-square,.ad-square300,.ad-squares,.ad-statement,.ad-story-inject,.ad-tabs,.ad-text,.ad-text-links,.ad-tile,.ad-title,.ad-top,.ad-top-left,.ad-unit,.ad-unit-300,.ad-unit-300-wrapper,.ad-unit-anchor,.ad-unit-top,.ad-vert,.ad-vertical-container,.ad-vtu,.ad-widget-list,.ad-with-us,.ad-wrap,.ad-wrapper,.ad-zone,.ad-zone-s-q-l,.ad.super,.ad0,.ad08,.ad08sky,.ad1,.ad10,.ad100,.ad120,.ad120x240backgroundGray,.ad120x600,.ad125,.ad140,.ad160,.ad160600,.ad160x600,.ad160x600GrayBorder,.ad18,.ad19,.ad2,.ad21,.ad230,.ad250,.ad250c,.ad3,.ad300,.ad300250,.ad300_250,.ad300x100,.ad300x250,.ad300x250-hp-features,.ad300x250Module,.ad300x250Top,.ad300x250_container,.ad300x250box,.ad300x50-right,.ad300x600,.ad310,.ad315,.ad336x280,.ad343x290,.ad4,.ad400right,.ad450,.ad468,.ad468_60,.ad468x60,.ad540x90,.ad6,.ad600,.ad620x70,.ad626X35,.ad7,.ad728,.ad728_90,.ad728x90,.ad728x90_container,.ad8,.ad90x780,.adAgate,.adArea674x60,.adBanner,.adBanner300x250,.adBanner728x90,.adBannerTyp1,.adBannerTypSortableList,.adBannerTypW300,.adBar,.adBgBottom,.adBgMId,.adBgTop,.adBlock,.adBottomLink,.adBottomboxright,.adBox,.adBox1,.adBox230X96,.adBox728X90,.adBoxBody,.adBoxBorder,.adBoxContainer,.adBoxContent,.adBoxInBignews,.adBoxSidebar,.adBoxSingle,.adBwrap,.adCMRight,.adCell,.adColumn,.adCont,.adContTop,.adContainer,.adContour,.adCreative,.adCube,.adDiv,.adElement,.adFender3,.adFrame,.adFtr,.adFullWidthMiddle,.adGoogle,.adHeader,.adHeadline,.adHolder,.adHome300x250,.adHorisontal,.adInNews,.adIsland,.adLabel,.adLeader,.adLeaderForum,.adLeaderboard,.adLeft,.adLoaded,.adLocal,.adMPU,.adMarker,.adMastheadLeft,.adMastheadRight,.adMegaBoard,.adMinisLR,.adMkt2Colw,.adModule,.adModuleAd,.adMpu,.adNewsChannel,.adNoOutline,.adNotice,.adNoticeOut,.adObj,.adPageBorderL,.adPageBorderR,.adPanel,.adPod,.adRect,.adResult,.adRight,.adSKY,.adSelfServiceAdvertiseLink,.adServer,.adSky,.adSky600,.adSkyscaper,.adSkyscraperHolder,.adSlot,.adSpBelow,.adSpace,.adSpacer,.adSplash,.adSponsor,.adSpot,.adSpot-brought,.adSpot-searchAd,.adSpot-textBox,.adSpot-twin,.adSpotIsland,.adSquare,.adSubColPod,.adSummary,.adSuperboard,.adSupertower,.adTD,.adTab,.adTag,.adText,.adTileWrap,.adTiler,.adTitle,.adTopLink,.adTopboxright,.adTout,.adTxt,.adUnit,.adUnitHorz,.adUnitVert,.adUnitVert_noImage,.adWebBoard,.adWidget,.adWithTab,.adWord,.adWrap,.adWrapper,.ad_0,.ad_1,.ad_120x90,.ad_125,.ad_130x90,.ad_160,.ad_160x600,.ad_2,.ad_200,.ad_200x200,.ad_250x250,.ad_250x250_w,.ad_3,.ad_300,.ad_300_250,.ad_300x250,.ad_300x250_box_right,.ad_336,.ad_336x280,.ad_350x100,.ad_350x250,.ad_400x200,.ad_468,.ad_468x60,.ad_600,.ad_728,.ad_728_90b,.ad_728x90,.ad_925x90,.ad_Left,.ad_Right,.ad_ad_300,.ad_amazon,.ad_banner,.ad_banner_border,.ad_bar,.ad_bg,.ad_bigbox,.ad_biz,.ad_block,.ad_block_338,.ad_body,.ad_border,.ad_botbanner,.ad_bottom,.ad_bottom_leaderboard,.ad_bottom_left,.ad_box,.ad_box2,.ad_box_ad,.ad_box_div,.ad_callout,.ad_caption,.ad_column,.ad_column_box,.ad_column_hl,.ad_contain,.ad_container,.ad_content,.ad_content_wide,.ad_contents,.ad_descriptor,.ad_disclaimer,.ad_eyebrow,.ad_footer,.ad_frame,.ad_framed,.ad_front_promo,.ad_gutter_top,.ad_head,.ad_header,.ad_heading,.ad_headline,.ad_holder,.ad_hpm,.ad_info_block,.ad_inline,.ad_island,.ad_jnaught,.ad_label,.ad_launchpad,.ad_leader,.ad_leaderboard,.ad_left,.ad_line,.ad_link,.ad_links,.ad_linkunit,.ad_loc,.ad_lrec,.ad_main,.ad_medrec,.ad_medrect,.ad_middle,.ad_mod,.ad_mp,.ad_mpu,.ad_mr,.ad_mrec,.ad_mrec_title_article,.ad_mrect,.ad_news,.ad_note,.ad_notice,.ad_one,.ad_p360,.ad_partner,.ad_partners,.ad_plus,.ad_post,.ad_power,.ad_promo,.ad_rec,.ad_rectangle,.ad_right,.ad_right_col,.ad_row,.ad_row_bottom_item,.ad_side,.ad_sidebar,.ad_skyscraper,.ad_slug,.ad_slug_table,.ad_space,.ad_space_300_250,.ad_spacer,.ad_sponsor,.ad_sponsoredsection,.ad_spot_b,.ad_spot_c,.ad_square_r,.ad_square_top,.ad_sub,.ad_tag_middle,.ad_text,.ad_text_w,.ad_title,.ad_top,.ad_top_leaderboard,.ad_top_left,.ad_topright,.ad_tower,.ad_unit,.ad_unit_rail,.ad_url,.ad_warning,.ad_wid300,.ad_wide,.ad_wrap,.ad_wrapper,.ad_wrapper_fixed,.ad_wrapper_top,.ad_wrp,.ad_zone,.adarea,.adarea-long,.adbanner,.adbannerbox,.adbannerright,.adbar,.adboard,.adborder,.adbot,.adbottom,.adbottomright,.adbox-outer,.adbox-wrapper,.adbox_300x600,.adbox_366x280,.adbox_468X60,.adbox_bottom,.adbox_br,.adboxclass,.adbreak,.adbug,.adbutton,.adbuttons,.adcode,.adcol1,.adcol2,.adcolumn,.adcolumn_wrapper,.adcont,.adcopy,.add_300x250,.addiv,.adenquire,.adfieldbg,.adfoot,.adfootbox,.adframe,.adhead,.adhead_h,.adhead_h_wide,.adheader,.adheader100,.adhi,.adhint,.adholder,.adhoriz,.adi,.adiframe,.adinfo,.adinside,.adintro,.adits,.adjlink,.adkicker,.adkit,.adkit-advert,.adkit-lb-footer,.adlabel-horz,.adlabel-vert,.adlabelleft,.adleader,.adleaderboard { display:none !important; } .adleft1,.adline,.adlink,.adlinks,.adlist,.adlnklst,.admarker,.admediumred,.admedrec,.admessage,.admodule,.admpu,.admpu-small,.adnation-banner,.adnotice,.adops,.adp-AdPrefix,.adpadding,.adpane,.adpic,.adprice,.adproxy,.adrec,.adright,.adroot,.adrotate_widget,.adrow,.adrow-post,.adrow1box1,.adrow1box3,.adrow1box4,.adrule,.ads-125,.ads-300,.ads-728x90-wrap,.ads-ads-top,.ads-banner,.ads-below-content,.ads-categories-bsa,.ads-custom,.ads-favicon,.ads-item,.ads-links-general,.ads-mpu,.ads-outer,.ads-profile,.ads-right,.ads-section,.ads-sidebar,.ads-sky,.ads-small,.ads-sponsors,.ads-stripe,.ads-text,.ads-top,.ads-wide,.ads-widget,.ads-widget-partner-gallery,.ads03,.ads160,.ads1_250,.ads2,.ads24Block,.ads3,.ads300,.ads460,.ads460_home,.ads468,.ads728,.ads728x90,.adsArea,.adsBelowHeadingNormal,.adsBlock,.adsBottom,.adsBox,.adsCell,.adsCont,.adsDiv,.adsFull,.adsImages,.adsInsideResults_v3,.adsMPU,.adsMiddle,.adsRight,.adsTextHouse,.adsTop,.adsTower2,.adsTowerWrap,.adsWithUs,.ads_125_square,.ads_180,.ads_300,.ads_300x100,.ads_300x250,.ads_320,.ads_337x280,.ads_728x90,.ads_big,.ads_big-half,.ads_box,.ads_box_headline,.ads_brace,.ads_catDiv,.ads_container,.ads_disc_anchor,.ads_disc_leader,.ads_disc_lwr_square,.ads_disc_skyscraper,.ads_disc_square,.ads_div,.ads_footer,.ads_header,.ads_holder,.ads_horizontal,.ads_leaderboard,.ads_lr_wrapper,.ads_medrect,.ads_mpu,.ads_outer,.ads_rectangle,.ads_remove,.ads_right,.ads_rightbar_top,.ads_sc_bl_i,.ads_sc_tb,.ads_sc_tl_i,.ads_show_if,.ads_side,.ads_sidebar,.ads_singlepost,.ads_spacer,.ads_takeover,.ads_title,.ads_top,.ads_top_promo,.ads_tr,.ads_verticalSpace,.ads_vtlLink,.ads_widesky,.ads_wrapperads_top,.adsafp,.adsbg300,.adsblockvert,.adsborder,.adsbottom,.adsbox,.adsboxitem,.adsbyyahoo,.adsc,.adscaleAdvert,.adsclick,.adscontainer,.adscreen,.adsd_shift100,.adsection_a2,.adsection_c2,.adsense-468,.adsense-ad,.adsense-category,.adsense-category-bottom,.adsense-googleAds,.adsense-heading,.adsense-overlay,.adsense-post,.adsense-right,.adsense-title,.adsense3,.adsense300,.adsenseAds,.adsenseBlock,.adsenseContainer,.adsenseGreenBox,.adsenseInPost,.adsenseList,.adsense_bdc_v2,.adsense_mpu,.adsensebig,.adsenseblock,.adsenseblock_bottom,.adsenseblock_top,.adsenselr,.adsensem_widget,.adsensesq,.adsenvelope,.adset,.adsforums,.adsghori,.adsgvert,.adshome,.adside,.adsidebox,.adsider,.adsingle,.adsleft,.adsleftblock,.adslink,.adslogan,.adsmalltext,.adsmessage,.adsnippet_widget,.adsp,.adspace,.adspace-MR,.adspace-widget,.adspace180,.adspace_bottom,.adspace_buysell,.adspace_rotate,.adspace_skyscraper,.adspacer,.adspot,.adspot728x90,.adstextpad,.adstitle,.adstop,.adstory,.adstrip,.adtab,.adtable,.adtag,.adtech,.adtext,.adtext_gray,.adtext_horizontal,.adtext_onwhite,.adtext_vertical,.adtile,.adtips,.adtips1,.adtop,.adtravel,.adtxt,.adtxtlinks,.adunit,.adv-mpu,.adv_banner_hor,.adver,.adverTag,.adverTxt,.adver_cont_below,.advert-300-side,.advert-300x100-side,.advert-728x90,.advert-article-bottom,.advert-bannerad,.advert-bg-250,.advert-bloggrey,.advert-box,.advert-btm,.advert-head,.advert-horizontal,.advert-iab-300-250,.advert-iab-468-60,.advert-mpu,.advert-skyscraper,.advert-text,.advert-title,.advert-txt,.advert120,.advert300,.advert300x250,.advert300x300,.advert300x440,.advert350ih,.advert4,.advert5,.advert8,.advertColumn,.advertCont,.advertContainer,.advertContent,.advertHeadline,.advertIslandWrapper,.advertRight,.advertSuperBanner,.advertText,.advertTitleSky,.advert_336,.advert_468x60,.advert_box,.advert_cont,.advert_container,.advert_djad,.advert_google_content,.advert_google_title,.advert_home_300,.advert_label,.advert_leaderboard,.advert_list,.advert_note,.advert_surr,.advert_top,.advertheader-red,.advertise,.advertise-here,.advertise-homestrip,.advertise-horz,.advertise-inquiry,.advertise-leaderboard,.advertise-list,.advertise-top,.advertise-vert,.advertiseContainer,.advertiseText,.advertise_ads,.advertise_here,.advertise_link,.advertise_link_sidebar,.advertisement,.advertisement-728x90,.advertisement-block,.advertisement-sidebar,.advertisement-space,.advertisement-sponsor,.advertisement-swimlane,.advertisement-text,.advertisement-top,.advertisement300x250,.advertisement468,.advertisementBox,.advertisementColumnGroup,.advertisementContainer,.advertisementHeader,.advertisementLabel,.advertisementPanel,.advertisementText,.advertisement_300x250,.advertisement_btm,.advertisement_caption,.advertisement_g,.advertisement_header,.advertisement_horizontal,.advertisement_top,.advertiser,.advertiser-links,.advertisespace_div,.advertising-banner,.advertising-header,.advertising-leaderboard,.advertising-local-links,.advertising2,.advertisingTable,.advertising_block,.advertising_images,.advertisment,.advertisment_bar,.advertisment_caption,.advertisment_two,.advertize,.advertize_here,.advertorial,.advertorial-2,.advertorial-promo-box,.advertorial_red,.advertorialtitle,.adverts,.adverts-125,.adverts_RHS,.advt,.advt-banner-3,.advt-block,.advt-sec,.advt300,.advt720,.adwhitespace,.adwordListings,.adwords,.adwordsHeader,.adwrap,.adwrapper,.adwrapper-lrec,.adwrapper948,.adzone-footer,.adzone-sidebar,.affiliate-link,.affiliate-sidebar,.affiliateAdvertText,.affinityAdHeader,.afsAdvertising,.after_ad,.agi-adsaleslinks,.alb-content-ad,.alignads,.alt_ad,.anchorAd,.another_text_ad,.answer_ad_content,.aolSponsoredLinks,.aopsadvert,.apiAdMarkerAbove,.apiAds,.app_advertising_skyscraper,.archive-ads,.art_ads,.article-ad-box,.article-ads,.article-content-adwrap,.articleAd,.articleAd300x250,.articleAds,.articleAdsL,.articleEmbeddedAdBox,.article_ad,.article_adbox,.article_mpu_box,.article_page_ads_bottom,.articleads,.aseadn,.aux-ad-widget-1,.aux-ad-widget-2,.b-astro-sponsored-links_horizontal,.b-astro-sponsored-links_vertical,.b_ads_cont,.b_ads_top,.banmanad,.banner-468x60,.banner-ad,.banner-ads,.banner-adv,.banner-advert,.banner-adverts,.banner-buysellads,.banner160x600,.banner300by250,.banner300x100,.banner300x250,.banner468,.banner468by60,.banner728x90,.bannerADV,.bannerAd,.bannerAdWrapper300x250,.bannerAdWrapper730x86,.bannerAdvert,.bannerRightAd,.banner_300x250,.banner_728x90,.banner_ad,.banner_ad_footer,.banner_ad_leaderboard,.bannerad,.bannerad-125tower,.bannerad-468x60,.barkerAd,.base-ad-mpu,.base_ad,.base_printer_widgets_AdBreak,.bg-ad-link,.bgnavad,.big-ads,.bigAd,.big_ad,.big_ads,.bigad,.bigad2,.bigbox_ad,.bigboxad,.billboard300x250,.billboard_ad,.biz-ad,.biz-ads,.biz-adtext,.blk_advert,.block-ad,.block-ad300,.block-admanager,.block-ads-bottom,.block-ads-top,.block-adsense,.block-adsense-managed,.block-adspace-full,.block-deca_advertising,.block-google_admanager,.block-openads,.block-openadstream,.block-openx,.block-thirdage-ads,.block-wtg_adtech,.blockAd,.blockAds,.block_ad,.block_ad_sb_text,.block_ad_sponsored_links,.block_ad_sponsored_links-wrapper,.block_ad_sponsored_links_localized,.blockad,.blocked-ads,.blog-ad-leader-inner,.blog-ads-container,.blogAd,.blogAdvertisement,.blogArtAd,.blogBigAd,.blog_ad,.blogads,.blox3featuredAd,.body_ad,.body_sponsoredresults_bottom,.body_sponsoredresults_middle,.body_sponsoredresults_top,.bodyads,.bodyads2,.bookseller-header-advt,.bottom-ad,.bottom-ad-fr,.bottomAd,.bottomAds,.bottom_ad,.bottom_ad_block,.bottom_ads,.bottom_adsense,.bottomad,.bottomads,.bottomadvert,.bottombarad,.bottomrightrailAd,.bottomvidad,.box-ad,.box-ad-grey,.box-ads,.box-adsense,.boxAd,.boxAds,.boxAdsInclude,.box_ad,.box_ad_container,.box_ad_content,.box_ad_spacer,.box_ad_wrap,.box_ads,.box_advertising,.box_advertisment_62_border,.box_content_ad,.box_content_ads,.box_textads,.boxad,.boxads,.boxyads,.bps-ad-wrapper,.bps-advertisement,.bps-advertisement-inline-ads,.br-ad,.breakad_container,.brokerad,.bsa_ads,.btm_ad,.btn-ad,.bullet-sponsored-links,.bullet-sponsored-links-gray,.burstContentAdIndex,.busrep_poll_and_ad_container,.buttonAd,.buttonAds,.button_ads,.button_advert,.buttonadbox,.buttonads,.bx_ad,.bx_ad_right,.cA-adStrap,.cColumn-TextAdsBox,.cLeftTextAdUnit,.c_ligatus_nxn,.calloutAd,.carbonad,.carbonad-tag,.care2_adspace,.catalog_ads,.category-ad,.categorySponsorAd,.category__big_game_container_body_games_advertising,.cb-ad-banner,.cb-ad-container,.cb_ads,.cb_navigation_ad,.cbstv_ad_label,.cbzadvert,.cbzadvert_block,.cdAdTitle,.cdmainlineSearchAdParent,.cdsidebarSearchAdParent,.centerAd,.center_ad,.centerad,.centered-ad,.chitikaAdCopy,.cinemabotad,.classifiedAdThree,.clearerad,.cmAdFind,.cm_ads,.cms-Advert,.cnbc_badge_banner_ad_area,.cnbc_banner_ad_area,.cnbc_leaderboard_ad,.cnn160AdFooter,.cnnAd,.cnnMosaic160Container,.cnnStoreAd,.cnnStoryElementBoxAd,.cnnWCAdBox,.cnnWireAdLtgBox,.cnn_728adbin,.cnn_adcntr300x100,.cnn_adcntr728x90,.cnn_adspc336cntr,.cnn_adtitle,.cntrad,.column2-ad,.columnBoxAd,.columnRightAdvert,.com-ad-server,.comment-ad,.comment-ad-wrap,.comment-advertisement,.comment_ad_box,.common_advertisement_title,.communityAd,.conTSponsored,.conductor_ad,.confirm_ad_left,.confirm_ad_right,.confirm_leader_ad,.consoleAd,.container-adwords,.containerSqAd,.container_serendipity_plugin_google_adsense,.content-ad,.content-ads,.content-advert,.contentAd,.contentAdFoot,.contentAdsWrapper,.content_ad,.content_ad_728,.content_adsense,.content_adsq,.content_tagsAdTech,.contentad,.contentad-home,.contentad300x250,.contentad_right_col,.contentadcontainer,.contentadfloatl,.contentadleft,.contentads,.contentadstartpage,.contenttextad,.contest_ad,.cp_ad,.cpmstarHeadline,.cpmstarText,.create_ad,.cs-mpu,.cscTextAd,.cse_ads,.cspAd,.ct_ad,.ctnAdSkyscraper,.ctnAdSquare300,.cube-ad,.cubeAd,.cube_ads,.currency_ad,.custom_ads,.cwAdvert,.cxAdvertisement,.darla_ad,.dart-ad,.dartAdImage,.dart_ad,.dart_tag,.dartadvert,.dartiframe,.dc-ad,.dcAdvertHeader,.deckAd,.deckads,.detail-ads,.detailMpu,.detail_ad,.detail_top_advert,.dfrads,.displayAdSlot,.divAd,.divAdright,.divad1,.divad2,.divad3,.divads,.divider_ad,.dlSponsoredLinks,.dmco_advert_iabrighttitle,.downloadAds,.download_ad,.downloadad,.dsq_ad,.dualAds,.dynamic-ads,.dynamic_ad,.e-ad,.ec-ads,.ec-ads-remove-if-empty,.em-ad,.em_ads_box_dynamic_remove,.embed-ad,.embeddedAd,.entry-body-ad,.entry-injected-ad,.entry_sidebar_ads,.entryad,.ez-clientAd,.f_Ads,.feature_ad,.featuredAds,.featured_ad,.featuredadvertising,.fireplaceadleft,.fireplaceadright,.fireplaceadtop,.firstpost_advert_container,.flagads,.flash-advertisement,.flash_ad,.flash_advert,.flashad,.flexiad,.flipbook_v2_sponsor_ad,.floatad,.floated_right_ad,.floatingAds,.fm-badge-ad,.fns_td_wrap,.fold-ads,.footad,.footer-ad,.footerAd,.footerAdModule,.footerAds,.footerAdslot,.footerAdverts,.footerTextAd,.footer_ad,.footer_ad336,.footer_ads,.footer_block_ad,.footer_bottomad,.footer_line_ad,.footer_text_ad,.footerad,.forumtopad,.freedownload_ads,.frn_adbox,.frn_cont_adbox,.frontads,.frontpage-google-ad,.ft-ad,.ftdAdBar,.ftdContentAd,.full_ad_box,.fullbannerad,.g3rtn-ad-site,.gAdRows,.gAdSky,.gAdvertising,.g_ggl_ad,.ga-ads,.ga-textads-bottom,.ga-textads-top,.gaTeaserAds,.gaTeaserAdsBox,.gads,.gads_cb,.gads_container,.gallery_ad,.gam_ad_slot,.gameAd,.gamesPage_ad_content,.gbl_advertisement,.gen_side_ad,.gglAds,.global_banner_ad,.googad,.googads,.google-ad,.google-ad-container,.google-ads,.google-ads-boxout,.google-ads-slim,.google-adsense,.google-right-ad,.google-sponsored-ads,.google-sponsored-link,.google468,.google468_60,.googleAd,.googleAd-content,.googleAd-list,.googleAd300x250_wrapper,.googleAdBox,.googleAdSense,.googleAdSenseModule,.googleAd_body,.googleAds,.googleAds_article_page_above_comments,.googleAdsense,.googleContentAds,.googleProfileAd,.googleSearchAd_content,.googleSearchAd_sidebar,.google_ad,.google_ad_wide,.google_add_container,.google_ads,.google_ads_bom_title,.google_ads_content,.google_adsense_footer,.googlead,.googleaddiv,.googleaddiv2,.googleads,.googleads_300x250,.googleads_title,.googleadsense,.googleafc,.googley_ads,.gpAdBox,.gpAds,.gradientAd,.grey-ad-line,.group_ad,.gsAd,.gsfAd,.gt_ad,.gt_ad_300x250,.gt_ad_728x90,.gt_adlabel,.gutter-ad-left,.gutter-ad-right,.gx_ad,.h-ad-728x90-bottom,.h_Ads,.h_ad,.half-ad,.half_ad_box,.hcf-ad,.hcf-ad-rectangle,.hcf-cms-ad,.hd_advert,.hdr-ads,.header-ad,.header-advert,.header-taxonomy-image-sponsor,.headerAd,.headerAdCode,.headerAds,.headerAdvert,.headerTextAd,.header_ad,.header_ad_center,.header_ad_div,.header_ads,.header_advertisement,.header_advertisment,.headerad,.headerad-720,.hi5-ad,.highlightsAd,.hm_advertisment,.hn-ads,.home-ad-links,.homeAd,.homeAd1,.homeAd2,.homeAdBoxA,.homeAdBoxBetweenBlocks,.homeAdBoxInBignews,.homeAdSection,.homeMediumAdGroup,.home_ad_bottom,.home_advertisement,.home_mrec_ad,.homead,.homepage-ad,.homepage300ad,.homepageFlexAdOuter,.homepageMPU,.homepage_middle_right_ad,.homepageinline_adverts,.hor_ad,.horiz_adspace,.horizontalAd,.horizontal_ad,.horizontal_ads,.horizontaltextadbox,.horizsponsoredlinks,.hortad,.houseAd1,.houseAdsStyle,.housead,.hoverad,.hp-col4-ads,.hp2-adtag,.hp_ad_cont,.hp_ad_text,.hp_t_ad,.hp_w_ad,.hpa-ad1,.html-advertisement,.ic-ads,.ico-adv,.idMultiAd,.image-advertisement,.imageAd,.imageads,.imgad,.in-page-ad,.in-story-ads,.in-story-text-ad,.inStoryAd-news2,.indEntrySquareAd,.indie-sidead,.indy_googleads,.inhousead,.inline-ad,.inline-mpu,.inline-mpu-left,.inlineSideAd,.inline_ad,.inline_ad_title,.inlinead,.inlineadsense,.inlineadtitle,.inlist-ad,.inlistAd,.inner-advt-banner-3,.innerAds,.innerad,.inpostad,.insert_advertisement,.insertad,.insideStoryAd,.inteliusAd_image,.interest-based-ad,.internalAdsContainer,.iprom-ad,.is24-adplace,.isAd,.islandAd,.islandAdvert,.islandad,.itemAdvertise,.jimdoAdDisclaimer,.jp-advertisment-promotional,.js-advert,.kdads-empty,.kdads-link,.kw_advert,.kw_advert_pair,.l_ad_sub,.label-ad,.labelads,.largeRecAdNewsContainerRight,.largeRectangleAd,.largeUnitAd,.large_ad,.lastRowAd,.lcontentbox_ad,.leadAd,.leaderAdSlot,.leaderAdTop,.leaderAdvert,.leaderBoardAdHolder,.leaderOverallAdArea,.leader_ad,.leaderboardAd,.leaderboardAdContainer,.leaderboardAdContainerInner,.leaderboard_ad,.leaderboardad,.leaderboardadtop,.left-ad,.leftAd,.leftAdColumn,.leftAds,.left_ad,.left_ad_box,.left_adlink,.left_ads,.left_adsense,.leftad,.leftadtag,.leftbar_ad_160_600,.leftbarads,.leftbottomads,.leftnavad,.lgRecAd,.lg_ad,.ligatus,.linead { display:none !important; } .link_adslider,.link_advertise,.live-search-list-ad-container,.ljad,.local-ads,.log_ads,.logoAds,.logoad,.logoutAd,.longAd,.longAdBox,.lowerAds,.lr-ad,.m-ad-tvguide-box,.m4-adsbygoogle,.m_banner_ads,.macAd,.macad,.main-ad,.main-advert,.main-tabs-ad-block,.mainAd,.mainLinkAd,.main_ad,.main_ad_bg_div,.main_adbox,.main_ads,.main_intro_ad,.map_media_banner_ad,.marginadsthin,.marketing-ad,.masthead_topad,.matador_sidebar_ad_600,.mdl-ad,.media-advert,.mediaAd,.mediaAdContainer,.mediaResult_sponsoredSearch,.medium-rectangle-ad,.mediumRectangleAdvert,.medium_ad,.medrect_ad,.member-ads,.menuItemBannerAd,.menueadimg,.messageBoardAd,.mf-ad300-container,.micro_ad,.mid_ad,.mid_page_ad,.midad,.middleAds,.middleads,.min_navi_ad,.mini-ad,.miniad,.mmc-ad,.mmcAd_Iframe,.mod-ad-lrec,.mod-ad-n,.mod-adopenx,.mod-vertical-ad,.mod_admodule,.module-ad,.module-ad-small,.module-ads,.module-sponsored-ads,.moduleAd,.moduleAdvertContent,.module_ad,.module_box_ad,.modulegad,.moduletable-advert,.moduletable-googleads,.moduletablesquaread,.mpu,.mpu-ad,.mpu-ad-con,.mpu-advert,.mpu-footer,.mpu-fp,.mpu-title,.mpu-top-left,.mpu-top-left-banner,.mpu-top-right,.mpu01,.mpuAd,.mpuAdSlot,.mpuAdvert,.mpuArea,.mpuBox,.mpuContainer,.mpuHolder,.mpuTextAd,.mpu_ad,.mpu_advert,.mpu_container,.mpu_gold,.mpu_holder,.mpu_platinum,.mpu_side,.mpu_text_ad,.mpuad,.mpuholderportalpage,.mrec_advert,.ms-ads-link,.msfg-shopping-mpu,.mvw_onPageAd1,.mwaads,.my-ad250x300,.nSponsoredLcContent,.nSponsoredLcTopic,.nadvt300,.narrow_ad_unit,.narrow_ads,.navAdsBanner,.navBads,.nav_ad,.navadbox,.navcommercial,.navi_ad300,.naviad,.nba300Ad,.nbaT3Ad160,.nbaTVPodAd,.nbaTwo130Ads,.nbc_ad_carousel_wrp,.newPex_forumads,.newTopAdContainer,.newad,.newsAd,.news_article_ad_google,.newsviewAdBoxInNews,.nf-adbox,.nn-mpu,.noAdForLead,.normalAds,.nrAds,.nsAdRow,.nu2ad,.oas-ad,.oas-bottom-ads,.oas_ad,.oas_advertisement,.offer_sponsoredlinks,.oio-banner-zone,.oio-link-sidebar,.oio-zone-position,.on_single_ad_box,.onethirdadholder,.openads,.openadstext_after,.openx,.openx-ad,.openx_ad,.osan-ads,.other_adv2,.outermainadtd1,.ovAdPromo,.ovAdSky,.ovAdartikel,.ov_spns,.ovadsenselabel,.pageAds,.pageBottomGoogleAd,.pageGoogleAd,.pageGoogleAdFlat,.pageGoogleAdSubcontent,.pageGoogleAds,.pageGoogleAdsContainer,.pageLeaderAd,.page_content_right_ad,.pagead,.pageads,.pagenavindexcontentad,.paneladvert,.partner-ad,.partner-ads-container,.partnerAd,.partnersTextLinks,.pencil_ad,.player_ad_box,.player_hover_ad,.player_page_ad_box,.plista_inimg_box,.pm-ad,.pmad-in2,.pnp_ad,.pod-ad-300,.podRelatedAdLinksWidget,.podSponsoredLink,.portalCenterContentAdBottom,.portalCenterContentAdMiddle,.portalCenterContentAdTop,.portal_searchresultssponsoredlist,.portalcontentad,.post-ad,.postAd,.post_ad,.post_ads,.post_sponsor_unit,.postbit_adbit_register,.postbit_adcode,.postgroup-ads,.postgroup-ads-middle,.prebodyads,.premium_ad_container,.promoAd,.promoAds,.promo_ad,.ps-ligatus_placeholder,.pub_300x250,.pub_300x250m,.pub_728x90,.publication-ad,.publicidad,.puff-advertorials,.qa_ad_left,.qm-ad-content,.qm-ad-content-news,.quigo-ad,.qzvAdDiv,.r_ad_1,.r_ad_box,.r_ads,.rad_container,.rect_ad_module,.rectad,.rectangle-ad,.rectangleAd,.rectanglead,.redads_cont,.regular_728_ad,.regularad,.relatedAds,.related_post_google_ad,.remads,.resourceImagetAd,.result_ad,.reviewMidAdvertAlign,.rght300x250,.rhads,.rhs-ad,.rhs-ads-panel,.rhs-advert-container,.rhs-advert-link,.rhs-advert-title,.right-ad,.right-ad-holder,.right-ad2,.right-ads,.right-ads2,.right-sidebar-box-ad,.rightAd,.rightAdBox,.rightAdverts,.rightColAd,.rightColumnRectAd,.rightRailAd,.right_ad,.right_ad_160,.right_ad_box,.right_ad_common_block,.right_ad_text,.right_ad_top,.right_ads,.right_ads_column,.right_box_ad_rotating_container,.right_col_ad,.right_hand_advert_column,.right_side-partyad,.rightad,.rightad_1,.rightad_2,.rightadbox1,.rightads,.rightadunit,.rightbigcolumn_ads_nobackground,.rightcol_boxad,.rightcoladvert,.rightcoltowerad,.rightmenu_ad,.rnav_ad,.rngtAd,.rot_ads,.roundedCornersAd,.roundingrayboxads,.rt_ad1_300x90,.rt_ad_300x250,.rt_ad_call,.s2k_ad,.savvyad_unit,.sb-ad-sq-bg,.sbAd,.sbAdUnitContainer,.sb_ad_holder,.sb_adsN,.sb_adsNv2,.sb_adsW,.sb_adsWv2,.scanAd,.scc_advert,.sci-ad-main,.sci-ad-sub,.search-ad,.search-results-ad,.search-sponsor,.search-sponsored,.searchAd,.searchAdTop,.searchAds,.searchSponsoredResultsBox,.searchSponsoredResultsList,.search_column_results_sponsored,.search_results_sponsored_top,.section-ad2,.section_mpu_wrapper,.section_mpu_wrapper_wrapper,.selfServeAds,.sepContentAd,.serp_sponsored,.servsponserLinks,.shoppingGoogleAdSense,.showAd_No,.showAd_Yes,.showcaseAd,.sidbaread,.side-ad,.side-ads,.side-sky-banner-160,.sideAd,.sideBoxAd,.side_ad,.side_ad2,.side_ad_1,.side_ad_2,.side_ad_3,.sidead,.sideads,.sideadsbox,.sideadvert,.sidebar-ad,.sidebar-ads,.sidebar-content-ad,.sidebar-text-ad,.sidebarAd,.sidebarAdUnit,.sidebarAdvert,.sidebar_ad,.sidebar_ad_300_250,.sidebar_ads,.sidebar_ads_336,.sidebar_adsense,.sidebar_box_ad,.sidebarad,.sidebarad_bottom,.sidebaradbox,.sidebarads,.sidebarboxad,.sideheadnarrowad,.sideheadsponsorsad,.single-google-ad,.singleAd,.singleAdsContainer,.single_ad,.singlead,.singleadstopcstm2,.site_ad_120_600,.site_ad_300x250,.sitesponsor,.skinAd,.skin_ad_638,.sky-ad,.skyAd,.skyAdd,.skyAdvert,.skyAdvert2,.sky_ad,.sky_scraper_ad,.skyad,.skyjobsadtext,.skyscraper-ad,.skyscraper_ad,.skyscraper_bannerAdHome,.sleekadbubble,.slideshow-ad,.slpBigSlimAdUnit,.slpSquareAdUnit,.sm_ad,.smallSkyAd1,.smallSkyAd2,.small_ad,.small_ads,.smallad-left,.smallads,.smallsponsorad,.smart_ads_bom_title,.spLinks,.specialAd175x90,.speedyads,.sphereAdContainer,.spl-ads,.spl_ad,.spl_ad2,.spl_ad_plus,.splitAd,.splitAdResultsPane,.sponlinkbox,.spons-link,.spons_links,.sponslink,.sponsor-ad,.sponsor-link,.sponsor-links,.sponsor-services,.sponsorPanel,.sponsorPost,.sponsorPostWrap,.sponsorStrip,.sponsor_ad_area,.sponsor_area,.sponsor_columns,.sponsor_footer,.sponsor_line,.sponsor_links,.sponsor_logo,.sponsoradtitle,.sponsored-ads,.sponsored-chunk,.sponsored-editorial,.sponsored-features,.sponsored-links,.sponsored-links-alt-b,.sponsored-links-holder,.sponsored-links-right,.sponsored-post,.sponsored-post_ad,.sponsored-results,.sponsored-right-border,.sponsored-text,.sponsoredBox,.sponsoredInfo,.sponsoredInner,.sponsoredLabel,.sponsoredLink,.sponsoredLinks,.sponsoredLinks2,.sponsoredLinksHeader,.sponsoredProduct,.sponsoredResults,.sponsoredSideInner,.sponsored_ads,.sponsored_box,.sponsored_box_search,.sponsored_by,.sponsored_link,.sponsored_links,.sponsored_links_title_container,.sponsored_links_title_container_top,.sponsored_links_top,.sponsored_result,.sponsored_results,.sponsored_well,.sponsoredibbox,.sponsoredlink,.sponsoredlinks,.sponsoredlinkscontainer,.sponsoredresults,.sponsoredtextlink_container_ovt,.sponsoring_link,.sponsorlink,.sponsorlink2,.sponsormsg,.sport-mpu-box,.spotlightAd,.squareAd,.square_ad,.square_banner_ad,.squared_ad,.ss-ad-mpu,.standard-ad,.start__newest__big_game_container_body_games_advertising,.staticAd,.stickyAdLink,.stock-ticker-ad-tag,.stocks-ad-tag,.store-ads,.story_AD,.story_ad_div,.story_right_adv,.storyad,.subad,.subadimg,.subcontent-ad,.subtitle-ad-container,.sugarad,.super-ad,.supercommentad_left,.supercommentad_right,.supp-ads,.supportAdItem,.surveyad,.t10ad,.tab_ad,.tab_ad_area,.tablebordersponsor,.tadsanzeige,.tadsbanner,.tadselement,.tallad,.tblTopAds,.tbl_ad,.tbox_ad,.td-Adholder,.td-TrafficWeatherWidgetAdGreyBrd,.teaser-sponsor,.teaserAdContainer,.teaser_adtiles,.text-ad,.text-ad-links,.text-ads,.text-advertisement,.text-g-advertisement,.text-g-group-short-rec-ad,.text-g-net-grp-google-ads-article-page,.textAd,.textAdBox,.textAds,.text_ad,.text_ads,.textad,.textadContainer,.textad_headline,.textadbox,.textadheadline,.textadlink,.textads,.textads_left,.textads_right,.textadsds,.textadsfoot,.textadtext,.textlink-ads,.textlinkads,.tf_page_ad_search,.thirdage_ads_300x250,.thirdage_ads_728x90,.thisIsAd,.thisIsAnAd,.ticket-ad,.tileAds,.tips_advertisement,.title-ad,.title_adbig,.tncms-region-ads,.toolad,.toolbar-ad,.top-ad,.top-ad-space,.top-ads,.top-banner-ad,.top-menu-ads,.topAd,.topAdWrap,.topAds,.topAdvertisement,.topAdverts,.topBannerAd,.topLeaderboardAd,.top_Ad,.top_ad,.top_ad_728,.top_ad_728_90,.top_ad_disclaimer,.top_ad_div,.top_ad_post,.top_ad_wrapper,.top_ads,.top_advert,.top_advertisement,.top_advertising_lb,.top_bar_ad,.top_container_ad,.topad,.topad-bar,.topadbox,.topads,.topadspot,.topadvertisementsegment,.topboardads,.topcontentadvertisement,.topic_inad,.topstoriesad,.toptenAdBoxA,.tourFeatureAd,.tower-ad,.towerAd,.towerAdLeft,.towerAds,.tower_ad,.tower_ad_disclaimer,.towerad,.tr-ad-adtech-placement,.tribal-ad,.ts-ad_unit_bigbox,.ts-banner_ad,.ttlAdsensel,.tto-sponsored-element,.tucadtext,.tvs-mpu,.twoColumnAd,.twoadcoll,.twoadcolr,.tx_smartadserver_pi1,.txt-ads,.txtAd,.txtAds,.txt_ads,.txtadvertise,.type_adscontainer,.type_miniad,.type_promoads,.ukAds,.ukn-banner-ads,.under_ads,.undertimyads,.unit-ad,.universalboxADVBOX01,.universalboxADVBOX03,.universalboxADVBOX04a,.usenext,.v5rc_336x280ad,.vert-ads,.vert-adsBlock,.vertad,.vertical-adsense,.vidadtext,.videoAd,.videoBoxAd,.video_ad,.view-promo-mpu-right,.view_rig_ad,.virgin-mpu,.wa_adsbottom,.wantads,.weather_ad,.wide-ad,.wide-skyscraper-ad,.wideAd,.wideAdTable,.wide_ad,.wide_ad_unit_top,.wide_ads,.wide_google_ads,.widget-ad,.widget-ad-codes,.widget-ad300x250,.widget-entry-ads-160,.widgetYahooAds,.widget_ad,.widget_ad_boxes_widget,.widget_ad_rotator,.widget_adrotate_widgets,.widget_advert_widget,.widget_econaabachoadswidget,.widget_island_ad,.widget_maxbannerads,.widget_sdac_bottom_ad_widget,.widget_sdac_footer_ads_widget,.widget_sdac_skyscraper_ad_widget,.wikia-ad,.wikia_ad_placeholder,.wingadblock,.withAds,.wl-ad,.wnMultiAd,.wp125_write_ads_widget,.wp125ad,.wp125ad_2,.wpn_ad_content,.wrap-ads,.wrapper-ad,.wrapper-ad-sidecol,.wsSponsoredLinksRight,.wsTopSposoredLinks,.x03-adunit,.x04-adunit,.x81_ad_detail,.xads-blk-top-hld,.xads-blk2,.xads-ojedn,.y-ads,.y-ads-wide,.y7-advertisement,.yahoo-sponsored,.yahoo-sponsored-links,.yahooAds,.yahoo_ads,.yahooad,.yahooad-image,.yahooad-urlline,.yan-sponsored,.ygrp-ad,.yom-ad,.youradhere,.yrail_ad_wrap,.yrail_ads,.ysmsponsor,.ysponsor,.yw-ad,.zRightAdNote,a[href^="http://ad-apac.doubleclick.net/"],a[href^="http://ad-emea.doubleclick.net/"],a[href^="http://ad.doubleclick.net/"],a[href^="http://adserving.liveuniversenetwork.com/"],a[href^="http://galleries.pinballpublishernetwork.com/"],a[href^="http://galleries.securewebsiteaccess.com/"],a[href^="http://install.securewebsiteaccess.com/"],a[href^="http://latestdownloads.net/download.php?"],a[href^="http://secure.signup-page.com/"],a[href^="http://secure.signup-way.com/"],a[href^="http://www.FriendlyDuck.com/AF_"],a[href^="http://www.adbrite.com/mb/commerce/purchase_form.php?"],a[href^="http://www.firstload.de/affiliate/"],a[href^="http://www.friendlyduck.com/AF_"],a[href^="http://www.google.com/aclk?"],a[href^="http://www.liutilities.com/aff"],a[href^="http://www.liutilities.com/products/campaigns/adv/"],a[href^="http://www.my-dirty-hobby.com/?sub="],a[href^="http://www.ringtonematcher.com/"],#mbEnd[cellspacing="0"][style],#mclip_container:last-child,#ssmiwdiv[jsdisplay],#tads.c,#tadsb.c,.ch[onclick="ga(this,event)"],.ra[align="left"][width="30%"],.ra[align="right"][width="30%"],#Werbung,#WerbungObenRechts10_GesamtDIV,#WerbungObenRechts8_GesamtDIV,#WerbungObenRechts9_GesamtDIV,#WerbungUntenLinks4_GesamtDIV,#WerbungUntenLinks7_GesamtDIV,#WerbungUntenLinks8_GesamtDIV,#WerbungUntenLinks9_GesamtDIV,#__ligatus_placeholder__,#ad-bereich1-08,#ad-bereich1-superbanner,#ad-bereich2-08,#ad-bereich2-skyscrapper,#ad-rechts-block,#ad-rechts-sky,#ad_gross,#ad_lang,#ad_oben,#ad_rechts,#adbox_artikel,#adkontainer,#anzeigewerbungtext,#ar_detail_werb103,#bannerwerbung,#callya_freikarte_layer,#cnt_bgwerbung,#cont-werb,#forumformwerbung,#freikarte_layer,#gonamicerror,#header_werbung,#headerwerbung,#kaufDA,#kaufDA-widget-container,#kopf-werbung,#lieferando-widget-container,#moveable_werbung,#p-links-werbung,#p-rechts-werbung,#qm_content_ad_anzeige,#reklame,#startwerbung,#t_werbung,#textwerbung,#topwerbung,#werbLayer1,#werbLayer2,#werbLayer3,#werb_ps103,#werbebalken_slot,#werbebanner,#werbeblock,#werbebox,#werbebox_contentad,#werbecontainer_content,#werbecontainer_sky,#werbeflaeche,#werbetrenner,#werbung,#werbung-left,#werbung-skyscraper,#werbung1,#werbung2,#werbung3,#werbung792_2,#werbungSuperbanner,#werbung_bigsize,#werbung_footer,#werbung_mitte,#werbung_rechts,#werbung_right,#werbung_top,#werbunglink,#werbungrechts,#werbungsky,#wkr_werbung,.Artikel_Ads_News,.KomischeWerbeBox,.RessortWerbungHeader,.Werbeteaser,.Werbung,.WerbungAdpepper,.WerbungDetailRectangle,.WerbungLinksRechts,.WerbungMitte,.ad_mitte,.ads_rechts,.adzeiger,.anzeigenwerbung,.bannerAnzeige,.bdeFotoGalAd,.bdeFotoGalAdText,.big-werb,.block_rs4_werbung,.bottom-werbung-box,.box_werbung_detailseite,.boxstartwerbung,.boxwerbung,.content_body_right_werbung,.content_header_werbung,.content_right_side_werbewrapper,.contentwerbung4,.ecom_werbung,.firstload,.fullbanner_werbung,.gutZuWissenAd,.insidewerbung,.lokalwerbung,.rahmen_ad,.reklame,.right-content-werbung,.seitenleiste_werbung,.sponsorinaktiv,.sponsorlinkgruen,.tab_artikelwerbung,.teaser_adliste,.text_werbung,.textad_hauptlink,.topwerbung,.werbeadd_ueber,.werbebanner,.werbeflaeche,.werbung,.werbung-bigbox,.werbung-bigsize,.werbung-content,.werbung-contentad,.werbung-fullbanner,.werbung-halfbanner,.werbung-label,.werbung-leiste,.werbung-rectangle,.werbung-skyscraper,.werbung-skyscraper2,.werbung1,.werbung2,.werbung3,.werbung300,.werbung301,.werbungAnzeige,.werbung_bereich,.werbungamazon,a[href^="http://farm.plista.com/pets"],a[href^="http://shortnews.de/gotoklick.cfm?fr_campaign_adtext_id="],a[href^="http://www.eis.de/index.phtml?refid="],a[href^="http://www.firstload.de/index.php?set_lang=de&log="],a[href^="http://www.top-of-software.de/"],a[href^="https://farm.plista.com/pets"],input[onclick^="window.open('http://www.firstload.de/affiliate/"] { display:none !important; }</style></html>