§
    ;]¥e È ã                   ó�  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z! ddl"m#Z# dd	l$m%Z%m&Z& dd
l'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddl:m<Z= ddl:m>Z> ddl:m?Z@ ddl:mAZB ddl:mCZCmDZDmEZEmFZFmGZG ddl:mHZI ddl:mJZJ ddl:mKZL ddl:mMZN ddl:mOZP ddl:mQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZi ddljmkZkmlZl ddlmmZmmnZnmoZompZpmqZqmrZrmsZs  ejt        eu¦  «        Zv eDd ¦  «        Zw eRd¦  «        Zx G d„ d¦  «        Zyd e eezef         eze{ee         f         d!ecfd"„Z|d#e de_f         d$ezd%e ee}e}e}f         ezdf         d&e~d'e~d!egfd(„Z G d)„ d*ey¦  «        Z€dS )+é    N)Úmd5)ÚBytesIOÚFileIOÚIOBase)ÚPath)ÚTracebackType)ÚIOÚAnyÚCallableÚDequeÚDictÚIterableÚListÚOptionalÚPatternÚTupleÚTypeÚUnionÚcasté   )Ú
Encryption)Ú
PageObjectÚ_VirtualList)Únums_clear_rangeÚnums_insertÚ	nums_next)Ú	PdfReader)Ú_alg33Ú_alg34Ú_alg35)ÚStrByteTypeÚ
StreamTypeÚ_get_max_pdf_version_headerÚb_Údeprecate_with_replacementÚdeprecation_bookmarkÚdeprecation_with_replacementÚlogger_warning)ÚAnnotationDictionaryAttributes)ÚCatalogAttributes)ÚCatalogDictionary)ÚCore)ÚEncryptionDictAttributes)ÚFieldDictionaryAttributesÚ	FieldFlagÚ"FileSpecificationDictionaryEntriesÚGoToActionArgumentsÚInteractiveFormDictEntries)ÚPageAttributes)ÚPageLabelStyle)ÚPagesAttributes)ÚStreamAttributes)ÚTrailerKeys)ÚTypFitArgumentsÚUserAccessPermissions)ÚPAGE_FITÚAnnotationBuilderÚArrayObjectÚBooleanObjectÚByteStringObjectÚContentStreamÚDecodedStreamObjectÚDestinationÚDictionaryObjectÚFitÚFloatObjectÚIndirectObjectÚ
NameObjectÚ
NullObjectÚNumberObjectÚ	PdfObjectÚRectangleObjectÚStreamObjectÚTextStringObjectÚ
TreeObjectÚcreate_string_objectÚ
hex_to_rgb)Ú	PageRangeÚPageRangeSpec)ÚBorderArrayTypeÚFitTypeÚ
LayoutTypeÚOutlineItemTypeÚOutlineTypeÚPagemodeTypeÚZoomArgTypeiüÿÿc                   óÎ  — e Zd ZdZdËdeddfd„ZdÌd„Zdeee	                  d	ee	         d
ee
         ddfd„Zedefd„¦   «         Zej        deddfd„¦   «         Zdedefd„Z	 	 dÍdedeef         dee         defd„Zdeeef         defd„Zdeeef         dedefd„Z	 dÎdedeeegdf         dee         defd„ZdÏd„Z	 dÎdedee         defd„Z	 dÎdedee         defd„Z 	 	 dÐdededee         defd „Z!	 	 dÐdededee         defd!„Z"	 dÍd"ee         d#ee         defd$„Z#d#edefd%„Z$defd&„Z%defd'„Z&ede'e         fd(„¦   «         Z(	 dÍd)ee)         d*ee)         defd+„Z*	 dÍd)ee)         d*ee)         defd,„Z+	 	 	 dÑd)eee)e,j-        f                  d*eee)e,j-        f                  dedefd-„Z.	 	 	 dÑd)eee)e,j-        f                  d*eee)e,j-        f                  dedefd.„Z/edede0e1e2f         fd/„¦   «         Z3e3j        d0edee0ef         ddfd1„¦   «         Z3d2eddfd3„Z4d2eddfd4„Z5d5ed6eeef         ddfd7„Z6d8ed9eeef         ddfd:„Z7	 dÒd;e8d<eeegdf                  ddfd=„Z9	 dÒd;e8d<eeegdf                  ddfd>„Z:e;fded?e<eef         d@e=ddfdA„Z>e;fded?e<eef         d@e=ddfdB„Z?d;e8ddfdC„Z@d;e8ddfdD„ZA	 	 	 dÓdEedeBef         dFee<eef                  dee         ddfdG„ZC	 dÒd;e8d<eeegdf                  ddfdH„ZD	 dÒd;e8d<eeegdf                  ddfdI„ZEdddJeFddfdKee         dLee         dMeGdNeHdOee         dPee         ddfdQ„ZIdReJddfdS„ZKdReeLef         deMeGeNf         fdT„ZOdReJde'e         fdU„ZPdReJdVe'e         defdW„ZQdReJddfdX„ZRdYe<eef         ddfdZ„ZSdYe<eef         ddfd[„ZTd\eeUeVeBeWeeXeeYe1eZf
         ddfd]„Z[d6edefd^„Z\dedefd_„Z]dedefd`„Z^de_fda„Z`deUfdb„ZaedeUfdc„¦   «         Zbde_fdd„ZcdeUfde„ZddeUfdf„Ze	 	 	 	 dÔdgedee_f         dhede_ef         diede_ef         d0edee_f         def
dj„Zf	 dÒd0eee_f         dhede_ef         defdk„Zg	 dÒd0edhee_         defdl„Zh eidm¬n¦  «        	 	 dÍdmejdhede_ef         diede_ef         defdo„¦   «         Zk eidm¬n¦  «        	 dÒdmejdhee_         defdp„¦   «         Zl eidm¬n¦  «        	 dÒdmejdhee_         defdq„¦   «         Zmddddrdrendfdsed"edeeef         dhede_ef         diede_ef         dteeeMe)e)e)f         ef                  dueGdveGdweodxee         defdy„Zp	 	 	 	 	 dÕdsedxedhede_ef         dteeMe)e)e)f                  dueGdveGdweqd{erdefd|„Zs	 	 	 	 	 dÕdsedxedhede_ef         dteeMe)e)e)f                  dueGdveGdweqd{erdefd}„ZtdÏd~„Zudse1deeeUf         ddfd€„Zv	 	 dÍdgee         d0ee         defd�„Zwd0e0defd‚„Zx	 	 dÍdsed"ee         dxee         defdƒ„Zydsedxedefd„„ZzdÏd…„Z{dÏd†„Z|dÖd‡eGddfdˆ„Z}dÖd‰eGddfdŠ„Z~dÖd‡eGddfd‹„ZdÖd‰eGddfdŒ„Z€	 	 dÍd"ed�edŽe�d�eeU         dxee         ddfd�„Z‚	 dÒdxed�edŽe�d�eeU         ddf
d‘„Zƒ	 	 d×dxedgedŽe�d�eeU         dweqd{erddfd’„Z„	 	 d×dxedgedŽe�d�eeU         dweqd{erddfd“„Z…d”Z†dee‡         fd•„Zˆdee‡         fd–„Z‰d—eeXe‡f         ddfd˜„ZŠd—e‡ddfd™„Z‹d—e‡ddfdš„ZŒedee‡         fd›„¦   «         Z�e�j        d—e‡ddfdœ„¦   «         Z�edee‡         fd�„¦   «         ZŽeŽj        d—e‡ddfdž„¦   «         ZŽdŸZ�dee�         fd „Z‘dee�         fd¡„Z’d¢e�ddfd£„Z“d¢e�ddfd¤„Z”edee�         fd¥„¦   «         Z•e•j        d¢e�ddfd¦„¦   «         Z•edee�         fd§„¦   «         Z–e–j        d¢e�ddfd¨„¦   «         Z–d"ed©e<eef         ddfdª„Z—deeef         defd«„Z˜deeLee8f         deMe™eeš         f         fd¬„Z›	 	 	 	 dØdeee8eLf         dmeedeœeMeef         eMeeef         e'e         f         dEedeœeMeef         eMeeef         e'e         f         d­eGd®eee'e         eMed¯f         f                  ddfd°„Z� eidmd­¬±¦  «        	 	 	 	 dÙd²ee         deeLee8f         dmee         dEeež         d­eGd®eee'e         eMed¯f         f                  ddfd³„¦   «         ZŸd´eBdEe<eef         d;e8defdµ„Z d¶ee¡ef         dEe<eef         d;e8ddfd·„Z¢dedeeeeZf         dEe<eef         d;e8dee         fd¸„Z£d¹eee'eB         f         dedEe<eef         d;e8de'e0         f
dº„Z¤d»edEe<eef         d;e8de'e0         fd¼„Z¥d0e0de_fd½„Z¦	 dÒd¾e'e0         dhee_ef         diede_ef         ddfd¿„Z§dÏdÀ„Z¨	 dÒdme<eef         d\ee©         dee'e                  fdÁ„Zª eidm¬n¦  «        	 dÒdme<eef         d\ee©         dee'e                  fdÂ„¦   «         Z«	 dÒd;ede8ef         ddfdÃ„Z¬	 	 	 dÑdÄedÅedÆee­         dÇee         dÈee         ddfdÉ„Z®	 	 	 dÑdÄedÅedÆee­         dÇee         dÈee         ddfdÊ„Z¯dS )ÚÚ	PdfWriterz�
    Write a PDF file out, given pages produced by another class.

    Typically data is added from a :class:`PdfReader<pypdf.PdfReader>`.
    Ú ÚfileobjÚreturnNc           	      óÜ  — d| _         g | _        i | _        i | _        t	          ¦   «         }|                     t          t          j        ¦  «        t          d¦  «        t          t          j	        ¦  «        t          d¦  «        t          t          j        ¦  «        t          ¦   «         i¦  «         |                      |¦  «        | _        t	          ¦   «         }|                     t          d¦  «        t          t           j        d                     d¦  «        z   ¦  «        i¦  «         |                      |¦  «        | _        t	          ¦   «         | _        | j                             t          t          j        ¦  «        t          t*          j        ¦  «        t          t*          j        ¦  «        | j        i¦  «         |                      | j        ¦  «        | _        || _        d| _        d S )Ns   %PDF-1.3ú/Pagesr   z	/ProducerÚpypdfzutf-16beF)Ú_headerÚ_objectsÚ_idnum_hashÚ_id_translatedrB   ÚupdaterF   ÚPAÚTYPEÚCOUNTrH   ÚKIDSr<   Ú_add_objectÚ_pagesrN   ÚcodecsÚBOM_UTF16_BEÚencodeÚ_infoÚ_root_objectÚCOÚCATALOGÚPAGESÚ_rootr\   Úwith_as_usage)Úselfr\   ÚpagesÚinfos       ú//usr/lib/python3/dist-packages/pypdf/_writer.pyÚ__init__zPdfWriter.__init__Ž   s•  € Ø"ˆŒØ)+ˆŒØ8:ˆÔØ9;ˆÔõ !Ñ"Ô"ˆØ�Šå�2œ7Ñ#Ô#¥Z°Ñ%9Ô%9Ý�2œ8Ñ$Ô$¥l°1¡o¤oÝ�2œ7Ñ#Ô#¥[¡]¤]ðñ	
ô 	
ð 	
ð ×&Ò& uÑ-Ô-ˆŒõ  Ñ!Ô!ˆØ�Šå˜;Ñ'Ô'Õ)=ÝÔ'¨'¯.ª.¸Ñ*DÔ*DÑDñ*ô *ðñ	
ô 	
ð 	
ð ×%Ò% dÑ+Ô+ˆŒ
õ -Ñ.Ô.ˆÔØÔ× Ò å�2œ7Ñ#Ô#¥Zµ´
Ñ%;Ô%;Ý�2œ8Ñ$Ô$ d¤kðñ	
ô 	
ð 	
ð ×%Ò% dÔ&7Ñ8Ô8ˆŒ
ØˆŒØ"ˆÔÐÐó    c                 ó   — d| _         | S )z+Store that writer is initialized by 'with'.T)ru   ©rv   s    ry   Ú	__enter__zPdfWriter.__enter__¶   s   € à!ˆÔØˆr{   Úexc_typeÚexcÚ	tracebackc                 óL   — | j         r|                      | j         ¦  «         dS dS )zWrite data to the fileobj.N)r\   Úwrite)rv   r   r€   r�   s       ry   Ú__exit__zPdfWriter.__exit__»   s2   € ð Œ<ð 	%Ø�JŠJ�t”|Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%r{   c                 ó   — | j         S )zð
        Header of the PDF document that is written.

        This should be something like ``b'%PDF-1.5'``. It is recommended to set
        the lowest version that supports all features which are used within the
        PDF file.
        ©ra   r}   s    ry   Ú
pdf_headerzPdfWriter.pdf_headerÅ   s   € ð Œ|Ðr{   Ú
new_headerc                 ó   — || _         d S ©Nr†   )rv   rˆ   s     ry   r‡   zPdfWriter.pdf_headerÐ   s   € à!ˆŒˆˆr{   Úobjc                 óâ   — t          |d¦  «        r|j        j        | k    r|j        S | j                             |¦  «         t          t          | j        ¦  «        d| ¦  «        |_        |j        S )NÚindirect_referencer   )Úhasattrr�   Úpdfrb   ÚappendrE   Úlen©rv   r‹   s     ry   rj   zPdfWriter._add_objectÔ   sl   € Ý�3Ð,Ñ-Ô-ð 	*°#Ô2HÔ2LÐPTÒ2TÐ2TØÔ)Ð)ØŒ×Ò˜SÑ!Ô!Ð!Ý!/µ°D´MÑ0BÔ0BÀAÀtÑ!LÔ!LˆÔØÔ%Ð%r{   r�   Úidoc                 ó  — |�-|�t          d¦  «        ‚|}t          j        dt          ¦  «         |€J ‚t	          |t
          ¦  «        r| j        |dz
           S |j        | k    rt          d¦  «        ‚| j        |j        dz
           S )NzGPlease only set 'indirect_reference'. The 'ido' argument is deprecated.zFThe parameter 'ido' is depreciated and will be removed in pypdf 4.0.0.r   zpdf must be self)	Ú
ValueErrorÚwarningsÚwarnÚDeprecationWarningÚ
isinstanceÚintrb   r�   Úidnum)rv   r�   r“   s      ry   Ú
get_objectzPdfWriter.get_objectÛ   s±   € ð
 ˆ?Ø!Ð-Ý ð%ñô ð ð
 &)Ð"Ý”ð#å&ñô ð ð Ð*Ð*Ð*åÐ(­#Ñ.Ô.ð 	9Ø”=Ð!3°aÑ!7Ô8Ð8ØÔ! TÒ)Ð)ÝÐ/Ñ0Ô0Ð0ØŒ}Ð/Ô5¸Ñ9Ô:Ð:r{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )zQ
        Use :meth:`get_object` instead.

        .. deprecated:: 1.28.0
        Ú	getObjectrœ   ú3.0.0)r'   rœ   )rv   r“   s     ry   rž   zPdfWriter.getObjectö   s(   € õ 	% [°,ÀÑHÔHÐHØ�Š˜sÑ#Ô#Ð#r{   c                 óŽ   — t          |t          ¦  «        r|j        | k    sJ ‚|j        }|| j        |dz
  <   | j        |dz
           S )Nr   )r™   rE   r�   r›   rb   r•   )rv   r�   r‹   s      ry   Ú_replace_objectzPdfWriter._replace_objectÿ   sY   € õ
 Ð(­.Ñ9Ô9ð 	:Ø%Ô)¨TÒ1Ð1Ð1Ð1Ø!3Ô!9ÐØ03ˆŒÐ(¨1Ñ,Ñ-ØŒ}Ð/°!Ñ3Ô4Ð4r{   © ÚpageÚactionÚexcluded_keysc                 ó¾  — t          t          |t          j                 ¦  «        t          j        k    sJ ‚|}t          |¦  «        }|t          j        dgz  }	 | j        t          |j
        j        ¦  «                 |j
        j        = n# t          $ r Y nw xY wt          d|                     | d|¦  «        ¦  «        }|j        �O|j        j        }t!          |t          ¦  «        r|                     ¦   «         }t%          | j        |¦  «        | _        | j        |t)          t          j        ¦  «        <   t          t*          |                      | j        ¦  «        ¦  «        }|j
        €J ‚ ||t          j                 |j
        ¦  «         t          t0          |t          j                 ¦  «        }t5          |dz   ¦  «        |t)          t          j        ¦  «        <   |S )Nz/StructParentsr   Fr   )r   Ústrrf   rg   rq   ÚPAGEÚlistÚPARENTrd   Úidr�   r�   r›   Ú	ExceptionÚcloner‡   r™   rn   r#   rk   rF   rB   rœ   ri   rš   rh   rH   )rv   r£   r¤   r¥   Úpage_orgÚotherrw   Ú
page_counts           ry   Ú	_add_pagezPdfWriter._add_page  s™  € õ •C˜�bœgœÑ'Ô'­2¬7Ò2Ð2Ð2Ð2ØˆÝ˜]Ñ+Ô+ˆØ�"œ)Ð%5Ð6Ñ6ˆð
	ØÔ#¥B xÔ'BÔ'FÑ$GÔ$GÔHØÔ+Ô1ðð øõ ð 	ð 	ð 	ØˆDð	øøøå�L (§.¢.°°u¸mÑ"LÔ"LÑMÔMˆØŒ<Ð#Ø”LÔ+ˆEÝ˜%¥Ñ%Ô%ð 'ØŸš™œ�Ý9¸$¼/È5ÑQÔQˆDŒOØ&*¤kˆ�Z�œ	Ñ"Ô"Ñ#ÝÕ% t§¢°t´{Ñ'CÔ'CÑDÔDˆØÔ&Ð2Ð2Ð2Øˆˆu•R”WŒ~˜tÔ6Ñ7Ô7Ð7Ý�#˜u¥R¤XœÑ/Ô/ˆ
Ý&2°:À±>Ñ&BÔ&Bˆ�j�œÑ"Ô"Ñ#Øˆs   Á/B	 Â	
BÂBc                 óÚ  — 	 | j         }t          j        |vrT| j                              t	          t          j        ¦  «        t          t          | j        ¦  «        d| ¦  «        i¦  «         t	          t          j	        ¦  «        }t          d¦  «        | j         t          j                 |<   d S # t          $ r3}t                               dt          |¦  «        ¦  «         Y d }~d S d }~ww xY w)Nr   Tz&set_need_appearances_writer() catch : )rp   r+   Ú	ACRO_FORMre   rF   rE   r‘   rb   r2   ÚNeedAppearancesr=   r¬   ÚloggerÚerrorÚrepr)rv   ÚcatalogÚneed_appearancesr€   s       ry   Úset_need_appearances_writerz%PdfWriter.set_need_appearances_writer/  sö   € ð	NØÔ'ˆGå Ô*°'Ð9Ð9ØÔ!×(Ò(å"Õ#4Ô#>Ñ?Ô?ÅÝ ¤Ñ.Ô.°°4ñBô Bðñô ð õ  *Õ*DÔ*TÑUÔUÐÝO\Ð]aÑObÔObˆDÔÕ/Ô9Ô:Ð;KÑLÐLÐLøÝð 	Nð 	Nð 	NÝ�LŠLÐAÅ4ÈÁ9Ä9ÑMÔMÐMÐMÐMÐMÐMÐMÐMøøøøð	Nøøøs   ‚B)B- Â-
C*Â7(C%Ã%C*c                 óD   — |                       |t          j        |¦  «        S )aÅ  
        Add a page to this PDF file.

        Recommended for advanced usage including the adequate excluded_keys.

        The page is usually acquired from a :class:`PdfReader<pypdf.PdfReader>`
        instance.

        Args:
            page: The page to add to the document. Should be
                an instance of :class:`PageObject<pypdf._page.PageObject>`
            excluded_keys:

        Returns:
            The added PageObject.
        )r±   r©   r�   ©rv   r£   r¥   s      ry   Úadd_pagezPdfWriter.add_pageC  s   € ð* �~Š~˜d¥D¤K°Ñ?Ô?Ð?r{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )zP
        Use :meth:`add_page` instead.

        .. deprecated:: 1.28.0.
        ÚaddPager½   rŸ   )r'   r½   r¼   s      ry   r¿   zPdfWriter.addPageZ  s*   € õ 	% Y°
¸GÑDÔDÐDØ�}Š}˜T =Ñ1Ô1Ð1r{   r   Úindexc                 ó6   ‡— |                       |ˆfd„¦  «        S )a\  
        Insert a page in this PDF file. The page is usually acquired from a
        :class:`PdfReader<pypdf.PdfReader>` instance.

        Args:
            page: The page to add to the document.
            index: Position at which the page will be inserted.
            excluded_keys:

        Returns:
            The added PageObject.
        c                 ó0   •— |                       ‰|¦  «        S rŠ   )Úinsert)ÚkidsÚprÀ   s     €ry   ú<lambda>z'PdfWriter.insert_page.<locals>.<lambda>y  s   ø€ °D·K²KÀÀqÑ4IÔ4I€ r{   )r±   ©rv   r£   rÀ   r¥   s     ` ry   Úinsert_pagezPdfWriter.insert_pageg  s#   ø€ ð$ �~Š~˜dÐ$IÐ$IÐ$IÐ$IÑJÔJÐJr{   c                 óR   — t          ddd¦  «         |                      |||¦  «        S )zR
        Use :meth:`insert_page` instead.

        .. deprecated:: 1.28.0
        Ú
