€cdocutils.nodes document q)q}q(U nametypesq}q(Xuse case 04 - create new objectqNXuc04qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUuse-case-04-create-new-objectqhUuc04qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC04:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/04_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hXUse Case 04 - Create New Objectq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q…q?}q@(hh9hh7ubaubcsphinx.addnodes index qA)qB}qC(hUhh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX Use Case 04Uindex-0qIUNtqJ(hHXUC04hIUNtqK(hHXcreatehIUNtqLeUinlineqM‰uh(Kh)hh]ubh)qN}qO(hUhh+hhhhh }qP(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qQ)qR}qS(hUhh+hhh-}hUdefinition_listqTh }qU(h$]h%]h#]h"]qVhIah&]uh(Nh)hh3}qWhIhNsh]qX(cdocutils.nodes definition_list_item qY)qZ}q[(hX+Revisions View document revision history_. hhRhhhUdefinition_list_itemq\h }q](h$]h%]h#]h"]h&]uh(K h]q^(cdocutils.nodes term q_)q`}qa(hX RevisionsqbhhZhhhUtermqch }qd(h$]h%]h#]h"]h&]uh(K h]qeh=X Revisionsqf…qg}qh(hhbhh`ubaubcdocutils.nodes definition qi)qj}qk(hUh }ql(h$]h%]h#]h"]h&]uhhZh]qmcdocutils.nodes paragraph qn)qo}qp(hX View document revision history_.hhjhhhU paragraphqqh }qr(h$]h%]h#]h"]h&]uh(K h]qs(h=XView document revision qt…qu}qv(hXView document revision hhoubcdocutils.nodes reference qw)qx}qy(hXhistory_UresolvedqzKhhohU referenceq{h }q|(UnameXhistoryq}Urefuriq~X”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/04_uc.txtqh"]h#]h$]h%]h&]uh]q€h=Xhistoryq…q‚}qƒ(hUhhxubaubh=X.…q„}q…(hX.hhoubeubahU definitionq†ubeubhY)q‡}qˆ(hX*Goal Create new content on a Member Node. hhRhhhh\h }q‰(h$]h%]h#]h"]h&]uh(K h)hh]qŠ(h_)q‹}qŒ(hXGoalqhh‡hhhhch }qŽ(h$]h%]h#]h"]h&]uh(K h]qh=XGoalq…q‘}q’(hhhh‹ubaubhi)q“}q”(hUh }q•(h$]h%]h#]h"]h&]uhh‡h]q–hn)q—}q˜(hX$Create new content on a Member Node.q™hh“hhhhqh }qš(h$]h%]h#]h"]h&]uh(K h]q›h=X$Create new content on a Member Node.qœ…q}qž(hh™hh—ubaubahh†ubeubhY)qŸ}q (hXÅSummary A user adds new content to a Member Node (MN). The operation of adding new content to a Member Node is atomic to the Member Node, meaning there is no dependency on the replication or synchronization processes for the successful completion of a create operation. The metadata is retrieved by the CN using a pull mechanism (CN requests content from the MN) which may be triggered by a timer event or notification from the MN. The availability of new content on a MN is indicated by a flag in the response to a ping() message issued by a CN. The CN then retrieves a list of changes from the MN and for each change, retrieves the experiment metadata, stores it and generates a search metadata document by extracting content from the experiment metadata. The changes to the CN (stored experiment metadata, update search metadata) are replicated to the other CNs (Use Case ###). The CN schedules replication of the data package across other MNs (Use Case 06). hhRhhhh\h }q¡(h$]h%]h#]h"]h&]uh(K h)hh]q¢(h_)q£}q¤(hXSummaryq¥hhŸhhhhch }q¦(h$]h%]h#]h"]h&]uh(K h]q§h=XSummaryq¨…q©}qª(hh¥hh£ubaubhi)q«}q¬(hUh }q­(h$]h%]h#]h"]h&]uhhŸh]q®(hn)q¯}q°(hXA user adds new content to a Member Node (MN). The operation of adding new content to a Member Node is atomic to the Member Node, meaning there is no dependency on the replication or synchronization processes for the successful completion of a create operation.q±hh«hhhhqh }q²(h$]h%]h#]h"]h&]uh(Kh]q³h=XA user adds new content to a Member Node (MN). The operation of adding new content to a Member Node is atomic to the Member Node, meaning there is no dependency on the replication or synchronization processes for the successful completion of a create operation.q´…qµ}q¶(hh±hh¯ubaubhn)q·}q¸(hX¡The metadata is retrieved by the CN using a pull mechanism (CN requests content from the MN) which may be triggered by a timer event or notification from the MN.q¹hh«hhhhqh }qº(h$]h%]h#]h"]h&]uh(Kh]q»h=X¡The metadata is retrieved by the CN using a pull mechanism (CN requests content from the MN) which may be triggered by a timer event or notification from the MN.q¼…q½}q¾(hh¹hh·ubaubhn)q¿}qÀ(hXThe availability of new content on a MN is indicated by a flag in the response to a ping() message issued by a CN. The CN then retrieves a list of changes from the MN and for each change, retrieves the experiment metadata, stores it and generates a search metadata document by extracting content from the experiment metadata. The changes to the CN (stored experiment metadata, update search metadata) are replicated to the other CNs (Use Case ###). The CN schedules replication of the data package across other MNs (Use Case 06).qÁhh«hhhhqh }qÂ(h$]h%]h#]h"]h&]uh(Kh]qÃh=XThe availability of new content on a MN is indicated by a flag in the response to a ping() message issued by a CN. The CN then retrieves a list of changes from the MN and for each change, retrieves the experiment metadata, stores it and generates a search metadata document by extracting content from the experiment metadata. The changes to the CN (stored experiment metadata, update search metadata) are replicated to the other CNs (Use Case ###). The CN schedules replication of the data package across other MNs (Use Case 06).qÄ…qÅ}qÆ(hhÁhh¿ubaubehh†ubeubhY)qÇ}qÈ(hXAActors Member Node, additional Member Nodes, Coordinating Nodes hhRhhhh\h }qÉ(h$]h%]h#]h"]h&]uh(K$h)hh]qÊ(h_)qË}qÌ(hXActorsqÍhhÇhhhhch }qÎ(h$]h%]h#]h"]h&]uh(K$h]qÏh=XActorsqÐ…qÑ}qÒ(hhÍhhËubaubhi)qÓ}qÔ(hUh }qÕ(h$]h%]h#]h"]h&]uhhÇh]qÖhn)q×}qØ(hX8Member Node, additional Member Nodes, Coordinating NodesqÙhhÓhhhhqh }qÚ(h$]h%]h#]h"]h&]uh(K#h]qÛh=X8Member Node, additional Member Nodes, Coordinating NodesqÜ…qÝ}qÞ(hhÙhh×ubaubahh†ubeubhY)qß}qà(hX¦Preconditions - Use is authenticated and so client application has an auth_token for the process. - DataONE system operational - MN is registered and is monitored hhRhhhh\h }qá(h$]h%]h#]h"]h&]uh(K,h)hh]qâ(h_)qã}qä(hX Preconditionsqåhhßhhhhch }qæ(h$]h%]h#]h"]h&]uh(K,h]qçh=X Preconditionsqè…qé}qê(hhåhhãubaubhi)që}qì(hUh }qí(h$]h%]h#]h"]h&]uhhßh]qîcdocutils.nodes bullet_list qï)qð}qñ(hUh }qò(UbulletqóX-h"]h#]h$]h%]h&]uhhëh]qô(cdocutils.nodes list_item qõ)qö}q÷(hXRUse is authenticated and so client application has an auth_token for the process. h }qø(h$]h%]h#]h"]h&]uhhðh]qùhn)qú}qû(hXQUse is authenticated and so client application has an auth_token for the process.qühhöhhhhqh }qý(h$]h%]h#]h"]h&]uh(K'h]qþh=XQUse is authenticated and so client application has an auth_token for the process.qÿ…r}r(hhühhúubaubahU list_itemrubhõ)r}r(hXDataONE system operational h }r(h$]h%]h#]h"]h&]uhhðh]rhn)r}r(hXDataONE system operationalr hjhhhhqh }r (h$]h%]h#]h"]h&]uh(K)h]r h=XDataONE system operationalr …r }r(hj hjubaubahjubhõ)r}r(hX#MN is registered and is monitored h }r(h$]h%]h#]h"]h&]uhhðh]rhn)r}r(hX!MN is registered and is monitoredrhjhhhhqh }r(h$]h%]h#]h"]h&]uh(K+h]rh=X!MN is registered and is monitoredr…r}r(hjhjubaubahjubehU bullet_listrubahh†ubeubhY)r}r(hX Triggers - New data package is present on Member Node - An existing data package is modified on a Member Node - A data package is deleted from a Member Node hhRhhhh\h }r(h$]h%]h#]h"]h&]uh(K4h)hh]r(h_)r }r!(hXTriggersr"hjhhhhch }r#(h$]h%]h#]h"]h&]uh(K4h]r$h=XTriggersr%…r&}r'(hj"hj ubaubhi)r(}r)(hUh }r*(h$]h%]h#]h"]h&]uhjh]r+hï)r,}r-(hUh }r.(hóX-h"]h#]h$]h%]h&]uhj(h]r/(hõ)r0}r1(hX+New data package is present on Member Node h }r2(h$]h%]h#]h"]h&]uhj,h]r3hn)r4}r5(hX*New data package is present on Member Noder6hj0hhhhqh }r7(h$]h%]h#]h"]h&]uh(K/h]r8h=X*New data package is present on Member Noder9…r:}r;(hj6hj4ubaubahjubhõ)r<}r=(hX6An existing data package is modified on a Member Node h }r>(h$]h%]h#]h"]h&]uhj,h]r?hn)r@}rA(hX5An existing data package is modified on a Member NoderBhj<hhhhqh }rC(h$]h%]h#]h"]h&]uh(K1h]rDh=X5An existing data package is modified on a Member NoderE…rF}rG(hjBhj@ubaubahjubhõ)rH}rI(hX.A data package is deleted from a Member Node h }rJ(h$]h%]h#]h"]h&]uhj,h]rKhn)rL}rM(hX,A data package is deleted from a Member NoderNhjHhhhhqh }rO(h$]h%]h#]h"]h&]uh(K3h]rPh=X,A data package is deleted from a Member NoderQ…rR}rS(hjNhjLubaubahjubehjubahh†ubeubhY)rT}rU(hXÖPost Conditions - New data package is replicated across MNs - Search metadata is updated - Operation recorded in logs - CN update of search metadata - CN replication of metadata - Watchers notified of change hhRhhhh\h }rV(h$]h%]h#]h"]h&]uh(KBh)hh]rW(h_)rX}rY(hXPost ConditionsrZhjThhhhch }r[(h$]h%]h#]h"]h&]uh(KBh]r\h=XPost Conditionsr]…r^}r_(hjZhjXubaubhi)r`}ra(hUh }rb(h$]h%]h#]h"]h&]uhjTh]rchï)rd}re(hUh }rf(hóX-h"]h#]h$]h%]h&]uhj`h]rg(hõ)rh}ri(hX*New data package is replicated across MNs h }rj(h$]h%]h#]h"]h&]uhjdh]rkhn)rl}rm(hX)New data package is replicated across MNsrnhjhhhhhqh }ro(h$]h%]h#]h"]h&]uh(K7h]rph=X)New data package is replicated across MNsrq…rr}rs(hjnhjlubaubahjubhõ)rt}ru(hXSearch metadata is updated h }rv(h$]h%]h#]h"]h&]uhjdh]rwhn)rx}ry(hXSearch metadata is updatedrzhjthhhhqh }r{(h$]h%]h#]h"]h&]uh(K9h]r|h=XSearch metadata is updatedr}…r~}r(hjzhjxubaubahjubhõ)r€}r(hXOperation recorded in logs h }r‚(h$]h%]h#]h"]h&]uhjdh]rƒhn)r„}r…(hXOperation recorded in logsr†hj€hhhhqh }r‡(h$]h%]h#]h"]h&]uh(K;h]rˆh=XOperation recorded in logsr‰…rŠ}r‹(hj†hj„ubaubahjubhõ)rŒ}r(hXCN update of search metadata h }rŽ(h$]h%]h#]h"]h&]uhjdh]rhn)r}r‘(hXCN update of search metadatar’hjŒhhhhqh }r“(h$]h%]h#]h"]h&]uh(K=h]r”h=XCN update of search metadatar•…r–}r—(hj’hjubaubahjubhõ)r˜}r™(hXCN replication of metadata h }rš(h$]h%]h#]h"]h&]uhjdh]r›hn)rœ}r(hXCN replication of metadataržhj˜hhhhqh }rŸ(h$]h%]h#]h"]h&]uh(K?h]r h=XCN replication of metadatar¡…r¢}r£(hjžhjœubaubahjubhõ)r¤}r¥(hXWatchers notified of change h }r¦(h$]h%]h#]h"]h&]uhjdh]r§hn)r¨}r©(hXWatchers notified of changerªhj¤hhhhqh }r«(h$]h%]h#]h"]h&]uh(KAh]r¬h=XWatchers notified of changer­…r®}r¯(hjªhj¨ubaubahjubehjubahh†ubeubeubhn)r°}r±(hX **Notes**r²hh+hhhhqh }r³(h$]h%]h#]h"]h&]uh(KDh)hh]r´cdocutils.nodes strong rµ)r¶}r·(hj²h }r¸(h$]h%]h#]h"]h&]uhj°h]r¹h=XNotesrº…r»}r¼(hUhj¶ubahUstrongr½ubaubhï)r¾}r¿(hUhh+hhhjh }rÀ(hóX-h"]h#]h$]h%]h&]uh(KFh)hh]rÁ(hõ)rÂ}rÃ(hXWAre IDs are pegged to versions? If so, update might differ more radically from create. hj¾hhhjh }rÄ(h$]h%]h#]h"]h&]uh(Nh)hh]rÅhn)rÆ}rÇ(hXVAre IDs are pegged to versions? If so, update might differ more radically from create.rÈhjÂhhhhqh }rÉ(h$]h%]h#]h"]h&]uh(KFh]rÊh=XVAre IDs are pegged to versions? If so, update might differ more radically from create.rË…rÌ}rÍ(hjÈhjÆubaubaubhõ)rÎ}rÏ(hXóIf delete is a metadata operation only, then will be very similar to update. But if it is a physical operation, it becomes more complex. Will there be an archival copy? Will member nodes that hold replicas be "forced" to destroy the replicas? hj¾hhhjh }rÐ(h$]h%]h#]h"]h&]uh(Nh)hh]rÑhn)rÒ}rÓ(hXòIf delete is a metadata operation only, then will be very similar to update. But if it is a physical operation, it becomes more complex. Will there be an archival copy? Will member nodes that hold replicas be "forced" to destroy the replicas?rÔhjÎhhhhqh }rÕ(h$]h%]h#]h"]h&]uh(KIh]rÖh=XòIf delete is a metadata operation only, then will be very similar to update. But if it is a physical operation, it becomes more complex. Will there be an archival copy? Will member nodes that hold replicas be "forced" to destroy the replicas?r×…rØ}rÙ(hjÔhjÒubaubaubhõ)rÚ}rÛ(hX-Is submit from a member node a push or pull? hj¾hhhjh }rÜ(h$]h%]h#]h"]h&]uh(Nh)hh]rÝhn)rÞ}rß(hX,Is submit from a member node a push or pull?ràhjÚhhhhqh }rá(h$]h%]h#]h"]h&]uh(KNh]râh=X,Is submit from a member node a push or pull?rã…rä}rå(hjàhjÞubaubaubhõ)ræ}rç(hX‡Should queuing of a submission within a member node be required for success? (We assume yes, to guarantee replication of submissions). hj¾hhhjh }rè(h$]h%]h#]h"]h&]uh(Nh)hh]réhn)rê}rë(hX†Should queuing of a submission within a member node be required for success? (We assume yes, to guarantee replication of submissions).rìhjæhhhhqh }rí(h$]h%]h#]h"]h&]uh(KPh]rîh=X†Should queuing of a submission within a member node be required for success? (We assume yes, to guarantee replication of submissions).rï…rð}rñ(hjìhjêubaubaubhõ)rò}ró(hX*Can data packages be deleted or modified? hj¾hhhjh }rô(h$]h%]h#]h"]h&]uh(Nh)hh]rõhn)rö}r÷(hX)Can data packages be deleted or modified?røhjòhhhhqh }rù(h$]h%]h#]h"]h&]uh(KSh]rúh=X)Can data packages be deleted or modified?rû…rü}rý(hjøhjöubaubaubeubcdocutils.nodes image rþ)rÿ}r(hX.. image:: images/04_uc.png hh+hhhUimagerh }r(UuriX design/UseCases/images/04_uc.pngrh"]h#]h$]h%]U candidatesr}rU*jsh&]uh(KVh)hh]ubhn)r}r(hX*Figure 1.* Use case 04.rhh+hhhhqh }r (h$]h%]h#]h"]h&]uh(KWh)hh]r (cdocutils.nodes emphasis r )r }r (hX *Figure 1.*h }r(h$]h%]h#]h"]h&]uhjh]rh=X Figure 1.r…r}r(hUhj ubahUemphasisrubh=X Use case 04.r…r}r(hX Use case 04.hjubeubjþ)r}r(hX.. image:: images/04_seq.png hh+hhhjh }r(UuriX!design/UseCases/images/04_seq.pngrh"]h#]h$]h%]j}rU*jsh&]uh(KZh)hh]ubhn)r}r(hXS*Figure 2.* Create, update, delete, science metadata or data object in Member Node.hh+hhhhqh }r(h$]h%]h#]h"]h&]uh(K[h)hh]r(j )r }r!(hX *Figure 2.*h }r"(h$]h%]h#]h"]h&]uhjh]r#h=X Figure 2.r$…r%}r&(hUhj ubahjubh=XH Create, update, delete, science metadata or data object in Member Node.r'…r(}r)(hXH Create, update, delete, science metadata or data object in Member Node.hjubeubcdocutils.nodes comment r*)r+}r,(hXÃ@startuml images/04_uc.png actor "User" as client usecase "12. Authentication" as authen package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "04. Create Object" as create usecase "06. MN Synchronize" as mn_sync client -- create CN -- create MN -- create create ..> author: <> create ..> authen: <> create ..> mn_sync: <> @endumlhh+hhhUcommentr-h }r.(U xml:spacer/Upreserver0h"]h#]h$]h%]h&]uh(Kqh)hh]r1h=XÃ@startuml images/04_uc.png actor "User" as client usecase "12. Authentication" as authen package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "04. Create Object" as create usecase "06. MN Synchronize" as mn_sync client -- create CN -- create MN -- create create ..> author: <> create ..> authen: <> create ..> mn_sync: <> @endumlr2…r3}r4(hUhj+ubaubj*)r5}r6(hX²@startuml images/04_seq.png Actor User participant "Client" as app_client << Application >> User -> app_client participant "CRUD API" as m_crud << Member Node >> app_client -> m_crud: create(auth_token, dataPackage) activate m_crud participant "CRUD API" as c_crud << Coordinating Node >> m_crud -> c_crud: validatePID(PID) m_crud <-- c_crud: PID m_crud -> m_crud: store() deactivate m_crud participant "State of Health API" as c_health << Coordinating Node >> c_health -> m_crud: ping() activate c_health c_health <-- m_crud: [ACK, NewData] participant "Synchronization API" as c_sync << Coordinating Node >> c_health -> c_sync: scheduleSynch(MN_ID) deactivate c_health @endumlhh+hhhj-h }r7(j/j0h"]h#]h$]h%]h&]uh(K‰h)hh]r8h=X²@startuml images/04_seq.png Actor User participant "Client" as app_client << Application >> User -> app_client participant "CRUD API" as m_crud << Member Node >> app_client -> m_crud: create(auth_token, dataPackage) activate m_crud participant "CRUD API" as c_crud << Coordinating Node >> m_crud -> c_crud: validatePID(PID) m_crud <-- c_crud: PID m_crud -> m_crud: store() deactivate m_crud participant "State of Health API" as c_health << Coordinating Node >> c_health -> m_crud: ping() activate c_health c_health <-- m_crud: [ACK, NewData] participant "Synchronization API" as c_sync << Coordinating Node >> c_health -> c_sync: scheduleSynch(MN_ID) deactivate c_health @endumlr9…r:}r;(hUhj5ubaubh)r<}r=(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/04_uc.txtU referencedr>Khh+hhhhh }r?(h~hh"]r@hah#]h$]h%]h&]rAhauh(KŠh)hh]ubeubehUU transformerrBNU footnote_refsrC}rDUrefnamesrE}rFh}]rGhxasUsymbol_footnotesrH]rIUautofootnote_refsrJ]rKUsymbol_footnote_refsrL]rMU citationsrN]rOh)hU current_linerPNUtransform_messagesrQ]rR(cdocutils.nodes system_message rS)rT}rU(hUh }rV(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOrWuh]rXhn)rY}rZ(hUh }r[(h$]h%]h#]h"]h&]uhjTh]r\h=X*Hyperlink target "uc04" is not referenced.r]…r^}r_(hUhjYubahhqubahUsystem_messager`ubjS)ra}rb(hUh }rc(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypejWuh]rdhn)re}rf(hUh }rg(h$]h%]h#]h"]h&]uhjah]rhh=X-Hyperlink target "index-0" is not referenced.ri…rj}rk(hUhjeubahhqubahj`ubeUreporterrlNUid_startrmKU autofootnotesrn]roU citation_refsrp}rqUindirect_targetsrr]rsUsettingsrt(cdocutils.frontend Values ruorv}rw(Ufootnote_backlinksrxKUrecord_dependenciesryNU rfc_base_urlrzUhttps://tools.ietf.org/html/r{U tracebackr|ˆUpep_referencesr}NUstrip_commentsr~NU toc_backlinksrUentryr€U language_coderUenr‚U datestamprƒNU report_levelr„KU _destinationr…NU halt_levelr†KU strip_classesr‡Nh:NUerror_encoding_error_handlerrˆUbackslashreplacer‰UdebugrŠNUembed_stylesheetr‹‰Uoutput_encoding_error_handlerrŒUstrictrU sectnum_xformrŽKUdump_transformsrNU docinfo_xformrKUwarning_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_linkrNUrfc_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­‰U pep_base_urlr®U https://www.python.org/dev/peps/r¯Usyntax_highlightr°Ulongr±Uinput_encoding_error_handlerr²jUauto_id_prefixr³Uidr´Udoctitle_xformrµ‰Ustrip_elements_with_classesr¶NU _config_filesr·]Ufile_insertion_enabledr¸ˆU raw_enabledr¹KU dump_settingsrºNubUsymbol_footnote_startr»KUidsr¼}r½(hIhRhh+hh+hj<uUsubstitution_namesr¾}r¿hh)h }rÀ(h$]h"]h#]Usourcehh%]h&]uU footnotesrÁ]rÂUrefidsrÃ}rÄ(hI]rÅhNah]rÆhauub.