€cdocutils.nodes document q)q}q(U nametypesq}q(Xindexing approachqNXproblemqNXtranslation approachqNXcontent model approachq NX6cross domain indexing and access for data and metadataq NuUsubstitution_defsq }q Uparse_messagesq ]q(cdocutils.nodes system_message q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]UlevelKUidsq]Ubackrefsq]UsourceXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/notes/DataAndMetadata.txtqUclassesq]Unamesq]UlineK2UtypeUINFOquUparentqcdocutils.nodes list_item q)q}q(hX... hcdocutils.nodes bullet_list q )q!}q"(hUhcdocutils.nodes section q#)q$}q%(hUhh#)q&}q'(hUhhUsourceq(hUtagnameq)Usectionq*h}q+(h]h]h]h]q,U6cross-domain-indexing-and-access-for-data-and-metadataq-ah]q.h auUlineq/KUdocumentq0hUchildrenq1]q2(cdocutils.nodes title q3)q4}q5(hX6Cross Domain Indexing and Access for Data and Metadataq6hh&h(hh)Utitleq7h}q8(h]h]h]h]h]uh/Kh0hh1]q9cdocutils.nodes Text q:X6Cross Domain Indexing and Access for Data and Metadataq;…q<}q=(hh6hh4ubaubcdocutils.nodes field_list q>)q?}q@(hUhh&h(hh)U field_listqAh}qB(h]h]h]h]h]uh/Kh0hh1]qCcdocutils.nodes field qD)qE}qF(hUhh?h(hh)UfieldqGh}qH(h]h]h]h]h]uh/Kh0hh1]qI(cdocutils.nodes field_name qJ)qK}qL(hXStatusqMhhEh(hh)U field_nameqNh}qO(h]h]h]h]h]uh/Kh1]qPh:XStatusqQ…qR}qS(hhMhhKubaubcdocutils.nodes field_body qT)qU}qV(hXEarly Draft / notes h}qW(h]h]h]h]h]uhhEh1]qXcdocutils.nodes paragraph qY)qZ}q[(hXEarly Draft / notesq\hhUh(hh)U paragraphq]h}q^(h]h]h]h]h]uh/Kh1]q_h:XEarly Draft / notesq`…qa}qb(hh\hhZubaubah)U field_bodyqcubeubaubh#)qd}qe(hUhh&h(hh)h*h}qf(h]h]h]h]qgUproblemqhah]qihauh/Kh0hh1]qj(h3)qk}ql(hXProblemqmhhdh(hh)h7h}qn(h]h]h]h]h]uh/Kh0hh1]qoh:XProblemqp…qq}qr(hhmhhkubaubhY)qs}qt(hX[DataONE requires storage, search, and retrieval of information (data and metadata) from a wide variety of data services (e.g. Mercury, Metacat, and OpenDAP). All of these systems have different data service interfaces, support different metadata standards, and implement different query mechanism and syntaxes. Data must be replicated between service instances (Member Nodes, MN) and metadata must be replicated between all nodes (Coordinating Nodes, CN and Member Nodes) to ensure multiple copies exist to avoid data loss in the event of node failure and to improve access through geographic proximity.quhhdh(hh)h]h}qv(h]h]h]h]h]uh/K h0hh1]qwh:X[DataONE requires storage, search, and retrieval of information (data and metadata) from a wide variety of data services (e.g. Mercury, Metacat, and OpenDAP). All of these systems have different data service interfaces, support different metadata standards, and implement different query mechanism and syntaxes. Data must be replicated between service instances (Member Nodes, MN) and metadata must be replicated between all nodes (Coordinating Nodes, CN and Member Nodes) to ensure multiple copies exist to avoid data loss in the event of node failure and to improve access through geographic proximity.qx…qy}qz(hhuhhsubaubhY)q{}q|(hX0A few general approaches to the problem include:q}hhdh(hh)h]h}q~(h]h]h]h]h]uh/Kh0hh1]qh:X0A few general approaches to the problem include:q€…q}q‚(hh}hh{ubaubh )qƒ}q„(hUhhdh(hh)U bullet_listq…h}q†(Ubulletq‡X-h]h]h]h]h]uh/Kh0hh1]qˆ(h)q‰}qŠ(hXLtranslate the metadata to and from the format/model used internally by a MN hhƒh(hh)U list_itemq‹h}qŒ(h]h]h]h]h]uh/Nh0hh1]qhY)qŽ}q(hXKtranslate the metadata to and from the format/model used internally by a MNqhh‰h(hh)h]h}q‘(h]h]h]h]h]uh/Kh1]q’h:XKtranslate the metadata to and from the format/model used internally by a MNq“…q”}q•(hhhhŽubaubaubh)q–}q—(hX›treat the metadata document as an opaque object and just store it on the MNs, the CNs provide indexing service that locate copies of the metadata document hhƒh(hh)h‹h}q˜(h]h]h]h]h]uh/Nh0hh1]q™hY)qš}q›(hXštreat the metadata document as an opaque object and just store it on the MNs, the CNs provide indexing service that locate copies of the metadata documentqœhh–h(hh)h]h}q(h]h]h]h]h]uh/Kh1]qžh:Xštreat the metadata document as an opaque object and just store it on the MNs, the CNs provide indexing service that locate copies of the metadata documentqŸ…q }q¡(hhœhhšubaubaubh)q¢}q£(hX€MNs must implement a very general purpose metadata format, but may optionally make metadata available in more specific formats hhƒh(hh)h‹h}q¤(h]h]h]h]h]uh/Nh0hh1]q¥hY)q¦}q§(hX~MNs must implement a very general purpose metadata format, but may optionally make metadata available in more specific formatsq¨hh¢h(hh)h]h}q©(h]h]h]h]h]uh/Kh1]qªh:X~MNs must implement a very general purpose metadata format, but may optionally make metadata available in more specific formatsq«…q¬}q­(hh¨hh¦ubaubaubeubeubh$h#)q®}q¯(hUhh&h(hh)h*h}q°(h]h]h]h]q±Uindexing-approachq²ah]q³hauh/Kh0hh1]qÁh:X£Implement a common service API on all nodes that treats data and metadata as discrete units that can be read from and written to any node. The set of all nodes then becomes a large storage device. The CNs implement the processes which distribute content between all nodes (like a file system driver) to provide basic system level functionality. The actual metadata documents are opaque to the underlying storage system.qÂ…qÃ}qÄ(hh¿hh½ubaubhY)qÅ}qÆ(hXâMetadata is not searched directly but is indexed by extracting content that matches semantically equivalent search terms. A trivial example is the use of the Dublin Core terms to search across all types of metadata. In this case, a "dublin core metadata extractor" extracts term values from a metadata document and updates an index that supports DC fields with the values and the document PID. Searches on the index return the document PID, which is then retrieved using the MN API.qÇhh®h(hh)h]h}qÈ(h]h]h]h]h]uh/KEh0hh1]qÉh:XâMetadata is not searched directly but is indexed by extracting content that matches semantically equivalent search terms. A trivial example is the use of the Dublin Core terms to search across all types of metadata. In this case, a "dublin core metadata extractor" extracts term values from a metadata document and updates an index that supports DC fields with the values and the document PID. Searches on the index return the document PID, which is then retrieved using the MN API.qÊ…qË}qÌ(hhÇhhÅubaubhY)qÍ}qÎ(hX Problems:qÏhh®h(hh)h]h}qÐ(h]h]h]h]h]uh/KMh0hh1]qÑh:X Problems:qÒ…qÓ}qÔ(hhÏhhÍubaubh )qÕ}qÖ(hUhh®h(hh)h…h}q×(h‡X-h]h]h]h]h]uh/KOh0hh1]qØ(h)qÙ}qÚ(hXlCan not treat data available through service interfaces as a discrete unit (e.g. a MySQL service interface) hhÕh(hh)h‹h}qÛ(h]h]h]h]h]uh/Nh0hh1]qÜhY)qÝ}qÞ(hXkCan not treat data available through service interfaces as a discrete unit (e.g. a MySQL service interface)qßhhÙh(hh)h]h}qà(h]h]h]h]h]uh/KOh1]qáh:XkCan not treat data available through service interfaces as a discrete unit (e.g. a MySQL service interface)qâ…qã}qä(hhßhhÝubaubaubh)qå}qæ(hXBNeed parsers for all metadata formats to extract specific content hhÕh(hh)h‹h}qç(h]h]h]h]h]uh/Nh0hh1]qèhY)qé}qê(hXANeed parsers for all metadata formats to extract specific contentqëhhåh(hh)h]h}qì(h]h]h]h]h]uh/KRh1]qíh:XANeed parsers for all metadata formats to extract specific contentqî…qï}qð(hhëhhéubaubaubh)qñ}qò(hXANew infrastructure (difficult to combine with existing services) hhÕh(hh)h‹h}qó(h]h]h]h]h]uh/Nh0hh1]qôhY)qõ}qö(hX@New infrastructure (difficult to combine with existing services)q÷hhñh(hh)h]h}qø(h]h]h]h]h]uh/KTh1]qùh:X@New infrastructure (difficult to combine with existing services)qú…qû}qü(hh÷hhõubaubaubh)qý}qþ(hXASearch capabilities on highly structured metadata may be limited hhÕh(hh)h‹h}qÿ(h]h]h]h]h]uh/Nh0hh1]rhY)r}r(hX@Search capabilities on highly structured metadata may be limitedrhhýh(hh)h]h}r(h]h]h]h]h]uh/KVh1]rh:X@Search capabilities on highly structured metadata may be limitedr…r}r(hjhjubaubaubh)r }r (hX... hhÕh(hh)h‹h}r (h]h]h]h]h]uh/Nh0hh1]r hY)r }r(hX...rhj h(hh)h]h}r(h]h]h]h]h]uh/KXh1]rh:X...r…r}r(hjhj ubaubaubeubhY)r}r(hX Advantages:rhh®h(hh)h]h}r(h]h]h]h]h]uh/KZh0hh1]rh:X Advantages:r…r}r(hjhjubaubh )r}r(hUhh®h(hh)h…h}r(h‡X-h]h]h]h]h]uh/K\h0hh1]r (h)r!}r"(hXONo loss of information since there is no metadata translation, just extraction hjh(hh)h‹h}r#(h]h]h]h]h]uh/Nh0hh1]r$hY)r%}r&(hXNNo loss of information since there is no metadata translation, just extractionr'hj!h(hh)h]h}r((h]h]h]h]h]uh/K\h1]r)h:XNNo loss of information since there is no metadata translation, just extractionr*…r+}r,(hj'hj%ubaubaubh)r-}r.(hXvFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file) hjh(hh)h‹h}r/(h]h]h]h]h]uh/Nh0hh1]r0hY)r1}r2(hXuFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)r3hj-h(hh)h]h}r4(h]h]h]h]h]uh/K_h1]r5h:XuFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)r6…r7}r8(hj3hj1ubaubaubh)r9}r:(hXdSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains) hjh(hh)h‹h}r;(h]h]h]h]h]uh/Nh0hh1]r<hY)r=}r>(hXcSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains)r?hj9h(hh)h]h}r@(h]h]h]h]h]uh/Kbh1]rAh:XcSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains)rB…rC}rD(hj?hj=ubaubaubh)rE}rF(hX... hjh(hh)h‹h}rG(h]h]h]h]h]uh/Nh0hh1]rHhY)rI}rJ(hX...rKhjEh(hh)h]h}rL(h]h]h]h]h]uh/Keh1]rMh:X...rN…rO}rP(hjKhjIubaubaubeubeubh#)rQ}rR(hUhh&h(hh)h*h}rS(h]h]h]h]rTUcontent-model-approachrUah]rVh auh/Kih0hh1]rW(h3)rX}rY(hXContent Model ApproachrZhjQh(hh)h7h}r[(h]h]h]h]h]uh/Kih0hh1]r\h:XContent Model Approachr]…r^}r_(hjZhjXubaubhY)r`}ra(hXFSimilar to the indexing approach, but in addition to the lowest common denominator format, objects may make more detailed metadata/data available by advertising that they exhibit specific content models. These content models may be dictated by central DataONE community, or may be agreed upon by a small group of Member Nodes.rbhjQh(hh)h]h}rc(h]h]h]h]h]uh/Kkh0hh1]rdh:XFSimilar to the indexing approach, but in addition to the lowest common denominator format, objects may make more detailed metadata/data available by advertising that they exhibit specific content models. These content models may be dictated by central DataONE community, or may be agreed upon by a small group of Member Nodes.re…rf}rg(hjbhj`ubaubhY)rh}ri(hX Problems:rjhjQh(hh)h]h}rk(h]h]h]h]h]uh/Kqh0hh1]rlh:X Problems:rm…rn}ro(hjjhjhubaubh )rp}rq(hUhjQh(hh)h…h}rr(h‡X-h]h]h]h]h]uh/Ksh0hh1]rs(h)rt}ru(hX?A central registry of data/metadata formats must be maintained hjph(hh)h‹h}rv(h]h]h]h]h]uh/Nh0hh1]rwhY)rx}ry(hX>A central registry of data/metadata formats must be maintainedrzhjth(hh)h]h}r{(h]h]h]h]h]uh/Ksh1]r|h:X>A central registry of data/metadata formats must be maintainedr}…r~}r(hjzhjxubaubaubh)r€}r(hXOBurden is on Member Nodes to make sure they adhere to published content models hjph(hh)h‹h}r‚(h]h]h]h]h]uh/Nh0hh1]rƒhY)r„}r…(hXNBurden is on Member Nodes to make sure they adhere to published content modelsr†hj€h(hh)h]h}r‡(h]h]h]h]h]uh/Kuh1]rˆh:XNBurden is on Member Nodes to make sure they adhere to published content modelsr‰…rŠ}r‹(hj†hj„ubaubaubeubhY)rŒ}r(hX Advantages:rŽhjQh(hh)h]h}r(h]h]h]h]h]uh/Kxh0hh1]rh:X Advantages:r‘…r’}r“(hjŽhjŒubaubh )r”}r•(hUhjQh(hh)h…h}r–(h‡X-h]h]h]h]h]uh/Kzh0hh1]r—(h)r˜}r™(hXONo loss of information since there is no metadata translation, just extraction hj”h(hh)h‹h}rš(h]h]h]h]h]uh/Nh0hh1]r›hY)rœ}r(hXNNo loss of information since there is no metadata translation, just extractionržhj˜h(hh)h]h}rŸ(h]h]h]h]h]uh/Kzh1]r h:XNNo loss of information since there is no metadata translation, just extractionr¡…r¢}r£(hjžhjœubaubaubh)r¤}r¥(hXvFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file) hj”h(hh)h‹h}r¦(h]h]h]h]h]uh/Nh0hh1]r§hY)r¨}r©(hXuFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)rªhj¤h(hh)h]h}r«(h]h]h]h]h]uh/K}h1]r¬h:XuFormat agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)r­…r®}r¯(hjªhj¨ubaubaubh)r°}r±(hXdSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains) hj”h(hh)h‹h}r²(h]h]h]h]h]uh/Nh0hh1]r³hY)r´}rµ(hXcSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains)r¶hj°h(hh)h]h}r·(h]h]h]h]h]uh/K€h1]r¸h:XcSearch index can be highly tuned, multiple types of index can be implemented (e.g. topical domains)r¹…rº}r»(hj¶hj´ubaubaubh)r¼}r½(hXÍWill work even for Member Nodes that only understand lowest-common-denominator formats, while nodes that understand more complex data/metadata will benefit from more specific searching and data management hj”h(hh)h‹h}r¾(h]h]h]h]h]uh/Nh0hh1]r¿hY)rÀ}rÁ(hXÌWill work even for Member Nodes that only understand lowest-common-denominator formats, while nodes that understand more complex data/metadata will benefit from more specific searching and data managementrÂhj¼h(hh)h]h}rÃ(h]h]h]h]h]uh/Kƒh1]rÄh:XÌWill work even for Member Nodes that only understand lowest-common-denominator formats, while nodes that understand more complex data/metadata will benefit from more specific searching and data managementrÅ…rÆ}rÇ(hjÂhjÀubaubaubh)rÈ}rÉ(hXgMultiple communities can be accommodated, even if they have overlapping and/or inconsistent standards hj”h(hh)h‹h}rÊ(h]h]h]h]h]uh/Nh0hh1]rËhY)rÌ}rÍ(hXeMultiple communities can be accommodated, even if they have overlapping and/or inconsistent standardsrÎhjÈh(hh)h]h}rÏ(h]h]h]h]h]uh/K‡h1]rÐh:XeMultiple communities can be accommodated, even if they have overlapping and/or inconsistent standardsrÑ…rÒ}rÓ(hjÎhjÌubaubaubeubcdocutils.nodes raw rÔ)rÕ}rÖ(hX\newpagehjQh(hh)Urawr×h}rØ(UformatXlatexU xml:spacerÙUpreserverÚh]h]h]h]h]uh/K‹h0hh1]rÛh:X\newpagerÜ…rÝ}rÞ(hUhjÕubaubeubeubh(hh)h*h}rß(h]h]h]h]ràUtranslation-approachráah]râhauh/K h0hh1]rã(h3)rä}rå(hXTranslation Approachræhh$h(hh)h7h}rç(h]h]h]h]h]uh/K h0hh1]rèh:XTranslation Approachré…rê}rë(hjæhjäubaubhY)rì}rí(hX<Translations between all metadata formats and the data service interfaces are implemented. In this scenario, metadata is translated to the native metadata format (or where multiple formats are supported, to the most appropriate form) supported by a MN and stored using the native API of the service. A common API provides the integration between all MNs, providing the basic operations necessary for managing and retrieving the content. Perhaps the most difficult component of this approach is the translation of metadata to the format supported internally by the service.rîhh$h(hh)h]h}rï(h]h]h]h]h]uh/K"h0hh1]rðh:X<Translations between all metadata formats and the data service interfaces are implemented. In this scenario, metadata is translated to the native metadata format (or where multiple formats are supported, to the most appropriate form) supported by a MN and stored using the native API of the service. A common API provides the integration between all MNs, providing the basic operations necessary for managing and retrieving the content. Perhaps the most difficult component of this approach is the translation of metadata to the format supported internally by the service.rñ…rò}ró(hjîhjìubaubhY)rô}rõ(hX Problems:röhh$h(hh)h]h}r÷(h]h]h]h]h]uh/K+h0hh1]røh:X Problems:rù…rú}rû(hjöhjôubaubh!hY)rü}rý(hX Advantages:rþhh$h(hh)h]h}rÿ(h]h]h]h]h]uh/K4h0hh1]rh:X Advantages:r…r}r(hjþhjüubaubh )r}r(hUhh$h(hh)h…h}r(h‡X-h]h]h]h]h]uh/K6h0hh1]r(h)r}r (hXMNo or minimal changes to existing services (translation functions required). hjh(hh)h‹h}r (h]h]h]h]h]uh/Nh0hh1]r hY)r }r (hXLNo or minimal changes to existing services (translation functions required).rhjh(hh)h]h}r(h]h]h]h]h]uh/K6h1]rh:XLNo or minimal changes to existing services (translation functions required).r…r}r(hjhj ubaubaubh)r}r(hX... hjh(hh)h‹h}r(h]h]h]h]h]uh/Nh0hh1]rhY)r}r(hX...rhjh(hh)h]h}r(h]h]h]h]h]uh/K8h1]rh:X...r…r}r(hjhjubaubaubeubeubh(hh)h…h}r (h‡X-h]h]h]h]h]uh/K-h0hh1]r!(h)r"}r#(hXVn x n bi-directional translations for metadata to be written, tested, and maintained. hh!h(hh)h‹h}r$(h]h]h]h]h]uh/Nh0hh1]r%hY)r&}r'(hXUn x n bi-directional translations for metadata to be written, tested, and maintained.r(hj"h(hh)h]h}r)(h]h]h]h]h]uh/K-h1]r*h:XUn x n bi-directional translations for metadata to be written, tested, and maintained.r+…r,}r-(hj(hj&ubaubaubh)r.}r/(hXDMetadata translation almost invariably leads to loss of information hh!h(hh)h‹h}r0(h]h]h]h]h]uh/Nh0hh1]r1hY)r2}r3(hXCMetadata translation almost invariably leads to loss of informationr4hj.h(hh)h]h}r5(h]h]h]h]h]uh/K0h1]r6h:XCMetadata translation almost invariably leads to loss of informationr7…r8}r9(hj4hj2ubaubaubheubh(hh)h‹h}r:(h]h]h]h]h]uh/Nh0hh1]r;hY)r<}r=(hX...r>hhh(hh)h]h}r?(h]h]h]h]h]uh/K2h1]r@h:X...rA…rB}rC(hj>hj<ubaubaubh1]rDhY)rE}rF(hXeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}rG(h]h]h]h]h]uhhh1]rHh:XeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.rI…rJ}rK(hUhjEubah)h]ubah)Usystem_messagerLubh)rM}rN(hUh}rO(h]UlevelKh]h]Usourcehh]h]UlineK8Utypehuhjh1]rPhY)rQ}rR(hXeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}rS(h]h]h]h]h]uhjMh1]rTh:XeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.rU…rV}rW(hUhjQubah)h]ubah)jLubh)rX}rY(hUh}rZ(h]UlevelKh]h]Usourcehh]h]UlineKXUtypehuhj h1]r[hY)r\}r](hXeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}r^(h]h]h]h]h]uhjXh1]r_h:XeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.r`…ra}rb(hUhj\ubah)h]ubah)jLubh)rc}rd(hUh}re(h]UlevelKh]h]Usourcehh]h]UlineKeUtypehuhjEh1]rfhY)rg}rh(hXeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}ri(h]h]h]h]h]uhjch1]rjh:XeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.rk…rl}rm(hUhjgubah)h]ubah)jLubeUcurrent_sourcernNU decorationroNUautofootnote_startrpKUnameidsrq}rr(hh²hhhhjáh jUh h-uh1]rsh&ahUU transformerrtNU footnote_refsru}rvUrefnamesrw}rxUsymbol_footnotesry]rzUautofootnote_refsr{]r|Usymbol_footnote_refsr}]r~U citationsr]r€h0hU current_linerNUtransform_messagesr‚]rƒUreporterr„NUid_startr…KU autofootnotesr†]r‡U citation_refsrˆ}r‰Uindirect_targetsrŠ]r‹UsettingsrŒ(cdocutils.frontend Values rorŽ}r(Ufootnote_backlinksrKUrecord_dependenciesr‘NU rfc_base_urlr’Uhttps://tools.ietf.org/html/r“U tracebackr”ˆUpep_referencesr•NUstrip_commentsr–NU toc_backlinksr—Uentryr˜U language_coder™UenršU datestampr›NU report_levelrœKU _destinationrNU halt_levelržKU strip_classesrŸNh7NUerror_encoding_error_handlerr Ubackslashreplacer¡Udebugr¢NUembed_stylesheetr£‰Uoutput_encoding_error_handlerr¤Ustrictr¥U sectnum_xformr¦KUdump_transformsr§NU docinfo_xformr¨KUwarning_streamr©NUpep_file_url_templaterªUpep-%04dr«Uexit_status_levelr¬KUconfigr­NUstrict_visitorr®NUcloak_email_addressesr¯ˆUtrim_footnote_reference_spacer°‰Uenvr±NUdump_pseudo_xmlr²NUexpose_internalsr³NUsectsubtitle_xformr´‰U source_linkrµNUrfc_referencesr¶NUoutput_encodingr·Uutf-8r¸U source_urlr¹NUinput_encodingrºU utf-8-sigr»U_disable_configr¼NU id_prefixr½UU tab_widthr¾KUerror_encodingr¿UUTF-8rÀU_sourcerÁhUgettext_compactrˆU generatorrÃNUdump_internalsrÄNU smart_quotesrʼnU pep_base_urlrÆU https://www.python.org/dev/peps/rÇUsyntax_highlightrÈUlongrÉUinput_encoding_error_handlerrÊj¥Uauto_id_prefixrËUidrÌUdoctitle_xformr͉Ustrip_elements_with_classesrÎNU _config_filesrÏ]rÐUfile_insertion_enabledrшU raw_enabledrÒKU dump_settingsrÓNubUsymbol_footnote_startrÔKUidsrÕ}rÖ(h-h&h²h®hhhdjUjQjáh$uUsubstitution_namesr×}rØh)h0h}rÙ(h]h]h]Usourcehh]h]uU footnotesrÚ]rÛUrefidsrÜ}rÝub.