insertPagerÈ   rŸ   )r'   rÈ   rÇ   s       ry   rÊ   zPdfWriter.insertPage{  s.   € õ 	% \°=À'ÑJÔJÐJØ×Ò  e¨]Ñ;Ô;Ð;r{   Úpage_numberÚ
pageNumberc                 ól  — |�$|�t          d¦  «        ‚t          ddd¦  «         |}|€|€t          d¦  «        ‚t          t          t          t
          f         |                      | j        ¦  «        ¦  «        }t          t          |t          j
                 |                              ¦   «         ¦  «        S )zô
        Retrieve a page by number from this PDF file.

        Args:
            page_number: The page number to retrieve
                (pages begin at zero)

        Returns:
            The page at the index given by *page_number*
        Nz)Please only use the page_number parameterzget_page(pageNumber)zget_page(page_number)ú4.0.0zPlease specify the page_number)r•   r%   r   r   r§   r
   rœ   rk   r   rf   ri   )rv   rË   rÌ   rw   s       ry   Úget_pagezPdfWriter.get_page‰  s¦   € ð Ð!ØÐ&Ý Ð!LÑMÔMÐMÝ&Ø&Ð(?Àñô ð ð %ˆKØÐ :Ð#5ÝÐ=Ñ>Ô>Ð>Ý•T�#�s˜(”^ T§_¢_°T´[Ñ%AÔ%AÑBÔBˆå•J ¥b¤g¤¨{Ô ;× FÒ FÑ HÔ HÑIÔIÐIr{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )z`
        Use :code:`writer.pages[page_number]` instead.

        .. deprecated:: 1.28.0
        ÚgetPagezwriter.pages[page_number]rŸ   )r'   rÏ   )rv   rÌ   s     ry   rÑ   zPdfWriter.getPage£  s)   € õ 	% YÐ0KÈWÑUÔUÐUØ�}Š}˜ZÑ(Ô(Ð(r{   c                 óÄ   — t          t          t          t          f         |                      | j        ¦  «        ¦  «        }t          |t          d¦  «                 ¦  «        S )Nz/Count)r   r   r§   r
   rœ   rk   rš   rF   )rv   rw   s     ry   Ú_get_num_pageszPdfWriter._get_num_pages¬  sB   € Ý•T�#�s˜(”^ T§_¢_°T´[Ñ%AÔ%AÑBÔBˆÝ�5� HÑ-Ô-Ô.Ñ/Ô/Ð/r{   c                 óL   — t          ddd¦  «         |                      ¦   «         S )zX
        Use :code:`len(writer.pages)` instead.

        .. deprecated:: 1.28.0
        ÚgetNumPageszlen(writer.pages)rŸ   )r'   rÓ   r}   s    ry   rÕ   zPdfWriter.getNumPages°  s)   € õ 	% ]Ð4GÈÑQÔQÐQØ×"Ò"Ñ$Ô$Ð$r{   c                 ó6   — t          | j        | j        ¦  «        S )zMProperty that emulates a list of :class:`PageObject<pypdf._page.PageObject>`.)r   rÓ   rÏ   r}   s    ry   rw   zPdfWriter.pages¹  s   € õ ˜DÔ/°´Ñ?Ô?Ð?r{   ÚwidthÚheightc                 óX   — t          j        | ||¦  «        }|                      |¦  «        S )a'  
        Append a blank page to this PDF file and returns it.

        If no page size is specified, use the size of the last page.

        Args:
            width: The width of the new page expressed in default user
                space units.
            height: The height of the new page expressed in default
                user space units.

        Returns:
            The newly appended page

        Raises:
            PageSizeNotDefinedError: if width and height are not defined
                and previous page does not exist.
        )r   Úcreate_blank_pager½   )rv   r×   rØ   r£   s       ry   Úadd_blank_pagezPdfWriter.add_blank_page¾  s*   € õ* Ô+¨D°%¸Ñ@Ô@ˆØ�}Š}˜TÑ"Ô"Ð"r{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )zU
        Use :meth:`add_blank_page` instead.

        .. deprecated:: 1.28.0
        ÚaddBlankPagerÛ   rŸ   )r'   rÛ   )rv   r×   rØ   s      ry   rÝ   zPdfWriter.addBlankPageÖ  s-   € õ 	% ^Ð5EÀwÑOÔOÐOØ×"Ò" 5¨&Ñ1Ô1Ð1r{   c                 óæ   — |�|€@|                       ¦   «         dz
  |k    r%| j        |         }|j        j        }|j        j        }t          j        | ||¦  «        }|                      ||¦  «         |S )aT  
        Insert a blank page to this PDF file and returns it.

        If no page size is specified, use the size of the last page.

        Args:
            width: The width of the new page expressed in default user
                space units.
            height: The height of the new page expressed in default
                user space units.
            index: Position to add the page.

        Returns:
            The newly appended page

        Raises:
            PageSizeNotDefinedError: if width and height are not defined
                and previous page does not exist.
        Nr   )rÓ   rw   Úmediaboxr×   rØ   r   rÚ   rÈ   )rv   r×   rØ   rÀ   Úoldpager£   s         ry   Úinsert_blank_pagezPdfWriter.insert_blank_pageá  sy   € ð2 ˆ=˜F˜N°×0CÒ0CÑ0EÔ0EÈÑ0IÈeÒ/SÐ/SØ”j Ô'ˆGØÔ$Ô*ˆEØÔ%Ô,ˆFÝÔ+¨D°%¸Ñ@Ô@ˆØ×Ò˜˜uÑ%Ô%Ð%Øˆr{   c                 óR   — t          ddd¦  «         |                      |||¦  «        S )zW
        Use :meth:`insertBlankPage` instead.

        .. deprecated:: 1.28.0.
        ÚinsertBlankPagerá   rŸ   )r'   rá   )rv   r×   rØ   rÀ   s       ry   rã   zPdfWriter.insertBlankPage  s0   € õ 	%Ð%6Ð8KÈWÑUÔUÐUØ×%Ò% e¨V°UÑ;Ô;Ð;r{   c                 óª  — d| j         vrdS | j         d         }t          |t          t          f¦  «        rt	          t          |¦  «        ¦  «        S t          |t
          ¦  «        rm	 |dd…         \  }}|dd…         }t          |t          |¦  «        ¦  «        }t          d||¦  «        S # t          $ r}t          d|› d|› �¦  «        ‚d}~ww xY wdS )zö
        Property to access the opening destination (``/OpenAction`` entry in
        the PDF catalog). it returns `None` if the entry does not exist is not
        set.

        Raises:
            Exception: If a destination is invalid
        ú/OpenActionNr   é   Ú
OpenActionzInvalid Destination ú: )
rp   r™   r§   ÚbytesrN   r<   rC   ÚtuplerA   r¬   )rv   Úoar£   ÚtypÚarrayÚfitr€   s          ry   Úopen_destinationzPdfWriter.open_destination  sô   € ð  Ô 1Ð1Ð1Ø�4ØÔ˜}Ô-ˆÝ�b�3¥˜,Ñ'Ô'ð 	Ý'­¨B©¬Ñ0Ô0Ð0Ý˜�KÑ(Ô(ð 		ðDØ˜q ˜sœG‘	��cØ˜1˜2˜2œ�Ý˜#�u U™|œ|Ñ,Ô,�Ý" <°°sÑ;Ô;Ð;øÝð Dð Dð DÝÐ B°rÐ BÐ B¸SÐ BÐ BÑCÔCÐCøøøøðDøøøð �4s   Á'AB, Â,
CÂ6CÃCÚdestc                 óà  — |€	 | j         d= d S # t          $ r Y d S w xY wt          |t          ¦  «        r&t	          |¦  «        | j         t          d¦  «        <   d S t          |t          ¦  «        r|j        | j         t          d¦  «        <   d S t          |t          ¦  «        rLt          d|j	        �|j	        nt          ¦   «         t          ¦  «        j        | j         t          d¦  «        <   d S d S )Nrå   ÚOpening)rp   ÚKeyErrorr™   r§   rL   rF   rA   Ú
dest_arrayr   r�   rG   r:   ©rv   rð   s     ry   rï   zPdfWriter.open_destination,  s  € àˆ<ðØÔ% mÐ4Ð4Ð4øÝð ð ð Ø��ðøøøå˜�cÑ"Ô"ð 	Ý;KÈDÑ;QÔ;QˆDÔ�j¨Ñ7Ô7Ñ8Ð8Ð8Ý˜�kÑ*Ô*ð 		Ø;?¼?ˆDÔ�j¨Ñ7Ô7Ñ8Ð8Ð8Ý˜�jÑ)Ô)ð 	Ý;FØàÔ*Ð6ð Ô'Ð'å‘\”\Ýñ<ô <ô ð Ô�j¨Ñ7Ô7Ñ8Ð8Ð8ð	ð 	s   „ Ž
›Ú
javascriptc           
      ó~  — d| j         vr-t          ¦   «         | j         t          t          j        ¦  «        <   t          t          | j         t          j                 ¦  «        }d|vr:t          t          d¦  «        t          ¦   «         i¦  «        |t          d¦  «        <   t          t          t          t          |d         ¦  «        d         ¦  «        }t          ¦   «         }|                     t          t          j	        ¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          |› ¦  «        i¦  «         |                     t          t          t          j        ¦   «         ¦  «        ¦  «        ¦  «         |                     |                      |¦  «        ¦  «         dS )a$  
        Add Javascript which will launch upon opening this PDF.

        Args:
            javascript: Your Javascript.

        >>> output.add_js("this.print({bUI:true,bSilent:false,bShrinkToFit:true});")
        # Example: This will launch the print window when the PDF is opened.
        z/Namesz/JavaScriptz/Actionú/Sz/JSN)rp   rB   rF   ÚCAÚNAMESr   r<   re   rf   rg   rL   r�   rN   r§   ÚuuidÚuuid4rj   )rv   rö   ÚnamesÚjs_listÚjss        ry   Úadd_jszPdfWriter.add_js@  sl  € ð ˜4Ô,Ð,Ð,Ý6FÑ6HÔ6HˆDÔ�j­¬Ñ2Ô2Ñ3ÝÕ% tÔ'8½¼Ô'BÑCÔCˆØ Ð%Ð%Ý/?Ý˜HÑ%Ô%¥{¡}¤}Ð5ñ0ô 0ˆE•*˜]Ñ+Ô+Ñ,õ Ý�Õ.°°mÔ0DÑEÔEÀhÔOñ
ô 
ˆõ ÑÔˆØ
�	Š	å�2œ7Ñ#Ô#¥Z°	Ñ%:Ô%:Ý˜4Ñ Ô ¥*¨]Ñ";Ô";Ý˜5Ñ!Ô!Õ#3°z°OÑ#DÔ#Dðñ	
ô 	
ð 	
ð 	�ŠÕ+­Cµ´
±´Ñ,=Ô,=Ñ>Ô>Ñ?Ô?Ð?Ø�Š�t×'Ò'¨Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )zM
        Use :meth:`add_js` instead.

        .. deprecated:: 1.28.0
        ÚaddJSr   rŸ   )r'   r   )rv   rö   s     ry   r  zPdfWriter.addJSc  s(   € õ 	% W¨h¸Ñ@Ô@Ð@Ø�{Š{˜:Ñ&Ô&Ð&r{   ÚfilenameÚdatac           	      ó°  — t          ¦   «         }|                     |¦  «         |                     t          t          j        ¦  «        t          d¦  «        i¦  «         t          ¦   «         }|                     t          d¦  «        |i¦  «         t          ¦   «         }|                     t          t          j        ¦  «        t          d¦  «        t          t          j        ¦  «        t          |¦  «        t          t          j
        ¦  «        |i¦  «         t          ¦   «         }|                     t          t          j        ¦  «        t          t          |¦  «        |g¦  «        i¦  «         t          ¦   «         }|                     t          d¦  «        |i¦  «         | j                             t          t          j        ¦  «        |i¦  «         dS )a  
        Embed a file inside the PDF.

        Reference:
        https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
        Section 7.11.3

        Args:
            filename: The filename to display.
            data: The data in the file.
        z/EmbeddedFileú/Fz	/Filespecz/EmbeddedFilesN)r@   Úset_datare   rF   rf   rg   rB   r0   ÚFrN   ÚEFrù   rú   r<   rp   )rv   r  r  Ú
file_entryÚef_entryÚfilespecÚembedded_files_names_dictionaryÚembedded_files_dictionarys           ry   Úadd_attachmentzPdfWriter.add_attachmentl  s¦  € õ: )Ñ*Ô*ˆ
Ø×Ò˜DÑ!Ô!Ð!Ø×Ò�:¥b¤gÑ.Ô.µ
¸?Ñ0KÔ0KÐLÑMÔMÐMõ $Ñ%Ô%ˆØ�Š� DÑ)Ô)¨:Ð6Ñ7Ô7Ð7å#Ñ%Ô%ˆØ�Šå�2œ7Ñ#Ô#¥Z°Ñ%<Ô%<ÝÕ=Ô?Ñ@Ô@ÕBVØñCô Cõ Õ=Ô@ÑAÔAÀ8ðñ	
ô 	
ð 	
õ, +;Ñ*<Ô*<Ð'Ø'×.Ò.å�2œ8Ñ$Ô$¥kÝ)¨(Ñ3Ô3°XÐ>ñ'ô 'ðñ	
ô 	
ð 	
õ %5Ñ$6Ô$6Ð!Ø!×(Ò(ÝÐ(Ñ)Ô)Ð+JÐKñ	
ô 	
ð 	
ð 	Ô× Ò ¥*­R¬XÑ"6Ô"6Ð8QÐ!RÑSÔSÐSÐSÐSr{   ÚfnameÚfdatac                 óP   — t          ddd¦  «         |                      ||¦  «        S )zU
        Use :meth:`add_attachment` instead.

        .. deprecated:: 1.28.0
        ÚaddAttachmentr  rŸ   )r'   r  )rv   r  r  s      ry   r  zPdfWriter.addAttachmentÀ  s-   € õ 	% _Ð6FÈÑPÔPÐPØ×"Ò" 5¨%Ñ0Ô0Ð0r{   ÚreaderÚafter_page_appendc                 óÊ   — t          |j        ¦  «        }t          |¦  «        D ]>}|j        |         }|                      |¦  «        }t	          |¦  «        r ||¦  «         Œ?dS )aõ  
        Copy pages from reader to writer. Includes an optional callback
        parameter which is invoked after pages are appended to the writer.

        `append` should be prefered.

        Args:
            reader: a PdfReader object from which to copy page
                annotations to this writer object.  The writer's annots
                will then be updated
            after_page_append:
                Callback function that is invoked after each page is appended to
                the writer. Signature includes a reference to the appended page
                (delegates to append_pages_from_reader). The single parameter of
                the callback is a reference to the page just appended to the
                document.
        N)r‘   rw   Úranger½   Úcallable)rv   r  r  Úreader_num_pagesÚreader_page_numberÚreader_pageÚwriter_pages          ry   Úappend_pages_from_readerz"PdfWriter.append_pages_from_readerÉ  sx   € õ. ˜vœ|Ñ,Ô,Ðå"'Ð(8Ñ"9Ô"9ð 	/ð 	/ÐØ œ,Ð'9Ô:ˆKØŸ-š-¨Ñ4Ô4ˆKåÐ)Ñ*Ô*ð /Ø!Ð! +Ñ.Ô.Ð.øð	/ð 	/r{   c                 óT   — t          ddd¦  «         |                      ||¦  «         dS )z_
        Use :meth:`append_pages_from_reader` instead.

        .. deprecated:: 1.28.0
        ÚappendPagesFromReaderr  rŸ   N)r'   r  ©rv   r  r  s      ry   r  zPdfWriter.appendPagesFromReaderé  s=   € õ 	%Ø#Ð%?Àñ	
ô 	
ð 	
ð 	×%Ò% fÐ.?Ñ@Ô@Ð@Ð@Ð@r{   ÚfieldsÚflagsc           	      óV  — |                       ¦   «          t          j        |vrt          dt          ¦  «         dS t          t          |t          j                 ¦  «        ¦  «        D �]Á}|t          j                 |                              ¦   «         }i }t          j        |v r|t          j                 }|D �]n}| 	                    t          j        ¦  «        |k    rä| 	                    t          j        ¦  «        dk    rA|                     t          t          j        ¦  «        t          ||         ¦  «        i¦  «         |                     t          t          j        ¦  «        t%          ||         ¦  «        i¦  «         |r;|                     t          t          j        ¦  «        t)          |¦  «        i¦  «         �Œ
| 	                    t          j        ¦  «        |k    rA|                     t          t          j        ¦  «        t%          ||         ¦  «        i¦  «         �Œp�ŒÃdS )a–  
        Update the form field values for a given page from a fields dictionary.

        Copy field texts and values from fields to page.
        If the field links to a parent object, add the information to the parent.

        Args:
            page: Page reference from PDF writer where the
                annotations and field data will be updated.
            fields: a Python dictionary of field names (/T) and text
                values (/V)
            flags: An integer (0 to 7). The first bit sets ReadOnly, the
                second bit sets Required, the third bit sets NoExport. See
                PDF Reference Table 8.70 for details.
        z No fields to update on this pageNz/Btn)rº   ÚPGÚANNOTSr(   Ú__name__r  r‘   rœ   rª   Úgetr.   ÚTÚFTre   rF   r)   ÚASÚVrL   ÚFfrH   )rv   r£   r!  r"  ÚjÚwriter_annotÚwriter_parent_annotÚfields           ry   Úupdate_page_form_field_valuesz'PdfWriter.update_page_form_field_valuesø  s  € ð* 	×(Ò(Ñ*Ô*Ð*åŒ9˜DÐ Ð ÝÐ=½xÑHÔHÐHØˆFÝ•s˜4¥¤	œ?Ñ+Ô+Ñ,Ô,ð &	ñ &	ˆAØ¥¤	œ?¨1Ô-×8Ò8Ñ:Ô:ˆLà"$ÐÝŒy˜LÐ(Ð(Ø&2µ2´9Ô&=Ð#Øð  ñ  �Ø×#Ò#Õ$=Ô$?Ñ@Ô@ÀEÒIÐIØ#×'Ò'Õ(AÔ(DÑEÔEÈÒOÐOØ$×+Ò+å *Ý$BÔ$Eñ!"ô !"å#-¨f°U¬mÑ#<Ô#<ðñô ð ð !×'Ò'å&Õ'@Ô'BÑCÔCÕEUØ & u¤ñFô Fðñô ð ð ð Ø$×+Ò+å *Õ+DÔ+GÑ HÔ HÍ,Ø$)ñK"ô K"ðñô ð ùð )×,Ò,Õ-FÔ-HÑIÔIÈUÒRÐRØ'×.Ò.å&Õ'@Ô'BÑCÔCÕEUØ & u¤ñFô Fðñô ð ùñ5 ð&	ð &	r{   c                 óR   — t          ddd¦  «         |                      |||¦  «        S )zd
        Use :meth:`update_page_form_field_values` instead.

        .. deprecated:: 1.28.0
        ÚupdatePageFormFieldValuesr1  rŸ   )r'   r1  )rv   r£   r!  r"  s       ry   r3  z#PdfWriter.updatePageFormFieldValues:  s8   € õ 	%Ø'Ð)HÈ'ñ	
