gh dZdZddlmZddlZddlmZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZddlmZddlZddlmZdd lmZddlZddlZdd lmZmZmZmZmZdd l m!Z!dd l"m#Z#dd l$m%Z% ddl&Z&ddl'Z&ddl(m)Z)m*Z*n#e+e,f$rdZ&YnwxYwdZ-ej.Z/ej0Z1e2ej3e4rej3Z5nej5Z5Gdde5Z6e j7dZ8e j7dZ9e j7dZ:e j7dZ;dZdZ?dZ@iddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0e@d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDxZAZBiddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0e@d7d8d1d2d3d4d5d6d9d:d;d<d=d>d?dAdExZCZDdFdGixZEZFdd-e@d2dAdHxZGZHidIddJddKd!dLd#dMd%dNd'dOd)dPd+dQd-dRd/dSe@dTd8dUd2dVd4dWd6dXd:dYd<d=d>d?d@dAdBdCdZZIidIddJddKd!dLd#dMd%dNd'dOd)dPd+dQd-dRd/dSe@dTd8dUd2dVd4dWd6dXd:dYd<d=d>d?dAd[ZJd\dGiZKdd-e@d2dAd]ZLddeBfd^Z3ddeBfd_ZMd`ZNeBfdaZOdbZPdcZQGdddeZReRdfgZSGdhdiZTGdjdkejUZUGdldmejVZWGdndoe#jXZXdS)pz Open Document Format (ODF) Writer. This module is provisional: the API is not settled and may change with any minor Docutils version. reStructuredText) ConfigParserN)StringIO)urlopen) HTTPError) ElementTree)minidom)frontendnodesutilswriters languages)PIL) standalone) references)OdtPygmentsProgFormatterOdtPygmentsLaTeXFormatterz1.0ac"eZdZddZdZdZdS)_ElementInterfaceWrapperNcRt|||dt|<dSN)_ElementInterface__init___parents)selftagattribs /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/docutils/writers/odf_odt/__init__.pyrz!_ElementInterfaceWrapper.__init__Ks'""4f555c|t|<dSrr)rparents r setparentz"_ElementInterfaceWrapper.setparentOsr ct|Srr"rs r getparentz"_ElementInterfaceWrapper.getparentRs ~r r)__name__ __module__ __qualname__rr$r'r rrrJsF   r rz( +)z(\t+)z^ +z {2,}zrststyle-table-z%s0)borderz border-topz border-leftz border-rightz border-bottomzDocutils.org/odf_odtz0urn:oasis:names:tc:opendocument:xmlns:office:1.0chartz/urn:oasis:names:tc:opendocument:xmlns:chart:1.0dcz http://purl.org/dc/elements/1.1/domz!http://www.w3.org/2001/xml-eventsdr3dz.urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0drawz1urn:oasis:names:tc:opendocument:xmlns:drawing:1.0foz;urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0formz.urn:oasis:names:tc:opendocument:xmlns:form:1.0mathz"http://www.w3.org/1998/Math/MathMLmetaz.urn:oasis:names:tc:opendocument:xmlns:meta:1.0numberz3urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0officeoooz!http://openoffice.org/2004/officeoooczhttp://openoffice.org/2004/calcooowz!http://openoffice.org/2004/writer presentationz6urn:oasis:names:tc:opendocument:xmlns:presentation:1.0scriptz0urn:oasis:names:tc:opendocument:xmlns:script:1.0stylez/urn:oasis:names:tc:opendocument:xmlns:style:1.0z8urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0z/urn:oasis:names:tc:opendocument:xmlns:table:1.0z.urn:oasis:names:tc:opendocument:xmlns:text:1.0zhttp://www.w3.org/2002/xformszhttp://www.w3.org/1999/xlinkz http://www.w3.org/2001/XMLSchemaz)http://www.w3.org/2001/XMLSchema-instance)svgtabletextxformsxlinkxsdxsi)r>r?r@rBmanifestz2urn:oasis:names:tc:opendocument:xmlns:manifest:1.0)r.r5r7r8rBz xmlns:chartxmlns:dcz xmlns:domz xmlns:dr3dz xmlns:drawzxmlns:foz xmlns:formz xmlns:math xmlns:meta xmlns:number xmlns:officezxmlns:presentation xmlns:oooz xmlns:ooocz xmlns:ooowz xmlns:script xmlns:style) xmlns:svg xmlns:table xmlns:textz xmlns:xforms xmlns:xlinkz xmlns:xsdz xmlns:xsi)rLrMrNrOzxmlns:manifest)rFrGrIrJrOcR|i}t|||\}}t||Sr)fix_nsr)rrnsmapnsdicts rElementrTs1 ~ff--KC #C 0 00r c|i}t|||\}}t||}|||||Sr)rQrappendr$)r#rrrRrSels r SubElementrXsY ~ff--KC !#v . .B MM"LL Ir ct||}i}t|D]\}}t||}|||<||fSr)add_nslistitems)rrrSnstagnsattribkeyvalnskeys rrQrQ s] 3  EH((SsF## (?r c|Srr+)rrSs rrZrZs Jr ct}||d|}||S)Nunicodeencoding)rwritegetvalueclose)et outstreams1s rToStringrmsG IHHYH+++     B OO Ir c|dd}|dd}|dd}d}|D]>}t|tdkr|d t|fzz }9||z }?|S) N&z&z>z&#x%X;)replaceord)r@asciichars r escape_cdatarx"s <<W % %D <<V $ $D <<V $ $D E t99F # # XT - -EE TMEE Lr c^eZdZddZdZdZeeeZdZdZ eee Z dS) TableStyleNc"||_||_dSr)r,backgroundcolor)rr,r|s rrzTableStyle.__init__5s .r c|jSrborder_r&s r get_border_zTableStyle.get_border_9s |r c||_dSrr~)rr,s r set_border_zTableStyle.set_border_<s  r c|jSrbackgroundcolor_r&s rget_backgroundcolor_zTableStyle.get_backgroundcolor_As $$r c||_dSrr)rr|s rset_backgroundcolor_zTableStyle.set_backgroundcolor_Ds /r NN) r(r)r*rrrpropertyr,rrr|r+r rrzrz4s////Xk; / /F%%%000h35IJJOOOr rzz0.0007in solid #000000)r,c:eZdZd dZdZdZdZdZdZdZ d S) ListLevelTc0||_||_||_dSr)level sibling_level nested_level)rrrrs rrzListLevel.__init__Qs *(r c||_dSrr)rrs r set_siblingzListLevel.set_siblingVs*r c|jSrrr&s r get_siblingzListLevel.get_siblingYs !!r c||_dSrr)rrs r set_nestedzListLevel.set_nested\s(r c|jSrrr&s r get_nestedzListLevel.get_nested_s   r c||_dSrr)rrs r set_levelzListLevel.set_levelb  r c|jSrrr&s r get_levelzListLevel.get_levele zr N)TT) r(r)r*rrrrrrrr+r rrrPs)))) +++""")))!!!r rceZdZdZdZdZ dezZeje j e j de j e j eeZdZeje j e j de j e j eeZddd ezd ged d fd dgddifddgdddejdfddgdddejdfddgdejdfddgdddejdfd d!gdddejdfd"d#gd$dd%ejdfd&d'gd$dd%ejdfd(d)gddd*ejdfd+d,gddd*ejdfd-d.gddd/ejdfd0d1gddd/ejdfd2d3gd$dd4ejdfd5d6gd$dd4ejdfd7d8gd9d:d fd;dd?iZd@ZdAZdBZdCZdDZdEZdFZejfdGZ dHZ!dIZ"dJZ#dKZ$dLZ%dMZ&dNZ'dS)OWriterz'application/vnd.oasis.opendocument.textz.odt)odtstylesdummyz template.txtzODF-Specific OptionsNz$Specify a stylesheet. Default: "%s"z --stylesheet stylesheet)defaultdesta}Specify a configuration/mapping file relative to the current working directory for additional ODF options. In particular, this file may contain a section named "Formats" that maps default style names to names to be used in the resulting output file allowing for adhering to external standards. For more info and the format of the configuration/mapping file, see the odtwriter doc.z--odf-config-filemetavarzzyObfuscate email addresses to confuse harvesters while still keeping email links usable with standards-compliant browsers.z--cloak-email-addressesF store_truecloak_email_addresses)ractionr validatorz!Do not obfuscate email addresses.z--no-cloak-email-addresses store_falsezLSpecify the thickness of table borders in thousands of a cm. Default is 35.z--table-border-thickness)rrz/Add syntax highlighting in literal code blocks.z--add-syntax-highlightingadd_syntax_highlightingz@Do not add syntax highlighting in literal code blocks. (default)z--no-syntax-highlightingz'Create sections for headers. (default)z--create-sectionsTcreate_sectionsz#Do not create sections for headers.z --no-sectionsz Create links.z--create-links create_linkszDo not create links. (default)z --no-linkszFGenerate endnotes at end of document, not footnotes at bottom of page.z--endnotes-end-docendnotes_end_doczPGenerate footnotes at bottom of page, not endnotes at end of document. (default)z--no-endnotes-end-doczPGenerate a bullet list table of contents, not an ODF/oowriter table of contents.z--generate-list-tocgenerate_oowriter_toczHGenerate an ODF/oowriter table of contents, not a bullet list. (default)z--generate-oowriter-toczSpecify the contents of an custom header line. See odf_odt writer documentation for details about special field character sequences.z--custom-odt-headerrr custom_headerzSpecify the contents of an custom footer line. See odf_odt writer documentation for details about special field character sequences.z--custom-odt-footer custom_footeroutput_encoding_error_handlerxmlcharrefreplace)stylesheet_pathzodf_odt writer)r c\tj|t|_dSr)r rr ODFTranslatortranslator_classr&s rrzWriter.__init__s&%%% -r c`|jj|_||j|_|j|j|j|j|j||j d|_ dS)Nwhole) documentsettingsrvisitorretrieve_styles EXTENSION walkabout add_doc_titleassemble_my_partspartsoutputr&s r translatezWriter.translates . ,,T];;  $$T^444  --- ""$$$    j) r ctj|tj}t j|dt j}||d|j t j |j }||d|| }||d||}||d||}d}d}|j jrD|j jdd }|d }|d }|d dD]T}t)|d kr*|r|}nt)|d krnU| t/j|} n#t2$r|} YnwxYw| d} t)| d kr#| d d } | d }||jjd||j ||\} } } | rt?j | }||d||!||"||#|$d |%} |#| |j&d<|jj'j(|j&d<tRj*|j&d<dS)zEAssemble the `self.parts` dictionary. Extend in subclasses. wmimetype) compress_type content.xmlzMETA-INF/manifest.xmlmeta.xmlN_-rr.zinvalid language-region. Could not find region with locale.normalize(). Please specify both language and region (ll-RR). Examples: es-MX (Spanish, Mexico), en-AU (English, Australia). styles.xmlrrfversion)+r rassemble_partstempfileNamedTemporaryFilezipfileZipFile ZIP_DEFLATED write_zip_str MIME_TYPE ZIP_STOREDrcontent_astextcreate_manifest create_metaget_stylesheet language_codertsplitlowerlenisalphaupperlocale normalize NameErrorrreporterwarningupdate_stylesheetget_dom_stylesheetetreetostringstore_embedded_filescopy_from_stylesheetriseekreadrroutput_encodingdocutils __version__)rfzfilecontentrlr region_code language_idssubtagrcodeupdatednew_dom_styles updated_noders rrzWriter.assemble_my_partssY %%d+++  ' ) )3(<==  :t~!,  . . .,--// 5-999  ! ! # # 5"92>>>      5*b111  " "   < % 9<5==c3GGL'--c22L(O1133M&qrr*  v;;!##(8(8#"(,,..KE[[A%%E&"*",];;EE ***)EEE* C((u::>>!!HNN3//E"'(K&M*228999150F0F L + + - -}k1K1K-  0//B 5,333 !!%((( !!%(((  q   # 7!%!7!G : ( 4 9sG,, G;:G;c"d}t}|||d}|td|d}|std|D]}|jd} | dks| d kr|d } | td |+|| jd <|| jd <d}|| |+|| jd<|| jd<d}|| |||fS)z@Update xml style sheet element with language and region/country.FNz8{urn:oasis:names:tc:opendocument:xmlns:office:1.0}stylesz5Cannot find 'styles' element in styles.odt/styles.xmlz>{urn:oasis:names:tc:opendocument:xmlns:style:1.0}default-stylez1Cannot find 'default-style' element in styles.xmlz7{urn:oasis:names:tc:opendocument:xmlns:style:1.0}family paragraphgraphicz@{urn:oasis:names:tc:opendocument:xmlns:style:1.0}text-propertiesz3Cannot find 'text-properties' element in styles.xmlzE{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}languagezA{urn:oasis:names:tc:opendocument:xmlns:style:1.0}language-complexTzD{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}countryz@{urn:oasis:names:tc:opendocument:xmlns:style:1.0}country-complex)setfind RuntimeErrorfindallrgetadd) rstylesheet_rootrrrmodified_nodesn1n2_nodesnodefamilyn3s rrzWriter.update_stylesheetTs  $ (? %%Bz"KMMMzz !!H -",---! / /[((Fi,?,?*++Bz*4555%0AN => =J 9:#'&**2...".@K <= >#1 8 8 FK~ 8 FK0000 8 8 8 &...-3VV688888 8  8 8s<-A,+A,c|jj}tj|d}|d}||S)z. modeled after get_stylesheet r settings.xml)rrrrrri)r stylespathrrls r get_settingszWriter.get_settingssB]-  C00 ZZ ' '  r c4|jS)zXGet the stylesheet from the visitor. Ask the visitor to setup the page. )r setup_pager&s rrzWriter.get_stylesheets|&&(((r cz|jj}tj|d}|d}||d||}|D]B}|dr+||}|||C| dS)zLCopy images, settings, etc from the stylesheet doc into target doc. r#r$z Pictures/N) rrrrrrnamelist startswithrri)r outzipfiler% inzipfilerlr*rimageobjs rrzWriter.copy_from_stylesheets]- OJ44 ^^N + + :~r:::%%'' 4 4D{++ 4$>>$//##D(333r cdSrr+r&s rrzWriter.assemble_parts r ctdtt}tj|}t |d|jddtt |ddddtt |ddddtt |ddd dtt |ddd dtt|}tj |}| d S) Nzmanifest:manifestrrSzmanifest:file-entry/)zmanifest:media-typezmanifest:full-pathztext/xmlrrr$rz ) rTMANIFEST_NAMESPACE_ATTRIBMANIFEST_NAMESPACE_DICTrrrXrMANNSDrmr parseString toprettyxml)rrootdocrls rrzWriter.create_manifests_ ,*    %%4.#'>"%8 8      4.#-"/8 8      4.#-".8 8      4.#-"08 8      4.#-",8 8     c]]!"%%t$$$r cftdtt}tj|}t |dt }t |dt }dt|_tj dd}t |d t }||_tj d tj}t |d t }||_t |d t }||_t |d t }||_t |dt }d|_t |dt }d|_t |dt }d|_|j}t |dt }|r||_nd|_|jD]\}}|dkr9t'jd|} | D] } t |dt }| |_!D|dkrt |dt }||_i|dkrt |dt }||_t |dd|it }||_t+|}|S)Nzoffice:document-metar2z office:metarSzmeta:generatorzDocutils/rst2odf.py/USERrrzmeta:initial-creatorz%Y-%m-%dT%H:%M:%Szmeta:creation-date dc:creatorzdc:datez dc:languagezen-USzmeta:editing-cycles1zmeta:editing-durationPT00M01Szdc:titlez [no title]keywordsz, *z meta:keyword descriptionzdc:descriptionsubjectz dc:subjectzmeta:user-definedz meta:name)rTMETA_NAMESPACE_ATTRIBMETA_NAMESPACE_DICTrrrXMETNSDVERSIONr@osenvironr rstrftimerr get_title get_meta_dictr\rerrm) rr9r:el1rls2titlepropvaluerAkeywords rrzWriter.create_metas "(&    %%$ f===/???/6w9 Z^^FB ' '5fEEE ].0@0@ A A3FCCC|F;;;y888}V<<<4VDDD6vFFF &&((z&999  $CHH#CH<5577==?? ! !KD%z!!8E511'''G$T>&IIIC&CHH'&& '7GGG "" |FCCC  ':)4d(;FLLL  c]] r )(r(r)r*rr supporteddefault_stylesheetr relative_pathrHpathjoingetcwddirname__file__default_stylesheet_pathdefault_templatedefault_template_pathr validate_booleanvalidate_nonnegative_int settings_specsettings_defaultsrelative_path_settingsconfig_sectionconfig_section_dependenciesrrrrrrrrr&rrrrrr+r rrris}9III'!I-1e1  YRY[['**  RW__X..0BCCEE&/E/  YRY[['**  RW__X..0@AACC   "9: 6(  )%%H% '0++!*3!)!:<<  =1-.!+3!)!:<< = !+, !)!BDD E ?,-!*5!)!:<< = .+,!+5!)!:<< =7$% *-!)!:<< = 3 ! +-!)!:<< = !"!**!)!:<< = /!+*!)!:<< = %%&!*.!)!:<< =0()!+.!)!:<< =5&' +3!)!:<< =+*+ *3!)!:<< =;''+//  0 ;''+//  0]t xMv ()<&N"....***C5C5C5J080808f5<4H%%%% 8 8 8)))     %%%>44444r rc`eZdZdZdZdZdZdZdZdZ dZ d Z dd Z d Z d ZdZdZdZeed\ZZZejdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$ddZ%dd Z&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:d5Z;d6Zd9Z?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEd@ZFdAZGdBZHdCZIdDZJdEZKdFZLdGZMdHZNdIZOdJZPdKZQdLZRdMZSdNZTdOZUdPZVdQZWdRZXdSZYdTZZdUZ[dVZ\dWZ]dXZ^dYZ_dZZ`d[Zad\Zbd]Zcd^Zdd_Zed`ZfdaZgdbZhdcZiddZjdeZkdfZldgZmdhZndiZodjZpdkZqdlZrdmZsdnZtdoZudpZvdqZwdrZxdsZydtZzgduZ{dvZ|dwZ}dxZ~dyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZ ddZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZeZeZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZddZdZdZdZdZdZdZd„ZdÄZdĄZdńZdƄZdDŽZdȄZdɄZdʄZd˄Zd̄Zd̈́Zd΄ZdτZdЄZdфZd҄ZdӄZddՄZdքZddׄZd؄ZdلZdڄZdۄZd܄Zd݄ZdބZd߄ZdZdZdZdZdZdZdZeZdZeZdZeZdZeZdZeZdZeZdZeZdZeZdZeZddZdZdZdZdZdZdZdZdZdZdZdS)r)[ attribution blockindent blockquoteblockquote-bulletitemblockquote-bulletlistblockquote-enumitemblockquote-enumlist bulletitem bulletlistcaptionlegendcenteredtextbody codeblockcodeblock-indentedzcodeblock-classnamezcodeblock-commentzcodeblock-functionnamezcodeblock-keywordzcodeblock-namezcodeblock-numberzcodeblock-operatorzcodeblock-stringemphasisenumitemenumlistepigraphepigraph-bulletitemepigraph-bulletlistepigraph-enumitemepigraph-enumlistfooterfootnotecitationheader highlightshighlights-bulletitemhighlights-bulletlisthighlights-enumitemhighlights-enumlisthorizontalline inlineliteral quotationrubricstrong table-titletextbody tocbulletlist tocenumlistrPsubtitleheading1heading2heading3heading4heading5heading6heading7zadmon-attention-hdrzadmon-attention-bodyzadmon-caution-hdrzadmon-caution-bodyzadmon-danger-hdrzadmon-danger-bodyzadmon-error-hdrzadmon-error-bodyzadmon-generic-hdrzadmon-generic-bodyzadmon-hint-hdrzadmon-hint-bodyzadmon-important-hdrzadmon-important-bodyzadmon-note-hdrzadmon-note-bodyz admon-tip-hdrzadmon-tip-bodyzadmon-warning-hdrzadmon-warning-body tableoptionztableoption.%cztableoption.%c%dzTable%dz Table%d.%cz Table%d.%c%d lineblock1 lineblock2 lineblock3 lineblock4 lineblock5 lineblock6image figureframectj|||j|_|jj|_t j|j|j|_i|_ |jj r~t}| |jj | dD];\}}||jvr#|jjd|d||j |<i|_?d|_@d|_Ad|_Bd|_Cd|_Dd|_Ed|_Fd|_Gd|_Hg|_IdS)NFormatszStyle "z#" is not a style used by odtwriter.rzoffice:document-contentr)elementzoffice:scriptszoffice:font-face-declszoffice:automatic-stylesz office:bodyrArFpythonrr)Jr GenericNodeVisitorrrrr get_languagerlanguage format_mapodf_config_filerrr\ used_stylesrr section_level section_countrTCONTENT_NAMESPACE_ATTRIBrr content_treecurrent_elementrXautomatic_stylesgenerate_content_elementbody_text_elementrststyleparagraph_style_stacklist_style_stack table_countru column_count trace_leveloptiontablestyles_generated field_name field_elementrP image_countimage_style_count image_dictembedded_file_listsyntaxhighlightingsyntaxhighlight_lexerheader_contentfooter_content in_header in_footer blockstylein_table_of_contentstable_of_content_index_body list_leveldef_list_levelfootnote_ref_dict footnote_listfootnote_chars_idxfootnote_level pending_ids in_paragraphfound_doc_titlebumped_list_level_stack meta_dictline_block_levelline_indent_level citation_id style_indexstr_stylesheetstr_stylesheetcontentdom_stylesheet table_styles in_citationinline_style_count_stack)rrparserrformatr9rWs rrzODFTranslator.__init__Os  ))$999 ) !]8!.      = ( 3!^^F KK 5 6 6 6$*LL$;$; 3 3 &4#333M*222$HH()))-3)) %+   "-d;;;#4)***41222 7 8 8 " m , ,  * *2 . .!!#&*mmJ&?&?%B" "HHqL+0(! !""$"#%-"  $)!+/(!#"#!$')$ !!" %'""  )+%%%r c|jSr)rr&s rget_str_stylesheetz ODFTranslator.get_str_stylesheet ""r cd}|jj}tj|d}|dkr?t |dd5}|}dddn #1swxYwYnp||krTtj|d}|d}|d}| ntd |d |d ||_ ||_ tj|j |_tj|j |_|||_dS) z|Retrieve the stylesheet from either a .xml file or from a .odt (zip) file. Return the content as a string. Nrz.xmlr#utf-8rerrzstylesheet path (z ) must be z or .xml file)rrrHrWsplitextopenrrrrirrrr fromstringrdom_stylesheetcontentextract_table_stylesr)r extensionrOr%ext stylesfilerlrs rrzODFTranslator.retrieve_styless]- gz**1- &==j#888 'J__&& ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' I  OJ44EL))BM**B KKMMMM,.8jj))) EFF F %'"#.t/BCC%*%5  &&(&(" 55b99s A--A14A1c,tj|}i}|dtdd}|D]U}|dtdd}|dd}|dtdd}|tr||} | t} | ||<|d kr[|dtdd } | dtd d d } | | dkr| | _  |dkrD|dtdd} | | | } | | | _ W|S)N{r7z}automatic-stylesr=}namerrz}familyr?z}table-propertiesr2}zbackground-colornone table-cellz}table-cell-properties) rrrCNSDr rr+TABLESTYLEPREFIXrzr| get_propertyr,) r styles_strr9r auto_styles stylenoder tablenamer tablestyle propertiesrr,s rrz"ODFTranslator.extract_table_styless ++ iii&*8nnn 799 $ 7 7I===tG}}}!?@@D 3*I]]]4===#CDDF/00 7)--i88 %!+J.8L+W$$!*26w---B"D"DJ)~~~$(JJJ0B0BE G GH+F0B0B5= 2|++!*7;G}}}G"I"IJ!-!%!2!2:!>!>!-06J-r cd}tD]4}|dtdd|}| |dkr|cS5|S)Nrr2rr)TABLEPROPERTYNAMESr r)rrr, propertynames rrzODFTranslator.get_propertysW.  L]]]tDzzz<<#JKKF!f&6&6  r c4|jj}|rV||_|jsHtdd|di}||_|jd|||j}|| |dSdS)Ntext:ptext:style-namerPrr) rrPrrTrr@rinsertfind_first_text_pattach_page_style)rr@rWs rrzODFTranslator.add_doc_titles}"  5DJ' 5X%t}}W'='=/&--a444  # #D$: ; ; >  " "2 & & & & & >r cv|jdks |jdkr|S|D]}||}||cSdS)zHSearch the generated doc and return the first element. rtext:hN)rr)rrWchildrNs rrzODFTranslator.find_first_text_ps\ 6X  8!3!3I  ,,U33?JJJ#4r c|d}d}t|jd|dddt}|r|d||d|d S) zAttach the default page style. Create an automatic-style that refers to the current style of this element and that refers to the default page style. rP1003 style:stylezrststyle-pagedefaultr) style:namezstyle:master-page-name style:familyr2style:parent-style-nameN)r rXrSNSDr)rrW current_style style_namerNs rrzODFTranslator.attach_page_styles 011    !=(*@ +::   > GG-} = = =  *-----r r+cH||z}|j|d|zS)z Returns the style name to use for the given style. If `parameters` is given `name` must contain a matching number of ``%`` and is used as a format expression with `parameters` as the value. z rststyle-%s)rr )rr parametersname1s rrzODFTranslator.rststyles+z!""5-%*?@@@r c"t|dS)Nz office:text)rX)rr9s rrz&ODFTranslator.generate_content_elements$ ...r c,||jt|jdks0t|jdks|jjs |jjr||jtj |jSNr) setup_paperrrrrrrradd_header_footerrrr&s rr(zODFTranslator.setup_pages ,--- # $ $q ( (4&''!++}*,}*,  " "4#6 7 7 7~d1222r c|jSr)rr&s rrz ODFTranslator.get_dom_stylesheet%rr cB tjdtj}d|D\nF#tjt t f$r'|jj dd\YnwxYwfd|dS)N) paperconfz-s)stderrc34K|]}t|VdSr)float).0ss r z,ODFTranslator.setup_paper..,s(99E!HH999999r z-Cannot use `paperconf`, defaulting to Letter.)idic|jdtdzkrdtdz|jvrdz|jdtdz<dz|jdtdz<ddzzx|jdtdz<|jd tdz<ddzzx|jd tdz<|jd tdz<dS|D] }|dS) Nz{%s}page-layout-propertiesr=z{%s}page-widthr2z%.3fptz{%s}page-height皙?z{%s}margin-leftz{%s}margin-rightz{%s}margin-topz{%s}margin-bottom)rrr)rWsubelhrwalks rr(z'ODFTranslator.setup_paper..walk2sv5W EEE$tDz1BB;Ca< *T$Z78Q'( *T$Z78I1DJ>???   EDKKKK  r ) subprocess check_outputSTDOUTrCalledProcessErrorFileNotFoundError ValueErrorrrinfo)rroot_el dimensionsr'rr(s @@@rrzODFTranslator.setup_paper(s #01D8B8IKKKJ99j&6&6&8&8999DAqq-/@*M    M " ' '? A A ADAqqq   W sAAAB  B cH|dtdz}dtd}||}|dSdtdd}||}d}dtdd}|d}|D]}|||kr|}n |dS|} |js |jjrt| d tt } |jD]J}td t } |d |j | <| |K|jjr"|| |jjd ||js |jjrt| dtt } |jD]J}td t } |d|j | <| |K|jjr&|| |jjd|dSdSdS)Nz{%s}automatic-stylesr7rz}master-stylesr=z }master-pager pagedefaultz style:headerr2rr<rz style:footerr})rr NAME_SPACE_1r rr rrrrXSTYLES_NAMESPACE_ATTRIBSTYLES_NAMESPACE_DICTrZrrVcreate_custom_headfootrr) rr0rrW master_elmaster_el_container target_attrib target_namerWrNel2attrkeys rrzODFTranslator.add_header_footerBs"<< "T(^ 355&2ll5LL&&   F $(MMM4'//55 &*7mmm6 mmM22 %  Bvvm$$ 33 4   F   M$-"= M^.,C )   !24@@@%)]]8%<%< '" 2}* M++M/;KMMM   M$-"= M^.,C )   !24@@@%)]]8%<%< '" 2}* M++M/;KMMMMM M M M Mr z%(..?)%ct|dd||i}d}||}|D]}|dtjkrc|ddvrd|dd}t ||||d||} | d|dd}t || }{||d|_|d|_dS) Nrrrrr)pPt1t2t3t4d1d2d3d4d5r"tazbad field spec: %%) rXrsplit_field_specifiers_iterr code_fieldrmake_field_elementr@tail) rr#r@rrr field_iteritemmsgrNs rr7z$ODFTranslator.create_custom_headfootus$FH t}}Z886    55d;;  3 3DAw-2227#'''' 7;1ggg@C&s+++--GZ)9;;;;6:1ggg@C&s+++&)OO"*"&q'FKK+/7O((+ 3 3r c |dkrt|dddi}n|dkrt|di}n|dkr|xjd z c_t|d ||d d |jzd }t|dd |jztdtdd}t|dddi}t|d}d|_t|dddi}n|dkr|xjd z c_t|d ||d d |jzd }t|dd |jztdtdd}t|dddi}t|d}d|_t|dddi}t|d}d|_t|dddi}n|dkr|xjd z c_t|d ||d d |jzd }t|dd |jztdtdd}t|dddi}t|d}d|_t|dddi}t|d}d|_t|d}n|dkr|xjd z c_t|d ||d d |jzd }t|dd |jztdtdd}t|dddi}t|d}d|_t|dddi}t|d}d|_t|dddi}t|d}d|_t|d}n|dkr|xjd z c_t|d||d |jzd!}t|d"d |jzd tdtdd#}t|d$ddi}t|d}d%|_t|d&ddi}t|d}d%|_t|d'}n|d(kr|xjd z c_t|d||d |jzd!}t|d"d |jzd tdtdd#}t|d$ddi}t|d}d%|_t|d&ddi}t|d}d%|_t|d'ddi}n)|d)kr|xjd z c_t|d||d |jzd!}t|d"d |jzd tdtdd#}t|d$d*d i}t|d}d|_t|d&i}t|d}d+|_t|d'ddi}nD|d,kr|xjd z c_t|d||d |jzd!}t|d"d |jzd tdtdd#}t|d$d dd-}t|d}d|_t|d&i}t|d}d+|_t|d'ddi}n^|d.kr|xjd z c_t|d||d |jzd!}t|d"d |jztdtdd}t|d'ddi}t|d}d/|_t|d$ddi}t|d}d/|_t|d&ddi}ny|d0kr(t|d1d2||i}nK|d3kr(t|d4d2||i}n|d5krt|d6d7d8i}nd}|S)9Nr@ztext:page-numberztext:select-pagecurrentrrAztext:page-countrBrz text:timetruezrst-time-style-%d)r text:fixedstyle:data-style-nameznumber:time-styler6r=)r rHrKz number:hours number:stylelongz number:text:znumber:minutesrCznumber:secondsrD z number:am-pmrErFz text:datezrst-date-style-%d)rrYznumber:date-style)r znumber:automatic-orderrHrKz number:monthr3z number:dayz number:yearrGrHnumber:textualz, rI)r^rZrJrr"z text:subjectrrKz text:titlerLztext:author-namerXfalse)rXrrrr@)rr#r@rrrNr<el3s rrPz ODFTranslator.make_field_elements 3;;V%7"IACCS[[V%6@CCT\\    !  V[#'==#<#<$'$*:: ::C -/B1D4DD $X#G}LLC S.:CS-00CCHS"2<CCT\\    !  V[#'==#<#<$'$*:: ::C -/B1D4DD $X#G}LLC S.:CS-00CCHS"2<CS-00CCHS"2<CCT\\    !  V[#'==#<#<$'$*:: ::C -/B1D4DD $X#G}LLC S.:CS-00CCHS"2<CS-00CCHS.11CC T\\    !  V[#'==#<#<$'$*:: ::C -/B1D4DD $X#G}LLC S.:CS-00CCHS"2<CS-00CCHS"2<CS-00CCHS.11CC T\\    !  V[#'==#<#<'$*::::C -/B1D4DD*0 $X#G} LLC S.:CS-00CCHS,8CS-00CCHS-00CC T\\    !  V[#'==#<#<'$*::::C -/B1D4DD*0 $X#G} LLC S.:CS-00CCHS,8CS-00CCHS-9CCT\\    !  V[#'==#<#<'$*::::C -/B1D4DD*0 $X#G} LLC S. &:CS-00CCHS,r:::CS-00CCHS-9CCT\\    !  V[#'==#<#<'$*::::C -/B1D4DD*0 $X#G} LLC S."( &::CS-00CCHS,r:::CS-00CCHS-9CCT\\    !  V[#'==#<#<'$*::::C -/B1D4DD $X#G}LLC S-9CS-00CCHS.:CS-00CCHS,8CCS[[V^!4==#<#<=CCS[[V\!4==#<#<;CCS[[V%7gACCC r c#hKd} tj||}|rj|}||krtj|||fVtj|dfV|}nn||d}|rtj|fVdSdS)NrTr)r field_patsearchstart code_textrOgroupend)rr@pos1mopos2trailings rrNz)ODFTranslator.split_field_specifiers_iters (//d;;B xxzz$;;'14T ?BBBB#. ;;;;vvxx ;  4)83 3 3 3 3 3 4 4r cz|j}tj|}t |Sr)rgetrootrrrm)rr9rjs rastextzODFTranslator.astexts2 ((**  t $ $||r c*|Sr)rnr&s rrzODFTranslator.content_astexts{{}}r c||_dSrrP)rrPs r set_titlezODFTranslator.set_titlerr c|jSrrqr&s rrKzODFTranslator.get_titlerr c||_dSrr)rrs rset_embedded_file_listz$ODFTranslator.set_embedded_file_lists"4r c|jSrrur&s rrz$ODFTranslator.get_embedded_file_lists &&r c|jSr)rr&s rrLzODFTranslator.get_meta_dicts ~r c|jD]u\}}|jdg}d}|D]N}|j|}|.|r,d}t j|}||Nt|dkr|d}|j} tdt} || d} | d} td t} | |_ |j j rd } nd } |jtd t} | |j| <td t} | |j| <tdt} d|j| <| |_PwdS)NbackrefsTFrtext:idr<zfootnote-errorrrz text:note-refendnoter~text:note-class text:ref-nametext:reference-formatpage)r attributesr rcopydeepcopyrVrr@rZrrrrrclear)rrrNrzfirstrefr<r`r ref1 attribkeyid1r note_classs rprocess_footnoteszODFTranslator.process_footnotess+ , ,ID#**:r::HE , ,,0055?, %"mC00 3s88a<<$'FE#(:D(.y(F(F(FI"%'')5E"F"FC"{&("("F"F"FC&)CG#}=8-6 -7 J,,...(./@(N(N(NI4>CJy1(.t(L(L(LI47CJy1(. 7)F)F)FI4:CJy1'+CH; , , ,r Nc6||j}t|||Sr)rrX)rrrr#s r append_childzODFTranslator.append_childs! >)F&#v...r c|dd||i}|||||_|S)Nrrr)rrappend_pending_idsr@)rr=r@results rappend_pzODFTranslator.append_psX""8 t}}U3355"66 '''  FK r ch|jjr|jD]}t|dd|ig|_dS)Nztext:reference-mark text:namer)rrrrX)rrWids rrz ODFTranslator.append_pending_idssZ = % && & &24>%&&&&&r c||_dSr)r)rrWs rset_current_elementz!ODFTranslator.set_current_elements!r cB|j|_dSr)rr'r&s r set_to_parentzODFTranslator.set_to_parents#3==??r c|jj|d}|d}t|dd|di}||_|dS)Nr\r text:spanrrrrhrlabelsrrXrr@rrlabelrWrNs rgenerate_labeled_blockz$ODFTranslator.generate_labeled_blocksv-e4447 ]]: & &  %t}}X'>'>?AAA}}]+++r c|jj|d}|d}t|dd|di}||_||_|S)Nr\rrrrr)rrrrXrr@rnrQrs rgenerate_labeled_linez#ODFTranslator.generate_labeled_linesx-e4447 ]]: & &  %t}}X'>'>?AAA;;== r c.|ddS)N r])rt)rr@s rencodezODFTranslator.encodes||D#&&&r cp||tj||dS)z9Override to catch basic attributes which many nodes have.N)handle_basic_attsr rdispatch_visitrrs rrzODFTranslator.dispatch_visits5 t$$$  //d;;;;;r c~t|tjr |dr|xj|dz c_dSdSdS)Nids) isinstancer rTrrs rrzODFTranslator.handle_basic_attssS dEM * * ,tE{ ,   U +     , , , ,r cT|jjd|jdS)Nzmissing visit_rrrtagnamers r default_visitzODFTranslator.default_visits+ &&&T\\'LMMMMMr cT|jjd|jdS)Nzmissing depart_rrs rdefault_departurezODFTranslator.default_departures+ &&&dll'MNNNNNr ct|jtjjrdS|}t |jdkrC|jdjr|jdxj|z c_dS||jd_dS|jj r|jxj |z c_ dS||j_ dS)Nrr) rr#rr literal_blockrnrrrQr@)rrr@s r visit_TextzODFTranslator.visit_Text s dk8>#? @ @  F{{}} t# $ $q ( (#B', 5$R(--5----04$R(---#( 1$))T1)))),0$)))r cdSrr+rs r depart_TextzODFTranslator.depart_Text2r0r c\||d}||dS)NaddressrrrrrWs r visit_addresszODFTranslator.visit_address91  ( (y 9 9   $$$$$r c.|dSrrrs rdepart_addresszODFTranslator.depart_address= r ct|jtjr|d}n||d}||dS)Nrhauthor)rr#r authorsrrrrs r visit_authorzODFTranslator.visit_author@sZ dk5= 1 1 =}--BB,,T8<'>?AAAr cdSrr+rs rdepart_authorszODFTranslator.depart_authorsRr0r c\||d}||dS)Ncontactrrs r visit_contactzODFTranslator.visit_contactUrr c.|dSrrrs rdepart_contactzODFTranslator.depart_contactYrr c\||d}||dS)N copyrightrrs rvisit_copyrightzODFTranslator.visit_copyright\s1  ( ({ ; ;   $$$$$r c.|dSrrrs rdepart_copyrightzODFTranslator.depart_copyright`rr c2||ddS)Ndaterrs r visit_datezODFTranslator.visit_datecs ""400000r cdSrr+rs r depart_datezODFTranslator.depart_datefr0r c\||d}||dS)N organizationrrs rvisit_organizationz ODFTranslator.visit_organizationis1  ( (~ > >   $$$$$r c.|dSrrrs rdepart_organizationz!ODFTranslator.depart_organizationmrr c\||d}||dS)Nstatusrrs r visit_statuszODFTranslator.visit_statusps1  ( (x 8 8   $$$$$r c.|dSrrrs r depart_statuszODFTranslator.depart_statustrr c2||ddS)Nrevisionrrs rvisit_revisionzODFTranslator.visit_revisionws ""444444r cdSrr+rs rdepart_revisionzODFTranslator.depart_revisionzr0r c2||ddS)Nrrrs r visit_versionzODFTranslator.visit_version}s ""433333r cdSrr+rs rdepart_versionzODFTranslator.depart_version r cV|d|dS)Nrg)rrnrs rvisit_attributionzODFTranslator.visit_attributions$ mT[[]]33333r cdSrr+rs rdepart_attributionz ODFTranslator.depart_attributionr0r cd|jdvrH|j|d|d|_nd|jdvrH|j|d|d|_nG|j|d|d|_|xjdz c_dS)Nrxclassesrrir)rrrVrrrrs rvisit_block_quotezODFTranslator.visit_block_quotes 3 3 3  & - -dmmJ.G.G H H H"mmJ77DOO T_Y7 7 7  & - -dmmL.I.I J J J"mmL99DOO  & - -dmmL.I.I J J J"mmL99DO !#r cf|jd|_|xjdzc_dS)Nrrr)rpoprrrs rdepart_block_quotez ODFTranslator.depart_block_quotes8 "&&((( !#r c|xjdz c_|jr|jjrdSd|vrid|jdvrZt |jdd|di}|j |dnYt |jdd|d i}|j |d | |dS|j |d kr[t |jdd|d i}|j |d nI|j |dkrZt |jdd|di}|j |dn|j |dkrZt |jdd|di}|j |dnYt |jdd|di}|j |d | |dS)Nrrzauto-toc text:listrrrrvrrnrirkrjrrrrxrzryro) rrrrrrXrrrrVrrrs rvisit_bullet_listzODFTranslator.visit_bullet_lists 1  $( )}2 -$$"doi&@@@#D$8+)4==+G+GOB)00z1J1JKKKK#D$8+)4==+I+IOB)00|1L1LMMM((,,,,,$-- "="=== 4k%t}}5L'M'MK%,,MM"9::<<<<DMM,$?$??? 4k%t}}5L'M'MK%,,MM"9::<<<<DMM*$=$=== 4k%t}}5J'K'KK%,,MM"788::::  4k%t}}\'B'BK%,,T]]<-H-HIII  $ $R ( ( ( ( (r c|jr;|jjrn[||jn-||j|xjdzc_dSNr)rrrrrrrrs rdepart_bullet_listz ODFTranslator.depart_bullet_lists  $ (}2 ,""$$$%))++++     ! % % ' ' ' 1r c(tjrr SkipChildrenrs r visit_captionzODFTranslator.visit_caption """r cdSrr+rs rdepart_captionzODFTranslator.depart_captionr0r c|d}t|di}t|di}tjdd}||_t|di}||_dS)Nrzoffice:annotationrr>r=rrr)rrXrHrIr r@rn)rrrWrNr<rls r visit_commentzODFTranslator.visit_comments ]]: & &0<<<l2666 Z^^FB ' 'hr222;;==r cdSrr+rs rdepart_commentzODFTranslator.depart_commentr0r cdSrr+rs rvisit_compoundzODFTranslator.visit_compoundrr cdSrr+rs rdepart_compoundzODFTranslator.depart_compoundr0r c|jdd}t|dkr5|j||ddSdSNrr+r)rr rrrVrrrrs rvisit_containerzODFTranslator.visit_containers\$$Y33 v;;??  & - -dmmF1I.F.F G G G G G ?r c|jdd}t|dkr|jdSdSr)rr rrrrs rdepart_containerzODFTranslator.depart_containersJ$$Y33 v;;??  & * * , , , , , ?r cdSrr+rs rvisit_decorationzODFTranslator.visit_decorationr0r cdSrr+rs rdepart_decorationzODFTranslator.depart_decorationr0r cZ|xjdz c_|jdkrtddS)Nrz*max definition list nesting level exceeded)rrrrs rvisit_definition_listz#ODFTranslator.visit_definition_lists@ q  ?Q  <>> >  r c&|xjdzc_dSr)rrs rdepart_definition_listz$ODFTranslator.depart_definition_lists q r cdSrr+rs rvisit_definition_list_itemz(ODFTranslator.visit_definition_list_itemr0r cdSrr+rs rdepart_definition_list_itemz)ODFTranslator.depart_definition_list_item r0r c|d|jz}||_||t j)Nzdeflist-term-%d)rrrnr@rr rrs r visit_termzODFTranslator.visit_term sN ]],t/BB C C++--   $$$ """r c.|dSrrrs r depart_termzODFTranslator.depart_termrr c|j|d|jz|jt ddS)Nzdeflist-def-%dr)rrVrrrrrs rvisit_definitionzODFTranslator.visit_definitions[ ")) MM*T-@@ A A C C C $++IaLL99999r cj|j|jdSr)rrrrs rdepart_definitionzODFTranslator.depart_definitions2 "&&((( $((*****r ct|jdkrS|jd}t|dd|di}d|d|_dSdS) Nrrrrrurz ())rrrXrrnr@rrrWrNs rvisit_classifierzODFTranslator.visit_classifiers{ t# $ $q ( (%b)BK)4==+D+DEGGGCC#'++----2CHHH ) (r cdSrr+rs rdepart_classifierzODFTranslator.depart_classifier&r0r cdSrr+rs rvisit_documentzODFTranslator.visit_document)r0r c.|dSr)rrs rdepart_documentzODFTranslator.depart_document,s      r c|xjdz c_|xjdz c_|jjrA|dd|jzd|jzd}||dSdSNrz text:sectionz Section%dzSect%d)rrrrrrrrrrs r visit_docinfozODFTranslator.visit_docinfo/s a a = ( )""!,t/A!A'/$2D'D((#B  $ $R ( ( ( ( ( ) )r cj|xjdzc_|jjr|dSdSrrrrrrs rdepart_docinfozODFTranslator.depart_docinfo;E a = ( !     ! !r ct|jdd|di}||dS)NrrrurrXrrrrs rvisit_emphasiszODFTranslator.visit_emphasis@sQ   +%t}}Z'@'@ACCC   $$$$$r c.|dSrrrs rdepart_emphasiszODFTranslator.depart_emphasisFrr c|j}|j|dkrVt|dd|di}|j|dnS|j|dkrUt|dd|di}|j|d n|j|d krUt|dd|d i}|j|d nmd |dd}t|dd||i}|j|d||dS)Nrirrrmrrlrrrrxr|r{z enumlist-enumtypearabicrv)rrrrXrrVr r)rrrNr< liststylenames rvisit_enumerated_listz#ODFTranslator.visit_enumerated_listIs" ?dmmL99 9 9S+!4==1F#G#G7C  ! ( (7L)M)M N N N N _ l ; ; ; ;S+!4==1F#G#G7C  ! ( (7L)M)M N N N N _ j 9 9 9 9S+!4==1D#E#E7C  ! ( (7J)K)K L L L L : .2XXj(-K-K-KNMS+!4==#?#?7C  ! ( (z)B)B C C C   %%%%%r c`||jdSr)rrrrs rdepart_enumerated_listz$ODFTranslator.depart_enumerated_listbs/  !!#####r c|jrp|jjr8|j|d|jfzdS|d}||dS|d}|}t|j dkr|j d}| rq| d|j D]T}t|D]0}|d|}|d|}1U|j|jd||dS)N contents-%dztext:list-itemrrFr)r#)rrrrrVrrrrrrrrrangerr)rrrNr` level_obj level_obj1idxr<s rvisit_list_itemzODFTranslator.visit_list_itemfs  $ *}2 .*11MM-4?2E"EFFHHHHH''(899((-----##$455CC4/00144 8< ((**>((///&*&B>> #()=)=)?)?#@#@>>C"&"3"3K"3"L"LC"&"3"3 0#4#>#>CC>  & - -d.CB.G H H H  $ $S ) ) ) ) )r c0|jr=|jjr|jdS|dSt |jdkr|jd}|rk| d|jD]N}t| D]*}||+O|j|dS)NrrT) rrrrrrrrrrrIr)rrrJrKrLs rdepart_list_itemzODFTranslator.depart_list_items(  $ !}2 %*..00000""$$$$$4/00144 8< ((**1((...&*&B11 #()=)=)?)?#@#@11C ..000 ..00001  & * * , , ,    r cd|_dSNTrrs r visit_headerzODFTranslator.visit_header r cd|_dSNFrRrs r depart_headerzODFTranslator.depart_header r cd|_dSrQrrs r visit_footerzODFTranslator.visit_footerrTr cd|_dSrVrZrs r depart_footerzODFTranslator.depart_footerrXr cdSrr+rs r visit_fieldzODFTranslator.visit_fieldr0r cdSrr+rs r depart_fieldzODFTranslator.depart_fieldr0r cdSrr+rs rvisit_field_listzODFTranslator.visit_field_listr0r cdSrr+rs rdepart_field_listzODFTranslator.depart_field_listr0r c|d}t|dd|di}||_dS)Nrrrrr)rrXrrnr@r+s rvisit_field_namezODFTranslator.visit_field_namesX ]]: & &  %t}}X'>'>?AAA;;==r cdSrr+rs rdepart_field_namezODFTranslator.depart_field_namer0r c`|j|ddS)Nrh)rrVrrs rvisit_field_bodyzODFTranslator.visit_field_bodys+ "))$-- *F*FGGGGGr c8|jdSrrrrs rdepart_field_bodyzODFTranslator.depart_field_body "&&(((((r cdSrr+rs r visit_figurezODFTranslator.visit_figurer0r cdSrr+rs r depart_figurezODFTranslator.depart_figurer0r c|xjdz c_|j|_td}||_|j||ft |tjj r/|j | ddS|j | ddS)Nrztext:note-bodyrr~) rrsave_footnote_currentrTrrVrrr rrrrrrNs rvisit_footnotezODFTranslator.visit_footnotes q %)%9"&''" !!4+... dHN3 4 4 I  & - -dmmJ.G.G H H H H H  & - -dmmJ.G.G H H H H Hr cp|j|j|_|xjdzc_dSr)rrrurrrs rdepart_footnotezODFTranslator.depart_footnotes< "&&(((#9 q r ) *z**z***z++z+++z##z###z@@z@@@cp|jdkr|jdd}|jd}|d}|jjrd}nd}|d||d }t |jd d }t|tj j r3d | z}t|d d|i }||_ n|dkr@t|d d| i }| |_ nq|dkrk|jtt jkrd|_t j|j} |xjd z c_t|d d| i }| |_ ||j|<tj)Nrrrefidrrr|r~z text:note)r{r}rautorz[%s]ztext:note-citationz text:labelr?rz)rrr rrrstrrrr citation_referencernrXr@rrrfootnote_charsrr) rrrr|rrN note_autorr< footnote_chars rvisit_footnote_referencez&ODFTranslator.visit_footnote_references  ! # #'*BO''00E}}- (& ' ##K#(5#-99#CDO//::;;I$ ABB )!DKKMM1 &: (D$c!! &: $++--D ;;==c!!*c%4/6/666./D+ - <+!- ''1,'' &: -D)),D "2 & """r cdSrr+rs rdepart_footnote_referencez'ODFTranslator.depart_footnote_referencer0r cd|_|jdD] }||_|j|d|jtddS)NTrrhr)rrrrrVrrr)rrrs rvisit_citationzODFTranslator.visit_citationsq/%(  B!D   "))$-- *F*FGGG $++IaLL99999r cd|_|j|jd|_dSrV)rrrrrrs rdepart_citationzODFTranslator.depart_citation sB "&&((( $((*** r c|jjrF|jd}|d|dd}d|_||dS|jjd|j_dS|jxjdz c_dS)Nr|text:reference-refr@r~rr[)rrrrr@rr)rrrrWs rvisit_citation_referencez&ODFTranslator.visit_citation_references = % -)B""#7)+)/AA"BBG  $ $R ( ( ( ( (  ! & .(+D % % %  % % , % % % %r ct|jxjdz c_|jjr|dSdS)N])rr@rrrrs rdepart_citation_referencez'ODFTranslator.depart_citation_referencesH !!S(!! = % !     ! !r cpt|jtjjrtj|jw|d}|||j j r8t|d}d|_ | dd|jidSd|_ dSdS)Nrrrztext:reference-mark-startrr)rr#rr r~rrrrrrrXr@r)rrrWel0s r visit_labelzODFTranslator.visit_label#s dk8>#: ; ; $&& &   )z**B  $ $R ( ( (})  [11!!"=)9)9G!* )r cFt|jtjjrdS|js|jjr<|dd|jit|j d}d|_ n|j xj dz c_ | dSdS)Nztext:reference-mark-endrrrr) rr#rr r~rrrrrXrr@r)rrrs r depart_labelzODFTranslator.depart_label2s dk8>#: ; ; ! D   )}) 1!!";)9)9E!!!5{CC$))S0))    * )r cdSrr+rs rvisit_generatedzODFTranslator.visit_generated@r0r cdSrr+rs rdepart_generatedzODFTranslator.depart_generatedCr0r cHtj|rdSdS)Nrr)rHrWexists)rrWs rcheck_file_existszODFTranslator.check_file_existsFs" 7>>$   11r cdd|jvr|jd}|ds|ds|tjsLt j|\}}|r3tj|}|r|tj|}||s%|j j d|ddSndS||j vr|j |\}}nk|xj dz c_ tj|d}d|j |fz}|ds|dr t|}|} |t%jdd } | | | | j} | }n3#t,$r&|j j d |dYnwxYw||f} n!tj||f} |j| ||f|j |<|jr|j} n,t9|jd d |di} | }t=|jt@j!j"rH|#||||\}}}}i}|$|||||\}}| ||_%dSdS|$||||dS)Nurizhttp:zhttps:zCannot find image file rrzPictures/1%08x%swbF)deletezCan't open image url rrrr)&rr+rHsepr get_source_linerWrZrrrrrrrrrrirrrgrrabspathrrVrrrXrrr#rr figuregenerate_figuregenerate_imagerQ)rrr  docsourcelinerZfilenamer!imgfilerimgfile2 imgfilenamespecrNr<r`el4el5rprel6widths r visit_imagezODFTranslator.visit_imageLs DO # #_U+F%%g.. &2C2CH2M2M ((00L&+&;D&A&AOIt L"$'//)"<"<"L18"&&&&%KF--f55M*2228>ACCCF F T_ $ $$(OF$; !Hkk    !  w}}V,,Q/H,0@(/MMK  )) ?V->->x-H-H ? A%fooG%llnnGMMOOO':4NNNHNN7+++NN$$$"*-K(FF AAAM*2226  # * *4 0 0 0'-{&#8 9 9 @%)%9%9fS&"&" "Cc7F,,fkVJC""#"   fk3 ? ? ? ? ?s0A?G00-H H cdSrr+rs r depart_imagezODFTranslator.depart_imager0r c d}d}||jvr|j|}|} |dr?|dkrtd|d}t |dz }d}n||\}}nK#t$r>}|jj d|d|j|d|d Yd}~nd}~wwxYw||fS) NrMheightz!percentage not allowed for heightz %gY@zInvalid z for image: "z ". Error: "z".) rstripendswithr.rstripr  convert_to_cmrrr)rrattrsizeunitexps rget_image_width_heightz$ODFTranslator.get_image_width_heights, 4? " "?4(D::<#t$r1|jjd|jddYnwxYw|dkr%|jjd|dd}|dz}nd}|S) NscalezInvalid scale for image: ""rzscale out of range (z ), using 1.g{Gz?g?)rintr.rrr)rrrs rget_image_scalezODFTranslator.get_image_scales do % %OG,E 5E  5 5 5 &...000455555 5qyy &...;@55CEEEDLEEE s(8A#"A#cd||}||d\}}||d\}}d}t||jvr|j|\} } tj| d5} | j} | jd|}dddn #1swxYwY t|n#t$r||f}YnwxYwd} ||| td|| d}t|d z}|| d }t|d z}|d kr\|} | d}t|d z}| d }t|d z}| }| |z}| |z|z } | |z}||z}||z}d |z}d |z}||fS) z=Return the image size in centimeters adjusted by image attrs.rr)HrNr#dpiz4image size not fully specified and PIL not installedrrrrMz%.2fcm)rrrrImagerrr/r iter TypeErrorrr get_page_width)rrr rr width_unitrrrrr!imgimg_sizefactor image_width image_height line_widths rget_image_scaled_width_heightz+ODFTranslator.get_image_scaled_width_heightsA$$T** 77gFFz//h??  ?v88$(OF$; !Hk#.. /#8hll5#.. / / / / / / / / / / / / / / / !S  ! ! !Cj !H =FN"JLLL}  e u,~!!v.S  &qk #K0058 '{ $\22U: !0022 + :-<,. %5 F"f}s$ #B99B=B=CC&%C&c|}|d}d}|D]}|d}|d}|d}|||H ||\}}||\}}||\}}n/#t$r"|jjdYnwxYw||z |z }|d}|S)z0Return the document's page width in centimeters.z.//{urn:oasis:names:tc:opendocument:xmlns:style:1.0}page-layout/{urn:oasis:names:tc:opendocument:xmlns:style:1.0}page-layout-propertiesNzG{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}page-widthzH{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}margin-leftzI{urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0}margin-rightz;Stylesheet file contains invalid page width or margin size.g{Gz.@)riterfindr rr.rrr) rr9r rr page_width margin_left margin_rightrs rrzODFTranslator.get_page_widths[&&((  %&&  < > A!%!3!3K!@!@ Q"&"4"4\"B"B aa ' ' ' &..&''''' ',|;EE =E s7AC)C,+C,c d}|||\}}|jjD]!}|jdkr|}"|xjdz c_|fddddd} t |jd| t } d d d d d } t | d| t ddddddddd} t | d| t d|jz} dttz} | d| dd} t |jd| t } i} d} |jj d}|rd|vrd} | rd| d<nd | d<t | d!| t | | dd d"} || d#<t |d$| %}i} t |d&| %}d'| di} t |d(| %}||||fS))NrprextrarCaptionStandard)z style:classrr rr r2z0.0835in0r_)fo:margin-bottom fo:margin-topztext:line-numberztext:number-lineszstyle:paragraph-properties12ptitalicTimes Lucidasans1)z fo:font-sizez fo:font-stylezstyle:font-namezstyle:font-name-complexzstyle:font-size-asianzstyle:font-size-complexzstyle:font-style-asianzstyle:font-style-complexzstyle:text-propertiesrstframestyle%d graphics%drrr rrFrwrapTdynamic style:wraprstyle:graphic-properties)draw:style-name draw:nametext:anchor-type draw:z-index svg:width draw:framerz draw:text-boxrr)rr#childrenrrnrrXrrnextIMAGE_NAME_COUNTERrrr )rrr r!rrprrnode1rrNr draw_namerrr`rrs rrzODFTranslator.generate_figure" s::4HH v[) ) )E} )),,.. !#  & +'+5 F T2M$*4999C%/!+$'%, F s8$T 3 3 3 3!'!)#*+8)/+1*2,4  F s3$T 3 3 3 3&)??  4(:#;#;; %%'+}}]'C'C   .&vdDDD+(,,Y77  v((D  *#,F< #)F< 32  / / / / *" +    ${,vFFFof=== t}}Y77 hv666Cg%%r c\|||\}}|xjdz c_d|jz}|d|dd} t|jd| t } d} d} d|jvr1|jd} | D]}|d vr|} |d vr|} |d d d d ddddddddddd} n|} | | | d<| | | d<d}|jd}|rd|vrd}|rd| d<nd | d<| |rd | d<t| d| t dttz}||dd} t|j tjrd | d!<nd | d!<|| d"<|| d#<t|d$| %} t| d&|d'd(d)d*%| |fS)+Nrrrrrr r2align)leftcenterright)topmiddlebottomrrrzrect(0cm 0cm 0cm 0cm)z0%z100%r_standard)style:vertical-poszstyle:vertical-relzstyle:horizontal-relz style:mirrorzfo:clipzdraw:luminancez draw:contrastzdraw:redz draw:greenz draw:bluez draw:gammazdraw:color-inversionzdraw:image-opacityzdraw:color-modezstyle:horizontal-posr FrrTrrrrr?)rrrzas-charrrz svg:heightrrz draw:imagesimpleembedonLoad) xlink:href xlink:typez xlink:showz xlink:actuate)rrrrXrrrrr  is_in_tablerrrr#r TextElement)rrr r!r frame_attrsrrrrrNhalignvalignrr`rrrs rrzODFTranslator.generate_imagem s::4HH v !#&)?? %%'+}}W'='=   .&vdDDD do % %OG,2244E ! !555 FF777 F  &+&1(3 &2"&!% "!$(/&,#-FF"!F  -3F) *  +1F' (/%%i00  v((D  *#,F< #)F<   D ! ! *#)F< 32  / / / / 4(:#;#;; *"   dk5#4 5 5 5)2F% & &)4F% &#{%|,vFFF3 "-+"!% . .     Ezr cl|j}|r*t|tjjrdS|j}|*dS)NTF)r#rrr entry)rrrs rrzODFTranslator.is_in_table sE  !%!566 tLE !ur ct|jtjjrQ|jd}|dd}||_|j|ddSdS)Nrrrq) rr#rr rrrrVrrvs r visit_legendzODFTranslator.visit_legend ss dk8>#8 9 9 G&r*Ca&)C#&D  & - -dmmH.E.E F F F F F  G Gr ct|jtjjrW|j|||dSdSr)rr#rr rrrrrs r depart_legendzODFTranslator.depart_legend sv dk8>#8 9 9 !  & * * , , ,           ! !r cF|xjdz c_|xjdz c_dSrrrrs rvisit_line_blockzODFTranslator.visit_line_block 0 !# "r cF|xjdzc_|xjdzc_dSrrrs rdepart_line_blockzODFTranslator.depart_line_block rr cd|jz}t|jdd||i}||_dS)Nz lineblock%drrr)rrXrr)rrr=rNs r visit_linezODFTranslator.visit_line sO 66-x!2DMM%4H4H KMMM"r c.|dSrrrs r depart_linezODFTranslator.depart_line rr ct|jdd|di}||dS)Nrrrrr<rs r visit_literalzODFTranslator.visit_literal sQ   +%t}}_'E'EFHHH   $$$$$r c.|dSrrrs rdepart_literalzODFTranslator.depart_literal rr c R|jdd}|rC|j}|D])}t|dd||i}*t |}nt|jd}d}|||j|dS)Nrr+rrrr) rr rrXrrrrrV)rrrrW inline_stylecounts r visit_inlinezODFTranslator.visit_inline s$$Y33  %B & F F K(9(, l(C(C(EFFFKKEED0+>>BE   $$$ %,,U33333r c|j}t|D]}|dSr)rrrIr)rrr*xs r depart_inlinezODFTranslator.depart_inline sJ-1133u ! !A     ! !r cd}t|}|r$|}t|}nBt|}|r&|}t|dz}|S)Nr)SPACES_PATTERNmatchrfr TABS_PATTERN)rrr*matchobjpads r_calculate_code_block_paddingz+ODFTranslator._calculate_code_block_padding s|!''--  %..""CHHEE#))$//H %nn&&C1  r ctj|d}|dvrtdfd t}nt dfd t}tj|||S) NT)stripall)latextexr+c0||Srrrrrs rz8ODFTranslator._add_syntax_highlighting..  dJ//r )escape_functionc0||Srr<r=s rr>z8ODFTranslator._add_syntax_highlighting.. r?r r+)pygmentslexersget_lexer_by_namerrxr highlight)rinsourcerlexerfmtrs` r_add_syntax_highlightingz&ODFTranslator._add_syntax_highlighting s11(T1JJ ' ' ',00000 ,...DD ,00000 ,...D!(E4888r ct|j|}t|j|Sr) FILL_PAT1sub fill_func1 FILL_PAT2 fill_func2)rrs r fill_linezODFTranslator.fill_line# s-}}T_d33}}T_d333r cR|d}dt|fzS)Nrzrfrrr4spacess rrNzODFTranslator.fill_func1' s&""&#f++88r cX|d}dt|dz fzS)Nrz rrSrTs rrPzODFTranslator.fill_func2+ s+""'3v;;?*===r ct|jdkrd|dd}nd|dd}|}tr9|jjr-|dd}|||}nt|}| d}|d d kr|d =d g}g}|D]B}| |}| d d}| |Cd |} || fz} | | | dd |} | d} t!j| } | D]} |j | dS)Nrz%srsrrrrrrzIz zzr)rrrrnrCrrr rJrxrrQrtrVrXrrrr)rrwrapper1r rlineslines1my_linesmy_line my_lines_str my_lines_str2rlrNr s rvisit_literal_blockz!ODFTranslator.visit_literal_block/ s t) * *Q . . . 233337HH /  k****.H  *> *xx H55H2268DDFF!&))F T"" 9??b 23 % %GnnW--Googt44G OOG $ $ $ $+00::  L#33  m$$$ &''' WWV__ YYw  r"" / /E  ' ' . . . . / /r cdSrr+rs rdepart_literal_blockz"ODFTranslator.depart_literal_blockQ r0r cr|jjd|||dS)Nz"math" role not supported base_node)rrrr%rs r visit_mathzODFTranslator.visit_mathX sD &&'B15 ' 7 7 7 4     r c0||dSr)r'rs r depart_mathzODFTranslator.depart_math] s D!!!!!r cr|jjd|||dS)Nz"math" directive not supportedrc)rrrr_rs rvisit_math_blockzODFTranslator.visit_math_block` sD &&'G15 ' 7 7 7   &&&&&r c0||dSr)rars rdepart_math_blockzODFTranslator.depart_math_blocke s !!$'''''r c|jd}|jd}||||j|<dSdSdS)Nrr)rr r)rrrrs r visit_metazODFTranslator.visit_metah sW""6**/%%i00   3#*DN4    3 3r cdSrr+rs r depart_metazODFTranslator.depart_metan r0r c d}|jsad|_t|jd||ddt}t|ddd d d t}t|jd|d |zd ddt}t|dddit}t|jd|d |zdddt}t|dddit}t|jd|d|zdddt}t|ddddd dddt}t|dt}t|jd|d|zdddt}t|ddddt}t|jd|d|zd ddt}t|dddd d dd!t}t|jd|d|zd"ddt}t|ddddd dd!t}|d#||||d$%}t|d&d'|d |zd i%}t|d&d'|d |zdi%}t|d(}t|d)}t|d*|d|zdd+d,%}t|d-d.d/i%}d0|_t|d*|d|zdd+d,%}t|d-d.d/i%}d1|_||dS)2NrTr r?r rr2style:table-propertiesz17.59cmrr) style:width table:alignz style:shadowz%s.%%c)r table-columnstyle:table-column-propertiesstyle:column-widthz4.999cm)Bz12.587cm %s.%%c%%d)rrrstyle:table-cell-properties transparentz0.097cmz0.035cm solid #000000)fo:background-color fo:paddingfo:border-leftfo:border-right fo:border-topfo:border-bottomzstyle:background-imager<)rxr)r}z fo:border)rrr}r~rrr)rxr table:tablez table:nametable:style-namertable:table-columnrtable:table-header-rowstable:table-rowtable:table-cellstringrzoffice:value-typerrTable_20_HeadingOption Description)rrXrrrrr@r)rr table_namerWrNr<r`rs rvisit_option_listzODFTranslator.visit_option_listq sx" /9 K/3D ,D1="mmJ77 'J)J)15777BR!9(% &C(C(15666CD1="mmHz,A7KK .J0J08<>>>BR!@$iJ19=???CD1="mmHz,A7KK .J0J08<>>>BR!@$jJ2:>@@@CD1="mm*,j:: ,J.J.7;<<'4'"9#)!8$; H=H= FJ KKKCS":4HHHCD1="mm*,j:: ,J.J.7;<<'4H6H6>BDDDCD1="mm*,j:: ,J.J.7;<<'"9#)!'$; H=H= FJ KKKC D1="mm*,j:: ,J.J.7;<<'"9#:!'$; H=H= FJ KKKC  }-- 33 $ j 9 96 6   1  :%w!0!0;12221  :%w!0!0;1222677/000 $ j(*!6!6!):+:+,,,h 1034440 $ j(*!6!6!):+:+,,,h 103444    $$$$$r c.|dSrrrs rdepart_option_listz ODFTranslator.depart_option_list rr cZ|d}||dS)Nrrrrs rvisit_option_list_itemz$ODFTranslator.visit_option_list_item s0   0 1 1   $$$$$r c.|dSrrrs rdepart_option_list_itemz%ODFTranslator.depart_option_list_item rr ct|dd|jzdd}||dS)Nrz Table%d.A2rrr)rrrrs rvisit_option_groupz ODFTranslator.visit_option_group sQ   1 ,t/? ?!); ;      $$$$$r c.|dSrrrs rdepart_option_groupz!ODFTranslator.depart_option_group rr cj|dddi}||_dS)NrrTable_20_Contentsr)rrnr@rs r visit_optionzODFTranslator.visit_option s:   x 214 55++--r cdSrr+rs r depart_optionzODFTranslator.depart_option r0r cdSrr+rs rvisit_option_stringz!ODFTranslator.visit_option_string r0r cdSrr+rs rdepart_option_stringz"ODFTranslator.depart_option_string r0r cdSrr+rs rvisit_option_argumentz#ODFTranslator.visit_option_argument r0r cdSrr+rs rdepart_option_argumentz$ODFTranslator.depart_option_argument r0r c|dd|jzdd}t|dddi}||_t j) Nrz Table%d.B2rrrrrr)rrrXrnr@r rr+s rvisit_descriptionzODFTranslator.visit_description sx   1 ,t/? ?!); ;   X 2/4555;;== """r cdSrr+rs rdepart_descriptionz ODFTranslator.depart_description r0r c(d|_|jr|d}nX|jr|d}n;|jd}|dd|i}||||dS)NTrr}rrrr)rrrrrrrr)rrrWrs rvisit_paragraphzODFTranslator.visit_paragraph s  > (x((BB ^ (x((BB3B7J""):6#88B  # #B ' ' '   $$$$$r cd|_||jrL|j|jd|j|jddS|jrL|j|jd|j|jddSdS)NFr) rrrrrVrremoverrrs rdepart_paragraphzODFTranslator.depart_paragraph s!  > B   & &t';B'? @ @ @  ' '(rr)rrrnrXr[rr\rrrrrrrrVr r) rrformats formatlistrawstrattrstr contentstrrrNs r visit_rawzODFTranslator.visit_raw s t & &oh/G J ""((#H#H $%=%C%C%E%E F F#H#H#HHH8?wwI '..w77 *:66w<  D ^  D Dr c|jjrd|vrq|d}|jjr*|dr||}|dd|zdd}||nUd|vr2|jjr%|d}|d d|zd d }n|jj d |j rdt|j d krNt|j dtjjr&||j ddSdSdSdS)Nrefurizmailto:ztext:a%sr )r rrr|rr@rz3References must have "refuri" or "refid" attribute.rr)rrrr+ cloak_mailtorrrrrrrrrrr generatedr)rrhrefrWs rvisit_referencezODFTranslator.visit_reference> s = % K4H~M73 223,,T22D&&x"&+"*99&((,,,,D=-=D**+?)-17II*B  &..IKKK  % *DM""a''4=+X^-EFF( KK a( ) ) ) ) ) * *''''r cV|jjrd|vr|dSdSdS)Nr)rrrrs rdepart_referencezODFTranslator.depart_referenceZ sB = % %4""$$$$$ % %r c|d}|d}|r |d}|r|}t|jdd|i}|}|||_dS)Nrrrrrr)rr rXrrnrr@)rrrrclass1rWr@s r visit_rubriczODFTranslator.visit_rubric_ s]]8,, ((9%%  $QZF $# ,h z@     {{}}++d##r cdSrr+rs r depart_rubriczODFTranslator.depart_rubricn r0r rc|xjdz c_|xjdz c_|jjrA|dd|jzd|jzd}||dSdSr4r5)rrmove_idsrWs r visit_sectionzODFTranslator.visit_sectionq s a a = ( )"">(4+==#+d.@#@;;"B  $ $R ( ( ( ( (  ) )r cj|xjdzc_|jjr|dSdSrr8rs rdepart_sectionzODFTranslator.depart_section{ r:r ct|jdd|di}||dS)Nrrrrr<rs r visit_strongzODFTranslator.visit_strong sN ,k 14==3J3JKMMM   $$$$$r c.|dSrrrs r depart_strongzODFTranslator.depart_strong rr c(tjrrrs rvisit_substitution_definitionz+ODFTranslator.visit_substitution_definition rr cdSrr+rs rdepart_substitution_definitionz,ODFTranslator.depart_substitution_definition r0r cdSrr+rs rvisit_system_messagez"ODFTranslator.visit_system_message r0r cdSrr+rs rdepart_system_messagez#ODFTranslator.depart_system_message r0r c:d}d}|d}|#|D] }|tr|}n!||j|}|p|jjd|dt}|j|}|*|jjd|dt}nMt}|j|}|*|jjd|dt}|S)NrzCan't find table style "z". Using default.z Can't find default table style "z". Using built-in default.) r r+rrrrrTABLENAMEDEFAULTBUILTIN_DEFAULT_TABLE_STYLE)rr table_styler str_classes str_classs rget_table_stylezODFTranslator.get_table_style sc  hhy))  "(   ''(899!*JE  !+// ;;K" &..." &'''. "/33J?? &M*222'JJ*+++#>K)J+// ;;K" &...# &''': r c |xjdz c_||}dtz}t|jd|d|z|jfddt }|jt|dd d d d t n"t|dd d d |jdt t|jd|d|z|jddfddt }|jj }||j }nd|fz}t|dd||||dt d}|j D]#} | j dkr| }n$||d|n t|jd|d|z|jf|d|z|jfd} || ||_d|_dS)Nrz%s%%dr rr?rqr2rrr0inz0.10in)rtrrmargins)rtrrr|ryrrz0.%03dcm solid #000000rzz0.049cmrrPrrrrg)rrrrXrrrr|rtable_border_thicknessr,rrrnrrrcurrent_table_style table_width) rrrrrNr< thickness line_style1rPr rs r visit_tablezODFTranslator.visit_table s A**400 // . --z!D$4#799#G G    & . s4 &!&$, >>        s4(!&$,'2'B >>      . --j(4+;S!*FHH(G G   M8  %,KK2i]BK35#)*( + ? ?      ]  E}'' (   MM- / / / / -}--z!D$4#799 $ z!D$4#7!9!9F F       %%%#& r ctdt}d|jfz}|j}|d}||j|<|dS)Nrsr<%.4finr)rZrrrrr)rrr attribvalrNr<s r depart_tablezODFTranslator.depart_table sY=666  033 &!f ) 9 r c4tddz |_dS)Nrr)rurrs r visit_tgroupzODFTranslator.visit_tgroup sHHqLr cdSrr+rs r depart_tgroupzODFTranslator.depart_tgroup r0r cv|xjdz c_|dtz|jt |jf}|ddz }t |jd|ddt}t |d d d |zit|d d |i|xj |z c_ dS)Nrz %s%%d.%%scolwidthg(@r rurqr2rvrwrrrr) rrrrchrrXrrrr)rr colspec_namerrNs r visit_colspeczODFTranslator.visit_colspec s Q}} * *  s4#455 8   #d*. &*G G  37/H1DE     ."4l!E  G G G H$r cdSrr+rs rdepart_colspeczODFTranslator.depart_colspec r0r c|d}||d|_|jddS)NrTr)rrin_theadrrVrs r visit_theadzODFTranslator.visit_thead sO   8 9 9   $$$  "))*<=====r cn|d|_|jdSrV)rrrrrs r depart_theadzODFTranslator.depart_thead$ s6   "&&(((((r ctddz |_|d}||dS)Nrrr)rurrrrs r visit_rowzODFTranslator.visit_row) sBHHqL   0 1 1   $$$$$r c.|dSrrrs r depart_rowzODFTranslator.depart_row. rr c|xjdz c_|dtz|jddf}|dd}|dd}|dkrd|dzfz|d <|xj|z c_|d d}|dkr d|dzfz|d <|d | }||dS)Nrz %s%%d.%%c%%drrrmorecolsr%dztable:number-columns-spannedmorerowsztable:number-rows-spannedrr)rrrrr rr)rr cellspec_namerr r rNs r visit_entryzODFTranslator.visit_entry1 s Q - -  sA (  !.!)  88J** a<<59X\O5KF1 2    )  88J** a<<26(Q,2HF. / 26BB   %%%%%r c.|dSrrrs r depart_entryzODFTranslator.depart_entryE rr cdSrr+rs r visit_tbodyzODFTranslator.visit_tbodyH r0r cdSrr+rs r depart_tbodyzODFTranslator.depart_tbodyK r0r c"d|vr d|vrd|vrdSdS)Nrr|refnamer+rs r visit_targetzODFTranslator.visit_targetN s/ D 4''T)) D Dr cdSrr+rs r depart_targetzODFTranslator.depart_targetY r0r rPc t|jtjjr|j}|dkrV|jjd|jjd| dd}| dd|z| d|fd }| || |dSt|jtjjrzt|jd d | |i }| || }||_d |_| |dSdS) Nz4Heading/section levels greater than 7 not supported.z. Reducing to heading level 7 for heading: "rrr z heading%dtext:outline-levelrrrrT)rr#rr sectionrrrrrnrrrrrXrrPr)rrr title_typerrNr@s r visit_titlezODFTranslator.visit_title\ s dk8>#9 : : * .Mq   &..JLLL &... )***!" ##*.*>'+}}#m%6(8(8""$C  # #C ( ( (  $ $S ) ) ) ) )  X^%< = = *T18!4==#<#<EC  # #C ( ( (;;==DDJ#'D  $ $S ) ) ) ) ) * *r ct|jtjjs$t|jtjjr|dSdSr)rr#rr rrrrs r depart_titlezODFTranslator.depart_title| sV t{HN$: ; ; !$+x~'>?? !     ! !r c6|||ddS)Nr)r)r )rrrs rvisit_subtitlezODFTranslator.visit_subtitle s# xJ?????r c0||dSr)r"rs rdepart_subtitlezODFTranslator.depart_subtitle s $r c|dd|di}|||_t j)Nrrrr)rrrrnr@r rrs rvisit_title_referencez#ODFTranslator.visit_title_reference s\   { t}}[994; <<++dkkmm,, """r cdSrr+rs rdepart_title_referencez$ODFTranslator.depart_title_reference r0r c tddD]w}t|dd|fz|d|fzd}t|dt|d t|d d d d t|dxdS)Nr z$text:table-of-content-entry-templater rHrrztext:index-entry-chapterztext:index-entry-textztext:index-entry-tab-stoprr)zstyle:leader-charz style:typeztext:index-entry-page-number)rIrXr)rrNrLr<s r(generate_table_of_content_entry_templatez6ODFTranslator.generate_table_of_content_entry_template sB<< < z%ODFTranslator.update_toc_page_numbers s9  Az222 ##J/////r c|||f|dz }|D]$}|jdkr||||%dS)Nrr8)rVrrA)rrWrrCchild_els rrAz ODFTranslator.update_toc_collect sg5"+&&&   E EH|000''%DDD E Er cp|D]2\}}|jdkr"|jdkrt|d}d|_3dS)NrzTable of Contentsztext:tab9999)rr@rXrQ)rrCrrNr<s rrBz$ODFTranslator.update_toc_add_numbers sQ$ " "JE38##H 333 j11!  " "r c0|ddS)Nr)rrs rvisit_transitionzODFTranslator.visit_transition s &'''''r cdSrr+rs rdepart_transitionzODFTranslator.depart_transition r0r c2||ddS)Nrgenerate_admonitionrs r visit_warningzODFTranslator.visit_warning    y11111r c8|jdSrrmrs rdepart_warningzODFTranslator.depart_warning ror c2||ddS)N attentionrMrs rvisit_attentionzODFTranslator.visit_attention    {33333r c2||ddS)NcautionrMrs r visit_cautionzODFTranslator.visit_caution rPr c2||ddS)NdangerrMrs r visit_dangerzODFTranslator.visit_danger! s   x00000r c2||ddS)NerrorrMrs r visit_errorzODFTranslator.visit_error& s   w/////r c2||ddS)NhintrMrs r visit_hintzODFTranslator.visit_hint+    v.....r c2||ddS)N importantrMrs rvisit_importantzODFTranslator.visit_important0 rVr c2||ddS)NnoterMrs r visit_notezODFTranslator.visit_note5 rcr c2||ddS)NtiprMrs r visit_tipzODFTranslator.visit_tip: s   u-----r cd}|jD]!}|jdkr|}"||d}|r|d}||d|dS)NrPrrgeneric)rrrnr rN)rrrPr classes1s rvisit_admonitionzODFTranslator.visit_admonition? sx] ' 'E}''  =xx **H $     y%88888r c t|jdr!|jj||}n|}t |jdd|d|fi}|r||_n|d|_|d|f}|j |dS)Nrrrz admon-%s-hdrr!z admon-%s-body) hasattrrrr rXrrr@ capitalizerrV)rrrrPtranslated_labelrNrls rrNz!ODFTranslator.generate_admonitionL s 4=( + + %#}377uEE  $ -x t}}  + +A      ACHH 0 ; ; = = = =@CH ]]?UI 6 6 "))"-----r cb|dddi}||dS)Nrrzrststyle-subscriptrrrs rvisit_subscriptzODFTranslator.visit_subscript_ sC   { 34      $$$$$r c.|dSrrrs rdepart_subscriptzODFTranslator.depart_subscripte rr cb|dddi}||dS)Nrrzrststyle-superscriptrrrs rvisit_superscriptzODFTranslator.visit_superscripth sC   { 54      $$$$$r c.|dSrrrs rdepart_superscriptz ODFTranslator.depart_superscriptn rr cdSrr+rs rvisit_abbreviationz ODFTranslator.visit_abbreviationq r0r cdSrr+rs rdepart_abbreviationz!ODFTranslator.depart_abbreviationt r0r cdSrr+rs r visit_acronymzODFTranslator.visit_acronymw r0r cdSrr+rs rdepart_acronymzODFTranslator.depart_acronymz r0r cdSrr+rs r visit_sidebarzODFTranslator.visit_sidebar} r0r cdSrr+rs rdepart_sidebarzODFTranslator.depart_sidebar r0r rBrr)r)rrP( r(r)r*rrrrrrrrrrrr(rrrr[rI code_nonerOrerMcompilerbr7rPrNrnrrrrKrvrrLrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r rrrrrrrr r"r$r&r(r,r.r0r2r6r9r=r?rDrFrMrOrSrWr[r]r_rarcrergrirkrnrqrsrwryrrrrrrrrrrrrrrrrrrrrrrrrrrr!r#r%r'r+r.r6rJrQrNrPr_ravisit_doctest_blockdepart_doctest_blockrergrirkrmrorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r"r$r&r(r*r-r2r<r?r>rArBrIrKrOrRrUdepart_attentionrYdepart_cautionr\ depart_dangerr_ depart_errorrb depart_hintrfdepart_importantri depart_noterl depart_tiprpdepart_admonitionrNrwryr{r}rrrrrrr+r rrrsB7KrO+O+O+b###:::2< ' ' '   ...$ A A A A///333###4.M.M.M`(,tEE!HH~~$Iz9 :&&I333>> !!!      ### ::: +++333      !!! ) ) )!!! %%% &&&2$$$***4!!!$            !!!   HHH)))       I I I!!! N&#&#&#P   :::!!! - - -!!!    ! ! !       <@<@<@|   20$***X$$$LI&I&I&X$(RRRRhGGG!!!######### %%% 444$!!!    9 9 9444999>>> / / /D   ./!!! """''' (((+++    Z%Z%Z%x%%%%%%                  ###    % % %BBB      ###,***8%%% $ $ $   ))))!!! %%% ###         &&&P===~)))   %%%$   >>> ))) %%% &&&(            ****@!!! @@@@   ###    <<<"   :!:!:!x 2 2 2000 EEE"""(((   222)))444&222$N111#M000"L///!K444&///!K... J 9 9 9'....&%%% %%%                     r rceZdZfdZxZS)Readerct}|jjs|t j|Sr)superget_transformsrrrrDanglingReferences)r transforms __class__s rrzReader.get_transforms sBWW++-- }) =   j; < < <r )r(r)r*r __classcell__)rs@rrr s8r r)Y__doc__ __docformat__ configparserrrior itertoolsrrHos.pathrMr)rrurllib.requestr urllib.errorrweakref xml.etreerrxml.domr rrr r r r r&docutils.parsers.rst.directives.imagesrdocutils.readersrdocutils.transformsrrCpygments.lexerspygmentsformatterrr ImportError SyntaxErrorrGr*rWeakKeyDictionaryrrrTtyperrrr1r3rLrOrrrGENERATOR_DESCr4CONTENT_NAMESPACE_DICTrr6rr5r6rErFrr5r4rDrXrQrZrmrxrzrrrrrrr+r rrs # &%%%%%    """"""""""""******??????????????666666''''''******OOO?????????[!HHH $Y_&& %7 $ & & :emT""0 /     0   G$$rz(## BJv   BJx $++'(A ! >! ,! . !  < !  ? ! G! <! 0! <! C! l! .! -! /! L!!$ @%!& >'!( F > <- + - 65!!!:  >  ,  .    <    ?   G  <  0  <  C  l L  .  -   /! " @# $ >% & F > < +-   4D$& - < . +   fD24  B  E MB6BIL@4 3!"5#$F%&D'(LDB313<5:D24  B  E MB6BIL@4 3!"5#$F%&D'(LDB1/6J 3B 41 &D1111$(tD   $KKKKKKKK*)j #%%%2gggggW^gggV m) m) m) m) m) E,m) m) m) bSZ s:B BB