This commit is contained in:
stpeter 2011-06-24 09:57:04 -06:00
parent 38096f09fd
commit 5a0e2e7773
1 changed files with 517 additions and 202 deletions

View File

@ -24,13 +24,19 @@
</supersedes>
<supersededby/>
<shortname>NOT_YET_ASSIGNED</shortname>
&stpeter;
<author>
<firstname>Samantha</firstname>
<surname>Mizzi</surname>
<email>samizzi@cisco.com</email>
<jid>samizzi@cisco.com</jid>
</author>
&stpeter;
<revision>
<version>0.5</version>
<date>2011-06-24</date>
<initials>psa</initials>
<remark><p>Corrected XSLT script; provided detailed examples of the vcard-temp and vCard4 XML formats.</p></remark>
</revision>
<revision>
<version>0.4</version>
<date>2011-06-20</date>
@ -134,7 +140,10 @@
<photo><uri>http://me.stpeter.im/images/stpeter_oscon.jpg</uri></photo>
<bday><date>1966-08-06</date></bday>
<adr>
<parameters><type><text>work</text></type></parameters>
<parameters>
<type><text>work</text><text>voice</text></type>
<pref><integer>1</integer></pref>
</parameters>
<ext>Suite 600</ext>
<street>1899 Wynkoop Street</street>
<locality>Denver</locality>
@ -152,7 +161,10 @@
<country>USA</country>
</adr>
<tel>
<parameters><type><text>work</text><text>voice</text></type></parameters>
<parameters>
<type><text>work</text><text>voice</text></type>
<pref><integer>1</integer></pref>
</parameters>
<uri>tel:+1-303-308-3282</uri>
</tel>
<tel>
@ -166,133 +178,11 @@
<geo><uri>geo:39.59,-105.01</uri></geo>
<title><text>Executive Director</text></title>
<role><text>Patron Saint</text></role>
<logo><uri>data:image/jpeg;
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
0vx/+oqw7D4D8qysrzcv7jro/9k=
</uri>
</logo>
<org>
<parameters><type><text>work</text></type></parameters>
<text>XMPP Standards Foundation</text>
</org>
<url><uri>https://stpeter.im/</uri></url>
<url><uri>http://www.saint-andre.com/</uri></url>
<key>
<text>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=4sgL
-----END PGP PUBLIC KEY BLOCK-----
</text>
</key>
<note>
<text>
More information about me is located on my
@ -313,7 +203,7 @@ vg1b8xiNvBYs7KmcWkZMV+KlAloAn38KQv4WdVk2ugeCDCcVe9ARI3PE
<text>stpeter@jabber.org</text>
</email>
<impp>
<parameters><type><text>home</text></type></parameters>
<parameters><type><text>work</text></type></parameters>
<uri>xmpp:psaintan@cisco.com</uri>
</impp>
<impp>
@ -321,8 +211,7 @@ vg1b8xiNvBYs7KmcWkZMV+KlAloAn38KQv4WdVk2ugeCDCcVe9ARI3PE
<uri>xmpp:stpeter@jabber.org</uri>
</impp>
<key>
<parameters><type><text>work</text></type></parameters>
<uri>https://stpeter.im/index.php/contact/</uri>
<uri>https://stpeter.im/stpeter.asc</uri>
</key>
</vcard>
</iq>
@ -457,7 +346,7 @@ vg1b8xiNvBYs7KmcWkZMV+KlAloAn38KQv4WdVk2ugeCDCcVe9ARI3PE
</section3>
</section2>
<section2 topic='Properties Defined Incorrectly in vcard-temp' anchor='mapping-incorrect'>
<p>Several of the properties in vcard-temp are defined differently in vCard3. In fact, the definitions even differ from those provisionally made in the so-called "Dawson drafts" from which vcard-temp was supposedly defined (for reference, the last of these is archived at &lt;<link url='http://www.watersprings.org/pub/id/draft-dawson-vcard-xml-dtd-03.txt'>http://www.watersprings.org/pub/id/draft-dawson-vcard-xml-dtd-03.txt</link>&gt;). The reasons for these discrepancies are unknown. However, care must be taken in correctly mapping these properties from vcard-temp to vCard4.</p>
<p>Several of the properties in vcard-temp are defined differently in vCard3. In fact, the definitions even differ from those provisionally made in the so-called "Dawson drafts" from which vcard-temp was supposedly derived (for reference, the last of these is archived at &lt;<link url='http://www.watersprings.org/pub/id/draft-dawson-vcard-xml-dtd-03.txt'>http://www.watersprings.org/pub/id/draft-dawson-vcard-xml-dtd-03.txt</link>&gt;). The reasons for these discrepancies are unknown. However, care must be taken in correctly mapping these properties from vcard-temp to vCard4.</p>
<section3 topic='KEY' anchor='mapping-incorrect-key'>
<p>The DTD in <cite>XEP-0054</cite> provided this definition for the KEY element:</p>
<code><![CDATA[
@ -499,7 +388,7 @@ property-key = element key {
</ul>
</section3>
<section3 topic='AGENT' anchor='mapping-different-agent'>
<p>In vCard3 and vcard-temp, the AGENT property was allowed to contain inline vCard of someone who could act as an agent for the primary owner of the referenced vCard. In vCard4, inline vCards are disallowed. Therefore only pointers to external vCard objects are now allowed, by means of a URI.</p>
<p>In vCard3 and vcard-temp, the AGENT property was allowed to contain the inline vCard of someone who could act as an agent for the primary owner of the referenced vCard. In vCard4, inline vCards are disallowed. Therefore only pointers to external vCard objects are now allowed, by means of a URI.</p>
</section3>
<section3 topic='ORG' anchor='mapping-different-org'>
<p>The ORGUNIT property was removed from vCard4, with the result that the ORGNAME property becomes the only value for an ORG.</p>
@ -550,8 +439,15 @@ property-key = element key {
<p>There is no mapping from these properties to vCard4.</p>
</section2>
</section1>
<section1 topic='Extensible Stylesheet Language Transformation (XSLT) from vcard-temp to vCard4' anchor='xslt'>
<p>This section provides a <strong>highly provisional and purely informational</strong> XSLT script for migration from vcard-temp to vCard4.</p>
<section1 topic='Migration Tools' anchor='migration'>
<p>This section contains three tools that are intended to help developers in migrating from vcard-temp to vCard4 XML:</p>
<ol>
<li>An Extensible Stylesheet Language Transformation (XSLT) script for automatically translating the vcard-temp XML format into the vCard4 XML format.</li>
<li>An example of vcard-temp data that uses most of the elements defined in <cite>XEP-0054</cite> that can be mapped to vCard4 properties (note that some of these elements were never used in practice).</li>
<li>An example of vCard4 XML data showing the transformation of the vcard-temp example using the XSLT stylesheet.</li>
</ol>
<p>The tools are <strong>purely informational</strong> and are not a normative part of this specification.</p>
<section2 topic='Extensible Stylesheet Language Transformation (XSLT) from vcard-temp to vCard4' anchor='migration-xslt'>
<code><![CDATA[
<?xml version='1.0' encoding='UTF-8'?>
@ -587,9 +483,9 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<!-- Author: stpeter@jabber.org -->
<!-- Version: 0.0.1 -->
<!-- Version: 0.0.2 -->
<!-- Last Updated: 2011-06-20 -->
<!-- Last Updated: 2011-06-22 -->
<!-- NOTE: This is a provisional mapping with known
errors. It is subject to change without notice.
@ -671,11 +567,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<photo><uri><xsl:value-of select='EXTVAL'/></uri></photo>
</xsl:when>
<xsl:otherwise>
<photo>
<uri>
<xsl:text>data:</xsl:text><xsl:value-of select='TYPE'/><xsl:text>;</xsl:text><xsl:value-of select='BINVAL'/>
</uri>
</photo>
<photo><uri><xsl:text>data:</xsl:text><xsl:value-of select='TYPE'/><xsl:text>;</xsl:text><xsl:value-of select='BINVAL'/></uri></photo>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
@ -714,29 +606,21 @@ OR OTHER DEALINGS IN THE SOFTWARE.
but it was removed from vCard4 -->
<!-- one or more TZ elements can be included -->
<xsl:for-each select='/vCard/TZ'>
<tz><text><xsl:value-of select='.'/></text></tz>
</xsl:for-each>
<!-- one or more GEO elements can be included -->
<xsl:for-each select='/vCard/GEO'>
<geo>
<uri>
<xsl:text>geo:</xsl:text><xsl:value-of select='LAT'/><xsl:text>,</xsl:text><xsl:value-of select='LON'/>
</uri>
</geo>
<geo><uri><xsl:text>geo:</xsl:text><xsl:value-of select='LAT'/><xsl:text>,</xsl:text><xsl:value-of select='LON'/></uri></geo>
</xsl:for-each>
<!-- one or more TITLE elements can be included -->
<xsl:for-each select='/vCard/TITLE'>
<title><text><xsl:value-of select='.'/></text></title>
</xsl:for-each>
<!-- one or more ROLE elements can be included -->
<xsl:for-each select='/vCard/ROLE'>
<role><text><xsl:value-of select='.'/></text></role>
</xsl:for-each>
@ -744,7 +628,6 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<!-- one or more LOGO elements can be included -->
<!-- content is either a pointer to a URL or inline binary,
which is mapped to a data: URI in vCard4 -->
<xsl:for-each select='/vCard/LOGO'>
<xsl:variable name='LOGO.ext' select='count(EXTVAL)'/>
<xsl:variable name='LOGO.type' select='TYPE'/>
@ -753,11 +636,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<logo><uri><xsl:value-of select='EXTVAL'/></uri></logo>
</xsl:when>
<xsl:otherwise>
<logo>
<uri>
<xsl:text>data:</xsl:text><xsl:value-of select='TYPE'/><xsl:text>;</xsl:text><xsl:value-of select='BINVAL'/>
</uri>
</logo>
<logo><uri><xsl:text>data:</xsl:text><xsl:value-of select='TYPE'/><xsl:text>;</xsl:text><xsl:value-of select='BINVAL'/></uri></logo>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
@ -817,7 +696,6 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<!-- one or more SORT-STRING elements can be included -->
<!-- this element maps to SORT-AS in vCard4 -->
<xsl:for-each select='/vCard/SORT-STRING'>
<sort-as><xsl:value-of select='.'/></sort-as>
</xsl:for-each>
@ -835,11 +713,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<sound><uri><xsl:value-of select='EXTVAL'/></uri></sound>
</xsl:when>
<xsl:when test='$SOUND.ext=1'>
<sound>
<uri>
<xsl:text>data:audio/basic;base64,</xsl:text><xsl:value-of select='BINVAL'/>
</uri>
</sound>
<sound><uri><xsl:text>data:audio/basic;base64,</xsl:text><xsl:value-of select='BINVAL'/></uri></sound>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
@ -919,14 +793,23 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<xsl:variable name='PCODE.count' select='count(PCODE)'/>
<!-- NOTE: yes, vcard-temp has CTRY, not COUNTRY -->
<xsl:variable name='CTRY.count' select='count(CTRY)'/>
<xsl:if test='$HOME.count=1'>
<parameters><type><text>home</text></type></parameters>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<parameters><type><text>work</text></type></parameters>
</xsl:if>
<xsl:if test='$PREF.count=1'>
<parameters><pref><integer>1</integer></pref></parameters>
<!-- first we count the number of vCard TYPE parameters -->
<xsl:variable name='TYPE.count' select='$HOME.count + $WORK.count'/>
<!-- now we output all the parameters -->
<xsl:if test='$TYPE.count &gt; 0'>
<parameters>
<type>
<xsl:if test='$HOME.count=1'>
<text>home</text>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<text>work</text>
</xsl:if>
</type>
<xsl:if test='$PREF.count=1'>
<pref><integer>1</integer></pref>
</xsl:if>
</parameters>
</xsl:if>
<xsl:if test='$POBOX.count=1'>
<pobox><xsl:value-of select='POBOX'/></pobox>
@ -965,33 +848,46 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<xsl:variable name='TEXTPHONE.count' select='count(TEXTPHONE)'/>
<!-- NOTE: vcard-temp allowed telephony types of MSG, BBS,
MODEM, ISDN, and PCS but they were removed from vCard4 -->
<xsl:variable name='PREF.count' select='count(PREF)'/>
<xsl:variable name='NUMBER.count' select='count(NUMBER)'/>
<xsl:if test='$HOME.count=1'>
<parameters><type><text>home</text></type></parameters>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<parameters><type><text>work</text></type></parameters>
</xsl:if>
<xsl:if test='$TEXT.count=1'>
<parameters><type><text>text</text></type></parameters>
</xsl:if>
<xsl:if test='$VOICE.count=1'>
<parameters><type><text>voice</text></type></parameters>
</xsl:if>
<xsl:if test='$FAX.count=1'>
<parameters><type><text>fax</text></type></parameters>
</xsl:if>
<xsl:if test='$CELL.count=1'>
<parameters><type><text>cell</text></type></parameters>
</xsl:if>
<xsl:if test='$VIDEO.count=1'>
<parameters><type><text>video</text></type></parameters>
</xsl:if>
<xsl:if test='$PAGER.count=1'>
<parameters><type><text>pager</text></type></parameters>
</xsl:if>
<xsl:if test='$TEXTPHONE.count=1'>
<parameters><type><text>textphone</text></type></parameters>
<!-- first we count the number of vCard TYPE parameters -->
<xsl:variable name='TYPE.count' select='$HOME.count + $WORK.count + $TEXT.count + $VOICE.count + $FAX.count + $CELL.count + $VIDEO.count + $PAGER.count + $TEXTPHONE.count'/>
<!-- now we output all the parameters -->
<xsl:if test='$TYPE.count &gt; 0'>
<parameters>
<type>
<xsl:if test='$HOME.count=1'>
<text>home</text>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<text>work</text>
</xsl:if>
<xsl:if test='$TEXT.count=1'>
<text>text</text>
</xsl:if>
<xsl:if test='$VOICE.count=1'>
<text>voice</text>
</xsl:if>
<xsl:if test='$FAX.count=1'>
<text>fax</text>
</xsl:if>
<xsl:if test='$CELL.count=1'>
<text>cell</text>
</xsl:if>
<xsl:if test='$VIDEO.count=1'>
<text>video</text>
</xsl:if>
<xsl:if test='$PAGER.count=1'>
<text>pager</text>
</xsl:if>
<xsl:if test='$TEXTPHONE.count=1'>
<text>texphone</text>
</xsl:if>
</type>
<xsl:if test='$PREF.count=1'>
<pref><integer>1</integer></pref>
</xsl:if>
</parameters>
</xsl:if>
<xsl:if test='$NUMBER.count=1'>
<uri><xsl:text>tel:</xsl:text><xsl:value-of select='NUMBER'/></uri>
@ -1007,14 +903,23 @@ OR OTHER DEALINGS IN THE SOFTWARE.
and X400, but they were never in vCard3 -->
<xsl:variable name='PREF.count' select='count(PREF)'/>
<xsl:variable name='USERID.count' select='count(USERID)'/>
<xsl:if test='$HOME.count=1'>
<parameters><type><text>home</text></type></parameters>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<parameters><type><text>work</text></type></parameters>
</xsl:if>
<xsl:if test='$PREF.count=1'>
<parameters><pref><integer>1</integer></pref></parameters>
<!-- first we count the number of vCard TYPE parameters -->
<xsl:variable name='TYPE.count' select='$HOME.count + $WORK.count'/>
<!-- now we output all the parameters -->
<xsl:if test='$TYPE.count &gt; 0'>
<parameters>
<type>
<xsl:if test='$HOME.count=1'>
<text>home</text>
</xsl:if>
<xsl:if test='$WORK.count=1'>
<text>work</text>
</xsl:if>
</type>
<xsl:if test='$PREF.count=1'>
<pref><integer>1</integer></pref>
</xsl:if>
</parameters>
</xsl:if>
<xsl:if test='$USERID.count=1'>
<text><xsl:value-of select='USERID'/></text>
@ -1024,6 +929,416 @@ OR OTHER DEALINGS IN THE SOFTWARE.
</xsl:stylesheet>
]]></code>
</section2>
<section2 topic='Example of vcard-temp Data' anchor='migration-vcardtemp'>
<code><![CDATA[
<vCard>
<FN>Peter Saint-Andre</FN>
<N>
<FAMILY>Saint-Andre</FAMILY>
<GIVEN>Peter</GIVEN>
<MIDDLE/>
</N>
<NICKNAME>stpeter</NICKNAME>
<NICKNAME>psa</NICKNAME>
<PHOTO><EXTVAL>http://me.stpeter.im/images/stpeter_oscon.jpg</EXTVAL></PHOTO>
<PHOTO><EXTVAL>http://me.stpeter.im/images/stpeter_hell.jpg</EXTVAL></PHOTO>
<BDAY>1966-08-06</BDAY>
<ADR>
<WORK/>
<PREF/>
<EXTADD>Suite 600</EXTADD>
<STREET>1899 Wynkoop Street</STREET>
<LOCALITY>Denver</LOCALITY>
<REGION>CO</REGION>
<PCODE>80202</PCODE>
<CTRY>USA</CTRY>
</ADR>
<ADR>
<HOME/>
<EXTADD/>
<STREET/>
<LOCALITY>Denver</LOCALITY>
<REGION>CO</REGION>
<PCODE>80210</PCODE>
<CTRY>USA</CTRY>
</ADR>
<TEL><PREF/><WORK/><VOICE/><NUMBER>303-308-3282</NUMBER></TEL>
<TEL><WORK/><FAX/><NUMBER>303-308-3219</NUMBER></TEL>
<TEL><HOME/><VOICE/><NUMBER>303-555-1212</NUMBER></TEL>
<EMAIL><INTERNET/><PREF/><USERID>stpeter@jabber.org</USERID></EMAIL>
<EMAIL><WORK/><USERID>psaintan@cisco.com</USERID></EMAIL>
<JABBERID>stpeter@jabber.org</JABBERID>
<TZ>America/Denver</TZ>
<GEO><LAT>39.59</LAT><LON>-105.01</LON></GEO>
<TITLE>Executive Director</TITLE>
<ROLE>Patron Saint</ROLE>
<LOGO>
<TYPE>image/jpeg</TYPE>
<BINVAL>
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
0vx/+oqw7D4D8qysrzcv7jro/9k=
</BINVAL>
</LOGO>
<ORG>
<ORGNAME>XMPP Standards Foundation</ORGNAME>
<ORGUNIT/>
</ORG>
<URL>https://stpeter.im/</URL>
<URL>http://www.saint-andre.com/</URL>
<KEY>
<CRED>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=4sgL
-----END PGP PUBLIC KEY BLOCK-----
</CRED>
</KEY>
<DESC>
More information about me is located on my
personal website: https://stpeter.im/
</DESC>
</vCard>
]]></code>
</section2>
<section2 topic='Example of vCard XML Data' anchor='migration-vcard4'>
<code><![CDATA[
<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<fn>
<text>Peter Saint-Andre</text>
</fn>
<n>
<surname>Saint-Andre</surname>
<given>Peter</given>
<middle></middle>
</n>
<nickname>
<text>stpeter</text>
</nickname>
<nickname>
<text>psa</text>
</nickname>
<photo>
<uri>http://me.stpeter.im/images/stpeter_oscon.jpg</uri>
</photo>
<photo>
<uri>http://me.stpeter.im/images/stpeter_hell.jpg</uri>
</photo>
<bday>
<date>1966-08-06</date>
</bday>
<adr>
<parameters>
<type><text>work</text></type>
<pref><integer>1</integer></pref>
</parameters>
<ext>Suite 600</ext>
<street>1899 Wynkoop Street</street>
<locality>Denver</locality>
<region>CO</region>
<code>80202</code>
<country>USA</country>
</adr>
<adr>
<parameters><type><text>home</text></type></parameters>
<ext></ext>
<street></street>
<locality>Denver</locality>
<region>CO</region>
<code>80210</code>
<country>USA</country>
</adr>
<tel>
<parameters>
<type><text>work</text><text>voice</text></type>
<pref><integer>1</integer></pref>
</parameters>
<uri>tel:303-308-3282</uri>
</tel>
<tel>
<parameters>
<type><text>work</text><text>fax</text></type>
</parameters>
<uri>tel:303-308-3219</uri>
</tel>
<tel>
<parameters>
<type><text>home</text><text>voice</text></type>
</parameters>
<uri>tel:303-555-1212</uri>
</tel>
<email>
<text>stpeter@jabber.org</text>
</email>
<email>
<parameters>
<type><text>work</text></type>
</parameters>
<text>psaintan@cisco.com</text>
</email>
<impp>
<uri>xmpp:stpeter@jabber.org</uri>
</impp>
<tz>
<text>America/Denver</text>
</tz>
<geo>
<uri>geo:39.59,-105.01</uri>
</geo>
<title>
<text>Executive Director</text>
</title>
<role>
<text>Patron Saint</text>
</role>
<logo>
<uri>data:image/jpeg;
/9j/4AAQSkZJRgABAQEASABIAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAIBgYHBgUI
BwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy
/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIy/8AAEQgAgQB7AwEiAAIRAQMRAf/EABsAAAMAAwEBAAAAAAAAAAAAAAQFBgAD
BwIB/8QAPRAAAgEDAwIDBQQJBAEFAAAAAQIDAAQRBRIhMUEGE1EiYXGBkRQyobEHFSMzNEJScsEk
YtHw0jVDc8Lh/8QAGQEAAwEBAQAAAAAAAAAAAAAAAQIEAwAF/8QAJBEAAgICAgICAgMAAAAAAAAA
AAECEQMhEjEEQSJREzJCYXH/2gAMAwEAAhEDEQA/AOf2c0KGSY2pDFiinYMsCMfhj8aya6gdvZj9
ryg6A8eYuORxQk1rdzSHyZGQYO0GXAPv/MV6luDp8QgntkRyhAfHJ3Y5wOoxxXncbdiA9zp/6xQG
KaGFIhK208MwX09amCOeMEdjT3VLi1EaeVGHEi4WRCQVwAD7PY5/CkQYbcfdPUVbjTS2FGAHGele
1nmXgOw6/iMV4LnHup/4c8L3/iWfbboIoFPt3D/dH/kfcKd0kOotukL/ALWs8SJNEPZGA4/z2omD
T7++dY7azuLlAOPs8Jfb9P8Amu1+Hv0Z+HtPjVp7YX846yXAyM+5elX1tDa2sKxwxRxoBgKigD6U
nJGn4a7OB+G/0Y67rlxuuIRptojDdcXS5c/2R9SfoPfXY/DvgzQvCiLJZW/m3uPavbgb5Sf9vZPl
9TVCBAw5RfiODQ93Fdi3b9XyxiXt5iE59wNPGSEnja6N5VyCzHYh5LOcUvuNc0y0JDTtO/8ATGP8
1Hahc6g87xX0ku9TyhbH4dKEA6AZx1prJ2n7KW58W3L5W1iS3H9XVsfGlMl3NdNvmld8/wBRoMHH
NbM5Hw5oAoIjALHPfA59O9KL218NS3byXtjE9w+GdivqBj8MUyk5ikAOPZ61rtreDUbaO5kiTeV2
HJ7r7P8AiuGSOXDyzBE1zlInAKFR6k9a+XFtHt8qWczjGVUKSAvPHu+VLftckzPu+62U2E5256Y7
1S+Fkj1DxPDaXEe5YYHldc9doGAfdnFQLE+VDdCc2ZXDaQDMTgFDEC6H175zgjimcv6PfFmvXMcy
6SttFtB8+4dIEIIz0PPfsKuE1O7tEMVoy2sfPs28Sxdev3Rmh5Jp52LyzSSnqS7E/nVkIcezrFlj
+ibSrC3aXWNbF9dAezaad93P+6Qjp8AKsNMt4LO1hgto0ihXhVj6CldrsSLoMt7qNhuiiDJyPSsc
k23Rfgi4qyphkCqAMcUQsue9TsGoAkDP1osXOT1oWO0x2JOeua2rPiki3GO/Hxr0L5F/nFGwNB2q
2UWq2+MAXCcxv/g/GopkaNijqVdWIYHqDVSt9uDYbt2pRrKrJJDdgcyrh/7h/wDlawlZLnh7QB96
E46ivSnlDXyAAyFD/Nx9elZGQ0XHJVsH3VqSntk3W7oDgEYz6ULbWkkURUuxO9ySOMksTRY5iPx5
o6KaMxKSygnkjFdQUzhMca3Mau7KXXII28EdvnVv4FtTLq97dOwLR2PlDHUEsD/ioO1uHCg9Og9B
mrPwXrENomp3EynYApYoMkYGOfRfaHuqeKansdlHOMTOeOSelaxjml763ayalcBplW22K8bnoCRl
gT3x2xW21v4bosoDIRgKHGGbPTjPpzWjkmhUrYbFNhgPSjLYPN7K45oGNRtDnGCCc+6grvxhDZsY
rS3LBeN/9VSvbPTi+KK6GwGBucg0T5HljqSPhXMz4/uFmAa1brzk4qisfFS3UIcMR6g9qL12FS5d
FasLOOMAV5ktMDIwamLjxVFagmWTC+g60HF+kOw85UzIfftoJphbrsqTKYwynI7VlzMJdP2fzKQw
+VDJqFjqsPmW0w8wclfWtYV3kKLzlSaeLakZ5acT6jhZIz0Vhj4HtXqQFLuTjaXGTitJztZSuGjY
EgjHuomQ7khlHpzVh5h8Gfs+e5oK6juvtDbCQuAQMj0FGkZgweo3D8DXiUxiTBYZAHYelKdRw85h
uPImyG3glT0z61WadpVteeCdQu4DKk8ZKFVwd53DHPUDDduDioieSYsryZIJ4JGSapvB2pG21CWz
iLSR3kZR0ZcYI6H48kUvH2zRjLTdOngh+23gSGOFdzPMvKgEg4Pr299btN8Qw3Es8kenwolxJgvs
BaMKPZOex+HrQXirWJdQu10m0kLwwkCUr0kk/wDFe3zo/wAP6KqxyW8hO5wWIHfHXFZSjS0beNXO
2Uk2bmyaKH75XaAPSpC48P3qysvnJEf5VPUiq/TzsYhSckkD4U4uNLtL61Czp7XZhwR8xWKu7LeK
emckk0a8VZGmkBYfcG7qaqvB+izSyMJh7O3INOx4bsrUmTy2kI6F2JApxo0ZWfftCx4xxTSbloEI
KPRz7xjp89veMsSkoOmKQR2N9bTKgtzJuI7HH1zXW9XsYrq4kWZCQ3Rh1FJk8LXayfsLobO3mJuo
xlx1QJwUttk3pDzwX8REEkTA9G6H1Hvq41Gznv8ASpoLMSCeZQIihwwbIPB7Vvh0j7PEPtDeY3rj
AHw9KUa3c3EVmY7aXy3LfeHXHGefnSOTsbhy+Jmm61JLdHS9e/02oqTHHdNgJKf6X9D6HpTpoJYk
aF125JIB6qf+4qXk0/8AWFnHJMfM8yMNyevFEaVq11psiWWozNLZniK4ckmP0Uk9vf2quLdbPKmq
k0ig3AxZyOWP1IoG5jZp2IYYwPyo+RCigEdwR7/nXxolJ+5TMCOMy6cjloldDclDtjZcBh2KnOAe
vFePCysNZkQTpbSG3lAkk6Icfn2oW3t7iBnTIwcYB7ntjPz+lPI41jucxxtPPHCHaRkUjOBk+hx+
NYObho1SbDNGh0+3id/MJkAOd45Pfj6U6s7t0j0yWYCMzxud3Ze+KWX7Lc2lr5YjMqIY9yLgMg4y
Pfk0PqazRaXpiSlxuQuAw6ZAroNysWMqdlIbhYH3owK9VPrX1vEwgXJcYHqaTpMG0+DJziNRSe9A
julMn7vbuHxrDjuj0Yz1ZTxa8sjm9v8AzvsiA+yvUntTSw8b6TtKx7gOwNRL3cU1qIzcqM44z0pQ
+lTtlrWWJjnJAcA08YJPsDyy9I68fE2jX0ixy3Pkk9Gz3oLT/FC+e9vM6syMVV+mR2rnFnpNxHNG
8rIWzk5YGnht0lkySEkHcd6E1T0Osl9o6C2qpcIVGDxSHxBMsPh+5lI/anEafE9/oKVafLLFNtkP
TofWvPiu9zZw2QHL/tSfdyB+dGHykLmdQbQfeuNP0G2uIQS0fkjJ/m4yR+BpmY7a7tY5gQ8cyhlB
HUHtSfxJIX0FdoCwxvGqD19k148H3u+Oe1lbLRANCPicED5mrKPLbKDTHNl/o7pZJbM8xsCd0R9P
7fT3+6mhuIFJUTK2OMqQB+Nabc+Vew7sja+XI6+8VN+JpLS08R3sC20MgRgC2M87RkfI8fKhdHUR
Eqs826JiFJ3GJicNj8q1K7QasY4lUJuwgDHA+Jr5qGoFZFEC7QVwccU80S7tbjUYIjGrsrsqtJgA
nBOPxFScZcv6NZP6FzxvFAIyCu1SQAeSCe3zzTXWJpr2y0uNUy8MGXbcAOQMc/KtfiGAx6rHBCQx
8sbQPUscCvfimHz9G8uEYFsqkheAdowf+flVeHC6bMWwG3nVQYDIrFeMq2QOeK3TbJgsUqBjnFLv
Clmt1aaizrgewFYDocmi/NZHCsAJAcEGpsiuWi/G6jsMHh61juRcxoGV12tG3TPrTP8AVOnMuJNO
lRiwO5FJzwO4rxA7m2U7chhjFDy6heWr/swwHcE8Ckv7N0os3X/h+0kikksoJo2z7O4lfzpRHpN5
YzxedcGVmzuH9NUFpfvOp3qzMemelBajMzXMa59r1rm/SOcUj2zYdWX04+NKNbnNzePtIOxAg+PJ
/wA0RdXQhAVTlvypNLMMMzHJ3At9a2wQp2SeRk1xRaeLNsWi2sCHOJUUn4IRU/o119j1uynJOBLh
h6huP8088Uc6Qsz8Ga4Gz3AKT/kVIGTE8RHUOCPqKoSJDqqkhsknJIOflSZ7qzhkZL1Fe53EuxQ8
55/Iinb/AL/AHG4/8U0g01Lm2ilJiJZFzkDPAxQCcCuxslL+YoYnbjOeMVQeFjeR7GjtBcYlLKCv
IOBk5xxkVXw6L4fsmDRWMMsi8B5zvP0PFbri+mCCKJkRcYAXgYrePhv+TOc/oU6rpkz6p9ufbCuw
KsZbLKff9aC3tgq+DgFT3B7UyklySrcE5z76AmAwW2nGOearhj4RpGVtnrTjFBD9liQIgXgD/vNK
tbtnBM0XDDHzFbfPMUgdTlaMd0uYd4OfdXleRheOfJdHoY8inCn2A6TrChtrH7uMBj0p3JrFtMVQ
RqSSecdTUff2qpMWT2eeooSKS4jcMrZI6ZrHgnsP5GtF7cXsKo7sAm3sOKQrc+bcTTM37GH2nk9M
8AUHBHLecXEh2HqF71v19o7Lw+IIgFEsiqR7hz/ihGK5DSk3GwW7Dw3UyOcurHn8vwrVbWzXtzDB
082RUJ9Mmmtvo11rumW1/aNGZBGI5InbaxK8ZHr2r5Z2k1rrVjbSxvE5uEB3jbgZ5q9xa/wgu2OP
HE4k+xIh/ZoZAMd8bakl5ljb1I/MVTeNCpWw8v7oMqjj4c/WphWwV5xyDSJ6CdYdv9Vnk4c1SWlq
4tYwsgC44GKmCf2z9gGz3qxsJozYQFm5KA/WlOOXyXmV3LbuBjqFOKG86VwSu3gdCc0El/Pavtcs
wHGCc0aJBcJ5ls6h+pU165mCudxGXYtnOOgFCzXgSJgxCRgd+rGjmkimO2T9nIOMilV/aOmWOGjJ
/wCmhK60cgAXOx/bJIY1vWeSBtybnU9QBS2aNIs7nJ9MCt1ndMDsyfQZPU9qmbT+Mh1raDpl+0Dc
o+tBeQ6ScJkVkd5JNqYt7OMyqAd2Ty3rj4UwhxOqyRZKn6j3GoMmNReiqMuW2b7RHwCRilviaQyf
Y4V5wxOPU04x5ERZuTj6UhvdUtoL3eEFxMowP6F9ce+kxQVhySqNIrtDjks9DSJWG3GWVutM7e4h
ljXzHDqP5ZBnHw7ilFrL5yQOmfLZAw+fNN7e3jVi7DrXs0qoha2aNV0uDUokEMqxSIxIDHIbIHHu
qQvrK5sJRHPEVcA4PZvgasb28gXIVFDD+YcZoIzG/ga2uYjLG3C46qT3rGeFVaOTKQXDNKwlOT0y
F93f51To5ihiQZAWJB0/2ipRgWiaQnLsNicDjA6mqaa1DuG2/wAqjqewAqFpp0zRHKNR/eCtel/x
ArKyvVZmEah+9Wvp/gz8Kyspl0cIZ/3bUvi6r/dWVlSZOx4maF/6wvz/ADNOtB/eXf8A8jVlZUcz
aPYXq38EfnUbcfxXyFZWUMQch0LTP4SH+2nX/sn4VlZXqx/VEz7EF19/50bpf8SPgPzrKyuAO4P3
0vx/+oqw7D4D8qysrzcv7jro/9k=
</uri>
</logo>
<org>
<text>XMPP Standards Foundation</text>
</org>
<url>
<uri>https://stpeter.im/</uri>
</url>
<url>
<uri>http://www.saint-andre.com/</uri>
</url>
<key>
<text>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=4sgL
-----END PGP PUBLIC KEY BLOCK-----
</text>
</key>
<note>
<text>
More information about me is located on my
personal website: https://stpeter.im/
</text>
</note>
</vcard>
]]></code>
</section2>
</section1>
<section1 topic='Acknowledgements' anchor='acks'>