ô 	
ð 	
ð ×1Ò1°$¸ÀÑFÔFÐFr{   c                 ót  — t          t          |j        t          j                                      | ¦  «        ¦  «        | _        | j        j        | _        | j         	                    d¦  «        | _
        |                      ¦   «          | j        | j        t          d¦  «                 t          d¦  «        <   | `dS )a  
        Copy the reader document root to the writer and all sub elements,
        including pages, threads, outlines,... For partial insertion, `append`
        should be considered.

        Args:
            reader: PdfReader from the document root should be copied.
        r_   ú/KidsN)r   rB   ÚtrailerÚTKÚROOTr­   rp   r�   rt   Úraw_getrk   Ú_flattenÚflattened_pagesrF   ©rv   r  s     ry   Úclone_reader_document_rootz$PdfWriter.clone_reader_document_rootJ  sœ   € õ !Õ!1°6´>Å"Ä'Ô3J×3PÒ3PÐQUÑ3VÔ3VÑWÔWˆÔØÔ&Ô9ˆŒ
ØÔ'×/Ò/°Ñ9Ô9ˆŒØ�Š‰Œˆð Ô ð 	Ô�* XÑ.Ô.Ô/Ý�wÑÔñ	
ð Ð Ð Ð r{   c                 óR   — t          ddd¦  «         |                      |¦  «         dS )za
        Use :meth:`clone_reader_document_root` instead.

        .. deprecated:: 1.28.0
        ÚcloneReaderDocumentRootr=  rŸ   N)r'   r=  r<  s     ry   r?  z!PdfWriter.cloneReaderDocumentRoot\  s:   € õ 	%Ø%Ð'CÀWñ	
ô 	
ð 	
ð 	×'Ò'¨Ñ/Ô/Ð/Ð/Ð/r{   rw   Úinheritc                 óô  — t          t          j        ¦  «        t          t          j        ¦  «        t          t          j        ¦  «        t          t          j        ¦  «        f}|€i }|€3t          t          | j        d         ¦  «        }t          ¦   «         | _
        |€J ‚d}t          j        |v r%t          t          |t          j                 ¦  «        }|dk    rŽ|D ]}||v r||         ||<   Œt          t          t          t          |¦  «        t          j                 ¦  «        D ]?}i }t          |t           ¦  «        r||d<    | j        |                     ¦   «         |fi |¤Ž Œ@d S |dk    r‰t'          |                     ¦   «         ¦  «        D ]\  }	}
|	|vr|
||	<   Œt          t           | j                             d¦  «        ¦  «        |t          d¦  «        <   | j
                             |¦  «         d S d S )Nr_   r�   ú/Pagez/Parent)rF   r$  Ú	RESOURCESÚMEDIABOXÚCROPBOXÚROTATEr   rB   rp   r<   r;  rf   rg   r§   ri   r™   rE   r:  rœ   r©   Úitemsr9  r�   )rv   rw   r@  r�   Úinheritable_page_attributesÚtÚattrr£   ÚaddtÚattr_inÚvalues              ry   r:  zPdfWriter._flatteng  sù  € õ •r”|Ñ$Ô$Ý•r”{Ñ#Ô#Ý•r”zÑ"Ô"Ý•r”yÑ!Ô!ð	'
Ð#ð ˆ?ØˆGØˆ=ÝÕ)¨4Ô+<¸XÔ+FÑGÔGˆEÝ#.¡=¤=ˆDÔ ØÐ Ð Ð ØˆÝŒ7�eÐÐÝ•S˜%¥¤œ.Ñ)Ô)ˆAà�Š=ˆ=Ø3ð 0ð 0�Ø˜5�=�=Ø$)¨$¤K�G˜D‘MøÝ�[­$Õ/?ÀÑ*GÔ*GÍÌÔ*PÑQÔQð Bð B�Ø�Ý˜d¥NÑ3Ô3ð 6Ø15�DÐ-Ñ.Ø�”˜dŸošoÑ/Ô/°ÐAÐA¸DÐAÐAÐAÐAð	Bð Bð
 �'Š\ˆ\Ý"& w§}¢}¡¤Ñ"7Ô"7ð +ð +‘�˜ð  %Ð'Ð'Ø%*�E˜'‘NøÝ+/Ý Ô 1× 9Ò 9¸(Ñ CÔ Cñ,ô ,ˆE•*˜YÑ'Ô'Ñ(ð Ô ×'Ò'Ð(:Ñ;Ô;Ð;Ð;Ð;ð ˆ\r{   c                 ó  — |                       |¦  «         |j        t          j                                      | ¦  «        j        | _        	 |j        t          j                                      | ¦  «        | _        n# t          $ r Y nw xY wt          |¦  «        ret          t          t          t          | j                             ¦   «         ¦  «        d         ¦  «        D ]!} ||                     ¦   «         ¦  «         Œ dS dS )az  
        Create a copy (clone) of a document from a PDF file reader cloning
        section '/Root' and '/Info' and '/ID' of the pdf.

        Args:
            reader: PDF file reader instance from which the clone
                should be created.
            after_page_append:
                Callback function that is invoked after each page is appended to
                the writer. Signature includes a reference to the appended page
                (delegates to append_pages_from_reader). The single parameter of
                the callback is a reference to the page just appended to the
                document.
        r5  N)r=  r6  r7  ÚINFOr­   r�   ro   ÚIDÚ_IDró   r  r   r<   rB   rk   rœ   )rv   r  r  r£   s       ry   Úclone_document_from_readerz$PdfWriter.clone_document_from_reader‘  sÿ   € ð& 	×'Ò'¨Ñ/Ô/Ð/Ø”^¥B¤GÔ,×2Ò2°4Ñ8Ô8ÔKˆŒ
ð	Ø”~¥b¤eÔ,×2Ò2°4Ñ8Ô8ˆDŒHˆHøÝð 	ð 	ð 	ØˆDð	øøøåÐ%Ñ&Ô&ð 	5ÝÝ�TÕ"2°D´K×4JÒ4JÑ4LÔ4LÑMÔMÈgÔVñô ð 5ð 5�ð "Ð! $§/¢/Ñ"3Ô"3Ñ4Ô4Ð4Ð4ð		5ð 	5ð5ð 5s   Á/A; Á;
BÂBc                 óT   — t          ddd¦  «         |                      ||¦  «         dS )za
        Use :meth:`clone_document_from_reader` instead.

        .. deprecated:: 1.28.0
        ÚcloneDocumentFromReaderrR  rŸ   N)r'   rR  r   s      ry   rT  z!PdfWriter.cloneDocumentFromReader°  s=   € õ 	%Ø%Ð'CÀWñ	
ô 	
ð 	
ð 	×'Ò'¨Ð0AÑBÔBÐBÐBÐBr{   TÚuser_passwordÚowner_passwordÚ
use_128bitÚpermissions_flagÚuser_pwdÚ	owner_pwdc           	      óD  — |�'|�t          d¦  «        ‚t          j        d¦  «         |}|€t          d¦  «        ‚|�8|�t          d¦  «        ‚d}d}t          j        |› d|› d	�t          ¬
¦  «         |}|€|}|rd}	d}
t	          d¦  «        }nd}	d}
t	          d¦  «        }|}t          t          |||
|¦  «        ¦  «        }t          t          t          t          j	        ¦   «         ¦  «         
                    d¦  «        ¦  «                             ¦   «         ¦  «        }t          t          t          t          j        ¦   «         ¦  «         
                    d¦  «        ¦  «                             ¦   «         ¦  «        }t          ||f¦  «        | _        |
dk    rt          ||||¦  «        \  }}n |
dk    sJ ‚t!          ||
||||d¦  «        \  }}t#          ¦   «         }t%          d¦  «        |t%          t&          j        ¦  «        <   t+          |	¦  «        |t%          d¦  «        <   |	dk    r,t+          |dz  ¦  «        |t%          t&          j        ¦  «        <   t+          |
¦  «        |t%          t.          j        ¦  «        <   t          |¦  «        |t%          t.          j        ¦  «        <   t          |¦  «        |t%          t.          j        ¦  «        <   t+          |¦  «        |t%          t.          j        ¦  «        <   |                      |¦  «        | _        || _        dS )a  
        Encrypt this PDF file with the PDF Standard encryption handler.

        Args:
            user_password: The password which allows for opening
                and reading the PDF file with the restrictions provided.
            owner_password: The password which allows for
                opening the PDF files without any restrictions.  By default,
                the owner password is the same as the user password.
            use_128bit: flag as to whether to use 128bit
                encryption.  When false, 40bit encryption will be used.
                By default, this flag is on.
            permissions_flag: permissions as described in
                TABLE 3.20 of the PDF 1.7 specification. A bit value of 1 means
                the permission is grantend.
                Hence an integer value of -1 will set all flags.
                Bit position 3 is for printing, 4 is for modifying content,
                5 and 6 control annotations, 9 for form fields,
                10 for extraction of text and graphics.
        NzGPlease only set 'user_password'. The 'user_pwd' argument is deprecated.z{Please use 'user_password' instead of 'user_pwd'. The 'user_pwd' argument is deprecated and will be removed in pypdf 4.0.0.zuser_password may not be NonezIThe argument owner_pwd of encrypt is deprecated. Use owner_password only.rZ  rV  úF is deprecated as an argument and will be removed in pypdf 4.0.0. Use ú instead©ÚmessageÚcategoryræ   é   g      0@r   g      @Úutf8Fz	/Standardú/Vé   )r•   r–   r—   r˜   rš   r>   r   r   r·   Útimern   ÚdigestÚrandomr<   rQ  r   r    rB   rF   ÚSAÚFILTERrH   ÚLENGTHÚEDÚRÚOÚUÚPrj   Ú_encryptÚ_encrypt_key)rv   rU  rV  rW  rX  rY  rZ  Úold_termÚnew_termr+  ÚrevÚkeylenro  rm  ÚID_1ÚID_2rn  ÚkeyÚencrypts                      ry   ry  zPdfWriter.encrypt¿  s  € ð: ÐØÐ(Ý ð=ñô ð õ
 ”ð6ñô ð ð
 !)�ØÐ åÐ<Ñ=Ô=Ð=àÐ ØÐ)Ý ð/ñô ð ð
 '�Ø+�Ý”à#ð Jð JØ7?ðJð Jð Jõ 0ðñ ô ð ð "+�àÐ!Ø*ˆNØð 	!ØˆAØˆCÝ˜‘\”\ˆFˆFàˆAØˆCÝ˜‘[”[ˆFØˆÝ�V N°MÀ3ÈÑOÔOÑPÔPˆÝ¥¥T­$¬)©+¬+Ñ%6Ô%6×$>Ò$>¸vÑ$FÔ$FÑ GÔ G× NÒ NÑ PÔ PÑQÔQˆÝ¥¥T­&¬-©/¬/Ñ%:Ô%:×$BÒ$BÀ6Ñ$JÔ$JÑ KÔ K× RÒ RÑ TÔ TÑUÔUˆÝ  d˜|Ñ,Ô,ˆŒØ�!Š8ˆ8Ý˜M¨1¨a°Ñ6Ô6‰FˆAˆsˆsà˜!’8�8�8�8Ý˜M¨3°¸¸1¸dÀEÑJÔJ‰FˆAˆsÝ"Ñ$Ô$ˆÝ)3°KÑ)@Ô)@ˆ•
�2œ9Ñ%Ô%Ñ&Ý$0°¡O¤Oˆ•
˜4Ñ Ô Ñ!Ø�Š6ˆ6Ý-9¸&À1¹*Ñ-EÔ-EˆG•J�rœyÑ)Ô)Ñ*Ý$0°Ñ$5Ô$5ˆ•
�2œ4Ñ Ô Ñ!Ý$4°QÑ$7Ô$7ˆ•
�2œ4Ñ Ô Ñ!Ý$4°QÑ$7Ô$7ˆ•
�2œ4Ñ Ô Ñ!Ý$0°¡O¤Oˆ•
�2œ4Ñ Ô Ñ!Ø×(Ò(¨Ñ1Ô1ˆŒØˆÔÐÐr{   Ústreamc                 óÀ  — t          |d¦  «        r'd|j        vrt          d|j        › d�t          ¦  «         | j        s|                      | j        ¦  «        | _        |                      | j        ¦  «         |  	                    |¦  «        }|  
                    ||¦  «        }|                      |¦  «         |                     t          d|› d�¦  «        ¦  «         d S )NÚmodeÚbzFile <zH> to write to is not in binary mode. It may not be written to correctly.z
startxref
z
%%EOF
)rŽ   r|  r(   Únamer&  rt   rj   rp   Ú_sweep_indirect_referencesÚ_write_headerÚ_write_xref_tableÚ_write_trailerrƒ   r$   )rv   rz  Úobject_positionsÚxref_locations       ry   Úwrite_streamzPdfWriter.write_stream  só   € Ý�6˜6Ñ"Ô"ð 	 s°&´+Ð'=Ð'=Ýð6˜œð 6ð 6ð 6åñô ð ð Œzð 	=Ø×)Ò)¨$Ô*;Ñ<Ô<ˆDŒJð 	×'Ò'¨¬
Ñ3Ô3Ð3à×-Ò-¨fÑ5Ô5ÐØ×.Ò.¨vÐ7GÑHÔHˆØ×Ò˜FÑ#Ô#Ð#Ø�Š•RÐ@¨Ð@Ð@Ð@ÑAÔAÑBÔBÐBÐBÐBr{   c                 ó
  — d}|dk    rt          d|› d�¦  «        ‚t          |t          t          f¦  «        rt	          |d¦  «        }d| _        d}|                      |¦  «         | j        r|                     ¦   «          ||fS )a­  
        Write the collection of pages added to this object out as a PDF file.

        Args:
            stream: An object to write the file to.  The object can support
                the write method and the tell method, similar to a file object, or
                be a file path, just like the fileobj, just named it stream to keep
                existing workflow.

        Returns:
            A tuple (bool, IO)
        Fr[   zOutput(stream=z) is empty.ÚwbT)r•   r™   r§   r   r   ru   r…  Úclose)rv   rz  Úmy_files      ry   rƒ   zPdfWriter.write9  s”   € ð ˆà�RŠ<ˆ<ÝÐA¨fÐAÐAÐAÑBÔBÐBå�f�s¥D˜kÑ*Ô*ð 	Ý˜F DÑ)Ô)ˆFØ!%ˆDÔØˆGà×Ò˜&Ñ!Ô!Ð!àÔð 	Ø�LŠL‰NŒNˆNà˜ˆÐr{   c           	      ó   — g }|                      | j        dz   ¦  «         |                      d¦  «         t          | j        ¦  «        D �]ƒ\  }}| j        |         }|��m|dz   }|                     |                     ¦   «         ¦  «         |                      t          t          |¦  «        ¦  «        dz   ¦  «         d }t          | d¦  «        rÒ|| j	        j
        k    rÂt          j        d|dz   ¦  «        d d…         }t          j        dd¦  «        d d	…         }| j        |z   |z   }t          |¦  «        t          | j        ¦  «        d
z   k    sJ ‚t          |¦  «                             ¦   «         }	|	d t#          dt          | j        ¦  «        d
z   ¦  «        …         }|                     ||¦  «         |                      d¦  «         �Œ…|S )Nó   
s   %âãÏÓ
r   s    0 obj
rp  z<ira  r   ræ   é   é   s   
endobj
)rƒ   r‡   Ú	enumeraterb   r�   Útellr$   r§   rŽ   rp  r›   ÚstructÚpackrq  r‘   r   rf  ÚminÚwrite_to_stream)
rv   rz  rƒ  Úir‹   r›   rx  Úpack1Úpack2Úmd5_hashs
             ry   r€  zPdfWriter._write_headerW  s°  € ØÐØ�Š�T”_ uÑ,Ñ-Ô-Ð-Ø�ŠÐ+Ñ,Ô,Ð,Ý ¤Ñ.Ô.ð 	,ñ 	,‰FˆAˆsØ”- Ô"ˆCà‰Ø˜A™�Ø ×'Ò'¨¯ª©¬Ñ6Ô6Ð6Ø—’�R¥ E¡
¤
™^œ^¨kÑ9Ñ:Ô:Ð:Ø�Ý˜4 Ñ,Ô,ð J°¸$¼-Ô:MÒ1MÐ1MÝ"œK¨¨a°!©eÑ4Ô4°R°a°RÔ8�EÝ"œK¨¨aÑ0Ô0°°!°Ô4�EØÔ+¨eÑ3°eÑ;�CÝ˜s™8œ8­¨DÔ,=Ñ(>Ô(>ÀÑ(BÒCÐCÐCÐCÝ" 3™xœxŸšÑ0Ô0�HØ"Ð#H¥S¨­S°Ô1BÑ-CÔ-CÀaÑ-GÑ%HÔ%HÐ#HÔI�CØ×#Ò# F¨CÑ0Ô0Ð0Ø—’˜]Ñ+Ô+Ð+ùØÐr{   rƒ  c           	      ó€  — |                      ¦   «         }|                     d¦  «         |                     t          dt          | j        ¦  «        dz   › d�¦  «        ¦  «         |                     t          dd›ddd	›d
�¦  «        ¦  «         |D ],}|                     t          |d›ddd	›d�¦  «        ¦  «         Œ-|S )Ns   xref
z0 r   ú
r   z0>10ú iÿÿ  z0>5z f 
z n 
)r�  rƒ   r$   r‘   rb   )rv   rz  rƒ  r„  Úoffsets        ry   r�  zPdfWriter._write_xref_tablen  sÐ   € ØŸš™œˆØ�Š�YÑÔÐØ�Š•RÐ7�S ¤Ñ/Ô/°!Ñ3Ð7Ð7Ð7Ñ8Ô8Ñ9Ô9Ð9Ø�Š•R˜1Ð4Ð4Ð4 EÐ4Ð4Ð4Ð4Ñ5Ô5Ñ6Ô6Ð6Ø&ð 	<ð 	<ˆFØ�LŠL�˜vÐ9Ð9Ð9¨QÐ9Ð9Ð9Ð9Ñ:Ô:Ñ;Ô;Ð;Ð;ØÐr{   c           	      óT  — |                      d¦  «         t          ¦   «         }|                     t          t          j        ¦  «        t          t          | j        ¦  «        dz   ¦  «        t          t          j	        ¦  «        | j
        t          t          j        ¦  «        | j        i¦  «         t          | d¦  «        r!| j        |t          t          j        ¦  «        <   t          | d¦  «        r!| j        |t          t          j        ¦  «        <   |                     |d ¦  «         d S )Ns   trailer
r   rQ  rp  )rƒ   rB   re   rF   r7  ÚSIZErH   r‘   rb   r8  rt   rO  ro   rŽ   rQ  rP  rp  ÚENCRYPTr“  )rv   rz  r6  s      ry   r‚  zPdfWriter._write_trailerw  sð   € Ø�Š�\Ñ"Ô"Ð"Ý"Ñ$Ô$ˆØ�Šå�2œ7Ñ#Ô#¥\µ#°d´mÑ2DÔ2DÀqÑ2HÑ%IÔ%IÝ�2œ7Ñ#Ô# T¤ZÝ�2œ7Ñ#Ô# T¤Zðñ	
ô 	
ð 	
õ �4˜ÑÔð 	2Ø)-¬ˆG•J�rœuÑ%Ô%Ñ&Ý�4˜Ñ$Ô$ð 	<Ø.2¬mˆG•J�rœzÑ*Ô*Ñ+Ø×Ò ¨Ñ-Ô-Ð-Ð-Ð-r{   Úinfosc                 óð   — i }t          |                     ¦   «         ¦  «        D ]$\  }}t          |¦  «        |t          |¦  «        <   Œ%|                      | j        ¦  «                             |¦  «         dS )z¹
        Add custom metadata to the output.

        Args:
            infos: a Python dictionary where each key is a field
                and each value is your new metadata.
        N)r©   rG  rN   rF   rœ   ro   re   )rv   rŸ  Úargsrx  rM  s        ry   Úadd_metadatazPdfWriter.add_metadata‡  sq   € ð ˆÝ˜uŸ{š{™}œ}Ñ-Ô-ð 	@ð 	@‰JˆC�Ý$8¸Ñ$?Ô$?ˆD•˜C‘”Ñ!Ð!Ø�Š˜œ
Ñ#Ô#×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0r{   c                 óR   — t          ddd¦  «         |                      |¦  «         dS )zS
        Use :meth:`add_metadata` instead.

        .. deprecated:: 1.28.0
        ÚaddMetadatar¢  rŸ   N)r'   r¢  )rv   rŸ  s     ry   r¤  zPdfWriter.addMetadata”  s0   € õ 	% ]°NÀGÑLÔLÐLØ×Ò˜%Ñ Ô Ð Ð Ð r{   Úrootc                 ó~  — t          j        ¦   «         }g }d }g }d }|                     ||||f¦  «         t          |¦  «        �rø|                     ¦   «         \  }}}}t          |t          t          f¦  «        r<|                     ¦   «         D ]&\  }}	|                     |	|||�||gz   ng f¦  «         Œ'n“t          |t          ¦  «        r~|j
        | k    rs|                      |¦  «        }t          |¦  «        |vrM|                     t          |¦  «        ¦  «         |                     |                     ¦   «         d d g f¦  «         t          |t          t          f¦  «        rÆt          |t          ¦  «        r(|                      |                      |¦  «        ¦  «        }g }
||         |k    r'|                     ¦   «         gd„ |D ¦   «         z   }
|||<   |
D ]Q}| j                             |d ¦  «        }|�2|                     ¦   «         }|�|| j        |                     ¦   «         <   ŒRt          |¦  «        �°öd S d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r¢   )Ú
hash_value)Ú.0Úgrant_parents     ry   ú
<listcomp>z8PdfWriter._sweep_indirect_references.<locals>.<listcomp>Þ  s1   € ð =ð =ð =Ø6B˜×/Ò/Ñ1Ô1ð=ð =ð =r{   )ÚcollectionsÚdequer�   r‘   Úpopr™   r<   rB   rG  rE   r�   Ú_resolve_indirect_objectr§   rœ   rK   rj   r¨  rc   )rv   r¥  ÚstackÚ
discoveredÚparentÚgrant_parentsÚ	key_or_idr  rx  rM  Úupdate_hashesÚold_hashr�   Úindirect_reference_objs                 ry   r  z$PdfWriter._sweep_indirect_references�  s¡  € õ, ÔÑÔð 	ð ˆ
ØˆØ)+ˆØˆ	ð 	�Š�d˜F I¨}Ð=Ñ>Ô>Ð>å�%‰jŒjñ 1	3Ø5:·Y²Y±[´[Ñ2ˆD�&˜) ]õ ˜$¥Õ.>Ð ?Ñ@Ô@ð JØ"&§*¢*¡,¤,ð ð ‘J�C˜Ø—L’Là!Ø ØØ8>Ð8J˜M¨V¨HÑ4Ð4ÐPRð	ñô ð ð ðõ ˜D¥.Ñ1Ô1ð JØ”8˜tÒ#Ð#Ø×8Ò8¸Ñ>Ô>�Då˜4‘y”y¨
Ð2Ð2Ø"×)Ò)­#¨d©)¬)Ñ4Ô4Ð4ØŸš d§o¢oÑ&7Ô&7¸¸tÀRÐ%HÑIÔIÐIõ ˜&Õ#3µ[Ð"AÑBÔBð 3Ý˜d¥LÑ1Ô1ð Qð  ×8Ò8¸×9IÒ9IÈ$Ñ9OÔ9OÑPÔP�Dà "�ð ˜)Ô$¨Ò,Ð,Ø%+×%6Ò%6Ñ%8Ô%8Ð$9ð =ð =ØFSð=ñ =ô =ñ %�Mð )-�F˜9Ñ%ð !.ð 	3ð 	3�HØ)-Ô)9×)=Ò)=¸hÈÑ)MÔ)MÐ&à)Ð5Ø1C×1NÒ1NÑ1PÔ1PÐ.à1Ð=ð !3ð !Ô,Ø 6× AÒ AÑ CÔ Cñøõ_ �%‰jŒjñ 1	3ð 1	3ð 1	3ð 1	3ð 1	3r{   c                 óF  — t          |j        d¦  «        r2|j        j        j        r!t	          d|j        j        j        › �¦  «        ‚|j        | k    r|S |j                             |¦  «        }|€4t          d|j        j	        › d|› d�t          ¦  «         t          ¦   «         }|                     ¦   «         }|| j        v r| j        |         S |j        | k    rt          |j        d| ¦  «        | j        |<   n|                      |¦  «        | j        |<   | j        |         S )a   
        Resolves indirect object to this pdf indirect objects.

        If it is a new object then it is added to self._objects
        and new idnum is given and generation is always 0.

        Args:
            data:

        Returns:
            The resolved indirect object
        rz  zI/O operation on closed file: NzUnable to resolve [rè   z], returning NullObject insteadr   )rŽ   r�   rz  Úclosedr•   r~  rœ   r(   Ú	__class__r&  rG   r¨  rc   rE   r›   rj   )rv   r  Úreal_objr¨  s       ry   r¯  z"PdfWriter._resolve_indirect_objectï  sA  € õ �4”8˜XÑ&Ô&ð 	V¨4¬8¬?Ô+Að 	VÝÐT¸d¼h¼oÔ>RÐTÐTÑUÔUÐUàŒ8�tÒÐØˆKð ”8×&Ò& tÑ,Ô,ˆàÐÝð/ d¤nÔ&=ð /ð /Àð /ð /ð /åñô ð õ
 "‘|”|ˆHà×(Ò(Ñ*Ô*ˆ
ð ˜Ô)Ð)Ð)ØÔ# JÔ/Ð/àŒ8�tÒÐÝ+9¸$¼*ÀaÈÑ+NÔ+NˆDÔ˜ZÑ(Ð(ð ,0×+;Ò+;¸HÑ+EÔ+EˆDÔ˜ZÑ(àÔ 
Ô+Ð+r{   c                 ó–   — | j                              |¦  «        dz   }t          |d| ¦  «        }|                     ¦   «         |k    sJ ‚|S ©Nr   r   )rb   rÀ   rE   rœ   )rv   r‹   r›   Úrefs       ry   Úget_referencezPdfWriter.get_reference  sM   € Ø”×#Ò# CÑ(Ô(¨1Ñ,ˆÝ˜U A tÑ,Ô,ˆØ�~Š~ÑÔ 3Ò&Ð&Ð&Ð&Øˆ
r{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )zT
        Use :meth:`get_reference` instead.

        .. deprecated:: 1.28.0
        ÚgetReferencer¿  rŸ   )r'   r¿  r’   s     ry   rÁ  zPdfWriter.getReference!  s*   € õ 	% ^°_ÀgÑNÔNÐNØ×!Ò! #Ñ&Ô&Ð&r{   c                 óÄ  — t           j        | j        v rst          t          | j        t           j                 ¦  «        }| j                             |¦  «        dz   }t          |d| ¦  «        }|                     ¦   «         |k    sJ ‚nYt	          ¦   «         }| 	                    i ¦  «         |  
                    |¦  «        }|| j        t          t           j        ¦  «        <   |S r½  )rq   ÚOUTLINESrp   r   rM   rb   rÀ   rE   rœ   re   rj   rF   )rv   Úoutliner›   Úoutline_refs       ry   Úget_outline_rootzPdfWriter.get_outline_root*  sÀ   € ÝŒ;˜$Ô+Ð+Ð+å�: tÔ'8½¼Ô'EÑFÔFˆGØ”M×'Ò'¨Ñ0Ô0°1Ñ4ˆEÝ(¨°°4Ñ8Ô8ˆKØ×)Ò)Ñ+Ô+¨wÒ6Ð6Ð6Ð6Ð6å ‘l”lˆGØ�NŠN˜2ÑÔÐØ×*Ò*¨7Ñ3Ô3ˆKØ9DˆDÔ�j­¬Ñ5Ô5Ñ6àˆr{   c                 óà   — t           j        | j        v r+t          t          | j        t           j                 ¦  «        }n/t	          ¦   «         }|| j        t          t           j        ¦  «        <   |S )uÅ   
        The list of threads.

        See Â§8.3.2 from PDF 1.7 spec.

        Returns:
            An array (possibly empty) of Dictionaries with ``/F`` and
            ``/I`` properties.
        )rq   ÚTHREADSrp   r   r<   rF   )rv   Úthreadss     ry   Úget_threads_rootzPdfWriter.get_threads_root9  sT   € õ Œ:˜Ô*Ð*Ð*å�;¨Ô(9½"¼*Ô(EÑFÔFˆGˆGå!‘m”mˆGØ8?ˆDÔ�j­¬Ñ4Ô4Ñ5Øˆr{   c                 ó*   — |                       ¦   «         S )uª   
        Read-only property for the list of threads.

        See Â§8.3.2 from PDF 1.7 spec.

        Each element is a dictionaries with ``/F`` and ``/I`` keys.
        )rÊ  r}   s    ry   rÉ  zPdfWriter.threadsK  s   € ð ×$Ò$Ñ&Ô&Ð&r{   c                 óL   — t          ddd¦  «         |                      ¦   «         S )zW
        Use :meth:`get_outline_root` instead.

        .. deprecated:: 1.28.0
        ÚgetOutlineRootrÆ  rŸ   )r'   rÆ  r}   s    ry   rÍ  zPdfWriter.getOutlineRootV  s*   € õ 	%Ð%5Ð7IÈ7ÑSÔSÐSØ×$Ò$Ñ&Ô&Ð&r{   c                 ó”  — t           j        | j        v �r†t          | j        t           j                 t          ¦  «        �r[t          t          | j        t           j                 ¦  «        }|j        }t           j        |v r²t          |t           j                 t          ¦  «        r�t          t          |t           j                 ¦  «        }|j        }t           j        |v r't          t          |t           j                 ¦  «        }�nCt          ¦   «         }||t          t           j        ¦  «        <   �nt	          ¦   «         }|  
                    |¦  «        }||t          t           j        ¦  «        <   t          ¦   «         }||t          t           j        ¦  «        <   n­t	          ¦   «         }|  
                    |¦  «        }|| j        t          t           j        ¦  «        <   t	          ¦   «         }|  
                    |¦  «        }||t          t           j        ¦  «        <   t          ¦   «         }||t          t           j        ¦  «        <   |S rŠ   )rù   rú   rp   r™   rB   r   r�   ÚDESTSr<   rF   rj   )rv   rý   Ú	names_refÚdestsÚ	dests_refÚnds         ry   Úget_named_dest_rootzPdfWriter.get_named_dest_root_  s·  € ÝŒ8�tÔ(Ð(Ñ(­ZØÔ�bœhÔ'Õ)9ñ.
ô .
Ñ(õ Õ)¨4Ô+<½R¼XÔ+FÑGÔGˆEØÔ0ˆIÝŒx˜5Ð Ð ¥Z°µb´h´ÕAQÑ%RÔ%RÐ åÕ-¨uµR´X¬Ñ?Ô?�Ø!Ô4�	Ý”8˜uÐ$Ð$å�k¨5µ´¬?Ñ;Ô;�B‘Bå$™œ�BØ24�E�*¥R¤XÑ.Ô.Ñ/Ñ/å(Ñ*Ô*�Ø ×,Ò,¨UÑ3Ô3�	Ø.7�•j¥¤Ñ*Ô*Ñ+Ý ‘]”]�Ø.0�•j¥¤Ñ*Ô*Ñ+Ð+õ %Ñ&Ô&ˆEØ×(Ò(¨Ñ/Ô/ˆIØ6?ˆDÔ�j­¬Ñ2Ô2Ñ3Ý$Ñ&Ô&ˆEØ×(Ò(¨Ñ/Ô/ˆIØ*3ˆE•*�RœXÑ&Ô&Ñ'Ý‘”ˆBØ*,ˆE•*�RœXÑ&Ô&Ñ'àˆ	r{   c                 óL   — t          ddd¦  «         |                      ¦   «         S )zZ
        Use :meth:`get_named_dest_root` instead.

        .. deprecated:: 1.28.0
        ÚgetNamedDestRootrÔ  rŸ   )r'   rÔ  r}   s    ry   rÖ  zPdfWriter.getNamedDestRoot‚  s+   € õ 	%Ð%7Ð9NÐPWÑXÔXÐXØ×'Ò'Ñ)Ô)Ð)r{   Úpage_destinationr²  Úbeforec                 ó„  — |�|�t          d¦  «        ‚|�'d}d}t          j        |› d|› d�t          ¬¦  «         |}|€t          d¦  «        ‚|€|                      ¦   «         }t          t          |                     ¦   «         ¦  «        }|                      |¦  «        }|�|j	        }| 
                    ||| ¦  «         |S )Nz[The argument dest of add_outline_item_destination is deprecated. Use page_destination only.rð   r×  r\  r]  r^  ú page_destination may not be None)r•   r–   r—   r˜   rÆ  r   rM   rœ   rj   r�   Úinsert_child)rv   r×  r²  rØ  rð   rr  rs  Úpage_destination_refs           ry   Úadd_outline_item_destinationz&PdfWriter.add_outline_item_destination‹  s
  € ð Ð'¨DÐ,<Ýð9ñô ð ð ÐØˆHØ)ˆHÝŒMàð Fð FØ3;ðFð Fð Fõ ,ðñ ô ð ð  $ÐØÐ#åÐ?Ñ@Ô@Ð@àˆ>Ø×*Ò*Ñ,Ô,ˆFå•j &×"3Ò"3Ñ"5Ô"5Ñ6Ô6ˆØ#×/Ò/Ð0@ÑAÔAÐØÐØÔ.ˆFØ×ÒÐ0°&¸$Ñ?Ô?Ð?à#Ð#r{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )zb
        Use :meth:`add_outline_item_destination` instead.

        .. deprecated:: 2.9.0
        Úadd_bookmark_destinationrÝ  rŸ   ©r'   rÝ  ©rv   rð   r²  s      ry   rß  z"PdfWriter.add_bookmark_destination±  s6   € õ 	%Ø&Ð(FÈñ	
ô 	
ð 	
ð ×0Ò0°°vÑ>Ô>Ð>r{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )zc
        Use :meth:`add_outline_item_destination` instead.

        .. deprecated:: 1.28.0
        ÚaddBookmarkDestinationrÝ  rŸ   rà  rá  s      ry   rã  z PdfWriter.addBookmarkDestinationÀ  s6   € õ 	%Ø$Ð&DÀgñ	
ô 	
ð 	
ð ×0Ò0°°vÑ>Ô>Ð>r{   Úoutline_item)Úbookmarkc                 ó6  — t          ¦   «         }t          |                     ¦   «         ¦  «        D ]$\  }}||t          t	          |¦  «        ¦  «        <   Œ%|                     |¦  «         d|v r–t          ¦   «         }t          t          |d         ¦  «        }t          |                     ¦   «         ¦  «        D ]$\  }}||t          t	          |¦  «        ¦  «        <   Œ%|                      |¦  «        }	|	|t          d¦  «        <   |  	                    |||¦  «        S )Nú/A)
rM   r©   rG  rF   r§   re   rB   r   rj   rÝ  )
rv   rä  r²  rØ  Úoutline_item_objectÚkÚvr¤   Úa_dictÚ
action_refs
             ry   Úadd_outline_item_dictzPdfWriter.add_outline_item_dictÍ  s  € õ )™lœlÐÝ˜×+Ò+Ñ-Ô-Ñ.Ô.ð 	8ð 	8‰DˆAˆqØ67Ð¥
­3¨q©6¬6Ñ 2Ô 2Ñ3Ð3Ø×"Ò" <Ñ0Ô0Ð0à�<ÐÐÝ%Ñ'Ô'ˆFÝÕ*¨L¸Ô,>Ñ?Ô?ˆFÝ˜VŸ\š\™^œ^Ñ,Ô,ð /ð /‘��1Ø-.�•z¥# a¡&¤&Ñ)Ô)Ñ*Ð*Ø×)Ò)¨&Ñ1Ô1ˆJØ4>Ð¥
¨4Ñ 0Ô 0Ñ1à×0Ò0Ð1DÀfÈfÑUÔUÐUr{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )z[
        Use :meth:`add_outline_item_dict` instead.

        .. deprecated:: 2.9.0
        Úadd_bookmark_dictrí  rŸ   ©r'   rí  ©rv   rä  r²  s      ry   rï  zPdfWriter.add_bookmark_dictã  s6   € õ 	%ØÐ!8¸'ñ	
ô 	
ð 	
ð ×)Ò)¨,¸Ñ?Ô?Ð?r{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )z\
        Use :meth:`add_outline_item_dict` instead.

        .. deprecated:: 1.28.0
        ÚaddBookmarkDictrí  rŸ   rð  rñ  s      ry   ró  zPdfWriter.addBookmarkDictñ  s6   € õ 	%ØÐ6¸ñ	
ô 	
ð 	
ð ×)Ò)¨,¸Ñ?Ô?Ð?r{   FÚtitleÚcolorÚboldÚitalicrî   Úpagenumc
           
      ó€  — t          |t          ¦  «        r"|�|€|}|                      |||d||||¦  «        S |�|	�t          d¦  «        ‚|€d}
�n/t          |t          ¦  «        r|}net          |t
          ¦  «        r|j        }nHt          |t          ¦  «        r3	 | j        |         j        }n# t          $ r t          |¦  «        }Y nw xY w|€&t          d|› �t          ¦  «         t          ¦   «         }t          t          d|z   dz   ¦  «        ||¦  «        }|                      t#          t          t$          j        ¦  «        |j        t          t$          j        ¦  «        t          d¦  «        i¦  «        ¦  «        }
t-          |
||||¦  «        }|€|                      ¦   «         }|                      |||¦  «        S )aÍ  
        Add an outline item (commonly referred to as a "Bookmark") to the PDF file.

        Args:
            title: Title to use for this outline item.
            page_number: Page number this outline item will point to.
            parent: A reference to a parent outline item to create nested
                outline items.
            before:
            color: Color of the outline item's font as a red, green, blue tuple
                from 0.0 to 1.0 or as a Hex String (#RRGGBB)
            bold: Outline item font is bold
            italic: Outline item font is italic
            fit: The fit of the destination page.

        Returns:
            The added outline item as an indirect object.
        NúMThe argument pagenum of add_outline_item is deprecated. Use page_number only.zcan not find reference of page ú/z outline itemú/GoTo)r™   rC   Úadd_outline_itemr•   rE   r   r�   rš   rw   Ú
IndexErrorrH   r(   r&  rG   rA   rF   rj   rB   r1   ÚDrô   ÚSÚ_create_outline_itemrÆ  rÝ  )rv   rô  rË   r²  rØ  rõ  rö  r÷  rî   rø  rì  Úpage_refrð   rä  s                 ry   rý  zPdfWriter.add_outline_itemÿ  sþ  € õ> �f�cÑ"Ô"ð 	Øˆ ;Ð#6Ø!�Ø×(Ò(Ø�{ F¨D°&¸%ÀÀvñô ð ð Ð" wÐ':Ýð(ñô ð ð ÐØˆJ‰Jå˜+¥~Ñ6Ô6ð 9Ø&��Ý˜K­Ñ4Ô4ð 9Ø&Ô9��Ý˜K­Ñ-Ô-ð 9ð9Ø#œz¨+Ô6ÔI�H�HøÝ!ð 9ð 9ð 9Ý+¨KÑ8Ô8�H�H�Hð9øøøàÐÝØC°kÐCÐCÝñô ð õ &™<œ<�ÝÝ˜3 ™;¨Ñ8Ñ9Ô9ØØñô ˆDð ×)Ò)Ý å"Õ#6Ô#8Ñ9Ô9¸4¼?Ý"Õ#6Ô#8Ñ9Ô9½:ÀgÑ;NÔ;Nðñô ñô ˆJõ ,¨J¸¸uÀfÈdÑSÔSˆàˆ>Ø×*Ò*Ñ,Ô,ˆFØ×0Ò0°¸vÀvÑNÔNÐNs   ÂB/ Â/CÃ
Cú/Fitr¡  c                 óx   — t          ddd¦  «         |                      ||||||t          ||¬¦  «        ¦  «        S )zV
        Use :meth:`add_outline_item` instead.

        .. deprecated:: 2.9.0
        Úadd_bookmarkrý  rŸ   ©Úfit_typeÚfit_args©r'   rý  rC   ©	rv   rô  rø  r²  rõ  rö  r÷  rî   r¡  s	            ry   r  zPdfWriter.add_bookmarkO  sQ   € õ  	% ^Ð5GÈÑQÔQÐQØ×$Ò$ØØØØØØÝ˜ tÐ,Ñ,Ô,ñ
ô 
ð 	
r{   c                 óz   — t          ddd¦  «         |                      |||d|||t          ||¬¦  «        ¦  «        S )zW
        Use :meth:`add_outline_item` instead.

        .. deprecated:: 1.28.0
        ÚaddBookmarkrý  rŸ   Nr  r	  r
  s	            ry   r  zPdfWriter.addBookmarkj  sT   € õ  	% ]Ð4FÈÑPÔPÐPØ×$Ò$ØØØØØØØÝ˜ tÐ,Ñ,Ô,ñ	
ô 	
ð 		
r{   c                 ó    — t          d¦  «        ‚)NzIThis method is not yet implemented. Use :meth:`add_outline_item` instead.)ÚNotImplementedErrorr}   s    ry   Úadd_outlinezPdfWriter.add_outline†  s   € Ý!ØWñ
ô 
ð 	
r{   Údestinationc                 ó^  — |                       ¦   «         }d}|t          |¦  «        k     r_|||         k     r;|                     ||¦  «         |                     |t          |¦  «        ¦  «         d S |dz  }|t          |¦  «        k     °_|                     t          |¦  «        |g¦  «         d S )Nr   ræ   )rÔ  r‘   rÃ   rL   Úextend)rv   rô  r  rÓ  r”  s        ry   Úadd_named_destination_arrayz%PdfWriter.add_named_destination_array‹  s­   € ð ×%Ò%Ñ'Ô'ˆØˆØ•#�b‘'”'ŠkˆkØ�r˜!”uŠ}ˆ}Ø—	’	˜!˜[Ñ)Ô)Ð)Ø—	’	˜!Õ-¨eÑ4Ô4Ñ5Ô5Ð5Ø�à�Q‘�ð •#�b‘'”'Škˆkð 	�	Š	Õ# EÑ*Ô*¨KÐ8Ñ9Ô9Ð9Øˆr{   c                 ó(  — |�|�t          d¦  «        ‚|�'d}d}t          j        |› d|› d�t          ¬¦  «         |}|€t          d¦  «        ‚|                      |j        ¦  «        }|                      t          d|d	         ¦  «        |¦  «         |S )
Nz[The argument dest of add_named_destination_object is deprecated. Use page_destination only.rð   r×  r\  r]  r^  rÚ  rL   ú/Title)r•   r–   r—   r˜   rj   rô   r  r   )rv   r×  rð   rr  rs  rÜ  s         ry   Úadd_named_destination_objectz&PdfWriter.add_named_destination_objectš  sæ   € ð
 Ð'¨DÐ,<Ýð9ñô ð ð ÐØˆHØ)ˆHÝŒMàð Fð FØ3;ðFð Fð Fõ ,ðñ ô ð ð  $ÐØÐ#ÝÐ?Ñ@Ô@Ð@à#×/Ò/Ð0@Ô0KÑLÔLÐØ×(Ò(ÝÐ#Ð%5°hÔ%?Ñ@Ô@ÐBVñ	
ô 	
ð 	
ð $Ð#r{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )zc
        Use :meth:`add_named_destination_object` instead.

        .. deprecated:: 1.28.0
        ÚaddNamedDestinationObjectr  rŸ   )r'   r  rõ   s     ry   r  z#PdfWriter.addNamedDestinationObject¹  s4   € õ 	%Ø'Ð)GÈñ	
ô 	
ð 	
ð ×0Ò0°Ñ6Ô6Ð6r{   c           
      ó  — |�|�t          d¦  «        ‚|�'d}d}t          j        |› d|› d�t          ¬¦  «         |}|€t          d¦  «        ‚|                      | j        ¦  «        t          j                 |         }t          ¦   «         }| 	                    t          t          j        ¦  «        t          |t          t          j        ¦  «        t!          d¦  «        g¦  «        t          t          j        ¦  «        t          d	¦  «        i¦  «         |                      |¦  «        }|                      ¦   «         }	t)          |t*          ¦  «        st+          t-          |¦  «        ¦  «        }|	                     ||g¦  «         |S )
Nrú  rø  rË   r\  r]  r^  zpage_number may not be Nonei:  rü  )r•   r–   r—   r˜   rœ   rk   rf   ri   rB   re   rF   r1   rÿ  r<   r8   ÚFIT_HrH   r   rj   rÔ  r™   rL   r§   r  )
rv   rô  rË   rø  rr  rs  r  rð   Údest_refrÓ  s
             ry   Úadd_named_destinationzPdfWriter.add_named_destinationÆ  s–  € ð Ð" wÐ':Ýð(ñô ð ð ÐØ ˆHØ$ˆHÝŒMàð Fð FØ3;ðFð Fð Fõ ,ðñ ô ð ð "ˆKØÐÝÐ:Ñ;Ô;Ð;Ø—?’? 4¤;Ñ/Ô/µ´Ô8¸ÔEˆÝÑ!Ô!ˆØ�ŠåÕ.Ô0Ñ1Ô1µ;Ø�z­/Ô*?Ñ@Ô@Å,ÈsÑBSÔBSÐTñ4ô 4õ Õ.Ô0Ñ1Ô1µ:¸gÑ3FÔ3Fð	ñ	
ô 	
ð 	
ð ×#Ò# DÑ)Ô)ˆØ×%Ò%Ñ'Ô'ˆÝ˜%Õ!1Ñ2Ô2ð 	1Ý$¥S¨¡Z¤ZÑ0Ô0ˆEØ
�	Š	�5˜(Ð#Ñ$Ô$Ð$Øˆr{   c                 óP   — t          ddd¦  «         |                      ||¦  «        S )z\
        Use :meth:`add_named_destination` instead.

        .. deprecated:: 1.28.0
        ÚaddNamedDestinationr  rŸ   )r'   r  )rv   rô  rø  s      ry   r  zPdfWriter.addNamedDestinationð  s6   € õ 	%Ø!Ð#:¸Gñ	
ô 	
ð 	
ð ×)Ò)¨%°Ñ9Ô9Ð9r{   c                 ó:  — t          t          |                      | j        ¦  «        ¦  «        }t          t          |t
          j                 ¦  «        }|D ]E}t          t          |                      |¦  «        ¦  «        }t          j        |v r|t          j        = ŒFdS )z.Remove links and annotations from this output.N)	r   rB   rœ   rk   r<   rf   ri   r$  r%  )rv   Úpg_dictrw   r£   r  s        ry   Úremove_linkszPdfWriter.remove_linksý  sƒ   € åÕ'¨¯ª¸¼Ñ)EÔ)EÑFÔFˆÝ•[ '­"¬'Ô"2Ñ3Ô3ˆØð 	(ð 	(ˆDÝÕ,¨d¯oªo¸dÑ.CÔ.CÑDÔDˆHÝŒy˜HÐ$Ð$Ø�RœYÐ'øð	(ð 	(r{   c                 óL   — t          ddd¦  «         |                      ¦   «         S )zS
        Use :meth:`remove_links` instead.

        .. deprecated:: 1.28.0
        ÚremoveLinksr!  rŸ   )r'   r!  r}   s    ry   r#  zPdfWriter.removeLinks  s(   € õ 	% ]°NÀGÑLÔLÐLØ× Ò Ñ"Ô"Ð"r{   Úignore_byte_string_objectc                 ó  — t          t          |                      | j        ¦  «        ¦  «        }t          t          |t
          j                 ¦  «        }d}|D �]´}t          t          |                      |¦  «        ¦  «        }d|vr dS |d                              ¦   «         }t          |t          ¦  «        st          ||¦  «        }g }d}	|j	        D �]\  }
}|dv r1|
d         }|r&t          |t          ¦  «        st          ¦   «         |
d<   nœ|dk    r1|
d         }|r&t          |t          ¦  «        st          ¦   «         |
d<   ne|d	k    r_t          t          |
d         ¦  «        ¦  «        D ]<}|r8t          |
d         |         t          ¦  «        st          ¦   «         |
d         |<   Œ=|d
k    rd}	|dk    rd}	|	r||v rŒî|dk    rŒõ|                     |
|f¦  «         �Œ||_	        |                     t          d¦  «        |¦  «         �Œ¶dS )z¨
        Remove images from this output.

        Args:
            ignore_byte_string_object: optional parameter
                to ignore ByteString Objects.
        )s   cmó   wó   Jó   jó   Mó   ds   rió   is   gsó   Wó   bó   só   Só   fó   Fó   nó   mó   ló   có   vó   yó   hó   Bs   Dos   shú	/ContentsNF©s   Tjó   'r   ó   "ræ   ó   TJó   qTó   Qs   re)r   rB   rœ   rk   r<   rf   ri   r™   r?   Ú
operationsrL   r  r‘   r�   Ú__setitem__rF   )rv   r$  r   rw   Újump_operatorsr£   r  ÚcontentÚ_operationsÚseq_graphicsÚoperandsÚoperatorÚtextr”  s                 ry   Úremove_imageszPdfWriter.remove_images  sf  € õ Õ'¨¯ª¸¼Ñ)EÔ)EÑFÔFˆÝ•[ '­"¬'Ô"2Ñ3Ô3ˆð
ˆð6 ð )	Cñ )	CˆDÝÕ,¨d¯oªo¸dÑ.CÔ.CÑDÔDˆHØ (Ð*Ð*Ø��Ø˜{Ô+×6Ò6Ñ8Ô8ˆGÝ˜g¥}Ñ5Ô5ð ;Ý'¨°Ñ:Ô:�àˆKØ ˆLØ&-Ô&8ð 9ñ 9Ñ"�˜(Ø˜}Ð,Ð,Ø# Aœ;�DØ0ð 9½ØÕ.ñ:ô :ð 9õ '7Ñ&8Ô&8˜ ™øØ Ò%Ð%Ø# Aœ;�DØ0ð 9½ØÕ.ñ:ô :ð 9õ '7Ñ&8Ô&8˜ ™øØ Ò&Ð&Ý"¥3 x°¤{Ñ#3Ô#3Ñ4Ô4ð @ð @˜Ø4ð @½ZØ$ QœK¨œNÕ,<ñ>ô >ð @õ .>Ñ-?Ô-?˜H QœK¨™Nøà˜tÒ#Ð#Ø#'�LØ˜tÒ#Ð#Ø#(�LØð  H°Ð$>Ð$>ØØ˜uÒ$Ð$ØØ×"Ò" H¨hÐ#7Ñ8Ô8Ð8Ñ8à!,ˆGÔØ× Ò ¥¨KÑ!8Ô!8¸'ÑBÔBÐBÑBðS)	Cð )	Cr{   ÚignoreByteStringObjectc                 óN   — t          ddd¦  «         |                      |¦  «        S )zT
        Use :meth:`remove_images` instead.

        .. deprecated:: 1.28.0
        ÚremoveImagesrJ  rŸ   )r'   rJ  ©rv   rK  s     ry   rM  zPdfWriter.removeImages_  s+   € õ 	% ^°_ÀgÑNÔNÐNØ×!Ò!Ð"8Ñ9Ô9Ð9r{   c                 óÚ  — t          t          |                      | j        ¦  «        ¦  «        }t          t          t
                   |t          j                 ¦  «        }|D �]	}t          t          |                      |¦  «        ¦  «        }|d                              ¦   «         }t          |t          ¦  «        st          ||¦  «        }|j        D �]s\  }}|dv r_|d         }	|s't          |	t          ¦  «        rt          ¦   «         |d<   Œ;t          |	t          t          f¦  «        rt          ¦   «         |d<   Œi|dk    r_|d         }	|s't          |	t          ¦  «        rt          ¦   «         |d<   Œ t          |	t          t          f¦  «        rt          ¦   «         |d<   ŒÎ|dk    rŸt          t          |d         ¦  «        ¦  «        D ]|}
|s9t          |d         |
         t          ¦  «        rt          ¦   «         |d         |
<   Œ=t          |d         |
         t          t          f¦  «        rt          ¦   «         |d         |
<   Œ}�Œu|                     t#          d¦  «        |¦  «         �ŒdS )zx
        Remove text from this output.

        Args:
            ignore_byte_string_object: optional parameter
        r:  r;  r   r=  ræ   r>  N)r   rB   rœ   rk   r   rE   rf   ri   r   r™   r?   rA  rL   r>   r  r‘   rB  rF   )rv   r$  r   rw   r£   r  rD  rG  rH  rI  r”  s              ry   Úremove_textzPdfWriter.remove_texth  s_  € õ Õ'¨¯ª¸¼Ñ)EÔ)EÑFÔFˆÝ•T�.Ô)¨7µ2´7Ô+;Ñ<Ô<ˆØð !	Cñ !	CˆDÝ�J¨¯ª¸Ñ(=Ô(=Ñ>Ô>ˆHØ˜{Ô+×6Ò6Ñ8Ô8ˆGÝ˜g¥}Ñ5Ô5ð ;Ý'¨°Ñ:Ô:�Ø&-Ô&8ð Dñ DÑ"�˜(Ø˜}Ð,Ð,Ø# Aœ;�DØ4ð =Ý% dÕ,<Ñ=Ô=ð =Ý*:Ñ*<Ô*<˜H Q™Køå% dÕ-=Õ?OÐ,PÑQÔQð =Ý*:Ñ*<Ô*<˜H Q™KøØ Ò%Ð%Ø# Aœ;�DØ4ð =Ý% dÕ,<Ñ=Ô=ð =Ý*:Ñ*<Ô*<˜H Q™Køå% dÕ-=Õ?OÐ,PÑQÔQð =Ý*:Ñ*<Ô*<˜H Q™KøØ Ò&Ð&Ý"¥3 x°¤{Ñ#3Ô#3Ñ4Ô4ð Dð D˜Ø8ð DÝ)¨(°1¬+°a¬.Õ:JÑKÔKð DÝ1AÑ1CÔ1C ¨¤¨A¡øå)Ø (¨¤¨A¤Õ1AÕCSÐ0Tñ ô  ð Dõ 2BÑ1CÔ1C ¨¤¨A¡øùà× Ò ¥¨KÑ!8Ô!8¸'ÑBÔBÐBÑBðC!	Cð !	Cr{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )zR
        Use :meth:`remove_text` instead.

        .. deprecated:: 1.28.0
        Ú
removeTextrP  rŸ   )r'   rP  rN  s     ry   rR  zPdfWriter.removeText”  s+   € õ 	% \°=À'ÑJÔJÐJØ×ÒÐ 6Ñ7Ô7Ð7r{   ÚuriÚrectÚborderc                 óV  — |�t          j        dt          ¬¦  «         |}|                      | j        ¦  «        t
          j                 |         }t          t          t          t          f         |                      |¦  «        ¦  «        }|�\d„ |dd…         D ¦   «         }t          |¦  «        dk    r4t          d„ |d         D ¦   «         ¦  «        }	|                     |	¦  «         n,t          d¦  «        t          d¦  «        t          d¦  «        g}t          |t          ¦  «        rt!          |¦  «        }n%t          |t"          ¦  «        rnt#          |¦  «        }t%          ¦   «         }
|
                     t!          d	¦  «        t!          d
¦  «        t!          d
¦  «        t)          |¦  «        i¦  «         t%          ¦   «         }|                     t!          t*          j        ¦  «        t!          t.          j        ¦  «        t!          t*          j        ¦  «        t!          d¦  «        t!          t*          j        ¦  «        |t!          t*          j        ¦  «        |t!          d¦  «        t!          d¦  «        t!          t*          j        ¦  «        t          |¦  «        t!          d¦  «        |
i¦  «         |                      |¦  «        }t.          j        |v r'|t.          j                                      |¦  «         dS t          |g¦  «        |t!          t.          j        ¦  «        <   dS )aÛ  
        Add an URI from a rectangular area to the specified page.

        This uses the basic structure of :meth:`add_link`

        Args:
            page_number: index of the page on which to place the URI action.
            uri: URI of resource to link to.
            rect: :class:`RectangleObject<pypdf.generic.RectangleObject>` or
                array of four integers specifying the clickable rectangular area
                ``[xLL, yLL, xUR, yUR]``, or string in the form
                ``"[ xLL yLL xUR yUR ]"``.
            border: if provided, an array describing border-drawing
                properties. See the PDF spec for details. No border will be
                drawn if this argument is omitted.
        NznThe 'pagenum' argument of add_uri is deprecated and will be removed in pypdf 4.0.0. Use 'page_number' instead.)r`  c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¢   ©rF   ©r©  Úns     ry   r«  z%PdfWriter.add_uri.<locals>.<listcomp>Á  s   € Ð<Ð<Ð<¨A�* Q™-œ-Ð<Ð<Ð<r{   ra  é   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¢   rX  rY  s     ry   r«  z%PdfWriter.add_uri.<locals>.<listcomp>Ã  s   € Ð+MÐ+MÐ+M¸a­J°q©M¬MÐ+MÐ+MÐ+Mr{   ræ   rø   z/URIú/Linkz/Hú/Irç  )r–   r—   r˜   rœ   rk   rf   ri   r   r   r§   r
   r‘   r<   r�   rH   r™   rF   rJ   rB   re   rL   r)   r   r$  r%  ÚSubtypero  ÚRectÚBorderrj   )rv   rË   rS  rT  rU  rø  Ú	page_linkr  Ú
