Äcdocutils.nodes document q)Åq}q(U nametypesq}q(X���indexing approachqNX���problemqNX���translation approachqNX���content model approachq NX6���cross domain indexing and access for data and metadataq NuUsubstitution_defsq}qUparse_messagesq ]q(cdocutils.nodes system_message q)Åq}q(U rawsourceqU�U 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"(hU�hcdocutils.nodes section q#)Åq$}q%(hU�hh#)Åq&}q'(hU�hhUsourceq(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(hX6���Cross Domain Indexing and Access for Data and Metadataq6hh&h(hh)Utitleq7h}q8(h]h]h]h]h]uh/Kh0hh1]q9cdocutils.nodes Text q:X6���Cross Domain Indexing and Access for Data and Metadataq;ÖÅq<}q=(hh6hh4ubaubcdocutils.nodes field_list q>)Åq?}q@(hU�hh&h(hh)U field_listqAh}qB(h]h]h]h]h]uh/Kh0hh1]qCcdocutils.nodes field qD)ÅqE}qF(hU�hh?h(hh)UfieldqGh}qH(h]h]h]h]h]uh/Kh0hh1]qI(cdocutils.nodes field_name qJ)ÅqK}qL(hX���StatusqMhhEh(hh)U field_nameqNh}qO(h]h]h]h]h]uh/K�h1]qPh:X���StatusqQÖÅqR}qS(hhMhhKubaubcdocutils.nodes field_body qT)ÅqU}qV(hX���Early Draft / notes h}qW(h]h]h]h]h]uhhEh1]qXcdocutils.nodes paragraph qY)ÅqZ}q[(hX���Early Draft / notesq\hhUh(hh)U paragraphq]h}q^(h]h]h]h]h]uh/Kh1]q_h:X���Early Draft / notesq`ÖÅqa}qb(hh\hhZubaubah)U field_bodyqcubeubaubh#)Åqd}qe(hU�hh&h(hh)h*h}qf(h]h]h]h]qgUproblemqhah]qihauh/Kh0hh1]qj(h3)Åqk}ql(hX���Problemqmhhdh(hh)h7h}qn(h]h]h]h]h]uh/Kh0hh1]qoh:X���ProblemqpÖÅ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|(hX0���A few general approaches to the problem include:q}hhdh(hh)h]h}q~(h]h]h]h]h]uh/Kh0hh1]qh:X0���A few general approaches to the problem include:qÄÖÅqÅ}qÇ(hh}hh{ubaubh )ÅqÉ}qÑ(hU�hhdh(hh)Ubullet_listqÖh}qÜ(UbulletqáX���-h]h]h]h]h]uh/Kh0hh1]qà(h)Åqâ}qä(hXL���translate 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]qçhY)Åqé}qè(hXK���translate the metadata to and from the format/model used internally by a MNqêhhâh(hh)h]h}që(h]h]h]h]h]uh/Kh1]qíh:XK���translate the metadata to and from the format/model used internally by a MNqìÖÅqî}qï(hhêhhé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Ø(hU�hh&h(hh)h*h}q∞(h]h]h]h]q±Uindexing-approachq≤ah]q≥hauh/K<h0hh1]q¥(h3)Åqµ}q∂(hX���Indexing Approachq∑hhÆh(hh)h7h}q∏(h]h]h]h]h]uh/K<h0hh1]qπh:X���Indexing Approachq∫ÖÅqª}qº(hh∑hhµubaubhY)ÅqΩ}qæ(hX£��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øhhÆh(hh)h]h}q¿(h]h]h]h]h]uh/K>h0hh1]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÷(hU�hhÆh(hh)hÖh}q◊(háX���-h]h]h]h]h]uh/KOh0hh1]qÿ(h)ÅqŸ}q⁄(hXl���Can 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›}qfi(hXk���Can not treat data available through service interfaces as a discrete unit (e.g. a MySQL service interface)qflhhŸh(hh)h]h}q‡(h]h]h]h]h]uh/KOh1]q·h:Xk���Can not treat data available through service interfaces as a discrete unit (e.g. a MySQL service interface)q‚ÖÅq„}q‰(hhflhh›ubaubaubh)ÅqÂ}qÊ(hXB���Need 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Í(hXA���Need parsers for all metadata formats to extract specific contentqÎhhÂh(hh)h]h}qÏ(h]h]h]h]h]uh/KRh1]qÌh:XA���Need parsers for all metadata formats to extract specific contentqÓÖÅqÔ}q(hhÎhhÈubaubaubh)ÅqÒ}qÚ(hXA���New 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˛(hXA���Search capabilities on highly structured metadata may be limited hh’h(hh)hãh}qˇ(h]h]h]h]h]uh/Nh0hh1]r���hY)År��}r��(hX@���Search capabilities on highly structured metadata may be limitedr��hh˝h(hh)h]h}r��(h]h]h]h]h]uh/KVh1]r��h:X@���Search capabilities on highly structured metadata may be limitedr��ÖÅr��}r��(hj��hj��ubaubaubh)År ��}r ��(hX���... hh’h(hh)hãh}r��(h]h]h]h]h]uh/Nh0hh1]r��hY)År ��}r��(hX���...r��hj ��h(hh)h]h}r��(h]h]h]h]h]uh/KXh1]r��h:X���...r��ÖÅr��}r��(hj��hj ��ubaubaubeubhY)År��}r��(hX���Advantages:r��hhÆh(hh)h]h}r��(h]h]h]h]h]uh/KZh0hh1]r��h:X���Advantages:r��ÖÅr��}r��(hj��hj��ubaubh )År��}r��(hU�hhÆh(hh)hÖh}r��(háX���-h]h]h]h]h]uh/K\h0hh1]r ��(h)År!��}r"��(hXO���No 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&��(hXN���No 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:XN���No loss of information since there is no metadata translation, just extractionr*��ÖÅr+��}r,��(hj'��hj%��ubaubaubh)År-��}r.��(hXv���Format 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]r0��hY)År1��}r2��(hXu���Format agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)r3��hj-��h(hh)h]h}r4��(h]h]h]h]h]uh/K_h1]r5��h:Xu���Format agnostic (system can store any type of discrete entity - basically anything that can be represented as a file)r6��ÖÅr7��}r8��(hj3��hj1��ubaubaubh)År9��}r:��(hXd���Search 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>��(hXc���Search index can be highly tuned, multiple types of index can be implemented (e.g. topical domains)r?��hj9��h(hh)h]h}r@��(h]h]h]h]h]uh/Kbh1]rA��h:Xc���Search 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���... hj��h(hh)hãh}rG��(h]h]h]h]h]uh/Nh0hh1]rH��hY)ÅrI��}rJ��(hX���...rK��hjE��h(hh)h]h}rL��(h]h]h]h]h]uh/Keh1]rM��h:X���...rN��ÖÅrO��}rP��(hjK��hjI��ubaubaubeubeubh#)ÅrQ��}rR��(hU�hh&h(hh)h*h}rS��(h]h]h]h]rT��Ucontent-model-approachrU��ah]rV��h auh/Kih0hh1]rW��(h3)ÅrX��}rY��(hX���Content Model ApproachrZ��hjQ��h(hh)h7h}r[��(h]h]h]h]h]uh/Kih0hh1]r\��h:X���Content Model Approachr]��ÖÅr^��}r_��(hjZ��hjX��ubaubhY)År`��}ra��(hXF��Similar 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.rb��hjQ��h(hh)h]h}rc��(h]h]h]h]h]uh/Kkh0hh1]rd��h:XF��Similar 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��(hjb��hj`��ubaubhY)Årh��}ri��(hX ���Problems:rj��hjQ��h(hh)h]h}rk��(h]h]h]h]h]uh/Kqh0hh1]rl��h:X ���Problems:rm��ÖÅrn��}ro��(hjj��hjh��ubaubh )Årp��}rq��(hU�hjQ��h(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 hjp��h(hh)hãh}rv��(h]h]h]h]h]uh/Nh0hh1]rw��hY)Årx��}ry��(hX>���A central registry of data/metadata formats must be maintainedrz��hjt��h(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��(hjz��hjx��ubaubaubh)ÅrÄ��}rÅ��(hXO���Burden is on Member Nodes to make sure they adhere to published content models hjp��h(hh)hãh}rÇ��(h]h]h]h]h]uh/Nh0hh1]rÉ��hY)ÅrÑ��}rÖ��(hXN���Burden 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:XN���Burden is on Member Nodes to make sure they adhere to published content modelsrâ��ÖÅrä��}rã��(hjÜ��hjÑ��ubaubaubeubhY)Årå��}rç��(hX���Advantages:ré��hjQ��h(hh)h]h}rè��(h]h]h]h]h]uh/Kxh0hh1]rê��h:X���Advantages:rë��ÖÅrí��}rì��(hjé��hjå��ubaubh )Årî��}rï��(hU�hjQ��h(hh)hÖh}rñ��(háX���-h]h]h]h]h]uh/Kzh0hh1]ró��(h)Årò��}rô��(hXO���No 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ù��(hXN���No 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:XN���No loss of information since there is no metadata translation, just extractionr°��ÖÅr¢��}r£��(hjû��hjú��ubaubaubh)År§��}r•��(hXv���Format 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©��(hXu���Format 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:Xu���Format 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±��(hXd���Search 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µ��(hXc���Search 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:Xc���Search 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…��(hXg���Multiple 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Õ��(hXe���Multiple 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:Xe���Multiple communities can be accommodated, even if they have overlapping and/or inconsistent standardsr—��ÖÅr“��}r”��(hjŒ��hjÃ��ubaubaubeubcdocutils.nodes raw r‘��)År’��}r÷��(hX���\newpagehjQ��h(hh)Urawr◊��h}rÿ��(UformatX���latexU xml:spacerŸ��Upreserver⁄��h]h]h]h]h]uh/Kãh0hh1]r€��h:X���\newpager‹��ÖÅr›��}rfi��(hU�hj’��ubaubeubeubh(hh)h*h}rfl��(h]h]h]h]r‡��Utranslation-approachr·��ah]r‚��hauh/K h0hh1]r„��(h3)År‰��}rÂ��(hX���Translation ApproachrÊ��hh$h(hh)h7h}rÁ��(h]h]h]h]h]uh/K h0hh1]rË��h:X���Translation 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]r���h:X���Advantages:r��ÖÅr��}r��(hj˛��hj¸��ubaubh )År��}r��(hU�hh$h(hh)hÖh}r��(háX���-h]h]h]h]h]uh/K6h0hh1]r��(h)År��}r ��(hXM���No or minimal changes to existing services (translation functions required). hj��h(hh)hãh}r ��(h]h]h]h]h]uh/Nh0hh1]r��hY)År��}r ��(hXL���No or minimal changes to existing services (translation functions required).r��hj��h(hh)h]h}r��(h]h]h]h]h]uh/K6h1]r��h:XL���No or minimal changes to existing services (translation functions required).r��ÖÅr��}r��(hj��hj��ubaubaubh)År��}r��(hX���... hj��h(hh)hãh}r��(h]h]h]h]h]uh/Nh0hh1]r��hY)År��}r��(hX���...r��hj��h(hh)h]h}r��(h]h]h]h]h]uh/K8h1]r��h:X���...r��ÖÅr��}r��(hj��hj��ubaubaubeubeubh(hh)hÖh}r ��(háX���-h]h]h]h]h]uh/K-h0hh1]r!��(h)År"��}r#��(hXV���n 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'��(hXU���n 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:XU���n x n bi-directional translations for metadata to be written, tested, and maintained.r+��ÖÅr,��}r-��(hj(��hj&��ubaubaubh)År.��}r/��(hXD���Metadata translation almost invariably leads to loss of information hh!h(hh)hãh}r0��(h]h]h]h]h]uh/Nh0hh1]r1��hY)År2��}r3��(hXC���Metadata translation almost invariably leads to loss of informationr4��hj.��h(hh)h]h}r5��(h]h]h]h]h]uh/K0h1]r6��h:XC���Metadata translation almost invariably leads to loss of informationr7��ÖÅr8��}r9��(hj4��hj2��ubaubaubheubh(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]rD��hY)ÅrE��}rF��(hXe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}rG��(h]h]h]h]h]uhhh1]rH��h:Xe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.rI��ÖÅrJ��}rK��(hU�hjE��ubah)h]ubah)Usystem_messagerL��ubh)ÅrM��}rN��(hU�h}rO��(h]UlevelKh]h]Usourcehh]h]UlineK8Utypehuhj��h1]rP��hY)ÅrQ��}rR��(hXe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}rS��(h]h]h]h]h]uhjM��h1]rT��h:Xe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.rU��ÖÅrV��}rW��(hU�hjQ��ubah)h]ubah)jL��ubh)ÅrX��}rY��(hU�h}rZ��(h]UlevelKh]h]Usourcehh]h]UlineKXUtypehuhj ��h1]r[��hY)År\��}r]��(hXe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}r^��(h]h]h]h]h]uhjX��h1]r_��h:Xe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.r`��ÖÅra��}rb��(hU�hj\��ubah)h]ubah)jL��ubh)Årc��}rd��(hU�h}re��(h]UlevelKh]h]Usourcehh]h]UlineKeUtypehuhjE��h1]rf��hY)Årg��}rh��(hXe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.h}ri��(h]h]h]h]h]uhjc��h1]rj��h:Xe���Unexpected possible title overline or transition. Treating it as ordinary text because it's so short.rk��ÖÅrl��}rm��(hU�hjg��ubah)h]ubah)jL��ubeUcurrent_sourcern��NU decorationro��NUautofootnote_startrp��KUnameidsrq��}rr��(hh≤hhhhj·��h jU��h h-uh1]rs��h&ahU�Utransformerrt��NU footnote_refsru��}rv��Urefnamesrw��}rx��Usymbol_footnotesry��]rz��Uautofootnote_refsr{��]r|��Usymbol_footnote_refsr}��]r~��U citationsr��]rÄ��h0hUcurrent_linerÅ��NUtransform_messagesrÇ��]rÉ��UreporterrÑ��NUid_startrÖ��KU autofootnotesrÜ��]rá��U citation_refsrà��}râ��Uindirect_targetsrä��]rã��Usettingsrå��(cdocutils.frontend Values rç��oré��}rè��(Ufootnote_backlinksrê��KUrecord_dependenciesrë��NUrfc_base_urlrí��Uhttps://tools.ietf.org/html/rì��U tracebackrî��àUpep_referencesrï��NUstrip_commentsrñ��NU toc_backlinksró��Uentryrò��U language_coderô��Uenrö��U datestamprõ��NUreport_levelrú��KU_destinationrù��NU 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¥��âUsource_linkrµ��NUrfc_referencesr∂��NUoutput_encodingr∑��Uutf-8r∏��U source_urlrπ��NUinput_encodingr∫��U utf-8-sigrª��U_disable_configrº��NU id_prefixrΩ��U�U tab_widthræ��KUerror_encodingrø��UUTF-8r¿��U_sourcer¡��hUgettext_compactr¬��àU generatorr√��NUdump_internalsrƒ��NUsmart_quotesr≈��âUpep_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—��àUraw_enabledr“��KU dump_settingsr”��NubUsymbol_footnote_startr‘��K�Uidsr’��}r÷��(h-h&h≤hÆhhhdjU��jQ��j·��h$uUsubstitution_namesr◊��}rÿ��h)h0h}rŸ��(h]h]h]Usourcehh]h]uU footnotesr⁄��]r€��Urefidsr‹��}r›��ub.