border_arrÚdash_patternÚlnk2ÚlnkÚlnk_refs                ry   Úadd_urizPdfWriter.add_uri�  s¹  € ð0 ÐÝŒMðEå+ðñ ô ð ð
 "ˆKØ—O’O D¤KÑ0Ô0µ´Ô9¸+ÔFˆ	Ý��S¥#˜Xœ¨¯ª¸	Ñ(BÔ(BÑCÔCˆð ÐØ<Ð<°¸¸¸´Ð<Ñ<Ô<ˆJÝ�6‰{Œ{˜aÒÐÝ*Ð+MÐ+MÀ6È!Ä9Ð+MÑ+MÔ+MÑNÔN�Ø×!Ò! ,Ñ/Ô/Ð/øå& q™/œ/­<¸©?¬?½LÈ¹O¼OÐLˆJå�d�CÑ Ô ð 	)Ý˜dÑ#Ô#ˆDˆDÝ˜�oÑ.Ô.ð 	)Øå" 4Ñ(Ô(ˆDåÑ!Ô!ˆØ�Šå˜4Ñ Ô ¥*¨VÑ"4Ô"4Ý˜6Ñ"Ô"Õ$4°SÑ$9Ô$9ðñ	
ô 	
ð 	
õ Ñ Ô ˆØ�
Š
åÕ9Ô>Ñ?Ô?ÅÍBÌIÑAVÔAVÝÕ9ÔAÑBÔBÅJÈwÑDWÔDWÝÕ9Ô;Ñ<Ô<¸iÝÕ9Ô>Ñ?Ô?ÀÝ˜4Ñ Ô ¥*¨TÑ"2Ô"2ÝÕ9Ô@ÑAÔAÅ;ØñDô Dõ ˜4Ñ Ô  $ð
ñ	
ô 	
ð 	
ð ×"Ò" 3Ñ'Ô'ˆåŒ9˜Ð Ð Ø•R”YÔ×&Ò& wÑ/Ô/Ð/Ð/Ð/å.9¸7¸)Ñ.DÔ.DˆH•Z¥¤	Ñ*Ô*Ñ+Ð+Ð+r{   c                 óT   — t          ddd¦  «         |                      ||||¦  «        S )zN
        Use :meth:`add_uri` instead.

        .. deprecated:: 1.28.0
        ÚaddURIrh  rŸ   )r'   rh  )rv   rø  rS  rT  rU  s        ry   rj  zPdfWriter.addURIë  s.   € õ 	% X¨y¸'ÑBÔBÐBØ�|Š|˜G S¨$°Ñ7Ô7Ð7r{   c           	      ó¤  — t          dd¦  «         t          |t          ¦  «        rI|                     ¦   «         dd…         }t	          d„ |                     d¦  «        D ¦   «         ¦  «        }n%t          |t          ¦  «        rnt	          |¦  «        }t          j        |||t          ||¬¦  «        ¬¦  «        }|  	                    ||¬	¦  «        S )
NÚadd_linkú+add_annotation(AnnotationBuilder.link(...))r   éÿÿÿÿc                 óR   — g | ]$}t          |¦  «        d k    ¯t          |¦  «        ‘Œ%S )r   )r‘   Úfloat)r©  Únums     ry   r«  z&PdfWriter.add_link.<locals>.<listcomp>
  s)   € ÐGÐGÐG ½#¸c¹(¼(ÀQº,¸,•�s‘”¸,¸,¸,r{   rš  r  )rT  rU  Útarget_page_indexrî   )rË   Ú
annotation)
r'   r™   r§   ÚstriprJ   Úsplitr;   ÚlinkrC   Úadd_annotation)rv   rø  r×  rT  rU  rî   r¡  rs  s           ry   rl  zPdfWriter.add_linkú  sá   € õ 	%ØÐEñ	
ô 	
ð 	
õ �d�CÑ Ô ð 	)Ø—:’:‘<”<  " Ô%ˆDÝ"ØGÐG t§z¢z°#¡¤ÐGÑGÔGñô ˆDˆDõ ˜�oÑ.Ô.ð 	)Øå" 4Ñ(Ô(ˆDå&Ô+ØØØ.Ý˜S¨4Ð0Ñ0Ô0ð	
ñ 
ô 
ˆ
ð ×"Ò"¨wÀ:Ð"ÑNÔNÐNr{   c                 óH   — t          ddd¦  «          | j        |||||g|¢R Ž S )zO
        Use :meth:`add_link` instead.

        .. deprecated:: 1.28.0
        ÚaddLinkrm  rÎ   )r%   rl  )rv   rø  r×  rT  rU  rî   r¡  s          ry   ry  zPdfWriter.addLink  sC   € õ 	#ØÐDÀgñ	
ô 	
ð 	
ð ˆtŒ}˜WÐ&6¸¸fÀcÐQÈDÐQÐQÐQÐQr{   )z	/NoLayoutz/SinglePagez
/OneColumnz/TwoColumnLeftz/TwoColumnRightz/TwoPageLeftz/TwoPageRightc                 óf   — 	 t          t          | j        d         ¦  «        S # t          $ r Y d S w xY w)Nú/PageLayout)r   rT   rp   ró   r}   s    ry   Ú_get_page_layoutzPdfWriter._get_page_layout6  sA   € ð	Ý�
 DÔ$5°mÔ$DÑEÔEÐEøÝð 	ð 	ð 	Ø�4�4ð	øøøó   ‚" ¢
0¯0c                 óL   — t          ddd¦  «         |                      ¦   «         S )úU
        Use :py:attr:`page_layout` instead.

        .. deprecated:: 1.28.0
        ÚgetPageLayoutÚpage_layoutrŸ   )r'   r|  r}   s    ry   r€  zPdfWriter.getPageLayout<  s(   € õ 	% _°mÀWÑMÔMÐMØ×$Ò$Ñ&Ô&Ð&r{   Úlayoutc                 ó  — t          |t          ¦  «        sJ|| j        vr2t          ddd                     | j        ¦  «        f› �t
          ¦  «         t          |¦  «        }| j                             t          d¦  «        |i¦  «         dS )a  
        Set the page layout.

        Args:
            layout: The page layout to be used.

        .. list-table:: Valid ``layout`` arguments
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right
        zLayout should be one of: r[   r{  N)r™   rF   Ú_valid_layoutsr(   Újoinr&  rp   re   ©rv   r‚  s     ry   Ú_set_page_layoutzPdfWriter._set_page_layoutE  s‘   € õ2 ˜&¥*Ñ-Ô-ð 	(Ø˜TÔ0Ð0Ð0ÝØR°°B·G²G¸DÔ<OÑ4PÔ4PÐ/QÐRÐRÝñô ð õ   Ñ'Ô'ˆFØÔ× Ò ¥*¨]Ñ";Ô";¸VÐ!DÑEÔEÐEÐEÐEr{   c                 ó0   — |                       |¦  «         dS )a  
        Set the page layout.

        Args:
            layout: The page layout to be used

        .. list-table:: Valid ``layout`` arguments
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right
        N©r‡  r†  s     ry   Úset_page_layoutzPdfWriter.set_page_layoutg  s   € ð2 	×Ò˜fÑ%Ô%Ð%Ð%Ð%r{   c                 óN   — t          ddd¦  «         |                      |¦  «        S )r  zwriter.setPageLayout(val)zwriter.page_layout = valrŸ   )r'   r‡  r†  s     ry   ÚsetPageLayoutzPdfWriter.setPageLayout‚  s4   € õ 	%Ø'Ð)CÀWñ	
ô 	
ð 	
ð ×$Ò$ VÑ,Ô,Ð,r{   c                 ó*   — |                       ¦   «         S )aÛ  
        Page layout property.

        .. list-table:: Valid ``layout`` values
           :widths: 50 200

           * - /NoLayout
             - Layout explicitly not specified
           * - /SinglePage
             - Show one page at a time
           * - /OneColumn
             - Show one column at a time
           * - /TwoColumnLeft
             - Show pages in two columns, odd-numbered pages on the left
           * - /TwoColumnRight
             - Show pages in two columns, odd-numbered pages on the right
           * - /TwoPageLeft
             - Show two pages at a time, odd-numbered pages on the left
           * - /TwoPageRight
             - Show two pages at a time, odd-numbered pages on the right
        )r|  r}   s    ry   r�  zPdfWriter.page_layout�  s   € ð. ×$Ò$Ñ&Ô&Ð&r{   c                 ó0   — |                       |¦  «         d S rŠ   r‰  r†  s     ry   r�  zPdfWriter.page_layout¦  s   € à×Ò˜fÑ%Ô%Ð%Ð%Ð%r{   c                 ó2   — t          ddd¦  «         | j        S )r  Ú
pageLayoutr�  rŸ   ©r'   r�  r}   s    ry   r�  zPdfWriter.pageLayoutª  s   € õ 	% \°=À'ÑJÔJÐJØÔÐr{   c                 ó6   — t          ddd¦  «         || _        dS )r  r�  r�  rŸ   Nr‘  r†  s     ry   r�  zPdfWriter.pageLayout´  s$   € õ 	% \°=À'ÑJÔJÐJØ!ˆÔÐÐr{   )z/UseNonez/UseOutlinesz
/UseThumbsz/FullScreenz/UseOCz/UseAttachmentsc                 óf   — 	 t          t          | j        d         ¦  «        S # t          $ r Y d S w xY w)Nú	/PageMode)r   rW   rp   ró   r}   s    ry   Ú_get_page_modezPdfWriter._get_page_modeÇ  sA   € ð	Ý� dÔ&7¸Ô&DÑEÔEÐEøÝð 	ð 	ð 	Ø�4�4ð	øøør}  c                 óL   — t          ddd¦  «         |                      ¦   «         S )úS
        Use :py:attr:`page_mode` instead.

        .. deprecated:: 1.28.0
        ÚgetPageModeÚ	page_moderŸ   )r'   r•  r}   s    ry   r˜  zPdfWriter.getPageModeÍ  s(   € õ 	% ]°KÀÑIÔIÐIØ×"Ò"Ñ$Ô$Ð$r{   r|  c                 ó  — t          |t          ¦  «        r|}nH|| j        vr0t          dd                     | j        ¦  «        › �t
          ¦  «         t          |¦  «        }| j                             t          d¦  «        |i¦  «         dS )r—  zMode should be one of: z, r”  N)r™   rF   Ú_valid_modesr(   r…  r&  rp   re   )rv   r|  Ú	mode_names      ry   Úset_page_modezPdfWriter.set_page_modeÖ  s’   € õ �d�JÑ'Ô'ð 	)Ø$(ˆIˆIà˜4Ô,Ð,Ð,ÝØL¨d¯iªi¸Ô8IÑ.JÔ.JÐLÐLÍhñô ð õ # 4Ñ(Ô(ˆIØÔ× Ò ¥*¨[Ñ"9Ô"9¸9Ð!EÑFÔFÐFÐFÐFr{   c                 óR   — t          ddd¦  «         |                      |¦  «         dS )r—  zwriter.setPageMode(val)zwriter.page_mode = valrŸ   N)r'   r�  ©rv   r|  s     ry   ÚsetPageModezPdfWriter.setPageModeæ  s:   € õ 	%Ø%Ð'?Àñ	
ô 	
ð 	
ð 	×Ò˜4Ñ Ô Ð Ð Ð r{   c                 ó*   — |                       ¦   «         S )a  
        Page mode property.

        .. list-table:: Valid ``mode`` values
           :widths: 50 200

           * - /UseNone
             - Do not show outline or thumbnails panels
           * - /UseOutlines
             - Show outline (aka bookmarks) panel
           * - /UseThumbs
             - Show page thumbnails panel
           * - /FullScreen
             - Fullscreen view
           * - /UseOC
             - Show Optional Content Group (OCG) panel
           * - /UseAttachments
             - Show attachments panel
        )r•  r}   s    ry   r™  zPdfWriter.page_modeñ  s   € ð* ×"Ò"Ñ$Ô$Ð$r{   c                 ó0   — |                       |¦  «         d S rŠ   )r�  rŸ  s     ry   r™  zPdfWriter.page_mode	  s   € à×Ò˜4Ñ Ô Ð Ð Ð r{   c                 ó2   — t          ddd¦  «         | j        S )r—  ÚpageModer™  rŸ   ©r'   r™  r}   s    ry   r¤  zPdfWriter.pageMode	  s   € õ 	% Z°¸gÑFÔFÐFØŒ~Ðr{   c                 ó6   — t          ddd¦  «         || _        dS )r—  r¤  r™  rŸ   Nr¥  rŸ  s     ry   r¤  zPdfWriter.pageMode	  s!   € õ 	% Z°¸gÑFÔFÐFØˆŒˆˆr{   rs  c           
      óô  — t          t          t          |¦  «        ¦  «        }|                      | j        ¦  «        d         |         |t          d¦  «        <   | j        |         }|j        €t          ¦   «         |t          d¦  «        <   |j        €J ‚| 	                    d¦  «        dk    rœt          d¦  «        |v r‹t          t          |t          d¦  «                 ¦  «        }t          t          d¦  «        |d         t          |d	         t          |¦  «        d
         ¬¦  «        ¦  «        }|j        |t          d¦  «        <   |                      |¦  «        }|j                             |¦  «         d S )Nr5  ú/Pú/Annotsú/Subtyper]  ú/Destz	/LinkNamerr  rî   r  r  )r   rB   Ú_pdf_objectifyrœ   rk   rF   rw   Úannotationsr<   r'  ÚdictrA   rC   rô   rj   r�   )rv   rË   rs  Úto_addr£   Útmprð   Úind_objs           ry   rw  zPdfWriter.add_annotation 	  sT  € ÝÕ&­°zÑ(BÔ(BÑCÔCˆØ#'§?¢?°4´;Ñ#?Ô#?ÀÔ#HÈÔ#Uˆ�z˜$ÑÔÑ ØŒz˜+Ô&ˆØÔÐ#Ý*5©-¬-ˆD•˜IÑ&Ô&Ñ'ØÔÐ+Ð+Ð+ð �:Š:�jÑ!Ô! WÒ,Ð,µ¸GÑ1DÔ1DÈÐ1NÐ1NÝ•t˜V¥J¨wÑ$7Ô$7Ô8Ñ9Ô9ˆCÝÝ˜;Ñ'Ô'ØÐ'Ô(ÝØ  œZµ$°s±)´)¸JÔ2Gðñ ô ñô ˆDð +/¬/ˆF•:˜gÑ&Ô&Ñ'à×"Ò" 6Ñ*Ô*ˆàÔ×Ò Ñ(Ô(Ð(Ð(Ð(r{   c                 ó&  — t          d|                     ¦   «         ¦  «        }|                     dg ¦  «        D ]×}|                     ¦   «         }|                     dd¦  «        }|                     dd¦  «        }t          |t          ¦  «        r t          |¦  «        |t	          d¦  «        <   Œw|�^|                     ¦   «         }|                     dd¦  «        }t          |t          ¦  «        rt          |¦  «        |t	          d¦  «        <   ŒØ|S )zý
        Perform some clean up in the page.
        Currently: convert NameObject nameddestination to TextStringObject
        (required for names/dests list)

        Args:
            page:

        Returns:
            The cleaned PageObject
        r   r©  r«  Nrç  ú/D)r   rœ   r'  r™   rF   rL   )rv   r£   ÚaÚa_objÚdÚacts         ry   Ú
clean_pagezPdfWriter.clean_page9	  sù   € õ �L $§/¢/Ñ"3Ô"3Ñ4Ô4ˆØ—’˜) RÑ(Ô(ð 
	@ð 
	@ˆAØ—L’L‘N”NˆEØ—	’	˜' 4Ñ(Ô(ˆAØ—)’)˜D $Ñ'Ô'ˆCÝ˜!�ZÑ(Ô(ð @Ý-=¸aÑ-@Ô-@�•j Ñ)Ô)Ñ*Ð*Ø�Ø—n’nÑ&Ô&�Ø—G’G˜D $Ñ'Ô'�Ý˜a¥Ñ,Ô,ð @Ý,<¸QÑ,?Ô,?�C�
 4Ñ(Ô(Ñ)øØˆr{   c                 óØ  — d }t          |t          t          f¦  «        rJt          |d¦  «        5 }t	          |                     ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   nÿt          |t          ¦  «        r‚|j        r|j        }|j         	                    ¦   «         }|j         
                    d¦  «         t	          |j                             ¦   «         ¦  «        }|j         
                    |¦  «         nht          |d¦  «        rIt          |d¦  «        r9| 
                    d¦  «         |                     ¦   «         }t	          |¦  «        }nt          d¦  «        ‚||fS )NÚrbr   ÚseekÚreadzÝPdfMerger.merge requires an object that PdfReader can parse. Typically, that is a Path or a string representing a Path, a file object, or an object implementing .seek and .read. Passing a PdfReader directly works as well.)r™   r§   r   r   r   r¼  r   Ú_encryptionrz  r�  r»  rŽ   r  )rv   r\   Úencryption_objÚfrz  Ú	orig_tellÚfilecontents          ry   Ú_create_streamzPdfWriter._create_streamS	  s�  € ð ˆå�g¥¥T˜{Ñ+Ô+ð 	Ý˜ Ñ&Ô&ð +¨!Ý  §¢¡¤Ñ*Ô*�ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øå˜¥Ñ+Ô+ð 	ØÔ"ð 5Ø!(Ô!4�Øœ×+Ò+Ñ-Ô-ˆIØŒN×Ò Ñ"Ô"Ð"Ý˜Wœ^×0Ò0Ñ2Ô2Ñ3Ô3ˆFð ŒN×Ò 	Ñ*Ô*Ð*Ð*Ý�W˜fÑ%Ô%ð 
	­'°'¸6Ñ*BÔ*Bð 
	Ø�LŠL˜‰OŒOˆOØ!Ÿ,š,™.œ.ˆKÝ˜[Ñ)Ô)ˆFˆFå%ð>ñô ð ð �~Ð%Ð%s   ¯"AÁA!Á$A!Úimport_outlineÚexcluded_fields.c                 ó  — |€d}t          |t          t          t          f¦  «        rLt          |t          ¦  «        rt          |t          ¦  «        s|}|}|}|                      d|d|||¦  «         dS |                      d|||||¦  «         dS )aP  
        Identical to the :meth:`merge()<merge>` method, but assumes you want to
        concatenate all pages onto the end of the file instead of specifying a
        position.

        Args:
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
            outline_item: Optionally, you may specify a string to build an
                outline (aka 'bookmark') to identify the beginning of the
                included file.
            pages: Can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                or a list of pages to be processed
                to merge only the specified range of pages from the source
                document into the output document.
            import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
            excluded_fields: Provide the list of fields/keys to be ignored
                if ``/Annots`` is part of the list, the annotation will be ignored
                if ``/B`` is part of the list, the articles will be ignored
        Nr¢   )r™   rê   r©   rP   ÚboolÚmerge)rv   r\   rä  rw   rÃ  rÄ  s         ry   r�   zPdfWriter.appendw	  sÂ   € ðH Ð"Ø ˆOÝ�l¥U­Dµ)Ð$<Ñ=Ô=ð 	Ý˜%¥Ñ&Ô&ð 'Ý! .µ$Ñ7Ô7ð 5Ø&4�OØ!&�Ø ˆEØ�JŠJØØØØØØñô ð ð ð ð �JŠJØØØØØØñô ð ð ð r{   )rå  Úimport_bookmarksÚpositionc           
      ó¬  — t          |t          ¦  «        r|}n)|                      |¦  «        \  }}	t          |d¬¦  «        }|€d}|€0t          t	          dt          |j        ¦  «        ¦  «        ¦  «        }nÊt          |t          ¦  «        r<t          t	          |                     t          |j        ¦  «        ¦  «        Ž ¦  «        }nyt          |t          ¦  «        rnct          |t          ¦  «        r*t          |¦  «        dk    rt          t	          |Ž ¦  «        }n$t          |t          ¦  «        st          d¦  «        ‚i }
|D ]¢}|j        |         }|j        €J ‚|€6|                      |t          |¦  «        dd	gz   ¦  «        |
|j        j        <   n;|                      ||t          |¦  «        dd	gz   ¦  «        |
|j        j        <   |d
z  }||
|j        j                 _        Œ£|j        |_        |j                             ¦   «         D ]‚}|j        }t          |d         t(          ¦  «        rŒ%|d         j        j        |
v rI|
|d         j        j                 j        |t+          d¦  «        <   |                      |d         |¦  «         Œƒ|�ut/          d|                      t3          |¦  «        t          |
                     ¦   «         ¦  «        d         j        t4          ¬¦  «                             ¦   «         ¦  «        }n|                      ¦   «         }t/          d|j        t<          j                 ¦  «        }|rZt@          j!        |v rL|  "                    | #                    t@          j!        d¦  «        |
|¦  «        }|  $                    ||d¦  «         d	|vr‚|
                     ¦   «         D ]m}|  %                    |j         #                    d	d¦  «        ||
|¦  «        }t          |¦  «        dk    r||tM          d	¦  «        <   |  '                    |¦  «         Œndt/          tP          |j        d         ¦  «        v �rsd| j)        vr…|  *                    t/          tP          t/          tP          |j        d         ¦  «        d         ¦  «         +                    | dd¦  «        ¦  «        | j)        tM          d¦  «        <   tY          ¦   «         }n9t/          tX          t/          tP          | j)        d         ¦  «        d         ¦  «        }| j-        t]          |¦  «                 }|j        d         d         d         D ]H}	 t_          ||j                 d| ¦  «        }||vr| 0                    |¦  «         Œ9# tb          $ r Y ŒEw xY w|t/          tP          | j)        d         ¦  «        tM          d¦  «        <   d|vr|  2                    d|
|¦  «         dS )aØ  
        Merge the pages from the given file into the output file at the
        specified page number.

        Args:
            position: The *page number* to insert this file. File will
                be inserted after the given number.
            fileobj: A File Object or an object that supports the standard
                read and seek methods similar to a File Object. Could also be a
                string representing a path to a PDF file.
            outline_item: Optionally, you may specify a string to build an outline
                (aka 'bookmark') to identify the
                beginning of the included file.
            pages: can be a :class:`PageRange<pypdf.pagerange.PageRange>`
                or a ``(start, stop[, step])`` tuple
                or a list of pages to be processed
                to merge only the specified range of pages from the source
                document into the output document.
            import_outline: You may prevent the source document's
                outline (collection of outline items, previously referred to as
                'bookmarks') from being imported by specifying this as ``False``.
            excluded_fields: provide the list of fields/keys to be ignored
                if ``/Annots`` is part of the list, the annotation will be ignored
                if ``/B`` is part of the list, the articles will be ignored

        Raises:
            TypeError: The pages attribute is not configured properly
        F)ÚstrictNr¢   r   ra  z:"pages" must be a tuple of (start, stop[, step]) or a listú/Br©  r   rB  r  rM   )rî   rB   z	/AcroFormz/Root)ú/FieldsrÍ  r[   )3r™   r   rÂ  r©   r  r‘   rw   rP   Úindicesrê   Ú	TypeErrorr�   r½   r›   rÈ   Úoriginal_pageÚnamed_destinationsÚ_namedDestsÚvaluesrô   rG   rH   r  r   rý  rL   r:   rœ   rÆ  r6  r7  r8  rq   rÃ  Ú_get_filtered_outliner'  Ú_insert_filtered_outlineÚ_insert_filtered_annotationsrF   r¸  rB   rp   rj   r­   r<   rd   r«   rE   r�   ró   Úadd_filtered_articles)rv   rÉ  r\   rä  rw   rÃ  rÄ  r  rz  r¾  Úsrcpagesr”  Úpgrð   ÚarrÚoutline_item_typÚ_rorÄ  ÚpagÚlstÚtrslatr¿  Úinds                          ry   rÇ  zPdfWriter.mergeµ	  sÓ  € õL �g�yÑ)Ô)ð 	5ØˆFˆFà%)×%8Ò%8¸Ñ%AÔ%AÑ"ˆF�Nõ ˜v¨eÐ4Ñ4Ô4ˆFàÐ"Ø ˆOàˆ=Ý�˜q¥# f¤lÑ"3Ô"3Ñ4Ô4Ñ5Ô5ˆEˆEÝ˜�yÑ)Ô)ð 		Ý� §¢­c°&´,Ñ.?Ô.?Ñ @Ô @ÐAÑBÔBˆEˆEÝ˜�tÑ$Ô$ð 	ØÝ˜�uÑ%Ô%ð 	­#¨e©*¬*¸ª/¨/Ý� ˜Ñ'Ô'ˆEˆEÝ˜E¥5Ñ)Ô)ð 	ÝØLñô ð ð ˆØð 	Eð 	EˆAØ”˜a”ˆBØÔ(Ð4Ð4Ð4ØÐØ8<¿ºØ�˜_Ñ-Ô-°°yÐ0AÑAñ9ô 9�˜Ô.Ô4Ñ5Ð5ð 9=×8HÒ8HØ˜¥$ Ñ"7Ô"7¸4ÀÐ:KÑ"Kñ9ô 9�˜Ô.Ô4Ñ5ð ˜A‘�ØBDˆH�RÔ*Ô0Ô1Ô?Ð?ð Ô%ð 	Ôð Ô&×-Ò-Ñ/Ô/ð 	Fð 	FˆDØ”/ˆCÝ˜$˜wœ-­Ñ4Ô4ð FØØ�g”Ô1Ô7¸8ÐCÐCØ'/Ø˜”MÔ4Ô:ô(ä$ð •L ‘O”OÑ$ð ×0Ò0°°h´ÀÑEÔEÐEøð Ð#Ý#ØØ×%Ò%Ý$ \Ñ2Ô2Ý˜ŸšÑ*Ô*Ñ+Ô+¨AÔ.ÔAÝ ð &ñ ô ÷ ’*‘,”,ñ ô  ÐÐð  $×4Ò4Ñ6Ô6ÐåÐ% v¤~µb´gÔ'>Ñ?Ô?ˆØð 	�bœk¨SÐ0Ð0Ø×0Ò0Ø—’�œ TÑ*Ô*¨H°fñô ˆGð ×)Ò)ØÐ)¨4ñô ð ð ˜OÐ+Ð+Ø—’Ñ(Ô(ð %ð %�Ø×7Ò7ØÔ%×)Ò)¨)°RÑ8Ô8¸#¸xÈñô �õ �s‘8”8˜a’<�<Ø14�C�
 9Ñ-Ô-Ñ.Ø—’ Ñ$Ô$Ð$Ð$à�$Õ/°´ÀÔ1HÑIÔIÐIÑIØ $Ô"3Ð3Ð3Ø=A×=MÒ=MÝÝ(ÝÕ-¨v¬~¸gÔ/FÑGÔGÈÔTñô ÷ ’e˜D %¨Ñ6Ô6ñ	>ô >�Ô!¥*¨[Ñ"9Ô"9Ñ:õ "‘m”m��åÝÝÕ)¨4Ô+<¸[Ô+IÑJÔJÈ9ÔUñô �ð Ô(­¨F©¬Ô4ˆFØ”^ GÔ,¨[Ô9¸)ÔDð ð �ðÝ(¨°´¬¸!¸TÑBÔB�CØ #�~�~ØŸ
š
 3™œ˜øøÝð ð ð Ø�Dðøøøð õ Õ! 4Ô#4°[Ô#AÑBÔBÝ˜9Ñ%Ô%ñð �Ð&Ð&Ø×&Ò& r¨8°VÑ<Ô<Ð<àˆs   Õ5U9Õ9
VÖVÚthreadc           
      óÂ  — |                      | dd¬¦  «        }| j                             |j        ¦  «         t	          d|d         ¦  «        }|}d}|��ü|                      t	          d|d         ¦  «        ||¦  «        }|��|€[t	          d|                      t          ¦   «         ¦  «                             ¦   «         ¦  «        }|}	|j        |t          d¦  «        <   not	          d|                      t          t          d	¦  «        |j        i¦  «        ¦  «                             ¦   «         ¦  «        }
|
j        |t          d
¦  «        <   |
}||t          d¦  «        <   |j        |t          d¦  «        <   |d         |t          d¦  «        <   t	          d|                     ¦   «         ¦  «        }d|vrt          ¦   «         |t          d¦  «        <   t	          d|d         ¦  «                             |j        ¦  «         t	          d|d
         ¦  «        }||k    r0|	j        |t          d
¦  «        <   |j        |	t          d	¦  «        <   d}|�­ü|j        €J ‚|j        S )z×
        Clone the thread with only the applicable articles.

        Args:
            thread:
            pages:
            reader:

        Returns:
            The added thread as an indirect reference
        T)r  )Úforce_duplicateÚignore_fieldsrB   r  Nr   r¨  rc  z/Nú/Tz/RrÌ  r<   )r­   rÉ  r�   r�   r   Ú_get_cloned_pagerj   rB   rœ   rF   r<   )rv   rá  rw   r  ÚnthreadÚfirst_articleÚcurrent_articleÚnew_articlerÝ  Ú	new_firstÚnew_article2Úpag_objs               ry   Ú_add_articles_threadzPdfWriter._add_articles_threadM
  su  € ð" —,’,Ø $°gð ñ 
ô 
ˆð 	Œ×Ò˜GÔ6Ñ7Ô7Ð7ÝÐ/°¸´Ñ>Ô>ˆØ6CˆØ26ˆØÑ)Ø×'Ò'Ý�\ ?°4Ô#8Ñ9Ô9¸5À&ñô ˆCð ‰ØÐ&Ý"&Ø*Ø×(Ò(Õ)9Ñ);Ô);Ñ<Ô<×GÒGÑIÔIñ#ô #�Kð !,�IØ0;Ô0N�G�J tÑ,Ô,Ñ-Ð-å#'Ø*Ø×(Ò(Ý,Ý!+¨DÑ!1Ô!1°;Ô3QÐ Rñô ñô ÷ %š*™,œ,ñ$ô $�Lð 5AÔ4S�K¥
¨4Ñ 0Ô 0Ñ1Ø".�KØ03��J tÑ,Ô,Ñ-Ø07Ô0J��J tÑ,Ô,Ñ-Ø0?ÀÔ0E��J tÑ,Ô,Ñ-Ý˜|¨S¯^ª^Ñ-=Ô-=Ñ>Ô>�Ø˜wÐ&Ð&Ý0;±´�G�J tÑ,Ô,Ñ-Ý�] G¨D¤MÑ2Ô2×9Ò9ØÔ2ñô ð õ #Ð#5°ÀtÔ7LÑMÔMˆOØ -Ò/Ð/Ø09Ô0L��J tÑ,Ô,Ñ-Ø.9Ô.L�	�* TÑ*Ô*Ñ+Ø"&�ðI Ñ)ðJ Ô)Ð5Ð5Ð5ØÔ)Ð)r{   Úfltrc                 ó
  — t          |t          ¦  «        rt          j        |¦  «        }n)t          |t          ¦  «        st          j        d¦  «        }|                     ¦   «         D ]š}|j        }|                     dd¦  «        D ]z}|                     ¦   «         d         }|j	        j
        | j        t          |¦  «                 vr8|                     |d         d         ¦  «        r|                      |||¦  «         Œ{Œ›dS )z…
        Add articles matching the defined criteria.

        Args:
            fltr:
            pages:
            reader:
        r[   rÌ  r¢   rå  r^  r  N)r™   r§   ÚreÚcompiler   rÓ  rÐ  r'  rœ   r�   r›   rd   r«   Úsearchrî  )rv   rï  rw   r  rÅ   Úppr´  Úthrs           ry   r×  zPdfWriter.add_filtered_articles�
  s  € õ �d�CÑ Ô ð 	"Ý”:˜dÑ#Ô#ˆDˆDÝ˜D¥'Ñ*Ô*ð 	"Ý”:˜b‘>”>ˆDØ—’‘”ð 	Bð 	BˆAØ”ˆBØ—V’V˜D "Ñ%Ô%ð Bð B�Ø—l’l‘n”n TÔ*�ØÔ)Ô/°tÔ7JÝ�v‘J”Jô8ð ð à—k’k # d¤)¨HÔ"5Ñ6Ô6ðð ×-Ò-¨c°5¸&ÑAÔAÐAøðBð	Bð 	Br{   c                 ód  — t          |t          ¦  «        rd S t          |t          ¦  «        r|j        |         j        }nNt          |t
          ¦  «        r"|                     dd¦  «        dk    r|j        }nt          |t          ¦  «        r|}	 ||j                 j        S # t          $ r Y d S w xY w)Nú/Typer[   rB  )
r™   rG   rš   rw   r�   rB   r'  rE   r›   r¬   )rv   r£   rw   r  Ú_is        ry   ræ  zPdfWriter._get_cloned_page¨
  sÀ   € õ �d�JÑ'Ô'ð 	Ø�4Ý�d�CÑ Ô ð 	Ø”˜dÔ#Ô6ˆBˆBÝ˜Õ.Ñ/Ô/ð 	°D·H²H¸WÀbÑ4IÔ4IÈWÒ4TÐ4TØÔ(ˆBˆBÝ˜�nÑ-Ô-ð 	ØˆBð	Ø˜œ”?Ô5Ð5øÝð 	ð 	ð 	Ø�4�4ð	øøøs   ÂB! Â!
B/Â.B/Úannotsc                 ó(  — t          ¦   «         }t          |t          ¦  «        r"t          d|                     ¦   «         ¦  «        }|D �]È}t          d|                     ¦   «         ¦  «        }|d         dk    s)d|vs%t          d|d         ¦  «        d         dk    sd|v �r<d|vr<|                     |                      |                     | ¦  «        ¦  «        ¦  «         Œš|d         }t          |t          ¦  «        rRt          |¦  «        |  	                    ¦   «         v r-|                     |                     | ¦  «        j
        ¦  «         �Œ	t          d	|¦  «        }|                      |d
         ||¦  «        }	|	�\|                     | d¬¦  «        }
t          |	g|dd …         z   ¦  «        |
t          d¦  «        <   |                     |
j
        ¦  «         �Œ–t          d|d         ¦  «        d         }t          |t          ¦  «        rRt          |¦  «        |  	                    ¦   «         v r-|                     |                     | ¦  «        j
        ¦  «         �Œt          d	|¦  «        }|                      |d
         ||¦  «        }	|	�€|                     | d¬¦  «        }
t          d|
¦  «        }
t          |	g|dd …         z   ¦  «        t          d|
d         ¦  «        t          d¦  «        <   |                     |
j
        ¦  «         �ŒÊ|S )Nr   rB   rª  r]  rç  rø   rü  r«  r<   r   )r«  )rä  r   r³  )r³  )r<   r™   rE   r   rœ   r�   rj   r­   r§   rÔ  r�   ræ  rF   )rv   rù  r£   rw   r  ÚoutlistÚanÚanor¶  rÅ   Úancs              ry   rÖ  z&PdfWriter._insert_filtered_annotations»
  sÌ  € õ ‘-”-ˆÝ�f�nÑ-Ô-ð 	7Ý˜& &×"3Ò"3Ñ"5Ô"5Ñ6Ô6ˆFØð &	?ñ &	?ˆBÝÐ)¨2¯=ª=©?¬?Ñ;Ô;ˆCà�J” 7Ò*Ð*Ø˜s�?�?ÝÐ*¨C°¬IÑ6Ô6°tÔ<ÀÒGÐGØ˜c�>‘>à #Ð%Ð%Ø—N’N 4×#3Ò#3°C·I²I¸d±O´OÑ#DÔ#DÑEÔEÐEÐEà˜Gœ�AÝ! !¥SÑ)Ô)ð 
Cå˜q™6œ6 T×%=Ò%=Ñ%?Ô%?Ð?Ð?Ø#ŸNšN¨3¯9ª9°T©?¬?Ô+MÑNÔNÐNùå  °Ñ2Ô2˜Ø ×1Ò1°!°A´$¸¸vÑFÔF˜Ø˜=Ø"%§)¢)¨DÀ
 )Ñ"KÔ"K˜CÝ7BÀAÀ3ÈÈ1È2È2ÌÁ;Ñ7OÔ7O˜C¥
¨7Ñ 3Ô 3Ñ4Ø#ŸNšN¨3Ô+AÑBÔBÐBùåÐ+¨S°¬YÑ7Ô7¸Ô=�Ý˜a¥Ñ%Ô%ð ?å˜1‘v”v ×!9Ò!9Ñ!;Ô!;Ð;Ð;ØŸš s§y¢y°¡¤Ô'IÑJÔJÐJùå˜]¨AÑ.Ô.�AØ×-Ò-¨a°¬d°E¸6ÑBÔB�AØ�}Ø!Ÿiši¨¸G˜iÑDÔD˜Ý"Ð#5°sÑ;Ô;˜õ (¨¨¨a°°°¬e©Ñ4Ô4õ Ð/°°T´Ñ;Ô;Ý& tÑ,Ô,ñð  Ÿš sÔ'=Ñ>Ô>Ð>ùØˆr{   Únodec                 ó�  — g }|€t          ¦   «         }|                     ¦   «         }t          |t           ¦  «        rt          ¦   «         }|                     dd¦  «        dk    sd|vrH|                     dd¦  «        }|�.|                     ¦   «         }||                      |||¦  «        z  }�n|��|                     ¦   «         }t          d|                     |¦  «        ¦  «        }|                      t          d|d	         ¦  «        ||¦  «        }|€t          ¦   «         }||t          d	¦  «        <   d|v r#|                      |d         ||¦  «        |_
        ng |_
        t          |d	         t           ¦  «        rt          |j
        ¦  «        d
k    r|                     |¦  «         |                     dd¦  «        }|�­|S )zÜ
        Extract outline item entries that are part of the specified page set.

        Args:
            node:
            pages:
            reader:

        Returns:
            A list of destination objects.
        Nr÷  r[   ú	/Outlinesr  ú/FirstrA   r   rB  r   ú/Next)rG   rœ   r™   rB   r'  rÔ  r   Ú_build_outline_itemræ  rF   Úchildsr‘   r�   )rv   rÿ  rw   r  Únew_outlineÚorê  s          ry   rÔ  zPdfWriter._get_filtered_outlineî
  s¶  € ð" ˆØˆ<Ý‘<”<ˆDØ�ŠÑ Ô ˆÝ�d�JÑ'Ô'ð 	&Ý#Ñ%Ô%ˆDØ�8Š8�G˜RÑ Ô  KÒ/Ð/°8À4Ð3GÐ3GØ—8’8˜H dÑ+Ô+ˆDØÐØ—’Ñ(Ô(�Ø˜t×9Ò9¸$ÀÀvÑNÔNÑN�ùð Ñ"Ø—’Ñ(Ô(�Ý˜¨×(BÒ(BÀ4Ñ(HÔ(HÑIÔI�Ø×)Ò)­$¨|¸Q¸w¼ZÑ*HÔ*HÈ%ÐQWÑXÔX�Ø�9Ý"™œ�AØ)*�•*˜WÑ%Ô%Ñ&Ø˜tÐ#Ð#Ø#×9Ò9¸$¸x¼.È%ÐQWÑXÔX�A”H�Hà!�A”HÝ! ! G¤*­jÑ9Ô9ð *½SÀÄ¹]¼]ÈQÒ=NÐ=NØ×&Ò& qÑ)Ô)Ð)Ø—x’x ¨Ñ.Ô.�ð Ñ"ð Ðr{   c           
      ó¾  — t          ¦   «         }|                      |¦  «         t          |d         ¦  «        |t          d¦  «        <   t	          |d         t
          ¦  «        sX|j        �:d|j        v r1|j        d                              | ¦  «        |t          d¦  «        <   n|j        |t          d¦  «        <   |j        �št          |j         
                    dd¦  «        ¦  «        |t          d¦  «        <   t          |j         
                    dt          d¦  «        t          d¦  «        t          d¦  «        g¦  «        ¦  «        |t          d¦  «        <   |S )	Nr  rB  rç  r«  r  r   ú/Cg        )rM   rj   rL   rF   r™   rG   rÿ  r­   rô   rH   r'  r<   rD   )rv   rð   Ún_ols      ry   Ú_clone_outlinezPdfWriter._clone_outline  s0  € Ý‰|Œ|ˆØ×Ò˜ÑÔÐÝ%5°d¸8´nÑ%EÔ%Eˆ�Z˜Ñ!Ô!Ñ"Ý˜$˜wœ-­Ñ4Ô4ð 	<ØŒyÐ$¨°´Ð):Ð):Ø)-¬°4¬×)>Ò)>¸tÑ)DÔ)D�•Z Ñ%Ô%Ñ&Ð&à,0¬O�•Z Ñ(Ô(Ñ)àŒ9Ð Ý%1°$´)·-²-ÀÀaÑ2HÔ2HÑ%IÔ%IˆD•˜DÑ!Ô!Ñ"Ý%0Ø”	—’Ø�; sÑ+Ô+­[¸Ñ-=Ô-=½{È3Ñ?OÔ?OÐPñô ñ&ô &ˆD•˜DÑ!Ô!Ñ"ð
 ˆr{   Úoutlinesc                 ó,  — |D ]�}|                      dd¦  «        dk    sd|vr|}nQ|                      |¦  «        }t          t          |                     ¦   «         ¦  «                             ||| ¦  «         |                      |j        |d ¦  «         Œ‘d S )Nr÷  r[   r  r  )r'  r  r   rM   rœ   rÛ  rÕ  r  )rv   r  r²  rØ  rð   Únps         ry   rÕ  z"PdfWriter._insert_filtered_outline/  s«   € ð ð 	Að 	AˆDð �xŠx˜ Ñ$Ô$¨Ò3Ð3°xÀtÐ7KÐ7KØ��à×(Ò(¨Ñ.Ô.�Ý•Z ×!2Ò!2Ñ!4Ô!4Ñ5Ô5×BÒBÀ2ÀvÈtÑTÔTÐTØ×)Ò)¨$¬+°r¸4Ñ@Ô@Ð@Ð@ð	Að 	Ar{   c                 ó   — dS )z#To match the functions from Merger.Nr¢   r}   s    ry   rˆ  zPdfWriter.close?  s   € àˆr{   c                 ó„  — |€|                       ¦   «         }nt          d|¦  «        }d}|�”|j        |k    s|                     dd ¦  «        |k    r|gS d|v r=|                      |t          t
          |d         ¦  «        ¦  «        }|rd|v r|gng |z   S d|v r!|dz  }t          t          |d         ¦  «        }nd S |­’d S d S )NrM   r   r  r  r  r   )rÆ  r   r�   r'  Úfind_outline_itemrV   rM   )rv   rä  r¥  r  r”  Úress         ry   r  zPdfWriter.find_outline_itemD  só   € ð
 ˆ<Ø×%Ò%Ñ'Ô'ˆAˆAå�\ 4Ñ(Ô(ˆAàˆØˆmàÔ$¨Ò4Ð4Ø—5’5˜ 4Ñ(Ô(¨LÒ8Ð8à�s�
à˜q�=�=Ø×0Ò0Ø$¥d­;¸¸(¼Ñ&DÔ&Dñô �Cð ð DØ'/°1 } }   ¸"ÀÑCÐCØ˜!ˆ|ˆ|Ø�Q‘�Ý� Q w¤ZÑ0Ô0��à�tð# ˆmˆmˆmˆmˆmr{   c                 ó.   — |                       ||¦  «        S )zZ
        .. deprecated:: 2.9.0
            Use :meth:`find_outline_item` instead.
        )r  )rv   rä  r¥  s      ry   Úfind_bookmarkzPdfWriter.find_bookmarkb  s   € ð ×%Ò% l°DÑ9Ô9Ð9r{   c                 ó8  — |€	i | _         dS t          |t          ¦  «        r)	 | j         t          |¦  «        = dS # t          $ r Y dS w xY wt          |t
          ¦  «        r.	 | j         t          |j        ¦  «        = dS # t          $ r Y dS w xY wt	          d¦  «        ‚)a/  
        Reset the translation table between reader and the writer object.

        Late cloning will create new independent objects.

        Args:
            reader: PdfReader or IndirectObject refering a PdfReader object.
                if set to None or omitted, all tables will be reset.
        Nzinvalid parameter {reader})rd   r™   r   r«   r¬   rE   r�   r<  s     ry   Úreset_translationzPdfWriter.reset_translationn  sÊ   € ð ˆ>Ø"$ˆDÔÐÐÝ˜¥	Ñ*Ô*ð 	:ðØÔ'­¨6©
¬
Ð3Ð3Ð3øÝð ð ð Ø��ðøøøå˜¥Ñ/Ô/ð 	:ðØÔ'­¨6¬:©¬Ð7Ð7Ð7øÝð ð ð Ø��ðøøøõ Ð8Ñ9Ô9Ð9s!   ¢9 ¹
AÁAÁ A< Á<
B
Â	B
Úpage_index_fromÚpage_index_toÚstyleÚprefixÚstartc                 ó:  — |€|€t          d¦  «        ‚|dk     rt          d¦  «        ‚||k     rt          d¦  «        ‚|t          | j        ¦  «        k    rt          d¦  «        ‚|�|dk    r|dk     rt          d¦  «        ‚|                      |||||¦  «         dS )	aD  
        Set a page label to a range of pages.

        Page indexes must be given starting from 0.
        Labels must have a style, a prefix or both.
        If to a range is not assigned any page label a decimal label starting from 1 is applied.

        Args:
            page_index_from: page index of the beginning of the range starting from 0
            page_index_to: page index of the beginning of the range starting from 0
            style:  The numbering style to be used for the numeric portion of each page label:
                        '/D' Decimal arabic numerals
                        '/R' Uppercase roman numerals
                        '/r' Lowercase roman numerals
                        '/A' Uppercase letters (A to Z for the first 26 pages,
                             AA to ZZ for the next 26, and so on)
                        '/a' Lowercase letters (a to z for the first 26 pages,
                             aa to zz for the next 26, and so on)
            prefix: The label prefix for page labels in this range.
            start:  The value of the numeric portion for the first page label
                    in the range.
                    Subsequent pages are numbered sequentially from this value,
                    which must be greater than or equal to 1.
                    Default value: 1.
        Nz3at least one between style and prefix must be givenr   z/page_index_from must be equal or greater then 0z;page_index_to must be equal or greater then page_index_fromz%page_index_to exceeds number of pagesr   z1if given, start must be equal or greater than one)r•   r‘   rw   Ú_set_page_label)rv   r  r  r  r  r  s         ry   Úset_page_labelzPdfWriter.set_page_label‰  sÂ   € ðB ˆ=˜V˜^ÝÐRÑSÔSÐSØ˜QÒÐÝÐNÑOÔOÐOØ˜?Ò*Ð*ÝØMñô ð ð �C ¤
™OœOÒ+Ð+ÝÐDÑEÔEÐEØÐ ¨!¢ °¸²	°	ÝÐPÑQÔQÐQà×Ò˜_¨m¸UÀFÈEÑRÔRÐRÐRÐRr{   c                 óÈ  — t          ¦   «         }t          d¦  «        |t          d¦  «        <   t          ¦   «         }|�t          |¦  «        |t          d¦  «        <   |�t          |¦  «        |t          d¦  «        <   |dk    rt          |¦  «        |t          d¦  «        <   t          t          j        ¦  «        | j        vrmt          ¦   «         }t          t          d¦  «        ||¦  «         t          ¦   «         }	||	t          d¦  «        <   |	| j        t          t          j        ¦  «        <   t          t          | j        t          t          j        ¦  «                 ¦  «        }	t          t          |	t          d¦  «                 ¦  «        }t          t          |¦  «        ||¦  «         t          t          |¦  «        ||¦  «         t          t          |¦  «        |¦  «        ^}
}|
|dz   k    r<|dz   t          | j        ¦  «        k     r!t          t          |dz   ¦  «        ||¦  «         ||	t          d¦  «        <   |	| j        t          t          j        ¦  «        <   dS )	a*  
        Set a page label to a range of pages.

        Page indexes must be given
        starting from 0. Labels must have a style, a prefix or both. If to a
        range is not assigned any page label a decimal label starting from 1 is
        applied.

        Args:
            page_index_from: page index of the beginning of the range starting from 0
            page_index_to: page index of the beginning of the range starting from 0
            style:  The numbering style to be used for the numeric portion of each page label:
                        /D Decimal arabic numerals
                        /R Uppercase roman numerals
                        /r Lowercase roman numerals
                        /A Uppercase letters (A to Z for the first 26 pages,
                           AA to ZZ for the next 26, and so on)
                        /a Lowercase letters (a to z for the first 26 pages,
                           aa to zz for the next 26, and so on)
            prefix: The label prefix for page labels in this range.
            start:  The value of the numeric portion for the first page label
                    in the range.
                    Subsequent pages are numbered sequentially from this value,
                    which must be greater than or equal to 1. Default value: 1.
        r³  rø   Nr¨  r   z/Stz/Numsr   )rB   rF   rL   rH   r+   ÚPAGE_LABELSrp   r<   r   rM   r   r   r   r‘   rw   )rv   r  r  r  r  r  Údefault_page_labelÚnew_page_labelÚnumsÚpage_labelsÚnext_label_posÚ_s               ry   r  zPdfWriter._set_page_label¹  s  € õB .Ñ/Ô/ÐÝ/9¸$Ñ/?Ô/?Ð�: dÑ+Ô+Ñ,å)Ñ+Ô+ˆØÐÝ/9¸%Ñ/@Ô/@ˆN�: dÑ+Ô+Ñ,ØÐÝ/?ÀÑ/GÔ/GˆN�: dÑ+Ô+Ñ,Ø�AŠ:ˆ:Ý0<¸UÑ0CÔ0CˆN�: eÑ,Ô,Ñ-åÕ'Ô3Ñ4Ô4¸DÔ<MÐMÐMÝ‘=”=ˆDÝ� Q™œÐ);¸TÑBÔBÐBÝ$™,œ,ˆKØ/3ˆK�
 7Ñ+Ô+Ñ,ØKVˆDÔ�jÕ):Ô)FÑGÔGÑHåÝ˜Ô)­*Õ5FÔ5RÑ*SÔ*SÔTñ
ô 
ˆõ •K ­Z¸Ñ-@Ô-@Ô!AÑBÔBˆå•L Ñ1Ô1°>À4ÑHÔHÐHÝ� oÑ6Ô6¸ÀtÑLÔLÐLÝ&¥|°OÑ'DÔ'DÀdÑKÔKÐˆ˜Ø˜]¨QÑ.Ò.Ð.°=À1Ñ3DÅsÈ4Ì:ÁÄÒ3VÐ3VÝ� ]°QÑ%6Ñ7Ô7Ð9KÈTÑRÔRÐRà+/ˆ•J˜wÑ'Ô'Ñ(ØGRˆÔ�*Õ%6Ô%BÑCÔCÑDÐDÐDr{   )r[   )r]   rZ   )NN)r¢   )r]   N)r   r¢   )NNr   rŠ   )NNN)NNNN)NNFFr  )F)Nr  )NNTN)NNTr¢   )°r&  Ú
__module__Ú__qualname__Ú__doc__r!   rz   r~   r   r   ÚBaseExceptionr   r„   Úpropertyré   r‡   ÚsetterrI   rE   rj   r   rš   rœ   rž   r¡   r   r   r
   r   r§   r±   rº   r½   r¿   rÈ   rÊ   rÏ   rÑ   rÓ   rÕ   r   rw   rp  rÛ   rÝ   ÚdecimalÚDecimalrá   rã   rA   rL   r>   rï   r   r  r  r  r   r  r  ÚOPTIONAL_READ_WRITE_FIELDr   r/   r1  r3  r=  r?  rB   r:  rR  rT  ÚALL_DOCUMENT_PERMISSIONSrÆ  r9   ry  r"   r…  r   r   r	   rƒ   r€  r�  r‚  r¢  r¤  r<   r=   rD   rF   rH   rG   r  r¯  r¿  rÁ  rM   rÆ  rÊ  rÉ  rÍ  rÔ  rÖ  rÝ  rß  rã  r&   rU   rí  rï  ró  r:   rC   rý  rS   rX   r  r  r  r  r  r  r  r  r!  r#  rJ  rM  rP  rR  rJ   rh  rj  rl  ry  r„  rT   r|  r€  r‡  rŠ  rŒ  r�  r�  r›  rW   r•  r˜  r�  r   r™  r¤  rw  r¸  r   r   rÂ  rP   r�   rQ   rÇ  rî  r   r×  ræ  rÖ  rÔ  r  rÕ  rˆ  rV   r  r  r  r4   r  r  r¢   r{   ry   rZ   rZ   ‡   s  € € € € € ðð ð&#ð &# ð &#°Tð &#ð &#ð &#ð &#ðPð ð ð ð
%à˜4 Ô.Ô/ð%ð �mÔ$ð%ð ˜MÔ*ð	%ð
 
ð%ð %ð %ð %ð ð˜Eð ð ð ñ „Xðð Ôð" Uð "¨tð "ð "ð "ñ Ôð"ð&˜yð &¨^ð &ð &ð &ð &ð @DØ(,ð;ð ;à! $¨¨^Ð";Ô<ð;ð �nÔ%ð;ð 
ð	;ð ;ð ;ð ;ð6$˜U 3¨Ð#6Ô7ð $¸Ið $ð $ð $ð $ð;à! # ~Ð"5Ô6ð;ð ð;ð 
ð	;ð ;ð ;ð ;ð$ (*ð	 ð  àð ð ˜#˜~Ð.°Ð4Ô5ð ð   ”}ð	 ð
 
ð ð  ð  ð  ðDNð Nð Nð Nð. (*ð@ð @àð@ð   ”}ð@ð 
ð	@ð @ð @ð @ð4 (*ð2ð 2àð2ð   ”}ð2ð 
ð	2ð 2ð 2ð 2ð  Ø')ð	Kð KàðKð ðKð   ”}ð	Kð
 
ðKð Kð Kð Kð. Ø')ð	<ð <àð<ð ð<ð   ”}ð	<ð
 
ð<ð <ð <ð <ð NRðJð JØ# Cœ=ðJØ=EÀc¼]ðJà	ðJð Jð Jð Jð4) #ð )¨*ð )ð )ð )ð )ð0 ð 0ð 0ð 0ð 0ð%˜Sð %ð %ð %ð %ð ð@�t˜JÔ'ð @ð @ð @ñ „Xð@ð
 HLð#ð #Ø˜e”_ð#Ø5=¸e´_ð#à	ð#ð #ð #ð #ð2 HLð	2ð 	2Ø˜e”_ð	2Ø5=¸e´_ð	2à	ð	2ð 	2ð 	2ð 	2ð :>Ø:>Øð	ð à˜˜e W¤_Ð4Ô5Ô6ðð ˜˜u g¤oÐ5Ô6Ô7ðð ð	ð
 
ðð ð ð ðF :>Ø:>Øð	<ð <à˜˜e W¤_Ð4Ô5Ô6ð<ð ˜˜u g¤oÐ5Ô6Ô7ð<ð ð	<ð
 
ð<ð <ð <ð <ð ðà	ˆt�[Ð"2Ð4DÐDÔ	Eðð ð ñ „Xðð6 Ôð U¨4°°kÀ:Ð+MÔ%Nð ÐSWð ð ð ñ Ôðð&!- ð !-¨ð !-ð !-ð !-ð !-ðF' ð '¨ð 'ð 'ð 'ð 'ðRT sð RT°%¸¸U¸
Ô2Cð RTÈð RTð RTð RTð RTðh1 3ð 1¨u°S¸%°ZÔ/@ð 1ÀTð 1ð 1ð 1ð 1ð EIð/ð /àð/ð $ H¨j¨\¸4Ð-?Ô$@ÔAð/ð 
ð	/ð /ð /ð /ðF EIðAð AàðAð $ H¨j¨\¸4Ð-?Ô$@ÔAðAð 
ð	Að Að Að Að& 5ð	@ð @àð@ð �S˜#�X”ð@ð ð	@ð
 
ð@ð @ð @ð @ðL 5ð	Gð GàðGð �S˜#�X”ðGð ð	Gð
 
ðGð Gð Gð Gð !°ð !¸tð !ð !ð !ð !ð$	0¨ið 	0¸Dð 	0ð 	0ð 	0ð 	0ð <@Ø,0Ø7;ð	(<ð (<à�TÐ+¨ZÐ7Ô8ð(<ð ˜$˜s C˜xœ.Ô)ð(<ð % ^Ô4ð	(<ð
 
ð(<ð (<ð (<ð (<ðZ EIð5ð 5àð5ð $ H¨j¨\¸4Ð-?Ô$@ÔAð5ð 
ð	5ð 5ð 5ð 5ðD EIðCð CàðCð $ H¨j¨\¸4Ð-?Ô$@ÔAðCð 
ð	Cð Cð Cð Cð" (,Ø(,ØØ2JØ"&Ø#'ð^ ð ^ à ”}ð^ ð ! œð^ ð ð	^ ð
 0ð^ ð ˜3”-ð^ ð ˜C”=ð^ ð 
ð^ ð ^ ð ^ ð ^ ð@C :ð C°$ð Cð Cð Cð Cð4˜E $¨Ð"3Ô4ð ¸¸tÀR¸x¼ð ð ð ð ð<  Jð  °4¸´9ð  ð  ð  ð  ð.¨
ð ÀdÈ3Äið ÐTWð ð ð ð ð. Zð .°Dð .ð .ð .ð .ð 1 $ s¨C x¤.ð 1°Tð 1ð 1ð 1ð 1ð!  c¨3 h¤ð !°Dð !ð !ð !ð !ðP3àØØØØØØØØØØð	ô
ðP3ð 
ðP3ð P3ð P3ð P3ðd*,¨^ð *,Àð *,ð *,ð *,ð *,ðX ð ¨~ð ð ð ð ð' 	ð '¨nð 'ð 'ð 'ð 'ð *ð ð ð ð ð +ð ð ð ð ð$ ð'˜ð 'ð 'ð 'ñ „Xð'ð' 
ð 'ð 'ð 'ð 'ð! [ð !ð !ð !ð !ðF* +ð *ð *ð *ð *ð AEØ:>Ø:>Ø48ð$$ð $$à  j°*Ð <Ô=ð$$ð �d˜J¨Ð6Ô7ð$$ð �d˜J¨Ð6Ô7ð	$$ð
 �D˜* jÐ0Ô1ð$$ð 
ð$$ð $$ð $$ð $$ðR ;?ð?ð ?à�J 
Ð*Ô+ð?ð �d˜J¨Ð6Ô7ð?ð 
ð	?ð ?ð ?ð ?ð  @Dð?ð ?Øð?Ø(0°Ô(<ð?à	ð?ð ?ð ?ð ?ð Ð >Ð2Ñ2Ô2ð ;?Ø:>ð	Vð Và%ðVð �d˜J¨Ð6Ô7ðVð �d˜J¨Ð6Ô7ð	Vð
 
ðVð Vð Vñ 3Ô2ðVð* Ð >Ð2Ñ2Ô2àLPð@ð @Ø+ð@Ø5=¸jÔ5Ið@à	ð@ð @ð @ñ 3Ô2ð@ð Ð >Ð2Ñ2Ô2àLPð@ð @Ø+ð@Ø5=¸jÔ5Ið@à	ð@ð @ð @ñ 3Ô2ð@ð" ;?Ø:>ØBFØØØØ!%ðNOð NOàðNOð ˜4 ¨^¸SÐ@ÔAðNOð �d˜J¨Ð6Ô7ð	NOð
 �d˜J¨Ð6Ô7ðNOð ˜˜e E¨5°%Ð$7Ô8¸#Ð=Ô>Ô?ðNOð ðNOð ðNOð ðNOð ˜#”ðNOð 
ðNOð NOð NOð NOðh ;?Ø6:ØØØð
ð 
àð
ð ð
ð �d˜J¨Ð6Ô7ð	
ð
 ˜˜e U¨EÐ1Ô2Ô3ð
ð ð
ð ð
ð ð
ð ð
ð 
ð
ð 
ð 
ð 
ð> ;?Ø6:ØØØð
ð 
àð
ð ð
ð �d˜J¨Ð6Ô7ð	
ð
 ˜˜e U¨EÐ1Ô2Ô3ð
ð ð
ð ð
ð ð
ð ð
ð 
ð
ð 
ð 
ð 
ð8
ð 
ð 
ð 
ð
Ø%ðØ49¸.È+Ð:UÔ4Vðà	ðð ð ð ð" 15Ø$(ð$ð $à" 9Ô-ð$ð �yÔ!ð$ð 
ð	$ð $ð $ð $ð>7Øð7à	ð7ð 7ð 7ð 7ð  &*Ø!%ð	(ð (àð(ð ˜c”]ð(ð ˜#”ð	(ð
 
ð(ð (ð (ð (ðT:Øð:Ø#&ð:à	ð:ð :ð :ð :ð(ð (ð (ð (ð#ð #ð #ð #ðNCð NC°tð NCÈð NCð NCð NCð NCð`:ð :°4ð :ÀDð :ð :ð :ð :ð*Cð *C°Tð *CÀdð *Cð *Cð *Cð *CðX8ð 8°ð 8À$ð 8ð 8ð 8ð 8ð )-Ø!%ðLEð LEàðLEð ðLEð ð	LEð
 ˜Ô%ðLEð ˜#”ðLEð 
ðLEð LEð LEð LEðf )-ð8ð 8àð8ð ð8ð ð	8ð
 ˜Ô%ð8ð 
ð8ð 8ð 8ð 8ð( )-ØðOð OàðOð ðOð ð	Oð
 ˜Ô%ðOð ðOð ðOð 
ðOð Oð Oð OðH )-ØðRð RàðRð ðRð ð	Rð
 ˜Ô%ðRð ðRð ðRð 
ðRð Rð Rð Rð&€Nð (¨:Ô"6ð ð ð ð ð'˜x¨
Ô3ð 'ð 'ð 'ð 'ð F u¨Z¸Ð-CÔ'Dð  FÈð  Fð  Fð  Fð  FðD& jð &°Tð &ð &ð &ð &ð6	- Jð 	-°4ð 	-ð 	-ð 	-ð 	-ð ð'˜X jÔ1ð 'ð 'ð 'ñ „Xð'ð0 Ôð& *ð &°ð &ð &ð &ñ Ôð&ð ð ˜H ZÔ0ð  ð  ð  ñ „Xð ð Ôð" ð "°ð "ð "ð "ñ Ôð"ð€Lð ¨Ô 6ð ð ð ð ð%˜X lÔ3ð %ð %ð %ð %ðG ,ð G°4ð Gð Gð Gð Gð 	! ð 	!°ð 	!ð 	!ð 	!ð 	!ð ð%˜8 LÔ1ð %ð %ð %ñ „Xð%ð, Ôð!˜lð !¨tð !ð !ð !ñ Ôð!ð ð˜( <Ô0ð ð ð ñ „Xðð „_ð˜\ð ¨dð ð ð ñ „_ðð)¨#ð )¸4ÀÀSÀ¼>ð )Èdð )ð )ð )ð )ð2˜u Z°Ð%?Ô@ð ÀZð ð ð ð ð4"&Ø˜T ;°	Ð9Ô:ð"&à	ˆv�x 
Ô+Ð+Ô	,ð"&ð "&ð "&ð "&ðR ð Ø#ØGKð<ð <à�{ I¨tÐ3Ô4ð<ð Ø��y %¨¨S¨¤/°5¸¸cÀ3¸Ô3GÈÈcÌÐRô
ð<ð Ø�)˜U 3¨ 8œ_¨e°C¸¸c°MÔ.BÀDÈÄIÐMô
ð<ð ð<ð " %¨¨S¬	°5¸¸c¸´?Ð(BÔ"CÔDð<ð 
ð<ð <ð <ð <ð| Ð >ÐDTÐUÑUÔUð
 '+Ø)-Ø#ØGIðUð Uà˜3”-ðUð �t˜[¨)Ð3Ô4ðUð ˜s”mð	Uð
 ˜Ô&ðUð ðUð " %¨¨S¬	°5¸¸c¸´?Ð(BÔ"CÔDðUð 
ðUð Uð Uñ VÔUðUðn>*à ð>*ð �C˜�OÔ$ð>*ð ð	>*ð
 
ð>*ð >*ð >*ð >*ð@Bà�G˜S�LÔ!ðBð �C˜�OÔ$ðBð ð	Bð
 
ðBð Bð Bð Bð6à�D˜#˜~¨z¸:ÐEÔFðð �C˜�OÔ$ðð ð	ð
 
�.Ô	!ðð ð ð ð&1à�n dÐ+;Ô&<Ð<Ô=ð1ð ð1ð �C˜�OÔ$ð	1ð
 ð1ð 
ˆkÔ	ð1ð 1ð 1ð 1ðf,àð,ð �C˜�OÔ$ð,ð ð	,ð
 
ˆkÔ	ð,ð ,ð ,ð ,ð\ ;ð °:ð ð ð ð ð. ;?ð	Að Aà�{Ô#ðAð �j .Ð0Ô1ðAð �d˜J¨Ð6Ô7ð	Að
 
ðAð Að Að Að ð ð ð ð '+ðð à˜3 ˜8”nðð �{Ô#ðð 
�$�s”)Ô	ð	ð ð ð ð< Ð >Ð2Ñ2Ô2ð '+ð	:ð 	:à˜3 ˜8”nð	:ð �{Ô#ð	:ð 
�$�s”)Ô	ð		:ð 	:ð 	:ñ 3Ô2ð	:ð @Dð:ð :Ø˜D )¨^Ð;Ô<ð:à	ð:ð :ð :ð :ð> +/Ø $Ø ð.Sð .Sàð.Sð ð.Sð ˜Ô'ð	.Sð
 ˜”ð.Sð ˜Œ}ð.Sð 
ð.Sð .Sð .Sð .Sðh +/Ø $Ø ð?Sð ?Sàð?Sð ð?Sð ˜Ô'ð	?Sð
 ˜”ð?Sð ˜Œ}ð?Sð 
ð?Sð ?Sð ?Sð ?Sð ?Sð ?Sr{   rZ   r‹   r]   c                 ó²  — t          | t          ¦  «        r| S t          | t          ¦  «        rMt          ¦   «         }|                      ¦   «         D ](\  }}t          |¦  «        }t          |¦  «        }|||<   Œ)|S t          | t          ¦  «        r7t          ¦   «         }| D ]$}| 	                    t          |¦  «        ¦  «         Œ%|S t          | t          ¦  «        r3|                      d¦  «        rt          | ¦  «        S t          | ¦  «        S t          | t          t          f¦  «        rt          | ¦  «        S t!          dt#          | ¦  «        › d�¦  «        ‚)Nrû  z
type(obj)=z! could not be casted to PdfObject)r™   rI   r®  rB   rG  rF   r¬  r©   r<   r�   r§   Ú
startswithrL   rš   rp  rD   r  Útype)r‹   r¯  rx  rM  Úname_keyÚcasted_valuerÚ  Úels           ry   r¬  r¬  û  sQ  € Ý�#•yÑ!Ô!ð Øˆ
Ý�#•tÑÔð 
Ý!Ñ#Ô#ˆØŸ)š)™+œ+ð 	,ð 	,‰JˆC�Ý! #‘”ˆHÝ)¨%Ñ0Ô0ˆLØ+ˆF�8ÑÐØˆÝ	�C�Ñ	Ô	ð 
Ý‰mŒmˆØð 	+ð 	+ˆBØ�JŠJ•~ bÑ)Ô)Ñ*Ô*Ð*Ð*Øˆ
Ý	�C�Ñ	Ô	ð 

Ø�>Š>˜#ÑÔð 	)Ý˜c‘?”?Ð"å# CÑ(Ô(Ð(Ý	�C�#�u˜Ñ	&Ô	&ð 
Ý˜3ÑÔÐå!ØE�˜c™œÐEÐEÐEñ
ô 
ð 	
r{   rì  rô  rõ  r÷  rö  c                 óø  — t          ¦   «         }| �| |t          d¦  «        <   |                     t          d¦  «        t          |¦  «        i¦  «         |r_t	          |t
          ¦  «        rt          |¦  «        }|                     t          d¦  «        t          d„ |D ¦   «         ¦  «        i¦  «         |s|rAd}|r|dz  }|r|dz  }|                     t          d¦  «        t          |¦  «        i¦  «         |S )	Nrç  r  r	  c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¢   )rD   )r©  Úcs     ry   r«  z(_create_outline_item.<locals>.<listcomp>*  s   € Ð+JÐ+JÐ+J¸q­K¸©N¬NÐ+JÐ+JÐ+Jr{   r   r   ræ   r  )	rM   rF   re   rN   r™   r§   rO   r<   rH   )rì  rô  rõ  r÷  rö  rä  Úformat_flags          ry   r  r    s+  € õ ‘<”<€LØÐØ)3ˆ•Z Ñ%Ô%Ñ&Ø×Òå�xÑ Ô Õ"6°uÑ"=Ô"=ð	
ñô ð ð
 ð 
Ý�e�SÑ!Ô!ð 	&Ý˜uÑ%Ô%ˆEØ×ÒÝ˜ÑÔ�{Ð+JÐ+JÀEÐ+JÑ+JÔ+JÑKÔKÐLñ	
ô 	
ð 	
ð ð K�ð KØˆØð 	Ø˜1ÑˆKØð 	Ø˜1ÑˆKØ×Ò�Z¨Ñ-Ô-­|¸KÑ/HÔ/HÐIÑJÔJÐJØÐr{   c                   ó,   ‡ — e Zd Zdededdfˆ fd„Zˆ xZS )ÚPdfFileWriterr¡  Úkwargsr]   Nc                 ó\   •— t          ddd¦  «          t          ¦   «         j        |i |¤Ž d S )Nr<  rZ   rŸ   )r'   Úsuperrz   )rv   r¡  r=  rº  s      €ry   rz   zPdfFileWriter.__init__7  s7   ø€ Ý$ _°kÀ7ÑKÔKÐKØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r{   )r&  r'  r(  r
   rz   Ú__classcell__)rº  s   @ry   r<  r<  6  sR   ø€ € € € € ð*˜cð *¨Sð *°Tð *ð *ð *ð *ð *ð *ð *ð *ð *ð *r{   r<  )�rl   r¬  r-  Úloggingrg  rñ  r�  re  rû   r–   Úhashlibr   Úior   r   r   Úpathlibr   Útypesr   Útypingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r½  r   Ú_pager   r   Ú_page_labelsr   r   r   Ú_readerr   Ú	_securityr   r   r    Ú_utilsr!   r"   r#   r$   r%   r&   r'   r(   Ú	constantsr)   r*   rù   r+   r,   rq   r-   rk  r.   r/   r0   r1   r2   r3   r$  r4   r5   rf   r6   rh  r7   r7  r8   r9   Úgenericr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   Ú	pagerangerP   rQ   rR   rS   rT   rU   rV   rW   rX   Ú	getLoggerr&  rµ   r/  r0  rZ   r§   rš   r¬  rp  rÆ  r  r<  r¢   r{   ry   ú<module>rP     só  ðð< €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  $Ð #Ð #Ð #Ð #Ð #Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (Ø !Ð !Ð !Ð !Ð !Ð !Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð0 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€ð &˜I a™LœLÐ Ø0Ð0°ÑAÔAÐ ðq-Sð q-Sð q-Sð q-Sð q-Sñ q-Sô q-Sð q-Sðh[
˜˜d 3¨ 8œn¨c°3¸¸S¼	ÐAÔBð 
Àyð 
ð 
ð 
ð 
ð8Ø�d˜NÐ*Ô+ðàðð ��u˜e UÐ*Ô+¨S°$Ð6Ô7ðð ð	ð
 ðð ðð ð ð ð>*ð *ð *ð *ð *�Iñ *ô *ð *ð *ð *r{   